GetInfo.Ru – Компьютерная библиотека
Последние поступления
Как выбрать систему управления базы данных
Базы данных03/09/14
Этапы загрузки UNIX (в схеме)
Unix27/03/12
Gatewall Antispam: тотальный контроль электронной почты
Спам21/04/11
Мастер-класс: создаем Интернет-магазин (Часть 1)
Обзоры ПО20/04/11
CorelDRAW Graphics Suite X5: Что нового?
Обзоры ПО20/07/10
Добавить статью
Самые читаемые материалы
Мягкие вычисления(48845)
Эволюционные вычисления(34804)
Сортировка и поиск: Рецептурный справочник(32726)
Алгоритмы архивации данных(28223)
Методика создания индексных файлов для осуществления полнотекстового поиска в сети Интернет(20381)
Всего статей: 793Всего авторов: 364Подразделов: 47Добавлено за сутки: 0
Статьи  СТАТЬИ Форум  ФОРУМ Рейтинг  РЕЙТИНГ Поиск  ПОИСК Контакты  КОНТАКТЫ
» Главная » Алгоритмы » Эволюционные вычисления

Эволюционные вычисления


Yuri Burger
jo_kruger@mail.ru

Страницы: [ 1 ] [ 2 ] [ 3 ] [ 4 ]

Двуточечный кроссинговер.
Дэвид Бисслей, статья

В двухточечном кроссинговере (и многоточечном кроссинговере вообще) хромосомы расцениваются как циклы, которые формируются соединением концов линейной хромосомы вместе. Для замены сегмента одного цикла сегментом другого цикла требуется выбор двух точек разреза. В этом представлении, одноточечный кроссинговер может быть рассмотрен как кроссинговер с двумя точками, но с одной точкой разреза, зафиксированной в начале строки. Следовательно, двухточечный кроссинговер решает ту же самую задачу, что и одноточечный кроссинговер , но более полно. Хромосома, рассматриваемая как цикл, может содержать большее количество стандартных блоков, так как они могут совершить "циклический возврат" в конце строки. В настоящий момент многие исследователи соглашаются, что двухточечный кроссинговер вообще лучше, чем одноточечный.

                линейное представление:     УУУУУУУУУУУУ
                                            ------------>

                циклическое представление:->УУУУУУУУУУУУ-¬
                                          L---------------
vitalie vrabie [2:469/303]
Проще (и понятнее) будет сказать что многоточечный кроссинговер эквивалентен последовательному применению одноточечного кроссинговера несколько раз. Тоесть, имея n точек скрещивания: x_i, i=1..n, и хромосомы c1_0, c2_0, строим c1_i и c2_i путём скрещивания c1_(i-1) с c2_(i-1) в точке x_i. Повторять для i от 1 до n. c1_n, c2_n и будет результатом скрещивания c1_0, c2_0 в точках x_i, i=1..n.

Унифицированный (однородный) кроссинговер.
Дэвид Бисслей, статья

Унифицированный кроссинговер принципиально отличается от одноточечного кроссинговера. Каждый ген в потомстве создается посредством копирования соответствующего гена от одного или другого родителя, выбранного согласно случайно сгенерированной маске кроссинговера. Если в маске кроссинговера стоит 1, то ген копируется от первого родителя, если в маске стоит 0, то ген копируется от второго родителя. Процесс повторяется с обмененными родителями для создания второго потомства. Новая маска кроссинговера случайно генерируется для каждой пары родителей.

МУТАЦИЯ
Yuri Burger

Принято считать что репродукция в генетическом алгоритме является основным поисковым механизмом, а мутация позмоляет лишь внести в процесс некоторую случайность, что понижает вероятность застревания алгоритма в локальных решениях. Однако кроме этой метафоры существует множество других. Например, что рекомбинация - это механизм ограниченного перебора, комбинирующий некоторые строительные блоки в поиске новых решений; а мутация - это механизм генерации строительного материала.
Как бы то нибыло, с уверенностью можно сказать лишь одно - опыты показывают необходимость присутствия обоих механизмов в алгоритме. При этом В большенстве экспериментов оператор мутации применяется к потомку с заданной вероятностью, причем величина вероятности выбирается давольно малой - порядка 0,01.
Необходимо также сказать, что в основном все операторы мутации сводятся к инвертированию одного или нескольких ген потомка. Это справедливо только для бинарного кодирования хромосом. В случае других способов кодирования мутация гена требует либо случайного выбора из заданного множества вариантов (случай алфавитного кодирования) либо специальных алгоритмов.

Одноточечная мутация
Yuri Burger

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

Плотность мутации
Yuri Burger

Стратегия мутации с использованием понятия "плотности" заключается в мутировании каждого гена потомка с заданной вероятностью. Таким образом, кроме вероятности применения мутации к самому потомку используется еще вероятность применения мутации к каждому его гену, величину которой выбирают с таким расчетом, чтобы в среднем мутировало от 1 до 10 процентов ген.

Инцест
Yuri Burger

