Вступ до дискретно-подієвого моделювання

Дискретно-подієве моделювання в Python

Diogo Costa (PhD, MSc)

Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific

Дискретно-подієві проти неперервних моделей

Неперервні моделі

  • Працюють із фіксованим кроком часу

  • Час — формальна змінна

    • Час не оновлюється всередині циклу
  • Використання циклів за часом

    for t in range(time_range):
    

Дискретно-подієві моделі

  • Працюють із змінним кроком часу

    • Запускають/планують дискретні події з різною тривалістю в часі
  • Час — це змінна стану

    • Час оновлюється всередині циклу while
    • Час — не формальна змінна
  • Часто використовують цикли while

    while (time < 365):
    time += process_duration
    
Дискретно-подієве моделювання в Python

Компоненти дискретно-подієвих моделей

  • Змінні стану
  • Годинник
  • Список подій (або процесів)
  • Умови завершення
Дискретно-подієве моделювання в Python

Компоненти моделі

Приклад: модель таксопарку

while (time < 10):

    # Process 1
    time_duration_1 = manage_requests()
    time += time_duration_1

    # Process 2
    time_duration_2 = dispatch_taxi()
    time += time_duration_2

Умова завершення

while (time < 10)
  • Умова(и), що зупиняє симуляцію
Дискретно-подієве моделювання в Python

Компоненти моделі

Приклад: модель таксопарку

while (time < 10):

    # Process 1
    time_duration_1 = manage_requests()
    time += time_duration_1

    # Process 2
    time_duration_2 = dispatch_taxi()
    time += time_duration_2

Годинник

time += time_duration_1
time += time_duration_2
  • time відстежує поточний час симуляції
  • Годинник переходить до часу початку наступної події під час моделювання
  • Час «стрибає», бо події миттєві
Дискретно-подієве моделювання в Python

Компоненти моделі

Приклад: модель таксопарку

while (time < 10):

    # Process 1
    time_duration_1 = manage_requests()
    time += time_duration_1

    # Process 2
    time_duration_2 = dispatch_taxi()
    time += time_duration_2

Змінна стану

time
  • Скоротити час між дзвінком клієнта та висадкою

  • Змінні, що характеризують результати системи та ефективність

Дискретно-подієве моделювання в Python

Давайте потренуємось!

Дискретно-подієве моделювання в Python

Preparing Video For Download...