Linea di assemblaggio auto: aggiungere eventi non deterministici
Questo esercizio si concentra su processi non deterministici senza usare SimPy. Nel prossimo esercizio ci concentreremo su SimPy.
Ti è stato chiesto di tenere conto della variabilità nella durata dei processi nel precedente modello a eventi discreti di una linea di produzione di auto. I gruppi di processi individuati in precedenza sono (1) "Saldatura e verniciatura" e (2) "Assemblaggio delle parti e collaudo". Ricorda che ciascuno di questi gruppi di processi comprende molti sottoprocessi e attività, ma per ora ti concentri nel codificare la prima versione del modello a un livello alto.
In precedenza avevi determinato che saldatura e verniciatura richiedevano in media 15 ore per completarsi, mentre l’assemblaggio delle parti e il collaudo richiedevano in media 24 ore per finire.
Ora hai svolto ulteriori analisi e monitoraggi per studiare la variabilità nella durata di questi processi. Hai concluso che saldatura e verniciatura possono variare di cinque ore (in più o in meno) e che la durata dell’assemblaggio delle parti può variare di sei ore (in più o in meno).
Aggiorna il tuo modello a eventi discreti per tenere conto delle variazioni nella durata di questi eventi.
Il pacchetto random è stato caricato per te.
Questo esercizio fa parte del corso
Simulazione a eventi discreti in Python
Istruzioni dell'esercizio
- Registra la durata del processo "Saldatura e verniciatura", tenendo conto delle nuove informazioni sulla variabilità usando un metodo del pacchetto
randomche genera numeri interi casuali. - Registra la durata del processo "Assemblaggio delle parti e collaudo", tenendo conto delle nuove informazioni sulla variabilità usando un metodo del pacchetto
randomche genera numeri interi casuali.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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)