Розроблення дискретно-подієвої моделі
Вас попросили розробити дискретно-подієву модель для фермерської операції, щоб допомогти розподіляти ресурси, підвищувати продуктивність і знаходити та усувати «вузькі місця».
Ви все ще обговорюєте з колегами окремі процеси та рівень деталізації, з яким їх варто представити в моделі. Тож ви домовилися зібрати інформацію у словнику під назвою 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")