Вернуться в библиотеку |
Первоисточник - http://paklin.newmail.ru/mater/rcga.html |
ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ С ВЕЩЕСТВЕННЫМ КОДИРОВАНИЕМ (REAL-CODED GENETIC ALGORITMS) В материале рассказывается о генетических алгоритмах, в которых хромосома представляется вектором вещественных чисел. Такой вид ГА получил название генетическиго алгоритма с вещественным кодированием (Real-Coded GA). В отличие от классического ГА, в real-coded алгоритме нет необходимости в операциях кодирования/декодирования. Описаны специальные операторы кроссовера и мутации для данного вида алгоритма. Приведены результаты экспериментов. Доступен для скачивания VCL компонент, реализующий класс TRealCodedGeneticAlgorithm и тестовая программа. Вся информация взята из иностранных источников, поскольку в русскоязычной литературе и в Рунете материалов, посвященных Real-Coded GAs, не наблюдается. Обширные сведения из теории ГА с вещественным кодированием можно почерпнуть из [Herrera, 1998]. Идея использовать в виде хромосомы вектор вещественных значений появилась у исследователей в области ГА при решении задач непрерывной оптимизации.Двоичное представление хромосом влечет за собой определенные трудности при выполнении поиска в непрерывных пространствах, которые связаны с большой размерностью пространства поиска. Как известно, для кодирования признака, принимающего действительные значения в некотором диапазоне, в битовую строку, используется специальный прием. Интервал допустимых значений признака xi разбивают на участки с требуемой точностью. Для преобразования целочисленного значения гена из множества в вещественное число из интервала пользуются формулой: , где N - количество разрядов для кодирования битовой строки. Чаще всего используются значения N = 8; 16; 32. При увеличении N пространство поиска расширяется и становится огромным. В иностранных источниках по RGA часто приводится такой пример. Пусть для 100 переменных, изменяющихся в интервале [-500; 500], требуется найти минимум с точностью до шестого знака после запятой. В этом случае при использовании ГА с двоичным кодированием длина строки составит 3000 элементов, а пространство поиска - около 10 в степени 1000. Для решения таких задач в непрерывных пространствах возник новый тип ГА - генетический алгоритм с вещественным кодированием (англ.: Real-coded Genetic Algorithm, RGA) [Herrera, 1998], [Michalewich, 1995], [Wright, 1991]. Основная идея RGA заключается в том, чтобы напрямую представлять гены в виде вещественных чисел, т.е. генотип объекта становится идентичным его фенотипу. Вектор хромосомы состоит из вектора вещественных чисел, и точность найденного решения будет определяться не количеством разрядов для кодирования битовой строки, а будет ограничена возможностями ЭВМ, на которой реализуется вещественный ГА. Применение вещественного кодирования может повысить точность найденных
решений и повысить скорость нахождения глобального минимума или максимума.
Скорость повышается из-за отсутствия процессов кодирования и декодирования
хромосом на каждом шаге алгоритма. Рассмотрим их подробно. Пусть и - две хромосомы, выбранные оператором селекции для проведения кроссовера. 1. Плоский кроссовер (англ.: flat crossover). Создается потомок , где - случайное число их интервала . 2. Арифметический кроссовер (англ.: arithmetical crossover). Создаются два потомка и : , - константа. 3. кроссовер. Генерируется один потомок , где - случайное число из интервала , 4. Линейный кроссовер (англ.: linear crossover). Создаются три потомка, рассчитываемые по формулам: На этапе селекции в линейном кроссовере выбираются две особи с наи-большими приспособленностями. В качестве оператора мутации наибольшее распространение
получили: случайная и неравномерная мутация Михалевича.
где - целое случайное число, принимающее значение 0 или 1; - случайное вещественное число; - максимальное количество эпох алгоритма; b - параметр, задаваемый исследователем. В работе [Herrera, 1998] проведен ряд экспериментов на тестовых функциях с использованием разных типов операторов скрещивания и мутации для ГА с вещественным кодированием (RGA). Например, классической тестовой функцией является N-мерная функция Розенброка, имеющая вид Оптимальные значения переменных при f(X)=0 равны , . Данная функция имеет выраженный овражный характер. Кроме того, полученные результаты сравнивались с результатами работы ГА с двоичным (бинарным) кодированием BGA. В этой работе сделан вывод о том, что в большинстве случаев генетический алгоритм с вещественным кодированием справляется с задачей отыскания оптимума лучше и быстрее, чем с двоичным кодированием. Самым эффективным оператором скрещивания признан кроссовер с . Особенность данного оператора в том, что при скрещивании генов значения потомка могут лежать в некоторой области, выходящей за границы значений этих генов на величину , т.е. В других кроссоверах, например, в плоском или арифметическом, Наши исследования не подтвердили превосходство RGA перед BGA. Эксперимент заключался в следующем: был взят VCL-компонент для Delphi TGeneticAlgorithm, реализующий стандартный бинарный алгоритм Холланда с турнирным методом отбора. Данный компонент распространяется свободно и доступен для скачивания на сайте компании BaseGroup. Далее, этот компонент был модернизирован в RGA-алгоритм TRealCodedGeneticAlgorithm. В нем отсутствуют операции кодирования/декодирования, реализован кроссовер и два вида мутации: равномерная и Михалевича. Остальные строки кода оставлены практически без изменений. На тестовой многоэкстремальной функции Розенброка с увеличением N генетический алгоритм вещественного кодирования RGA начинает проигрывать алгоритму бинарного кодирования BGA. Бинарный алгоритм уверенно находит глобальный экстремум до N<=10. Алгоритм вещественного кодирования при N = 10 застревает в локальных экстремумах. Хотя, надо отдать должное алгоритмы RGA - его вычислительная сложность меньше - время затрачиваемое на одну итерацию в 2.5 раза меньше по спавнению с BGA из-за отсутствия процедур кодирования/декодирования Поэтому нами был сделан вывод о том, что стандартный генетический алгоритм вещественного кодирования, более простой в реализации, существенно уступает стандартному алгоритму бинарного кодирования. Хотя в работе [Herrera, 1998] на многочисленных экспериментах доказывается обратное. Может быть, у Вас будут такие же результаты. Попробуйте! (с) 2004 Паклин Н. ИСПОЛЬЗОВАННЫЕ ИСТОЧНИКИ [Herrera, 1998] Herrera F., Lozano M., Verdegay J.L. Tackling real-coded genetic algorithms: operators and tools for the behaviour analysis // Artificial Intelligence Review, Vol. 12, No. 4, 1998. - P. 265-319. [Michalewich, 1995] Michalewicz Z. Genetic Algorithms, Numerical Optimization and Constraints, Proceedings of the 6th International Conference on Genetic Algorithms, Pittsburgh, July 15-19, 1995. - P. 151-158. Найти статью можно здесь [Wright, 1991] Wright A. Genetic algorithms for real parameter optimization // Foundations of Genetic Algorithms, V. 1. - 1991. - P. 205-218. Найти статью можно здесь |
(c) 2003-2004
by Паклин Н.Б. / При использовании материалов ссылка обязательна
|