Simulation of a M/M/1 queue using processes

Common random numbers

In [1]:
using SimJulia
using Distributions
using RandomStreams
using Distributions

const SEED = 12345

rand_dist(rng::MRG32k3a, Dist::Distribution) = quantile(Dist, rand(rng))

seeds = [SEED, SEED, SEED, SEED, SEED, SEED]
gen = MRG32k3aGen(seeds)
Out[1]:
Seed for next MRG32k3a generator:
[12345,12345,12345,12345,12345,12345]
In [2]:
include("tally.jl")
Out[2]:
stdev (generic function with 1 method)
In [3]:
include("tallystore.jl")
Out[3]:
add (generic function with 2 methods)
In [4]:
println("M/M/1 with processes")
M/M/1 with processes
In [5]:
#rates
λ = 1.9
μ = 2.0
ρ = λ/μ
Out[5]:
0.95
In [6]:
type System
    W
    arrival
    service
    counter
    arrgen
    servgen
    
    function System(text::String)
        s = new()
        s.W = Tally(text)
        s.arrival = Exponential(1.0/λ)
        s.service = Exponential(1.0/μ)
        s.arrgen = next_stream(gen)
        s.servgen = next_stream(gen)
        return s;
    end
end

function restart(s::System)
    init(s.W)
    next_substream!(s.arrgen)
    next_substream!(s.servgen)
end

function system_set_arrival(s::System, rate::Float64)
    s.arrival = Exponential(1.0/rate)
end

function system_set_service(s::System, rate::Float64)
    s.service = Exponential(1.0/rate)
end
Out[6]:
system_set_service (generic function with 1 method)
In [7]:
s = System("Waiting Times")
Out[7]:
System(Tally("Waiting Times",0,0.0,Inf,-Inf,0.0,0.0,0.0),Distributions.Exponential{Float64}(θ=0.5263157894736842),Distributions.Exponential{Float64}(θ=0.5),#undef,Full state of MRG32k3a generator:
Cg = [12345,12345,12345,12345,12345,12345]
Bg = [12345,12345,12345,12345,12345,12345]
Ig = [12345,12345,12345,12345,12345,12345],Full state of MRG32k3a generator:
Cg = [3692455944,1366884236,2968912127,335948734,4161675175,475798818]
Bg = [3692455944,1366884236,2968912127,335948734,4161675175,475798818]
Ig = [3692455944,1366884236,2968912127,335948734,4161675175,475798818])
In [8]:
# Allow a simulation with a fixed number of clients
function source(env::Environment, s::System, limit::Float64)
    i = 0
    while (true)
        yield(Timeout(env, rand_dist(s.arrgen, s.arrival)))
        if (now(env) > limit) break end
        i += 1
        Process(env, customer, s, i)
    end
end

function source(env::Environment, s::System, nCusts::Int64)
    for i = 1:nCusts
        yield(Timeout(env, rand_dist(s.arrgen, s.arrival)))
        Process(env, customer, s, i)
    end
end

function customer(env::Environment, s::System, idx::Int)
    # Record the arrival time in the system
    arrive = now(env)
    yield(Request(s.counter))
    # The simulation clock now contains the time when the client goes to the server.
    wait = now(env) - arrive
    # Record the waiting time
    add(s.W, wait)
    yield(Timeout(env, rand_dist(s.servgen, s.service)))
    yield(Release(s.counter))
end
Out[8]:
customer (generic function with 1 method)
In [9]:
function onesim(s::System)
    nCustomers = 4000
    
    env = Environment()
    s.counter = Resource(env, 1)
    
    Process(env, source, s, nCustomers)
    run(env)
end
Out[9]:
onesim (generic function with 1 method)
In [10]:
meanWaits = TallyStore("Average waiting time")
Out[10]:
TallyStore(Float64[],Tally("Average waiting time",0,0.0,Inf,-Inf,0.0,0.0,0.0))
In [11]:
nSims = 100
Out[11]:
100
In [12]:
function simulation(s::System, mw::TallyStore)
    for n=1:nSims
        restart(s)
        onesim(s)
        w = average(s.W)
        N = nobs(s.W)
        add(mw, w)
        println("Sim $n. Average waiting time: $w. Number of observations: $N")
    end
