Python으로 배우는 이산 사건 시뮬레이션
Diogo Costa (PhD, MSc)
Adjunct Professor, University of Saskatchewan, Canada & CEO of ImpactBLUE-Scientific
시스템 최적화
인간 주도 공정
시스템 산출에 더 큰 영향을 미치는 공정 식별
몬테카를로 샘플링
목적 함수
산출 목표를 설명하는 수학적 표현식
시뮬레이션 시나리오 점수 산정
예시
합계: 100%
탐색 및 중지: 다양한 모델 구성을 실행하고 원하는 조건이 충족되면 중지
while total_duration < 24:
model_to_run()
점수 및 순위: 가중 기준에 따라 시뮬레이션 결과를 점수 산정
for i in range(num_runs):
out_1, out_2 = model_to_run(i)
scores[i] = 0.3 * out_1 + 0.7 * out_2
예시
scenario_num = 0
while scenario_num == 0 or total_duration[s] > 40:
scenario_num += 1
env = simpy.Environment()
env.process(manufacturing_proc(env))
env.run()
plot_results()

예시: 제조 산업
자동차 생산 라인과 같이 다양한 순차적 작업(또는 공정)을 포함.
def objective_function_calc():
score_objfunc = np.ones(num_scenarios)
for s in range(num_scenarios):
for p in range(len(processes)):
score_objfunc[s] += (
processes[p]["duration_hours"]
* processes[p]["score_weight"])
점수
"RED": 낮은 점수; "BLUE": 높은 점수

순위
시뮬레이션 실행을 점수 기준으로 순위 정렬

탐색 및 중지

"Blue" 라인이 "중지" 기준 충족
"최적" 시뮬레이션 세부 결과:
sum = 20 min)sum = 20 min)sum = 28 min)sum = 30 min)"공정 1"이 목표 달성에 핵심적 역할
점수
목표: 가장 낮은 점수 = 가장 짧은 소요 시간

순위
"공정 1"이 목표 달성에 핵심적 역할

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