Автомобильный конвейер: добавление недетерминированных событий
В этом упражнении мы рассмотрим недетерминированные процессы без использования 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)