Лекция 10

Прикладное эволюционное моделирование. Генетический алгоритм. Оценка эффективности генетического алгоритма

  1. Прикладное эволюционное моделирование

Согласованность и эффективность работы элементов биологических организмов наводит на мысль – можно ли использовать принципы биологической эволюции для оптимизации практически важных для человека систем?

В нескольких модификациях подобные идеи возникали у ряда авторов. В 1966 году Л. Фогель, А. Оуэнс, М. Уолш предложили схему эволюции логических автоматов, решающих задачи прогноза [1]. В 1975 г. вышла основополагающая книга Дж. Холланда “Адаптация в естественных и искусственных системах” [2], в которой был предложен генетический алгоритм, исследованный в дальнейшем учениками и коллегами Дж. Холланда в Мичиганском университете. Примерно в это же время группа немецких ученых (И. Рехенберг, Г.-П. Швефель и др.) начала разработку так называемой эволюционной стратегии [3,4]. Эти работы заложили основы прикладного эволюционного моделирования или эволюционных алгоритмов.

В нашей стране исследования по прикладному эволюционному моделированию, идейно близкие к работам Л. Фогеля с сотрудниками, были разносторонне развиты в работах И.Л. Букатовой [5].

В общем виде эволюционный алгоритм – это оптимизационный метод, базирующийся на эволюции популяции “особей”. Каждая особь характеризуется приспособленностью – многомерной функцией ее генов. Задача оптимизации состоит в максимизации функции приспособленности. В процессе эволюции в результате отбора, рекомбинаций и мутаций геномов особей происходит поиск особей с высокими приспособленностями.

Основные эволюционные алгоритмы:

генетический алгоритм, предназначенный для оптимизации функций дискретных переменных и акцентирующий внимание на рекомбинациях геномов;

эволюционное программирование, ориентированное на оптимизацию непрерывных функций без использования рекомбинаций;

эволюционная стратегия, ориентированная на оптимизацию непрерывных функций с использованием рекомбинаций;

генетическое программирование, использующее эволюционный метод для оптимизации компьютерных программ [6].

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

Наибольшее распространение получил генетический алгоритм [2]. На его основе осуществляются: оптимизация профилей балок в строительстве, распределение инструментов в металлообрабатывающих цехах, обработка рентгеновских изображений в медицине, оптимизация работы нефтяных трубопроводов и т.д. [7]. Одна из основных областей применения генетического алгоритма – решение задач комбинаторной оптимизации (например, задача о коммивояжере).

Для иллюстрации принципов работы эволюционных алгоритмов рассмотрим подробнее генетический алгоритм.

2. Генетический алгоритм

Генетический алгоритм (ГА) [2,8,9] – это компьютерная модель эволюции популяции искусственных "особей". Каждый особь характеризуется своей хромосомой Sk, хромосома есть "геном" особи. Хромосома определяет приспособленность особи f(Sk); k = 1,..., n; n – численность популяции. Хромосома есть цепочка символов Sk = (Sk1, Sk2,...,SkN), N – длина цепочки. Символы интерпретируются как "гены" особи, расположенные в хромосоме Sk . Задача алгоритма состоит в максимизации функции приспособленности f(Sk) .

Эволюция состоит из последовательности поколений. Для каждого поколения отбираются особи с большими значениями приспособленностями. Хромосомы отобранных особей рекомбинируются и подвергаются малым мутациям. Формально, схема ГА может быть представлена следующим образом (популяция t-го поколения обозначается как {Sk(t)}):

Шаг 0 . Создать случайную начальную популяцию {Sk(0)}.

Шаг 1. Вычислить приспособленность f(Sk) каждой особи Sk популяции {Sk(t)}.

Шаг 2. Производя отбор особей Sk в соответствии с их приспособленностями f(Sk) и применяя генетические операторы (рекомбинации и точечные мутации) к отобранным особям, сформировать популяцию следующего поколения {Sk(t+1)}.

Шаг 3. Повторить шаги 1,2 для t = 0, 1, 2, ... , до тех пор, пока не выполнится некоторое условие окончания эволюционного поиска (прекращается рост максимальной приспособленности в популяции, число поколений t достигает заданного предела и т.п.).

Имеется ряд конкретных вариантов генетического алгоритма, которые отличаются по схемам отбора, рекомбинаций, по форме представления хромосом и т.д.

Наиболее традиционный вариант генетического алгоритма базируется на следующей конкретной схеме: 1) цепочки символов в хромосомах бинарны (символы Ski принимают значения 0 либо 1), длина цепочек постоянна (N = const), 2) метод отбора пропорционально-вероятностный (см. ниже), 3) рекомбинации производятся по схеме однократного кроссинговера.

Пропорционально-вероятностный отбор означает, что на шаге 2 отбор производится с вероятностями, пропорциональными приспособленностям fk особей ( fk = f(Sk) ) . Эту схему отбора мы уже обсуждали в лекции 2 при описании модели квазивидов. Схему можно представить, как выбор особи с помощью рулетки, относительные площади секторов которой равны qk = fk [S l fl ]-1 ( см. Рис.1 и "прилегающий к нему" текст в  Лекции 2 ).

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

