Как избежать недопустимого пространства поиска в генетическом алгоритме? - PullRequest
3 голосов
/ 16 февраля 2010

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

Например, набор (1, 1, -1, 1) эквивалентен (-1, -1, 1, -1). Чтобы сократить мое пространство поиска и более эффективно найти решение, как я могу избежать поиска моих кроссоверов во второй половине пространства поиска?

Ответы [ 3 ]

2 голосов
/ 16 февраля 2010

Разрежьте пространство пополам. Требовать, чтобы первый элемент был неотрицательным, тогда, если у вас есть (x_1, .., x_n) и его обратный (-x_1, .., -x_n), только один будет в пространстве поиска. (если x_1 = 0 они одинаковы) Кстати, какую проблему вы решаете?

1 голос
/ 20 февраля 2010

Это вычислительно дорого, но что-то вроде этого должно сработать. Игнорирование 1-го поколения для каждого поколения> = 2:

Если дети, рожденные с помощью кроссовера / мутации, являются обратными, игнорируйте их и заводите другого ребенка, пока он не станет "хорошим" ребенком.

1 голос
/ 16 февраля 2010

Попытайтесь переписать свою функцию физической подготовки, чтобы соответствующим образом назначать веса отдельным лицам - не уверены в проблеме, которую вы пытаетесь решить, или в том, как можно переназначить вес. Помните, что самые подходящие люди должны быть в пуле и чаще быть выбранными для кроссовера - вам не нужен пул, полный пустышек, которые имеют такую ​​же пригодность, что и хорошие решения, которые наносят ущерб цели генетического алгоритма

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