KR20210076132A - 생산 스케줄링을 위한 심층 강화 학습 - Google Patents

생산 스케줄링을 위한 심층 강화 학습 Download PDF

Info

Publication number
KR20210076132A
KR20210076132A KR1020217015352A KR20217015352A KR20210076132A KR 20210076132 A KR20210076132 A KR 20210076132A KR 1020217015352 A KR1020217015352 A KR 1020217015352A KR 20217015352 A KR20217015352 A KR 20217015352A KR 20210076132 A KR20210076132 A KR 20210076132A
Authority
KR
South Korea
Prior art keywords
production
neural network
production facility
product
products
Prior art date
Application number
KR1020217015352A
Other languages
English (en)
Inventor
크리스티안 허브스
존 마틴 와식
Original Assignee
다우 글로벌 테크놀로지스 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 다우 글로벌 테크놀로지스 엘엘씨 filed Critical 다우 글로벌 테크놀로지스 엘엘씨
Publication of KR20210076132A publication Critical patent/KR20210076132A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06313Resource planning in a project environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06312Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06314Calendaring for a resource
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0637Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0637Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
    • G06Q10/06375Prediction of business process outcome or impact based on a proposed change
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/087Inventory or stock management, e.g. order filling, procurement or balancing against orders

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Probability & Statistics with Applications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • General Factory Administration (AREA)

Abstract

생산 설비에서의 생산을 스케줄링하기 위한 방법 및 장치가 제공된다. 제품 요청들을 만족시키는 제품들을 생산하기 위해 하나 이상의 입력 물질들을 사용하는 생산 설비의 모델이 결정될 수 있다. 각각의 제품 요청은 요청된 시간에 사용될 수 있는 요청된 제품을 특정할 수 있다. 생산 설비에 대해 정책 및 가치 신경망들이 결정될 수 있다. 정책 신경망은 생산 설비에서 스케줄링되는 생산 행동을 나타낼 수 있고, 가치 신경망은 생산 설비에서 생산된 제품의 이익을 나타낼 수 있다. 정책 및 가치 신경망들은 특정 시간 구간에 걸쳐 제품 요청들을 만족시키고 요청된 제품의 생산 지연으로 인한 페널티와 관련되는, 생산 설비에서의 생산 행동들의 스케줄을 생성하기 위한 훈련 중에 생산 설비의 모델을 사용할 수 있다.

Description

