2015-08-03 4 views
1

Я изучаю GA, и мне хотелось внедрить его, чтобы найти минимум f (x, y) ex. z = sin3x + cos4y Теперь моя проблема заключается в том, как я должен лечить хромосому x и y. Должны ли они быть 2 отдельного населения? Должны ли они быть закодированы в одной и той же хромосоме?Генетический алгоритм для нахождения минимума функции из двух переменных

+0

Привет, приветствуются. Я боюсь, что этот вопрос может быть закрыт, так как он требует определенных знаний домена. Если вы можете упростить вопрос в проблеме программирования, мы можем помочь. –

+0

Если вы еще не пишете какой-либо код, это, вероятно, будет не по теме. Однако по звукам вашего вопроса лучше спросить об этом в Cross Validated SE. Просто проверьте их сначала на http://stats.stackexchange.com/help/, чтобы убедиться, что это по теме. – Calcolat

+0

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

ответ

0

Прежде всего - ваша функция отделима. Это означает, что вы можете оптимизировать каждое измерение (x и y) отдельно - вы исправляете, например. y до 0, и вы фокусируетесь только на x и находите минимум. Затем вы фиксируете x и находите минимум в y. Тогда все готово. Если ваша функция не была разделяемой, вы не могли этого сделать. Простейшим примером несепарабельной функции является f (x, y) = xy.

К материалам GA - это зависит от того, что вы подразумеваете под GA. Если вы действительно имеете в виду классические бинарные строки, эволюционирующие по GA, то это плохой подход в реальной оценке. Гораздо лучший подход заключается в использовании достоверной GA (или EA). В этом генотипе сделаны сами реальные числа, т. Е. Как x, так и y (потому что оба они являются решением, а не только одним из них). Разумеется, вам необходимо использовать различные операторы мутации и кроссовера. Посмотрите на post в своем блоге, где я пишу именно об этом (вы можете спокойно перейти к части «Реальная ценность»).

+0

Что делать, если функция не разделяется? – Christian

+0

@Christian В большинстве случаев. Если он не является разделимым, вы должны одновременно оптимизировать все размеры. Это означает, что и x, и y (и другие, если ваша функция еще более размерна) являются частью одного решения, и вы их эволюционируете. Для вашей функции один человек (генотип/хромосома/...) будет парой чисел, например. (3,1, -7,063). Яснее? – zegkljan

Смежные вопросы