Одноточечный кроссинговер организуется по аналогии с биологической рекомбинацией. А именно, если есть два родителя S1 = (S11, S12,...,S1N) и S2 = (S21, S22,..., S2N), то их потомки есть (S11,..., S1m, S2,m+1,...,S2N) и (S21,..., S2m, S1,m+1,...,S1N); т.е. "голова" и "хвост" хромосомы потомка берутся от разных родителей. Точка кроссинговера выбирается случайным образом, в приведенном примере она располагается между m-м  и  m+1-м  "генами". Аналогичным образом может быть организован двухточечный и "несколько-точечный" кроссинговер. Тип рекомбинации по схеме кроссинговера часто дополняется инверсиями, т.е. изменением порядка следования символов в участках хромосом; это аргументируется, как необходимость подобрать существенные для приспособленности комбинации символов в хромосоме.

Некоторые схемы ГА используют равномерные рекомбинации. Это означает, что два родителя имеют двух потомков, символы хромосомы одного из потомков выбираются случайно от любого (но сохранением порядка следования символов), а второму потомку достаются оставшиеся символы. Например, два потомка родителей S1 = (S11, S12,..., S1N) и S2 = (S21, S22,..., S2N), могут иметь следующие хромосомы (S11, S22, S13, S14,..., S2N) и (S21, S12, S23, S24,..., S1N).

Как метод оптимизации, ГА обладает внутренним параллелизмом (implicit parallelism): разные частные существенные комбинации генов – их часто называют "схематами" (“schemata”) – отыскиваются параллельным образом, одновременно для всех комбинаций. Отметим, что чем меньше комбинация, тем легче она может быть найдена.

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

3. Оценка эффективности генетического алгоритма

Рассмотрим простейший случай традиционного варианта генетического алгоритма, предполагая, что 1) цепочки символов в хромосомах бинарны ( Ski = 0 либо 1), 2) длина цепочек равна N = const, 3) отбор пропорционально-вероятностный, 4) рекомбинации отсутствуют, есть только точечные мутации (случайные равновероятностные замены символов), 5) численность популяции постоянна: n = const.

Тогда алгоритм совпадает полностью со схемой модели квазивидов ( Лекция 2 , Лекция 3). И справедливы оценки скорости эволюции и эффективности эволюционного поиска, полученные в лекции 4 . Воспроизведем здесь основные идеи и результаты этих оценок.

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

Предполагая, что интенсивность отбора достаточно велика, считаем, что основное время эволюции лимитируется мутациями. Причем, если мутации велики, то возможны потери уже найденных особей, а если мутации малы, то это замедляет эволюционный процесс. Разумно выбрать такую интенсивность мутаций, чтобы за одно поколение в среднем менялся один символ в хромосоме. Т.е. вероятность замены каждого символа Pm в процессе мутаций должна быть порядка: Pm ~ N –1 .

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

T ~ (Pm) –1 ~ N .                                                                               (1)

Условие пренебрежения нейтральным отбором есть

T < Tn ~ n ,                                                                                      (2)

где n  –   численность популяции.

Это условие предполагаем выполненным на пределе, т.е. полагаем: T ~ n . Общее число особей, участвующих в эволюции, составляет nобщ = nT . Комбинируя формулы (1), (2), имеем:

nобщ ~ N 2 .                                                                                     (3)

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

С инженерной точки зрения также важно то, что возможна аппаратная реализация многопроцессорных специализированных вычислительных микроэлектронных устройств, эффективно реализующих генетический алгоритм. А именно, каждой "особи" популяции можно поставить в соответствие отдельный процессор. Тогда расчеты приспособленностей можно выполнять параллельным образом, что позволяет ускорить процесс оптимизации. В работе [10] была предложена микроэлектронная схема эволюционного оптимизатора, основанного на использовании векторного логического устройства и оперативной памяти большой емкости. Основные информационные процессы в эволюционном оптимизаторе осуществляются параллельным образом.

Литература:

  1. Фогель Л., Оуэнс А., Уолш М. Искусственный интеллект и эволюционное моделирование. М.: Мир, 1969. 230 с.
  2. Holland, J.H. (1975) “Adaptation in Natural and Artificial Systems”, Ann Arbor, MI: The University of Michigan Press. 2nd edn. (1992) Boston, MA: MIT Press.
  3. Rechenberg, I. (1973, 1993 2nd edn) “Evolutionstrategie: Optimierung technischer Systeme nach Prinzipien der biologischen Evolution”, Stuttgart: Fromman-Holzboog.
  4. Schwefel, H.-P. (1977) “Numerische Optimierung von Computer-Modellen mittels der Evolutionsstrategie”, Basel: Birkhaeuser.
  5. Букатова И.Л. Эволюционное моделирование и его приложения. М.: Наука, 1979. 231 с.
  6. Koza, J.R. (1992), “Genetic Programming: On the Programming of Computers by means of Natural Selection”, Cambridge, MA: MIT Press.
  7. Walbridge C.T. Genetic algorithms: What computers can learn from Darwin // Technol. Rev. 1989. V.92. N.1.P.47-48, 50-53.
  8. Goldberg, D.E. (1989) “Genetic Algorithms in Search, Optimization, and Machine Learning”, Addison-Wesley.
  9. Mitchell, M. An Introduction to Genetic Algorithms. MIT Press, Cambridge, MA (1996).
  10. Редько В.Г., Дябин М.И., Елагин В.М., Карпинский Н.Г., Половянюк А.И., Сереченко В.А., Ургант О.В. К микроэлектронной реализации эволюционного оптимизатора. // Микроэлектроника. 1995, 24, N 3. С.207-210.

Copyright © Vladimir Red'ko,  Nov 2, 1999 ( redko@keldysh.ru )

Last modified: Nov 2, 1999