Генетические алгоритмы против имитации отжига для расписаний - PullRequest
4 голосов
/ 29 декабря 2011

Я занимаюсь разработкой приложения для определения времени. Каковы относительные преимущества генетических алгоритмов по сравнению с имитацией отжига?


У меня есть следующие моменты, характерные для моей ситуации:

  1. За один раз мы выделяем максимум (3 учителя X 6 часов) X (3 занятия X 35 часов рабочей недели) за один раз, мы итеративно строим расписание.

  2. Будут невозможные состояния, и любые невозможные расписания должны быть уведомлены без зависания приложения - мы ожидаем, что это приложение будет выдвинуто до его пределов.

  3. Он должен возвращать результаты в постоянное время или сообщать, что произошел сбой.

1 Ответ

6 голосов
/ 30 декабря 2011

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

Во-вторых, вы хотите сказать, что вам нужен "довольно хороший" результат в какое-то постоянное время или что вам нужен алгоритм, равный O (1)? Я не скажу, что это невозможно, но ... я уверен, что это невозможно.

Что касается конкретной точки, то основное различие между GA и SA заключается в том, что SA по сути является алгоритмом восхождения на холм, который ищет «наружу» от последней точки в пространстве решений, в то время как GA являются вероятностными и ищут гиперплоскости в пространстве решений. ,

Вы говорите две вещи, которые заставляют меня думать, что SA лучше подходит для вашей проблемы: "итеративное построение" и "невозможные состояния". Поскольку ГА рекомбинируют «довольно хорошие» решения через гиперплоскости в пространстве решений, они имеют тенденцию «заново открывать» мертвые зоны в пространстве решений. Если вы убеждены в том, что лучшее решение может быть итеративно построено из довольно хорошего решения, вы находитесь на территории для восхождения на гору, и SA может подойти лучше.

Если говорить в общих чертах, то относительное преимущество ГА состоит в том, что они быстро обрабатывают очень большие объемы пространства решений, но полагаются на то, что в этом пространстве решений есть кратко закодированные "хорошие идеи". Относительное преимущество SA состоит в том, что он ищет локальное пространство решений «вокруг» своего исходного решения, которое имеет тенденцию эффективно находить локальные улучшения. Недостатком является то, что SA засевается случайным образом и поэтому неэффективен при исследовании больших пространств решений.

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