В нескольких своих работах я предложил использовать стратегию инцеста (хотя возможно не я первый её придумал :) как механизм самоадаптации оператора мутации. Она заключается в том, что "плотность мутации" (вероятность мутации каждого гена) определяется для каждого потомка на основании генетической близости его родителей. Например, это может быть отношение числа совпадающих ген родителей к общему числу ген хромосомы. Это приводит к очень интересному эффекту - при высоком разнообразии генофонда пополяции (первые шаги ГА) последствия мутации будут минимальными, что позволяет репродукции работать без стороннего вмешательства. В случае же понижения разнообразия, что возникает в основном при застревании алгоритма в локальном оптимуме, последствия мутации становятся более ощутимыми, а при полном схождении популяции алгоритм просто становится стахостическим, что увеличивает вероятность выхода популяции из локального оптимума. ПОЗИЦИОНИРОВАНИЕ

Фитнес-функция
Yuri Burger

Тут нужно обратить внимание что фитнес-функция это пожалуй наиболее важная (или одна из) деталь ГА. Здесь нужно выделить 3 главных момента:

  1. Функция оценки должны быть адекватна задаче. Это означает, что для успешного поиска необходимо, чтобы распределение значений фитнес-функции совпадало с распределением реального качества решений (не всегда "качество" решения эквивалентно его оценке по фитнесс-функции). Проще говоря, фитнесс функция всегда должна стремиться удовлетворить условие, что для всех решений X выполняется F(X1) Фитнес-функция должна иметь рельеф. Мало того, рельеф должен быть разнообразным. Это означает, что ГА имеет мало шансов на успех, если на поверхности фитнес-функции есть огромные "плоские" участки - это приводит к тому, что многие (или, что хуже, все) решения в популяции при различии в генотипе не будут отличаться фенотипом, тоесть, не смотря на то что решения различаются, они имеют одинаковую оценку, а значит алгоритм не имеет возможности выбрать лучшее решение, выбрать направление дальнейшего развития. Эта проблема еще упоминается как "проблема поля для гольфа", где всё пространство абсолютно одинаково, за исключением лишь одной точки, которая и является оптимальным решением - в этом случае алгоритм просто остановится или будет блуждать абсолютно случайно.
  2. Фитнес-функция должна требовать минимум ресурсов. Т.к. это наиболее часто используемая деталь алгоритма, она имеет существенное влияние на его скорость работы.
РАСПРЕДЕЛЕННЫЙ ГЕНЕТИЧЕСКИЙ АЛГОРИТМ

ГЕНЕТИЧЕСКОЕ ПРОГРАММИРОВАНИЕ

Что такое генетическое программирование?
Yuri Burger

Уж не знаю почему ГА и ГП разделяют на разные области, но я к ним отношусь как к одному и тому же.
Единственное отличие ГП от ГА состоит в том, что каждая особь в популяции теперь кодирует не числовые характеристики, которые обеспечивают задаче оптимальность, а некоторую "программу", которая решает поставленную проблему.
Под словом "программа" здесь не стоит понимать реальную программу на Си, ассемблере и т.д. Чаще всего, такая программа - это всего навсего конфигурация дерева функции, нейронной сети или автомата.
Алгоритм работает по всем законам ГА, лишь при оценке новой особи происходит "исполнение" программы, а затем оценка её деятельности. Например, в задаче автоматического определения функции хромосома кодирует некоторую сложную, часто многопараметрическую функцию. При оценке происходит расчет закодированной функции на тестовой выборке входных значений, после чего, результаты расчетов сравниваются с тестовыми (экспериментальными) значениями искомой функции на представленной выборке, происходит расчет отклонения текущей функции от искомой, которое используется как оценка особи. Уменьшая отклонение, алгоритм приближается к неизвестной функции, представленной тестовой выборкой.
Впринципе, возможно создание и реальной программы на некотором простом языке (вроде ассемблера). Но тогда возникает проблема исполнения такой программы (чтоб не подвисла) и оценки результата.
Пока что я видел такие направления в представлении программ:

  • Деревья поколений - кодируют сложную функцию, представляя её в виде дерева расчета (как при разборе выражений из теории трансляции). Используются при решении задачи автоматического определения функций.
  • Нейронные сети - множество связанных однотипных элементов. Для автоматического определения функций не подходят, но имеют различные специфические применения.
  • УНС - унифицированные нейронные сети (модель и принципы применения предложены мной в дипломной работе). Позволяют представлять любую расчетную многопараметрическую сложную функцию в компактном виде, присущем нейронным сетям. Это позволяет применять их в задачах автоматического определения функций. Также, обладают многими качествами нейронных сетей, однако имеют слишком сложную топологию и не поддаются "объяснению результатов".
  • Автоматы - задают последовательность переходов состояний. Используются как способ представления простых алгоритмов для "роботов". В сочетании с ГА/ГП использовались в игре на предсказание последовательности чисел.

 
16.01.2003
Версия для печати Версия для печати Запомнить ссылку Запомнить ссылку
Ваша оценка:  1   2   3   4   5     

 О проектеПерепечаткаАвторамПартнерыО нас пишут
Наверх
©2003—2007. GETINFO.RU. ВСЕ ПРАВА ЗАЩИЩЕНЫ.