2016-05-31 3 views
1

고객이 Drools를 사용하여 프로젝트 작업을하도록 요청 받았습니다. Drools 설명서를 보면 OptaPlanner에 대해 이야기하고 있다고 생각합니다.대용량 데이터 세트 용 OptaPlanner

이 회사는 많은 고객의 운송 주문을 받아 여러 통신사의 예약에 연결합니다. 작년 주문량이 100,000을 초과했습니다. 현재 수행되는 "최적화"는 서비스, 할당 및 비율을 기반으로하며 선형입니다 (각 주문은 제약 조건을 사용하지만 주변 주문을 고려하지 않고 운송 업체에 할당됩니다). 요구 사항은 며칠 동안 풀의 중요하지 않은 주문을 보관하고 같은 제약 조건을 사용하여 최저 비용으로 풀의 주문을 최적화하는 것입니다.

처음에는 제약 조건을 미세 조정하기 위해 작년의 명령에 대해 "무엇이 있을지"를 실행하려고합니다. 이 연습이 성공적이면 실제 시스템에서 사용하려고합니다.

제 질문은 OptaPlanner가이 작업을위한 올바른 도구인지 아닌지에 대한 질문입니다. 그렇다면 나와 함께 시작하기 위해 사용할 수있는 예제가 있는지 확인하십시오.

답변

1

vehicle routing videos을 살펴보십시오. 차량 배선 문제가있는 것처럼 들리므로

Drools를 사용하여 주문을 할당하는 경우 기본적으로 Construction Heuristic (= 욕심 많은 알고리즘)을 구축합니다. OptaPlanner를 사용하여 주문 (및 솔루션의 품질 (= 점수)을 계산하는 Drools)을 할당하면 더 나은 솔루션을 얻을 수 있습니다. 이유를 이해하려면 false assumptions on vehicle routing을 참조하십시오.

100k 오더 (= 계획 엔티티)로 확장하려면 Nearby Selection (최대 10k까지) 및 파티션 검색 (a sign of weakness이지만 10k 이상 필요)을 사용하십시오.

+0

Geoffrey 대단한 업적을 위해, 100K로 스케일링하는 것이 Mark의 문제에 정말로 문제가되는지 궁금합니다. 고객이 동시에 많은 주문을받지 않으므로 문제의 크기가 줄어 듭니다 (이미 주문한 주문은 더 이상 최적화 할 수 없습니다). 지난 해 주문에 대한 분석조차도 주문이 도착한 시점을 고려하여 수행해야합니다. – Marco

+0

좋은 지적 - 지난 해 주문의 크기는 해결하는 동안 문제가되지 않습니다 (모든 영향을 미리 계산할 수 있음). 계획을 세울 명령 수의 크기 만 있습니다. –

관련 문제