end
Out[12]:
simulation (generic function with 1 method)
In [13]:
simulation(s, meanWaits)
Sim 1. Average waiting time: 8.063337078141043. Number of observations: 4000
Sim 2. Average waiting time: 5.2417854667011206. Number of observations: 4000
Sim 3. Average waiting time: 7.6017913198944935. Number of observations: 4000
Sim 4. Average waiting time: 6.296363224961417. Number of observations: 4000
Sim 5. Average waiting time: 8.095683340399296. Number of observations: 4000
Sim 6. Average waiting time: 4.903988427782636. Number of observations: 4000
Sim 7. Average waiting time: 6.833001851372892. Number of observations: 4000
Sim 8. Average waiting time: 9.92720878209105. Number of observations: 4000
Sim 9. Average waiting time: 3.805249867425339. Number of observations: 4000
Sim 10. Average waiting time: 5.639068201593208. Number of observations: 4000
Sim 11. Average waiting time: 11.1225862541573. Number of observations: 4000
Sim 12. Average waiting time: 12.078229676858033. Number of observations: 4000
Sim 13. Average waiting time: 6.324130693190484. Number of observations: 4000
Sim 14. Average waiting time: 16.912763654282397. Number of observations: 4000
Sim 15. Average waiting time: 6.203993760104972. Number of observations: 4000
Sim 16. Average waiting time: 4.754555820328967. Number of observations: 4000
Sim 17. Average waiting time: 11.247207930607619. Number of observations: 4000
Sim 18. Average waiting time: 11.18426223186774. Number of observations: 4000
Sim 19. Average waiting time: 13.758602182346943. Number of observations: 4000
Sim 20. Average waiting time: 14.793706700415013. Number of observations: 4000
Sim 21. Average waiting time: 8.966761596156593. Number of observations: 4000
Sim 22. Average waiting time: 10.20605680161313. Number of observations: 4000
Sim 23. Average waiting time: 6.085618042328736. Number of observations: 4000
Sim 24. Average waiting time: 12.09779574005854. Number of observations: 4000
Sim 25. Average waiting time: 7.512288635759198. Number of observations: 4000
Sim 26. Average waiting time: 11.873352461786352. Number of observations: 4000
Sim 27. Average waiting time: 10.899973813674407. Number of observations: 4000
Sim 28. Average waiting time: 11.184911949192308. Number of observations: 4000
Sim 29. Average waiting time: 15.580825761239517. Number of observations: 4000
Sim 30. Average waiting time: 11.92702348378397. Number of observations: 4000
Sim 31. Average waiting time: 9.830226424441719. Number of observations: 4000
Sim 32. Average waiting time: 6.774482300000198. Number of observations: 4000
Sim 33. Average waiting time: 11.969382763701836. Number of observations: 4000
Sim 34. Average waiting time: 14.10444783080863. Number of observations: 4000
Sim 35. Average waiting time: 8.27058878783251. Number of observations: 4000
Sim 36. Average waiting time: 10.38768418913536. Number of observations: 4000
Sim 37. Average waiting time: 7.978550233562264. Number of observations: 4000
Sim 38. Average waiting time: 19.853653341429542. Number of observations: 4000
Sim 39. Average waiting time: 8.509821654794496. Number of observations: 4000
Sim 40. Average waiting time: 9.845171713118992. Number of observations: 4000
Sim 41. Average waiting time: 19.037679049461588. Number of observations: 4000
Sim 42. Average waiting time: 7.103854791763056. Number of observations: 4000
Sim 43. Average waiting time: 4.395310024519966. Number of observations: 4000
Sim 44. Average waiting time: 12.00192905813051. Number of observations: 4000
Sim 45. Average waiting time: 10.406847889444297. Number of observations: 4000
Sim 46. Average waiting time: 7.945768858285044. Number of observations: 4000
Sim 47. Average waiting time: 7.0700911207690185. Number of observations: 4000
Sim 48. Average waiting time: 6.158249431121608. Number of observations: 4000
Sim 49. Average waiting time: 10.006826299236012. Number of observations: 4000
Sim 50. Average waiting time: 12.363300393465734. Number of observations: 4000
Sim 51. Average waiting time: 16.995153799414908. Number of observations: 4000
Sim 52. Average waiting time: 5.6493936722050195. Number of observations: 4000
Sim 53. Average waiting time: 30.029994252948196. Number of observations: 4000
Sim 54. Average waiting time: 10.27331571191081. Number of observations: 4000
Sim 55. Average waiting time: 4.370199352953128. Number of observations: 4000
Sim 56. Average waiting time: 8.677294491550313. Number of observations: 4000
Sim 57. Average waiting time: 4.464760540472231. Number of observations: 4000
Sim 58. Average waiting time: 4.192892944044971. Number of observations: 4000
Sim 59. Average waiting time: 7.413814229651145. Number of observations: 4000
Sim 60. Average waiting time: 9.082407462299626. Number of observations: 4000
Sim 61. Average waiting time: 7.055004614539725. Number of observations: 4000
Sim 62. Average waiting time: 6.757469978184063. Number of observations: 4000
Sim 63. Average waiting time: 8.615820670320863. Number of observations: 4000
Sim 64. Average waiting time: 6.911212531837047. Number of observations: 4000
Sim 65. Average waiting time: 6.197650010877345. Number of observations: 4000
Sim 66. Average waiting time: 5.717229963175681. Number of observations: 4000
Sim 67. Average waiting time: 5.4448597510381065. Number of observations: 4000
Sim 68. Average waiting time: 5.9257770018786315. Number of observations: 4000
Sim 69. Average waiting time: 11.584890497332001. Number of observations: 4000
Sim 70. Average waiting time: 4.291683886813574. Number of observations: 4000
Sim 71. Average waiting time: 11.185837580230872. Number of observations: 4000
Sim 72. Average waiting time: 5.012373589723236. Number of observations: 4000
Sim 73. Average waiting time: 13.76599830073626. Number of observations: 4000
Sim 74. Average waiting time: 5.7982770219466335. Number of observations: 4000
Sim 75. Average waiting time: 9.534266952019776. Number of observations: 4000
Sim 76. Average waiting time: 5.463890371009688. Number of observations: 4000
Sim 77. Average waiting time: 7.252491608572998. Number of observations: 4000
Sim 78. Average waiting time: 9.53789724119146. Number of observations: 4000
Sim 79. Average waiting time: 16.357877537355726. Number of observations: 4000
Sim 80. Average waiting time: 4.562642511598739. Number of observations: 4000
Sim 81. Average waiting time: 12.21411214796577. Number of observations: 4000
Sim 82. Average waiting time: 10.313322864185835. Number of observations: 4000
Sim 83. Average waiting time: 7.664135898834047. Number of observations: 4000
Sim 84. Average waiting time: 3.5659624969057413. Number of observations: 4000
Sim 85. Average waiting time: 4.851874086742599. Number of observations: 4000
Sim 86. Average waiting time: 6.064682737157665. Number of observations: 4000
Sim 87. Average waiting time: 18.486644470394403. Number of observations: 4000
Sim 88. Average waiting time: 9.390166985803603. Number of observations: 4000
Sim 89. Average waiting time: 18.36466174434639. Number of observations: 4000
Sim 90. Average waiting time: 6.631726846435196. Number of observations: 4000
Sim 91. Average waiting time: 6.847363527211497. Number of observations: 4000
Sim 92. Average waiting time: 7.414624455294941. Number of observations: 4000
Sim 93. Average waiting time: 10.697910711569351. Number of observations: 4000
Sim 94. Average waiting time: 4.543308532605163. Number of observations: 4000
Sim 95. Average waiting time: 5.53714935273294. Number of observations: 4000
Sim 96. Average waiting time: 7.423610754376258. Number of observations: 4000
Sim 97. Average waiting time: 6.479320242360894. Number of observations: 4000
Sim 98. Average waiting time: 7.921296538563281. Number of observations: 4000
Sim 99. Average waiting time: 8.218452978719807. Number of observations: 4000
Sim 100. Average waiting time: 6.082780484588557. Number of observations: 4000
In [14]:
function ci_normal(n::Int64, mean::Float64, stdev::Float64, α::Float64)
    z = quantile(Normal(), 1-α/2)
    w = z*stdev/sqrt(n)
    # Lower bound
    l = mean - w
    # Upper bound
    u = mean + w
    
    return l, u
