<aside> 💡

Q-time과 예방보전을 고려한 반도체 공정 flexible job shop 스케줄링

→ Q-time을 준수하면서, 우발적인 사고/정지를 사전에 방지하는 예방보전 활동을 포함하여, 작업(공정)별 기계를 배정하고, 전체 반도체 공정 스케줄을 제공

</aside>

<aside> 💡

연구 step by step

데이터 정의 → 데이터 생성 → 시뮬레이션 + 알고리즘 → 비교 → 모델 정리 → 논문화

  1. 데이터 스키마 설정
    1. machine, operation의 시간 범위, q-time 범위, 고장 발생률(지수/와이블 분포) 범위, operation-machine 매핑 등
    2. 일종의 제약과 범위를 설정
    3. 반도체 공정의 특성을 적용하기 위해, q-time, 재진입 등의 변수 고려
  2. 데이터 생성
    1. 1.의 데이터 스키마를 기반으로 python을 이용해 csv 생성
    2. machine, job, operation, operation_machine 매핑, q_time 제약 등의 데이터를 가진 csv
  3. 최적화 모델링 & 시뮬레이션
    1. 기본적으로 simpy 환경에서 실행,평가
    2. 2.에서 생성된 csv파일을 사용하여 다양한 연구방법 적용
    3. 연구방법
      1. rule-based
        1. simpy 내부에서 쉽게 적용이 가능하다
        2. spt, lpt, fifo등의 일반적인 기법을 이용해 스케줄링
        3. 연구와 결과비교의 baseline처럼 사용할 수 있다
      2. (선택) heuristic
        1. 별도의 최적화 모델을 이용하여 스케줄링 결과 도출 후 simpy에서 결과 확인하는 방식으로 사용
        2. 유전 알고리즘, 우리만의 독창적인 알고리즘을 사용
      3. (선택) reinforce learning
        1. simpy 내부의 환경에서 rl을 적용하여 그 환경 안에서 상호작용과 학습
        2. rl의 개입 시점(작업이 끝났을 때, machine idle일때)에 현재 state 정의, action 정의, reward 설계하여 학습
        3. pytorch, gymnasium 등
    4. 설계한 연구방법별로 결과 비교 및 평가, 제일 우수한 모델 선정
  4. 모델 정리
    1. 3.에서의 결과물을 바탕으로 최적 모델의 문제 정의, 수리모델, 제약조건, 알고리즘 구조 등등 정리
  5. 논문 작성 </aside>

<aside> 💡

나의 의견

따라서

이게 잘 된다면,

→ 이 사이클 계속 반복하기

물론 RL, heuristic 할땐 확실히 알고리즘 수립, state/action/reward 설계가 필요할듯하다.

</aside>