НачатьНачать бесплатно

Автомобильный конвейер: добавление недетерминированных событий

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