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

Построение модели: создание среды и ресурсов

Вам предстоит помочь оптимизировать сборочную линию авиационного производителя. Основные компоненты самолёта: (1) фюзеляж, (2) крылья, (3) хвостовое оперение, (4) силовая установка (двигатель и воздушный винт) и (5) шасси.

Каждый из этих компонентов обрабатывается на отдельном участке сборки, располагающем 3, 2, 2 и 3 слотами соответственно. Это означает, что после завершения очередного шага деталь переходит к следующему, если есть свободный слот; в противном случае она ожидает. Последовательность сборки строго соответствует порядку шагов 1–4, показанному на диаграмме ниже. Время в модели измеряется в часах.

Airplane assembly sequence showing the different processes and limited shared resources.

Постройте дискретно-событийную модель для симуляции сборочной линии.

Это упражнение является частью курса

Дискретно-событийное моделирование на Python

Посмотреть курс

Инструкции к упражнению

  • Заполните словарь информацией о ресурсах: ключи — step_1_fuselage, step_2_wings, step_3_power_plant и step_4_landing_gear, значения (длительность процессов) — 20, 8, 10 и 8 часов соответственно.
  • Создайте среду SimPy и сохраните её в переменную с именем env.
  • Задайте ресурсы модели с соответствующими ёмкостями, указанными на диаграмме (то есть количеством слотов), и сохраните их в переменные с именами step_1_fuselage, step_2_wings, step_3_power_plant и step_4_landing_gear.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Define a dictionary with your processes
processing_time = {
  "____": 20,
  "____": 8,
  "step_3_power_plant": ____,
  "step_4_landing_gear": ____
}

# Create your SimPy Environment with the name env
env = simpy.____()

# Create resources for each assembly step
step_1_fuselage = simpy.____(env, capacity=____)
step_2_wings = simpy.____(env, capacity=2)
step_3_power_plant = simpy.____(env, capacity=2)
step_4_landing_gear = simpy.____(env, capacity=3)

env.process(order_aircraft(env, PLANE_ORDERS, step_1_fuselage, step_2_wings, step_3_power_plant, step_4_landing_gear))

env.run()
Редактировать и запускать код