Параллельное решение с несколькими начальными решениями

Я только начал использовать Optaplanner. Обычно в метаэвристике локального поиска обычно начинают с нескольких исходных решений в пространстве поиска и пытаются улучшить их параллельно. Таким образом мы уменьшаем риск попадания в локальный оптимум и выбираем окончательное решение с наилучшими показателями.

Есть ли в Optaplanner похожая функция, где я мог бы, например, начать решать, используя эти 100 исходных решений?

Спасибо,

Антуан


person lambdacalculus    schedule 30.03.2015    source источник


Ответы (1)


Не из коробки, но это тоже тривиально добавить (и я делал это в прошлом). Просто запустите n потоков, используя их собственный Решатель. В конце возьмите раствор из нити с общим лучшим результатом.

Чтобы каждый решатель пробовал что-то свое, либо используйте environmentMode PRODUCTION (который использует случайное randomSeed), либо настройте альтернативные конфигурации решателя (с другими параметрами TS или LA и т. Д.)

Не рекомендуется брать на n больше, чем ваше количество ядер ЦП (или даже половину из них с некоторыми технологиями).

person Geoffrey De Smet    schedule 31.03.2015
comment
Да, именно этим я сейчас и занимаюсь. Я думаю, было бы полезно иметь один решатель, обрабатывающий n начальных решений, причем n, возможно, намного больше, чем CPU #, в одном потоке. Через некоторое время он также может отбросить неперспективные решения и т. Д. В любом случае спасибо за ответ - person lambdacalculus; 31.03.2015
comment
Популяционная метаэвристика (например, генетические алгоритмы, оптимизация роя и т. д.) имеет n решений, но наши эксперименты показывают, что они уступают тому, чтобы просто позволить хорошему локальному поиску (TS или LA) оптимизировать 1 решение ... Несмотря на это, будущая версия OptaPlanner будет поддерживать и эти MH, основанные на населении. - person Geoffrey De Smet; 31.03.2015
comment
@GeoffreyDeSmet, как мы можем создать несколько конфигураций решателя в одном XML и позволить им работать в разных потоках? Вы имеете в виду один XML для одного решателя и один решатель на поток? - person Sachin Verma; 07.10.2017