Раскрытие информации: Да, это моя домашняя работа.Как найти «Кроссовер» для генетического алгоритма?
У меня проблема: у меня 50 мужчин, 50 женщин и 50 собак. У каждого из них есть список своих фаворитов каждого из других. Например, женщина номер 6 имеет список своих 50 любимых мужчин, отсортированных от наименее любимых до самых любимых, и список ее 50 любимых собак, отсортированных от наименее любимых до самых любимых. У мужчин есть списки для женщин и собак, а у собак есть списки для женщин и мужчин.
Мне нужно найти лучший матч, который я смогу, чтобы женщины, мужчины и собаки были настолько счастливы, насколько это возможно. Мне нужно сделать это с помощью генетических алгоритмов.
Предположим, у меня есть спички A и B (где я сопоставляю все 150 объектов с 50 семьями, поэтому каждая женщина/мужчина/собака появляется только один раз).
Как перекрещиваться с A и B? Каждый кроссовер, о котором я мог думать, приводит меня к следующей проблеме: кто-то появится дважды, а другие не появятся вообще.
Например, если я случайно выбираю X
между 1 и 50 и беру первые X семейств из A и 50-x вторых семейств из B, существует вероятность того, что новый матч будет законным, и все появятся только один раз.
Как подойти к такой проблеме?
Любой подсказку было бы полезно.
Что значит «делать это генетическими алгоритмами»? –