4. Scheduling
시스템이 보유한 자원의 정확한 사용 시기 및 자원에 의해 생성되는 제품 혹은 서비스의 처리 순서를 결정
하는 것
기계에서 수행하는 n개의 작업(T1, T2, … , Tn)이 있고, 각 작업에 시작 시간과 종료 시간이 존재한다고 할
때
최소한의 기계를 배치하면서 최소의 비용으로 모든 작업을 수행하도록 하는 문제
번호 제품 주문량 Due Date
1 F 20 2
2 B 30 3
3 D 40 4
4 D 40 4
5 G 40 4
6 D 40 4
7 F 40 4
8 E 60 6
9 B 20 3
10 G 30 4
…
100 F 30 25
… 1 2 3 4 5 6 7 8 9 10 …
M1 F1 F1 X X K22 K22 K22 K22 X X
…
M2 B2 B2 B2 B25 B25 B25 B25 B25 B25 X
M3 D3 D3 D3 D3 X X H28 H28 H28 H28
M4 D4 D4 D4 D4 X X K30 K30 K30 K30
M5 G5 G5 G5 G5 X X B31 B31 B45 B45
M6 D6 D6 D6 D6 D32 D32 D32 D32 D42 D42
M7 F7 F7 F7 F7 F23 F23 F23 F23 F43 F43
M8 E8 E8 E8 E8 E8 E8 X X J37 J37
M9 B9 B9 B19 B19 B19 B19 B29 B29 B29 B29
M10 G10 G10 G10 X X H27 H27 H27 H27 H27
M11 A11 A11 A11 A11 A26 A26 A26 X X C41
M12 M12 M12 M12 M12 X X B33 B33 B33 B33
M13 J13 J13 J13 J13 X X H34 H34 H34 H34
M14 E14 E14 E14 E14 X X B35 B35 B35 B35
M15 C15 C15 C15 C15 C15 C24 C24 C24 C24 C24
M16 F16 F16 F16 F16 F16 F16 X X I40 I40
M17 A17 A17 A17 A20 A20 X X D36 D36 D36
M18 C18 C18 C18 C21 C21 C21 C38 C38 C39 C39
Order list
Schedule Table
5. 과제 선정 배경
현업에서 제품의 생산방식이 고도화 되고 복잡해지면
서
일정계획을 효율적으로 세우기 어려움
산업경영공학과 연계전공(인공지능 소프트웨어)에서
배운 지식을 접목하여 이러한 문제점을 해결할 수 있
을거라
판단하여 선정
과제 해결을 위해 스케줄링 기법, 프로그래밍, 딥러닝,
강화학습 등의 지식을 바탕으로 본 프로젝트를 진행
6. 연구 목표
딥러닝을 이용하여 현 일정 계획의 문제점 개선
일정계획을 수립하는데 걸리는 시간과 비용 최소화
공정에서 최적화된 일정계획 수립을 위한 모델 개발
공정의 일정계획 자동화
9. 3. 주문분리문제
가정사항
.
1 2 3 4 5
M1
M2
M3
M4
M5
A,B,C,…
A,B,C,…
1 2 3 4 5
M1
병렬 기계
단일 기계
Job
Job
.
제품 주문량 Due Date
D 50 2
C 20 3
F 30 3
B 60 4
1 2 3 4 5
M1 D D D D D
M2
M3
M4
M5
주문 분리 불가능
제품 주문량 Due Date
D 50 2
C 20 3
F 30 3
B 60 4
1 2 3 4 5
M1 D D D
M2 D D
M3
M4
M5
주문 분리 가능
.
제품 주문량 Due Date Machine
D 50 2 M3,M6
C 20 3 M5
F 30 3 M1,M6
B 60 4 M3,M4
A 40 4 M1,M2
장비 제약 있음
제품 주문량 Due Date
D 50 2
C 20 3
F 30 3
B 60 4
A 40 4
장비 제약 없음
1. 병렬기계 /단일기계 2. 장비제약문제
10. 가정사항
1 2 3 4 5
M1 A A A A A
M2 G G G G G
M3 B B X X F
작업의 타입이 바뀌는 경우 setup time
이 발생(2시간)
11 12 13 14 15
M1 D X X A A
M2 G G G G G
M3 B B X X F
Ex) A의 납기일이 11인 경우
작업 완료 시간이 15이나 납기 지연 시
간은 총 4시간
1. Job change
2. Due date
11. 기본 룰
동일한 Due Date를 가지는 order 중 주문량이 많은 순서대로 정렬
LPT (Longest Processing Time)
동일한 Due Date를 가지는 order 중 총 주문량이 많은 순서대로 정렬
MOR (Most wOrk Remaining)
동일한 Due Date를 가지는 order 중 총 주문량이 적은 순서대로 정렬
LOR (Least wOrk Remaining)FCFS (First come First Service)
먼저 온 순서대로 정렬
Due date가 짧은 순서대로 정렬
EDD(Earliest Due Date)
SLACK
(Due date – 주문량)의 결과 값이 가장 적은 순으로 정렬
동일한 Due Date를 가지는 order 중 주문량이 적은 순서대로 정렬
SPT (Shortest Processing Time)
12. 3 DDQN 모델
Core technology, 강화학습, DDQN,
Input&Output, 모델, 학습 방법
14. 강화학습
Environment
Agent
Action 𝑎 𝑡State 𝑠𝑡State 𝑠𝑡
Reward 𝑟𝑡Reward 𝑟𝑡
1 2 3 4 5 6 7 8 9
MC1 'J1' 'J1' 'J13' 'J13' 'J30' 'J30' 'J30' 'J30'
MC2 'K2' 'K2' 'K5' 'K5' 'K5' 'K5' 'K5' 'K5'
MC3 'H3' 'H3' 'H3' 'H18' 'H18' 'H18' 'H27' 'H27' 'H27'
MC4 'F4' 'F4' 'F4' 'F4' 'F4' 'F4' 'F28' 'F28' 'F28'
MC5 'M6' 'M6' 'M20' 'M20' 'M20' 'M20' 'M20'
MC6 'B7' 'B7' 'B7' 'B16' 'B16' 'B29' 'B29' 'B29' 'B29'
MC7 'H8' 'H8' 'H8' 'X' 'X' 'C26' 'C26'
MC8 'G9' 'G9' 'G9' 'G23' 'G23' 'G39' 'G39' 'G39' 'G39'
MC9 'K10' 'K10' 'K10' 'K10' 'X' 'X' 'H35' 'H35' 'H35'
MC10 'I11' 'I11' 'I11' 'I11' 'I11' 'I33' 'I33' 'I33' 'I33'
MC11 'L12' 'L12' 'L12' 'L12' 'L12' 'X' 'X' 'E40' 'E40'
MC12 'J14' 'J14' 'J14' 'J14' 'J14' 'J14'
MC13 'L15' 'L15' 'L15' 'L15' 'L15' 'L15'
MC14 'D17' 'D17' 'D17' 'D22' 'D22' 'D22' 'D22' 'D22' 'D22'
MC15 'J19' 'J19' 'J19' 'J19' 'J19' 'J32' 'J32' 'J32' 'J32'
MC16 'M21' 'M21' 'M21' 'M21' 'M21' 'M38' 'M38' 'M38' 'M38'
MC17 'E24' 'E24' 'E24' 'X' 'X' 'A34' 'A34' 'A34' 'A34'
MC18 'M25' 'M25' 'M25' 'M25' 'X' 'X' 'F36' 'F36'
어떤 환경 안에서 정의된 에이전트가 현재의 상태를 인식하여,
선택 가능한 행동들 중 보상을 최대화하는 행동 혹은 행동 순서를
선택하는 방법이다.
강화학습 구성요소
1. Agent : 학습을 수행하는 주체
2. Environment : 에이전트를 제외한 나머지 환경
3. State : 현재 상황을 나타내는 정보
4. Action : 행동
5. Reward : 행동의 좋고 나쁨을 알려주는 정보
6. Policy : 각 상태에서 Agent가 어떻게 행동할 지에 대한 정보
15. DDQN
1. Replay memory 생성
2. 𝑄, 𝑄 값을 랜덤으로 초기화
3. 초기상태 s 생성
4. 일정 확률(ε)인 경우, 랜덤 하게 action 선택
아닌 경우, 가장 높은 Q 값을 가지는 action 선택
5. Action에 따른 reward와 다음 state 를 확인
6. 𝑠𝑡, 𝑎 𝑡, 𝑟𝑡, 𝑠𝑡+1 을 memory에 저장
7. Memory 에서 미니 배치를 통해 랜덤으로 선택
변경된 상태가 종료상태이면 Q값을 𝑟𝑗 로 할당
그렇지 않으면 Q값을 𝑅𝑡+1 + 𝛾𝑄 𝑠′
, 𝑎𝑟𝑔 max
𝑎′
𝑄(𝑠′
, 𝑎′
, 𝜃 로 할당
8. Squared error를 이용하여 Q-network학습
9. episode마다 target Q-network 업데이트
16. Input & Output
Case No. Considered features States Number of features
Input
(State)
1번째
order
1
각 machine에 마지막으로 할당된 작업의 타입과 현재 고려하고 있는 order
의 type 비교
Binary 1*18
2 각 machine에 고려하고 있는 order를 할당 했을 때 slack Number 1*18
2번째
order
1번째 input과 동일
~10번째
order
1번째 input과 동일
Output
Action 1
18 가지 액션에 대한 Q-value
두 값 중 큰 값을 갖는 액션을 실행
Number 18
Reward 2
각 action에 대한 reward로 environment가 agent에게 주는 정보
이를 이용하여 network update
Reward = -7* setup여부 – 1 * violation due date
Number 1
17. Input & Output
No. Type Process time Due date
17 H 3 6
18 J 5 8
19 M 5 8
… … … …
K D 2 23
1 2 3 4 5 6 7 8
MC1 J1 J1
MC2 K2 K2
MC3 H3 H3 H3
MC4 F4 F4 F4 F4 F4 F4
MC5 K5 K5 K5 K5 K5 K5
…
R
[J, 2]
[K, 2]
[H, 3]
[F, 6]
[K, 6]
[0, 6 – (2+3)]
[0, 6 – (2+3)]
[1, 6 – (3+3)]
[0, 6 – (6+3)]
[0, 6 – (6+3)]
…
…
고려되어지는 lot [H, 3, 6]
State =
1. 첫 번째 order state
…
[0, 1]
[0, 1]
[1, 0]
[0, -3]
[0, -3]
[같은 타입인지 여부, duedate – (makespan time+process time)]
… …
2. 두 번째 order state 3. 세 번째 order state
…
19. DDQN 모델
Simulator
• State, Action, Reward, Next
State를 Replay memory에 저장
• 현재 state를 Q Network에 전달
Replay Memory
• 현재 state 와 Action을 Q
network에 전달
• Reward를 Optimizer에 전달
Learning Algorithm
• Q network의 State, Action, replay
memory의 Reward를 가지고
Loss를 최소화
Q Network
• Target Q-Network를 주기적으로
업데이트
• 학습 결과를 Simulator에 전달
1 3
2 4
• Activation Function
- ReLu
• Loss function
- Mean Square Error
-( 𝑅𝑡+1 + 𝛾𝑄 𝑠′
, 𝑎𝑟𝑔 max
𝑎′
𝑄(𝑠′
, 𝑎′
, 𝜃 − 𝑄 𝑠, 𝑎, 𝜃 )2
• Parameter
- Replay memory size = 50000
- 𝛾 = 0.99
- epsilon = 1.0 ~ 0.001 decay 0.999
- batch_size = 64
- learining late = 0.0001
DDQN 전체적인 구조 네트워크
20. 학습 방법
하나의 order list를 이용하여 반복 학습 일반화 (Generalization)
번호 제품 주문량 Due Date
1 F 20 2
2 B 30 3
3 D 40 4
4 D 40 4
5 G 40 4
6 D 40 4
7 F 40 4
8 E 60 6
9 B 20 3
10 G 30 4
…
100 F 30 25
Order Generator
하나의 order list를 이용하여 그 order list에서 좋은 결과를
낼 수 있도록 반복하여 학습
납기 지연 시간을 최소화 하는 경우를 찾기 쉬우나 그 order list
에서만 일어 날 수 있는 상황에 대해서만 학습 가능
일정 학습 단계 마다 order generator를 이용하여 새로운 order
list를 생성하고 그에 대해서 학습하여 모델 저장
저장 한 모델을 이용하여 다른 order의 결과 값 도출
모든 order에 대한 좋은 결과를 얻을 수 있는 일반화를 찾기 어려움
번호 제품 주문량 Due Date
1 F 20 2
2 B 3 3
3 D 4 4
4 D 4 4
5 G 4 4
6 D 4 4
7 F 4 4
8 E 6 6
9 B 2 3
10 G 3 4
…
100 F 3 25
번호 제품 주문량 Due Date
1 D 20 3
2 H 2 3
3 G 4 4
4 D 4 4
5 A 4 5
6 C 4 5
7 C 5 5
8 B 6 6
9 B 2 3
10 G 3 4
…
100 M 2 25
번호 제품 주문량 Due Date
1 J 20 3
2 H 20 3
3 G 40 4
4 D 40 4
5 A 40 5
6 C 40 5
7 C 50 5
8 B 60 6
9 B 20 3
10 G 30 4
…
100 M 20 25
일정 학습 단계 (한 order list 100번 학습)마다
Order list 새로 생성
23. - Violation due date납기 지연 시간scores
실험 결과(오더 1개)
매 학습 마다 총 score는 높아지는 방향으로 학습이 되며, 납기 지연 시간은 적어지는 것을 볼 수 있다.
24. - Violation due date납기 지연 시간scores
실험 결과(일반화)
매 학습 마다 총 score는 높아지는 방향으로 학습이 되며, 납기 지연 시간은 적어지는 것을 볼 수 있다.
25. order fifo spt lpt mor lor slack 오더 1개 일반화
1 387 246 529 260 226 161 132 114
2 433 305 530 256 294 199 154 176
3 451 305 500 339 307 212 202 187
4 431 286 580 296 317 177 168 152
5 400 227 518 272 324 200 143 123
6 380 218 467 179 311 88 66 90
7 387 251 497 225 350 128 102 116
8 428 262 533 292 294 209 207 174
9 450 301 570 275 281 244 161 171
10 424 296 516 294 323 177 96 131
average 417.1 269.7 524 268.8 302.7 179.5 143.1 143.4
Order, 기법 별 총 납기 지연 시간
DDQN을 이용하여 학습 시킨 결과가
기본 룰 보다 좋은 성능을 보임
기본 룰 중에 가장 성능이 좋은 slack 방법과
비교하여 하나의 오더로 반복 학습 시킨 결과는
20.28%, 여러 오더로 일반화 시킨 결과는
20.11% 성능이 향상 되었다.
↓20.28% ↓20.11%
실험 결과
기본 룰 DDQN
26. Order, 기법 별 총 납기 지연 시간
DDQN을 이용하여 학습 시킨 결과가
기본 룰 보다 좋은 성능을 보임
기본 룰 중에 가장 성능이 좋은 slack 방법과
비교하여 하나의 오더로 반복 학습 시킨 결과는
20.28%, 여러 오더로 일반화 시킨 결과는
20.11% 성능이 향상 되었다.
실험 결과
-0.1
0
0.1
0.2
0.3
0.4
0.5
1 2 3 4 5 6 7 8 9 10 average
Improvementratio
Order list
slack을 기준으로 DDQN 성능 향상%
오더 1개 일반화
28. 결과분석
DDQN을 이용하여 학습 시킨 결과가 기본 룰 보다 좋은 성능을 보임
하나의 오더로 여러 번 학습 시킨 경우와 여러 오더를 이용하여 일반화시킨 경우 모두
기본 룰 중에 가장 성능이 좋은 slack 방법과 비교하여 20% 정도 향상 되었다.
하나의 오더로 반복 학습 시킨 경우가 일반화 보다 좋은 결과를 내는 경우, 또는 쉬운 문
제의 경우 기본 룰이 일반화 보다 좋을 결과를 내는 경우가 있다.
order slack 오더 1개 일반화
1 161 132 114
2 199 154 176
3 212 202 187
4 177 168 152
5 200 143 123
6 88 66 90
7 128 102 116
8 209 207 174
9 244 161 171
10 177 96 131
average 179.5 143.1 143.4
↓20.28% ↓20.11%
DDQN
29. 기대효과
일정계획을 수립하는데 걸리는 시간과 비용 감소 가능할 것으로 기대
된다.
기존의 일정계획보다 우수한 성능의 계획을 수립 가능할 것으로 예상
된다.
공정의 일정 계획의 자동화가 가능할 것으로 기대된다.
30. 개선사항
일반화의 성능 개선 필요
현재는 order를 slack으로 정렬 후 순차적으로 할당하고 있으나, order를 선택하여 할당하는 모
델
장비 제약이 있는 경우에도 사용 가능한 모델
Available time이 있는 경우에도 사용 가능한 모델