Конвеєр складання авто: додавання недетермінованих подій
У цій вправі зосередимося на недетермінованих процесах без використання SimPy. У наступній вправі ми перейдемо до SimPy.
Вас попросили врахувати варіативність тривалості процесів у попередній моделі дискретних подій для лінії виробництва автомобілів. Раніше ви виокремили такі групи процесів: (1) «Зварювання та фарбування» і (2) «Складання вузлів та тестування». Зверніть увагу, що кожна з цих груп включає багато підпроцесів і завдань, але наразі ви зосереджені на створенні першої версії моделі на високому рівні.
Раніше ви визначили, що зварювання та фарбування в середньому займають 15 годин, а складання вузлів і тестування — у середньому 24 години.
Тепер ви провели додаткові дослідження та моніторинг, щоб вивчити варіативність тривалості цих процесів. Ви дійшли висновку, що зварювання та фарбування можуть відхилятися на п'ять годин (у більший або менший бік), а тривалість складання вузлів — на шість годин (у більший або менший бік).
Оновіть свою модель дискретних подій, щоб врахувати варіації в тривалості цих подій.
Пакет random уже імпортовано для вас.
Ця вправа є частиною курсу
Дискретно-подієве моделювання в Python
Інструкції до вправи
- Зафіксуйте тривалість процесу «Зварювання та фарбування», врахувавши нову інформацію про варіативність, використовуючи метод із пакета
random, який генерує випадкові цілі числа. - Зафіксуйте тривалість процесу «Складання вузлів та тестування», врахувавши нову інформацію про варіативність, використовуючи метод із пакета
random, який генерує випадкові цілі числа.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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)