CommencerCommencer gratuitement

Développer un modèle à événements discrets

On vous a demandé de développer un modèle à événements discrets pour une exploitation agricole afin d’aider à allouer les ressources, accroître la productivité et identifier/éliminer les goulots d’étranglement.

Vous discutez encore avec vos collègues des différents processus impliqués et du niveau de détail à représenter dans le modèle. Vous avez donc convenu que les informations seraient compilées dans un dictionnaire nommé process_dict avec la structure suivante. L’idée est que ce dictionnaire sera mis à jour au fur et à mesure que de nouvelles informations sur les processus seront disponibles.

process_dict = {
    "Process name 1":  <duration>,
    "Process name 2":  <duration>,
    ...
}

Construisons un modèle générique à événements discrets nommé discrete_model_farm() qui peut planifier n’importe quel nombre d’événements discrets définis dans le dictionnaire.

Les arguments d’entrée du modèle sont (dans l’ordre) :

  1. process_dict : dictionnaire contenant les informations sur les processus
  2. simulation_time : période de simulation

Le temps dans le modèle sera mesuré en jours.

Cet exercice fait partie du cours

Simulation d’événements discrets en Python

Afficher le cours

Instructions

  • Initialisez les variables d’état du modèle, time (suit le temps) et supply_chain (compte le nombre de cycles) et mettez-les à zéro.
  • Définissez la condition d’arrêt pour que le modèle s’exécute tant que time est inférieur à simulation_time.
  • Ajoutez la durée du processus à la variable d’état time.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

def discrete_model_farm(process_dict, simulation_time):
  # Initiate variables
  time = ____
  supply_chain = ____

  # Define ending condition
  while ____ < ____:

    supply_chain += 1
    process_names = list(process_dict.keys())

    for p in range(len(process_names)):
		  
      event_duration = process_dict[process_names[p]]
          
      # Add the process duration
      ____ += event_duration
      print(f"{process_names[p]}  (completed): time = {time}")
          
    print(f"COMPLETED: Production cycle #{supply_chain} | Time = {time} days")  
Modifier et exécuter le code