생산 스케줄링을 위한 심층 강화 학습
관련 출원의 교차 참조
본 출원은 2018년 10월 26일에 출원된 미국 특허임시출원 제62/750,986호의 우선권을 주장하며, 그 전체가 본원에 참고로 포함된다.
화학 기업들은 생산 설비를 이용하여 매일, 원료 입력을 제품으로 변환할 수 있다. 이러한 화학 기업들을 운영함에 있어서, 어떠한 화학 제품들이 생산되어야 하는지, 언제 생산되어야 하는지, 그리고 이들 제품들이 얼마나 많이 생산되어야 하는지에 관하여, 자원 할당에 관한 복잡한 질문들이 주어지고 답변되어야 한다. 재고 관리에 대한 추가적인 질문, 예를 들어, 현재 얼마나 배치할 것인지와, 얼마만큼의 재고를 얼마나 오래 저장할 것인지와 같은 이러한 결정에 대한 "보다 나은" 답변은 화학 기업의 이익 폭을 증가시킬 수 있다.
또한, 화학 기업들은 생산 전략을 수정하여 경쟁력을 유지할 수 있게 하는 경쟁 및 혁신으로부터의 증가하는 압력에 직면하고 있다. 게다가, 이러한 결정들은 상당한 불확실성에 직면하여 행해질 수 있다. 생산 지연, 공장 폐쇄 또는 중단, 주문 폭증, 급등락하는 가격, 변동하는 수요는 모두, 미리 최적화되어 있는 스케줄, 차선책 스케줄 또는 심지어 실행 불가능한 스케줄을 만드는 불확실성의 원인이 될 수 있다.
화학 기업이 직면하고 있는 자원 할당 문제에 대한 해결책은 종종, 실시간 수요에 대응하기에는 너무 긴 계산 시간이 걸려 계산하기 어렵다. 스케줄링 문제들은 시간, 최적화 결정 및 기타 모델링 요소를 다루는 방법에 의해 분류된다. 두 개의 현재의 방법들, 즉, 강인한(robust) 최적화 및 확률 최적화는 불확실성을 다루면서 스케줄링 문제들을 해결할 수 있다. 강인한 최적화는 시스템에서 불확실성의 가능한 결과들의 주어진 세트를 통해 스케줄이 실행 가능하도록 보장한다. 강인한 최적화의 일 예는 공정 시간, 수요 및 원료 가격에 불확실성을 갖는 연속 시간의 상태-태스크 네트워크(STN: state-task network)로서 모델링된 화학 공정을 스케줄링하는 것을 포함할 수 있다.
확률 최적화는, 결정이 이루어지고 나서 불확실성이 밝혀지며, 새로운 정보가 주어진 경우 리코스(recourse) 결정이 이루어질 수 있게 하는 단계들에서 불확실성을 처리할 수 있다. 확률 최적화의 일 예는 확률적 수요를 갖는 주어진 고객 만족 수준을 유지하도록 안전 재고 수준들을 결정하기 위해 다단계 확률 최적화 모델을 사용하는 것을 포함한다. 확률 최적화의 또 다른 예는, 그들의 결정들과 관련된 위험을 고려하면서 이동 구간을 갖는 화학적 배치 공정의 스케줄링을 다루기 위해 2단계의 확률적 혼합 정수(mixed-integer) 선형 프로그램을 사용하는 것을 포함한다. 불확실성 하에서의 최적화에 대한 긴 역사가 존재하지만, 많은 기술들은 높은 계산 비용, 불확실성의 원인(내인성 대 외인성), 및 불확실성을 측정하는데 있어서의 복잡성으로 인해 구현하기가 어렵다.
제1 예시적 실시예는 컴퓨터 구현 방법을 포함할 수 있다. 하나 이상의 제품 요청을 만족시키기 위해 하나 이상의 입력 물질을 이용하여 생산 설비에서 생산되는 하나 이상의 제품의 생산과 관련된 생산 설비의 모델이 결정될 수 있다. 각각의 제품 요청은 하나 이상의 요청된 시간에 생산 설비에서 이용 가능한 하나 이상의 제품 중의 하나 이상의 요청된 제품을 특정할 수 있다. 생산 설비에 대한 정책 신경망 및 가치 신경망이 결정될 수 있다. 정책 신경망은 생산 설비에서 스케줄링되는 생산 행동을 나타내는 정책 함수와 연관될 수 있다. 가치 신경망은 생산 행동에 기초하여 생산 설비에서 생산된 제품의 이익을 나타내는 가치 함수와 연관될 수 있다. 정책 신경망 및 가치 신경망은 생산 모델을 기초로 하여 특정 시간 구간 동안 하나 이상의 제품 요청을 만족시키는 생산 설비에서의 생산 행동들의 스케줄을 생성하도록 훈련될 수 있다. 생산 행동들의 스케줄은 하나 이상의 요청된 시간들에 기초하여 결정된 하나 이상의 요청된 제품들의 지연 생산으로 인한 페널티와 관련될 수 있다.
제2 예시적인 실시예는 컴퓨팅 장치를 포함할 수 있다. 컴퓨팅 장치는 하나 이상의 프로세서 및 데이터 저장장치를 포함할 수 있다. 데이터 저장장치에는, 하나 이상의 프로세서에 의해 실행될 때, 컴퓨팅 장치로 하여금 제1 예시적인 실시예의 컴퓨터 구현 방법을 포함할 수 있는 기능들을 수행하게 하는 컴퓨터 실행가능 명령들이 저장될 수 있다.
제3 예시적인 실시예는 제조 물품을 포함할 수 있다. 제조 물품은, 컴퓨팅 장치의 하나 이상의 프로세서에 의해 실행될 때, 컴퓨팅 장치로 하여금 제1 예시적인 실시예의 컴퓨터 구현 방법을 포함할 수 있는 기능들을 수행하게 하는, 컴퓨터 판독가능 명령들이 저장된 하나 이상의 컴퓨터 판독가능 매체를 포함할 수 있다.
제4 예시적 실시예는 컴퓨팅 장치를 포함할 수 있다. 컴퓨팅 장치는 제1 실시예의 컴퓨터 구현 방법을 수행하기 위한 수단을 포함할 수 있다.
제5 예시적 실시예는 컴퓨터 구현 방법을 포함할 수 있다. 컴퓨팅 장치는 생산 설비와 연관된 하나 이상의 제품 요청들을 수신할 수 있고, 각각의 제품 요청은 하나 이상의 요청된 시간들에 생산 설비에서 이용가능한 하나 이상의 제품들 중 하나 이상의 요청된 제품들을 특정한다. 훈련된 정책 신경망 및 훈련된 가치 신경망은 특정 시간 구간에 걸친 하나 이상의 제품 요청을 만족시키는 생산 설비에서의 생산 행동들의 스케줄을 생성하는데 이용될 수 있고, 훈련된 정책 신경망은 생산 설비에서 스케줄링될 생산 행동들을 나타내는 정책 함수와 연관되며, 훈련된 가치 신경망은 생산 행동들에 기초하여 생산 설비에서 생성되는 제품들의 이익을 나타내는 가치 함수와 연관되고, 여기서 생산 행동들의 스케줄은 하나 이상의 요청된 시간에 기초하여 결정된 하나 이상의 요청된 제품들의 지연 생산, 및 생산 설비에서의 하나 이상의 제품들의 생산의 변화로 인한 페널티와 관련된다.
제6 예시적 실시예는 컴퓨팅 장치를 포함할 수 있다. 컴퓨팅 장치는 하나 이상의 프로세서 및 데이터 저장장치를 포함할 수 있다. 데이터 저장장치에는, 하나 이상의 프로세서들에 의해 실행될 때, 컴퓨팅 장치로 하여금 제5 예시적인 실시예의 컴퓨터 구현 방법을 포함할 수 있는 기능들을 수행하게 하는 컴퓨터 실행가능 명령들이 저장될 수 있다.
제7 예시적 실시예는 제조 물품을 포함할 수 있다. 제조 물품은, 컴퓨팅 장치의 하나 이상의 프로세서들에 의해 실행될 때, 컴퓨팅 장치로 하여금 제5 예시적인 실시예의 컴퓨터 구현 방법을 포함할 수 있는 기능들을 수행하게 하는, 컴퓨터 판독가능 명령들이 저장된 하나 이상의 컴퓨터 판독가능 매체를 포함할 수 있다.
제8 예시적 실시예는 컴퓨팅 장치를 포함할 수 있다. 컴퓨팅 장치는 제5 예시적 실시예의 컴퓨터 구현 방법을 수행하기 위한 수단을 포함할 수 있다.
이들뿐만 아니라 다른 실시예들, 양태들, 이점들, 및 대안들은 적절한 경우에 첨부된 도면들을 참조하여 이하의 상세한 설명을 읽음으로써 통상의 기술자에게 명백해질 것이다. 또한, 본 요약 및 본원에서 제공되는 다른 설명 및 도면들은 단지 예로서 실시예들을 예시하기 위한 것이며, 그와 같이, 수많은 변형들이 가능하다. 예를 들어, 구조적 요소들 및 공정 단계들은 청구되는 바와 같이 실시예들의 범위 내에 있으면서, 재배열되거나, 조합되거나, 분산되거나, 제거되거나, 또는 달리 변경될 수 있다.
도 1은 예시적인 실시예들에 따른 컴퓨팅 장치의 개략도를 도시한다.
도 2는 예시적인 실시예들에 따른 서버 장치 클러스터의 개략도를 도시한다.
도 3은 예시적인 실시예들에 따른 인공 신경망(ANN) 아키텍처를 도시한다.
도 4a 및 도 4b는 예시적인 실시예들에 따른 ANN을 훈련하는 단계를 도시한다.
도 5는 예시적인 실시예들에 따른 ANN에 대한 강화학습을 도시하는 도면을 도시한다.
도 6은 예시적인 실시예들에 따른 예시적인 스케줄링 문제를 도시한다.
도 7은 예시적인 실시예들에 따른, 에이전트를 포함하는 시스템을 도시한다.
도 8은 예시적인 실시예들에 따른 도 7의 시스템에 대한 모델의 블록도이다.
도 9는 예시적인 실시예들에 따른 도 7의 시스템에서의 생산 설비에 대한 스케줄을 도시한다.
도 10은 예시적인 실시예들에 따른 도 7의 시스템의 에이전트의 도면이다.
도 11은 예시적인 실시예들에 따른, 행동 확률 분포를 생성하는 도 7의 시스템의 에이전트를 도시하는 도면을 도시한다.
도 12는 예시적인 실시예들에 따른, 행동 확률 분포들을 이용하여 스케줄을 생성하는 도 7의 시스템의 에이전트를 도시하는 도면을 도시한다.
도 13은 예시적인 실시예들에 따라 특정 시간에 수행되는 도 12의 행동들의 스케줄을 도시한다.
도 13은 예시적인 실시예들에 따라 특정 시간에 수행되는 도 7의 시스템의 생산 설비에 대한 행동들의 예시적인 스케줄을 도시한다.
도 14는 예시적인 실시예에 따라 도 7의 에이전트를 훈련하는 동안 얻어진 에피소드 당 보상 및 에피소드 당 제품 이용가능성을 훈련시키는 그래프들을 도시한다.
도 15는 예시적인 실시예들에 따른, 생산 설비에서의 스케줄링 활동들에서의 신경망 및 최적화 모델 성능을 비교하는 그래프들을 도시한다.
도 16은 예시적인 실시예들에 따른, 생산 설비에서의 스케줄링 활동들에서의 신경망 및 최적화 모델 성능을 비교하는 추가적인 그래프들을 도시한다.
도 17은 예시적인 실시예들에 따른 하나의 방법에 대한 흐름도이다.
도 18은 예시적인 실시예들에 따른 다른 방법에 대한 흐름도이다.
예시적인 방법, 장치 및 시스템이 본원에 기술된다. 단어 "예" 및 "예시적인"은 본원에서 "예, 인스턴스 또는 예시로서 기능하는" 것을 의미하는 것으로 이해되어야 한다. 본원에서 "예" 또는 "예시적인" 것으로서 설명되는 임의의 실시예 또는 특징은 언급되지 않는 한 다른 실시예들 또는 특징들에 비해 반드시 바람직하거나 유리한 것으로 해석되는 것은 아니다. 따라서, 다른 실시예들이 이용될 수 있고, 본원에 제시된 청구 대상의 범위를 벗어나지 않고 다른 변경들이 행해질 수 있다.
따라서, 본원에 기술된 예시적인 실시예들은 제한적인 것을 의미하지 않는다. 본원에서 일반적으로 설명되고 도면에 도시된 바와 같은 본 개시의 양태들은 다양한 상이한 구성들로 배열되고, 치환되고, 조합되고, 분리되고, 설계될 수 있음을 쉽게 이해할 것이다. 예를 들어, 특징들을 "클라이언트" 및 "서버" 컴포넌트로 분리하는 것은 여러 방식으로 발생할 수 있다.
또한, 문맥이 다르게 제시되지 않는 한, 도면들 각각에 도시된 특징들은 서로 조합하여 사용될 수 있다. 따라서, 도면들은 일반적으로 하나 이상의 전체적인 실시예들의 구성요소 양태들로서 보여질 수 있는데, 각각의 실시예에 대해 도시된 모든 특징들이 필요하지는 않음을 이해할 것이다.
부가적으로, 본 명세서 또는 청구항들에서의 요소, 블록 또는 단계의 임의의 열거는 명확성을 위한 것이다. 따라서, 이러한 열거는 이러한 요소, 블록 또는 단계가 특정 배열로 고정되거나 특정 순서로 수행되는 것을 필요로 하거나 암시하는 것으로 해석되어서는 안 된다.
이하의 실시예들은 개시된 ANN 구현예들을 이용할 수 있는 예시적인 컴퓨팅 장치들 및 시스템들의 구조적 양태들 및 행동 양태들뿐만 아니라 그 특징들 및 이점들을 설명한다.
본원에는 심층 강화학습을 사용하여 훈련된 하나 이상의 ANN을 갖는 계산 에이전트를 사용하여 생산 스케줄링 및 계획 문제를 해결하기 위한 장치 및 방법이 설명된다. 이러한 스케줄링 및 계획 문제에는 화학 공장에서 생산되는 화학물질, 보다 일반적으로는 생산 설비에서 생산된 제품에 대한 생산 스케줄링이 포함될 수 있다. 화학 공장 또는 다른 생산 설비에서의 생산 스케줄링은 3개의 질문을 반복적으로 하는 것으로 생각될 수 있다: 1) 어떤 제품을 제조할 것인가? 2) 언제 제품을 제조할 것인가? 3) 얼마나 많은 제품을 제조할 것인가? 스케줄링 및 계획 동안, 이러한 질문들은 비용을 최소화하고, 이익을 최대화하며, 제조 스팬(makespan)(즉, 제품 생산의 시작과 종료 사이의 시간 차이) 및/또는 하나 이상의 다른 메트릭들을 최소화하는 것에 관하여 질문되고 대답될 수 있다.
생산 설비에서의 스케줄링 및 계획 활동 중에는 복잡한 문제가 추가로 발생할 수 있는데, 예를 들어, 운영 안정성 및 고객 서비스가 서로 조화되지 않는다. 이는 제조업체들로 하여금 생산 자산을 신속하게 재조정하여 향후 생산 설비에서 추가적인 어려움을 야기할 수 있는 차선의 해법으로 신속하게 대응하게 하는 수요 변화, 제품 신뢰성, 가격 책정, 공급 안정성, 생산 품질, 유지보수 등으로 인해 발생하는 불확실성으로 인해 종종 복잡하게 된다.
스케줄링 및 계획의 결과는 생산 신뢰성, 수요 및 이동 우선순위를 둘러싼 상당한 불확실성에 직면하여, 미래의 기간, 종종 7일 이상의 미래 기간 동안의 생산 스케줄을 포함할 수 있다. 또한, 스케줄링 및 계획 중에 수학적으로 표현하기 어려운, 예를 들어 해당 공장이 서비스해야 하는 특정 고객 또는 지역 시장의 행동과 같은 여러 제약 조건 및 동역학이 있다. 화학물질 생산을 위한 스케줄링 및 계획 프로세스는 할인된 가격으로 판매되는 등급외(off-grade) 물질을 생산할 수 있는 형 변화(type change) 제한에 의해 더욱 복잡할 수 있다. 등급외 생산 자체는 비결정론적이고 불량한 형 변화는 장기간의 생산 지연과 잠재적인 셧다운(shut-down)을 초래할 수 있다.
ANN들은 불확실성을 고려하고 온라인의 동적 스케줄링을 달성하기 위해 본원에 기술된 심층 강화학습 기술들을 사용하여 훈련되었다. 그 후, 훈련된 ANN들은 생산 스케줄링을 위해 사용될 수 있다. 예를 들어, 계산 에이전트는 스케줄링을 위해 2개의 다중 층 ANN들, 즉, 생산 설비의 상태의 가치를 추정하기 위한 가치 함수를 나타내는 가치 ANN 및 생산 설비에서의 생산 행동들을 스케줄링하기 위한 정책 함수를 나타내는 정책 ANN을 구현하고 사용할 수 있는데, 여기서, 상태는 생산 설비에서 생산된 제품들의 재고(예를 들어, 화학 공장에서 생산되는 화학물질)에 기초한다. 예시적인 생산 행동들은 시간 t1, t2, t3…에서 각각의 화학물질 A, B, C …를 얼마나 많이 생산해야 하는지에 관련된 행동들을 포함할 수 있으나, 그에 제한되지 않는다. 에이전트는 재고 수준, 주문, 생산 데이터, 유지보수 이력에 대한 정보를 얻고 수요 패턴 이력에 따라 공장을 스케줄링하기 위해, 생산 설비의 시뮬레이션 또는 모델과 상호작용할 수 있다. 에이전트의 ANN들은 여러 시뮬레이션에 걸쳐 심층 강화학습을 사용하여 비즈니스 요구사항을 만족시키도록 생산 설비를 효과적으로 스케줄링하는 방법을 학습할 수 있다. 에이전트의 가치 및 정책 ANN들은 연속 변수들을 쉽게 나타낼 수 있고, 종래의 접근법들에 의해 이용되는 모델-기반 방법들과 대조되는, 모델-없는(model-free) 표현들을 통한 보다 나은 일반화를 가능하게 한다.
에이전트는 훈련될 수 있고, 일단 훈련되면, 생산 설비(PF1)에서의 생산 활동을 스케줄링하는데 이용될 수 있다. 에이전트를 훈련하고 이용하기 위한 절차를 시작하기 위해, 생산 설비(PF1)의 모델이 얻어질 수 있다. 모델은 기업의 자원 계획 시스템 및 기타 소스에서 얻은 PF1에 대한 데이터를 기초로 할 수 있다. 그 후, 하나 이상의 컴퓨팅 장치들은 심화 학습(deep learning)을 위한 정책 및 가치 함수들을 나타내기 위해 훈련되지 않은 정책 및 가치 ANN들을 이용하여 채워질 수 있다. 그 후, 하나 이상의 컴퓨팅 장치들은 심층 강화학습 알고리즘들을 이용하여 정책 및 가치 ANN들을 훈련시킬 수 있다. 훈련은 하나 이상의 하이퍼파라미터(예를 들어, 학습 속도, 스텝-크기, 할인 요소)에 기초할 수 있다. 훈련 동안, 정책 및 가치 ANN들은, 목적 함수 및/또는 핵심 성능 지표(KPI: key performance indicator)에 의해 표시된 바와 같은 충분한 수준의 성공이 달성될 때까지, 모델에 기초하여 관련된 결정을 내리기 위해 생산 설비(PF1)의 모델과 상호작용할 수 있다. 모델 상에서 충분한 성공 수준이 달성되면, 정책 및 가치 ANN들은 정책 ANN을 사용하여 PF1에 대한 생산 행동들을 제공하고 가치 ANN을 사용하여 PF1에 대한 생산 행동들을 평가하도록 훈련되는 것으로 간주될 수 있다.
그 후, 훈련된 정책 및 가치 ANN들은 운영 생산 설비(PF1)와 관련된 서버(들)로서 작용할 수 있는 하나 이상의 컴퓨팅 장치로 선택적으로 복사 및/또는 이동될 수 있다. 그 후, 정책 및 가치 ANN들은 ANN들이 생산 설비(PF1)에서의 변화에 실시간으로 반응할 수 있도록 하나 이상의 컴퓨팅 장치에 의해(ANN들이 이동되지 않은 경우) 또는 서버(들)에 의해(ANN들이 이동된 경우) 실행될 수 있다. 특히, 정책 및 가치 ANN들은 하나 이상의 입력 (원)재료에 기초하여 하나 이상의 제품을 생산하기 위해 생산 설비(PF1)에서 수행될 수 있는 생산 행동의 스케줄을 결정할 수 있다. 생산 설비(PF1)는 PF1에서 일반적인 과정을 통해 생산 행동들의 스케줄을 구현할 수 있다. 그 후, 구현된 스케줄에 대한 피드백이 훈련된 정책 및 가치 ANN들 및/또는 생산 설비(PF1)의 모델에 제공되어 업데이트 및 학습을 계속할 수 있다.
또한, 생산 설비(PF1)에서의 하나 이상의 KPI(예를 들어, 재고 비용, 제품 값, 제품 데이터의 온-타임 전달(on-time delivery))가 훈련된 정책 및 가치 ANN들을 평가하는데 사용될 수 있다. 훈련된 정책 및 가치 ANN들이 적절하게 수행되고 있지 않는 것으로 상기 KPI 들이 표시하는 경우, 새로운 정책 및 가치 ANN들이 본원에서 설명되는 바와 같이 훈련될 수 있고, 새롭게 훈련된 정책 및 가치 ANN들은 이전의 정책 및 가치 ANN들을 대체할 수 있다.
본원에 기술된 강화학습 기술은 화학 제품을 제조하기 위해 사용되는 단일-스테이지 다중-제품 반응기, 예를 들어, 저밀도 폴리에틸렌(LDPE: low-density polyethylene)의 다양한 등급과 같은 생산 설비의 생산 행동을 동적으로 스케줄링할 수 있다. 본원에 기술된 강화학습 기술은 시스템에서의 불확실성을 포착하기 위한 자연적인 표현을 제공한다. 또한, 이러한 강화학습 기술들은, 두 세트의 기술들의 이점들을 활용하기 위해, 모델 기반 최적화 기술들과 같은 다른 기존의 기술들과 조합될 수 있다. 예를 들어, ANN 훈련 동안 모델-기반 최적화 기술이 "오라클(oracle)"로서 사용될 수 있다. 그 후, 특정 시간에 스케줄링될 생산 행동을 선택하는 것을 돕기 위해, 특정 시간에 복수의 생산 행동들이 실행 가능한 경우, 정책 및/또는 가치 ANN들을 구현하는 강화학습 에이전트가 오라클을 쿼리할 수 있다. 또한, 강화학습 에이전트는 시간에 따라 다수의 생산 행동들이 가능한 경우 어떤 생산 행동들을 수행할 것인지를 오라클로부터 학습할 수 있으며, 이에 의해 오라클에 대한 의존을 감소(및 궁극적으로 제거)할 수 있다. 강화학습 및 모델 기반 최적화 기술들을 조합하는 또 다른 가능성은 확률적 프로그래밍 알고리즘의 탐색 공간을 제한하기 위해 강화학습 에이전트를 사용하는 것이다. 일단 훈련되면, 강화학습 에이전트는 그러한 브랜치들을 제거하고 최적화 알고리즘의 탐색을 가속하기 위해 특정 행동들에 대해 높은 보상을 수신하는 낮은 확률들을 할당할 수 있다.
본원에 기술된 강화학습 기술은 생산 설비를 제어하도록 스케줄을 생성하는 문제를 해결하기 위해 ANN들을 훈련시키는데 사용될 수 있다. 훈련된 ANN들에 의해 생성된 스케줄들은 전형적인 혼합-정수 선형 프로그래밍(MILP: mixed-integer linear programming) 스케줄러에 의해 생성된 스케줄들에 비해 유리한 것으로 비교되며, 여기서 ANN 및 MILP 스케줄링 모두는 이동 구간(receding horizon)에 기초하여 다수의 시간 구간들에 걸쳐 수행된다. 즉, ANN 생성된 스케줄들은 불확실성 하에서 결정론적인 MILP 생성된 스케줄보다 더 높은 수익성, 더 낮은 재고 수준 및 더 나은 고객 서비스를 달성할 수 있다.
또한, 본원에 기술된 강화학습 기술들은 불확실한 인자에 대한 그의 능력으로 인해 계획을 위한 고정된 시간의 이동 구간을 이용하여 행동하도록 ANN들을 훈련시키는데 사용될 수 있다. 또한, 본원에 기술된 훈련된 ANN들을 구현하는 강화학습 에이전트는 필요에 따라, 생산 설비의 생산을 스케줄링하는데 있어서 강화학습 에이전트가 유연하게 되고 실시간 변경될 수 있게 신속하게 실행될 수 있고, 생산 설비에서의 변화에 실시간으로 반응하도록 지속적으로 이용가능할 수 있다.
I. 예시적인 컴퓨팅 장치 및 클라우드 기반 컴퓨팅 환경
도 1은 본원의 실시예들에 따라 행동하도록 배열된 컴퓨팅 장치에 포함될 수 있는 구성요소들 중 일부를 예시하는, 컴퓨팅 장치(100)를 예시하는 간략화된 블록도이다. 컴퓨팅 장치(100)는 클라이언트 장치(예를 들어, 사용자에 의해 능동적으로 행동하는 장치), 서버 장치(예를 들어, 클라이언트 장치에 컴퓨팅 서비스를 제공하는 장치), 또는 어떤 다른 유형의 컴퓨팅 플랫폼일 수 있다. 일부 서버 장치들은 특정 행동들을 수행하기 위해 시간에 따른 클라이언트 장치들로서 행동할 수 있고, 일부 클라이언트 장치들은 서버 특징들을 포함할 수 있다.
이 예에서, 컴퓨팅 장치(100)는 프로세서(102), 메모리(104), 네트워크 인터페이스(106), 입력/출력 유닛(108), 및 전원 유닛(110)을 포함하며, 이들 모두는 시스템 버스(112) 또는 유사한 메커니즘에 의해 연결될 수 있다. 일부 실시예들에서, 컴퓨팅 장치(100)는 다른 구성요소들 및/또는 주변 장치들(예를 들어, 분리 가능한 저장장치, 프린터 등)을 포함할 수 있다.
프로세서(102)는 중앙 처리 유닛(CPU), 코-프로세서(예를 들어, 수학, 그래픽, 신경망, 또는 암호화 코-프로세서), 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 네트워크 프로세서, 및/또는 프로세서 행동들을 수행하는 집적 회로 또는 컨트롤러의 형태와 같은, 임의의 유형의 컴퓨터 처리 요소 중 하나 이상일 수 있다. 일부 경우에, 프로세서(102)는 하나 이상의 싱글-코어 프로세서일 수 있다. 다른 경우에, 프로세서(102)는 다수의 독립적 처리 유닛들 또는 "코어(core)들"을 갖는 하나 이상의 멀티-코어 프로세서일 수 있다. 프로세서(102)는 또한 실행되는 명령들 및 관련 데이터를 임시로 저장하기 위한 레지스터 메모리뿐만 아니라, 최근에 사용된 명령들 및 데이터를 임시로 저장하기 위한 캐시 메모리를 포함할 수 있다.
메모리(104)는 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 및 비휘발성 메모리를 포함하지만 이에 제한되지 않는 임의의 형태의 컴퓨터-사용가능 메모리일 수 있다. 이는, 예를 들어, 플래시 메모리, 솔리드 스테이트 드라이브, 하드디스크 드라이브, 컴팩트 디스크(CD), 디지털 비디오 디스크(DVD), 이동식 자기디스크 매체, 및 테이프 저장장치를 포함할 수 있지만, 이들로 제한되지는 않는다. 컴퓨팅 장치(100)는 고정 메모리뿐만 아니라 하나 이상의 제거가능 메모리 유닛을 포함할 수 있으며, 후자는 다양한 유형의 보안 디지털(SD) 카드를 포함하지만 이에 한정되지 않는다. 따라서, 메모리(104)는 주 메모리 유닛들 및 장기 저장장치 모두를 나타낸다. 다른 유형의 메모리도 가능하다(예를 들어, 생물학적 메모리 칩).
메모리(104)는 프로그램 명령들 및/또는 프로그램 명령들이 행동할 수 있는 데이터를 저장할 수 있다. 예를 들어, 메모리(104)는 명령들이 프로세서(102)에 의해 실행되어 본 명세서 또는 첨부된 도면들에 개시된 임의의 방법들, 프로세스들, 또는 행동들을 수행할 수 있도록, 이러한 프로그램 명령들을 비-일시적인 컴퓨터 판독가능 매체 상에 저장할 수 있다.
일부 예들에서, 메모리(104)는 펌웨어, 커널 소프트웨어 및/또는 응용 소프트웨어와 같은 소프트웨어를 포함할 수 있다. 펌웨어는 컴퓨팅 장치(100)의 일부 또는 전부를 부팅하거나 그렇지 않으면 개시하는 데에 사용되는 프로그램 코드일 수 있다. 커널 소프트웨어는 메모리 관리를 위한 모듈들, 프로세스들, 입력/출력, 및 통신의 스케줄링 및 관리를 포함하는 운영 체제를 포함할 수 있다. 커널 소프트웨어는 또한 컴퓨팅 장치(100)의 하드웨어 모듈들(예를 들어, 메모리 유닛들, 네트워크 인터페이스들, 포트들, 및 버스들)과 운영 체제가 통신할 수 있게 하는 장치 드라이버들을 포함할 수 있다. 응용 소프트웨어는 웹 브라우저 또는 이메일 클라이언트와 같은 하나 이상의 사용자 공간 소프트웨어 프로그램뿐만 아니라 이러한 프로그램에 의해 사용되는 임의의 소프트웨어 라이브러리일 수 있다. 메모리(104)는 또한 이들 및 다른 프로그램들 및 응용 소프트웨어들에 의해 사용되는 데이터를 저장할 수 있다.
네트워크 인터페이스(106)는 이더넷(예를 들어, 고속 이더넷, 기가비트 이더넷 등)과 같은 하나 이상의 유선 인터페이스의 형태를 취할 수 있다. 네트워크 인터페이스(106)는 또한 동축 케이블들, 아날로그 가입자 라인들, 또는 전력 라인들과 같은 하나 이상의 비-이더넷 매체를 통한 유선 통신을 지원할 수 있거나, 동기 광 네트워킹(SONET: Synchronous Optical Networking) 또는 디지털 가입자 라인(DSL: digital subscriber line) 기술들과 같은 광역 매체를 통해 유선 통신을 지원할 수 있다. 네트워크 인터페이스(106)는 IEEE 802.11(Wi-Fi), 지그비(ZigBee®), 블루투스(BLUETOOTH®), GPS(global positioning system), 또는 광역 무선 인터페이스와 같은 하나 이상의 무선 인터페이스의 형태를 부가적으로 취할 수 있다. 그러나, 다른 형태의 물리 계층 인터페이스 및 다른 유형의 표준 또는 독점 통신 프로토콜이 네트워크 인터페이스(106)를 통해 사용될 수 있다. 또한, 네트워크 인터페이스(106)는 다수의 물리적 인터페이스들을 포함할 수 있다. 예를 들어, 컴퓨팅 장치(100)의 일부 실시예들은 이더넷, 블루투스(BLUETOOTH®), 지그비(ZigBee®), 및/또는 Wi-Fi® 인터페이스를 포함할 수 있다.
입력/출력 유닛(108)은 예시적인 컴퓨팅 장치(100)와의 사용자 및 주변 장치 상호 작용을 용이하게 할 수 있다. 입력/출력 유닛(108)은 키보드, 마우스, 터치스크린 등과 같은 하나 이상의 유형의 입력 장치를 포함할 수 있다. 유사하게, 입력/출력 유닛(108)은 스크린, 모니터, 프린터, 및/또는 하나 이상의 발광 다이오드(LED)와 같은 하나 이상의 유형의 출력 장치를 포함할 수 있다. 부가적으로 또는 대안적으로, 컴퓨팅 장치(100)는 USB(universal serial bus) 또는 HDMI(High Definition Multimedia Interface) 포트 인터페이스를 사용하여 다른 장치와 통신할 수 있다.
전력 유닛(110)은 컴퓨팅 장치(100)에 전력을 제공하기 위한 하나 이상의 배터리 및/또는 하나 이상의 외부 전력 인터페이스를 포함할 수 있다. 하나 이상의 배터리들 각각은 컴퓨팅 장치(100)에 전기적으로 연결된 경우 컴퓨팅 장치(100)를 위한 저장된 전력원으로서 행동할 수 있다. 일부 예들에서, 하나 이상의 배터리들 중 일부 또는 전부는 컴퓨팅 장치(100)로부터 쉽게 제거될 수 있다. 일부 예들에서, 하나 이상의 배터리들 중 일부 또는 전부는 컴퓨팅 장치(100) 내부에 있을 수 있고, 따라서 컴퓨팅 장치(100)로부터 쉽게 제거되지 않는다. 일부 예들에서, 하나 이상의 배터리들 중 일부 또는 전부가 재충전 가능할 수 있다. 일부 예들에서, 하나 이상의 배터리들 중 일부 또는 전부는 재충전 불가능한 배터리일 수 있다. 전력 유닛(110)의 하나 이상의 외부 전력 인터페이스들은, 컴퓨팅 장치(100) 외부에 있는 하나 이상의 전원들에 대한 유선 전력 연결들을 가능하게 하는, USB 케이블 및/또는 전력 코드와 같은 하나 이상의 유선 전력 인터페이스들을 포함할 수 있다. 하나 이상의 외부 전력 인터페이스들은 하나 이상의 외부 전원들에 대한 무선 전력 연결들을 가능하게 하는 하나 이상의 무선 전력 인터페이스들(예를 들어, Qi 무선 충전기)을 포함할 수 있다. 하나 이상의 외부 전력 인터페이스를 사용하여 외부 전원에 전력 연결이 설정되면, 컴퓨팅 장치(100)는 설정된 전력 연결을 사용하여 외부 전원으로부터 전력을 인출할 수 있다. 일부 예들에서, 전력 유닛(110)은 관련 센서들, 예를 들어, 하나 이상의 배터리들과 연관된 배터리 센서들, 전력 센서들을 포함할 수 있다.
일부 실시예들에서, 컴퓨팅 장치(100)의 하나 이상의 인스턴스들은 클러스터된 아키텍처를 지원하기 위해 배치될 수 있다. 이러한 컴퓨팅 장치들의 정확한 물리적 위치, 연결 및 구성은 클라이언트 장치들에 알려지지 않고/않거나 중요하지 않을 수 있다. 따라서, 컴퓨팅 장치들은 다양한 원격 데이터 센터 위치들에 수용될 수 있는 "클라우드 기반" 장치들로서 지칭될 수 있다.
도 2는 예시적인 실시예들에 따른 클라우드 기반 서버 클러스터(200)를 도시한다. 도 2에서, 컴퓨팅 장치(예를 들어, 컴퓨팅 장치(100))의 행동들은 서버 장치들(202), 데이터 저장장치(204) 및 라우터들(206) 사이에 분산될 수 있고, 이들 모두는 로컬 클러스터 네트워크(208)에 의해 연결될 수 있다. 서버 클러스터(200) 내의 서버 장치들(202), 데이터 저장장치(204) 및 라우터들(206)의 수는 서버 클러스터(200)에 할당된 컴퓨팅 태스크(들) 및/또는 애플리케이션들에 의존할 수 있다.
간단하게, 서버 클러스터(200) 및 개별 서버 장치들(202) 모두는 "서버 장치"라 지칭될 수 있다. 이러한 명명법은 하나 이상의 별개의 서버 장치들, 데이터 저장장치들, 및 클러스터 라우터들이 서버 장치 행동들에 관련될 수 있다는 것을 암시하는 것으로 이해되어야 한다. 일부 예들에서, 서버 장치들(202)은 컴퓨팅 장치(100)의 다양한 컴퓨팅 태스크들을 수행하도록 구성될 수 있다. 따라서, 컴퓨팅 태스크들은 하나 이상의 서버 장치들(202) 사이에 분산될 수 있다. 컴퓨팅 태스크들이 병렬로 수행될 수 있는 정도까지의 이러한 태스크 분배는 태스크를 완료하고 결과를 반환하는데 걸리는 총 시간을 줄일 수 있다.
데이터 저장장치(204)는 하드디스크 드라이브들 및/또는 솔리드 스테이트 드라이브들의 그룹들에 대한 읽기 및 쓰기 액세스를 관리하도록 구성된 하나 이상의 드라이브 어레이 컨트롤러들을 포함하는 하나 이상의 데이터 저장 어레이들을 포함할 수 있다. 단독으로 또는 서버 장치들(202)과 관련하여, 드라이브 어레이 컨트롤러(들)는 또한, 하나 이상의 서버 장치들(202)이 클러스터 데이터 저장장치(204)의 유닛들에 액세스하는 것을 방해하는 다른 유형들의 고장들 또는 구동 실패들에 대해 보호하기 위해 데이터 저장장치(204)에 저장된 데이터의 백업 또는 여분의 복사본들을 관리하도록 구성될 수 있다. 드라이브를 제외한 다른 유형들의 메모리가 사용될 수 있다.
라우터들(206)은 서버 클러스터(200)에 대한 내부 및 외부 통신을 제공하도록 구성된 네트워크 장비를 포함할 수 있다. 예를 들어, 라우터들(206)은 (i) 클러스터 네트워크(208)를 통해 서버 장치들(202)과 데이터 저장장치(204) 간의 네트워크 통신, 및/또는 (ii) 네트워크(212)에 대한 통신 링크(210)를 통해 서버 클러스터(200)와 다른 장치 사이의 네트워크 통신을 제공하도록 구성된 하나 이상의 패킷 스위칭 및/또는 라우팅 장치(스위치 및/또는 게이트웨이 포함)를 포함할 수 있다.
또한, 클러스터 라우터들(206)의 구성은 서버 장치들(202) 및 데이터 저장장치(204)의 데이터 통신 요건들, 로컬 클러스터 네트워크(208)의 레이턴시 및 스루풋, 통신 링크(210)의 레이턴시, 스루풋, 및 비용, 및/또는 시스템 아키텍처의 비용, 속도, 결함 허용(fault-tolerance), 복원성, 효율성 및/또는 다른 설계 목표들에 기여할 수 있는 다른 인자들에 기초할 수 있다.
가능한 예로서, 데이터 저장장치(204)는 구조화된 쿼리 언어(SQL) 데이터베이스와 같은 임의의 형태의 데이터베이스를 저장할 수 있다. 다양한 유형의 데이터 구조는 표, 어레이, 목록, 트리 및 튜플을 포함하지만 이에 제한되지 않는 정보를 이러한 데이터베이스에 저장할 수 있다. 또한, 데이터 저장장치(204) 내의 임의의 데이터베이스는 모놀리식이거나 다수의 물리적 장치에 걸쳐 분산될 수 있다.
서버 장치들(202)은 클러스터 데이터 저장장치(204)에 데이터를 송신하고 그로부터 데이터를 수신하도록 구성될 수 있다. 이 전송 및 검색은 SQL 쿼리 또는 다른 유형의 데이터베이스 쿼리의 형태와, 이러한 쿼리의 출력을, 각각 가질 수 있다. 부가적인 텍스트, 이미지, 비디오, 및/또는 오디오도 포함될 수 있다. 또한, 서버 장치들(202)은 수신된 데이터를 웹 페이지 표현들로 조직화할 수 있다. 이러한 표현은 HTML(hypertext markup language), XML(extensible markup language), 또는 어떤 다른 표준화된 또는 독점적인 포맷과 같은 마크업 언어의 형태를 취할 수 있다. 더욱이, 서버 장치들(202)은 Perl, Python, PHP Hypertext Preprocessor(PHP), Active Server Pages(ASP), JavaScript 등과 같은, 그러나 그에 제한되지 않는, 다양한 유형의 컴퓨터화된 스크립팅 언어들을 실행하는 능력을 가질 수 있다. 이러한 언어로 작성된 컴퓨터 프로그램 코드는 웹 페이지를 클라이언트 장치에 제공하는 것뿐만 아니라, 웹 페이지와의 클라이언트 장치 상호 작용을 용이하게 할 수 있다.
II. 인공 신경망(Artificial Neural Network)
ANN은 복잡한 문제를 해결하기 위해 병렬적으로 그리고 중앙 제어 없이 개별적으로 작업하는 다수의 간단한 단위들이 결합하는 컴퓨팅 모델이다. 이 모델이 어떤 면에서는 동물의 뇌와 유사할 수 있지만, ANN과 뇌 사이의 유사성이 크지는 않다. 현대의 ANN은 결정론적 수학적 학습 과정인 고정된 구조를 가지고 있고 한 번에 하나의 문제를 해결하도록 훈련되어 있으며, 생물학적인 대상부분보다 훨씬 작다.
A. 예시적 ANN 아키텍처
도 3은 예시적인 실시예들에 따른 ANN 아키텍쳐를 도시한다. ANN은 인접한 층들의 노드들 사이의 연결들을 갖는, 다수의 층들로 배열되는 다수의 노드들로서 표현될 수 있다. 예시적인 ANN(300)은 도 3에 도시되어 있다. ANN(300)은 순방향 다층 신경망을 나타내지만, 유사한 구조 및 원리가 예를 들어, 배우-비평가(actor-critic) 신경망, 컨볼루션 신경망, 순환 신경망, 및 재귀 신경망에 사용된다.
어쨌든, ANN(300)은 입력 층(304), 은닉 층(306), 은닉 층(308), 및 출력 층(310)의 4개의 층으로 구성된다. 입력 층(304)의 3개의 노드 각각은 초기 입력 값(302)으로부터 X 1 , X 2 ,X 3을 각각 수신한다. 출력 층(310)의 2개의 노드들은 최종 출력 값들(312)에 대해 각각 Y 1Y 2를 생성한다. ANN(300)은 입력 층(304)이 이전 층의 모든 노드들로부터 입력을 수신하는 것을 제외하고, 각 계층의 노드들에서 완전히 연결된 네트워크이다.
노드들의 쌍들 사이의 실선 화살표들은 중간 값들이 흐르는 연결들을 나타내고, 각각의 중간 값에 적용되는 각각의 가중치와 각각 연관된다. 각각의 노드는 입력 값들 및 그들의 연관된 가중치들(예를 들어, 0과 1사이의 값들을 포함)에 대한 연산을 수행하여 출력 값을 생성한다. 일부 경우에, 이러한 연산은 각각의 입력 값 및 관련 가중치의 곱의 내적 합(dot-product sum)을 포함할 수 있다. 출력 값을 생성하기 위해 활성화 함수가 내적 합의 결과에 적용될 수 있다. 다른 연산들이 가능하다.
예를 들어, 노드가 {w 1,w 2, ..., w n}의 각각의 가중치를 갖는 n 연결에서 입력 값 {x 1,x 2, ..., x n}을 수신하는 경우, 내적 합 d는 다음과 같이 결정될 수 있다.
Figure pct00001
여기서, b는 노드 특이적 또는 계층 특이적 바이어스이다.
특히, ANN(300)의 완전히 연결된 특성은 하나 이상의 가중치로서 0의 값을 제공함으로써 부분적으로 연결된 ANN을 효과적으로 표현하기 위해 사용될 수 있다. 마찬가지로, 바이어스를 0으로 설정하여 b항을 제거할 수도 있다.
d을 0과 1 사이의 출력 값 y에 맵핑하기 위해 로지스틱 함수와 같은 활성화 함수가 사용될 수 있다.
Figure pct00002
시그모이드, 지수 선형 유닛(ELU), 정류기 선형 유닛(ReLU) 또는 tanh 함수와 같은 로지스틱 함수 이외의 함수들이 대신 사용될 수 있다.
그 다음에, y는 각각의 노드의 출력 연결에 사용될 수 있고, 그 각각의 가중치에 의해 수정될 것이다. 특히, ANN(300)에서, 입력 값들 및 가중치들은 최종 출력 값들(312)이 생성될 때까지 좌측에서 우측으로 각각의 계층의 노드들에 적용된다. ANN(300)이 완전히 훈련된 경우, 최종 출력 값들(312)은 ANN(300)이 해결하도록 훈련되었던 문제에 대한 제안된 해이다. 의미있고, 유용하며, 합리적으로 정확한 해를 얻기 위해, ANN(300)은 적어도 어느 정도의 훈련 정도를 필요로 한다.
B. 훈련
ANN을 훈련시키는 것은 통상적으로, ANN에게 특정 형태의 지도 훈련 데이터, 즉 입력 값들의 세트들 및 원하는, 또는 참인 출력 값들을 제공하는 것을 포함한다. ANN(300)의 경우, 이 훈련 데이터는 출력 값들과 쌍을 이루는 입력 값들의 m 세트들을 포함할 수 있다. 보다 공식적으로, 훈련 데이터는 다음과 같이 표현될 수 있다.
Figure pct00003
여기서
Figure pct00004
Figure pct00005
Figure pct00006
,
Figure pct00007
Figure pct00008
의 입력 값들에 대한 원하는 출력 값들이다.
훈련 프로세스는 그러한 세트로부터의 입력 값들을 ANN(300)에 적용하고 연관된 출력 값들을 생성하는 것을 포함한다. 손실 함수는 생성된 출력 값과 참인 출력 값 사이의 오차를 평가하는 데 사용된다. 이 손실 함수는 차이의 합계, 평균 제곱 오차 또는 기타 지표가 될 수 있다. 일부 경우에, 모든 m 세트에 대해 오차 값이 결정되며, 오차 함수는 이러한 값들의 총계(예: 평균)를 계산하는 것을 포함한다.
오차가 결정되면 오차를 줄이기 위해 연결의 가중치들이 업데이트된다. 간단히 말해서, 이 업데이트 프로세스는 "우수한 가중치"를 보상하고 "나쁜 가중치"에 페널티를 부여해야 한다. 따라서, 업데이트는 훈련 데이터의 미래의 반복들에 대해 더 낮은 오차를 초래하는 방식으로 ANN(300)을 통해 오차에 대한 "책임"을 분산시켜야 한다.
훈련 프로세스는 가중치들이 수렴될 때까지 ANN(300)에 훈련 데이터를 계속 적용한다. 수렴은 오차가 임계값보다 작거나, 오차의 변경이 연속적인 훈련 반복들 사이에 충분히 작은 경우 발생한다. 이 때, ANN(300)은 "훈련"되었다고 지칭되고, 알려지지 않은 출력 값들을 예측하기 위해 새로운 입력 값들의 세트들에 적용될 수 있다.
ANN을 위한 대부분의 훈련 기술들은 특정 형태의 역전파(backpropagation)를 이용한다. 역전파는 ANN(300)을 통해 오른쪽에서 왼쪽으로 한 번에 하나의 계층에 오차를 분배한다. 따라서, 은닉 층(308)과 출력 층(310) 사이의 연결들의 가중치들이 먼저 업데이트되고, 은닉 층(306)과 은닉 층(308) 사이의 연결들의 가중치들이 업데이트되며, 이런 식으로 계속된다. 이 업데이트는 활성화 함수의 도함수를 기초로 한다.
도 4a 및 도 4b는 예시적인 실시예들에 따른 ANN을 훈련하는 단계를 도시한다. 오차 결정 및 역전파를 자세히 설명하기 위해 동작 중인 프로세스의 예를 보는 것이 도움이 된다. 그러나, 역전파는 가장 단순한 ANN을 제외하고는 상당히 복잡하게 된다. 따라서, 도 4a는 역전파의 예시적인 예를 제공하기 위해 매우 간단한 ANN(400)을 도입한다.
Figure pct00009
ANN(400)은 3개의 층들, 즉, 입력 층(404), 은닉 층(406), 및 출력 층(408)으로 구성되며, 각각은 2개의 노드들을 갖는다. 초기 입력 값들(402)은 입력 층(404)에 제공되고, 출력 층(408)은 최종 출력 값(410)을 생성한다. 가중치들은 각 연결에 할당되었다. 또한, 바이어스 b 1 = 0.35가 은닉 층(406) 내의 각각의 노드의 순 입력에 인가되고, 바이어스 b 2 = 0.60이 출력 층(408) 내의 각각의 노드의 순 입력에 적용된다. 명확성을 위해, 표 1은 이러한 가중치들이 적용되는 연결들을 갖는 노드들의 쌍에 대해 가중치들을 맵핑한다. 일 예로서, w 2은 노드 I2 및 H1 사이의 연결에 적용되고, w 7는 노드 H1 및 O2 사이의 연결에 적용되는 등이다.
설명을 위해, 초기 입력 값들은 X 1 = 0.05 및 X 2 = 0.10로 설정되고, 원하는 출력 값들은
Figure pct00010
Figure pct00011
로 설정된다. 따라서, ANN(400)을 훈련시키는 목적은 X 1 = 0.05 및 X 2 = 0.10일 때 최종 출력 값들(410)이
Figure pct00012
Figure pct00013
에 충분히 근접할 때까지, 일정 수의 순방향 및 역전파 반복들에 걸쳐 가중치들을 업데이트하는 것이다. 훈련 데이터의 단일 세트의 사용은 단지 그 세트에 대해서만 ANN(400)을 효과적으로 훈련한다는 것에 유의해야한다. 훈련 데이터의 다수의 세트들이 사용되는 경우, ANN(400)은 또한 이러한 세트들에 따라 훈련될 것이다.
1. 예시적 순방향 전달
순방향 전달을 시작하기 위해, 은닉 층(406) 내의 노드들 각각에 대한 순 입력들이 계산된다. 순 입력들로부터, 이러한 노드들의 출력들은 활성화 함수를 적용함으로써 발견될 수 있다. 노드 H1의 경우, 순 입력 net H1은 다음과 같다.
Figure pct00014
이 입력에 활성화 함수(여기서는 로지스틱 함수)를 적용하면 노드 H1의 출력 out H1이 다음과 같은 것으로 결정된다.
Figure pct00015
노드 H2에 대해 동일한 프로시저를 수행하면, 출력 out H2은 0.596884378이 된다. 순방향 반복의 다음 단계는 출력 층(408)의 노드들에 대해 동일한 계산을 수행하는 것이다. 예를 들어, O1 노드에 대한 순 입력 net 01은 다음과 같다.
Figure pct00016
따라서 노드 O1의 출력 out 01은 다음과 같다.
Figure pct00017
노드 O2에 대해 동일한 프로시저를 수행하면 출력 out 02은 0.772928465가 된다. 이 때, 총 오차 Δ은 손실 함수에 기초하여 결정될 수 있다. 이 경우, 손실 함수는 출력 층(408) 내의 노드들에 대한 오차 제곱의 합일 수 있다. 즉:
Figure pct00018
각각의 항에서 곱해지는 상수 ½은 역전파 동안의 미분을 단순화하기 위해 사용된다. 전체 결과는 학습 속도에 따라 스케일링되므로 이 상수는 훈련에 부정적인 영향을 주지 않는다. 어쨌든, 이 때, 순방향 전달 반복이 완료되고 역전파가 시작된다.
2. 역전파
위에서 언급한 바와 같이, 역전파의 목적은 Δ을 사용하여 가중치를 업데이트하여 향후 순방향 반복에서 더 적은 오차를 제공하는 것이다. 예를 들어, 가중치 w 5을 고려하자. 상기 목적은 w 5의 변경이 Δ에 미치는 영향을 판별하는 것을 포함한다. 이는 편도함수
Figure pct00019
로 표현될 수 있다. 연쇄 규칙을 사용하면 다음과 같이 이 항을 확장할 수 있다.
Figure pct00020
따라서 w 5의 변화에 따른 Δ에 대한 효과는 (i) out 01의 변화에 따른 Δ에 대한 효과, (ii) net 01의 변화에 따른 out 01에 대한 효과, 및 (iii) w 5의 변화에 따른 net 01에 대한 효과의 곱과 같다. 이러한 곱해지는 항들 각각은 독립적으로 결정될 수 있다. 직관적으로, 이 프로세스는 net 01에 대한 w 5의 영향, out 01에 대한 net 01의 영향 및 Δ에 대한 out 01의 영향을 분리하는 것으로 생각될 수 있다.
Figure pct00021
부터 시작하여, Δ에 대한 표현식은 다음과 같다.
Figure pct00022
out 01에 대해 편도함수를 취하는 경우 out 01에 대한 변화는 이 항에 영향을 미치지 않으므로 out 02를 포함하는 항은 결국 상수가 된다. 따라서:
Figure pct00023
Figure pct00024
의 경우 식 5에서 out 01에 대한 표현식은 다음과 같다.
Figure pct00025
따라서 로지스틱 함수의 도함수를 취하면 다음과 같다.
Figure pct00026
Figure pct00027
의 경우, 식 6에서 net 01에 대한 표현식은 다음과 같다.
Figure pct00028
Δ의 표현식과 유사하게, 이 표현식의 도함수를 취하는 것은 w 5가 해당 항들에서 표시되지 않기 때문에 두 개의 가장 오른쪽 항들을 상수로 처리하는 것을 포함한다. 따라서:
Figure pct00029
식 9를 풀기 위해 이들 3개의 편미분 항이 함께 놓일 수 있다.
Figure pct00030
그런 다음 이 값을 w 5에서 뺄 수 있다. 종종 ANN이 오차에 얼마나 적극적으로 반응하는지를 제어하기 위해 이득 0 < α ≤ 1가
Figure pct00031
에 적용된다. α=0.5를 가정하면 전체 표현식은 다음과 같다.
Figure pct00032
이러한 프로세스는 출력 층(408)으로 제공되는 다른 가중치들에 대해 반복될 수 있다. 결과는 다음과 같다.
Figure pct00033
역전파의 종료 시, 모든 가중치에 대한 업데이트가 결정될 때까지 어떠한 가중치도 업데이트되지 않음에 유의해야 한다. 그런 다음, 다음 순방향 반복 이전에 모든 가중치가 업데이트된다.
다음으로, 나머지 가중치들 w 1, w 2, w 3w 4에 대한 업데이트가 계산된다. 이것은 은닉 층(406)으로 역전파 전달을 계속하는 것을 포함한다. w 1을 고려하고 위와 같이 유사한 미분을 사용하는 경우:
Figure pct00034
그러나, 출력 층(408) 및 은닉 층(406)에 대한 역전파 기술들 사이의 하나의 차이는 은닉 층(406) 내의 각각의 노드가 출력 층(408) 내의 모든 노드들의 오차에 기여한다는 것이다. 따라서:
Figure pct00035
Figure pct00036
로 시작하면:
Figure pct00037
Figure pct00038
의 경우, Δ01에 대한 net 01의 변화의 영향은 Δ에 대한 net 01의 변화의 영향과 동일하므로, 식 11 및 식 13에 대해 위에서 수행된 계산이 재사용될 수 있다.
Figure pct00039
Figure pct00040
의 경우, net 01는 다음과 같이 표현될 수 있다.
Figure pct00041
따라서:
Figure pct00042
따라서, 식 21은 다음과 같이 풀이될 수 있다:
Figure pct00043
Figure pct00044
에 대해 유사한 프로시저를 수행하면 다음과 같은 결과가 얻어진다.
Figure pct00045
따라서, 식 20은 다음과 같이 풀이될 수 있다.
Figure pct00046
이것은 또한 식 19의 첫 번째 항을 푼다. 다음으로, 노드(H1)는 out H1net H1를 관련시키기 위해 그의 활성화 함수로서 로지스틱 함수를 사용하기 때문에, 식 19의 두 번째 항
Figure pct00047
은 다음과 같이 결정될 수 있다.
Figure pct00048
그런 다음, net H1은 다음과 같이 표현될 수 있다.
Figure pct00049
따라서, 식 19의 3번째 항은 다음과 같다.
Figure pct00050
식 19의 세 가지 항들을 함께 사용한 결과는 다음과 같다.
Figure pct00051
이 경우 w 1을 다음과 같이 업데이트할 수 있다.
Figure pct00052
이러한 프로세스는 은닉 층(406)으로 제공되는 다른 가중치들에 대해 반복될 수 있다. 결과는 다음과 같다.
Figure pct00053
이 때, 역전파 반복이 종료되고 모든 가중치가 업데이트되었다. 도 4b는 이러한 업데이트된 가중치들을 갖는 ANN(400)을 도시하며, 이들의 값들은 편의를 위해 4개의 소수점 자리들로 반올림된다. ANN(400)은 후속되는 순방향 및 역전파 반복을 통해 계속 훈련될 수 있다. 예를 들어, 위에서 수행된 반복은 전체 오차 Δ을 0.298371109에서 0.291027924로 감소시킨다. 이는 작은 개선으로 보일 수 있지만, 수천 번 이상의 순방향 및 역전파 반복에 걸쳐 오차가 0.0001 미만으로 감소될 수 있다. 이 때, Y 1Y 2의 값은 각각 0.01 및 0.99의 목표 값에 근접한다.
일부 경우에, 시스템의 하이퍼파라미터(예를 들어, 바이어스 b 1b 2와, 학습 속도 α)가 조정되면, 동등한 양의 훈련이 더 적은 반복으로 달성될 수 있다. 예를 들어, 학습 속도를 1.0에 가깝게 설정하면 오차 비율이 더 빠르게 감소될 수 있다. 또한, 바이어스들은 가중치들이 어떻게 업데이트되는지와 유사한 방식으로 학습 프로세스의 일부로서 업데이트될 수 있다.
어쨌든, ANN(400)은 단지 단순화된 예이다. 특정 문제들 또는 목표들을 해결하도록 동조된 각각의 입력 및 출력 층들 내의 다수의 노드들을 이용하여 임의의 복잡한 ANN들이 개발될 수 있다. 또한, 둘 이상의 은닉 층이 사용될 수 있으며, 임의의 수의 노드들이 각각의 은닉 층 내에 존재할 수 있다.
III. 생산 스케줄링에 대한 심층 강화학습 활용
생산 설비에서의 생산을 스케줄링하는 것과 같은 결정 문제에서 불확실성을 표현하는 한 가지 방법은 마르코프 결정 프로세스(MDP: Markov decision process)이다. 마르코프 결정 프로세스는 환경의 미래 상태들의 발생/변화들이 단지 환경의 현재 상태에만 의존한다는 마르코프 가정에 의존할 수 있다. 마르코프 결정 프로세스로서의 식화는 계획 및 스케줄링 문제들을 해결하기 위해 기계 학습 기술들, 특히 강화학습 기술들을 이용하여 결정 문제를 해결하는 것에 이용된다.
도 5는 예시적인 실시예들에 따른 ANN에 대한 강화학습을 도시하는 도면(500)을 도시한다. 강화학습은 환경에 대한 정보를 나타내는 환경의 "상태"를 환경에서 수행 가능한 "행동"으로 맵핑하여 해당 상태를 후속 변경할 수 있는 계산 에이전트를 이용한다. 계산 에이전트는 환경에 관한 상태 정보를 수신하고, 상태 정보에 기초하여 하나 이상의 행동들을 맵핑하거나 그렇지 않으면 결정하고, 행동들의 스케줄과 같은 행동(들)에 관한 정보를 환경에 제공하는 절차를 반복적으로 수행할 수 있다. 그런 다음, 환경을 잠재적으로 변경하기 위해 환경에서 행동들이 수행될 수 있다. 일단 행동들이 수행되면, 계산 에이전트는 잠재적으로 변화된 환경에 관한 상태 정보를 수신한 후에 해당 절차를 반복할 수 있다.
도면(500)에서, 계산 에이전트는 에이전트(510)로 도시되고, 환경은 환경(520)으로서 도시된다. 환경(520) 내의 생산 설비에 대한 계획 및 스케줄링 문제들의 경우에, 에이전트(510)는 생산 설비에 대한 스케줄링 알고리즘을 구현할 수 있다. 시간 t에서, 에이전트(510)는 환경(520)에 관한 상태(St)를 수신할 수 있다. 상태 St는 상태 정보를 포함할 수 있으며, 이는 환경(520)에 대한, 생산 설비에서 이용가능한 입력 물질들 및 제품들의 재고 수준들, 생산 설비에 의해 생산된 제품들에 대한 수요 정보, 하나 이상의 기존/이전 스케줄들, 및/또는 생산 설비에 대한 스케줄을 개발하는 것과 관련된 추가 정보를 포함할 수 있다.
그 후, 에이전트(510)는 상태(St)를, 도 5에서 행동(At)으로서 도시된 하나 이상의 행동들로 맵핑할 수 있다. 그 후, 에이전트(510)는 환경(520)에 행동(At)을 제공할 수 있다. 행동(At)은 생산 설비에 대한 스케줄링 결정을 구현할 수 있는 하나 이상의 생산 행동들을 포함할 수 있다(즉, 무엇을 생산할 것인지, 언제 생산할 것인지, 얼마나 생산할 것인지 등). 일부 예에서, 시간 경과에 따라 생산 설비에서 수행될 행동들의 스케줄의 일부로서 행동(At)이 제공될 수 있다. 행동(At)은 시간 t 동안 환경(520) 내의 생산 설비에 의해 수행될 수 있다. 행동(At)을 수행하기 위해, 생산 설비는 사용 가능한 입력 물질을 사용하여 행동(At)에서 지시된 것과 같이 제품을 생성할 수 있다.
행동(At)을 수행한 후, 다음 타임스텝 t+1에서의 환경(520)의 상태 St+1이 에이전트(510)에 제공될 수 있다. 적어도 에이전트(510)가 훈련되고 있는 동안, 환경(520)의 상태 St+1은 행동(At)이 수행된 후에 결정된 보상 Rt를 포함(또는 아마도 포함)할 수 있는데, 즉, 보상 Rt는 행동(At)에 대한 응답이다. 보상 Rt는 보상 또는 처벌을 의미하는 하나 이상의 스칼라 값일 수 있다. 보상 Rt는 보상 또는 가치 함수에 의해 정의될 수 있다 - 일부 예에서, 보상 또는 가치 함수는 최적화 도메인에서 목적 함수와 동등할 수 있다. 도면(500)에 도시된 예에서, 보상 함수는 생산 설비에 의해 생성된 제품의 경제적 가치를 나타낼 수 있는데, 여기서 양의 보상 값은 이익 또는 다른 양호한 경제적 가치를 나타낼 수 있고, 음의 보상 값은 손실 또는 다른 불리한 경제적 가치를 나타낼 수 있다.
에이전트(510)는 환경(520)과 상호작용하여, 보상 Rt와 같은 보상 및 처벌에 의해 강화된 자기 지도적인(self-directed) 탐색에 의해 환경(520)에 어떤 행동들을 제공할지를 학습할 수 있다. 즉, 에이전트(510)는 보상 Rt를 최대화하도록 훈련될 수 있으며, 보상 Rt는 유리한 행동들을 긍정적으로 강화하고 불리한 행동들을 부정적으로 강화하도록 훈련될 수 있다.
도 6은 예시적인 실시예들에 따른 예시적인 스케줄링 문제를 도시한다. 예시적인 스케줄링 문제는 수신되는 제품 요청들에 기초하여 두 제품들(제품 A 및 제품 B) 중 하나를 생산하도록 생산 설비를 스케줄링하는 에이전트(510)와 같은 에이전트를 포함한다. 생산 설비는 한 단위의 시간 동안 단일 제품 요청 또는 주문만 수행할 수 있다. 이 예에서, 시간 단위는 하루이므로, 임의의 주어진 날에 생산 설비는 제품 A의 한 단위 또는 제품 B의 한 단위를 생산할 수 있고, 각 제품 요청은 제품 A의 한 단위 또는 제품 B의 한 단위에 대한 요청이다. 이 예에서, 제품 A에 대한 제품 요청을 수신할 확률은 α이고, 제품 B에 대한 제품 요청을 수신할 확률은 1-α이며, 여기서 0 ≤ α≤ 1이다.
올바른 제품의 선적에 대해서는 +1의 보상이 생성되고 올바르지 않은 제품의 선적에 대해서는 -1의 보상이 생성된다. 즉, 주어진 날짜에 생산 설비에 의해 생산된 제품(제품 A 또는 제품 B)이 해당 날짜에 대한 제품 요청에서 요청된 제품과 동일한 경우, 올바른 제품이 생성되고, 그렇지 않으면 올바르지 않은 제품이 생성된다. 이 예에서는 제품 요청에 따라 생산 설비에서 올바른 제품이 전달된다고 가정하므로 올바른 제품에 대한 재고는 증가하지 않는다. 또한 올바르지 않은 제품이 생산 설비에서 전달되지 않을 것으로 가정되므로 올바르지 않은 제품의 재고가 증가한다.
이 예에서, 환경의 상태는 제품 A 및 제품 B의 생산 설비에서의 재고를 나타내는 한 쌍의 숫자이다. 예를 들어, (8, 6)의 상태는 재고에 제품 A의 8개 단위 및 제품 A의 6개 단위가 있음을 나타낸다. 이 예에서, 시간 t = 0일에서, 환경/생산 설비의 초기 상태는 s0 =(0, 0)이고, 즉, 어떤 제품도 시간 t = 0에서 생산 설비에서 재고로 존재하지 않는다.
그래프(600)는 t = 0일에서의 초기 상태 s0으로부터 t = 1일에서의 상태 s1로의 전환을 예시한다. 상태 s0 =(0, 0)에서, 에이전트는 2개의 행동들 중 하나를 취할 수 있는데, 즉, 제품 A의 생산을 스케줄링하기 위한 행동(602) 또는 제품 B의 생산을 스케줄링하기 위한 행동(604)을 취할 수 있다. 에이전트가 제품 A를 생성하기 위해 행동(602)을 취하는 경우, 상태 s1로의 2개의 가능한 전환들 중 하나가 존재하는데, 즉, 제품 A가 요청되고, 제품 A가 올바른 제품이기 때문에 에이전트가 +1의 보상을 받는 전환(606a), 및 제품 B가 요청되고, 제품 B가 올바르지 않은 제품이기 때문에 에이전트가 -1의 보상을 받는 전환(606b)이 존재한다. 유사하게, 에이전트가 제품 B를 생성하기 위해 행동(604)을 수행하는 경우, 상태 s1로의 2개의 가능한 전환들 중 하나가 존재하는데, 즉, 제품 A가 요청되고, 제품 A가 올바르지 않은 제품이기 때문에 에이전트가 -1의 보상을 받는 전환(608a), 및 제품 B가 요청되고, 제품 B가 올바른 제품이기 때문에 에이전트가 +1의 보상을 받는 전환(608b)이 존재한다. 에이전트는 보상을 최대화하려고 하기 때문에, 긍정적인 보상은 실제의 보상으로 작용할 수 있고, 부정적인 보상은 처벌로 작용할 수 있다.
표(610)는 이 예에서, t = 0일에서 초기 상태 s0로부터 t = 1일에서 상태 s1로의 전환에 의해 가능한 4개의 결과들의 가능성을 요약한다. 표(610)의 제1 행은, 에이전트가 제품 A를 생성하기 위해 행동(602)을 취하는 경우, t = 0일 동안 요청된 제품이 제품 A일 확률 α가 존재한다는 것을 나타낸다. t = 0일 동안 요청된 제품이 제품 A인 경우, 에이전트는 올바른 제품을 생산함에 대한 보상 +1을 받고, 올바른 제품 A가 생산 설비로부터 전달될 것이기 때문에 t = 1일에 결과 상태 s1은 (0, 0)일 것이다.
표(610)의 제2 행은, 에이전트가 제품 A를 생성하기 위해 행동(602)을 취하는 경우, t = 0일 동안 요청된 제품이 제품 B일 확률 1-α가 존재한다는 것을 나타낸다. t = 0일 동안 요청된 제품이 제품 B인 경우, 에이전트는 올바르지 않은 제품을 생산함에 대한 보상 -1을 받고, 올바르지 않은 제품 A가 생산 설비에 남아 있을 것이기 때문에 t = 1일에 결과 상태 s1은 (1, 0)일 것이다.
표(610)의 제3 행은, 에이전트가 제품 B를 생성하기 위해 행동(604)을 취하는 경우, t = 0일 동안 요청된 제품이 제품 A일 확률 α가 존재한다는 것을 나타낸다. t = 0일 동안 요청된 제품이 제품 A인 경우, 에이전트는 올바르지 않은 제품을 생산함에 대한 보상 -1을 받고, 올바르지 않은 제품 B가 생산 설비에 남아 있을 것이기 때문에 t = 1일에 결과 상태 s1은 (0, 1)일 것이다.
표(610)의 제4 행은, 에이전트가 제품 B를 생성하기 위해 행동(604)을 취하는 경우, t = 0일 동안 요청된 제품이 제품 B일 확률 1-α가 존재한다는 것을 나타낸다. t = 0일 동안 요청된 제품이 제품 B인 경우, 에이전트는 올바른 제품을 생산함에 대한 보상+1을 받고, 올바른 제품 B가 생산 설비로부터 전달될 것이므로 t = 1일에 결과 상태 s1은 (0, 0)일 것이다.
도 7은 예시적인 실시예들에 따른, 에이전트(710)를 포함하는 시스템(700)을 도시한다. 에이전트(710)는 생산 설비(760)로서 표현되는 환경의 상태를 나타내는 다양한 입력들에 기초하여 생산 설비(760)에 대한 스케줄(750)을 생성하도록 행동하는 계산 에이전트일 수 있다. 생산 설비(760)의 상태는 생산 설비(760)에서 생산된 제품들에 대한 제품 요청들(720), 제품 및 물질 재고 정보(730), 및 다음에 제한되는 것은 아니지만, 제조, 장비 상태, 비즈니스 인텔리전스, 현재 시장 가격 데이터, 및 시장 예측들에 관한 정보를 포함한 추가 정보(740)에 기초할 수 있다. 생산 설비(760)는 요청된 제품들(770)과 같은 제품들을 생산하기 위한 입력들로서 입력 물질들(762)을 수용할 수 있다. 일부 예들에서, 에이전트(710)는 제품 요청들(720)을 만족시키기 위해 생산 설비(760)의 상태들에 기초하여, 스케줄(750)에 의해 표현되는 행동들을 결정하기 위해 강화학습을 사용하여 훈련되는 하나 이상의 ANN을 포함할 수 있다.
도 8은 예시적인 실시예들에 따른, 생산 설비(760)를 포함하는 시스템(700)에 대한 모델(800)의 블록도이다. 모델(800)은 생산 설비(760) 및 제품 요청들(720)을 포함하는 시스템(700)의 양태들을 나타낼 수 있다. 일부 예들에서, 모델(800)은 에이전트(710)와 같은 계산 에이전트에 의해 생산 설비(760) 및/또는 제품 요청들(720)을 모델링하기 위해 사용될 수 있다. 다른 예들에서, 모델(800)은 MILP-기반 스케줄링 시스템에 대한 생산 설비(760) 및/또는 제품 요청들(720)을 모델링하는데 사용될 수 있다.
이 예에서, 생산 설비(760)에 대한 모델(800)은 반응기(810)를 사용하여 제품들(850)로서 최대 4개의 상이한 등급의 LDPE를 생성할 수 있게 하며, 여기서 제품들(850)은 본원에서 제품 A, 제품 B, 제품 C, 및 제품 D로서 기술된다. 보다 구체적으로, 모델(800)은 제품 A, B, C, 및 D에 대한 제품 요청들의 주문서에 의해 제품 요청들(720)을 나타낼 수 있으며, 여기서 주문서는 고정된 통계 프로파일에 따라 생성될 수 있고, 그 날에 대한 새로운 제품 요청들(720)과 함께 매일 업데이트될 수 있다. 예를 들어, 주문서는 고정된 통계 프로파일에 기초하여 하나 이상의 몬테카를로 기술을 사용하여 생성될 수 있으며, 즉, 고정된 통계 프로파일에 기초하여 제품 요청을 생성하기 위해 랜덤 번호/랜덤 샘플에 의존하는 기술들을 사용하여 생성될 수 있다.
반응기(810)는 제품들(850)을 제조하기 위한 입력으로서 신선한(fresh) 입력 물질(842) 및 촉매(844)를 수용할 수 있다. 반응기(810)는 또한, 압축기(820)로 전달되는 재활용 가능한 입력 물질(840)을 방출시킬 수 있고, 압축기는 열 교환기(830)로 전달되는 재활용 가능한 입력 물질(840)을 압축 및 전달할 수 있다. 열 교환기(830)를 통과한 후에, 재활용 가능한 입력 물질(840)은 신선한 입력 물질(842)과 조합될 수 있고, 반응기(810)에 대한 입력 물질로서 제공될 수 있다.
반응기(810)는 연속적으로 행동할 수 있지만, 형 변화 제한으로 인해 형 변화 손실을 초래할 수 있고, 수요 및 장비 이용가능성의 불확실성에 영향을 받을 수 있다. 형 변화 손실은, 반응기(810)가 "형 변화(type change)" 또는 공정 온도의 상대적으로 큰 변화를 발생시키도록 지시될 때 발생한다. 공정 온도에서의 형 변화는 반응기(810)가 등급외 물질, 즉, 제품 규격을 벗어나고, 프라임 제품으로서 고가로 판매될 수 없어서, 형 변화로 인해(프라임 제품을 생산하는 것에 비해) 손실을 발생시키는 물질을 생성하게 할 수 있다. 이러한 형 변화 손실은 2-100% 범위일 수 있다. 유사한 생산 온도 및 조성을 갖는 제품으로/제품으로부터 이동시킴으로써, 형 변화 손실이 최소화될 수 있다.
모델(800)은, 불리한 형 변화가 발생되는 각각의 타임 스텝에서, 스케줄링된 프라임 제품의 적은 산출 및 대량의 등급외 제품의 산출에 의해, 형 변화 손실들의 표현을 포함할 수 있다. 모델(800)은 또한 특정 시간 구간 동안 생산 설비(760)가 셧다운되게 하는 위험을 나타낼 수 있는데, 이때 스케줄(750)은 해당 시간 구간으로부터 이용할 수 있는 새로운 제품들이 없으므로 새로운 제품들을 다시 만들어야 할 것이다. 모델(800)은 또한 지연된 전달의 페널티의 표현을 포함할 수 있는데, 예를 들어, 단위 시간당 가격의 미리 결정된 백분율의 페널티(%) - 예를 들면, 지연 페널티는 하루 늦을 때마다 3%, 하루 늦을 때마다 10%, 일주일 늦을 때마다 8%, 및 한달 늦을 때마다 20%의 페널티를 포함하지만, 이에 제한되지 않는다. 일부 예들에서, 모델(800)은 형 변화 손실들, 생산 시설 위험들, 지연된 전달 페널티들, 및/또는 다른 모델 페널티 및/또는 보상들의 다른 표현들을 사용할 수 있다.
일부 예들에서, 모델(800)은 생산 설비(760)의 상태들을 생성하기 위한 하나 이상의 몬테카를로(Monte Carlo) 기술들을 포함할 수 있고, 생산 설비의 각각의 몬테카를로 생성된 상태는 특정 시간에 생산 설비에서 이용가능한 제품들(850) 및/또는 입력 물질들(840, 842)의 재고를 표현하는데, 예를 들어, 몬테카를로 생성된 상태는 제품들(850) 및 입력 물질들(840, 842)의 초기 재고를 나타낼 수 있고, 생산 설비 셧다운 또는 생산 설비 재시작과 같은, 특정 이벤트 이후의 제품들(850) 및 입력 물질들(840, 842)의 재고를 나타낼 수 있다.
일부 예들에서, 모델(800)은 다수의 생산 라인들을 갖는 생산 설비를 나타낼 수 있다. 이러한 예들 중 일부에서, 다수의 생산 라인들은 병렬로 행동할 수 있다. 이들 실시예 중 일부에서, 다수의 생산 라인은 적어도 하나의 공통 제품을 공유하는 2개 이상의 다중 생산 라인을 포함할 수 있다. 이러한 예들에서, 에이전트(710)는 다수의 생산 라인들 중 일부 또는 전부에 대한 스케줄들을 제공할 수 있다. 이러한 예들 중 일부에서, 에이전트(710)는, 1) 생산 라인들 중 일부 또는 전부가 동일한 날에 공통의 제품을 생산하는 것을 방지하는 공통의 유닛 행동, 자원들 및/또는 운영 장비를 공유할 수 있고, 2) 생산 라인들 중 일부 또는 전부가 이들 제조 라인들 상의 생산을 제한하는 공통의 유틸리티를 공유할 수 있으며, (3) 생산 라인들 중 일부 또는 전부가 지리적으로 분포될 수 있는 것과 같은, 그러나 이에 제한되지 않는, 복수의 생산 라인들에 관련된 운영 제약 조건들을 고려하는 스케줄들을 제공할 수 있다.
일부 예들에서, 모델(800)은 일련의 생산 행동들로 구성되는 생산 설비를 나타낼 수 있다. 예를 들어, 생산 행동들은, 잠재적으로 고객에게 전달되는 제품이 저장될 수 있고/있거나 추가 제품으로의 추가 처리를 위해 "다운스트림" 생산 행동들로 전달될 수 있는 "업스트림" 생산 행동들을 포함할 수 있다. 보다 구체적인 예로서, 업스트림 생산 행동은 다운스트림 패키징 라인이 제품들을, 고객들에게 전달하기 위해 사용되는 패키징에 의해 구별되는 패키지들로, 패키징할 수 있는 제품들을 생산할 수 있다. 이들 예 중 일부에서, 생산 행동들은 지리적으로 분산될 수 있다.
일부 예들에서, 모델(800)은 다수의 제품들을 동시에 생산하는 생산 설비를 나타낼 수 있다. 그 후, 에이전트(710)는 각각의 제품이 시간 주기당 얼마나 생산되는지를 나타내는 스케줄을 결정할 수 있다(예를 들어, 매 시간, 매일, 매주, 매 2주, 매월, 분기별, 연간). 이러한 예들에서, 에이전트(710)는 복수의 생산 라인들을 갖는 생산 설비 내에 존재할 수 있는 바와 같이, 특정 시간 기간 내에 및/또는 공유 자원들에 의해 생성된 각각의 제품의 양들, 예를 들어, 양들의 비율, 최대 양들, 및/또는 최소 양들에 관련된 제약 조건들에 기초하여 이러한 스케줄들을 결정할 수 있다.
일부 예들에서, 모델(800)은 다수의 생산 라인들을 갖는 것, 일련의 생산 행동들로 구성되는 것, 및/또는 다수의 제품들을 동시에 생산하는 것의 조합을 갖는 생산 설비를 나타낼 수 있다. 이러한 예들 중 일부에서, 업스트림 생산 설비들 및/또는 행동들은 다운스트림 설비들 및/또는 행동들에 재료를 공급할 수 있다. 이러한 예들 중 일부에서, 생산 설비들 및/또는 다른 생산 유닛들 사이에서 제품의 중간 저장이 사용될 수 있다. 이러한 예들 중 일부에서, 다운스트림 유닛들은 동시에 다수의 제품들을 생성할 수 있으며, 이들 중 일부는 처리를 위해 업스트림 행동들로 다시 재순환되는 부산물들을 나타낼 수 있다. 이러한 예들 중 일부에서, 생산 설비들 및/또는 행동들은 지리적으로 분산될 수 있다. 이러한 예들에서, 에이전트(710)는 시간에 따라 각각의 행동으로부터 각각의 제품의 생산 양들을 결정할 수 있다.
도 9는 예시적인 실시예들에 따른, 시스템(700) 내의 생산 설비(760)에 대한 스케줄(900)을 도시한다. 스케줄(900)은 줄어드는 "변경 불가능"하거나 고정된 H = 7일의 계획 구간에 기초한다. 7일간의 변경 불가능한 계획 구간(UPH: unchangeable planning horizon)은 생산 중지를 차단하면서 스케줄이 7일 구간 동안 변경될 수 없음을 의미한다. 예를 들어, 1월 1일부터의 변경 불가능한 7일간의 계획 구간을 시작하는 스케줄은 1월 1일부터 1월 8일 사이에 변경될 수 없다. 스케줄(900)은 일별(24시간) 시간 구간에 기초하며, 제품(850)은 24시간 생산 및/또는 경화 시간을 갖는 것으로 가정된다. 생산 설비(760)의 셧다운을 초래할 수 있는 생산 설비의 위험의 경우에, 스케줄(900)은 무효화될 것이다.
도 9는 스케줄(900)을 나타내기 위해 간트(Gantt) 차트를 사용하며, 여기서 간트 차트의 행들은 생산 설비(760)에 의해 생성되는 제품들(850)의 제품들을 나타내고, 간트 차트의 열들은 스케줄(900)의 일 수를 나타낸다. 스케줄(900)은 0일에 시작하여 16일까지 실행된다. 도 9는 7일째에 수직 점선의 변경 불가능한 계획 구간 타임라인(952)을 사용하는 0일로부터의 7일간의 변경 불가능한 계획 구간(950)을 도시한다.
스케줄(900)은 생산 설비(760)에 대한 생산 행동들을 직사각형으로 나타낸다. 예를 들어, 행동(A)(910)은 제품 A가 0일의 시작점부터 시작하여 제1 일의 시작점에서 종료하는 것을 나타내고, 행동(912)은 제품 A가 제5 일의 시작점에서 시작하여 제11 일의 시작점에서 종료하는 것을 나타내며, 즉, 제품 A는 0일 및 5-10일째에 생성될 것이다. 스케줄(900)은 제품 B가 하나의 행동(920)만을 갖는다는 것을 나타내고, 이는 제품 B가 단지 2일째에만 생성될 것임을 나타낸다. 스케줄(900)은 제품 C가 하나의 행동(930)만을 갖는다는 것을 나타내고, 이는 제품 C가 3일 및 4일에 생성될 것임을 나타낸다. 스케줄(900)은 제품 D가 2개의 행동들(940, 942)을 갖는다는 것을 나타내는데, 행동(940)은 제품 D가 제1 일에 생성될 것임을 나타내고, 행동(942)은 제품 D가 11일 내지 15일에 생성될 것임을 나타낸다. 생산 설비(760) 및/또는 다른 생산 설비들에 대한 많은 다른 스케줄들도 가능하다.
A. 강화학습 모델과 REINFORCE 알고리즘
도 10은 예시적인 실시예들에 따른, 시스템(700)의 에이전트(710)의 도면이다. 에이전트(710)는 생산 설비(760)에 대한 스케줄(900)과 같은 스케줄을 생성하기 위한 신경망 모델을 구현할 수 있으며, 여기서 신경망 모델은 훈련될 수 있고/있거나 다르게는 모델(800)을 사용할 수 있다. 특히, 에이전트(710)는 생산 행동들을 스케줄링할 수 있는 REINFORCE 알고리즘을 구현할 수 있으며, 예를 들어, 주어진 타임스텝 t에서 환경 상태 st에 기초하여 모델(800)을 이용하여 생산 설비(760)에서의 생산 행동들을 스케줄링할 수 있다.
REINFORCE 알고리즘의 명령문은 아래 표 2에서 확인할 수 있다.
Figure pct00054
REINFORCE 알고리즘에 의해 이용되는 식 34 내지 식 40은 다음과 같다.
Figure pct00055
도 10은 가치 ANN(1010) 및 정책 ANN(1020)을 포함하는 ANN(1000)들을 갖는 에이전트(710)를 도시한다. REINFORCE 알고리즘에 대한 의사결정은 가치 ANN(1010) 및 정책 ANN(1020)과 같은 하나 이상의 ANN에 의해 모델링될 수 있다. REINFORCE 알고리즘을 구현하는데 있어서, 가치 ANN(1010) 및 정책 ANN(1020)은 협력하여 행동한다. 예를 들어, 가치 ANN(1010)은 주어진 상태의 예상된 보상을 예측하는 REINFORCE 알고리즘에 대한 가치 함수를 나타낼 수 있고, 정책 ANN(1020)은 주어진 상태에서 수행될 하나 이상의 행동들을 선택하는 REINFORCE 알고리즘에 대한 정책 함수를 나타낼 수 있다.
도 10은 가치 ANN(1010) 및 정책 ANN(1020)이 2개 이상의 은닉층들 및 각각의 계층에 대해 64개 이상의 노드들(예를 들어 계층마다 128개의 노드들을 가진 4개의 은닉 층들)을 가질 수 있음을 도시하고 있다. 가치 ANN(1010) 및/또는 정책 ANN(1020)은 지수형 선형 단위 활성화 함수들을 사용할 수 있고, 출력을 생성하는데 softmax(정규화된 지수) 함수를 사용할 수 있다.
가치 ANN(1010) 및 정책 ANN(1020)은 모두, 시간 t에서 생산 설비(760)의 상태를 나타내는 상태 st(1030) 및/또는 모델(800)을 수신할 수 있다. 상태 st(1030)는 에이전트(710)가 시간 t에서 스케줄링 결정을 내리는, 생산 설비(760)의 각각의 제품에 대한 재고 밸런스를 포함할 수 있다. 일부 예들에서, 상태 st(1030)에서의 음의 값들은 시간 t에서 생산 설비(760)에서 예상 재고보다 더 많은 수요가 존재함을 나타낼 수 있고, 상태 st(1030)에서의 양의 상태 값들은 시간 t에서 생산 설비(760)에 수요보다 더 많은 예상 재고가 존재한다는 것을 나타낼 수 있다. 일부 예들에서, 상태 st(1030)에서의 값들은 정규화된다.
가치 ANN(1010)은 하나 이상의 가치 함수 출력들(1040)을 출력하기 위해 상태 st(1030) 상에서 동작할 수 있고, 정책 ANN(1020)은 하나 이상의 정책 함수 출력들(1050)을 출력하기 위해 상태 st(1030) 상에서 동작할 수 있다. 가치 함수 출력들(1040)은 생산 설비(760)에서 생산 행동을 취하는 것에 대한 하나 이상의 보상 및/또는 처벌을 추정할 수 있다. 정책 함수 출력들(1050)은 생산 설비(760)에서 취해지도록 가능한 생산 행동들(A)에 대한 스케줄링 정보를 포함할 수 있다.
가치 ANN(1010)은 정책 ANN(1020)을 이용하여 에이전트(710)에 의해 생성된 정책 함수 출력들(1050)에 기초하여 스케줄을 구현하기 위해 수신된 보상들에 기초하여 업데이트될 수 있다. 예를 들어, 가치 ANN(1010)은 시간 t에서 얻어진 실제 보상과 가치 함수 출력들(1040)의 일부로서 생성된 시간 t에 대한 추정된 보상 간의 차이에 기초하여 업데이트될 수 있다.
REINFORCE 알고리즘은, 각각의 에피소드에 대한 스케줄을 생성하기 위해, 다양한 "에피소드들" 또는 시간 구간들(예를 들어, 매 시간, 매 6시간, 매일, 매 2일마다)에서 샘플링되는 분포들을 산출하기 위해 하나 이상의 타임스텝들에 걸쳐 정책 ANN(1020)을 통한 상태 s t 의 연속적인 순방향 전파를 사용하여 생산 설비(760) 및/또는 모델(800)에 대한 스케줄을 생성할 수 있다. 시뮬레이션의 각각의 타임 스텝 t에 대해, 에피소드의 종료 시에 훈련할 에이전트(710)에 대한 피드백으로서 보상 Rt가 반환된다.
REINFORCE 알고리즘은 전체 에피소드 전반에 걸쳐 시간적으로 순방향 이동하는 환경을 고려할 수 있다. 각각의 에피소드에서, REINFORCE 알고리즘을 구현하는 에이전트(710)는 각 타임 스텝에서의 환경으로부터 수신하는 상태 st(1030)와 같은 상태 정보에 기초하여, 계획 구간으로의 스케줄을 작성할 수 있다. 이러한 스케줄은 생산 설비(760)에서 실행될 수 있고/있거나 모델(800)을 이용하여 시뮬레이션에서 실행될 수 있다.
에피소드가 완료된 후, 식 34는 에피소드 동안 획득된 보상을 업데이트한다. 식 35는 예상된 보상과 실제 보상 사이의 시간 차이(TD: temporal difference) 오차를 계산한다. 식 36은 정책 함수에 대한 손실 함수이다. 추가적인 탐색을 장려하기 위해, REINFORCE 알고리즘은 정책 함수에 대한 손실 함수에서 엔트로피 항(H)을 사용할 수 있으며, 여기서 엔트로피 항(H)은 정책 ANN(1020)의 가중치들 및 바이어스들에 대한 업데이트들 동안 식 37에서 계산되고, 식 38에 의해 적용된다. 에피소드의 종료 시에, 에이전트(710)의 REINFORCE 알고리즘은 식 39 및 식 40에 의해 도시된 바와 같이 가치 함수의 손실 함수에 관하여 도함수를 취하고 역전파 알고리즘을 이용하여 가치 ANN(1010)의 가중치들 및 바이어스들을 업데이트함으로써 업데이트될 수 있다.
정책 ANN(1020)은 각 상태에 대해 가능한 행동들에 대한 확률 분포를 산출하는 확률적 정책 함수를 나타낼 수 있다. REINFORCE 알고리즘은 스케줄(900)의 변경할 수 없는 계획 구간(950)과 같은 계획 구간 동안 정책 ANN(1020)을 사용하여 결정을 내릴 수 있다. 계획 구간 동안, 정책 ANN(1020)은 새로운 상태를 관찰하는 이점을 갖지 않는다.
이러한 계획 구간들을 처리하기 위한 적어도 2개의 옵션들이 있다: (1) REINFORCE 알고리즘 및 정책 ANN(1020)을 구현하는 에이전트(710)는 계획 구간에 대한 가능한 스케줄들에 대해 샘플링할 수 있거나, 또는 (2) 에이전트(710)는 미래의 상태들의 진화의 모델을 고려하면서 모든 제품들에 대해 반복적으로 샘플링할 수 있다. 옵션 (1)은 가능한 스케줄 수가 지수적으로 증가하므로 스케줄링에 적용하기 어려울 수 있고, 따라서 새 제품이 추가되거나 계획 구간이 증가될 때 행동 공간이 폭증한다. 예를 들어, 4개의 제품이 있고 계획 구간이 7일인 생산 설비의 경우 샘플링할 16,284개의 가능한 스케줄이 있다. 이와 같이, 옵션 (1)은 적합한 스케줄을 찾기 전에 많은 샘플 스케줄을 만들게 될 수 있다.
스케줄링 동안에 옵션 (2)를 실행하기 위해, 에이전트(710)는 시간 t에서 이용가능한 정보가 주어진 경우 하나 이상의 미래의 상태들(st+1, st+2 ... )을 예측할 수 있다(예를 들어, 상태 st(1030)). 시간에 따른 스케줄을 만드는 동안 정책 ANN(1020)에 현재 상태를 반복적으로 전달하는 것은 정책 ANN(1020)이 동일한 정책 함수 출력(1050)을 제공하게 만들기 때문에, 예를 들어, 행동들에 대해 동일한 확률 분포를 반복적으로 제공하게 만들기 때문에, 에이전트(710)는 미래의 상태(들)를 예측할 수 있다.
미래의 상태 st+1를 결정하기 위해, 에이전트(710)는 재고 밸런스를 갖는 제1 원리 모델을 사용할 수 있는데, 즉, 시간 t+1에서의 제품 p의 재고 Iit+1는 시간 t에서의 재고 Iit에서 시간 t에서의 제품 p의 추정된 생산
Figure pct00056
를 더하고 시간 t에서 제품 p의 판매 sitln를 뺀 것과 동일할 수 있다. 즉, 에이전트(710)는 재고 밸런스 Iit+1 = Iit +
Figure pct00057
= sitln를 계산할 수 있다. 이러한 재고 밸런스는 이용 가능한 제품 요청들(예를 들어, 제품 요청들(720))에 대한 데이터와 함께 Iit +1을 추정하고/하거나, 계획된 생산은 상태 st+1에 대해 추정된 재고 밸런스(Iit+)를 생성하기 위해 에이전트(710)에 대해 충분한 데이터를 제공할 수 있다.
도 11은 예시적인 실시예들에 따른, 행동 확률 분포(1110)를 생성하는 에이전트(710)를 나타내는 도면(1100)을 도시한다. 정책 함수 출력들(1050)의 일부로서 행동 확률 분포(1110)를 생성하기 위해, 에이전트(710)는 상태 st(1030)를 수신할 수 있고, 상태 st(1030)를 ANN들(1000)에 제공할 수 있다. ANN들(1000)의 정책 ANN(1020)은 상태 st에 대한 정책 함수 출력들(1050)을 제공하기 위해 상태 st(1030) 상에서 동작할 수 있다.
도면(1100)은 정책 함수 출력들(1050)이 행동 확률 분포(1110)와 같은 생산 설비(760)에서 취해질, 가능한 생산 행동들(A)의 세트에 대한 하나 이상의 확률 분포들을 포함할 수 있다는 것을 도시한다. 도 11은 상태 st(1030)에 기초하여 에이전트(710)가 생산 설비(760)에 제공할 수 있는 4개의 행동들 각각에 대한 확률들을 행동 확률 분포(1110)가 포함하는 것을 도시한다. 상태 st가 주어진 경우, 정책 ANN(1020)은, 제품 A를 스케줄링하기 위한 행동이 0.8의 확률로 생산 설비(760)에 제공되어야 하고, 제품 B를 스케줄링하기 위한 행동은 0.05의 확률로 생산 설비(760)에 제공되어야 하며, 제품 C를 스케줄링하기 위한 행동은 0.1의 확률로 생산 설비(760)에 제공되어야 하고, 제품 D를 스케줄링하기 위한 행동은 0.05의 확률로 생산 설비(760)에 제공되어야 한다는 것을 나타낸다.
행동 확률 분포(1110)와 같은 정책 함수 출력들(1050)의 확률 분포(들)는 스케줄에서 시간 t에서 제품(들)을 만들기 위한 하나 이상의 행동들을 산출하도록 샘플링 및/또는 선택될 수 있다. 일부 예들에서, 행동 확률 분포(1110)는 스케줄에 대한 하나 이상의 행동들을 획득하기 위해 랜덤하게 샘플링될 수 있다. 일부 예들에서, 확률 분포에서 N(N > 0)번째로 높은 확률의 생산 행동들(a1, a2 ... aN)은 한번에 N개의 상이한 제품들을 만들도록 선택될 수 있다. 보다 특정한 예로서, 샘플링 행동 확률 분포(1110)에 대해 N = 1인 경우, 가장 높은 확률의 생산 행동이 샘플링 및/또는 선택되는데, 이 예에서, 가장 높은 확률의 생산 행동은 (확률이 0.8인) 제품 A를 생산하는 행동이고, 따라서 제품 A를 생산하는 행동이 시간 t에 대한 스케줄에 추가될 것이다. 행동 확률 분포들로부터 행동을 샘플링 및/또는 선택하기 위한 다른 기술들도 가능하다.
도 12는 예시적인 실시예들에 따른, 행동 확률 분포(1210)에 기초하여 스케줄(1230)을 생성하는 에이전트(710)를 나타내는 도면(1200)을 도시한다. 에이전트(710)에서 구현된 REINFORCE 알고리즘이 시간에 따라 진행됨에 따라, 시간 t 0 내지 t 1 의 범위 동안 다수의 행동 확률 분포들(1210)이 얻어질 수 있다. 전환(1220)로 도시된 바와 같이, 에이전트(710)는 시간 t 0 내지 t 1 동안에 행동 확률 분포들(1210)로부터 행동들을 샘플링 및/또는 선택할 수 있다. 시간 t 0 내지 t 1 동안에 행동 확률 분포들(1210)로부터 행동을 샘플링 및/또는 선택한 후에, 에이전트(710)는 행동 확률 분포들(1210)로부터 행동들을 샘플링 및/또는 선택하는 것을 포함하는, 생산 설비(760)에 대한 스케줄(1230)을 생성할 수 있다.
일부 예들에서, 정책 ANN(1020)에 의해 표현되는 정책 함수에 의해 기술되는 특정 행동들에 대한 확률 분포가 수정될 수 있다. 예를 들어, 모델(800)은 생산 설비(760)에 존재할 수 있는 생산 제약 조건들을 나타낼 수 있고, 따라서 정책 ANN(1020)에 의해 학습된 정책은 모델(800)과의 직접적인 상호작용을 포함할 수 있다. 일부 예들에서, 정책 ANN(1020)에 의해 표현되는 정책 함수에 대한 확률 분포는 모델(800)의 제약 조건들을 위반하는 생산 행동들의 확률들이 제로 확률을 갖는 것을 나타내도록 수정될 수 있고, 이에 의해 정책 ANN(1020)의 행동 공간을 허용가능한 행동들만으로 제한할 수 있다. 정책 ANN(1020)을 허용가능한 행동들만으로 제한하도록 확률 분포를 수정하는 것은 정책 ANN(1020)의 훈련을 가속시킬 수 있고, 에이전트(710)의 동작 동안 제약 조건들이 위반되지 않을 가능성을 증가시킬 수 있다.
정책 함수에 의해 기술되는 행동들에 대한 제약 조건들이 존재할 수 있는 것처럼, 가치 ANN(1010)에 의해 표현되는 가치 함수에 의해 기술되는 특정 상태들은 동작 목적들 또는 생산 설비(760)의 물리적 제한들에 의해 금지될 수 있다. 이러한 금지된 상태들은 훈련 동안 금지된 상태들에 대해 반환되는 상대적으로 큰 페널티들의 사용을 통해 가치 ANN(1010)에 의해 학습될 수 있고, 이에 의해 가치 ANN(1010) 및/또는 정책 ANN(1020)에 의해 회피될 수 있다. 일부 예들에서, 금지된 상태들은 에이전트(710)에 대해 이용가능한 가능한 상태들의 모음(universe)으로부터 제거될 수 있고, 이는 가치 ANN(1010) 및/또는 정책 ANN(1020)의 훈련을 가속화하고, 에이전트(710)의 동작 동안 금지된 상태들이 회피될 가능성을 증가시킬 수 있다.
일부 예들에서, 생산 설비(760)는 다수의 에이전트들을 사용하여 스케줄링될 수 있다. 이러한 다수의 에이전트들은 의사결정을 분산시킬 수 있으며, 다수의 에이전트들의 가치 함수들은 다수의 에이전트들에 의해 결정된 생산 행동들에 필요한 조정을 반영할 수 있다.
도 13은 예시적인 실시예들에 따라, 시간 = t 0 +2에서 수행되는 생산 설비(760)에 대한 행동들의 예시적인 스케줄(1300)을 도시한다. 이 예에서, 에이전트(710)는 전술한 스케줄(1230)을 생성하기 위한 기술들을 이용하여 생산 설비(760)에 대한 스케줄(1300)을 생성한다. 전술한 스케줄(900)과 같이, 스케줄(1300)은 줄어드는 7일간의 변경 불가능한 계획 구간에 기초하고, 생산 행동들을 나타내기 위해 간트 차트를 사용한다.
스케줄(1300)은 t 1 = t 0 +16일을 사용하여 t 0 내지 t 1 범위의 시간에 대해 17일 동안 지속된다. 도 13은 시간 t 0 +2일에 스케줄(1300)이 수행되고 있음을 나타내기 위해 현재의 타임 라인(1320)을 사용한다. 현재의 타임 라인(1320) 및 변경 불가능한 계획 구간(1330)은 변경 불가능한 계획 구간(1332)이 t 0 +2일부터 t 0 +9일까지 이동하는 것을 도시한다. 현재의 타임 라인(1320) 및 변경 불가능한 계획 구간의 타임 라인(1330)은 명료함을 위해 도 13에서 각각의 t 0 +2일 및 t 0 +9일의 마크들을 좌측으로 약간 오프셋한다.
스케줄(1300)은 생산 설비(760)에서 제품 A, B, C, 및 D를 포함하는 제품들(850)의 생산을 지시할 수 있다. t 0 +2일에는, t 0 t 0 +1일 동안 제품 B를 생산하기 위한 행동(1350)이 완료되었고, t 0 일 및 t 0 +5일 사이에 제품 C를 생산하기 위한 행동(1360)이 진행 중이며, 행동들(1340, 1352, 1370, 및 1372)은 시작되지 않았다. 행동(1340)은 t 0 +6일 및 t 0 +11일 사이의 제품 A의 스케줄링된 생산을 나타내고, 행동(1352)은 t 0 +12일 및 t 0 +14일 사이의 제품 B의 스케줄링된 생산을 나타내며, 행동(1370)은 t 0 +8일 및 t 0 +10일 사이의 제품 D의 스케줄링된 생산을 나타내고, 행동(1372)은 t 0 +14일 및 t 0 +16 = t 1 일 사이의 제품 D의 스케줄링된 생산을 나타낸다. 생산 설비(760) 및/또는 다른 생산 설비들에 대한 많은 다른 스케줄들도 가능하다.
B. 혼합 정수 선형 프로그래밍(MILP) 최적화 모델
에이전트(710)와 같은 컴퓨팅 에이전트에서의 REINFORCE 알고리즘의 실시예들과 같은, 본원에 설명된 강화학습 기술의 비교를 위한 기초로서, 본원에 설명된 강화학습 기술들 및 MILP에 기초한 최적화 모델은 모두, 구간 이동법(receding horizon method)을 이용하여 계획 구간에 대해 모델(800)을 사용하여 생산 설비(760)에서의 생산 행동들을 스케줄링하는데 사용되었다.
MILP 모델은 아래에서 설명된 강화학습에 사용되는 REINFORCE 알고리즘과 동일한 방식으로 재고, 주문 오픈, 생산 스케줄, 생산 제약 조건 및 등급외 손실, 정전 및 기타 중단을 고려할 수 있다. 이동 구간(receding horizon)은 MILP 모델이 입력을, 생산 환경뿐만 아니라 계획 구간 내에서 고정된 생산 스케줄을 유지하기 위해 이전의 해로부터의 결과로서, 수신할 것을 필요로 한다. MILP 모델은 더 나은 최종 상태 조건들을 제공하기 위해서 2H 시간 기간들에 대한 스케줄을 생성할 수 있는데, 여기서 H는 변경 불가능한 계획 구간에서의 날짜 수이고, 예를 들어, H = 7이다. 그런 다음, 스케줄이 실행할 생산 설비의 모델로 전달된다. 생산 설비의 모델은 한 타임스텝씩 순방향으로 단계적으로 진행되고, 그 결과는 2H 계획 구간에 대해 새로운 스케줄을 생성하기 위해 MILP 모델로 피드백된다.
특히, 식 41은, 식 42에 의해 특정되는 재고 밸런스 제약 조건, 식 43에 의해 특정된 스케줄링 제약 조건, 식 44에 의해 특정되는 선적된 주문 제약 조건, 식 45에 의해 특정되는 생산 제약 조건, 식 46에 의해 특정되는 주문 인덱스 제약 조건, 및 식 47 내지 식 51에 의해 특정되는 일일 생산량 제약 조건에 영향을 받는, MILP 모델의 목적 함수이다.
Figure pct00058
아래의 표 3은 REINFORCE 알고리즘과 연관된 식 34 내지 식 40, 및 MILP 모델과 연관된 식 41 내지 식 51에서 사용되는 변수들을 설명한다.
Figure pct00059
C. REINFORCE 알고리즘과 MILP 모델 비교
비교를 위해, 에이전트(710)에서 구현된 REINFORCE 알고리즘 및 MILP 모델이 모두, 3개월 간의 시뮬레이션 구간에 걸쳐 모델(800)을 사용하여 생산 설비(760)에 대한 스케줄을 생성하는 작업을 수행하였다. 이러한 비교에서, 각각의 REINFORCE 알고리즘 및 MILP 모델은 시뮬레이션 구간에 걸쳐 매일 스케줄링 프로세스를 수행했는데, 여기서, 조건들은 시뮬레이션 구간에 걸쳐 REINFORCE 알고리즘 및 MILP 모델 모두에 대해 동일하였다. REINFORCE 알고리즘 및 MILP 모델 모두, H = 7일 전에 시뮬레이션된 반응기에 대한 생산 스케줄로 제품을 슬롯하는 스케줄을 생성하는데 이용되었으며, 이는 시뮬레이션 구간 내에서 7일의 변경 불가능한 계획 구간을 나타낸다. 이러한 비교 동안, REINFORCE 알고리즘은 MILP 모델에 대해 상기 설명된 동일한 제약 조건 하에서 동작한다.
현재 날짜가 시스템에서의 각각의 주문과 연관된 주문 입력 날짜와 일치하는 경우, REINFORCE 알고리즘 및 MILP 모델에 대해 수요가 노출된다. 이는 REINFORCE 알고리즘 및 MILP 모델에 대한 미래 수요의 제한된 가시성을 제공하고, 새로운 요소들이 이용가능하게 되면 그에 반응하게 만든다.
REINFORCE 알고리즘과 MILP 모델은 모두, 시뮬레이션 기간 동안 생산 설비의 수익성을 최대화하도록 작업을 수행하였다. 비교에 대한 보상/목적 함수는 식 41로서 주어진다. MILP 모델은 완전한 정보를 이용한 경우 및 이동하는 시간 구간의 경우의 두 가지 조건 하에서 진행되었다. 전자는 최상의 시나리오를 제공하여 다른 접근법에 대한 벤치마크 역할을 하고, 후자는 확률적 요소들의 중요성에 대한 정보를 제공한다. REINFORCE 알고리즘의 ANN은 10,000개의 무작위로 생성된 에피소드에 대해 훈련되었다.
도 14는 예시적인 실시예들에 따라, REINFORCE 알고리즘을 수행하기 위해 ANN들(1000)을 사용하여 에이전트(710)에 의해 얻어진 에피소드당 훈련 보상 및 에피소드당 제품 이용가능성의 그래프들(1400, 1410)을 도시한다. 그래프(1400)는 10000 에피소드에 걸친 훈련 동안 에이전트(710)의 ANN들(1000)에 의해 획득되는, 달러로 평가되는 훈련 보상들을 예시한다. 그래프(1400)에 도시된 훈련 보상들은 상대적으로 어두운 회색으로 도시된 각각의 에피소드에 대한 실제 훈련 보상과, 상대적으로 밝은 회색으로 도시된 모든 에피소드에 대한 훈련 보상의 이동 평균을 모두 포함한다. 훈련 중에 증가하는 훈련 보상들의 이동 평균은 약 700번의 에피소드 이후에 양의 값에 도달하고, 평균 훈련 보상들의 이동 평균은 10000번의 에피소드 이후에 에피소드당 약 100만 달러($1M)로 최종적으로 평균된다.
그래프(1410)는 10000번의 에피소드를 초과하는 훈련 동안 에이전트(710)의 ANN들(1000)에 의해 달성된, 백분율로서 평가되는, 각각의 에피소드에 대한 제품 이용가능성을 예시한다. 그래프(1410)에 도시된 훈련 보상은 상대적으로 어두운 회색으로 도시된 각각의 에피소드에 대한 실제 제품 이용가능성 백분율, 및 상대적으로 밝은 회색으로 도시된 모든 에피소드들에 대한 제품 이용가능성 백분율의 이동 평균을 포함한다. 제품 이용가능성 백분율의 이동 평균은 약 2850번의 에피소드 이후에 적어도 90%의 제품 이용가능성에 도달하고 유지되도록 훈련하는 동안 증가하며, 평균 훈련 보상들의 이동 평균은 10000번의 에피소드 이후 최종적으로 약 92%로 평균된다. 따라서, 그래프들(1400 및 1410)은 에이전트(710)의 ANN들(1000)이 생산 설비(760)에서의 생산을 위해 (경제적) 보상 및 제품 이용가능성의 관점에서와 같이, 양의 결과들을 초래하는 스케줄들을 제공하도록 훈련될 수 있음을 나타낸다.
도 15 및 도 16은 동일한 시나리오 동안 생산 설비(760)에서의 스케줄링 활동들에서 MILP 모델과 REINFORCE 알고리즘을 사용하는 에이전트(710)의 비교를 나타내며, 여기서 누적 수요는 점진적으로 증가한다.
도 15는 실시예들에 따라 생산 설비(760)에서의 스케줄링 활동들에서 REINFORCE 알고리즘 및 MILP 성능을 비교하는 그래프들(1500, 1510, 1520)을 도시한다. 그래프(1500)는 REINFORCE 알고리즘을 수행하기 위해 ANN들(1000)을 사용하여 에이전트(710)에 의해 얻어진 비용 및 보상을 나타낸다. 그래프(1510)는 위에서 설명된 MILP 모델에 의해 얻어진 비용 및 보상을 나타낸다. 그래프(1520)는 ANN들(1000)을 사용하여 REINFORCE 알고리즘을 수행하는 에이전트(710) 및 해당 시나리오에 대한 MILP 모델 간의 성능을 비교한다.
그래프(1500)는 해당 시나리오 동안 누적 수요가 증가함에 따라, 에이전트(710)가 수요를 더 잘 매칭하도록 재고를 구축했기 때문에, REINFORCE 알고리즘을 수행하기 위해 ANN(1000)을 사용하는 에이전트(710)가 그 보상을 증가시킨다는 것을 보여준다. 임의의 예측 없이, 그래프(1510)는 MILP 모델이 지연 페널티를 축적하기 시작한다는 것을 보여준다. 에이전트(710)와 MILP 모델 간의 성능을 비교하기 위해, 그래프(1520)는 RANN / RMILP의 누적된 보상 비율을 나타내는데, 여기서, RANN은 해당 시나리오 동안 에이전트(710)에 의해 획득된 보상의 누적된 양이고, RANN은 해당 시나리오 동안 MILP 모델에 의해 획득된 보상의 누적 양이다. 그래프(1520)는 수 일 후에 에이전트(710)가 누적 보상 비율에 기초하여 MILP 모델의 성능보다 일관되게 우월한 것을 도시한다.
도 16의 그래프(1600)는 ANN들(1000)을 사용하여 REINFORCE 알고리즘을 수행하는 에이전트(710)에 의해 발생된 제품 A, B, C, 및 D의 재고량을 나타낸다. 그래프(1610)는 MILP 모델에 의해 발생된 제품 A, B, C, 및 D의 재고량을 나타낸다. 이 시나리오에서, 제품 A, B, C 및 D의 재고는 잘못된 주문을 반영하므로, 더 큰(또는 더 작은) 재고량은 잘못된 주문에 대해 더 많은(또는 더 적은) 양의 요청된 제품을 반영한다. 그래프(1610)는 MILP 모델이 제품 D 재고의 거의 4000 메가톤(MT)에 달하는, 요청된 제품 D의 상당한 양을 가졌음을 나타내는 반면, 그래프(1600)는 에이전트(710)가 모든 제품에 대해 상대적으로 일관된 성능을 가졌고, 임의의 한 제품의 최대 재고량이 1500 MT 미만이었음을 나타낸다.
그래프(1620 및 1630)는 REINFORCE 알고리즘 및 MILP 모델을 비교하는 시나리오 동안의 수요를 나타낸다. 그래프(1620)는 해당 시나리오 동안에 제품 A, B, C, 및 D 각각에 대해 매일 평탄화된 수요를 나타내는 반면, 그래프(1630)는 해당 시나리오 동안 제품 A, B, C, 및 D 각각에 대한 누적 수요를 나타낸다. 그래프들(1620 및 1630)은 함께, 해당 시나리오 동안 수요가 일반적으로 증가하는 것을 보여주며, 시나리오 초기에는 제품 A 및 C에 대한 요청이 제품 B 및 D에 대한 요청보다 다소 더 크지만, 시나리오의 끝까지는 제품 B 및 D에 대한 요청이 제품 A 및 C에 대한 요청보다 다소 더 크다. 누적적으로, 그래프(1630)는 제품 C에 대한 수요가 시나리오 동안 가장 높았고, (수요 순서로) 제품 A, 제품 D, 및 제품 B가 뒤따랐음을 보여준다.
아래의 표 4는 적어도 10번의 에피소드에 걸친 REINFORCE 및 MILP 결과의 비교를 나타낸다. 모델의 확률적 특성 때문에, 표 4는 두 접근법 모두에 대한 평균 결과뿐만 아니라, 2개의 접근법에 동일한 수요 및 생산 중단이 주어진 경우의 직접 비교를 포함한다. 표 4에는 REINFORCE 알고리즘에 대한 100번의 에피소드로부터의 평균 결과가 제공되고, MILP 모델에 대한 10번의 에피소드로부터의 평균 결과가 제공된다. 강화학습 모델을 이용한 스케줄링 대비 MILP를 푸는 데에 필요한 시간이 더 길기 때문에, MILP 모델에 대해서는 더 적은 결과들이 이용 가능하다.
표 4는 도 14, 도 15 및 도 16에 도시된 REINFORCE 알고리즘의 우수한 성능을 더 나타낸다. REINFORCE 알고리즘은 마지막 100번의 훈련 에피소드에 대해 92%의 제품 이용가능성과, $748,596의 평균 보상을 산출하는 정책으로 수렴되었다. 이와 비교하여, MILP는 $476,080의 상당히 더 작은 평균 보상과 61.6%의 상당히 더 작은 제품 이용가능성을 제공하였다.
Figure pct00060
REINFORCE 알고리즘은 주로, 강화학습 모델이 불확실성을 자연스럽게 고려하는 능력으로 인해 MILP 방법보다 우수한 성능을 보였다. 정책 기울기 알고리즘은 주어진 상태에서 어떤 행동이 미래의 보상을 가장 증가시킬 것인지를 결정함으로써 학습할 수 있고, 그 다음, 미래에 해당 상태, 또는 유사한 상태가 발생한 경우에 그 행동을 선택한다. 각각의 시도마다 수요가 다르지만, REINFORCE 알고리즘은 에피소드마다 유사한 통계적 분포를 따르기 때문에 무엇을 예측할 것인지를 학습할 수 있다.
IV. 예시적인 동작들
도 17 및 도 18은 예시적인 실시예들을 도시한 흐름도이다. 방법들(1700, 1800)은, 각각 도 17 및 도 18에 도시된 바와 같이, 컴퓨팅 장치(100)와 같은 컴퓨팅 장치 및/또는 서버 클러스터(200)와 같은 컴퓨팅 장치들의 클러스터에 의해 수행될 수 있다. 그러나, 방법(1700) 및/또는 방법(1800)은 다른 유형의 장치들 또는 장치 서브시스템들에 의해 수행될 수 있다. 예를 들어, 방법(1700) 및/또는 방법(1800)은 노트북 또는 태블릿 장치와 같은 휴대용 컴퓨터에 의해 수행될 수 있다.
방법(1700) 및/또는 방법(1800)은 각각의 도 17 및 도 18에 도시된 특징들 중 임의의 하나 이상의 제거에 의해 단순화될 수 있다. 또한, 방법(1700) 및/또는 방법(1800)은 이전의 도면들 중 임의의 것의 특징들, 양태들 및/또는 구현들 또는 본원에 설명된 다른 것과 조합 및/또는 재정렬될 수 있다.
도 17의 방법(1700)은 컴퓨터로 구현되는 방법일 수 있다. 방법(1700)은 블록(1710)에서 시작할 수 있는데, 여기서 하나 이상의 제품 요청들을 만족시키기 위해 하나 이상의 입력 물질들을 이용하여 생산 설비에서 생산되는 하나 이상의 제품들의 생산과 관련된 생산 설비의 모델이 결정될 수 있다.
블록(1720)에서, 생산 설비에 대한 정책 신경망 및 가치 신경망이 결정될 수 있으며, 여기서 정책 신경망은 생산 설비에서 스케줄링될 생산 행동들을 나타내는 정책 함수와 연관될 수 있고, 가치 신경망은 생산 행동들에 기초하여 생산 설비에서 생산된 제품의 이익을 나타내는 가치 함수와 연관될 수 있다.
블록(1730)에서, 정책 신경망 및 가치 신경망은 생산의 모델에 기초하여 특정 시간 구간에 걸쳐 하나 이상의 제품 요청들을 만족시키는 생산 설비에서의 생산 행동들의 스케줄을 생성하도록 훈련될 수 있으며, 생산 행동들의 스케줄은 하나 이상의 요청된 시간들에 기초하여 결정된 하나 이상의 요청된 제품들의 지연 생산으로 인한 페널티와 관련된다.
일부 실시예들에서, 정책 함수는 생산 설비의 하나 이상의 상태들을 생산 행동들에 맵핑할 수 있고, 여기서 생산 설비의 하나 이상의 상태들 중의 특정 상태는 시간 구간 내의 특정 시간에 생산 설비에서 이용 가능한 하나 이상의 제품들의 제품 재고, 및 해당 특정 시간에 생산 설비에서 이용 가능한 하나 이상의 입력 물질들의 입력-물질 재고를 나타내고, 가치 함수는 생산 행동들을 취한 후 생산된 제품들의 이익 및 지연 생산으로 인한 페널티를 나타낸다.
이들 실시예 중 일부에서, 정책 신경망 및 가치 신경망을 훈련시키는 단계는, 정책 신경망 및 가치 신경망에서 생산 설비의 하나 이상의 상태들 중의 특정 상태에 관련된 입력을 수신하는 단계, 정책 신경망을 이용하여 상기 특정 상태에 기초하여 특정 생산 행동을 스케줄링하는 단계, 가치 신경망을 이용하여 상기 특정 생산 행동의 추정된 이익을 결정하는 단계, 및 상기 추정된 이익에 기초하여 정책 신경망 및 가치 신경망을 업데이트하는 단계를 포함할 수 있다. 이들 실시예 중 일부에서, 추정된 이익에 기초하여 정책 신경망 및 가치 신경망을 업데이트하는 단계는, 상기 특정 생산 행동에 대한 실제 이익을 결정하는 단계, 추정된 이익과 실제 이익 사이의 이익 오차를 결정하는 단계, 및 이익 오차에 기초하여 가치 신경망을 업데이트하는 단계를 포함할 수 있다.
이들 실시예 중 일부에서, 정책 신경망을 이용하여 특정 상태에 기초하여 특정 생산 행동을 스케줄링하는 단계는, 정책 신경망을 이용하여 특정 상태에 기초하여 생산 설비에서 스케줄링될 생산 행동들의 확률 분포를 결정하는 단계, 및 생산 행동들의 확률 분포에 기초하여 특정 생산 행동을 결정하는 단계를 포함할 수 있다.
이들 실시예들 중 일부에서, 방법(1700)은 정책 신경망을 이용하여 특정 상태에 기초하여 특정 생산 행동을 스케줄링한 후에, 특정 생산 행동을 수행하기 위해 사용되는 입력 물질들 및 생산 설비에서 수신된 추가적인 입력 물질들을 고려하기 위해 입력-물질 재고를 업데이트하는 단계, 특정 생산 행동에 의해 생산된 제품들을 고려하기 위해 제품 재고를 업데이트하는 단계, 적어도 하나의 제품 요청의 적어도 일부가 업데이트된 제품 재고에 의해 만족되는지 판단하는 단계, 적어도 하나의 제품 요청의 적어도 일부가 만족되는지 판단한 후에 적어도 하나의 제품 요청의 적어도 일부를 만족하도록 하나 이상의 선적 가능한 제품들을 결정하는 단계, 하나 이상의 선적 가능한 제품들의 선적을 고려하기 위해 제품 재고를 다시 업데이트 하는 단계; 및 하나 이상의 선적 가능한 제품들의 선적에 기초하여 하나 이상의 제품 요청들을 업데이트하는 단계에 의해 특정 생산 행동에 기초하여 생산 설비의 모델을 업데이트 하는 단계를 더 포함할 수 있다.
일부 실시예에서, 정책 신경망 및 가치 신경망을 훈련시키는 단계는 하나 이상의 몬테카를로(Monte Carlo) 제품 요청을 생성하기 위해 몬테카를로 기술을 이용하는 단계, 및 하나 이상의 몬테카를로 제품 요청을 만족시키기 위해 생산 설비의 모델에 기초하여 정책 신경망 및 가치 신경망을 훈련시키는 단계를 포함할 수 있다.
일부 실시예들에서, 정책 신경망 및 가치 신경망을 훈련시키는 단계는 생산 설비의 하나 이상의 몬테카를로 상태들을 생성하기 위해 몬테카를로 기술을 이용하는 단계 - 생산 설비의 각각의 몬테카를로 상태는 시간 구간 내의 특정 시간에 생산 설비에서 이용 가능한 하나 이상의 제품 및 하나 이상의 입력 물질의 재고를 나타냄 -, 및 하나 이상의 몬테카를로 상태를 만족시키기 위해 생산 설비의 모델에 기초하여 정책 신경망 및 가치 신경망을 훈련시키는 단계를 포함할 수 있다.
일부 실시예들에서, 정책 함수 및 가치 함수를 나타내도록 신경망을 훈련시키는 단계는 강화학습 기술을 이용하여 정책 함수 및 가치 함수를 나타내도록 신경망을 훈련시키는 단계를 포함할 수 있다.
일부 실시예들에서, 가치 함수는 생산 설비에 의해 생산된 하나 이상의 제품들의 경제적 가치, 생산 설비에서 발생하는 하나 이상의 페널티의 경제적 가치, 생산 설비에 의해 이용되는 입력 물질들의 경제적 가치, 하나 이상의 요청된 제품들의 선적 지연의 표시, 및 하나 이상의 요청된 제품들에 대한 온-타임 제품 이용 가능성의 백분율 중 하나 이상을 나타낼 수 있다.
일부 실시예들에서, 생산 행동들의 스케줄은 생산 설비에서 제품들의 생산을 변경함으로써 발생되는 손실들에 더 관련될 수 있고, 가치 함수는 생산 행동을 취한 후 생산된 제품들의 이익, 생산 지연으로 인한 페널티, 및 생산을 변경함으로써 발생되는 손실들을 나타낸다.
일부 실시예들에서, 생산 행동들의 스케줄은 시간의 계획 구간(planning horizon) 동안의 생산 활동들의 변경 불가능한 계획 구간 스케줄(unchangeable-planning-horizon schedule)을 포함할 수 있고, 여기서 생산 활동들의 변경 불가능한 계획 구간 스케줄은 계획 구간 동안 변경 불가능할 수 있다. 이들 실시예 중 일부에서, 생산 행동들의 스케줄은 일일 스케줄을 포함할 수 있고, 계획 구간은 적어도 7일일 수 있다.
일부 실시예들에서, 하나 이상의 제품들은 하나 이상의 화학 제품들을 포함한다.
도 18의 방법(1800)은 컴퓨터로 구현되는 방법일 수 있다. 방법(1800)은 블록(1810)에서 시작할 수 있으며, 여기서, 컴퓨팅 장치는 생산 설비와 연관된 하나 이상의 제품 요청들을 수신할 수 있고, 각각의 제품 요청은 하나 이상의 요청된 시간들에 생산 설비에서 이용될 수 있는 하나 이상의 제품들 중의 하나 이상의 요청된 제품들을 특정할 수 있다.
블록(1820)에서, 훈련된 정책 신경망 및 훈련된 가치 신경망은 특정 시간 구간에 대한 하나 이상의 제품 요청들을 만족시키는 생산 설비에서의 생산 행동들의 스케줄을 생성하는데 이용될 수 있고, 훈련된 정책 신경망은 생산 설비에서 스케줄링될 생산 행동들을 나타내는 정책 함수와 연관되고, 훈련된 가치 신경망은 생산 행동들에 기초하여 생산 설비에서 생산되는 제품들의 이익을 나타내는 가치 함수와 연관되며, 여기서 생산 행동들의 스케줄은 하나 이상의 요청된 시간들에 기초하여 결정된 하나 이상의 요청된 제품들의 지연된 생산, 및 생산 설비에서의 하나 이상의 제품들의 생산의 변화들로 인한 페널티에 관련된다.
일부 실시예들에서, 정책 함수는 생산 설비의 하나 이상의 상태들을 생산 행동들에 맵핑할 수 있고, 여기서 생산 설비의 하나 이상의 상태들 중의 특정 상태는 특정 시간에 생산 설비에서 이용 가능한 하나 이상의 제품들의 제품 재고, 및 해당 특정 시간에 생산 설비에서 이용 가능한 하나 이상의 입력 물질들의 입력-물질 재고를 나타내고, 가치 함수는 생산 행동들을 취한 후 생산된 제품들의 이익 및 지연 생산으로 인한 페널티를 나타낸다.
이들 실시예 중 일부에서, 훈련된 정책 신경망 및 훈련된 가치 신경망을 이용하는 단계는, 생산 설비의 하나 이상의 상태들 중의 특정 상태를 결정하는 단계, 훈련된 정책 신경망을 이용하여 특정 상태에 기초하여 특정 생산 행동을 스케줄링하는 단계, 및 훈련된 가치 신경망을 이용하여 특정 생산 행동의 추정된 이익을 결정하는 단계를 포함할 수 있다.
이들 실시예 중 일부에서, 훈련된 정책 신경망을 이용하여 특정 상태에 기초하여 특정 생산 행동을 스케줄링하는 단계는, 훈련된 정책 신경망을 이용하여 특정 상태에 기초하여 생산 설비에서 스케줄링될 생산 행동들의 확률 분포를 결정하는 단계, 및 생산 행동들의 확률 분포에 기초하여 특정 생산 행동을 결정하는 단계를 포함할 수 있다.
이들 실시예들 중 일부에서, 방법(1800)은 훈련된 정책 신경망을 이용하여 특정 상태에 기초하여 특정 생산 행동을 스케줄링한 후에, 특정 생산 행동을 수행하기 위해 사용되는 입력 물질들 및 생산 설비에서 수신된 추가적인 입력 물질들을 고려하기 위해 입력-물질 재고를 업데이트하는 단계, 특정 생산 행동에 의해 생산된 제품들을 고려하기 위해 제품 재고를 업데이트하는 단계, 적어도 하나의 제품 요청의 적어도 일부가 업데이트된 제품 재고에 의해 만족되는지 판단하는 단계, 적어도 하나의 제품 요청의 적어도 일부가 만족되는지 판단한 후에 적어도 하나의 제품 요청의 적어도 일부를 만족하도록 하나 이상의 선적 가능한 제품들을 결정하는 단계, 하나 이상의 선적 가능한 제품들의 선적을 고려하기 위해 제품 재고를 다시 업데이트 하는 단계; 및 하나 이상의 선적 가능한 제품들의 선적에 기초하여 하나 이상의 제품 요청들을 업데이트하는 단계를 더 포함할 수 있다.
일부 실시예들에서, 가치 함수는 생산 설비에 의해 생산된 하나 이상의 제품들의 경제적 가치, 생산 설비에서 발생하는 하나 이상의 페널티의 경제적 가치, 생산 설비에 의해 이용되는 입력 물질들의 경제적 가치, 하나 이상의 요청된 제품들의 선적 지연의 표시, 및 하나 이상의 요청된 제품들에 대한 온-타임 제품 이용 가능성의 백분율 중 하나 이상을 나타낼 수 있다.
일부 실시예들에서, 생산 행동들의 스케줄은 생산 설비에서 제품들의 생산을 변경함으로써 발생되는 손실들에 더 관련될 수 있고, 가치 함수는 생산 행동을 취한 후 생산된 제품들의 이익, 생산 지연으로 인한 페널티, 및 생산을 변경함으로써 발생되는 손실들을 나타낸다.
일부 실시예들에서, 생산 행동들의 스케줄은 시간의 계획 구간(planning horizon) 동안의 생산 활동들의 변경 불가능한 계획 구간 스케줄(unchangeable-planning-horizon schedule)을 포함할 수 있고, 여기서 생산 활동들의 변경 불가능한 계획 구간 스케줄은 계획 구간 동안 변경 불가능할 수 있다. 이들 실시예 중 일부에서, 생산 행동들의 스케줄은 일일 스케줄을 포함할 수 있고, 계획 구간은 적어도 7일일 수 있다.
일부 실시예들에서, 하나 이상의 제품들은 하나 이상의 화학 제품들을 포함할 수 있다.
일부 실시예들에서, 방법(1800)은 훈련된 정책 신경망 및 훈련된 가치 신경망을 이용하여 생산 설비에서의 행동들을 스케줄링한 후, 훈련된 신경망들에서, 훈련된 신경망들에 의해 스케줄링된 행동들에 대한 피드백을 수신하는 단계, 및 스케줄링된 행동들에 관련된 피드백에 기초하여 훈련된 신경망들을 업데이트하는 단계를 더 포함할 수 있다.
V. 결론
본 개시는 다양한 양태들의 예시로서 의도되는 본 출원에 기술된 특정 실시예들의 관점에서 제한되지 않는다. 통상의 기술자에게 명백한 바와 같이, 많은 수정 및 변형이 그 범위를 벗어나지 않고 이루어질 수 있다. 본원에 기재된 것 이외에, 본 개시의 범위 내의 기능적으로 균등한 방법들 및 장치들은 전술한 설명들로부터 통상의 기술자에게 명백할 것이다. 이러한 수정 및 변형은 첨부된 청구항들의 범위에 속하는 것으로 의도된다.
위의 상세한 설명은 첨부된 도면들을 참조하여 개시된 시스템들, 장치들, 및 방법들의 다양한 특징들 및 동작들을 설명한다. 본원 및 도면들에서 설명되는 예시적인 실시예들은 제한적인 것으로 의도되지 않는다. 본원에 제시된 청구 대상의 범위를 벗어나지 않고, 다른 실시예들이 이용될 수 있고, 다른 변경들이 이루어질 수 있다. 본원에서 일반적으로 설명되고 도면에 도시된 바와 같은 본 개시의 양태들은 다양한 상이한 구성들로 배열되고, 치환되고, 조합되고, 분리되고, 설계될 수 있음을 쉽게 이해할 것이다.
본원에서 설명되는 바와 같이, 도면들에서의 메시지 흐름도, 시나리오, 및 흐름도 중 임의의 것 또는 전부와 관련하여, 각각의 단계, 블록 및/또는 통신은 예시적인 실시예에 따른 정보의 처리 및/또는 정보의 전송을 나타낼 수 있다. 대안적인 실시예들이 이 예시적인 실시예들의 범위 내에 포함된다. 이러한 대안적인 실시예들에서, 예를 들어, 단계들, 블록들, 전송들, 통신들, 요청들, 응답들, 및/또는 메시지들로서 기술된 동작들은 포함되는 기능에 따라, 실질적으로 동시에 또는 역순을 포함하는, 도시되거나 설명된 순서와 다르게 실행될 수 있다. 또한, 더 많거나 더 적은 블록들 및/또는 동작들이 본원에서 설명된 메시지 흐름도, 시나리오, 및 흐름도 중 임의의 것과 함께 사용될 수 있고, 이러한 메시지 흐름도, 시나리오, 및 흐름도는 부분적으로 또는 전체적으로 서로 조합될 수 있다.
정보의 처리를 나타내는 단계 또는 블록은 본원에 기술된 방법 또는 기술의 특정 논리적 기능들을 수행하도록 구성될 수 있는 회로에 대응할 수 있다. 대안적으로 또는 부가적으로, 정보의 처리를 나타내는 단계 또는 블록은 모듈, 세그먼트, 또는 프로그램 코드의 일부(관련 데이터 포함)에 대응할 수 있다. 프로그램 코드는 방법 또는 기술에서 특정 논리적 행동들 또는 행동들을 구현하기 위한 프로세서에 의해 실행가능한 하나 이상의 명령들을 포함할 수 있다. 프로그램 코드 및/또는 관련 데이터는 RAM, 디스크 드라이브, 솔리드 스테이트 드라이브, 또는 다른 저장 매체를 포함하는 저장 장치와 같은 임의의 유형의 컴퓨터 판독가능 매체에 저장될 수 있다.
컴퓨터 판독가능 매체는 또한, 레지스터 메모리 및 프로세서 캐시와 같은 짧은 시간 동안 데이터를 저장하는 컴퓨터 판독가능 매체와 같은 비-일시적 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 판독가능 매체는 프로그램 코드 및/또는 데이터를 더 긴 시간 동안 저장하는 비-일시적 컴퓨터 판독가능 매체를 더 포함할 수 있다. 따라서, 컴퓨터 판독가능 매체는 예를 들어 ROM, 광학 또는 자기 디스크, 솔리드 스테이트 드라이브, 컴팩트 디스크 읽기 전용 메모리(CD-ROM)와 같은 부수적 또는 지속적인 장기간 저장 장치를 포함할 수 있다. 컴퓨터 판독가능 매체는 또한 임의의 다른 휘발성 또는 비휘발성 저장 시스템일 수 있다. 컴퓨터 판독가능 매체는 예를 들어, 컴퓨터 판독가능 저장 매체, 또는 유형의(tangible) 저장 장치로 간주될 수 있다.
또한, 하나 이상의 정보 전송들을 나타내는 단계 또는 블록은 동일한 물리적 장치 내의 소프트웨어 및/또는 하드웨어 모듈들 사이의 정보 전송들에 대응할 수 있다. 그러나, 다른 정보 전송들이 상이한 물리적 장치들 내의 소프트웨어 모듈들 및/또는 하드웨어 모듈들 사이에 존재할 수 있다.
도면들에 도시된 특정 배열은 제한적인 것으로 여겨져서는 안 된다. 다른 실시예들은 주어진 도면에 도시된 각각의 구성요소를 더 많이 또는 더 적게 포함할 수 있음을 이해해야 한다. 또한, 예시된 구성요소들 중 일부는 조합되거나 생략될 수 있다. 또한, 예시적인 실시예는 도면들에 도시되지 않은 구성요소들을 포함할 수 있다.
다양한 양태들 및 실시예들이 본원에 개시되어 있지만, 다른 양태들 및 실시예들이 통상의 기술자에게 명백할 것이다. 본원에 개시된 다양한 양태들 및 실시예들은 설명을 목적으로 하며, 이하의 청구항들에 의해 지시되는 진정한 범위를 제한하는 것으로 의도되지 않는다.

