Length of simulation: 1 hour |
✅ self.maxTime = 60 |
4.3 Processing |
PODSimulation() __init__ in PodSimulation.py |
At screening station, 1% go to med eval and 99% to dispensing. At med eval station, 99% got to dispensing and 1% exit POD |
❔ Can’t find |
4.1.1 Splits |
- |
Number of forms per designee: 1 31.8%, 2 26.7%, 3 16.8%, 4 12.6%, 5 6.8%, 6 5.6% |
❔ throughput x 3.2 - so appears to be averaged to 3.2? |
Table 1 |
plotting_ staff_ results.r |
Service time line manager: triangular, minimum = 0.029, maximum = 0.039, mode = 0.044 |
❌ time = random. triangular( low=5/60.0, high=92/60.0, mode=23/60.0) . Low 5/60 = 0.0833. High 92/60 = 1.533. Mode 23/60 = 0.3833. There is one commented out which has… Low 1.77/60 = 0.0295. Higher 2.66/60 = 0.044. Mode 2.38/60 = 0.0397. This would match the article, except maximum and mode the other way round. |
Table 2 |
visit_greeter() in Customer.py |
Service time screening: weibull, shape = 2.29, scale = 0.142 |
✅ time = random. weibullvariate( alpha=0.142, beta=2.29 ) |
Table 2 |
visit_screener() in Customer.py |
Service time dispensing: weibull, shape = 1, scale = 0.311 |
✅ time = random. weibullvariate( alpha=0.311, beta=1 ) |
Table 2 |
visit_dispenser() in Customer.py |
Service time medical evaluation: lognormal, logarithmic mean = 1.024, logarithmic stdev = 0.788 |
✅ time = random. lognormvariate( mu=1.024, sigma=0.788 ) |
Table 2 |
visit_medic() in Customer.py |
Arrival rate 100 designess per minute per POD (following a Poisson distribution) |
❌ self.meanTBA = 1/200.0 #1/float(115) #mean time between arrivals, minutes btw entities . This would mean 200 arrivals per minute, rather than 100. |
4.1.4 Arrival rate |
PODSimulation() __init__ in PodSimulation.py |
Three simulation runs |
🟡 This wasn’t the case when I first started, but have already been changing this |
4.3 Processing |
main.py |
Number of staff members per station - mentions examples of where “each station could have up to thirty staff members” or “for example 60”. We know it cannot be 30, but could reasonably assume to be 60 |
🟡 This wasn’t the case when I first started, but I have already noticed and addressed, and fixed to 60. |
3 Problem and 4.3 Processing |
Staff Allocation Problem() in Staff Allocation Problem.py |
Default crossover rate 1.0 and n=1 |
✅ ea.variator = [variators. n_point_crossover] with variators imported from inspyred.ec , which can see from docs the default crossover rate is 1 and default number of crossover points is 1 |
5 Experimental results |
nsga2.py |
Experiment 1: tri-objective model, population 100, generations 50, pre-screened scenarios 10%, 20%, 30%… 90% |
✅ As in the input files like 10-prescreened.txt |
4.1.1 Splits and Figure 5 |
As left |
Experiment 2: bi-objective model, population 50, generations 25, pre-screened scenarios 10%, 20%, 30%… 90% |
TBC |
4.1.1 Splits and Figure 7 |
- |
Experiment 3: tri-objective model, pre-screened percentage ??, (a) 100 pop 50 gen (b) 200 pop 100 gen (c) 50 pop 25 gen |
TBC
Note: Where I am unsure of pre-screened percentage here, I presume it might be default from code which, if parameterReader == None , then self. preScreened Percentage = 0.1 |
5.3 Experiment 3 and Figure 8 |
-
PODSimulation() __init__ in PodSimulation.py |
Experiment 4: tri-objective model, maximum line managers 1, 2 or 3 |
TBC |
5.4 Experiment 4 and Figure 9 |
- |
Experiment 5: 6 dispensing, 6 screening, 4 line manager, one medical evaluator, number of replications 1-7 |
TBC |
5.5 Experiment 5 and Figure 10 |
- |