Using Slotted Aloha Simulator#

Basic usage#

Create an Aloha instance with your desired settings:

[1]:
from slotted_aloha_simulator import Aloha
aloha = Aloha(p0=1/8, alpha=1/2, n=10, t_sim=20)

Call the instance to run things!

[2]:
aloha()

Results are in a res_ attribute:

[3]:
res = aloha.res_
res['mf_asymptotic']
[3]:
{'state_distribution': array([2.53619648e-01, 1.89296722e-01, 1.41287354e-01, 1.05454105e-01,
        7.87088721e-02, 5.87467557e-02, 4.38474242e-02, 3.27268559e-02,
        2.44266822e-02, 1.82315957e-02, 1.36077048e-02, 1.01565235e-02,
        7.58062958e-03, 5.65803297e-03, 4.22304464e-03, 3.15199755e-03,
        2.35258904e-03, 1.75592624e-03, 1.31058884e-03, 9.78197761e-04,
        7.30107589e-04, 5.44937959e-04, 4.06730986e-04, 3.03576016e-04,
        2.26583174e-04, 1.69117229e-04, 1.26225777e-04, 9.42124399e-05,
        7.03183141e-05, 5.24842080e-05, 3.91731816e-05, 2.92380931e-05,
        2.18227382e-05, 1.62880630e-05, 1.21570902e-05, 9.07381328e-06,
        6.77251595e-06, 5.05487284e-06, 3.77285777e-06, 2.81598691e-06]),
 'occupancy': 0.40489263200636727,
 'goodput': 0.3170245599787759,
 'efficiency': 0.6268098239915103}
