Разработка дискретно-событийной модели
Вам поручено разработать дискретно-событийную модель для сельскохозяйственного предприятия, чтобы помочь с распределением ресурсов, повышением производительности и выявлением узких мест.
Вы всё ещё обсуждаете с коллегами, какие процессы следует включить в модель и с какой степенью детализации. Договорились, что информация будет собрана в словарь process_dict следующей структуры. Предполагается, что этот словарь будет пополняться по мере получения новых сведений о процессах.
process_dict = {
"Process name 1": <duration>,
"Process name 2": <duration>,
...
}
Давайте построим универсальную дискретно-событийную модель discrete_model_farm(), которая сможет планировать любое количество дискретных событий, описанных в словаре.
Входные аргументы модели (по порядку):
process_dict: словарь с информацией о процессахsimulation_time: период моделирования
Время в модели измеряется в днях.
Это упражнение является частью курса
Дискретно-событийное моделирование на Python
Инструкции к упражнению
- Инициализируйте переменные состояния модели:
time(отслеживает время) иsupply_chain(отслеживает количество циклов) — и установите их значения равными нулю. - Задайте условие завершения так, чтобы модель работала, пока
timeменьшеsimulation_time. - Прибавьте продолжительность процесса к переменной состояния
time.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
def discrete_model_farm(process_dict, simulation_time):
# Initiate variables
time = ____
supply_chain = ____
# Define ending condition
while ____ < ____:
supply_chain += 1
process_names = list(process_dict.keys())
for p in range(len(process_names)):
event_duration = process_dict[process_names[p]]
# Add the process duration
____ += event_duration
print(f"{process_names[p]} (completed): time = {time}")
print(f"COMPLETED: Production cycle #{supply_chain} | Time = {time} days")