2016-09-13 1 views
0

우리는 작업장 (vrptw)에 의해 제품을 상자로 수집해야하는 창고에서 최단 경로 계산을 위해 Optaplanner 7.0 베타 + Graphhopper를 사용하고 있습니다. 사업은 온라인 주문 상품을 대략 수집하기 때문에 약. 하루 동안 수집 할 항목의 70 %가 문제에 추가됩니다. 우리는 ProblemFactChange를 사용하여 들어오는 주문 항목을 추가하고 체인에서 이미 완료된 주문 항목은 움직이지 않도록 설정됩니다 (이러한 '다시 시작'은 1 시간마다 수행됩니다). 지금까지 모든 것이 작동합니다.Optaplanner - 제약 조건을 변경하여 지속적인 계획을 세우지 않고 사전 할당을 잘못 설정하지 않는 경우

문제는웨어 하우스 영역에 걸친 불균형 워크로드로 인해 발생할 수있는 제한/조건 변경에 관한 것입니다. 웨어 하우스는 논리적으로 영역으로 나뉘어 모든 근로자가 모든 영역에 서비스를 제공하지 못하도록합니다 (계획 문제의 세분화에 대한 귀하의 의견을 알고 있지만 이것이 현재 구성되어있는 방식입니다). 한 영역 내에서 사용 가능한 작업자에게 항목을 제한적으로 할당하는 것은 현재 엄격한 제한에 의해 정의됩니다.

우리가 직면 한 새로운 요구 사항은 작업 부하가 실제 영역보다 높으면 작업자를 다른 영역에 임시 할당해야한다는 것입니다. 이후 그는 원래 영역으로 다시 전환 할 수 있습니다. 필자의 이해를 돕기 위해 제약 조건을 업데이트하면 이전 할당되고 잠긴 항목에 대한 하드 제약 조건 위반이 발생합니다. 일시적으로 변경되는 제한 사항을 지원하는 메커니즘이 있습니까? 아니면 항목에 대한 SelectionFilter가 도움이됩니까? (btw : 우리는 침을 사용하고 있습니다).

힌트는 2 개의 다른 세입자, 자신의 해결사, 할 수있는 다음 대출 패턴 등 직원, 작업, 자신의 세트를 각 각이있는 경우 당신에게 마이클

+1

움직일 수있는 항목이 영향을 미치지 않도록 스코어링을 수정 하시겠습니까? – grudolf

+0

제안 해 주셔서 감사합니다. 한편 우리는 움직일 수없는 실재물을 득점에서 제외하고 그것은 예상대로 일합니다! – MLi

답변

0

감사, 환영합니다 직원 차용에 사람과의 상호 작용 (일반적으로 서류 작업 또는 관리자 간의 전화 통화)이 포함 된 경우 특히 유용합니다.

세입자 A에는 John이라는 직원이 있고 B는 빌려주고 싶어한다고 가정합니다. 그런 다음 B에서 John에게 하나 이상의 엔티티를 할당하고 을 움직일 수 없게 만든다. (일반적으로 boolean borrowLocked). 그런 다음 세입자 A에게 동일한 엔티티를 추가합니다. A와 B의 해석자가 둘 다 이동할 수 없으므로 (변경하지 않으므로) 두 사람 모두 고려합니다. 세입자 A는 다음과 같은 경우에 John을 제공하지 않습니다. 그는 임차인 B를 위해 일하고 있으며 임차인 B는 해당 단체가 배정된다는 것에 동의합니다 (또한 다른 단체에 John을 배정하려고하지 않을 것입니다).

관련 문제