[4]:
res = aloha.res_
res['mf']
[4]:
{'state_distribution': array([[1.00000000e+000, 8.74551053e-001, 6.90740477e-001,
         4.86430241e-001, 3.44169032e-001, 2.92794775e-001,
         2.78772181e-001, 2.71260433e-001, 2.66179491e-001,
         2.62640880e-001, 2.60140824e-001, 2.58357927e-001,
         2.57077472e-001, 2.56152493e-001, 2.55480933e-001,
         2.54991208e-001, 2.54632703e-001, 2.54369380e-001,
         2.54175412e-001, 2.54032185e-001, 2.53926208e-001],
        [0.00000000e+000, 1.23585806e-001, 2.84164899e-001,
         4.12755784e-001, 4.14274894e-001, 3.19428723e-001,
         2.52578547e-001, 2.27581903e-001, 2.15177781e-001,
         2.07375538e-001, 2.02145970e-001, 1.98531815e-001,
         1.95987298e-001, 1.94173140e-001, 1.92867700e-001,
         1.91921606e-001, 1.91232042e-001, 1.90727140e-001,
         1.90356065e-001, 1.90082513e-001, 1.89880353e-001],
        [0.00000000e+000, 1.86314016e-003, 2.45339643e-002,
         9.41183474e-002, 2.05681980e-001, 2.75096769e-001,
         2.46719127e-001, 1.98263304e-001, 1.75389203e-001,
         1.64135540e-001, 1.57207060e-001, 1.52602255e-001,
         1.49429305e-001, 1.47195919e-001, 1.45601706e-001,
         1.44452405e-001, 1.43617713e-001, 1.43008055e-001,
         1.42560772e-001, 1.42231452e-001, 1.41988299e-001],
        [0.00000000e+000, 0.00000000e+000, 5.57056213e-004,
         6.53963238e-003, 3.38655669e-002, 9.90402967e-002,
         1.67685757e-001, 1.74864753e-001, 1.47594606e-001,
         1.30924784e-001, 1.22531485e-001, 1.17384986e-001,
         1.13960789e-001, 1.11594401e-001, 1.09922853e-001,
         1.08725410e-001, 1.07859240e-001, 1.07228261e-001,
         1.06766166e-001, 1.06426367e-001, 1.06175699e-001],
        [0.00000000e+000, 0.00000000e+000, 3.59677207e-006,
         1.54661584e-004, 1.96513905e-003, 1.29843743e-002,
         4.86154243e-002, 1.00471823e-001, 1.19784260e-001,
         1.07025592e-001, 9.61638446e-002, 9.04724219e-002,
         8.69674036e-002, 8.46227535e-002, 8.29936094e-002,
         8.18370782e-002, 8.10049214e-002, 8.04006892e-002,
         7.99591033e-002, 7.96348341e-002, 7.93958489e-002],
        [0.00000000e+000, 0.00000000e+000, 6.36465872e-009,
         1.32916218e-006, 4.30141235e-005, 6.42368222e-004,
         5.39084036e-003, 2.50095271e-002, 6.10026420e-002,
         8.14102387e-002, 7.67869943e-002, 7.01404264e-002,
         6.64790552e-002, 6.42054764e-002, 6.26736786e-002,
         6.16026313e-002, 6.08382080e-002, 6.02857004e-002,
         5.98830173e-002, 5.95878176e-002, 5.93704957e-002],
        [0.00000000e+000, 0.00000000e+000, 2.38945304e-012,
         4.30333393e-009, 3.72656534e-007, 1.25914087e-005,
         2.33963021e-004, 2.45066813e-003, 1.36098975e-002,
         3.79839753e-002, 5.55842711e-002, 5.49770780e-002,
         5.10661826e-002, 4.87826569e-002, 4.73507571e-002,
         4.63787277e-002, 4.56947953e-002, 4.52041268e-002,
         4.48479745e-002, 4.45875017e-002, 4.43960183e-002],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         5.34118705e-012, 1.32022732e-009, 1.01595468e-007,
         4.13002837e-006, 9.60244573e-005, 1.21731686e-003,
         7.82633867e-003, 2.43231166e-002, 3.83247606e-002,
         3.94498997e-002, 3.72128370e-002, 3.58154705e-002,
         3.49304935e-002, 3.43253842e-002, 3.38971261e-002,
         3.35884275e-002, 3.33635018e-002, 3.31984966e-002],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         2.55332796e-015, 1.95595157e-012, 3.46978691e-010,
         3.06268129e-008, 1.55382625e-006, 4.41313619e-005,
         6.54410260e-004, 4.72784371e-003, 1.59946440e-002,
         2.67246223e-002, 2.84258815e-002, 2.71778193e-002,
         2.63330152e-002, 2.57929016e-002, 2.54211699e-002,
         2.51567068e-002, 2.49652798e-002, 2.48253366e-002],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         4.67470158e-019, 1.23107117e-015, 5.11984205e-013,
         9.77934768e-011, 1.06844679e-008, 6.67011147e-007,
         2.23793204e-005, 3.76105716e-004, 2.97804937e-003,
         1.07670171e-002, 1.88416639e-002, 2.05802418e-002,
         1.99028721e-002, 1.93962273e-002, 1.90694749e-002,
         1.88432952e-002, 1.86816545e-002, 1.85642340e-002],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         3.22412167e-023, 3.32929305e-019, 3.31448532e-016,
         1.36994655e-013, 3.19308050e-011, 4.31403175e-009,
         3.21070400e-007, 1.23130855e-005, 2.28303581e-004,
         1.94161762e-003, 7.39308199e-003, 1.34163728e-002,
         1.49701277e-002, 1.46157508e-002, 1.43136241e-002,
         1.41172184e-002, 1.39805971e-002, 1.38825846e-002],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         8.11816579e-028, 3.90085936e-023, 9.52642234e-020,
         8.54162809e-017, 4.22031377e-014, 1.21935058e-011,
         1.98007768e-009, 1.69842248e-007, 7.23486685e-006,
         1.44800574e-004, 1.30167823e-003, 5.16036928e-003,
         9.63562266e-003, 1.09362606e-002, 1.07611096e-002,
         1.05817133e-002, 1.04642411e-002, 1.03821893e-002],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         7.05110087e-033, 1.99217815e-027, 1.22705438e-023,
         2.39741402e-020, 2.50078789e-017, 1.53125124e-014,
         5.35511129e-012, 1.01014990e-009, 9.68932073e-008,
         4.47835578e-006, 9.50921649e-005, 8.92356984e-004,
         3.65049026e-003, 6.97063925e-003, 8.01964351e-003,
         7.94154582e-003, 7.83539797e-003, 7.76541769e-003],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         1.89018156e-038, 4.45369338e-032, 7.13671310e-028,
         3.05679413e-024, 6.71606676e-021, 8.65579889e-018,
         6.45289457e-015, 2.64080629e-012, 5.60731147e-010,
         5.86642939e-008, 2.88782312e-006, 6.41851935e-005,
         6.22715368e-004, 2.61051857e-003, 5.07319272e-003,
         5.89995252e-003, 5.87262206e-003, 5.81001115e-003],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         1.17946042e-044, 4.37101007e-037, 1.88593414e-032,
         1.78382286e-028, 8.24662100e-025, 2.22564216e-021,
         3.50855837e-018, 3.08168752e-015, 1.42864969e-012,
         3.32587114e-010, 3.72063022e-008, 1.92265600e-006,
         4.42677341e-005, 4.40718485e-004, 1.88316621e-003,
         3.71056841e-003, 4.35237241e-003, 4.35017586e-003],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 1.88634287e-042, 2.27610409e-037,
         4.79404856e-033, 4.66347290e-029, 2.62539922e-025,
         8.69587203e-022, 1.62516179e-018, 1.62684659e-015,
         8.31089950e-013, 2.07701441e-010, 2.44638683e-008,
         1.31236367e-006, 3.10518324e-005, 3.15413558e-004,
         1.36800094e-003, 2.72491851e-003, 3.21800807e-003],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 3.58140197e-048, 1.26004227e-042,
         5.96493248e-038, 1.22195759e-033, 1.43085896e-029,
         9.90664174e-026, 3.91193624e-022, 8.38055359e-019,
         9.29029488e-016, 5.11495689e-013, 1.34990118e-010,
         1.65419502e-008, 9.13361321e-007, 2.20726057e-005,
         2.27738146e-004, 9.99337621e-004, 2.00765452e-003],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 2.98964939e-054, 3.21153078e-048,
         3.45160715e-043, 1.49128918e-038, 3.62445068e-034,
         5.22367287e-030, 4.33339365e-026, 1.97227391e-022,
         4.70144116e-019, 5.63854657e-016, 3.28801813e-013,
         9.04812986e-011, 1.14308309e-008, 6.45375472e-007,
         1.58543522e-005, 1.65587155e-004, 7.33291020e-004],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 1.09541615e-060, 3.78048812e-054,
         9.32499201e-049, 8.51451833e-044, 4.28877706e-039,
         1.28232284e-034, 2.22415778e-030, 2.13764504e-026,
         1.08758798e-022, 2.81539960e-019, 3.58674718e-016,
         2.18572707e-013, 6.21115829e-011, 8.03330546e-009,
         4.61449213e-007, 1.14816131e-005, 1.21065123e-004],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 1.75657518e-067, 2.06098422e-060,
         1.18024580e-054, 2.28314321e-049, 2.38106179e-044,
         1.47284384e-039, 5.31990439e-035, 1.07424085e-030,
         1.15930647e-026, 6.42885238e-023, 1.77289781e-019,
         2.36552582e-016, 1.49105389e-013, 4.34316202e-011,
         5.72020362e-009, 3.33010734e-007, 8.36869214e-006],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 1.22753348e-074, 5.21569346e-067,
         7.01945329e-061, 2.88508525e-055, 6.22601698e-050,
         7.94924062e-045, 5.95910253e-040, 2.51731565e-035,
         5.73230174e-031, 6.76687034e-027, 4.00890735e-023,
         1.16038784e-019, 1.60410086e-016, 1.03769161e-013,
         3.08078609e-011, 4.11503458e-009, 2.42072032e-007],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 3.71650467e-082, 6.13960631e-074,
         1.96699920e-067, 1.72323659e-061, 7.69324931e-056,
         2.02366230e-050, 3.13939587e-045, 2.76414060e-040,
         1.32223297e-035, 3.30505524e-031, 4.17971401e-027,
         2.60460788e-023, 7.82368129e-020, 1.11133058e-016,
         7.33430750e-014, 2.20980931e-011, 2.98405819e-009],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 4.83688472e-090, 3.36759523e-081,
         2.60324200e-074, 4.87819030e-068, 4.50569455e-062,
         2.43799550e-056, 7.80755905e-051, 1.42824007e-045,
         1.42966759e-040, 7.53253502e-036, 2.02257512e-031,
         2.69617083e-027, 1.74636065e-023, 5.39677927e-020,
         7.82786619e-017, 5.24637634e-014, 1.59888478e-011],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 2.67796517e-098, 8.61993622e-089,
         1.63067784e-081, 6.56065766e-075, 1.25406662e-068,
         1.39407980e-062, 9.19628831e-057, 3.48548067e-051,
         7.27661260e-046, 8.04938043e-041, 4.56796694e-036,
         1.29558270e-031, 1.79799819e-027, 1.19958429e-023,
         3.78880880e-020, 5.58481354e-017, 3.78799870e-014],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 6.22029826e-107, 1.03098607e-096,
         4.84404391e-089, 4.20103285e-082, 1.66273888e-075,
         3.79353549e-069, 5.14520894e-063, 4.03048279e-057,
         1.74977200e-051, 4.04996556e-046, 4.83814533e-041,
         2.90608659e-036, 8.59437238e-032, 1.23001591e-027,
         8.39487933e-024, 2.69636537e-020, 4.02431966e-017],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 5.94788382e-116, 5.76821244e-105,
         6.83594489e-097, 1.28334196e-089, 1.05247063e-082,
         4.92413100e-076, 1.37093880e-069, 2.21482651e-063,
         1.99432199e-057, 9.62920354e-052, 2.41308903e-046,
         3.05736633e-041, 1.91784794e-036, 5.85603979e-032,
         8.58123771e-028, 5.95989492e-024, 1.93924143e-020],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 2.27981288e-125, 1.51101047e-113,
         4.59023809e-105, 1.87364747e-097, 3.18662132e-090,
         3.05543486e-083, 1.74371703e-076, 5.79874300e-070,
         1.08048437e-063, 1.08536598e-057, 5.68829826e-052,
         1.51487426e-046, 2.00748888e-041, 1.30169804e-036,
         4.07317110e-032, 6.07789670e-028, 4.27848858e-024],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 3.36756834e-135, 1.85463564e-122,
         1.46876826e-113, 1.30950691e-105, 4.62341669e-098,
         9.08069308e-091, 1.06095825e-083, 7.25021291e-077,
         2.78976722e-070, 5.81635353e-064, 6.35765859e-058,
         3.54786369e-052, 9.89739652e-047, 1.35734005e-041,
         9.02729491e-037, 2.87833775e-032, 4.35540106e-028],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 1.79954915e-145, 1.06727323e-131,
         2.24251112e-122, 4.38792498e-114, 3.21973612e-106,
         1.29490741e-098, 3.09401859e-091, 4.33816241e-084,
         3.44072116e-077, 1.48568266e-070, 3.37874409e-064,
         3.94008469e-058, 2.30666618e-052, 6.66692184e-047,
         9.38599800e-042, 6.36495471e-037, 2.05901932e-032],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 3.09618039e-156, 2.88082652e-141,
         1.63573753e-131, 7.05907421e-123, 1.07784829e-114,
         8.87440673e-107, 4.33226881e-099, 1.24460555e-091,
         2.03129822e-084, 1.81302375e-077, 8.55982142e-071,
         2.08078098e-064, 2.54934295e-058, 1.54804786e-052,
         4.59710363e-047, 6.60338677e-042, 4.54543805e-037],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 1.28785374e-167, 3.64856476e-151,
         5.70666461e-141, 5.45925692e-132, 1.73692116e-123,
         2.92732986e-115, 2.91727852e-107, 1.71510001e-099,
         5.75134217e-092, 1.05922957e-084, 1.03615236e-077,
         5.23883130e-071, 1.33993164e-064, 1.70469597e-058,
         1.06446344e-052, 3.22728150e-047, 4.70787139e-042],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 0.00000000e+000, 2.16856189e-161,
         9.53223591e-151, 2.03205739e-141, 1.34911167e-132,
         4.65411142e-124, 9.46143211e-116, 1.13704351e-107,
         7.82336041e-100, 2.96832376e-092, 6.00532019e-085,
         6.30268072e-078, 3.35776718e-071, 8.92774910e-065,
         1.16895829e-058, 7.45702094e-053, 2.29713216e-047],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 0.00000000e+000, 6.04910748e-172,
         7.63080897e-161, 3.64450088e-151, 5.05686396e-142,
         3.57101370e-133, 1.47995856e-124, 3.63193041e-116,
         5.12083781e-108, 3.99688355e-100, 1.66964925e-092,
         3.63078833e-085, 4.02092226e-078, 2.22930947e-071,
         6.10543131e-065, 8.17202864e-059, 5.29929531e-053],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 0.00000000e+000, 7.91861854e-183,
         2.93020723e-171, 3.15275385e-161, 9.15724190e-152,
         1.32389419e-142, 1.11791652e-133, 5.59712214e-125,
         1.61529674e-116, 2.59008031e-108, 2.23071019e-100,
         1.00341880e-092, 2.30572792e-085, 2.66026008e-078,
         1.52048505e-071, 4.25947743e-065, 5.79825569e-059],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 0.00000000e+000, 4.86361175e-194,
         5.40179841e-182, 1.31677837e-171, 8.01955765e-162,
         2.37412780e-152, 4.08273044e-143, 4.16686558e-134,
         2.45877472e-125, 8.08954932e-117, 1.43443342e-108,
         1.33266132e-100, 6.34332766e-093, 1.52020423e-085,
         1.80961919e-078, 1.05862694e-071, 3.01750896e-065],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 0.00000000e+000, 1.40111984e-205,
         4.78437519e-193, 2.65766259e-182, 3.39986480e-172,
         2.06155143e-162, 7.21693671e-153, 1.50031851e-143,
         1.80837563e-134, 1.21939479e-125, 4.44603736e-117,
         8.51927435e-109, 8.38691360e-101, 4.16794616e-093,
         1.03140476e-085, 1.25741757e-078, 7.48805621e-072],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 0.00000000e+000, 1.89232307e-217,
         2.03736957e-204, 2.59430555e-193, 6.98385548e-183,
         8.67650839e-173, 6.18107133e-163, 2.61555447e-153,
         6.43386351e-144, 8.88218563e-135, 6.65134236e-126,
         2.62521849e-117, 5.33766039e-109, 5.49202825e-101,
         2.82049441e-093, 7.15258265e-086, 8.88071530e-079],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 0.00000000e+000, 1.19744147e-229,
         4.17408530e-216, 1.22581217e-204, 6.95703392e-194,
         1.77154411e-183, 2.56745361e-173, 2.21001970e-163,
         1.10852007e-153, 3.13010622e-144, 4.80877203e-135,
         3.90476721e-126, 1.63755984e-117, 3.48353995e-109,
         3.70700248e-101, 1.95213365e-093, 5.04407191e-086],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 0.00000000e+000, 3.54750544e-242,
         4.11688660e-228, 2.80566212e-216, 3.36356146e-205,
         1.75625207e-194, 5.17681859e-184, 9.05937108e-174,
         9.25865469e-164, 5.34239284e-154, 1.68211136e-144,
         2.80695737e-135, 2.42508383e-126, 1.06517042e-117,
         2.34535271e-109, 2.56074424e-101, 1.37462741e-093],
        [0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
         0.00000000e+000, 0.00000000e+000, 4.91590406e-255,
         1.95588445e-240, 3.11289127e-228, 7.89863624e-217,
         8.46057290e-206, 5.07124729e-195, 1.80327218e-184,
         3.75232784e-174, 4.42071857e-164, 2.84999198e-154,
         9.76322876e-145, 1.73573312e-135, 1.57221809e-126,
         7.15341385e-118, 1.61703124e-109, 1.80055050e-101]]),
 'occupancy': array([0.73692442, 0.71218781, 0.66976665, 0.60906468, 0.545789  ,
        0.49916815, 0.4691501 , 0.44950457, 0.43629253, 0.42722711,
        0.42091373, 0.4164653 , 0.41330079, 0.41103143, 0.40939287,
        0.40820289, 0.40733442, 0.40669797, 0.40622994, 0.40588477,
        0.40562961]),
 'goodput': array([0.37582225, 0.38173297, 0.38692288, 0.38496695, 0.37298462,
        0.35857214, 0.34704735, 0.33861698, 0.332569  , 0.32824798,
        0.32515792, 0.32294132, 0.32134485, 0.32019001, 0.319351  ,
        0.31873898, 0.31829089, 0.31796174, 0.31771927, 0.31754024,
        0.31740776]),
 'efficiency': array([0.3006578 , 0.32598548, 0.36892564, 0.42943201, 0.49150946,
        0.53668907, 0.56555463, 0.58435713, 0.59696437, 0.60559769,
        0.61160207, 0.61582883, 0.6188337 , 0.62098757, 0.62254223,
        0.62367101, 0.62449467, 0.6250982 , 0.62554199, 0.62586925,
        0.62611117])}
