Kom igångKom igång gratis

Bilmonteringslinjen: lägga till icke-deterministiska händelser

Den här övningen fokuserar på icke-deterministiska processer utan att använda SimPy. I nästa övning introduceras SimPy.

Du har fått i uppgift att ta hänsyn till variabilitet i processdurationen i den tidigare diskreta händelsemodellen av en bilproduktionslinje. De processgrupper som identifierades tidigare är (1) "Svetsning och målning" och (2) "Montering av delar och testning". Kom ihåg att varje grupp innehåller många delprocesser och uppgifter, men för tillfället fokuserar du på att koda den första versionen av modellen på en övergripande nivå.

Tidigare fastställde du att svetsning och målning i genomsnitt tog 15 timmar, medan montering av delar och testning tog i genomsnitt 24 timmar.

Nu har du gjort ytterligare undersökningar och uppföljningar för att studera variabiliteten i processernas duration. Du kom fram till att svetsning och målning kan variera med upp till fem timmar (upp eller ner), och att montering av delar kan variera med upp till sex timmar (upp eller ner).

Uppdatera din diskreta händelsemodell för att ta hänsyn till variationen i händelsernas duration. Paketet random har redan laddats åt dig.

Den här övningen är en del av kursen

Diskret händelsesimulering i Python

Visa kurs

Övningsinstruktioner

  • Registrera durationen för processen "Svetsning och målning" med hänsyn till den nya informationen om variabilitet, med hjälp av en metod från paketet random som genererar slumpmässiga heltal.
  • Registrera durationen för processen "Montering av delar och testning" med hänsyn till den nya informationen om variabilitet, med hjälp av en metod från paketet random som genererar slumpmässiga heltal.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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)
Redigera och kör kod