ПочатиПочніть безкоштовно

Розроблення дискретно-подієвої моделі

Вас попросили розробити дискретно-подієву модель для фермерської операції, щоб допомогти розподіляти ресурси, підвищувати продуктивність і знаходити та усувати «вузькі місця».

Ви все ще обговорюєте з колегами окремі процеси та рівень деталізації, з яким їх варто представити в моделі. Тож ви домовилися зібрати інформацію у словнику під назвою process_dict з такою структурою. Ідея в тому, що цей словник оновлюватиметься в міру появи додаткової інформації про процеси.

process_dict = {
    "Process name 1":  <duration>,
    "Process name 2":  <duration>,
    ...
}

Створімо узагальнену дискретно-подієву модель під назвою discrete_model_farm(), яка може планувати будь-яку кількість дискретних подій, визначених у словнику.

Вхідні аргументи моделі (у такому порядку):

  1. process_dict: словник з інформацією про процеси
  2. 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")  
Редагувати та запускати код