[5]:
res = aloha.res_
res['simulation']
[5]:
{'state_distribution': array([[1.00000000e+00, 8.76344086e-01, 6.93101761e-01, 4.91323529e-01,
         3.46702756e-01, 2.93105159e-01, 2.71875000e-01, 2.88020833e-01,
         2.83370536e-01, 2.57096354e-01, 2.85156250e-01, 2.82666016e-01,
         2.72460938e-01, 2.59790039e-01, 2.51531982e-01, 2.52859497e-01,
         2.52604675e-01, 2.59167480e-01, 2.56418228e-01, 2.54695511e-01,
         2.56568909e-01],
        [0.00000000e+00, 1.21505376e-01, 2.81017613e-01, 4.11078431e-01,
         4.21309055e-01, 3.21974206e-01, 2.66481855e-01, 2.46927083e-01,
         2.42410714e-01, 2.02669271e-01, 2.37890625e-01, 2.01416016e-01,
         2.08227539e-01, 1.85876465e-01, 1.78369141e-01, 1.78430176e-01,
         1.83358765e-01, 1.88743591e-01, 1.90755463e-01, 1.82723618e-01,
         1.84367847e-01],
        [0.00000000e+00, 2.15053763e-03, 2.56849315e-02, 9.15686275e-02,
         2.01476378e-01, 2.76488095e-01, 2.69254032e-01, 1.75416667e-01,
         1.94252232e-01, 1.27799479e-01, 1.56054688e-01, 1.31884766e-01,
         1.67871094e-01, 1.30285645e-01, 1.39593506e-01, 1.24621582e-01,
         1.24688721e-01, 1.38431549e-01, 1.36970901e-01, 1.28428841e-01,
         1.31726360e-01],
        [0.00000000e+00, 0.00000000e+00, 1.95694716e-04, 6.02941176e-03,
         2.91338583e-02, 9.52876984e-02, 1.53679435e-01, 1.81093750e-01,
         1.15234375e-01, 1.26106771e-01, 1.52929687e-01, 1.20410156e-01,
         1.35693359e-01, 9.74487305e-02, 1.02496338e-01, 8.53485107e-02,
         9.58694458e-02, 1.03511047e-01, 1.01998138e-01, 9.40889359e-02,
         9.81206894e-02],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         1.37795276e-03, 1.24503968e-02, 3.80544355e-02, 7.90625000e-02,
         8.99553571e-02, 8.35286458e-02, 5.64453125e-02, 1.08007812e-01,
         7.70751953e-02, 8.69628906e-02, 7.57873535e-02, 6.77154541e-02,
         7.71728516e-02, 7.61596680e-02, 8.02711487e-02, 7.31893539e-02,
         7.52110481e-02],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 6.94444444e-04, 6.55241935e-04, 2.17187500e-02,
         5.97098214e-02, 1.51757813e-01, 7.10937500e-02, 9.21386719e-02,
         1.30737305e-01, 4.04174805e-02, 5.53466797e-02, 6.79565430e-02,
         5.69229126e-02, 6.18156433e-02, 5.95516205e-02, 5.94156265e-02,
         5.83081245e-02],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 5.83333333e-03,
         1.03236607e-02, 5.10416667e-02, 4.04296875e-02, 6.03027344e-02,
         7.93457031e-03, 4.10644531e-02, 4.71130371e-02, 3.30108643e-02,
         3.19046021e-02, 4.47433472e-02, 4.90924835e-02, 4.31854248e-02,
         4.63894844e-02],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.92708333e-03,
         4.74330357e-03, 0.00000000e+00, 0.00000000e+00, 3.17382812e-03,
         0.00000000e+00, 1.10339355e-01, 1.51550293e-02, 3.50158691e-02,
         3.07342529e-02, 3.10356140e-02, 3.89877319e-02, 3.21643829e-02,
         3.68480682e-02],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 4.78149414e-02, 4.39208984e-02, 6.51000977e-02,
         3.00582886e-02, 3.13995361e-02, 3.67317200e-02, 3.22074890e-02,
         2.65722275e-02],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 3.25805664e-02, 8.74938965e-03,
         6.21505737e-02, 9.92355347e-03, 1.51599884e-02, 3.46288681e-02,
         3.05712700e-02],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 5.81054688e-02, 7.59521484e-02,
         6.08978271e-03, 1.21215820e-02, 2.73197174e-02, 1.75716400e-02,
         1.48892403e-02],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 5.23986816e-03,
         2.18826294e-02, 2.90977478e-02, 3.58276367e-03, 7.97100067e-03,
         1.17001534e-02],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         2.65625000e-02, 1.38496399e-02, 3.16009521e-03, 3.97293091e-02,
         2.21136093e-02],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         1.77631378e-03],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         4.83665466e-03],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00],
        [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
         0.00000000e+00]]),
 'occupancy': array([0.74890083, 0.70918866, 0.67661448, 0.6       , 0.5246063 ,
        0.51041667, 0.45715726, 0.45572917, 0.44196429, 0.41992188,
        0.4609375 , 0.44287109, 0.44091797, 0.40930176, 0.39758301,
        0.39556885, 0.40029907, 0.40856934, 0.40917969, 0.40112114,
        0.40440845]),
 'goodput': array([0.38935027, 0.38025415, 0.39823875, 0.36617647, 0.36860236,
        0.36309524, 0.33870968, 0.34270833, 0.32868304, 0.32747396,
        0.34960938, 0.34472656, 0.34423828, 0.32263184, 0.31427002,
        0.31375122, 0.31671143, 0.32182312, 0.32167435, 0.31781578,
        0.31960678]),
 'efficiency': array([0.30831721, 0.32511492, 0.38055166, 0.40953947, 0.51407001,
        0.52775775, 0.56804734, 0.58436945, 0.57688541, 0.62098765,
        0.59567388, 0.62038664, 0.62361787, 0.63594803, 0.63843769,
        0.64276336, 0.63927559, 0.63422995, 0.63251973, 0.64148495,
        0.63830411])}

