이산 사건 시뮬레이션 소개

Python으로 배우는 이산 사건 시뮬레이션

Diogo Costa (PhD, MSc)

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

이산 사건 모델 vs. 연속 모델

연속 모델

  • 고정된 시간 간격으로 실행

  • 시간은 더미 변수

    • 루프 내에서 시간 업데이트 없음
  • 시간 for 루프 사용

    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...