블럭 장난감 제조 공정 최적화 AI경진대회

알고리즘 | 정형 | 강화 학습 | 제조

  • moneyIcon 상금 : 총 600만원
  • 874명 마감

 

[PDF]제조 공정 상세 설명, 질의 응답 PPT

2020.05.29 17:35 13,768 조회


[설명 영상 바로가기]


공정 상세 설명


  1. 원형 제작
  2. 4종류 원형 생산
  3. 생산품 ID: PRT_1, PRT_2, PRT_3, PRT4
  4. 하루 최대 500개 투입 가능
  5. 투입 23일 후 생산 완료
  6. 양품률: 98.5 %
  7. 1개 라인으로 구성
  8. 성형
  9. 원형 (PRT) 를 투입하여 블럭 모양 제작
  10. 생산품 ID: MOL_1, MOL_2, MOL_3, MOL_4
  11. 생산 시간: 48 공정 시간
  12. 양품률: 97.5 %
  13. 2개 라인으로 구성 (A, B)
  14. 제약 사항
  15. 시간당 최대 6.667개 투입 가능, 날짜별 최대 투입 개수는 max_count.csv 를 따름
  16. 공정 시작 전 점검 필수, 28시간 소요
  17. 점검 후 최소 98시간, 최대 140시간 공정 가동 되어야 함
  18. 공정 중 변경 가능, 변경 시 일정 시간 소요됨 (change_time.csv 참고)
  19. 변경 시간은 공정 시간에 포함
  20. 점검 중 아이템 변경 가능, 이 경우 28시간만 소요
  21. 점검 시간보다 길게 공정 중단 시, 최대 8일까지 공정 정지 가능. 정지 후 점검 필수
  22. 점검, 공정, 변경, 멈춤은 연달아 할 수 없음. 예) CHECK_1 > CHECK_2, CHANGE_12 > CHANGE_23
  23. 이벤트 구성
  24. PROCESS : 공정
  25. STOP : 멈춤
  26. CHECK_1, CHECK_2, CHECK_3, CHECK_4 : 점검, 이 후 투입되는 양 만큼 공정 시간 동안 MOL 생산 (숫자에 따라 MOL_1 ~ MOL_4 생산)
  27. CHANGE_21, CHANGE_23, CHANGE_24, CHANGE_31, CHANGE_32, CHANGE_34, CHANGE_41, CHANGE_42, CHANGE_43 : 변경, 이후 공정에 투입되는 양 만큼 MOL 생산 (숫자에 따라 MOL_1 ~ MOL_4 생산)
  28. 자르기
  29. 수요 발생 시 성형이 완료된 아이템을 모두 자르고 납품
  30. 생산품 ID: BLK_1, BLK_2, BLK_3, BLK_4
  31. 양품률 : 월별 양품률 참고 (cut_yield.csv, 단위: %)
  32. MOL_1, MOL_2는 각각 506개의 BLK_1, BLK_2로 잘림
  33. MOL_3, MOL_4는 각각 400개의 BLK_3, BLK_4로 잘림
  34. 납품 시간: 오후 6시
  35. 자르기 공정은 자동 계산
  36. 기타
  37. 공정을 통해 총 4종류 블럭 장난감이 만들어 지며 단계별 생산품 관계는 다음과 같음
  38. PRT_1 > MOL_1 > BLK_1
  39. PRT_2 > MOL_2 > BLK_2
  40. PRT_3 > MOL_3 > BLK_3
  41. PRT_4 > MOL_4 > BLK_4
  42. 전체 기간: 2020.04.01 ~ 2020.06.30 (기간 내 24시간 가동)
  43. 2020.04.01 기준으로 재고를 가짐 (stock.csv 참고)
  44. BLK 부족분, 초과분은 다음 시간으로 이월



질의 응답


Q1. NG 상황이 발생하면 score는 어떻게 되나요?

A1. 0점으로 기록됩니다.

 

Q2. PRT1~ PRT4와 MOL_A, MOL_B값 범위를 알려주세요.

A2. PRT 범위는 0~500 입니다. PRT_1 ~ PRT_4를 합쳐 하루 500개를 초과할 수 없습니다. MOL_A, MOL_B 범위는 0 ~ 6.667 입니다. 하루 최대 투입량을 초과할 수 없습니다. (max_count.csv 참고)

 

Q3. CHECK 중 CHANGE가 일어나면 Event는 CHANGE인가요?

A3. CHECK 중 생산 아이템 변경 시 아이템 번호를 CHECK 뒤에 붙입니다. 예를 들어 CHECK 후 PRT_2를 투입해 MOL_2를 생산하려면 CHECK_2를 기입합니다.

 

Q4. PROCESS지만 MOL_A (혹은 MOL_B) 값이 전부 0일 경우는 어떻게 처리되나요?

A4. 투입이 0이기 때문에 생산이 이뤄지지 않습니다.

 

Q5. PROCESS 중 생산이 완료되지 않으면 어떻게 처리되나요?

A5. PROCESS 중 다른 이벤트 발생시 다음 PROCESS에서 생산을 이어갑니다.

 

Q6. 5월 6일 18시 납기인 수요를 충족하기 위해서는 언제까지 MOL이 생산 완료 되어야하나요?

A6. 5월 6일 18시 입니다.

 

Q7. 유전 알고리즘 관해서 짧게라도 설명 또는 영상 올려주시면 대회 참여하는데 있어 큰 도움 될거 같습니다. 감사합니다.

A7.

[유전 알고리즘 설명 영상 바로가기]


Q8. 베이스라인 모델로 유전알고리즘이 명시되어 있는 이유가 궁금합니다!

A8. 초보자 입장에서도 이해가 쉬운 유전알고리즘을 베이스라인 모델로 채택했습니다. 베이스라인 코드는 대회 참가를 돕고자 단순 예시를 작성한 것으로 접근 방법에 제한을 두지 않습니다.


Q9. BC 혹은 Imitation Learning은 가능한가요? 혹은 LP로 문제를 풀어도 되는지 궁금합니다.

