SlideShare uma empresa Scribd logo
1 de 31
Scheduling in a parallel machine using DDQN
Capstone Design
제출일: 2019년 06월 14일
201401210 강형원
201401246 이전우
201501267 우창윤
DDQN을 이용한 병렬기계에서의 일정계획
Contents
01. Introduction
02. 문제 정의
03. DDQN 모델
04. 실험결과
05. 결과분석
1 Introduction
Scheduling, 과제 선정 배경, 연구 목표
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
과제 선정 배경
 현업에서 제품의 생산방식이 고도화 되고 복잡해지면
서
일정계획을 효율적으로 세우기 어려움
 산업경영공학과 연계전공(인공지능 소프트웨어)에서
배운 지식을 접목하여 이러한 문제점을 해결할 수 있
을거라
판단하여 선정
 과제 해결을 위해 스케줄링 기법, 프로그래밍, 딥러닝,
강화학습 등의 지식을 바탕으로 본 프로젝트를 진행
연구 목표
 딥러닝을 이용하여 현 일정 계획의 문제점 개선
 일정계획을 수립하는데 걸리는 시간과 비용 최소화
 공정에서 최적화된 일정계획 수립을 위한 모델 개발
 공정의 일정계획 자동화
2 문제정의
Order 설명, 가정 사항, 기본 룰
Order 설명
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. 장비제약문제
가정사항
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
기본 룰
동일한 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)
3 DDQN 모델
Core technology, 강화학습, DDQN,
Input&Output, 모델, 학습 방법
딥러닝 프레임워크
Core Technology
사용 기술
강화학습(Double DQN)
강화학습
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가 어떻게 행동할 지에 대한 정보
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 업데이트
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
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
…
DDQN 모델
State
Q-values
0번
3번 머신의 Q-value가 가장 높으므로
3번 머신에 할당하는 Action을 취함
…
1번 2번 3번 13번 14번 15번 16번 17번
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 전체적인 구조 네트워크
학습 방법
하나의 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 새로 생성
4 실험결과
실험결과
실험 결과 http://211.195.229.74:9099/factoryScheduler/
- Violation due date납기 지연 시간scores
실험 결과(오더 1개)
매 학습 마다 총 score는 높아지는 방향으로 학습이 되며, 납기 지연 시간은 적어지는 것을 볼 수 있다.
- Violation due date납기 지연 시간scores
실험 결과(일반화)
매 학습 마다 총 score는 높아지는 방향으로 학습이 되며, 납기 지연 시간은 적어지는 것을 볼 수 있다.
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
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개 일반화
5 결과분석
결과분석, 기대효과, 개선사항
결과분석
 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
기대효과
 일정계획을 수립하는데 걸리는 시간과 비용 감소 가능할 것으로 기대
된다.
 기존의 일정계획보다 우수한 성능의 계획을 수립 가능할 것으로 예상
된다.
 공정의 일정 계획의 자동화가 가능할 것으로 기대된다.
개선사항
 일반화의 성능 개선 필요
 현재는 order를 slack으로 정렬 후 순차적으로 할당하고 있으나, order를 선택하여 할당하는 모
델
 장비 제약이 있는 경우에도 사용 가능한 모델
 Available time이 있는 경우에도 사용 가능한 모델
Thank you.

Mais conteúdo relacionado

Semelhante a Artificial inMElligence

5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법topshock
 
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법topshock
 
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법topshock
 
도요타생산방식
도요타생산방식도요타생산방식
도요타생산방식JH K
 
