
데이터를 보관하기 위해 .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로 재구성
→ if 물류 이동까지 고려한다면, AMR class까지 설계해야. (추후 확장 가능성)