Claims (33)

  1. 컴퓨터 구현 방법으로서,
    하나 이상의 제품 요청들을 만족시키기 위해 하나 이상의 입력 물질들을 이용하여 생산 설비에서 생산되는 하나 이상의 제품들의 생산에 관련된 생산 설비의 모델을 결정하는 단계 - 각각의 제품 요청은 하나 이상의 요청된 시간들에서 상기 생산 설비에서 이용 가능한 상기 하나 이상의 제품들 중의 하나 이상의 요청된 제품들을 특정함 -;
    상기 생산 설비에 대한 정책 신경망 및 가치 신경망을 결정하는 단계 - 상기 정책 신경망은 상기 생산 설비에서 스케줄링될 생산 행동들을 나타내는 정책 함수와 연관되고, 상기 가치 신경망은 상기 생산 행동들에 기초하여 상기 생산 설비에서 생산되는 제품들의 이익을 나타내는 가치 함수와 연관됨 -; 및
    상기 생산의 상기 모델에 기초하여 특정 시간 구간에 걸쳐 상기 하나 이상의 제품 요청들을 만족시키는 상기 생산 설비에서의 상기 생산 행동들의 스케줄을 생성하기 위해 상기 정책 신경망 및 상기 가치 신경망을 훈련시키는 단계를 포함하고, 상기 생산 행동들의 스케줄은 상기 하나 이상의 요청된 시간들에 기초하여 결정된 상기 하나 이상의 요청된 제품들의 지연 생산으로 인한 페널티와 관련되는, 컴퓨터 구현 방법.
  2. 제1항에 있어서, 상기 정책 함수는 상기 생산 설비의 하나 이상의 상태들을 상기 생산 행동들에 맵핑하고, 상기 생산 설비의 상기 하나 이상의 상태들 중의 특정 상태는 상기 시간 구간 내의 특정 시간에 상기 생산 설비에서 이용 가능한 상기 하나 이상의 제품들의 제품 재고 및 상기 특정 시간에 상기 생산 설비에서 이용 가능한 상기 하나 이상의 입력 물질들의 입력-물질 재고를 나타내며, 상기 가치 함수는 상기 생산 활동들을 취한 후에 생산된 제품들의 이익 및 지연 생산으로 인한 상기 페널티를 나타내는, 컴퓨터 구현 방법.
  3. 제2항에 있어서, 상기 정책 신경망 및 상기 가치 신경망을 훈련시키는 단계는,
    상기 정책 신경망 및 상기 가치 신경망에서 상기 생산 설비의 상기 하나 이상의 상태들의 특정 상태와 관련된 입력을 수신하는 단계;
    상기 정책 신경망을 이용하여 상기 특정 상태에 기초하여 특정 생산 행동을 스케줄링하는 단계;
    상기 가치 신경망을 이용하여 상기 특정 생산 행동의 추정된 이익을 결정하는 단계; 및
    상기 추정된 이익에 기초하여 상기 정책 신경망 및 상기 가치 신경망을 업데이트하는 단계를 포함하는, 컴퓨터 구현 방법.
  4. 제3항에 있어서, 상기 추정된 이익에 기초하여 상기 정책 신경망 및 상기 가치 신경망을 업데이트하는 단계는,
    상기 특정 생산 행동에 대한 실제 이득을 결정하는 단계;
    상기 추정된 이익과 상기 실제 이익 사이의 이익 오차를 결정하는 단계; 및
    상기 이익 오차에 기초하여 상기 가치 신경망을 업데이트하는 단계를 포함하는, 컴퓨터 구현 방법.
  5. 제3항 또는 제4항에 있어서, 상기 정책 신경망을 이용하여 상기 특정 상태에 기초하여 상기 특정 생산 활동을 스케줄링하는 단계는,
    상기 정책 신경망을 이용하여 상기 특정 상태에 기초하여 상기 생산 설비에서 스케줄링될 상기 생산 행동들의 확률 분포를 결정하는 단계; 및
    상기 생산 행동들의 상기 확률 분포에 기초하여 상기 특정 생산 행동을 결정하는 단계를 포함하는, 컴퓨터 구현 방법.
  6. 제3항 내지 제5항 중 어느 한 항에 있어서,
    상기 정책 신경망을 이용하여 상기 특정 상태에 기초하여 상기 특정 생산 행동을 스케줄링한 후에,
    상기 특정 생산 행동을 수행하는데 사용되는 입력 물질들 및 상기 생산 설비에서 수신된 추가적인 입력 물질들을 고려하여 상기 입력-물질 재고를 업데이트하는 단계;
    상기 특정 생산 행동에 의해 생산된 제품을 고려하여 상기 제품 재고를 업데이트하는 단계;
    적어도 하나의 제품 요청의 적어도 일부가 상기 업데이트된 제품 재고에 의해 만족되는지를 판단하는 단계;
    적어도 하나의 제품 요청의 적어도 일부가 만족되는지 판단한 후에,
    적어도 하나의 제품 요청의 적어도 일부를 만족시키기 위해 하나 이상의 선적 가능한 제품들을 결정하는 단계;
    상기 하나 이상의 선적 가능한 제품들의 선적을 고려하여 상기 제품 재고를 다시 업데이트하는 단계; 및
    상기 하나 이상의 선적 가능한 제품들의 상기 선적에 기초하여 상기 하나 이상의 제품 요청들을 업데이트하는 단계에 의해, 상기 특정 생산 행동에 기초하여 상기 생산 설비의 상기 모델을 업데이트하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 정책 신경망 및 상기 가치 신경망을 훈련시키는 단계는,
    몬테카를로 기술을 이용하여 하나 이상의 몬테카를로 제품 요청들을 생성하는 단계; 및
    상기 하나 이상의 몬테카를로 제품 요청들을 만족시키기 위해 상기 생산 설비의 상기 모델에 기초하여 상기 정책 신경망 및 상기 가치 신경망을 훈련시키는 단계를 포함하는, 컴퓨터 구현 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 정책 신경망 및 상기 가치 신경망을 훈련시키는 단계는,
    몬테카를로 기술을 이용하여 상기 생산 설비의 하나 이상의 몬테카를로 상태들을 생성하는 단계 - 상기 생산 설비의 각각의 몬테카를로 상태는 상기 시간 구간 내의 특정 시간에 상기 생산 설비에서 이용 가능한 상기 하나 이상의 제품들 및 상기 하나 이상의 입력 물질들의 재고를 나타냄 -; 및
    상기 하나 이상의 몬테카를로 상태들을 만족시키기 위해 상기 생산 설비의 상기 모델에 기초하여 상기 정책 신경망 및 상기 가치 신경망을 훈련시키는 단계를 포함하는, 컴퓨터 구현 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 정책 함수 및 상기 가치 함수를 나타내도록 상기 신경망을 훈련하는 단계는 강화 학습 기술을 이용하여 상기 정책 함수 및 상기 가치 함수를 나타내도록 상기 신경망을 훈련시키는 단계를 포함하는, 컴퓨터 구현 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서, 상기 가치 함수는 상기 생산 설비에 의해 생산된 하나 이상의 제품들의 경제적 가치, 상기 생산 설비에서 발생하는 하나 이상의 페널티들의 경제적 가치, 상기 생산 설비에 의해 이용되는 입력 물질들의 경제적 가치, 상기 하나 이상의 요청된 제품들의 선적 지연의 표시, 및 상기 하나 이상의 요청된 제품들에 대한 온-타임 제품 이용 가능성의 백분율 중 하나 이상을 나타내는, 컴퓨터 구현 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서, 상기 생산 행동들의 스케줄은 상기 생산 설비에서 제품들의 생산을 변경함으로써 발생하는 손실들에 더 관련되며, 상기 가치 함수는 생산 행동을 취한 후에 생산된 제품들의 이익, 지연 생산으로 인한 상기 페널티, 및 생산을 변경함으로써 발생하는 상기 손실들을 나타내는, 컴퓨터 구현 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서, 상기 생산 행동들의 스케줄은 시간의 계획 구간 동안의 생산 활동들의 변경 불가능한 계획 구간 스케줄을 포함하고, 상기 생산 활동들의 변경 불가능한 계획 구간 스케줄은 상기 계획 구간 동안 변경 불가능한, 컴퓨터 구현 방법.
  13. 제12항에 있어서, 상기 생산 행동들의 스케줄은 일일 스케줄을 포함하고, 상기 계획 구간은 적어도 7일인, 컴퓨터 구현 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서, 상기 하나 이상의 제품들은 하나 이상의 화학 제품들을 포함하는, 컴퓨터 구현 방법.
  15. 컴퓨팅 장치로서,
    하나 이상의 프로세서들; 및
    상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 컴퓨팅 장치로 하여금 제1항 내지 제14항 중 어느 한 항의 컴퓨터 구현 방법을 포함하는 기능들을 수행하게 하는 컴퓨터 실행가능 명령들을 저장하는 데이터 저장장치를 포함하는, 컴퓨팅 장치.
  16. 컴퓨팅 장치의 하나 이상의 프로세서들에 의해 실행될 때, 상기 컴퓨팅 장치로 하여금 제1항 내지 제14항 중 어느 한 항의 컴퓨터 구현 방법을 포함하는 기능들을 수행하게 하는 컴퓨터 판독가능 명령들이 저장된 하나 이상의 컴퓨터 판독가능 매체를 포함하는 제조 물품.
  17. 제16항에 있어서, 상기 하나 이상의 컴퓨터 판독가능 매체는 하나 이상의 비-일시적 컴퓨터 판독가능 매체를 포함하는 제조 물품.
  18. 컴퓨팅 시스템으로서,
    제1항 내지 제14항 중 어느 한 항의 컴퓨터 구현 방법을 수행하기 위한 수단을 포함하는, 컴퓨팅 시스템.
  19. 컴퓨터 구현 방법으로서,
    컴퓨팅 장치에서, 생산 설비와 연관된 하나 이상의 제품 요청들을 수신하는 단계 - 각각의 제품 요청은 하나 이상의 요청된 시간들에서 상기 생산 설비에서 이용될 수 있는 하나 이상의 제품들의 하나 이상의 요청된 제품들을 특정함 -; 및
    훈련된 정책 신경망 및 훈련된 가치 신경망을 이용하여 특정 시간 구간에 걸쳐 상기 하나 이상의 제품 요청들을 만족하는 상기 생산 설비에서의 생산 행동들의 스케줄을 생성하는 단계 - 상기 훈련된 정책 신경망은 상기 생산 설비에서 스케줄링될 생산 행동들을 나타내는 정책 함수와 연관되고, 상기 훈련된 가치 신경망은 상기 생산 행동들에 기초하여 상기 생산 설비에서 생산되는 제품들의 이익을 나타내는 가치 함수와 연관되며, 상기 생산 행동들의 스케줄은 상기 하나 이상의 요청된 시간들에 기초하여 결정된 상기 하나 이상의 요청된 제품들의 지연 생산 및 상기 생산 설비에서의 상기 하나 이상의 제품들의 생산 변경으로 인한 페널티와 연관됨 -를 포함하는, 컴퓨터 구현 방법.
  20. 제19항에 있어서, 상기 정책 함수는 상기 생산 설비의 하나 이상의 상태들을 상기 생산 행동들에 맵핑하고, 상기 생산 설비의 상기 하나 이상의 상태들 중의 특정 상태는 특정 시간에 상기 생산 설비에서 이용 가능한 상기 하나 이상의 제품들의 제품 재고 및 특정 시간에 상기 생산 설비에서 이용 가능한 하나 이상의 입력 물질들의 입력-물질 재고를 나타내며, 상기 가치 함수는 생산 행동들을 취한 후 생산된 제품의 이익 및 지연 생산으로 인한 상기 페널티를 나타내는, 컴퓨터 구현 방법.
  21. 제20항에 있어서, 상기 훈련된 정책 신경망 및 상기 훈련된 가치 신경망을 이용하는 단계는,
    상기 생산 설비의 상기 하나 이상의 상태들 중의 특정 상태를 결정하는 단계;
    상기 훈련된 정책 신경망을 이용하여 상기 특정 상태에 기초하여 특정 생산 행동을 스케줄링하는 단계; 및
    상기 훈련된 가치 신경망을 이용하여 상기 특정 생산 행동의 추정된 이익을 결정하는 단계를 포함하는, 컴퓨터 구현 방법.
  22. 제21항에 있어서, 상기 훈련된 정책 신경망을 이용하여 상기 특정 상태에 기초하여 상기 특정 생산 행동을 스케줄링하는 단계는,
    상기 훈련된 정책 신경망을 이용하여 상기 특정 상태에 기초하여 상기 생산 설비에서 스케줄링될 상기 생산 행동들의 확률 분포를 결정하는 단계; 및
    상기 생산 행동들의 상기 확률 분포에 기초하여 상기 특정 생산 행동을 결정하는 단계를 포함하는, 컴퓨터 구현 방법.
  23. 제21항 또는 제22항에 있어서,
    상기 훈련된 정책 신경망을 이용하여 상기 특정 상태에 기초하여 상기 특정 생산 행동을 스케줄링한 후에,
    상기 특정 생산 행동을 수행하는데 사용되는 입력 물질들 및 상기 생산 설비에서 수신된 추가적인 입력 물질들을 고려하여 상기 입력-물질 재고를 업데이트하는 단계;
    상기 특정 생산 행동에 의해 생산된 제품을 고려하여 상기 제품 재고를 업데이트하는 단계;
    적어도 하나의 제품 요청의 적어도 일부가 상기 업데이트된 제품 재고에 의해 만족되는지를 판단하는 단계;
    적어도 하나의 제품 요청의 적어도 일부가 만족되는지 판단한 후에,
    적어도 하나의 제품 요청의 적어도 일부를 만족시키기 위해 하나 이상의 선적 가능한 제품들을 결정하는 단계;
    상기 하나 이상의 선적 가능한 제품들의 선적을 고려하여 상기 제품 재고를 다시 업데이트하는 단계; 및
    상기 하나 이상의 선적 가능한 제품들의 상기 선적에 기초하여 상기 하나 이상의 제품 요청들을 업데이트하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  24. 제19항 내지 제23항 중 어느 한 항에 있어서, 상기 가치 함수는 상기 생산 설비에 의해 생산된 하나 이상의 제품들의 경제적 가치, 상기 생산 설비에서 발생하는 하나 이상의 페널티들의 경제적 가치, 상기 생산 설비에 의해 이용되는 입력 물질들의 경제적 가치, 상기 하나 이상의 요청된 제품들의 선적 지연의 표시, 및 상기 하나 이상의 요청된 제품들에 대한 온-타임 제품 이용 가능성의 백분율 중 하나 이상을 나타내는, 컴퓨터 구현 방법.
  25. 제19항 내지 제24항 중 어느 한 항에 있어서, 상기 생산 행동들의 스케줄은 상기 생산 설비에서 제품들의 생산을 변경함으로써 발생하는 손실들에 더 관련되며, 상기 가치 함수는 생산 행동을 취한 후에 생산된 제품들의 이익, 지연 생산으로 인한 상기 페널티, 및 생산을 변경함으로써 발생하는 상기 손실들을 나타내는, 컴퓨터 구현 방법.
  26. 제19항 내지 제25항 중 어느 한 항에 있어서, 상기 생산 행동들의 스케줄은 시간의 계획 구간 동안의 생산 활동들의 변경 불가능한 계획 구간 스케줄을 포함하고, 상기 생산 활동들의 변경 불가능한 계획 구간 스케줄은 상기 계획 구간 동안 변경 불가능한, 컴퓨터 구현 방법.
  27. 제26항에 있어서, 상기 생산 행동들의 스케줄은 일일 스케줄을 포함하고, 상기 계획 구간은 적어도 7일인, 컴퓨터 구현 방법.
  28. 제19항 내지 제27항 중 어느 한 항에 있어서, 상기 하나 이상의 제품들은 하나 이상의 화학 제품들을 포함하는, 컴퓨터 구현 방법.
  29. 제19항 내지 제28항 중 어느 한 항에 있어서,
    상기 훈련된 정책 신경망 및 상기 훈련된 가치 신경망을 이용하여 상기 생산 설비에서의 행동들을 스케줄링한 후에, 상기 훈련된 신경망들에서, 상기 훈련된 신경망들에 의해 스케줄링된 행동들에 대한 피드백을 수신하는 단계; 및
    상기 스케줄링된 행동들에 관련된 상기 피드백에 기초하여 상기 훈련된 신경망들을 업데이트하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  30. 컴퓨팅 장치로서,
    하나 이상의 프로세서들; 및
    상기 하나 이상의 프로세서들에 의해 실행될 때, 상기 컴퓨팅 장치로 하여금 제19항 내지 제29항 중 어느 한 항의 컴퓨터 구현 방법을 포함하는 기능들을 수행하게 하는 컴퓨터 실행가능 명령들을 저장하는 데이터 저장장치를 포함하는, 컴퓨팅 장치.
  31. 컴퓨팅 장치의 하나 이상의 프로세서들에 의해 실행될 때, 상기 컴퓨팅 장치로 하여금 제19항 내지 제29항 중 어느 한 항의 컴퓨터 구현 방법을 포함하는 기능들을 수행하게 하는 컴퓨터 판독가능 명령들이 저장된 하나 이상의 컴퓨터 판독가능 매체를 포함하는 제조 물품.
  32. 제31항에 있어서, 상기 하나 이상의 컴퓨터 판독가능 매체는 하나 이상의 비-일시적 컴퓨터 판독가능 매체를 포함하는 제조 물품.
  33. 컴퓨팅 시스템으로서,
    제19항 내지 제29항 중 어느 한 항의 컴퓨터 구현 방법을 수행하기 위한 수단을 포함하는, 컴퓨팅 시스템.