A9. 본 대회에서는 학습 없이 최적화만으로 문제를 푸는 방법은 제한되지만 모델 학습 개념이 있는 알고리즘이라면 모두 사용 가능합니다. (단, 상용프로그램은 사용할 수 없습니다.)

 

Q10. AI 경진대회 개최 이유가 궁금합니다.

A10. 다양한 문제 해결 아이디어를 발굴하고, 창의적인 해결방안을 제안하는 숨은 인재들을 찾아 LG그룹 내 주요 계열사 취업 기회를 제공해 드리기 위해 LG AI 해커톤 대회를 개최하고 있습니다. 참고로 LG그룹 해커톤 대회는 분기 단위 개최를 계획하고 있습니다.

 

Q11. 왜 강화학습에 초점을 맞춘 대회를 주최하기로 하셨나요?

A11. 기존 수학적 접근 방법은 다양한 가정을 기반으로 문제 해결을 시도하여 실제 도출된 값이 현실과 차이가 있거나, 실제 최적값으로 보기 어려운 한계가 있습니다. 강화학습이 주어진 상황에서 최적값을 찾기 위한 방법으로 가장 적절한 방법이라고 판단하여 이에 초점을 맞춘 대회를 주최하게 되었습니다.

 

Q12. LG그룹 소속 어느 팀에서 해당 대회를 주최하는지 궁금합니다.

A12. LG 사이언스파크 AI 추진단입니다.

 

Q13. 실제 공정에 쓰이는 데이터인가요?

A13. 실제 제조 공정을 반영한 데이터를 사용합니다. LG 내에서는 제조 공정 외에도 다양한 데이터를 보유하고 있으며 AI를 활용하여 문제를 해결하고자 합니다. 역량있는 AI 인재들의 도전을 기대하고 있으며 인재 채용의 기회가 항상 준비되어 있습니다.

 

Q14. 현업에서 어떻게 인공지능을 접목하는지 구체적인 예시를 듣고 싶습니다.

A14. 금번과 같이 회사의 내부적인 효율을 개선하는 측면 (생산성 향상)과 제품에 적용하여 새로운 가치(Voice Assistant, AI 카메라 등)를 만들어 내는 측면에 AI를 활용하고 있습니다.

 

Q15. 실제 기업에서 진행하는 업무들도 프로젝트 형식으로 진행되나요?

A15. LG그룹 내 계열사에는 AI 전문 조직들이 구축되어 있으며 각 조직은 현장 전문가들과 함께 프로젝트를 진행하고 있습니다.


Q16. LG그룹 전계열사 지원이 가능한가요?

A16. 우선 AI 인력의 수요가 가장 많은 LG내 AI 조직에 채용 기회를 제공하고, 지원자와 상의를 통해 최종 결정합니다. 대회 기간에 정해진 평가 프로세스에 따라 선정된 우수한 역량 보유 후보자들는 서류전형 없이 바로 면접의 기회가 주어지며, 이 과정에서 LG그룹에 꼭 필요한 인재는 채용으로 연결됩니다.

 

Q17. 대회 등수에 따라 인턴기회와 서류면접 면제가 나눠지나요?

A17. 소정의 심사를 통해 인턴 기회는 재학 중인 학생, 서류전형 면제 기회는 취업 또는 이직을 원하는 일반인 대상으로 주어집니다.

 

Q18. 우수입상자에 한해 인턴기회나 입사지원 서류면제 혜택이 제공되는 것으로 알고 있는데, 혹시 그 기간에 대해 제한이 있는지 궁금합니다! (ex 다음분기 입사지원만 해당 등)

A18. 인턴기회 및 입사지원시 서류전형 면제 혜택은 2020.12.31까지 유효합니다.

로그인이 필요합니다
0 / 1000
Pajun
2020.06.01 01:48

안녕하세요. PPT를 보는 중 질문이있어 댓글을 남깁니다. 공정과정 중 원형제작,  성형 과정의 양품률이 각 98.5 , 97.5 % 라고 나와있습니다.  이 때 작업자가 한 공정이 끝난 제품이 양품인 것을 확인 할 때가 어떤 시점인지(ex: 한 공정이 끝난 뒤에야  양품이 확인 가능한지, 공정 중 Random한 시점에서 발견되는 경우,  모든 Process(원형제작-성형-cut) 까지 완료된 뒤인지 등)  궁금합니다. 감사합니다. 

DACONIO
2020.06.01 02:23

Pajun님 안녕하세요.
각 아이템 (PRT, MOL, BLK) 이 완성되는 시점에서 양품 확인이 가능합니다.

B612
2020.06.01 12:53

안녕하세요. score에 수요 발생시 생산 부족, 초과분에 기준 시점이  어떻게 되나요?
BLK 생산 시간이나 납기까지 운송 시간등의 정보 없이 MOL 투입 시기와 양으로만으로 계산하는거 같아 질문 드립니다.
예를 들어 2020-04-15 BLK_2의 수요가  18018개이면 
언제까지 투입된 MOL_2를 기준으로 부족과 초과분을 계산하나요?
MOL_2 생산 시간이 48시간이고 납기일이 오후 6시이니,
2020-04-15의 BLK_2수요를 충족시키는 생산량은 2020-04-14 오후 6시까지 납품가능한 MOL_2수로 보아야 할까요?

DACONIO
2020.06.01 13:09

B612님 안녕하세요.
수요 발생 시 발생 시점 MOL을 모두 BLK로 생산합니다. 재고가 있으면 재고를 합산하여 생산 부족, 초과분을 계산합니다.
만약 2020-04-15에 BLK_2 수요가 처음 발생한 경우 04/01 - 04/15 MOL_2 생산분 + 04/01 기준 MOL_2 재고분 + 04/01 기준 BLK_2 재고분을 합쳐 BLK_2 개수 및 생산 부족, 초과분을 계산합니다.

DACONIO
2020.06.01 13:07

BLK 생산 공정 (자르기 공정)은 운송 시간, 생산 시간 등 제약 조건이 없습니다.
수요 발생 시 MOL 개수, 양품률로만 산출됩니다.

