Пользовательский акцептор в OptaPlanner - PullRequest
0 голосов
/ 09 апреля 2020

Я хотел бы реализовать собственный приемник в OptaPlanner, но нигде не смог найти минимального рабочего примера. Кто-нибудь знает, как это сделать?

Документация слишком расплывчата, чтобы решить мою проблему. Я продолжаю получать ForbiddenClassException и не могу решить его даже с @XStreamAlias (как здесь ответили: XStream ForbiddenClassException при использовании пользовательского фуражера с OptaPlanner ). Вероятно, это потому, что я почти ничего не знаю о XStream.

Причина, по которой я хочу это, - попытаться уйти от локальной оптимы. У меня есть два типа планирующих объектов X и Y в виде иерархических отношений: пара значений X-объекта и Y-объекта может вызывать конфликты, а X-объекты используются в нескольких (многих) парах. Из-за этого перемещения на X-сущностях вызывают множество конфликтов после оптимизации значений на Y-сущностях.

Акцептор, который я имею в виду, случайным образом войдет в состояние «сумасшествия», где он будет только принять ходы на X-сущностях и случайным образом go вернуться к нормальному поведению (например, в 10 раз больше шансов выйти, чем войти). Это просто случайная мысль, я бы хотел поэкспериментировать с этим. Я хотел бы использовать это вместе с Поиском Табу (например, принимать только ходы, принятые обоими акцепторами).

Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 09 апреля 2020

Звучит как новая метаэвристика c.

Самый простой способ попробовать это - просто раскрутить OptaPlanner и развернуть AcceptorConfig, чтобы также построить свой Acceptor. Если это хорошо - доказано сравнениями с другими типами акцепторов, по крайней мере, в 3 примерах из optaplanner-examples, по крайней мере, с 5 наборами данных на пример - и если вы хотите поделиться - мы хотели бы добавить его вверх по течению!

Как говорится: изобрести хорошую метаэвристику c - ту, которая действительно проходит испытание на то, чтобы стать лучше на одном из 25 примеров оптапланеров, - нетривиально. Я пытался изобрести свой собственный, несколько раз, и всегда терпел неудачу :) И даже некоторые метаэвристики, опубликованные в научных статьях, не проходят это испытание (по уважительной причине, они неизменно уступают, но относительно легко обойти это в газете).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...