Modelo de transporte: definindo entradas do modelo
Vamos juntar tudo e construir todos os componentes do modelo.
Você foi convidado a otimizar os semáforos da cidade de Chicago para melhorar o fluxo de trânsito. Um modelo de eventos discretos é útil nessas situações.
O primeiro passo é medir o comprimento médio das vias entre cruzamentos; você concluiu que é, em média, 100 metros, com um desvio padrão de cerca de 20 metros — ou seja, espera-se que um motorista encontre um semáforo a cada 80–120 metros.
O limite de velocidade em Chicago é 30 mph (aproximadamente 50 km/h). As autoridades da cidade informaram que, em média, o sinal permanece vermelho por até 90 segundos. Comece definindo as entradas e saídas do seu modelo.
Este exercício faz parte do curso
Simulação de Eventos Discretos em Python
Instruções do exercício
- Defina a média e o desvio padrão do array
inputs["Dist_between_intersections_m"]. - Aplique a distribuição Gaussiana para gerar valores de
RandomGener["Distance"]. - Aplique um método aleatório para gerar inteiros para
RandomGener["WaitTime"].
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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()