Model de transport: definirea intrărilor modelului
Hai să punem totul cap la cap și să construim toate componentele modelului.
Ai fost solicitat să optimizezi semafoarele din orașul Chicago pentru a îmbunătăți fluxul de trafic. Un model cu evenimente discrete este foarte util în astfel de situații.
Primul pas este măsurarea lungimii medii a drumurilor dintre intersecții, pe care ai stabilit-o la 100 de metri în medie, cu o abatere standard de aproximativ 20 de metri. Asta înseamnă că un șofer se poate aștepta să întâlnească un semafor la fiecare 80–120 de metri.
Limita de viteză în Chicago este de 30 mph (aproximativ 50 km/h). Oficialii orașului te-au informat că, în medie, culoarea roșie rămâne aprinsă până la 90 de secunde. Începe prin a defini intrările și ieșirile modelului tău.
Acest exercițiu face parte din cursul
Simulare de evenimente discrete în Python
Instrucțiuni pentru exercițiu
- Setează media și abaterea standard ale array-ului
inputs["Dist_between_intersections_m"]. - Aplică distribuția gaussiană pentru a genera valorile
RandomGener["Distance"]. - Aplică o metodă aleatorie pentru a genera numere întregi pentru
RandomGener["WaitTime"].
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Define the model inputs
inputs = {"Dist_between_intersections_m": [____, ____],
"Speed_limit_ms": 50 * 1000 / (60 * 60),
"Max_waitTime_traffic_lights_sec": 90}
random_generated = {"Distance": [], "WaitTime": []}
for i in range(5000):
# Use the random package to generate pseudo-random values
random_generated["Distance"].append(random.____(inputs['Dist_between_intersections_m'][0],inputs['Dist_between_intersections_m'][1]))
random_generated["WaitTime"].append(random.____(0, inputs['Max_waitTime_traffic_lights_sec']))
# Plot the randomly generated distance "events"
plt.hist(random_generated["Distance"], bins=100)
plt.xlabel('# Events')
plt.ylabel('# Distance travelled (m)')
plt.show()