CommencerCommencer gratuitement

Chaîne d’assemblage automobile : ajout d’événements non déterministes

Cet exercice porte sur des processus non déterministes sans utiliser SimPy. Dans le prochain exercice, nous nous concentrerons sur SimPy.

On vous a demandé de prendre en compte la variabilité de la durée des processus dans le précédent modèle à événements discrets d’une ligne de production automobile. Les groupes de processus identifiés précédemment sont (1) « Welding and painting » et (2) « Assembly of parts and testing ». Rappelez-vous que chacun de ces groupes de processus implique de nombreux sous-processus et tâches, mais, pour l’instant, vous vous concentrez sur le codage d’une première version de votre modèle à un niveau macro.

Auparavant, vous aviez déterminé que la soudure et la peinture prenaient en moyenne 15 heures pour être terminées, tandis que l’assemblage des pièces et les tests prenaient en moyenne 24 heures.

Vous avez maintenant mené des recherches et un suivi supplémentaires pour étudier la variabilité de la durée de ces processus. Vous en avez conclu que la soudure et la peinture pouvaient varier de cinq heures (à la hausse ou à la baisse), et que la durée de l’assemblage des pièces pouvait varier de six heures (à la hausse ou à la baisse).

Mettez à jour votre modèle à événements discrets pour tenir compte des variations de durée de ces événements. Le paquet random a été chargé pour vous.

Cet exercice fait partie du cours

Simulation d’événements discrets en Python

Afficher le cours

Instructions

  • Enregistrez la durée du processus « Welding and painting », en tenant compte des nouvelles informations sur la variabilité à l’aide d’une méthode du paquet random qui génère des entiers aléatoires.
  • Enregistrez la durée du processus « Assembly of parts and testing », en tenant compte des nouvelles informations sur la variabilité à l’aide d’une méthode du paquet random qui génère des entiers aléatoires.

Exercice interactif pratique

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

def car_production_line(SIMULATION_TIME):
    car_number, time  = 0, 0
    while time < SIMULATION_TIME:
        car_number += 1

        # Clock the time requirement for: Welding and Painting
        time += ____
        if time >= SIMULATION_TIME: break
        print(f"Time = {time:7.4f} | Car {car_number:02d} | Welding and Painting")

        # Clock the time requirement for: Assembly of parts and Testing 
        time += ____
        if time >= SIMULATION_TIME: break
        print(f"Time = {time:7.4f} | Car {car_number:02d} | Assembly of parts and Testing")
        print(f"Time = {time:7.4f} | Car {car_number:02d} | Car ready for shipping!")

car_production_line(SIMULATION_TIME)
Modifier et exécuter le code