Buy Object Oriented Discrete Event Simulation With Java: A Practical Introduction
It allows us to declare and assign relevant values to variables or attributes, and has been used throughout the model to update its states. In the Assign module 2 , we defined variables that respectively store the number of pedestrians that have entered and that have been blocked from entering the corridor for calculating its blocking probability see Table 2 , and an attribute that stores their identification numbers IDs for later use in the model. The IDs are assigned based on the number of pedestrians in the system, and this global variable must always be updated every time a new pedestrian arrives at the system.
Each pedestrian tries to seize a space in the corridor.
This situation can be presented using the Seize module 3 that allocates a unit a space of available servers the capacity of the corridor to the pedestrian. If all available units are busy, the pedestrian will automatically be queued until the unit is available to be seized. Every successful pedestrian will initially be introduced to the physical corridor. The Assign module 4 defines variables relating to this, that is its area, its capacity and its current number of residing pedestrians and will be used to calculate the current travel speed in the corridor.
Since there are two mathematical models for calculating the speed that is linear and exponential models see Equation 1 and Equation 2 , we used the Decide module 5 to offer the option. However, only the exponential models were used to analyze and report the analytical and simulation results in this paper. In the Exponential Model decision module, we have to use the Initial Exponential Walking Speed and Assign Exponential Walking Speed blocks to clearly differentiate the speed for a single pedestrian that is 1.
We have to do this since Arena software only has a built-in mathematical function for an exponential function with base e. Thus, we have to convert in the Equation 1 to. When pedestrians start travelling through the corridor, we have to initialize their entrance time to the current simulation clock value and their current travel distance to zero.
This is accomplished by the Assign module 6. Simultaneously, a signal that denotes the arrival event needs to be sent using the Signal module 7 to force the Hold module 9 that is a type of queue that releases its residing entities when receiving a signal or satisfying a condition to release the dummy entity and then activate the Remove module The Remove module removes pedestrians from their queue the Queue module 12 in order to update the Assign module 11 their states that is their current travel distance, their remaining time to exit the corridor and the time points that these events happen.
This time will later be used for calculating the pedestrians' new states see Table 1.
- VTLS Chameleon iPortal Full Record!
- Large-Scale Dynamic Systems: Stability and Structure;
- Stability and Perfection of Nash Equilibria.
- My Shopping Bag.
We also need to assign the Assign module 13 their current number of state changes loop IDs that will be used as a search criterion later in the model. After performing the task, the dummy entity flows back to the Hold module 9 and waits for another signal. The pedestrians cannot perform their delay times remaining times to exit the corridor while in queue. To solve this, we can duplicate them using the Separate module The original pedestrians flow back to their queue after updating their states, while their clones that have the same attributes and values perform their delay time using the Delay module After the delay time, they enter the Assign module 16 where the values of their IDs and loop IDs are assigned to new variables and used as search criteria accomplished by the Search module 17 to match their original pedestrians that satisfy both values.
The result of the search is either true found or false not found. If the original pedestrian was not found, the duplicated pedestrian will instantly be destroyed to claim computer memory spaces.
Fler böcker av Jose M Garrido
Else, it will send a signal that denotes the departure event using the Signal module 18 to the Hold module 9. Before being destroyed, the pedestrian measures the performance of the corridor using the Assign module 20 and sends a signal the Signal module 21 to the Hold module 9 to force all pedestrians to update their new states.
We cannot control the cross lines from the Remove module 10 to the Assign module 11 since the Remove module has two exit points, that is the Original exit point to route the dummy entity to a decision block to wait for the next events or to iteratively remove pedestrians from their queue, and the Removed Entity exit point to route the removed pedestrians to update their states and return to their queue.
The basic model can easily be extended to support series , splitting and merging topologies. Since these topologies relate to the flow of pedestrians through various corridors, we should provide relevant mechanisms to perform these logics. First, we have to create a unique queue for each corridor so that we can store its residing pedestrians and update them accordingly, e.
Second, we have to attach an attribute to the pedestrians e. The value of the attribute must be updated once a relevant pedestrian exits its current corridor and used throughout the model to support the logical statements of the model, e. Figure 2 shows snapshots of the three topology structures. Figure 2 a to c show Arena modules used for flowing pedestrians from corridor to corridor in series, splitting and merging corridors respectively. The structures are straightforward and can easily be comprehended by model designers who are familiar with high level DES software.
Figure 2 d to f meanwhile show the modifications that must be made to our previous engine in order to store pedestrians in, remove pedestrian from and route pedestrians to relevant corridors. All the three topologies share the same engine. We run our simulation model using Process Analyzer. This application eases the analysis and comparisons of simulation results based on different model inputs.
Our model's input controls are arrival rate, the length of a corridor, its length and width and pedestrians' average travelling distance since we have many source inputs of a corridor. The output responses are its blocking probability, throughput, expected number of pedestrians and their mean travel time. All simulation results documented in this paper were carried out for seconds, and 10 and 30 replications respectively.
We purposely ran each scenario for two different replication numbers to investigate if there would be any improvement of its outputs' half widths. Before being used to validate the analytical results of the considered networks  , we first compared our simulation results with the simulation results reported in the previous paper . Other analyses on CPU times showed that their model is better than our model in terms of speed for any scenario that its arrival rates create blocking. We expected this since our model structures involve storing, searching and removing pedestrians from a queue while their model can directly access pedestrians in a queue to update their states and has implemented an optimization technique.
In the networks under study  as shown in Figure 3 , there are six source corridors that is Corridors 6 to Figure 4 shows the graph of blocking probabilities measures against variable rates for three of these corridors. There are no blockings until certain points where the blocking probabilities start to increase. For example, for Corridor 7 Fig.
However, there are some discrepancies between analytical and simulation results. Figure 4 d zooms the Fig. For each corridor, there is a range of arrival rates where simulation and animation results exhibit discrepancies. The range could be made smaller if we reduce its blocking probability half width since the blocking probability determine the corridor's throughput, expected service time and expected number of entities.
Kelton  approximated the minimum number of replications to achieve a relevant expected half width; i. Table 4 shows the range of arrival rates that simulation and animation results show discrepancies and their minimum number of replications to achieve the expected half widths for all source corridors. We can see that for Corridor 6, the blocking probability half widths for It is clear that the analytical blocking probability value is located within the minimum and maximum range.
If we run our simulation model for replications, we could decrease the half width to 0. However, to run such a big replication number is unpractical and consumes time. Other ranges that the average blocking probabilities could be decreased through the decrease of their half widths are There are ranges where simulation results and analytical results will not ever consistent since their analytical blocking probabilities are not located within the minimum and maximum blocking probabilities.
The range are No matter how many replications we run our simulation model, their blocking probability half widths for the ranges will not be significantly reduced. We can observe that the half widths of the blocking probabilities for Corridor 10 could be decreased if we run our model for replications. This replication number will also improve other arrival rates.
As a proof of our premises, we ran our simulation model for replications and observed their results. The results of the range of arrival rates and its half widths for Corridor 10 are shown in Table 5. We can see that the maximum throughput will happen if arrival rates are On the hand, analytical results reported that the maximum throughput will happen when the arrival rates are From outputs of both models, we observed that the optimal throughput of any corridors happens right before its blocking starts, and the value can be achieved by controlling the arrival rates to the corridor.
Smaller arrival rates move pedestrians smoother but cause less throughput at the end. Higher arrival rates meanwhile cause congestion and eventually decrease its final throughput. Our analysis showed that there is discrepancy between analytical and simulation results on the value of an arrival rate that will cause congestion. However, both models reported almost the same performance measures for arrival rates that are smaller or significantly higher than the value.
The results can give ideas on the range of arrival rates that will maximize the throughputs of the source corridors. As in the analytical model, our simulation model only considers the average travelling distances that pedestrians need to travel from various input sources to exit corridors. However, the exact distance from each source input to the end of corridors needs to be modeled in order to evaluate the real performances of the network so that its results can be used as guidance in an emergency case, e. Besides this, the model could be an extremely valuable tool when planning an emergency plan for the network,.
Our future researches include embedding animations to our simulation model where decision makers can directly change arrival rates to each of its input sources and see their impacts to pedestrians' behavior and the model's performances. Various performances through graphs, histograms, and tables will help them to get insight into the inner working of the network. The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.
National Center for Biotechnology Information , U.
- Customer Reviews;
- Object-Oriented Discrete-Event Simulation with Java?
- Shake Block Cutter - Helicopter Timber Salvage: tales from the frontlines.
PLoS One. Published online Apr 1. Ruzelan Khalid , 1 Mohd Kamal M. Kawsar , 2 , 4 Noraida A. Ghani , 2 Anton A. Kamil , 2 and Adli Mustafa 3. Mohd Kamal M.
Jose M. Garrido - Google Scholar Citations
Finally, the book concludes with material on important features of Java that are not object-oriented. Features Teaches students why the Java language works the way it does, as opposed to simply how it works NEW! Material on pure polymorphism NEW! Charles W. Budd received his Bachelor of Arts degree in Mathematics and Computer Science from Western Washington University, and his masters and doctorate degrees in computer science from Yale University. His research interests include multi-paradigm programming languages, programming environments, compiler implementation and optimization techniques.