end
Out[14]:
ci_normal (generic function with 1 method)
In [15]:
ci_normal(nobs(meanWaits.t), average(meanWaits.t), stdev(meanWaits.t), 0.05)
Out[15]:
(8.283602799795442,9.955826736999832)
In [16]:
function ci_tdist(n::Int64, mean::Float64, stdev::Float64, α::Float64)
    z = quantile(TDist(n-1), 1-α/2)
    w = z*stdev/sqrt(n)
    # Lower bound
    l = mean - w
    # Upper bound
    u = mean + w
    
    return l, u
end
Out[16]:
ci_tdist (generic function with 1 method)
In [17]:
ci_tdist(nobs(meanWaits.t)-1, average(meanWaits.t), stdev(meanWaits.t), 0.05)
Out[17]:
(8.268884889585166,9.970544647210108)

Average waiting time according to M/M/1 formulas. In stationnary regime, the mean waiting time is $$ \overline{W} = \frac{\frac{\rho}{\mu}}{1-\rho} = \frac{\rho}{\mu-\lambda}. $$

In [18]:
w = (ρ/μ)/(1-ρ)
Out[18]:
9.499999999999991
In [19]:
meanWaitsFast = TallyStore("Average waiting time in improved system")
Out[19]:
TallyStore(Float64[],Tally("Average waiting time in improved system",0,0.0,Inf,-Inf,0.0,0.0,0.0))
In [20]:
μFast = 2.05
ρFast= λ/μFast

wFast = (ρFast/μFast)/(1-ρFast)
Out[20]:
6.1788617886178905
In [21]:
system_set_service(s, μFast)
Out[21]:
Distributions.Exponential{Float64}(θ=0.48780487804878053)
In [22]:
simulation(s, meanWaitsFast)
Sim 1. Average waiting time: 4.279759918860097. Number of observations: 4000
Sim 2. Average waiting time: 10.177509503512976. Number of observations: 4000
Sim 3. Average waiting time: 4.168677522108386. Number of observations: 4000
Sim 4. Average waiting time: 5.017804311514114. Number of observations: 4000
Sim 5. Average waiting time: 7.342214473335145. Number of observations: 4000
Sim 6. Average waiting time: 13.102297909365122. Number of observations: 4000
Sim 7. Average waiting time: 3.558567111908596. Number of observations: 4000
Sim 8. Average waiting time: 4.909200629679188. Number of observations: 4000
Sim 9. Average waiting time: 3.9430384478510936. Number of observations: 4000
Sim 10. Average waiting time: 5.583225511302099. Number of observations: 4000
Sim 11. Average waiting time: 8.280104057604865. Number of observations: 4000
Sim 12. Average waiting time: 7.279173222990389. Number of observations: 4000
Sim 13. Average waiting time: 6.579745395803486. Number of observations: 4000
Sim 14. Average waiting time: 4.777551975460757. Number of observations: 4000
Sim 15. Average waiting time: 3.529209864704178. Number of observations: 4000
Sim 16. Average waiting time: 5.266916403103216. Number of observations: 4000
Sim 17. Average waiting time: 5.251509649690806. Number of observations: 4000
Sim 18. Average waiting time: 7.753768531111667. Number of observations: 4000
Sim 19. Average waiting time: 8.196819813287096. Number of observations: 4000
Sim 20. Average waiting time: 6.4370872075168695. Number of observations: 4000
Sim 21. Average waiting time: 6.553688245674227. Number of observations: 4000
Sim 22. Average waiting time: 4.544467530019781. Number of observations: 4000
Sim 23. Average waiting time: 6.051229725571569. Number of observations: 4000
Sim 24. Average waiting time: 5.869885944504792. Number of observations: 4000
Sim 25. Average waiting time: 3.4426093386995813. Number of observations: 4000
Sim 26. Average waiting time: 3.725247760542383. Number of observations: 4000
Sim 27. Average waiting time: 5.8834496569296535. Number of observations: 4000
Sim 28. Average waiting time: 3.996089052008425. Number of observations: 4000
Sim 29. Average waiting time: 5.385216368660892. Number of observations: 4000
Sim 30. Average waiting time: 4.726848198779579. Number of observations: 4000
Sim 31. Average waiting time: 6.562601820281692. Number of observations: 4000
Sim 32. Average waiting time: 3.8513802643699715. Number of observations: 4000
Sim 33. Average waiting time: 5.256826634223862. Number of observations: 4000
Sim 34. Average waiting time: 8.959700547427586. Number of observations: 4000
Sim 35. Average waiting time: 5.178425313615659. Number of observations: 4000
Sim 36. Average waiting time: 5.33593380218046. Number of observations: 4000
Sim 37. Average waiting time: 2.9322723388974072. Number of observations: 4000
Sim 38. Average waiting time: 4.060886979313907. Number of observations: 4000
Sim 39. Average waiting time: 4.626436058713331. Number of observations: 4000
Sim 40. Average waiting time: 4.81315691779781. Number of observations: 4000
Sim 41. Average waiting time: 3.7267403483678123. Number of observations: 4000
Sim 42. Average waiting time: 3.3791921023006415. Number of observations: 4000
Sim 43. Average waiting time: 4.782632078890316. Number of observations: 4000
Sim 44. Average waiting time: 4.170640986544979. Number of observations: 4000
Sim 45. Average waiting time: 4.949221115079783. Number of observations: 4000
Sim 46. Average waiting time: 4.396041629111135. Number of observations: 4000
Sim 47. Average waiting time: 8.095523841747886. Number of observations: 4000
Sim 48. Average waiting time: 3.617966823315558. Number of observations: 4000
Sim 49. Average waiting time: 7.141743080856297. Number of observations: 4000
Sim 50. Average waiting time: 5.857171222174298. Number of observations: 4000
Sim 51. Average waiting time: 7.226852332268606. Number of observations: 4000
Sim 52. Average waiting time: 5.281461347973109. Number of observations: 4000
Sim 53. Average waiting time: 3.871582673787786. Number of observations: 4000
Sim 54. Average waiting time: 5.901709905211276. Number of observations: 4000
Sim 55. Average waiting time: 10.23162206284704. Number of observations: 4000
Sim 56. Average waiting time: 4.4684316392325165. Number of observations: 4000
Sim 57. Average waiting time: 3.288627384749185. Number of observations: 4000
Sim 58. Average waiting time: 8.124897560037239. Number of observations: 4000
Sim 59. Average waiting time: 4.958945593105433. Number of observations: 4000
Sim 60. Average waiting time: 16.476983289268162. Number of observations: 4000
Sim 61. Average waiting time: 7.718868207938147. Number of observations: 4000
Sim 62. Average waiting time: 5.5046205675122675. Number of observations: 4000
Sim 63. Average waiting time: 8.08701726785819. Number of observations: 4000
Sim 64. Average waiting time: 4.777013623583027. Number of observations: 4000
Sim 65. Average waiting time: 4.301271658401115. Number of observations: 4000
Sim 66. Average waiting time: 4.438098329583884. Number of observations: 4000
Sim 67. Average waiting time: 3.7624714094732545. Number of observations: 4000
Sim 68. Average waiting time: 12.481767937129959. Number of observations: 4000
Sim 69. Average waiting time: 6.842378740585987. Number of observations: 4000
Sim 70. Average waiting time: 4.969545306216783. Number of observations: 4000
Sim 71. Average waiting time: 5.377897005114712. Number of observations: 4000
Sim 72. Average waiting time: 5.723499562419275. Number of observations: 4000
Sim 73. Average waiting time: 5.812537686523188. Number of observations: 4000
Sim 74. Average waiting time: 5.570525114349452. Number of observations: 4000
Sim 75. Average waiting time: 5.2331853668414325. Number of observations: 4000
Sim 76. Average waiting time: 6.815021219380606. Number of observations: 4000
Sim 77. Average waiting time: 8.099443392170409. Number of observations: 4000
Sim 78. Average waiting time: 9.343742566564876. Number of observations: 4000
Sim 79. Average waiting time: 7.720721040890094. Number of observations: 4000
Sim 80. Average waiting time: 4.592459289122044. Number of observations: 4000
Sim 81. Average waiting time: 4.3745664688389105. Number of observations: 4000
Sim 82. Average waiting time: 5.159781924649548. Number of observations: 4000
Sim 83. Average waiting time: 6.868837850328132. Number of observations: 4000
Sim 84. Average waiting time: 14.874158020474026. Number of observations: 4000
Sim 85. Average waiting time: 7.045198713916511. Number of observations: 4000
Sim 86. Average waiting time: 2.977309395230374. Number of observations: 4000
Sim 87. Average waiting time: 4.4752532602660775. Number of observations: 4000
Sim 88. Average waiting time: 9.528850190573829. Number of observations: 4000
Sim 89. Average waiting time: 4.899707026114457. Number of observations: 4000
Sim 90. Average waiting time: 5.9144643144755165. Number of observations: 4000
Sim 91. Average waiting time: 6.578948814771626. Number of observations: 4000
Sim 92. Average waiting time: 6.149753529258262. Number of observations: 4000
Sim 93. Average waiting time: 5.813107331104399. Number of observations: 4000
Sim 94. Average waiting time: 3.9568457724446295. Number of observations: 4000
Sim 95. Average waiting time: 3.3250209766366656. Number of observations: 4000
Sim 96. Average waiting time: 6.334364506565634. Number of observations: 4000
Sim 97. Average waiting time: 5.1529839986811625. Number of observations: 4000
Sim 98. Average waiting time: 3.233557100433468. Number of observations: 4000
Sim 99. Average waiting time: 4.898820451011451. Number of observations: 4000
Sim 100. Average waiting time: 4.433751291379696. Number of observations: 4000
In [23]:
Δ = Tally("Difference of systems")

