Почему генетический алгоритм дает разные результаты для оптимизации одной целевой функции с одинаковыми параметрами в наборе инструментов MATLAB Optimization?

Привет, я использую набор инструментов оптимизации в Matlab для решения проблемы минимизации. Когда я запускаю решатель, он дает разные результаты для одной задачи с одинаковыми параметрами. Итак, как сделать вывод, какой из ответов является лучшим? Что мне нужно сделать, чтобы решатель выдавал один результат для каждого запуска с одинаковыми параметрами. Спасибо большое


person nirav patel    schedule 27.12.2012    source источник


Ответы (2)


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

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

Тем не менее, ваш вопрос немного озадачивает для начала. Вы спрашиваете: «Какой ответ лучший?» Ну, вы, должно быть, определили критерий пригодности для "убийства" наименее подходящих кандидатов из поколения в поколение, не так ли? Просто вычислите пригодность каждого ответа, чтобы увидеть, какой из них считается более «подходящим». Если оба (или все) ответа одинаково подходят, то, возможно, у вашей проблемы нет единого решения!

person slackwing    schedule 27.12.2012

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

person nirav patel    schedule 22.01.2013
comment
...тогда это уже не генетический алгоритм. У вас должно быть неправильное понимание того, почему вы используете генетический алгоритм. - person slackwing; 11.02.2016