-
Recent Posts
Recent Comments
- R.P. Churchill on TWSL Series 07: Discovery and Data Collection
- R.P. Churchill on A Simulationist’s Framework for Business Analysis: Round Two
- LN on A Simulationist’s Framework for Business Analysis: Round Two
- R.P. Churchill on Starting to Learn About the Java Memory Model
- R.P. Churchill on Multidimensional Arrays in Javascript
Categories
Meta
Daily Archives: September 20, 2016
A Simple Discrete-Event Simulation: Part 12
Today I wanted to start constructing an Entry component. I created a very simple on that generates modeled entities are regular, defined intervals over the duration of the simulation run. Here’s the relevant code.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
//time to end the entire simulation var endSimTime = 1440.0; //time increments in minutes, run for 24 hours //collection of all entities in the system var setOfEntities = new Array(); //Entry component function entryComponent(arrivalsPerHour) { //initially assume it just generates entity1s that disappear after a single cycle this.entityID = getNewID(); this.initialTime = 0.0; this.incrementTime = 60.0 / arrivalsPerHour; this.endTime = endSimTime; this.nextState = "increment"; feq.newItem(globalSimClock,this); //assume all components created at time zero this.generateNewEntity = function() { var newEntity = new entity1(globalSimClock,2.0,globalSimClock+1.0); setOfEntities.push(newEntity); } this.activate = function() { if (this.nextState == "increment") { this.generateNewEntity(); //<<<< this one line does all the meaningful work <<<< displayProgressText("Entry component "+this.entityID+" generates new entity at time "+globalSimClock+"<br />"); if (globalSimClock + this.incrementTime >= this.endTime) { this.nextState = "destroy"; } advance(this.incrementTime); } else if (this.nextState == "destroy") { displayProgressText("Entry component "+this.entityID+" terminated at time "+globalSimClock+"<br />"); } else { alert("Entry component "+this.entityID+" went into undefined state"); displayProgressText("entity "+this.entityID+" in undefined state at time "+globalSimClock+"<br />"); } } }; //entryComponent var entry1 = new entryComponent(2.0); |
This generates the following output. … Continue reading