image.png

데이터를 보관하기 위해 .csv 파일 형태의 Dataframe을 설정하였으니 이번엔 실행을 위해 빠르게 돌리도록 형태를 변환해보자.

→ Dictionary로 변경. 상세 요구사항은 다음과 같다.

딕셔너리 Key Value 목적
eligible op_id [(machine_id, proc_time), ...] 할당 가능한 기계 목록 조회
job_ops job_id [op_id, op_id, ...] Job의 공정 순서 파악, 완료 시간 계산
op_info op_id {job_id, op_seq, op_group} 공정 소속 Job, 순서 번호 조회
job_info job_id {job_type, release_time, due_date, priority} 납기일, 우선순위, 투입 시점 조회
qtime_map (job_id, form_op_seq) max_qtime Q-time 위반 여부
setup_map (machine_group, from_type, to_type) setup_time 순서 종속 셋업 시간
mach_info machine_id {group, h0, hr, repair, pm_dur} 기계 고장 모델 Parameter
op_pred op_id predecessor_op_id 선행 작업 완료 이벤트

즉 Dataframe에서 Job의 개수, 종류, 공정, 제약조건 등을 설정해 두었다면, 이를 바탕으로 Dictonary로 재구성

Class - Machine & Simulation

FJSP Simulation을 통해 Environment & Process 조율.

Machine class를 통해 Resource, 상태 관리(Idle, busy) 조율.

→ if 물류 이동까지 고려한다면, AMR class까지 설계해야. (추후 확장 가능성)