for i = 1:nSims
    add(Δ, meanWaits.obs[i]-meanWaitsFast.obs[i])
end

ci_tdist(nobs(Δ)-1, average(Δ), stdev(Δ), 0.05)
Out[23]:
(2.19847027874309,4.234841513960088)
In [24]:
cor(meanWaits.obs, meanWaitsFast.obs)
Out[24]:
-0.10660603889619878
In [25]:
reset_stream!(s.arrgen)
reset_stream!(s.servgen)

meanWaitsFast = TallyStore("Average waiting time in improved system")
Out[25]:
TallyStore(Float64[],Tally("Average waiting time in improved system",0,0.0,Inf,-Inf,0.0,0.0,0.0))
In [26]:
simulation(s, meanWaitsFast)
Sim 1. Average waiting time: 5.74341262357014. Number of observations: 4000
Sim 2. Average waiting time: 3.956450123015612. Number of observations: 4000
Sim 3. Average waiting time: 4.757521445441934. Number of observations: 4000
Sim 4. Average waiting time: 4.40488142615353. Number of observations: 4000
Sim 5. Average waiting time: 5.911760171993039. Number of observations: 4000
Sim 6. Average waiting time: 3.881501639774835. Number of observations: 4000
Sim 7. Average waiting time: 5.022509396530369. Number of observations: 4000
Sim 8. Average waiting time: 6.972364146977035. Number of observations: 4000
Sim 9. Average waiting time: 2.9996531621157527. Number of observations: 4000
Sim 10. Average waiting time: 4.229132771032018. Number of observations: 4000
Sim 11. Average waiting time: 8.050200999794447. Number of observations: 4000
Sim 12. Average waiting time: 7.092506368166094. Number of observations: 4000
Sim 13. Average waiting time: 4.558642572614625. Number of observations: 4000
Sim 14. Average waiting time: 11.766806131311565. Number of observations: 4000
Sim 15. Average waiting time: 4.705696787235303. Number of observations: 4000
Sim 16. Average waiting time: 3.658157850661415. Number of observations: 4000
Sim 17. Average waiting time: 7.32495570346927. Number of observations: 4000
Sim 18. Average waiting time: 7.422793418874324. Number of observations: 4000
Sim 19. Average waiting time: 9.030059818188228. Number of observations: 4000
Sim 20. Average waiting time: 7.789260512571385. Number of observations: 4000
Sim 21. Average waiting time: 6.725674747627017. Number of observations: 4000
Sim 22. Average waiting time: 6.594495707544716. Number of observations: 4000
Sim 23. Average waiting time: 4.418957349079708. Number of observations: 4000
Sim 24. Average waiting time: 7.228574846904577. Number of observations: 4000
Sim 25. Average waiting time: 5.744446480715875. Number of observations: 4000
Sim 26. Average waiting time: 7.604970649409856. Number of observations: 4000
Sim 27. Average waiting time: 6.955904757284553. Number of observations: 4000
Sim 28. Average waiting time: 6.572530318791489. Number of observations: 4000
Sim 29. Average waiting time: 7.143215426363552. Number of observations: 4000
Sim 30. Average waiting time: 7.882045781361246. Number of observations: 4000
Sim 31. Average waiting time: 5.7740201162414335. Number of observations: 4000
Sim 32. Average waiting time: 5.2356978200901025. Number of observations: 4000
Sim 33. Average waiting time: 8.222928038102959. Number of observations: 4000
Sim 34. Average waiting time: 9.375062236203743. Number of observations: 4000
Sim 35. Average waiting time: 6.013099036315905. Number of observations: 4000
Sim 36. Average waiting time: 7.2084119906044135. Number of observations: 4000
Sim 37. Average waiting time: 5.375733701541242. Number of observations: 4000
Sim 38. Average waiting time: 9.724498767703805. Number of observations: 4000
Sim 39. Average waiting time: 6.639716057932086. Number of observations: 4000
Sim 40. Average waiting time: 6.561739933323145. Number of observations: 4000
Sim 41. Average waiting time: 9.652964528023674. Number of observations: 4000
Sim 42. Average waiting time: 5.336125995772721. Number of observations: 4000
Sim 43. Average waiting time: 3.4264916916995376. Number of observations: 4000
Sim 44. Average waiting time: 6.938107334445527. Number of observations: 4000
Sim 45. Average waiting time: 7.8976118486028986. Number of observations: 4000
Sim 46. Average waiting time: 5.222943968919067. Number of observations: 4000
Sim 47. Average waiting time: 5.533584219082449. Number of observations: 4000
Sim 48. Average waiting time: 4.3415998937245215. Number of observations: 4000
Sim 49. Average waiting time: 6.138010871216818. Number of observations: 4000
Sim 50. Average waiting time: 7.2686273946805215. Number of observations: 4000
Sim 51. Average waiting time: 10.718873169061684. Number of observations: 4000
Sim 52. Average waiting time: 4.28871848687378. Number of observations: 4000
Sim 53. Average waiting time: 11.732029356271216. Number of observations: 4000
Sim 54. Average waiting time: 8.033310440940028. Number of observations: 4000
Sim 55. Average waiting time: 3.4749124191340472. Number of observations: 4000
Sim 56. Average waiting time: 6.350483137130938. Number of observations: 4000
Sim 57. Average waiting time: 3.3986634085104717. Number of observations: 4000
Sim 58. Average waiting time: 3.5378243896240447. Number of observations: 4000
Sim 59. Average waiting time: 5.399101572691523. Number of observations: 4000
Sim 60. Average waiting time: 5.42922735040382. Number of observations: 4000
Sim 61. Average waiting time: 5.221666023603935. Number of observations: 4000
Sim 62. Average waiting time: 4.804479819239238. Number of observations: 4000
Sim 63. Average waiting time: 5.773410803954223. Number of observations: 4000
Sim 64. Average waiting time: 4.8347343351548675. Number of observations: 4000
Sim 65. Average waiting time: 4.650152836486698. Number of observations: 4000
Sim 66. Average waiting time: 4.042739321045111. Number of observations: 4000
Sim 67. Average waiting time: 4.354641576415458. Number of observations: 4000
Sim 68. Average waiting time: 4.469679992432449. Number of observations: 4000
Sim 69. Average waiting time: 8.722552950333768. Number of observations: 4000
Sim 70. Average waiting time: 3.4371655355950477. Number of observations: 4000
Sim 71. Average waiting time: 8.112765623175196. Number of observations: 4000
Sim 72. Average waiting time: 3.4531463814650594. Number of observations: 4000
Sim 73. Average waiting time: 10.044980839974759. Number of observations: 4000
Sim 74. Average waiting time: 4.600814097271703. Number of observations: 4000
Sim 75. Average waiting time: 7.850208666590964. Number of observations: 4000
Sim 76. Average waiting time: 4.318222094446275. Number of observations: 4000
Sim 77. Average waiting time: 4.872866945638906. Number of observations: 4000
Sim 78. Average waiting time: 7.201891495141554. Number of observations: 4000
Sim 79. Average waiting time: 9.751860141620133. Number of observations: 4000
Sim 80. Average waiting time: 3.4590298683279435. Number of observations: 4000
Sim 81. Average waiting time: 9.144592977221064. Number of observations: 4000
Sim 82. Average waiting time: 7.487782563974803. Number of observations: 4000
Sim 83. Average waiting time: 6.0447010282599685. Number of observations: 4000
Sim 84. Average waiting time: 3.0301466044024594. Number of observations: 4000
Sim 85. Average waiting time: 3.7686587130589673. Number of observations: 4000
Sim 86. Average waiting time: 4.7123470211091565. Number of observations: 4000
Sim 87. Average waiting time: 11.80777260783196. Number of observations: 4000
Sim 88. Average waiting time: 6.492310872095547. Number of observations: 4000
Sim 89. Average waiting time: 10.732035833389325. Number of observations: 4000
Sim 90. Average waiting time: 4.632958288000859. Number of observations: 4000
Sim 91. Average waiting time: 5.283350166530679. Number of observations: 4000
Sim 92. Average waiting time: 5.490576941571352. Number of observations: 4000
Sim 93. Average waiting time: 7.0576633563180176. Number of observations: 4000
Sim 94. Average waiting time: 3.6673006307401046. Number of observations: 4000
Sim 95. Average waiting time: 3.9824467964933175. Number of observations: 4000
Sim 96. Average waiting time: 5.6310684668322395. Number of observations: 4000
Sim 97. Average waiting time: 4.8899635233369905. Number of observations: 4000
Sim 98. Average waiting time: 5.559777134649504. Number of observations: 4000
Sim 99. Average waiting time: 5.906050956589208. Number of observations: 4000
Sim 100. Average waiting time: 4.6809514301318425. Number of observations: 4000
In [27]:
Δ = Tally("Difference of systems")