[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기
[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기
[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기OpenStack Korea Community
 
KAP 업종별기술세미나 14-03-01
KAP 업종별기술세미나 14-03-01KAP 업종별기술세미나 14-03-01
KAP 업종별기술세미나 14-03-01wphome13
 
6 2014 절삭가공 세미나 개선사례-성원공업 개선사례-140603
6 2014 절삭가공 세미나 개선사례-성원공업 개선사례-1406036 2014 절삭가공 세미나 개선사례-성원공업 개선사례-140603
6 2014 절삭가공 세미나 개선사례-성원공업 개선사례-140603topshock
 
5.1주제 비용절감 공정개선 자율주행차 기술개발 현황 곽진항 위원
5.1주제 비용절감 공정개선 자율주행차 기술개발 현황 곽진항 위원5.1주제 비용절감 공정개선 자율주행차 기술개발 현황 곽진항 위원
5.1주제 비용절감 공정개선 자율주행차 기술개발 현황 곽진항 위원topshock
 
Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900Samsung Electronics
 
ecdevday8 웹개발자의 약한고리 SQL 뛰어넘기
ecdevday8 웹개발자의 약한고리 SQL 뛰어넘기ecdevday8 웹개발자의 약한고리 SQL 뛰어넘기
ecdevday8 웹개발자의 약한고리 SQL 뛰어넘기Kenu, GwangNam Heo
 
로거넷 LoggNet 프로그램 설정 정보 (사용자 교육 자료 CR1000)
로거넷 LoggNet 프로그램 설정 정보 (사용자 교육 자료 CR1000)로거넷 LoggNet 프로그램 설정 정보 (사용자 교육 자료 CR1000)
로거넷 LoggNet 프로그램 설정 정보 (사용자 교육 자료 CR1000)Lee Sang-Ho
 
KAP 업종별기술세미나 13년 08월 #03
KAP 업종별기술세미나 13년 08월 #03KAP 업종별기술세미나 13년 08월 #03
KAP 업종별기술세미나 13년 08월 #03topshock
 
7 2014 전기전자 세미나 2주제(업무 정보화 시스템 개발 사례)-140813
7 2014 전기전자 세미나 2주제(업무 정보화 시스템 개발 사례)-1408137 2014 전기전자 세미나 2주제(업무 정보화 시스템 개발 사례)-140813
7 2014 전기전자 세미나 2주제(업무 정보화 시스템 개발 사례)-140813topshock
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance TuningJi-Woong Choi
 
KAP 업종별기술세미나 11년 3월 #03
KAP 업종별기술세미나 11년 3월 #03KAP 업종별기술세미나 11년 3월 #03
KAP 업종별기술세미나 11년 3월 #03chasarang
 
KGC2010 - 낡은 코드에 단위테스트 넣기
KGC2010 - 낡은 코드에 단위테스트 넣기KGC2010 - 낡은 코드에 단위테스트 넣기
KGC2010 - 낡은 코드에 단위테스트 넣기Ryan Park
 
지브라프린터 Zebra GC420d 감열 데스크탑 바코드프린터 매뉴얼
지브라프린터 Zebra GC420d 감열 데스크탑 바코드프린터 매뉴얼지브라프린터 Zebra GC420d 감열 데스크탑 바코드프린터 매뉴얼
지브라프린터 Zebra GC420d 감열 데스크탑 바코드프린터 매뉴얼HION IT
 

Semelhante a Artificial inMElligence (20)

5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법
 
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법
 
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법
5.(2주제 절삭가공) 구체적으로 추진하는 원가절감 수법
 
도요타생산방식
도요타생산방식도요타생산방식
도요타생산방식
 
NO PARALLEL DML
NO PARALLEL DMLNO PARALLEL DML
NO PARALLEL DML
 
[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기
[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기
[OpenInfra Days Korea 2018] Day 2 - E1: 딥다이브 - OpenStack 생존기
 
KAP 업종별기술세미나 14-03-01
KAP 업종별기술세미나 14-03-01KAP 업종별기술세미나 14-03-01
KAP 업종별기술세미나 14-03-01
 
6 2014 절삭가공 세미나 개선사례-성원공업 개선사례-140603
6 2014 절삭가공 세미나 개선사례-성원공업 개선사례-1406036 2014 절삭가공 세미나 개선사례-성원공업 개선사례-140603
6 2014 절삭가공 세미나 개선사례-성원공업 개선사례-140603
 
5.1주제 비용절감 공정개선 자율주행차 기술개발 현황 곽진항 위원
5.1주제 비용절감 공정개선 자율주행차 기술개발 현황 곽진항 위원5.1주제 비용절감 공정개선 자율주행차 기술개발 현황 곽진항 위원
5.1주제 비용절감 공정개선 자율주행차 기술개발 현황 곽진항 위원
 
Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900Remote-debugging-based-on-notrace32-20130619-1900
Remote-debugging-based-on-notrace32-20130619-1900
 
ecdevday8 웹개발자의 약한고리 SQL 뛰어넘기
ecdevday8 웹개발자의 약한고리 SQL 뛰어넘기ecdevday8 웹개발자의 약한고리 SQL 뛰어넘기
ecdevday8 웹개발자의 약한고리 SQL 뛰어넘기
 
로거넷 LoggNet 프로그램 설정 정보 (사용자 교육 자료 CR1000)
로거넷 LoggNet 프로그램 설정 정보 (사용자 교육 자료 CR1000)로거넷 LoggNet 프로그램 설정 정보 (사용자 교육 자료 CR1000)
로거넷 LoggNet 프로그램 설정 정보 (사용자 교육 자료 CR1000)
 
KAP 업종별기술세미나 13년 08월 #03
KAP 업종별기술세미나 13년 08월 #03KAP 업종별기술세미나 13년 08월 #03
KAP 업종별기술세미나 13년 08월 #03
 
7 2014 전기전자 세미나 2주제(업무 정보화 시스템 개발 사례)-140813
7 2014 전기전자 세미나 2주제(업무 정보화 시스템 개발 사례)-1408137 2014 전기전자 세미나 2주제(업무 정보화 시스템 개발 사례)-140813
7 2014 전기전자 세미나 2주제(업무 정보화 시스템 개발 사례)-140813
 
[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning[오픈소스컨설팅]Java Performance Tuning
[오픈소스컨설팅]Java Performance Tuning
 
KAP 업종별기술세미나 11년 3월 #03
KAP 업종별기술세미나 11년 3월 #03KAP 업종별기술세미나 11년 3월 #03
KAP 업종별기술세미나 11년 3월 #03
 
KGC2010 - 낡은 코드에 단위테스트 넣기
KGC2010 - 낡은 코드에 단위테스트 넣기KGC2010 - 낡은 코드에 단위테스트 넣기
KGC2010 - 낡은 코드에 단위테스트 넣기
 
지브라프린터 Zebra GC420d 감열 데스크탑 바코드프린터 매뉴얼
지브라프린터 Zebra GC420d 감열 데스크탑 바코드프린터 매뉴얼지브라프린터 Zebra GC420d 감열 데스크탑 바코드프린터 매뉴얼
지브라프린터 Zebra GC420d 감열 데스크탑 바코드프린터 매뉴얼
 
Mylab
MylabMylab
Mylab
 
파이썬을 활용한 자연어 분석 - 2차
파이썬을 활용한 자연어 분석 - 2차파이썬을 활용한 자연어 분석 - 2차
파이썬을 활용한 자연어 분석 - 2차
 

Último

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 

Último (6)

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 

Artificial inMElligence

  • 1. Scheduling in a parallel machine using DDQN Capstone Design 제출일: 2019년 06월 14일 201401210 강형원 201401246 이전우 201501267 우창윤 DDQN을 이용한 병렬기계에서의 일정계획
  • 2. Contents 01. Introduction 02. 문제 정의 03. DDQN 모델 04. 실험결과 05. 결과분석
  • 3. 1 Introduction Scheduling, 과제 선정 배경, 연구 목표
  • 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. 연구 목표  딥러닝을 이용하여 현 일정 계획의 문제점 개선  일정계획을 수립하는데 걸리는 시간과 비용 최소화  공정에서 최적화된 일정계획 수립을 위한 모델 개발  공정의 일정계획 자동화
  • 7. 2 문제정의 Order 설명, 가정 사항, 기본 룰
  • 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, 모델, 학습 방법
  • 13. 딥러닝 프레임워크 Core Technology 사용 기술 강화학습(Double DQN)
  • 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 …
  • 18. DDQN 모델 State Q-values 0번 3번 머신의 Q-value가 가장 높으므로 3번 머신에 할당하는 Action을 취함 … 1번 2번 3번 13번 14번 15번 16번 17번
  • 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이 있는 경우에도 사용 가능한 모델