KR1020217015352A 2018-10-26 2019-09-26 생산 스케줄링을 위한 심층 강화 학습 KR20210076132A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862750986P 2018-10-26 2018-10-26
US62/750,986 2018-10-26
PCT/US2019/053315 WO2020086214A1 (en) 2018-10-26 2019-09-26 Deep reinforcement learning for production scheduling

Publications (1)

Publication Number Publication Date
KR20210076132A true KR20210076132A (ko) 2021-06-23

Family

ID=68296645

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217015352A KR20210076132A (ko) 2018-10-26 2019-09-26 생산 스케줄링을 위한 심층 강화 학습

Country Status (13)

Country Link
US (1) US20220027817A1 (ko)
EP (1) EP3871166A1 (ko)
JP (1) JP2022505434A (ko)
KR (1) KR20210076132A (ko)
CN (1) CN113099729B (ko)
AU (1) AU2019364195A1 (ko)
BR (1) BR112021007884A2 (ko)
CA (1) CA3116855A1 (ko)
CL (1) CL2021001033A1 (ko)
CO (1) CO2021006650A2 (ko)
MX (1) MX2021004619A (ko)
SG (1) SG11202104066UA (ko)
WO (1) WO2020086214A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3523760B1 (en) * 2016-11-04 2024-01-24 DeepMind Technologies Limited Reinforcement learning systems
US20200193323A1 (en) * 2018-12-18 2020-06-18 NEC Laboratories Europe GmbH Method and system for hyperparameter and algorithm selection for mixed integer linear programming problems using representation learning
US20210295176A1 (en) * 2020-03-17 2021-09-23 NEC Laboratories Europe GmbH Method and system for generating robust solutions to optimization problems using machine learning
DE102020204351A1 (de) * 2020-04-03 2021-10-07 Robert Bosch Gesellschaft mit beschränkter Haftung Vorrichtung und verfahren zum planen einer mehrzahl von aufträgen für eine vielzahl von maschinen
DE102020208473A1 (de) * 2020-07-07 2022-01-13 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren und Vorrichtung für ein Industriesystem
CN111738627B (zh) * 2020-08-07 2020-11-27 中国空气动力研究与发展中心低速空气动力研究所 一种基于深度强化学习的风洞试验调度方法及系统
CN113327017A (zh) * 2020-11-03 2021-08-31 成金梅 基于人工智能的模型配置方法、系统及大数据中心
CA3207220A1 (en) * 2021-02-04 2022-08-11 Christian S. Brown Constrained optimization and post-processing heuristics for optimal production scheduling for process manufacturing
CN113239639B (zh) * 2021-06-29 2022-08-26 暨南大学 策略信息生成方法、装置、电子装置和存储介质
US20230018946A1 (en) * 2021-06-30 2023-01-19 Fujitsu Limited Multilevel method for production scheduling using optimization solver machines
CN113525462B (zh) * 2021-08-06 2022-06-28 中国科学院自动化研究所 延误情况下的时刻表调整方法、装置和电子设备
CN113835405B (zh) * 2021-11-26 2022-04-12 阿里巴巴(中国)有限公司 用于服装车缝产线平衡决策模型的生成方法、设备及介质
US20230222526A1 (en) * 2022-01-07 2023-07-13 Sap Se Optimization of timeline of events for product-location pairs
US20230334416A1 (en) 2022-04-13 2023-10-19 Tata Consultancy Services Limited Method and system for material replenishment planning
US20240201670A1 (en) * 2022-12-20 2024-06-20 Honeywell International Inc. Apparatuses, computer-implemented methods, and computer program products for closed loop optimal planning and scheduling under uncertainty
CN116679639B (zh) * 2023-05-26 2024-01-05 广州市博煌节能科技有限公司 金属制品生产控制系统的优化方法及系统
CN116993028B (zh) * 2023-09-27 2024-01-23 美云智数科技有限公司 车间排产方法、装置、存储介质及电子设备
CN117541198B (zh) * 2024-01-09 2024-04-30 贵州道坦坦科技股份有限公司 一种综合办公协作管理系统
CN117709830B (zh) * 2024-02-05 2024-04-16 南京迅集科技有限公司 人工智能+物联网技术实现的智能供应链管理系统及方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5280425A (en) * 1990-07-26 1994-01-18 Texas Instruments Incorporated Apparatus and method for production planning
FR2792746B1 (fr) * 1999-04-21 2003-10-17 Ingmar Adlerberg PROCEDE ET AUTOMATISME DE REGULATION D'UNE PRODUCTION INDUSTRIELLE ETAGEE AVEC MAITRISE D'UN STRESS ENCHAINE ALEATOIRE, APPLICATION AU CONTROLE DU BRUIT ET DU RISQUE VaR D'UNE CHAMBRE DE COMPENSATION
US6606527B2 (en) * 2000-03-31 2003-08-12 International Business Machines Corporation Methods and systems for planning operations in manufacturing plants
JP2003084819A (ja) * 2001-09-07 2003-03-19 Technova Kk 生産計画生成方法、生産計画生成装置、コンピュータプログラム、及び記録媒体
US20070070379A1 (en) * 2005-09-29 2007-03-29 Sudhendu Rai Planning print production
JP2009258863A (ja) * 2008-04-14 2009-11-05 Tokai Univ 多品目多段工程動的ロットサイズスケジューリング方法
CN101604418A (zh) * 2009-06-29 2009-12-16 浙江工业大学 基于量子粒子群算法的化工企业智能生产计划控制系统
US8576430B2 (en) * 2010-08-27 2013-11-05 Eastman Kodak Company Job schedule generation using historical decision database
US9047423B2 (en) * 2012-01-12 2015-06-02 International Business Machines Corporation Monte-Carlo planning using contextual information
US9146550B2 (en) * 2012-07-30 2015-09-29 Wisconsin Alumni Research Foundation Computerized system for chemical production scheduling
CN104484751A (zh) * 2014-12-12 2015-04-01 中国科学院自动化研究所 一种生产计划与资源配置动态优化方法及装置
MX2018000942A (es) * 2015-07-24 2018-08-09 Deepmind Tech Ltd Control continuo con aprendizaje de refuerzo profundo.
US20170185943A1 (en) * 2015-12-28 2017-06-29 Sap Se Data analysis for predictive scheduling optimization for product production
DE202016004628U1 (de) * 2016-07-27 2016-09-23 Google Inc. Durchqueren einer Umgebungsstatusstruktur unter Verwendung neuronaler Netze
EP3358431A1 (de) * 2017-02-07 2018-08-08 Primetals Technologies Austria GmbH Ganzheitliche planung von produktions- und/oder wartungsplänen
US10387298B2 (en) * 2017-04-04 2019-08-20 Hailo Technologies Ltd Artificial neural network incorporating emphasis and focus techniques
WO2018220744A1 (ja) * 2017-05-31 2018-12-06 株式会社日立製作所 生産計画作成装置、生産計画作成方法及び生産計画作成プログラム
US20210278825A1 (en) * 2018-08-23 2021-09-09 Siemens Aktiengesellschaft Real-Time Production Scheduling with Deep Reinforcement Learning and Monte Carlo Tree Research

