Генетические алгоритмы | |||||||||
Deb K., Agrawal S. Understanding Interactions Among Genetic Algorithm Parameters. 1998. |
|||||||||
|
Генетические алгоритмы (ГА) являются стохастическими методами поиска в многомерных пространствах, и их параметры влияют друг на друга сложным образом. В течении двух последних десятилетий исследователи пытались понять принципы взимодействия параметров ГА с использованием различных подходов: осторожная "функциональная" декомпозиция взаимодействия параметров, экспериментальные исследования и анализ с использованием цепей Маркова. Несмотря на то, что какие-то моменты в результате анализа этих взаимодействий становились понятнее, вопрос о том, как выбирать значения параметров ГА (размер популяции, используемые операторы, вероятности операторов и др.) для некоторой задачи, для новичка в области генетических алгоритмов остается открытым. В данной работе мы исследуем с практической точки зрения результаты работы простого трехкомпонентного ГА на нескольких как простых, так и сложных тестовых задачах. Поскольку в реальных задачах общее время работы ГА более или менее превосходит время вычисления целевой функции, мы сравниваем различные ГА при фиксированном количестве оцениваний особей. На основании расчетов и результатов экспериментов, сделано наблюдение, что при решении простых проблем (одноэкстремальных или с малой размерностью) важную роль играет оператор мутации, хотя ГА с кроссовером также способен найти решение для этих задач. Тем не менее эти операторы (когда используются в отдельности) имеют различные рабочие диапазоны размера популяции. В случае сложных многоэкстремальных задач с обманчивостью (deception) оператор кроссовера играет ключевую роль. В результате исследования рекомендуется при неопределенности использовать оператор кроссовера вкупе с адекватным размером популяции, как более надежный подход. Ключевые слова: Выбор размера популяции, многоэкстремальные функции, обманчивые функции, ГА с кроссовером, ГА с мутациями. Скачать статью (pdf, rar, 157 kb) В работе рассматривается взаимодействие трех параметров: размер популяции, вероятность кроссовера и вероятность мутации - и их влияние на работу ГА. Используются запуски с фиксированным количеством вычислений целевой функции. Экспериментальное исследование взаимодействия параметров ГА: Исследование динамики взаимодействия параметров ГА с использованием цепей Маркова: Исследование размера популяции: Исследование изменения значений вероятностей операторов: В результате анализа литературы выделены следующие наблюдения: Выделены факторы, создающие сложность для ГА (Goldberg D.E. Making genetic algorithms fly: A lesson from the Wright brothers. // Advanced Technology for Developers - 1993. - No.2.; Horn J., Goldberg D.E., Deb K. Long path problems. // Parallel Problem Solving from Nature. Vol.3. 1994. - P.149-158): Тестовые функции: Использован ГА с бинарным турнирным отбором, однородным кроссовером и clock-мутацией (Goldberg D.E. Genetic Algorithms in Search, Optimization and Machine Learning. - Addison-Wesley, 1989.) Вводится коэффициент неиспользованности (Unuse Factor), показывающий, сколько вычислений целевой функции осталось после того, как алгоритм нашел решение. По результатам экспериментов сделаны следующие выводы: Хорошая, немаленькая такая статья про ГА и параметры. Большую часть из того, что в ней есть я уже расписал выше. Из интерсных моментов дополнительно хочется отметить, что эксперименты проводились при ограничении на количество вычислений целевой функции, что встречается достаточно редко. Это довольно удивительно, т.к. при таком подходе, если взять достаточно сложную проблему и откладывать по оси Х размер популяции, а по оси У -- полученную ошибку/приспособленность, то четко видно, что и слишком малая, и слишком большая популяции -- это зло. Конечно, не ВЕЛИКОЕ ЗЛО, но лишний раз можно убедиться, что лучше всего соблюдать разумный баланс между количеством особей и временем поиска, и тогда будет и неплохой результат, и приемлимые вычислительные затраты. Не так давно, бороздя просторы Рунета нашел работу, в которой автор в тексте упоминает данную статью, но делает неверный вывод о ее содержании. Лично у меня по прочтении сразу возникла куча вопросов (к примеру, что такое скорость кроссинговера и мутации? Откуда такие выводы, ведь в самой статье сказано другое? Какой алгоритм придумали Деб с Агравалом, для которого нужна большая популяция?) и среди них вопрос о компетентности автора. Это при том, что в списке источников есть статья этого же автора за 2001г. (!), а разбудившая во мне зверя публикация датируется 2004г. Т.е. как минимум 3 года человек занимается ГА (пусть даже и не "плотно") и такое головотяпство! Это при том, что статье явно не хватает ссылок на источники, и неправильно указана не только фамилия автора стратегии изменения размера подпопуляций (что в общем не так критично), но и, собственно, сам автор. В общем, разбушевался я не на шутку. Не то, чтобы разозлился, но просто обидно, ведь человек вроде бы публикуется, в большей или меньшей степени занимается наукой, и ладно бы если только себе во вред. Но ведь статью будут читать и другие люди, в том числе и начинающие, и у них могут появиться ошибки, а если он еще и руководит студентами, то, возможно, и они будут "грешить" подобным образом. И даже черт с ними, со студентами, большинство из них закончит ВУЗ и, дай Бог, не вспомнят о ГА, а те кто останется дальше, думаю, и сами разберутся. Просто эти недостатки вскрывают, по крайней мере, терминологическое дилетантство. Я допускаю, что такое бывает у начинающих (в работах 2-х летней давности и я бывало ерунду писал, чего уж греха таить, отдельные следы этого явления до сих пор можно найти и на этом сайте), но, трудно представить, что такое можно написать после трех лет работы. Хорошо хоть, что есть ссылки также и на иностранные публикации, а сам автор использует несколько функций для тестирования. Заодно, раз уж я так разошелся, хочется попенять на его научного руководителя и людей, принимавших статью на публикацию. Мораль такова, что прежде чем публиковать статью в более-менее массовых журналах и трудах конференций лучше лишний раз ее проверить и вычистить, т.к. таких критиков, как я, хоть ложкой ешь, и нам от обилия таких статей хуже не будет, а вот ваша научная репутация пошатнется и восстанавливать ее, если она вам дорога, будет не так легко. P.S. Я прекрасно понимаю, что имею мало прав, чтобы вот так, в пух и прах, разносить человека, поэтому не привожу ни названия статьи, ни фамилии автора, ни цитат, ни даже сайт где я эту статью откопал. Но статья действительно существует, это не "показательная казнь" и не мистификация. Просто я действительно хочу, чтобы генетические алгоритмы в России развивались, а такие статьи "тянут команду вниз", как выражаются в одной передаче. Поэтому и продолжаю пополнять этот сайт, несмотря на то, что Diablo II мне все-таки интереснее ;-). [1 февраля 2005г.] |
Made by Qai. Copyright © 2005. |