Construa seu modelo: Gerar pedidos de aeronaves
Agora que o ambiente SimPy e os recursos foram criados, vamos conectá-los a um gerador que simula pedidos de compra de aeronaves. Há 30 pedidos de aeronaves.
A função assembly_line() faz solicitações de recursos sequenciais para as diferentes seções de fabricação de componentes da aeronave.
O código abaixo mostra uma dessas solicitações.
# Open the resource step_1_fuselage request
with step_1_fuselage.request() as slot_request_1:
request_1_time = env.now
yield slot_request_1
print(f"time: {env.now:7.4f} | Aircraft {aircraft_id:02d}
| Enters: step_1_fuselage
| Queued for {env.now-request_1_time} hours")
yield env.timeout(processing_time[processing_time_step_names[0]])
Este exercício faz parte do curso
Simulação de Eventos Discretos em Python
Instruções do exercício
- Crie um for-loop para fazer todas as solicitações de pedidos (
total_num_orders) usando uma variável fictícia chamadarequest_i. - Crie um novo processo para cada solicitação de aeronave durante o for-loop; todos os processos são baseados no gerador
assembly_process_request. - As 30 aeronaves foram solicitadas em um único lote, então complete o código para refletir nenhum tempo de espera entre as solicitações.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
def order_aircraft(env, total_num_orders, step_1_fuselage, step_2_wings, step_3_power_plant, step_4_landing_gear):
# Generate the orders with a for-loop
____ request_i in range(total_num_orders):
assembly_process_request = assembly_line(env, request_i, step_1_fuselage, step_2_wings, step_3_power_plant, step_4_landing_gear)
# Initiate an assembly line process for each request
env.____(assembly_process_request)
# Clock-in the time between requests
yield env.timeout(____)