결정적·비결정적 프로세스 결합

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

Diogo Costa (PhD, MSc)

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

결정적·비결정적 프로세스

주어진 시스템의 공정 순서를 보여주는 다이어그램. 결정적 프로세스 A, 비결정적 프로세스 B, 결정적 프로세스 C 순서로 진행됨.

예: 공항 승객 흐름 관리

  • 비결정적: 승객의 공항 도착 시각
  • 결정적: 체크인 후 공항 내 수하물 운송
Python으로 배우는 이산 사건 시뮬레이션

예: 공장 조립 라인

결정적 프로세스

  • 원자재 공장 운송
  • 완전 자동화 단계
  • 품질 검사
  • 포장
  • 신제품 고객 운송

: 용접기

처리 시간 = 용접 라인 길이 × 용접기 속도

비결정적 프로세스

  • 원자재 주문
  • 복잡 부품 수작업 조립

특정 수작업 조립을 여러 번 반복했을 때의 소요 시간 분포를 보여주는 산점도.

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

결정적 프로세스

예: 용접이 포함된 조립 라인

  • 결정적 프로세스 2개
    welding_1 welding_2

  • welding_1

    • 공정명: Welding component A
    • 처리 시간: 5시간
  • welding_2

    • 공정명: Welding component B
    • 처리 시간: length * 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
}
Python으로 배우는 이산 사건 시뮬레이션

비결정적 프로세스

예: 조립 라인

  • 비결정적 프로세스 2개 manual_assembly_1 manual_assembly_2

  • manual_assembly_1

    • 공정명: Manual Assembly A
    • 평균 처리 시간: 80시간
    • 표준편차: 5시간
  • manual_assembly_2

    • 공정명: Manual Assembly B"
    • 평균 처리 시간: 20시간
  • 표준편차: 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}
Python으로 배우는 이산 사건 시뮬레이션

사건 기반 시뮬레이션 구축

제조 공정 순서 제조 활동의 공정 순서를 보여주는 다이어그램. 시간 순서: welding_1, manual_assembly_1, manual_assembly_2, welding_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으로 배우는 이산 사건 시뮬레이션

시간 단위와 모델 탐색

  • 시간 단위
    • 모든 공정의 시간 단위를 일치시키십시오.
Python으로 배우는 이산 사건 시뮬레이션

실습해 봅시다!

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

Preparing Video For Download...