Linia montażu samochodów: dodawanie procesów niedeterministycznych
To ćwiczenie skupia się na procesach niedeterministycznych bez użycia SimPy. W następnym ćwiczeniu przejdziemy do SimPy.
Zostałeś poproszony o uwzględnienie zmienności czasu trwania procesów w poprzednim modelu zdarzeń dyskretnych dla linii produkcji samochodów. Zidentyfikowane wcześniej grupy procesów to: (1) "Spawanie i malowanie" oraz (2) "Montaż części i testowanie". Pamiętaj, że każda z tych grup obejmuje wiele podprocesów i zadań, ale na razie skupiasz się na kodowaniu pierwszej wersji modelu na wysokim poziomie.
Wcześniej ustalono, że spawanie i malowanie zajmuje średnio 15 godzin, natomiast montaż części i testowanie – średnio 24 godziny.
Po dodatkowych badaniach i obserwacjach dotyczących zmienności czasu trwania tych procesów stwierdzono, że spawanie i malowanie może się wahać o pięć godzin (w górę lub w dół), a montaż części – o sześć godzin (w górę lub w dół).
Zaktualizuj model zdarzeń dyskretnych, aby uwzględniał zmienność czasu trwania tych procesów.
Pakiet random został już załadowany.
To ćwiczenie jest częścią kursu
Symulacja zdarzeń dyskretnych w Pythonie
Instrukcje do ćwiczenia
- Zarejestruj czas trwania procesu "Spawanie i malowanie", uwzględniając nowe informacje o zmienności – użyj odpowiedniej metody z pakietu
random, która generuje losowe liczby całkowite. - Zarejestruj czas trwania procesu "Montaż części i testowanie", uwzględniając nowe informacje o zmienności – użyj odpowiedniej metody z pakietu
random, która generuje losowe liczby całkowite.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)