ComeçarComece de graça

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

Ver curso

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()
Editar e executar o código