for i = 1:nSims
    add(Δ, meanWaits.obs[i]-meanWaitsFast.obs[i])
end

ci_tdist(nobs(Δ)-1, average(Δ), stdev(Δ), 0.05)
Out[27]:
(2.487136895265628,3.464719290131804)
In [28]:
cor(meanWaits.obs, meanWaitsFast.obs)
Out[28]:
0.9271227028850821

Antithetic variates

In [29]:
function source_av(env::Environment, s::System, limit::Float64)
    i = 0
    while (true)
        u = rand(s.arrgen)
        if (arrival_av)
            u = 1-u
        end
        yield(Timeout(env, quantile(s.arrival, u)))
        if (now(env) > limit) break end
        i += 1
        Process(env, customer_av, s, i)
    end
end

function source_av(env::Environment, s::System, nCusts::Int64)
    for i = 1:nCusts
        u = rand(s.arrgen)
        if (arrival_av)
            u = 1-u
        end
        yield(Timeout(env, quantile(s.arrival, u)))
        Process(env, customer_av, s, i)
    end
end

function customer_av(env::Environment, s::System, idx::Int)
    # Record the arrival time in the system
    arrive = now(env)
    yield(Request(s.counter))
    # The simulation clock now contains the time when the client goes to the server.
    wait = now(env) - arrive
    # Record the waiting time
    add(s.W, wait)
    u = rand(s.servgen)
    if (service_av)
        u = 1-u
    end
    yield(Timeout(env, quantile(s.service, u)))
    yield(Release(s.counter))
