Autoproductielijn: niet-deterministische events toevoegen
Deze oefening richt zich op niet-deterministische processen zonder SimPy te gebruiken. In de volgende oefening gaan we met SimPy aan de slag.
Je hebt de vraag gekregen om variabiliteit in de duur van processen mee te nemen in het eerdere discrete-eventmodel van een autoproductielijn. De eerder geïdentificeerde procesgroepen zijn (1) "Lassen en spuiten" en (2) "Assemblage van onderdelen en testen". Onthoud dat elk van deze groepen veel subprocessen en taken bevat, maar voor nu focus je op het coderen van de eerste versie van je model op hoog niveau.
Eerder had je vastgesteld dat lassen en spuiten gemiddeld 15 uur duurde, terwijl de assemblage van onderdelen en testen gemiddeld 24 uur in beslag nam.
Nu heb je extra onderzoek en monitoring gedaan om de variabiliteit in de duur van deze processen te bestuderen. Je concludeerde dat lassen en spuiten met vijf uur kunnen variëren (omhoog of omlaag), en dat de duur van de assemblage van onderdelen met zes uur kan variëren (omhoog of omlaag).
Werk je discrete-eventmodel bij zodat variaties in de duur van deze events worden meegenomen.
Het pakket random is voor je geladen.
Deze oefening maakt deel uit van de cursus
Discrete Event Simulation in Python
Oefeninstructies
- Registreer de duur van het proces "Lassen en spuiten", rekening houdend met de nieuwe informatie over variabiliteit met een methode uit het
random-pakket die willekeurige gehele getallen genereert. - Registreer de duur van het proces "Assemblage van onderdelen en testen", rekening houdend met de nieuwe informatie over variabiliteit met een methode uit het
random-pakket die willekeurige gehele getallen genereert.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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)