Python으로 배우는 이산 사건 시뮬레이션
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific

예시: 공항의 승객 흐름 관리
결정론적 프로세스
예시: 용접기
처리 시간 = 용접 라인 길이 x 용접기 속도
비결정론적 프로세스

예시: 용접이 포함된 조립 라인
welding_1welding_2
welding_1
프로세스 이름: 부품 A 용접
처리 시간: 5 시간
welding_2length * hours_per_length각 프로세스에 대한 dictionary 생성:
welding_1 = {
"name": "Welding component A",
"time_hours": 5
}
length = 20 # meters
hours_per_length = 0.2 # hours
welding_2 = {
"name": "Welding component B",
"time_hours": length * hours_per_length
}
예시: 조립 라인
manual_assembly_1manual_assembly_2
manual_assembly_1
평균 처리 시간: 80 시간
표준편차: 5 시간
manual_assembly_220 시간2 시간각 프로세스에 대한 dictionary 생성:
manual_assembly_1 = {
"name": "Manual Assembly A",
"time_hours": 80,
"std_hours": 5
}
manual_assembly_2 = {
"name": "Manual Assembly B",
"time_hours": 20,
"std_hours": 2}
제조 프로세스 순서

이산 이벤트 모델
# Initiate time-tracking variable time = numpy.zeros(number_of_processes)# Next-event time progression time[0] = 0 time[1] = time[0] + welding_1["time_hours"] time[2] = time[1] + rd.gauss(manual_assembly_1["time_hours"], manual_assembly_1["std_hours"]) time[3] = time[2] + rd.gauss(manual_assembly_2["time_hours"], manual_assembly_2["std_hours"]) time[4] = time[3] + welding_2["time_hours"] time[5] = time[4]
Python으로 배우는 이산 사건 시뮬레이션