Chapter 5: Problems 1, 2, 3, 4 & 5
5.1) An object property is an input value or distribution of values specified when an object is instantiated, for example, a source object’s interarrival time. An object state is a dynamic value that changes as a model executes, for example, the busy/idle status of a server.
5.2) A token’s parent object is the instance of the object in which the process is defined. A token’s associated object is a related object distinct from the parent object that triggers execution of the process.
5.3)
Problem 5.3 model design
Problem 5.3 results of 25 replications each with length 1200 hours and a 200 hour warm-up period
5.4)
As shown below, the half-widths for the 95% confidence interval on the average time spent by customers in the drivers’ license office system decrease by a factor of roughly \(\sqrt{n}\) for each increase in \(n\) times as many replications. The appropriate number of replications to perform in this case depends on one’s preferences or needs with regard to the precision of the resulting estimates of the performance metrics of interest. An experiment with 1000 replications of the 8-hour long business day in the office system executed in 24.7 seconds on my machine and produced an estimate of average time in system with a 95% confidence interval width under one minute, which seemed like a reasonable tradeoff between precision and runtime in this case.
res <- data.frame(replications = c(10, 25, 50, 100, 200, 300, 400, 500, 1000),
avg_time_in_system = c(37.2818, 39.2450, 39.7799,
39.9207, 40.8356, 40.9808,
40.7400, 40.6820, 40.5599),
half_width = c(3.9656, 2.6900, 1.8699,
1.3096,1.0555, 0.9029,
0.7653, 0.6762, 0.4923))
knitr::kable(res, caption = "Average time in system results versus number of replications")
| replications | avg_time_in_system | half_width |
|---|---|---|
| 10 | 37.2818 | 3.9656 |
| 25 | 39.2450 | 2.6900 |
| 50 | 39.7799 | 1.8699 |
| 100 | 39.9207 | 1.3096 |
| 200 | 40.8356 | 1.0555 |
| 300 | 40.9808 | 0.9029 |
| 400 | 40.7400 | 0.7653 |
| 500 | 40.6820 | 0.6762 |
| 1000 | 40.5599 | 0.4923 |
par(mfrow = c(1, 2))
plot(avg_time_in_system ~ replications, data = res, type = "b")
plot(half_width ~ replications, data = res, type = "b" )
Results of 1000 replications of a simulated 8-hour day at DMV office
SMORE plot for average time in system from 1000 replications
5.5)
DMV office animation