Running a bunch of simulation#

Just craft a list of the parameters you would like to run and use the parallel_compute function.

[6]:
from slotted_aloha_simulator.parallel import parallel_compute
p_list = [{'p0': p, 'n': 2**i, 't_sim': 20, 'alpha': 1/2, 'm': 12} for p in [1/8, 1/4, 1/2, 3/4]
          for i in range(1, 11)]
data = parallel_compute(p_list)

Display temporal evolution#

evolution_plot will help you do that.

[7]:
from slotted_aloha_simulator import evolution_plot
evolution_plot(data, {'n': 4, 'p0': 1/8}, keys=['occupancy', 'goodput'])
../_images/tutorials_tutorial_15_0.png
[8]:
evolution_plot(data, {'n': 4, 'p0': 1/2}, keys=['occupancy', 'goodput'])
../_images/tutorials_tutorial_16_0.png
[9]:
evolution_plot(data, {'n': 1024, 'p0': 1/8}, keys=['occupancy', 'goodput'])
../_images/tutorials_tutorial_17_0.png
[10]:
evolution_plot(data, {'n': 1024, 'p0': 1/2}, keys=['occupancy', 'goodput'])
../_images/tutorials_tutorial_18_0.png

Display evolution of the state distribution#

distribution_plot will help you do that.

[11]:
from slotted_aloha_simulator import distribution_plot
distribution_plot(data, {'n': 4, 'p0': 1/8})
../_images/tutorials_tutorial_21_0.png
[12]:
distribution_plot(data, {'n': 4, 'p0': 1/2})
../_images/tutorials_tutorial_22_0.png
[13]:
distribution_plot(data, {'n': 1024, 'p0': 1/8})
../_images/tutorials_tutorial_23_0.png
[14]:
distribution_plot(data, {'n': 1024, 'p0': 1/2})
../_images/tutorials_tutorial_24_0.png

Investigate implicit admission#

live_plot will help you do that.

[15]:
from slotted_aloha_simulator import live_plot
live_plot(data, {'p0': 1/8})
../_images/tutorials_tutorial_27_0.png
[16]:
live_plot(data, {'p0': 1/2})
../_images/tutorials_tutorial_28_0.png