Python으로 배우는 이산 사건 시뮬레이션
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
자연 또는 인간 주도 시스템을 수학적 개념과 언어로 설명합니다.
모델 분류:
수학적 모델은 단순할 수도, 복잡할 수도 있습니다.
조지 박스: "모든 모델은 틀리지만, 어떤 것은 유용하다."

하천 유량 모델

이 모델은 중국 고야야 수문 관측소의 유량을 예측합니다.
예측은 입력으로 사용하는 강수 정보를 기반으로 합니다.
기타 예시
인플레이션 예측

기타 예시
# Define model parameters
processes = {"process_1": 5,
"process_2": 2,
"process_3": 3}
# Simulation period
simulation_time = 365
# Run model
discrete_model(processes, simulation_time)
def discrete_model(processes, simulation_time): # 1) Run end-condition while (time < simulation_time): process_names = list(processes.keys())# 2) Loop over all processes for p in range(len(process_names)): process_name_p = process_names[p]# 3) Account for effect of each process time += processes[process_name_p]
제조 활동에 대한 이산 이벤트 모델 출력 예시
=> START OF SIMULATION (Time = 0 days)
Time = 6.00 days | Process Complete: Transport of raw material
Time = 9.00 days | Process Complete: Building components
Time = 11.00 days | Process Complete: Assembling parts
Time = 14.00 days | Process Complete: Selling product
=> COMPLETED: Supply-Chain cycle #1 | Time = 15.5 days
Time = 21.50 days | Process Complete: Transport raw material
Time = 24.50 days | Process Complete: Building components
Time = 26.50 days | Process Complete: Assembling parts
Time = 29.50 days | Process Complete: Selling product
=> COMPLETED: Supply-Chain cycle #2 | Time = 31.0 days
모델 결과의 시각화: 패턴과 임계점을 파악하는 데 유용합니다.
시각화는 시뮬레이션 목표에 맞춰야 합니다.
유용한 시각화 패키지: matplotlib, seaborn, plotly.

예시
y)와 해당 시간값(x)의 2D 선/산점도plt.plot(x, y, color='green', marker='o',
markersize=12, linestyle='dashed',
linewidth=2)
x를 구간으로 나누고 각 구간의 개수를 세는 히스토그램plt.hist(x, 50, density=True,
facecolor='g', alpha=0.75)
Python으로 배우는 이산 사건 시뮬레이션