CommencezCommencez gratuitement

Construisez votre modèle : générer des commandes d'aéronefs

Maintenant que l'environnement SimPy et les ressources ont été créés, reliez-les à un générateur qui simule des commandes d'achat d'aéronefs. Il y a 30 commandes d'aéronefs.

La fonction assembly_line() effectue des demandes de ressources séquentielles pour les différentes sections de fabrication des composants de l'aéronef. Le code ci-dessous illustre une telle demande.

# Ouvrir la demande de ressource step_1_fuselage
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]])

Cette activité fait partie du cours

Simulation d'événements discrets en Python

Voir le cours

Instructions de l’exercice

  • Créez une boucle for pour effectuer toutes les demandes de commande (total_num_orders) en utilisant une variable factice nommée request_i.
  • Créez un nouveau processus pour chaque demande d'aéronef pendant la boucle for; tous les processus sont basés sur le générateur assembly_process_request.
  • Les 30 aéronefs ont été demandés en un seul lot; complétez le code pour refléter l'absence de temps d'attente entre les demandes.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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(____)
Modifier et exécuter le code