Also Published As

Publication number Publication date
WO2020086214A1 (en) 2020-04-30
AU2019364195A1 (en) 2021-05-27
CL2021001033A1 (es) 2021-10-01
EP3871166A1 (en) 2021-09-01
US20220027817A1 (en) 2022-01-27
CA3116855A1 (en) 2020-04-30
JP2022505434A (ja) 2022-01-14
CO2021006650A2 (es) 2021-08-09
MX2021004619A (es) 2021-07-07
CN113099729A (zh) 2021-07-09
BR112021007884A2 (pt) 2021-08-03
CN113099729B (zh) 2024-05-28
SG11202104066UA (en) 2021-05-28

Similar Documents

Publication Publication Date Title
KR20210076132A (ko) 생산 스케줄링을 위한 심층 강화 학습
JP7426388B2 (ja) 在庫管理および最適化のためのシステムおよび方法
US20210278825A1 (en) Real-Time Production Scheduling with Deep Reinforcement Learning and Monte Carlo Tree Research
Baita et al. A comparison of different solution approaches to the vehicle scheduling problem in a practical case
CN105074664A (zh) 成本最小化的任务调度程序
Camci The travelling maintainer problem: integration of condition-based maintenance with the travelling salesman problem
CN112801430B (zh) 任务下发方法、装置、电子设备及可读存储介质
RU2019118128A (ru) Способ и устройство планирования операций с активами предприятия
Bertolini et al. Comparison of new metaheuristics, for the solution of an integrated jobs-maintenance scheduling problem
Eickemeyer et al. Validation of data fusion as a method for forecasting the regeneration workload for complex capital goods
Atli et al. Fuzzy resource‐constrained project scheduling using taboo search algorithm
Khalilzadeh et al. A modified PSO algorithm for minimizing the total costs of resources in MRCPSP
Bayliss et al. Scheduling airline reserve crew using a probabilistic crew absence and recovery model
Kosztyán et al. Survive IT! Survival analysis of IT project planning approaches
Perez et al. A digital twin framework for online optimization of supply chain business processes
Hogade et al. A survey on machine learning for geo-distributed cloud data center management
JP7288189B2 (ja) ジョブ電力予測プログラム、ジョブ電力予測方法、およびジョブ電力予測装置
Işık et al. Deep learning based electricity demand forecasting to minimize the cost of energy imbalance: A real case application with some fortune 500 companies in Türkiye
Venkataswamy et al. Rare: Renewable energy aware resource management in datacenters
US11843549B1 (en) Automated resource prioritization using artificial intelligence techniques
JP6917288B2 (ja) 保守計画生成システム
US11769145B1 (en) Simulations using a token exchange system
Haddad et al. Design of redistributed manufacturing networks: a model-based decision-making framework
Kumar et al. Probabilistic analysis of performance measures of redundant systems under Weibull failure and repair laws
Villarraga et al. Agent-based modeling and simulation for an order-to-cash process using netlogo