end
Out[29]:
customer_av (generic function with 1 method)
In [30]:
function onesim_av(s::System)
    nCustomers = 10000
    
    env = Environment()
    s.counter = Resource(env, 1)
    
    Process(env, source_av, s, nCustomers)
    run(env)
end
Out[30]:
onesim_av (generic function with 1 method)
In [31]:
function simulation_av(s::System, mw::TallyStore)
    for n=1:nSims
        restart(s)
        onesim_av(s)
        w = average(s.W)
        N = nobs(s.W)
        add(mw, w)
        println("Sim $n. Average waiting time: $w. Number of observations: $N")
    end
end
Out[31]:
simulation_av (generic function with 1 method)
In [32]:
reset_stream!(s.arrgen)
reset_stream!(s.servgen)

system_set_service(s, μ)

arrival_av = false
service_av = false

nSims = 100

meanWaits = TallyStore("Average waiting time")

simulation_av(s, meanWaits)
Sim 1. Average waiting time: 7.550875546475624. Number of observations: 10000
Sim 2. Average waiting time: 6.135640065836502. Number of observations: 10000
Sim 3. Average waiting time: 18.479700395704146. Number of observations: 10000
Sim 4. Average waiting time: 7.1030035604970845. Number of observations: 10000
Sim 5. Average waiting time: 8.403267787576848. Number of observations: 10000
Sim 6. Average waiting time: 6.415659416467969. Number of observations: 10000
Sim 7. Average waiting time: 8.73956120790153. Number of observations: 10000
Sim 8. Average waiting time: 13.827590833432248. Number of observations: 10000
Sim 9. Average waiting time: 7.2529369795613725. Number of observations: 10000
Sim 10. Average waiting time: 6.972471705468727. Number of observations: 10000
Sim 11. Average waiting time: 25.000757727815806. Number of observations: 10000
Sim 12. Average waiting time: 10.403505705804962. Number of observations: 10000
Sim 13. Average waiting time: 6.573875031066891. Number of observations: 10000
Sim 14. Average waiting time: 10.59801953586115. Number of observations: 10000
Sim 15. Average waiting time: 8.302029107642944. Number of observations: 10000
Sim 16. Average waiting time: 7.670967466513667. Number of observations: 10000
Sim 17. Average waiting time: 9.775903650802116. Number of observations: 10000
Sim 18. Average waiting time: 9.161448453860864. Number of observations: 10000
Sim 19. Average waiting time: 12.137548343076784. Number of observations: 10000
Sim 20. Average waiting time: 8.59635881725057. Number of observations: 10000
Sim 21. Average waiting time: 7.312929088624517. Number of observations: 10000
Sim 22. Average waiting time: 8.082020323542743. Number of observations: 10000
Sim 23. Average waiting time: 5.796859303524818. Number of observations: 10000
Sim 24. Average waiting time: 8.7250996977843. Number of observations: 10000
Sim 25. Average waiting time: 10.567276957996386. Number of observations: 10000
Sim 26. Average waiting time: 8.35159955100831. Number of observations: 10000
Sim 27. Average waiting time: 7.846275921044625. Number of observations: 10000
Sim 28. Average waiting time: 8.899368987086719. Number of observations: 10000
Sim 29. Average waiting time: 12.597841058981693. Number of observations: 10000
Sim 30. Average waiting time: 8.750700947098036. Number of observations: 10000
Sim 31. Average waiting time: 12.21515119475553. Number of observations: 10000
Sim 32. Average waiting time: 8.52527734482534. Number of observations: 10000
Sim 33. Average waiting time: 8.680207530971977. Number of observations: 10000
Sim 34. Average waiting time: 10.848071147112938. Number of observations: 10000
Sim 35. Average waiting time: 6.636960390277445. Number of observations: 10000
Sim 36. Average waiting time: 10.15161077276834. Number of observations: 10000
Sim 37. Average waiting time: 18.472365677350737. Number of observations: 10000
Sim 38. Average waiting time: 12.465040782002. Number of observations: 10000
Sim 39. Average waiting time: 15.672132998968967. Number of observations: 10000
Sim 40. Average waiting time: 8.39655186879722. Number of observations: 10000
Sim 41. Average waiting time: 12.468352534821092. Number of observations: 10000
Sim 42. Average waiting time: 6.745994420404428. Number of observations: 10000
Sim 43. Average waiting time: 6.393493809960708. Number of observations: 10000
Sim 44. Average waiting time: 10.785812374891092. Number of observations: 10000
Sim 45. Average waiting time: 8.358377212698135. Number of observations: 10000
Sim 46. Average waiting time: 11.640812378656275. Number of observations: 10000
Sim 47. Average waiting time: 7.708491948405319. Number of observations: 10000
Sim 48. Average waiting time: 6.610284958413338. Number of observations: 10000
Sim 49. Average waiting time: 8.349272036464981. Number of observations: 10000
Sim 50. Average waiting time: 10.040841692337187. Number of observations: 10000
Sim 51. Average waiting time: 19.252682756661844. Number of observations: 10000
Sim 52. Average waiting time: 5.256290598915242. Number of observations: 10000
Sim 53. Average waiting time: 23.398687352001488. Number of observations: 10000
Sim 54. Average waiting time: 11.38000216727769. Number of observations: 10000
Sim 55. Average waiting time: 8.220315531084587. Number of observations: 10000
Sim 56. Average waiting time: 7.5673280082090635. Number of observations: 10000
Sim 57. Average waiting time: 10.028287913393807. Number of observations: 10000
Sim 58. Average waiting time: 8.229687683095229. Number of observations: 10000
Sim 59. Average waiting time: 9.765994102863353. Number of observations: 10000
Sim 60. Average waiting time: 9.098813984165014. Number of observations: 10000
Sim 61. Average waiting time: 8.42558901744938. Number of observations: 10000
Sim 62. Average waiting time: 5.610610870643271. Number of observations: 10000
Sim 63. Average waiting time: 7.375631305064171. Number of observations: 10000
Sim 64. Average waiting time: 7.696562549029279. Number of observations: 10000
Sim 65. Average waiting time: 6.678604708627378. Number of observations: 10000
Sim 66. Average waiting time: 8.982336545700855. Number of observations: 10000
Sim 67. Average waiting time: 15.521364809294722. Number of observations: 10000
Sim 68. Average waiting time: 6.0131431880542525. Number of observations: 10000
Sim 69. Average waiting time: 8.475354599687648. Number of observations: 10000
Sim 70. Average waiting time: 6.835090794667892. Number of observations: 10000
Sim 71. Average waiting time: 11.004517757543574. Number of observations: 10000
Sim 72. Average waiting time: 4.333467973786756. Number of observations: 10000
Sim 73. Average waiting time: 14.236020681448935. Number of observations: 10000
Sim 74. Average waiting time: 8.752754742403631. Number of observations: 10000
Sim 75. Average waiting time: 8.352449176930318. Number of observations: 10000
Sim 76. Average waiting time: 7.832362865396419. Number of observations: 10000
Sim 77. Average waiting time: 7.3480511423385035. Number of observations: 10000
Sim 78. Average waiting time: 7.363887962772469. Number of observations: 10000
Sim 79. Average waiting time: 10.239940177557065. Number of observations: 10000
Sim 80. Average waiting time: 10.99086745663789. Number of observations: 10000
Sim 81. Average waiting time: 12.987964211500442. Number of observations: 10000
Sim 82. Average waiting time: 9.156572585651364. Number of observations: 10000
Sim 83. Average waiting time: 9.987819465134903. Number of observations: 10000
Sim 84. Average waiting time: 6.224500234931603. Number of observations: 10000
Sim 85. Average waiting time: 4.309563619007913. Number of observations: 10000
Sim 86. Average waiting time: 6.099212347029085. Number of observations: 10000
Sim 87. Average waiting time: 19.781836101003204. Number of observations: 10000
Sim 88. Average waiting time: 9.42091418306728. Number of observations: 10000
Sim 89. Average waiting time: 17.44075038328643. Number of observations: 10000
Sim 90. Average waiting time: 11.09368379323515. Number of observations: 10000
Sim 91. Average waiting time: 5.855314115022598. Number of observations: 10000
Sim 92. Average waiting time: 5.287724985892333. Number of observations: 10000
Sim 93. Average waiting time: 7.671024147330372. Number of observations: 10000
Sim 94. Average waiting time: 5.934812617614721. Number of observations: 10000
Sim 95. Average waiting time: 7.583350457447502. Number of observations: 10000
Sim 96. Average waiting time: 8.426929923217156. Number of observations: 10000
Sim 97. Average waiting time: 8.40186894534914. Number of observations: 10000
Sim 98. Average waiting time: 8.587434937736656. Number of observations: 10000
Sim 99. Average waiting time: 6.846353251046987. Number of observations: 10000
Sim 100. Average waiting time: 5.946051568878529. Number of observations: 10000
In [33]:
ci_tdist(nobs(meanWaits.t)-1, average(meanWaits.t), stdev(meanWaits.t), 0.05)
Out[33]:
(8.729965100548558,10.240166430376991)
In [34]:
reset_stream!(s.arrgen)
#reset_stream!(s.servgen)