B612
2020.06.01 13:11

제출 양식이 MOL 공정의 투입량이니, 04/15 수요를 충족하는 MOL_2 생산분은 생산시간인 48시간을 고려해 04/13-00시-00분 까지  투입되는 것만 고려하나요? 

DACONIO
2020.06.01 13:34

MOL 생산 시간은 공정 가동 (PROCESS) 시간을 기준으로 합니다. 
04/13 0시 부터 04/15 0시 까지 모든 이벤트가 PROCESS 라면 기간 내 생산이 완료되어 04/15 수요를 충족시킬 수 있습니다.
중간에 다른 이벤트가 있는 경우 생산 완료 시점은 그만큼 늦어집니다.

B612
2020.06.01 14:05

time / Event_A / MOL 를 다음과 같이 세팅(PRT_2는 충분히 있고 check_2를 28시간 진행했다 가정)
05-01 00:00 process 6, 05-01 01:00 process 6, 05-01 02:00 process 0, ~ 계속 0 ~, 05-03 01:00 process 0. 

B612
2020.06.01 14:05

위와 같이 A공정에 check_2를 끝내고 MOL을 초기 2시간동안만 시간당 6개씩 투입 하고 이후론 0으로 세팅,
Event_A는 process를 연속적으로 49(48+1)시간 진행하면  05-03 02:00 시점에 12(6*2)개의 MOL_2가 생산되었다 보는걸까요?

DACONIO
2020.06.01 14:29

위와 같이 05-01 00:00, 05-01 01:00에 6개씩 투입하면
05-03 00:00, 05-03 01:00 에 양품률을 고려하여  5.85개씩 생산 완료 됩니다.
말씀하신 05-03 02:00 시점에는 11.7 개 MOL_2가 생산되었다고 볼 수 있습니다.

잠만보도언젠간눈을뜬다
2020.06.01 16:36

삭제된 댓글입니다

DACONIO
2020.06.04 18:10

Q. 양품률은 어떻게 적용되나요?
A. 채점시 양품률은 아래와 같이 적용됩니다.
PRT - uniform random 적용 | MOL, BLK - 단순 곱 계산

DACONIO
2020.06.04 18:15

Q. PROCESS 공정 마지막 부분에 투입된 아이템은 어떻게 되나요?
A. PROCESS 마지막 부분에 투입된 아이템은 다음 PROCESS에서 생산이 계속됩니다.

DACONIO
2020.06.01 13:13

삭제된 댓글입니다

B612
2020.06.01 14:05

삭제된 댓글입니다

HeeKD
2020.06.01 15:51

현재의 필요 생산 개수를 추정하기 위해 미래의 데이터를 사용해도 되나요?
 order.csv 파일에는 4월부터 6월까지의 주문량 데이터가 모두 입력되어 있습니다.
예를 들어 4월 15일에 원형 제작을 하기 위한 개수를 설정하기 위해 5월 20일의 주문량 데이터를 사용해도 되는 건가요?

DACONIO
2020.06.01 16:47

HeeKD님 안녕하세요.
4월 15일 계획에 5월 20일 데이터를 사용할 수 있습니다. 제공 드린 데이터는 어느 시점에서든 제한없이 사용 가능합니다.
4/1 ~ 6/30 동안 주문량, 양품률 등 모든 정보를 알고있는 상태에서 공정 계획을 만드는 문제입니다.

Pajun
2020.06.02 00:30

안녕하세요. 질문드립니다. 
B612님의 댓글로 보아공정과정 중 양품 생성 이벤트의 발생이 양품률이 98%라 가정하였을 때 case1-(98%로 전원 다음공정 or 2%의 확률로 공정 t에서 발생한 작업 물은 폐기) 가 아닌 case2-양품률이 98% 이므로 100개를 생산 시 양품률에 고려하여 98개 생성 으로 가정이라고 보여지고,  case2라 가정 될 경우 댓글에 달아주신 것처럼 5.85개 처럼 소수점의 문제가 발생하게 됩니다.

Pajun
2020.06.02 00:31

 일반적인 planning 문제에서는 X값 들을 실수값을 넣어도 괜찮다. 라고 가정하나 제시하여 주신 csv 파일을 보아 stock 값들이 int 값으로 제시되어 ,소수점 문제를 무시하고 생산량 X를 실수가 가능하다고 가정하시고 채점과정을 진행해주실 예정인지 궁금합니다. (11.5+8.5 = 20 인지 [11.5] +[8.5] = 19) 감사합니다

DACONIO
2020.06.02 11:08

채점시 양품률은 아래와 같이 적용됩니다.
PRT - random choice 적용 | MOL, BLK - 단순 곱 계산
들어주신 예시를 따르면 PRT - case1 | MOL, BLK - case2 입니다.

DACONIO
2020.06.04 18:16

Q. PRT는 정수, MOL은 실수로 기입하는 이유가 궁금합니다.
A. 실제 공정을 반영하기 위함입니다. 
실제 공정에서 투입시 원형 제작은 개수 단위로, 성형 공정은 시간 단위로 투입 합니다. (ex. 540초 당 1개 투입) 
투입 단위가 개수와 시간으로 다르면 문제가 필요 이상으로 복잡해져 이를 통일하는 과정에서 PRT는 정수, MOL은 실수로 표기 되었습니다.

우미관오야봉
2020.06.04 00:45

안녕하세요 PPT 보다가 궁금한 점이 있어서 질문드립니다.

성형 단계에서 "시간당 최대 6.667개 투입 가능"  이 부분에서  소수점은 어떻게 해석하면 될까요?  원형을 정수 개 단위로 투입을 시키는 것 아닌가요?

DACONIO
2020.06.04 01:30

성형 공정에 투입되는 PRT는 실수개가 가능합니다. 실수개의 의미는 윗 댓글을 참고해 주시면 감사하겠습니다.

최상혁
2020.06.04 16:47

안녕하세요. score 식에서 무작업이란 'STOP'일 때를 말하는 건가요 성형 PROCESS 중에 투입 개수가 0일 때를 말하는 건가요?

