Я новичок в генетических алгоритмах, и мне поручено внедрить генетический алгоритм для оптимизации порядка запросов в будние дни аптеки. Прежде всего, позвольте мне объяснить проблему:Генетический алгоритм: оптимизация запросов
Существует 9 семей, которые высылают заявки на посещение в любой день рабочей недели (с понедельника по пятницу). Аптека может посещать только 1-3 семьи в день, не более того, и они не могут повторять какую-либо семью на той же неделе. Основная цель состоит в том, чтобы оптимизировать лучший день для каждой семьи, которая будет присутствовать, таким образом, аптека посещает максимальные запросы в неделю с ограничениями, налагаемыми на проблему. Ввод алгоритма оптимизации - это среднее значение каждого числа запросов, выданных каждой семьей. Например:
(давайте работать только с 3 семей, для упрощения примера):
Вход:
| Mon | Tue | Среда | Thu | Fri
F1 | | | | | F2 | 20 | 12 | 0 | 1 | 2
F3 | 2 | 0 | 0 | 19 | 3
Возможное решение:
| Пн | Tue | Ср | Thu | Fri
| | F2 | F1 | F3 |
До сих пор я изучал всю концепцию генетики и генетических алгоритмов. Я изучал оптимизацию роялей частиц, но поскольку мое время довольно короткое, я решил использовать фреймворк. Я использую JGAP, но моя главная проблема заключается в том, каким образом я могу представить потенциальное решение?Я имею в виду, как мне организовать гены на хромосоме, используемые для спаривания, разведения и т. Д.? Я уже разработал функцию фитнеса, но я не могу кодировать гены так, как я хотел. Какие-либо предложения?
Из того, что вы описали и приведенного примера, я думаю, что эта проблема представляет собой проблему линейной комбинаторной оптимизации и может быть решена с помощью соответствующих методов, таких как алгоритмы симплекса или ранца (не совсем уверен, какой из них более уместен в данном конкретном случае) , Вам нужно использовать GA или это ваше желание для этого проекта? – posdef
Вы разрабатываете новое расписание каждую неделю или вы заранее планируете расписание на несколько недель? – Alain
С 9 семьями на 5 дней существует не более 5^9, 1 миллион, решений. Это не так много, простая BFS должна сделать трюк. Или не так ли? – Ishtar