OptaPlanner для больших наборов данных

Заказчик попросил меня поработать над проектом с использованием Drools. Глядя на документацию Drools, я думаю, что они говорят о OptaPlanner.

Компания принимает заказы на перевозку от многих клиентов и связывает их с бронированиями у нескольких перевозчиков. Заказы в прошлом году превысили 100 тысяч. «Оптимизация», которая имеет место в настоящее время, основана на обслуживании, распределении и скорости и является линейной (каждый заказ назначается перевозчику с использованием ограничений, но без учета окружающих заказов). Требование состоит в том, чтобы удерживать некритические заказы в пуле в течение нескольких дней и оптимизировать заказы в пуле с наименьшими затратами с использованием тех же ограничений.

Первоначально они хотят выполнить «что, если» над прошлогодними заказами, чтобы уточнить ограничения. Если это упражнение окажется успешным, они захотят использовать его в своей живой системе.

Мой вопрос в том, является ли OptaPlanner правильным инструментом для этой задачи, и если да, то есть ли пример, который я могу использовать для начала.


person Mark Hales    schedule 31.05.2016    source источник


Ответы (1)


Взгляните на видео о маршрутах транспортных средств, поскольку похоже, что у вас возникла проблема с маршрутизацией транспортных средств. .

Если вы используете только Drools для назначения заказов, вы в основном строите эвристику конструирования (= жадный алгоритм). Если вы используете OptaPlanner для назначения заказов (и Drools для расчета качества (= балла) решения), то вы получите лучшее решение. Чтобы понять, почему, см. ложные предположения о маршрутах транспортных средств.

Чтобы масштабировать до 100 тыс. Заказов (= объекты планирования), используйте Выбор поблизости (что хорошо до 10 КБ) и многораздельный поиск (что является знаком слабости но нужно выше 10к).

person Geoffrey De Smet    schedule 01.06.2016
comment
Благодарим Джеффри за отличную работу. Мне интересно, действительно ли масштабирование до 100 КБ является проблемой для Марка. Поскольку его клиент никогда не получит столько заказов одновременно, размер проблемы уменьшается (уже доставленные заказы нельзя оптимизировать). Даже анализ заказов прошлого года нужно проводить с учетом поступления заказов. - person Marco Ancona; 23.06.2016
comment
Хороший момент - размер заказов прошлого года не имеет значения при решении (любое влияние можно рассчитать заранее). Только размер количества заказов для планирования имеет значение. - person Geoffrey De Smet; 24.06.2016