DACONIO
2020.06.04 16:55

무작업은 STOP을 의미합니다.

Heaven
2020.06.05 13:03

질문 1. [ 3. 자르기 - g. 자르기 공정은 자동 계산] 이라고 설명이 되어있습니다.
어떤 뜻인지 설명부탁드립니다.

질문 2. 자르기 공정에 소요되는 시간이 궁금합니다.
예를 들어, 
MOL_1, MOL_2는 1개 투입 -> X1 시간 소요 -> 각각 506개의 BLK_1, BLK_2로 잘림
MOL_3, MOL_4는 1개 투입 -> X2 시간 소요 -> 각각 400개의 BLK_3, BLK_4로 잘림
이런 식으로 X1, X2 자르기 공정에 소용되는 시간이 궁금합니다.

DACONIO
2020.06.05 23:15

1. 자르기 공정은 수요 발생시 MOL 재고를 모두 자릅니다. 제출 파일에 자르기 공정에 대한 값이 없지만 자동으로 처리된다는 의미입니다.
2. 자르기 공정에 소요되는 시간은 없으며 즉시 완료됩니다. (X1, X2 = 0시간으로 이해하셔도 무방합니다.)

원종호
2020.06.05 14:08

성형 공정에서 시간당 투입량은 6.6667에 공정시간은 48시간이라고 되어 있습니다.
투입후 48시간이 지나기전 정지 및 타입 변경이 가능한가요? 투입 후 48시간이 지나야 가능한가요?

DACONIO
2020.06.05 23:38

변경/정지는 투입 보다는 공정 시간과 관계있습니다. 공정 시간은 점검 후 최소 98시간, 최대 140시간 입니다. 
변경은 공정 시간 내, 정지는 최소 공정 시간인 98시간 후 가능합니다. 
위 조건을 만족하는 한 투입 여부는 관계 없습니다.

Norest73
2020.06.05 16:03

성형공정 투입 후 48시간 이후 생산완료인데, 생산 도중에는 점검/변경/멈춤을 하는 건 불가능한거죠?
만약 가능하다면 생산중이었던 제품을 다시 생산할때 이어서 할 수 있는건지 궁금합니다. (ex. 공정 24시간 후, 점검 28시간 후, 다시  공정 24시간으로 마무리)

DACONIO
2020.06.05 23:45

생산 도중 점검/변경/멈춤이 가능합니다. 단 공정 제약 조건인 최소 98시간, 최대 140시간 가동을 만족해야 합니다.
(변경은 공정 시간에 포함 되므로 점검 후 곧바로 변경 가능)
생산 도중 다른 이벤트가 발생하면 다음 과정 (PROCESS) 시 생산을 이어갑니다.
위 예시처럼 투입 24시간 후 점검 발생시 다음 공정 24시간 후 생산이 완료됩니다.

HeeKD
2020.06.05 21:33

성형 과정의 하루 최대 투입 개수인 max_count는 라인별 투입 수를 의미하는지 두 라인을 모두 합친 것을 의미하는지 궁금합니다.

DACONIO
2020.06.05 23:17

max_count는 라인별 하루 최대 투입 개수를 의미합니다.

asdff
2020.06.07 02:24

2. f. viii 부분에 질문이 있습니다.
'점검->공정->변경->멈춤'을 연달아 할 수 없다는 게, 변경 직후 멈출 수 없고 공정을 일정 시간 해야한다는 의미인가요?

DACONIO
2020.06.07 02:34

점검 후 점검, 변경 후 변경 과 같이 한 이벤트를 연달아 할 수 없습니다.
ex) CHANGE_12 후 바로 CHANGE_23 가 올 수 없음
말씀해주신 변경 직후 멈춤은 가능합니다.

우바기
2020.06.09 01:11

안녕하세요, 질문이 있습니다. 
수요 발생시점에서 수요를 충족시키지 못했을 경우, 해당 수요는 부족분으로 처리하고 더이상 고려하지 않아도 되는건가요?
혹은 수요 발생시점 이후 생산되는 물품으로 납기를 하면 패널티를 줄일 수 있는건가요?

DACONIO
2020.06.09 09:08

이미 발생한 패널티는 줄일 수 없습니다. 하지만 부족분은 남아 다음 수요를 고려하면 추가 생산으로 채우는 것이 유리합니다.

wiggler
2020.06.09 16:15

안녕하세요. PROCESS 종료 48시간 이전에 투입된 PRT는 생산이 완료되지 않은 상태에서 다음 PROCESS가 시작될 때 나머지 공정을 진행하여 생산을 재개한다고 하셨는데요. 다음 PROCESS에서 동종 제품을 생산하지 않고 품목을 변경하는 경우에는 미완성 상태의 PRT를 폐기한다고 봐야 할지, 품목 변경과 관계 없이 남은 공정 시간이 지나면 생산이 완료된다고 봐야 할지 궁금합니다. 

DACONIO
2020.06.09 16:21

wiggler님 안녕하세요. 품목을 변경하더라도 남은 공정 시간이 지나면 생산이 완료됩니다.

우바기
2020.06.09 16:28

안녕하세요. 질문이 있습니다!
이번 대회에서는 google-or-tools, gym, pytorch와 같은 모든 solver 사용이 제한되는 것인가요?

DACONIO
2020.06.09 17:09

우바기님 안녕하세요.
학습기반의 접근이라면 방법/툴 제한없이 사용가능합니다.예를 들어 NN 모델을 만들어 가중치를 학습시킨다면, 이를 pytorch 등으로 구현할 수 있습니다. 단, 상용프로그램은 사용할 수 없습니다.

우바기
2020.06.09 18:03

답변 감사합니다! 관련해서 하나만 더 질문드리겠습니다~
그렇다면 수리최적화 툴인 google-or-tools는 사용에 제한이 있는 것인가요? 가능하다면 수리최적화 기법과 AI 학습기법을 동시에 사용해보고 싶어서요~

DACONIO
2020.06.09 18:13

답변을 위해서는 사용 목적, 툴 적용 방법에 관한 상세한 설명이 필요합니다. dacon@dacon.io 로 자세한 내용을 보내주시면 감사하겠습니다.

2asy
2020.06.09 23:24

stop 이벤트 후 change 이벤트가 가능한가요?

DACONIO
2020.06.09 23:48

STOP 후에는 반드시 CHECK 이벤트가 와야 합니다. (점검 시간보다 길게 공정 중단 시, 최대 8일까지 공정 정지 가능. 정지 후 점검 필수)

2asy
2020.06.10 11:26

답변 감사드리고 한가지 더 질문이 있습니다
위의 설명을 보면
change 이벤트의 경우 process 시간에 포함시켜 98~140hr 를 진행하게 되고, 
check 이벤트 중에도 가능하여 check 이벤트 중 change이벤트 실행하여 두가지 이벤트를 28hr만에 가능하다고 써있습니다

그렇다면 process - change - check 순서로 이벤트가 발생한다고 했을 때 
가운데의 change 이벤트는 process와 check 중 어느 이벤트에 산입 되는건가요?

DACONIO
2020.06.10 13:07

성형 공정에서 아이템을 변경하고 싶을 때 CHECK, CHANGE를 사용할 수 있습니다.
CHECK는 점검 이벤트로 CHECK 뒤에 붙는 번호로 투입 아이템이 변경됩니다.
PROCESS 중 아이템을 변경할 경우 CHANGE 이벤트를 사용할 수 있습니다.
PROCESS가 종료된 후 투입 아이템 변경 시 CHANGE 없이 CHECK만 와도 됩니다. (CHECK 뒤 번호로 설정)

wiggler
2020.06.10 16:06

안녕하세요. PROCESS에 투입되는 PRT량을 0 이상 입력 가능한 것으로 알고 있습니다. 이 때 계속 0으로 입력하는 경우 정상 PROCESS로 판단하는 것인지 궁금합니다. 문제에서 STOP 공정에 대해 정의한 내용을 유추하면, 점검시간(28시간)까지는 0으로 입력 가능하고 29시간 연속 0으로 입력되는 경우에는 공정이 중단되는 STOP으로 판단하는 것 같기도 합니다. PROCESS 진행 시간 동안 계속 0으로 입력하는 경우도 가능할 것 같아서 질문 드립니다. 

DACONIO
2020.06.10 16:34

PROCESS 중 투입 개수를 0으로 입력하는 경우 패널티를 부여하지 않습니다. 단, 최소 98시간 최대 140시간 가동 조건이 지켜져야 합니다.
이벤트가 'STOP'일 경우에만 멈춤으로 판단합니다. STOP은 29시간 이상 192시간 (8일) 이하 수행 할 수 있습니다.

최상혁
2020.06.11 16:57

안녕하세요.
score에서 p, q가 '수요발생시'에만 값이 부여되는 것으로 되어있는데, 이 부분이 잘 이해가 안 되네요.
만약 어느 날의 수요가 [100, 0, 0, 50]이고 그 날의 재고가 [90, 10, 0, 60]이라고 하면
p, q 값은 각각 어떻게 되나요?

DACONIO
2020.06.11 23:29

삭제된 댓글입니다

최상혁
2020.06.11 17:35

그렇다면 수요가 [0, 0, 0, 0]인 날도 재고만큼 초과분이 그대로 점수에 반영된다는 말씀이시죠?

DACONIO
2020.06.11 18:00

정정하겠습니다. 수요가 0인 경우  점수에 반영되지 않습니다. 
들어주신 예에서는 수요가 있는 BLK_1, BLK_4 만 반영됩니다. 
재고 - 수요 = [90, 60] - [100, 50] = [-10, 10] 으로 부족분 p = 10, 초과분 q = 10입니다. 
수요가 [0, 0, 0, 0]인 날은 반영하지 않습니다.

최상혁
2020.06.11 18:44

그럼 현재 리더보드 스코어가 잘못 측정되고 있는 것 같습니다...! 확인 부탁드리겠습니다.

DACONIO
2020.06.11 19:16

order.csv 파일에서 총 109번 수요가 발생합니다. (BLK_1: 32회, BLK_2: 16회, BLK_3: 36회, BLK_4: 25회)
수요 발생 시 초과분 및 부족분을 합산하여 스코어에 적용합니다. 
어떤 점에서 스코어 측정이 잘못되었다고 말씀하시는지 남겨주시면 감사하겠습니다.

최상혁
2020.06.11 22:23

모든 BLK의 전체 기간동안의 p, q, n 값을 각각 모두 더해  P, Q, N을 만들어 F(P, 10N), F(Q, 10N) 을 계산하는 것 맞나요?
제가 이해한 대로 구현했을 때에는 리더보드 점수와 다르게 나와서...

나단단단단단단단단단단단단단단단단단단단
2020.06.11 22:27

저도 리더보드랑 크게 다르게나옵니다. 채점 기준이 있을것이라 생각은하지만...

저도 궁금한게 있는데 p값은 어짜피 하나라도 생산하면 절대 p가 N을 넘을수 없지 않나요? 굳이 p에 대해서도 10N을 적용한 이유가 궁금합니다.

DACONIO
2020.06.11 23:08

모든 BLK의 전체 기간동안의 p, q, n 값을 각각 모두 더해  P, Q, N을 만들어 F(P, 10N), F(Q, 10N) 을 계산하는 것 맞나요?
> 맞습니다.

DACONIO
2020.06.11 23:09

저도 궁금한게 있는데 p값은 어짜피 하나라도 생산하면 절대 p가 N을 넘을수 없지 않나요?
> 아래 예로 설명드리겠습니다.
총 기간 3일, 수요는 [10, 10, 10], 생산은 하지 않는 것으로 가정한다면,
첫 번째 날 10개 부족분이 발생합니다. 이 부족분은 다음 생산으로 채워야 하는 값 입니다.

DACONIO
2020.06.11 23:09

두 번째 날에는 전날 발생한 부족분 10개에 새로운 수요 10개가 더해져 총 20개 부족분이 발생합니다.
마지막 날에는 30개 부족분이 발생하여 전체 부족분은 10+20+30=60이 됩니다.
수요 총 수는 10+10+10=30 이지만 지속적으로 생산량이 부족한 경우 부족분 개수는 수요 총 수를 초과할 수 있습니다.

최상혁
2020.06.11 23:22

아하, 미충족 수요가 계속 다음 날로 이월되는 군요! 감사합니다.

DACONIO
2020.06.11 23:35

본문 공정 상세에 문의 주신 부분의 설명이 충분하지 않아 본문을 수정하였습니다.
(추가) 4d. BLK 부족분, 초과분은 다음 시간으로 이월
또한 추가 오해가 없도록 잘못 답변한 댓글 (2020.06.11 17:18) 을 삭제 처리 하였습니다. 
감사합니다.

최상혁
2020.06.11 23:47

그렇다면 수요가 [10, 0, 10] 이고 생산은 없다고 할 때
첫째 날의 부족분이 셋째 날로 이월되는 건가요? 다시 말해, 둘째 날은 여전히 0이고, 셋째 날의 수요가 20이 되는 건가요?

DACONIO
2020.06.12 00:09

부족분/초과분 이월은 다음 시간으로 가되 패널티는 수요 발생시에만 계산된다고 이해하는게 쉬울 것 같습니다.
위 예시에서는 부족분은 [-10, -10, -20]이 되지만 패널티는 첫 째날과 셋 째날에 계산되어 p = 30이 됩니다.

희망찬1213
2020.06.11 20:41

안녕하세요. PROCESS- CHANGE 이벤트 이후에 바로 변경된 물품 공정( PROCESS) 수행해도되는 건지요. 아니면 CHANGE 이후에 변경된 제품을 점검( CHECK)하는 단계를 반드시를 수행해야하나요?

DACONIO
2020.06.11 20:54

CHANGE 이벤트 후 PROCESS를 수행해도 됩니다. 
CHANGE는 PROCESS 중 투입 물품을 빠르게 변경하고 싶을 때 사용하는 이벤트 입니다.

HeeKD
2020.06.12 20:52

삭제된 댓글입니다

DACONIO
2020.06.12 20:12

HeeKD 님 안녕하세요. 제출  파일은 하나 이상의 제약조건을 충족하지 못해 0점 처리 되었습니다.
공정한 대회를 위해 대회 운영에 관련된 질문 외에는 답변 드릴 수 없는 점 양해바랍니다.

DACONIO
2020.06.12 20:26

제출 파일을 데이콘 내 코드 공유, 토론 페이지를 통해 공유하는 것은 부정행위에 해당되지 않으니
다른 참가자 분들의 조언을 구하는 것도 오류를 찾는 좋은 방법일 것 같습니다.
감사합니다.

최중간
2020.06.13 12:37

keras나 tensorflow같은 패키지 사용해도 되나요??

Mather
2020.06.13 12:39

오픈소스 라이브러리는 사용가능한것으로 알고 있습니다.

DACONIO
2020.06.14 12:36

패키지 사용에 제한은 없습니다. 본문의 Q9 또는 아래 토론을 참고해 주시기 바랍니다.
https://dacon.io/competitions/official/235612/talkboard/400825

Machine
2020.06.13 14:47

stock.csv에 PRT 재고가 있는 경우, 곧바로 성형 공정에 투입 가능한 것이 맞나요?

DACONIO
2020.06.13 14:51

PRT 재고가 있는 경우 아래 제약조건을 만족하는 범위에서 투입 가능합니다.
2.f.i 시간당 최대 6.667개 투입 가능, 날짜별 최대 투입 개수는 max_count.csv 를 따름

Machine
2020.06.13 15:06

네, 그런데 다음의 2가지 경우에서 점수가 다르게 나와 재문의드립니다.
1) 4.1 ~ 4.23 기간에 날짜별 max_count.csv와 stock.csv를 모두 고려하여 성형 공정에 투입하였을 때는 채점결과가 0점이었습니다.
2) 동일 기간에 이벤트는 동일한 상황에서 성형 공정 투입 개수를  0으로 하였을 때는 점수가 나왔습니다.
이것으로 보아 해당 기간에 추가로 적용된 제약사항이 있는 것 같아 확인 문의드립니다.

DACONIO
2020.06.13 15:51

성형 조건 투입 개수에 추가 제약사항은 없습니다. 
말씀하신 기간 외에도 다른 부분에서 제약 조건을 위반 할 시 0점으로 처리되므로 참고해주시기 바랍니다.

Machine
2020.06.13 16:24

위에서 말씀드린 2가지 경우의 차이는, 오직 4.15 ~ 4.23 기간에 MOL을 투입 했는지 여부입니다. (max_count.csv에 따르면 4.1~4.14은 투입가능한 MOL이 0개이므로)
그리고 MOL 투입 가능 여부는 일별 max_count와 해당 PRT 재고 상황에 따라 결정되므로 두 가지 제약만 NG에 영향을 주는 것으로 생각 됩니다.
그런데 두 가지 상황을 모두 만족시키는 결과임에도 불구하고 0점이 나와 문의드렸던 것입니다.

DACONIO
2020.06.13 16:28

말씀하시는 파일들이 2020-06-13 01:08:50, 2020-06-13 15:59:22에 업로드 한 파일들이 맞나요? 앞에는 정상 채점, 뒤는 0점으로 채점된 파일입니다.

Machine
2020.06.13 16:40

네 맞습니다.

DACONIO
2020.06.13 16:57

확인 감사합니다. 
1. 두 파일은 동일 기간, 동일 이벤트는 아닌 것으로 확인됩니다. 예를 들어 정상파일에서는 Event_B가 CHECK_3으로 시작하는 반면 0점 채점 파일은 CHECK_4로 시작합니다.
2. 0점 처리된 이유는 투입 개수 오류가 아닙니다. 공정한 대회를 위해 공개되지 않은 파일에 대한 자세한 답변은 드리지 못하는 점 양해 바랍니다.

DACONIO
2020.06.13 16:58

제출 파일을 데이콘 내 코드 공유, 토론 페이지를 통해 공유하는 것은 부정행위에 해당되지 않으니 다른 참가자 분들의 조언을 구하는 것도 오류를 찾는 좋은 방법일 것 같습니다. 감사합니다.

Machine
2020.06.13 17:06

네, 확인 감사합니다.

DACONIO
2020.06.13 17:24

좋은 결과 있길 바라겠습니다:)
감사합니다.

chiricuto
2020.06.14 09:36

위 ppt 8페이지 초록색 change 부분이
change_time.csv파일에 명시된 시간만을 의미하시는지, 아니면 change_time + changed process 인지가 그리고 그 부분들을 제출엑셀파일에 어떻게 명시해줘야하는지 헷갈립니다.

제출한 파일중 2020-06-14 09:23:31 result63.csv 와  2020-06-14 08:57:23 result63.csv가 위의 질문 부분과 관련 NG가 발생한것아닌가 추측되는데 같이 답변 주시면 감사드립니다.

DACONIO
2020.06.14 12:30

ppt 8페이지 초록색 change 부분은 change_time.csv파일에 명시된 시간으로 6시간 또는 13시간 입니다.
엑셀 파일에서는 6시간에 해당하는 CHANGE는 6칸, 13시간에 해당하는 CHANGE는 13칸 입력해주시면 됩니다.

chiricuto
2020.06.14 14:22

그렇다면 min 98  max 140시간이 
check + process + change 를 말씀하시는 걸까요? 
아니면 check + process + change + changed process 일까요?
 
만약 첫번째가 맞다면 변경된 공정(changed process)의 시간은 다시 0부터 시작해서
min 98 max 140시간을 만족해야할까요?

그리고 추가적으로 마지막 타임(6월말)의 공정에 대해서도 무조건 min 98 max 140을 만족해야 하는 걸까요?

DACONIO
2020.06.14 14:34

check는 해당하지 않습니다. 공정 시간은 본문의 2.f.v 를 참고해 주시기 바랍니다. (변경 시간은 공정 시간에 포함)
PROCESS 중 6시간 CHANGE 가 발생하면 아래와 같은 리스트로 표현할 수 있습니다.
[PROCESS, PROCESS, ..., CHANGE, CHANGE, CHANGE, CHANGE, CHANGE, CHANGE, PROCESS, ..., PROCESS]
리스트 길이는 98 이상, 140 이하가 되어야 합니다.

DACONIO
2020.06.14 14:36

이벤트가 06.30 23:00 에서 중간에 끝나는 경우에는 시간에 대한 제약조건을 만족하지 않아도 0점 처리 하지 않습니다.

chiricuto
2020.06.14 14:51

답변 감사합니다. 
그렇다면 혹시 방금 제출한 2020-06-14 14:47:55 result_63.csv 파일이 0점으로 채점된 이유가 위에 댓글에서 물어본 CHANGE와 관련된 질문들과 관계가 없는게 맞는지 확인해주실수 있으실까요?

DACONIO
2020.06.14 15:00

공정한 대회를 위해 공개되지 않은 개별 파일에 대한 자세한 답변은 드리지 못하는 점 양해 바랍니다.
제출 파일을 데이콘 내 코드 공유, 토론 페이지를 통해 공유하는 것은 부정행위에 해당되지 않으니 다른 참가자 분들의 조언을 구하는 것도 오류를 찾는 좋은 방법일 것 같습니다.

chiricuto
2020.06.14 15:15

네 알겠습니다. 다른 건 아니고 채점 시스템에 혹시 오류가 있는건 아닌지 묻고 싶니다만, 없다고 이해하겠습니다. 감사합니다

DACONIO
2020.06.14 15:21

언급하신 파일은 하나 이상의 제약조건을 만족하지 못해 정상적으로 0점 처리 되었습니다. 감사합니다.

우바기
2020.06.17 00:17

안녕하세요, 질문이 있습니다.
현재 올려주신 유전알고리즘 코드에서는 PRT생산에 대한 계산을 마지막에 일괄적으로 처리하는데, 이 경우 양품률을 고려해서 MOL의 1.1를 더 생산하도록 되어 있습니다. 하지만 PRT의 경우에는 투입마다 양품률을 고려해줘야 하므로 정말 운이 나쁜 경우 PRT생산에 100개를 투입했지만 정작 PRT가 0개 만들어질 수도 있다고 생각합니다.  그래서 실제 score계산할 때는 PRT->MOL에 대한 생산을 어떻게 시뮬레이션하여 채점하고 계신건지 여쭤보고 싶습니다!

DACONIO
2020.06.16 20:36

우바기님 안녕하세요. 원형 제작 과정에 대해 질문 주신 것으로 이해됩니다. PRT 제작을 위한 투입 개수는 정수로 입력받고 개별로 양품률 98.5%를 적용해 양품/불량품으로 나누고 있습니다. 따라서 투입 개수로 100을 입력할 때 '정말' 운이 나쁜 경우 양품이 나오지 않을 수 있습니다. 생산된 PRT가 모두 불량품일 확률은 (0.015)^100 입니다.

DACONIO
2020.06.16 20:41

추가로 PRT -> MOL 생산은 성형 공정에서 이루어지며 MOL_A, MOL_B에 입력된 PRT 개수에 양품률 97.5%를 적용해 MOL 생산 개수를 결정합니다. 예를 들어 투입 개수로 5.5개 입력시 MOL 생산량은 5.5 X 0.975 = 5.3625 개 입니다.

우바기
2020.06.17 00:25

아하, 답변 감사합니다! 원 질문에 다른 분들이 오해할만한 내용이 있어 조금 수정했습니다.
그렇다면 예를 들어, 5월 24일에 MOL을 100개 생산할 것으로 계획하고 이에 맞춰 PRT생산 일정을 반영한다고 했을 때, 5월 24일까지는 PRT 100개가 준비되어야 하는데 그러려면 5월 1일에는 양품률을 고려하여 100개 이상의 투입을 해야할 것입니다.

우바기
2020.06.17 00:27

그런데 현재처럼 1.1을 곱해서 계산한다면 PRT를 5월 1일에 110개를 투입할 것이고, 110개를 넣는다면 5월 24일에 100개 보다 적은 PRT가 생산될 가능성이 있다고 생각합니다. 그렇다면 MOL생산 100개를 5월 24일에 제대로 할 수 없게 되므로 NG상황이 되는 것 아닌가요? 

DACONIO
2020.06.17 09:46

들어주신 예와 같이 성형 공정에 투입할 PRT가 부족하면 NG 입니다.

라마누잔
2020.06.17 02:17

안녕하세요, 질문있습니다.

혹시 MOL 라인 점검(CHECK) 중 PRT 투입 제품이 바뀌게 되면 성능 지표 수식에서 c와 c_n이 각각 28, 1씩 증가하게 되는 건지 궁금합니다.

감사합니다.

DACONIO
2020.06.17 09:37

CHECK 중 투입 제품이 바뀌는 경우 패널티가 없습니다. c, c_n은 CHANGE 이벤트에 해당하는 변수 입니다.

라마누잔
2020.06.17 09:48

감사합니다.

최상혁
2020.06.19 08:55

Event를 결정하는 데에만 강화학습 모델을 사용하고, PRT, MOL 투입량을 결정하는 것에는 최적화 모델을 사용해도 될까요? (상용 프로그램은 아니고 직접 짠 코드입니다.) 

DACONIO
2020.06.19 18:11

최상혁님 안녕하세요.
본 대회 취지는 AI 역량 평가 입니다. 모델 학습 외 목적으로 최적화 방법을 사용하면 최종 평가 시 감점 요인이 됩니다.

최상혁
2020.06.19 23:23

넵... 감사합니다.

행복한금요일
2020.06.19 22:02

안녕하세요. 유전알고리즘의 경우 epoch의 수가 많을수록 더 좋은 솔루션을 찾을 확률이 높아지는데 미리 학습한 유전알고리즘 결과를 저장한 후 이어서 학습한 결과도 인정이 되는건가요?? 외부데이터 사용금지라고 되어있어서 여쭤봅니다. 

DACONIO
2020.06.21 09:04

행복한금요일님 안녕하세요. 주어진 데이터만 사용하는 한 저장 후 재사용 가능합니다. 
코드 제출 시 중간 결과물을 생성하는 코드가 포함되어야 하며 리더보드 점수를 복원할 수 있어야 합니다.

라마누잔
2020.06.20 17:33

안녕하세요, 질문있습니다.

혹시 동시간대에 생성된 PRT 를 MOL 라인에 투입할 수 있나요?

예를 들어 05월 01일 02:00에 PRT_2 갯수가 0개이고 03:00에 완료된 PRT_2가 10개일때 05월 01일 03:00에 MOL_2 제작 명령을 주어도 되나요?

감사합니다.

DACONIO
2020.06.21 09:11

라마누잔님 안녕하세요.
동시간에 생성된 PRT를 성형 공정에 투입할 수 있습니다.

라마누잔
2020.06.21 18:49

감사합니다.

x2ever.han
2020.06.23 12:53

check  이후에 process로 변경후 change가 되는 것이 아니라, check 이후에 바로 change가 되어도 되나요? (물론 change가 시작한 순간 부터 process가 진행된다고 가정하고 그 시점부터 98 ~ 140시간 할 것인 상황입니다. )

DACONIO
2020.06.23 13:50

CHECK 이벤트 직후 CHANGE 이벤트가 올 수 있습니다.

김완수
2020.06.24 01:56

점검, 공정, 변경, 멈춤은 연달아 할 수 없음. 예) CHECK_1 > CHECK_2, CHANGE_12 > CHANGE_23

위의 경우에서 공정 도중 CHANGE_12가 되어 CHANGE_12가 끝난 이후 한 타입스텝만 PROCESS를 수행하고 CHANGE_23을 하는 것은 가능한가요?

DACONIO
2020.06.24 10:39

네 가능합니다.

x2ever.han
2020.06.28 06:47

prt 생산시 random normal을 사용하면 같은 submission 파일이 점수가 더 좋게 나올 수도 안 좋게 나올 수 있지 않나요? 그리고 심지어 만약 매우 낮은 확률로 prt의 생산이 거의 안되어서 prt의 재고보다 mol을 많이 투입하면, 일반적으로는 맞는 답안일지라도 0점 처리가 될 수 있지 않나요? 

prt 투입량이 max_count보다 작은 것은 확인했음에도 불구하고, 계속 0점 처리가 나와서 혹시 이런 문제가 이유가 될 수 있지 않을까 여쭤봅니다.

DACONIO
2020.06.29 11:53

x2ever.han님 안녕하세요. 문의주신 사항은 가능하지만 확률은 낮습니다. 일반적으로 MOL 투입 개수에서 오류가 발생되는 것으로 확인되니 참고하셔서 결과물을 검토해 보시기 바랍니다.

x2ever.han
2020.06.29 13:31

max count을 초과했다는 말씀이신가요?? 혹시 max count가 라인당이 아니라 라인 두개합 인가요??

DACONIO
2020.06.29 18:42

max counts는 라인별 최대 투입 개수를 의미합니다. 
공정한 대회를 위해 공개되지 않은 개별 파일에 대한 자세한 답변은 드리지 못하는 점 양해 바랍니다.
다른 참가자 분들 처럼 제출 파일을 토론 페이지로 공유하여 오류를 찾는 것이 좋은 방법일 것 같습니다.

우바기
2020.06.29 19:02

안녕하세요! 질문이 있습니다.
코드 제출시 여러가지 파일을 하나로 압축해서 제출해도 괜찮을까요?

DACONIO
2020.06.29 19:21

해당 사항은 대회 종료 후 온라인 대면 평가 대상자 분께 메일로 안내드릴 예정입니다.