arrival_av = true
service_av = false

meanWaitsAV = TallyStore("Average waiting time - AV")

simulation_av(s, meanWaitsAV)
Sim 1. Average waiting time: 7.9813040523646075. Number of observations: 10000
Sim 2. Average waiting time: 14.155589226275314. Number of observations: 10000
Sim 3. Average waiting time: 5.907469949839986. Number of observations: 10000
Sim 4. Average waiting time: 6.948451581724155. Number of observations: 10000
Sim 5. Average waiting time: 7.0310024711250785. Number of observations: 10000
Sim 6. Average waiting time: 13.013587922161921. Number of observations: 10000
Sim 7. Average waiting time: 6.878407342029873. Number of observations: 10000
Sim 8. Average waiting time: 7.242959742501776. Number of observations: 10000
Sim 9. Average waiting time: 10.489788804894689. Number of observations: 10000
Sim 10. Average waiting time: 14.490326217652342. Number of observations: 10000
Sim 11. Average waiting time: 9.430398719949842. Number of observations: 10000
Sim 12. Average waiting time: 7.548676492874876. Number of observations: 10000
Sim 13. Average waiting time: 11.178156439000968. Number of observations: 10000
Sim 14. Average waiting time: 11.32015887525315. Number of observations: 10000
Sim 15. Average waiting time: 7.501423483735078. Number of observations: 10000
Sim 16. Average waiting time: 11.059275404872837. Number of observations: 10000
Sim 17. Average waiting time: 7.874813297294642. Number of observations: 10000
Sim 18. Average waiting time: 9.81101172404319. Number of observations: 10000
Sim 19. Average waiting time: 7.547860865489219. Number of observations: 10000
Sim 20. Average waiting time: 8.52184761504947. Number of observations: 10000
Sim 21. Average waiting time: 10.250587240675728. Number of observations: 10000
Sim 22. Average waiting time: 11.776748077205994. Number of observations: 10000
Sim 23. Average waiting time: 11.943104774055136. Number of observations: 10000
Sim 24. Average waiting time: 9.274382754990544. Number of observations: 10000
Sim 25. Average waiting time: 10.387289642446007. Number of observations: 10000
Sim 26. Average waiting time: 7.705898531951146. Number of observations: 10000
Sim 27. Average waiting time: 9.941810233376655. Number of observations: 10000
Sim 28. Average waiting time: 10.937607190419772. Number of observations: 10000
Sim 29. Average waiting time: 8.736703921067178. Number of observations: 10000
Sim 30. Average waiting time: 6.547954304679287. Number of observations: 10000
Sim 31. Average waiting time: 9.981349375634563. Number of observations: 10000
Sim 32. Average waiting time: 6.762413513175495. Number of observations: 10000
Sim 33. Average waiting time: 7.74620683110541. Number of observations: 10000
Sim 34. Average waiting time: 8.184153702754935. Number of observations: 10000
Sim 35. Average waiting time: 7.097059272293487. Number of observations: 10000
Sim 36. Average waiting time: 8.217812668273586. Number of observations: 10000
Sim 37. Average waiting time: 5.6875190311215365. Number of observations: 10000
Sim 38. Average waiting time: 7.227732967793065. Number of observations: 10000
Sim 39. Average waiting time: 4.901905692378537. Number of observations: 10000
Sim 40. Average waiting time: 10.80904933288875. Number of observations: 10000
Sim 41. Average waiting time: 5.919725629567396. Number of observations: 10000
Sim 42. Average waiting time: 8.349464158936266. Number of observations: 10000
Sim 43. Average waiting time: 6.916146089279047. Number of observations: 10000
Sim 44. Average waiting time: 7.970759294493618. Number of observations: 10000
Sim 45. Average waiting time: 7.955245718337018. Number of observations: 10000
Sim 46. Average waiting time: 15.322393191435328. Number of observations: 10000
Sim 47. Average waiting time: 5.9951976126830155. Number of observations: 10000
Sim 48. Average waiting time: 6.9736039643226295. Number of observations: 10000
Sim 49. Average waiting time: 19.66080618237817. Number of observations: 10000
Sim 50. Average waiting time: 11.791252671539503. Number of observations: 10000
Sim 51. Average waiting time: 8.983441895479611. Number of observations: 10000
Sim 52. Average waiting time: 12.872325661265815. Number of observations: 10000
Sim 53. Average waiting time: 9.614925203707855. Number of observations: 10000
Sim 54. Average waiting time: 8.786133262506757. Number of observations: 10000
Sim 55. Average waiting time: 11.849023926027504. Number of observations: 10000
Sim 56. Average waiting time: 6.42253220437156. Number of observations: 10000
Sim 57. Average waiting time: 6.136753515123832. Number of observations: 10000
Sim 58. Average waiting time: 12.67374732815836. Number of observations: 10000
Sim 59. Average waiting time: 7.465788574643062. Number of observations: 10000
Sim 60. Average waiting time: 9.130103864294403. Number of observations: 10000
Sim 61. Average waiting time: 6.908928210643598. Number of observations: 10000
Sim 62. Average waiting time: 8.642531809233846. Number of observations: 10000
Sim 63. Average waiting time: 9.193492399747205. Number of observations: 10000
Sim 64. Average waiting time: 18.49517502981537. Number of observations: 10000
Sim 65. Average waiting time: 13.86715354450401. Number of observations: 10000
Sim 66. Average waiting time: 10.425490337885336. Number of observations: 10000
Sim 67. Average waiting time: 6.66686441249132. Number of observations: 10000
Sim 68. Average waiting time: 6.741253599106594. Number of observations: 10000
Sim 69. Average waiting time: 7.894685750968362. Number of observations: 10000
Sim 70. Average waiting time: 11.329374707993155. Number of observations: 10000
Sim 71. Average waiting time: 8.015290684845455. Number of observations: 10000
Sim 72. Average waiting time: 10.22093217480076. Number of observations: 10000
Sim 73. Average waiting time: 11.15039126487445. Number of observations: 10000
Sim 74. Average waiting time: 7.116310331561096. Number of observations: 10000
Sim 75. Average waiting time: 13.305616161531226. Number of observations: 10000
Sim 76. Average waiting time: 6.410028603397518. Number of observations: 10000
Sim 77. Average waiting time: 12.362672029363763. Number of observations: 10000
Sim 78. Average waiting time: 8.015245710200816. Number of observations: 10000
Sim 79. Average waiting time: 7.34337012096045. Number of observations: 10000
Sim 80. Average waiting time: 8.972591098473444. Number of observations: 10000
Sim 81. Average waiting time: 6.933334909732995. Number of observations: 10000
Sim 82. Average waiting time: 18.087533382124715. Number of observations: 10000
Sim 83. Average waiting time: 8.418142434611154. Number of observations: 10000
Sim 84. Average waiting time: 14.963917361447976. Number of observations: 10000
Sim 85. Average waiting time: 8.838470054287914. Number of observations: 10000
Sim 86. Average waiting time: 10.758151375708703. Number of observations: 10000
Sim 87. Average waiting time: 6.744728534715328. Number of observations: 10000
Sim 88. Average waiting time: 6.593166719209785. Number of observations: 10000
Sim 89. Average waiting time: 5.97762161062145. Number of observations: 10000
Sim 90. Average waiting time: 8.772018081439597. Number of observations: 10000
Sim 91. Average waiting time: 9.40770792162426. Number of observations: 10000
Sim 92. Average waiting time: 6.014572072106291. Number of observations: 10000
Sim 93. Average waiting time: 8.543135124791364. Number of observations: 10000
Sim 94. Average waiting time: 7.2512845459915605. Number of observations: 10000
Sim 95. Average waiting time: 6.476180326750709. Number of observations: 10000
Sim 96. Average waiting time: 6.67167763115278. Number of observations: 10000
Sim 97. Average waiting time: 9.919380182113285. Number of observations: 10000
Sim 98. Average waiting time: 6.021882667740218. Number of observations: 10000
Sim 99. Average waiting time: 7.054517435251556. Number of observations: 10000
Sim 100. Average waiting time: 9.287864413373034. Number of observations: 10000
In [35]:
average(meanWaits.t)
Out[35]:
9.485065765462775
In [36]:
average(meanWaitsAV.t)
Out[36]:
9.166518540021636
In [37]:
mean = (average(meanWaits.t)+average(meanWaitsAV.t))/2
Out[37]:
9.325792152742206
In [38]:
variance(meanWaits.t)
Out[38]:
14.333654709875363
In [39]:
variance(meanWaitsAV.t)
Out[39]:
8.263154246841559
In [40]:
cov(meanWaits.obs, meanWaitsAV.obs)
Out[40]:
-2.421995444931172
In [41]:
cor(meanWaits.obs, meanWaitsAV.obs)
Out[41]:
-0.2225470915995911
In [42]:
σ2 = (variance(meanWaits.t)+variance(meanWaitsAV.t)+2*cov(meanWaits.obs, meanWaitsAV.obs))/4
Out[42]:
4.438204516713644
In [43]:
ci_tdist(2*nSims-1, mean, sqrt(σ2), 0.05)
Out[43]:
(9.031290404604338,9.620293900880075)
In [ ]: