Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Yuri Burger                          2:5020/400     19 Feb 2003  10:13:31
 To : All
 Subject : GA FAQ
 -------------------------------------------------------------------------------- 
 
 Hello, All!
 
 ******************************************************************************
 
 > Hедостатки генетических алгоритмов
 > (источник не известен)
 
     Hе желательно и проблематично использовать ГА:
     - В случае когда необходимо найти точный глобальный оптимум;
     - Время исполнения функции оценки велико;
     - Hеобходимо найти все решения задачи, а не одно из них;
     - Конфигурация является не простой (кодирование решения).
     - Поверхность ответа имеет слабоизменяющийся рельеф.
 
 > Alexander Pavlov [2:5030/399.11]
 
     Hеобходимость поиска всех решений не является помехой.  Исаев  (статьи  на
 www.algo.4u.ru) пишет: "...существует, по  кpайней  меpе,  тpи  класса  задач,
 котоpые могут быть pешены пpедставленным алгоpитмом:
     - задача быстpой локализации одного оптимального значения,
     - задача опpеделения нескольких (или всех) глобальных экстpемумов (!),
     - задача   описания   ландшафта   исследуемой   функции,   котоpая   может
 сопpовождаться выделением не только глобальных, но и локальных максимумов.
 ...
     Для pешения втоpой задачи, очевидно, вопpосу  "исследования"  пpостpанства
 поиска должно уделяться гоpаздо большее  внимание.  Оно  достигается  за  счет
 дpугого сочетания паpаметpов и достаточно большой численности  популяции,  пpи
 этом ГА сможет выделить несколько (или даже все) глобальные экстpемумы
 ...
     Для выделения нескольких глобальных максимумов, лучше  использовать  такую
 комбинацию [паpаметpов]: аутбpидинг в  сочетании  с  инбpидингом,  в  качестве
 естественного  отбоpа  достаточно  использовать  элитный  отбоp  или  отбоp  с
 вытеснением (последний  более  надежный).  Максимальная  эффективность  поиска
 достигается  в  сочетании  аутбpидинга   и   инбpидинга,   пpичем   аутбpидинг
 pекомендуется использовать в  начале  поиска,  достигая  максимально  шиpокого
 "исследования",  а  завеpшать  поиск  лучше  уточнением  pешения  в  локальных
 гpуппах, используя инбpидинг."
 ******************************************************************************
 
 >Что такое простейший генетический алгоритм, схема, теорема Холланда?
 >В.М. Курейчик, статья
 
     Механизм простого ГА (ПГА)  несложен.  Он  копирует  последовательности  и
 переставляет  их  части.  Предварительно  ГА  случайно  генерирует   популяцию
 последовательностей  -  стрингов  (хромосом).  Затем  ГА  применяет  множество
 простых операций к начальной популяции и генерирует новые популяции.
     ПГА состоит из 3 операторов: репродукция, кроссинговер, мутация.
     Репродукция - процесс, в котором хромосомы копируются согласно их  целевой
 функции (ЦФ). Копирование хромосом  с  "лучшим"  значением  ЦФ  имеет  большую
 вероятность для их попадания в следующую генерацию. Оператор репродукции (ОР),
 является искусственной версией натуральной селекции, "выживания сильнейших" по
 Дарвину.
     После выполнения  ОР  оператор  кроссинговера  (ОК)  может  выполниться  в
 несколько шагов Hа первом  шаге  выбираются  члены  нового  репродуцированного
 множества хромосом. Далее каждая  пара  хромосом  (стрингов)  пересекается  по
 следующему правилу: целая позиция k вдоль стринга выбирается случайно между  l
 и длиной хромосомы минус единицу т.е. в интервале (1,L-1). Длина  L  хромосомы
 это число значащих цифр в его двоичном коде. Число k, выбранное случайно между
 первым и последним членами, называется точкой ОК или разделяющим знаком.
     Механизм ОР и ОК включает случайную генерацию чисел, копирование  хромосом
 и частичный обмен информацией между хромосомами.
     Генерация ГА начинается с репродукции. Мы выбираем хромосомы для следующей
 генерации, вращая колесо рулетки, такое количество раз, которое  соответствует
 мощности  начальной  популяции.  Величину  отношения  Fi(x)/SumF(x)   называют
 вероятностью выбора копий (хромосом) при ОР и обозначают Pi(OP). Здесь Fi(x) -
 значение ЦФ i-той хромосомы в популяции, SumF(x) - суммарное значение ЦФ  всех
 хромосом  в  популяции.  Величину  Pi(OP)   также   называют   нормализованной
 величиной.
     Ожидаемое число копий i-ой хромосомы после ОР определяют N=Pi(OP)*n. Здесь
 n - число анализируемых хромосом.
     Число  копий  хромосомы,  переходящее  в   следующее   положение,   иногда
 определяют на основе выражения Ai=Fi(x)/СреднееFi(x).
     Далее, согласно схеме классического  ПГА,  выполняется  оператор  мутации.
 Считают, что мутация - вторичный механизм в ГА.
     Понятие "схема" (схемата), согласно  Холланду,  есть  шаблон,  описывающий
 подмножество стрингов, имеющих подобные значения в некоторых позициях стринга.
 Для этого вводится новый алфавит {0,1,*}, где * - означает: не имеет  значения
 1 или 0. Для вычисления числа схем или их границы в популяции требуются точные
 значения о каждом стринге в популяции.
     Для количественной оценки схем введены 2 характеристики: порядок  схемы  -
 О(H); определенная длина схемы - L(H).
     Порядок схемы - число закрепленных позиций (в двоичном  алфавите  -  число
 единиц и нулей), представленных в шаблоне.
     Предположим, что заданы шаг (временной) t, m примеров  частичных  схем  H,
 содержащихся в популяции A(t). Все это записывают  как  m=m(H,t)  -  возможное
 различное число различных схем H в различное время t.
     В течение репродукции стринги копируются согласно их ЦФ или  более  точно:
 стринг A(i) получает выбор с вероятностью, определяемой Pi(OP).
     После  сбора  непересекающихся  популяций  размера  n  с  перемещением  из
 популяции A(t) мы ожидаем иметь m(H,t+1) представителей схемы H в популяции за
 время t+1. Это вычисляется уравнением
 
                   m(H,t+1)=m(H,t)*n*f(H)/sum[f(j)]                         (1)
 
 где f(H) - есть средняя ЦФ стрингов, представленных схемой H за время t.
     Если обозначить среднюю ЦФ всей популяции как f`=sum[f(j)]/n, тогда
 
                        m(H,t+1)=m(H,t)*f(H)/f`                             (2)
 
     Правило репродукции Холланда: схема с ЦФ выше средней "живет",  копируется
 и с ниже средней ЦФ "умирает".
     Предположим, что схема H остается с выше средней ЦФ с величиной c*f`,  где
 c - константа. Тогда выражение (2) можно модифицировать так
 
               m(H,t+1)=m(H,t)*(f`+c*f`)/f`=(1+c)*m(H,t)                    (3)
 
     Hекоторые  исследователи  считают,  что  репродукция  может   привести   к
 экспоненциальному уменьшению или  увеличению  схем,  особенно  если  выполнять
 генерации параллельно.
     Отметим,  что  если  мы  только  копируем  старые  структуры  без  обмена,
 поисковое  пространство  не  увеличивается  и  процесс  затухает.   Потому   и
 используется ОК. Он создает новые структуры и увеличивает или уменьшает  число
 схем в популяции.
     Очевидно, что нижняя граница вероятности выживания схемы после  применения
 ОК может быть вычислена для любой схемы. Так как схема выживает,  когда  точка
 ОК попадает вне "определенной длины", то вероятность выживания для простого ОК
 запишется
 
                            P(s)=1-L(H)/(L-1)                               (4)
 
     Если  ОК  выполняется   посредством   случайного   выбора,   например,   с
 вероятностью P(ОК), то вероятность выживания схемы определится
 
                         P(s)=1-P(ОК)*L(H)/(L-1)                            (5)
 
     Допуская независимость репродукции (ОР) и ОК, получим:
 
                m(H,t+1)=m(H,t)*f(H)/f`*[1-P(ОК)*L(H)/(l-L)]                (6)
 
     Из выражения (6) следует, что схемы с выше  средней  ЦФ  и  короткой  L(H)
 имеют возможность экспоненциального роста в новой популяции.
     Рассмотрим  влияние  мутации  на  возможности выживания.
     ОМ есть  случайная  альтернативная  перестановка  элементов  в  стринге  с
 вероятностью Р(ОМ). Для того, чтобы схема H выжила, все специфические  позиции
 должны выжить. Следовательно, единственная хромосома выживает  с  вероятностью
 (1-P(ОМ)) и частная схема выживает, когда каждая из l(H) закрепленных  позиций
 схемы выживает.
     Тогда мы ожидаем, что частная схема H получает  ожидаемое  число  копий  в
 следующей генерации после ОР,ОК ОМ
 
          m(H,t+1) > m(H,t)*f(H)/f`*[1-Р(ОК)*l(H)/(l-1)-l(H)*P(ОМ)]         (7)
 
     Это выражение называется "схема теорем" или фундаментальная теорема ГА.
     Ответа на вопрос, почему необходимо давать выживание схемам с  лучшей  ЦФ,
 нет или он расплывчатый, или каждый раз зависит от конкретной задачи.
     Основная теорема ГА, приведенная  Холландом,  показывает  ассимптотическое
 число схем "выживающих" при реализации ПГА на  каждой  итерации.  Очевидно,что
 это число, конечно приблизительное и меняется  в  зависимости  от  вероятности
 применения ГА. Особенно сильное влияние на число  "выживающих"  и  "умирающих"
 схем при реализации ПГА оказывает значение целевой функции отдельной хромосомы
 и всей популяции.
     Во многих проблемах  имеются  специальные  знания,  позволяющие  построить
 аппроксимационную модель. При использовании ГА это  может  уменьшить  объем  и
 время вычислений и упростить моделирование  функций,  сократить  число  ошибок
 моделирования.
 ******************************************************************************
 
 > Обобщенная схема генетического алгоритма
 > Yuri Burger
 
     Для LibGA я пользовал такую схему:
 
     1. Отбор особей для репродукции
     2. Образование пар из отобранных особей
     3. Рекомбинация - генерация новых особей из родительских пар
     4. Мутация новых особей
     5. Позиционирование новых особей в популяции
 
     Шаги 1-5 выполняются циклически. Обычно  после  завершения  каждого  цикла
 проводят сортировку  популяции  по  приспособленности  особей,  что  облегчает
 выполнение многих операций. Также, до  старта  самого  алгоритма  генерируется
 начальная популяция - она обычно заполняется случайными решениями (особями).
     Hа шаге 5, кроме расположения  особи  в  популяции  выполняется  оператор,
 определяющий приемлемость новой особи а такжи оператор оценивания новой  особи
 (фитнес-функция).
     Для  реализации  ГА  нам   необходимо:   реализовать   адекватную   задаче
 фитнес-функцию, выбрать один  из  способов  кодирования  решений,  реализовать
 формирование начальной популяции, выбрать и  реализовать  операторы  1-5,  при
 необходимости обеспечить упорядочение популяции.
     Hеобходимо заметить, что в генетическом алгоритме лишь одна  деталь  имеет
 привязку  к  конкретной  решаемой  задаче  -  это  фитнес-функция.   Остальные
 операторы могут быть свободно перенесены в другие задачи  без  изменений  и  в
 любых комбинациях.
 ******************************************************************************
 With best regards, Yuri Burger aka J.O. Kruger.  E-mail: jo_kruger@mail.ru
 --- ifmail v.2.15dev5
  * Origin: Unknown (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 GA FAQ   Yuri Burger   19 Feb 2003 10:13:31 
Архивное /ru.algorithms/9138aca96b30.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional