Скачиваний:
32
Добавлен:
02.04.2015
Размер:
107.01 Кб
Скачать

6. Генетические алгоритмы

6.1. Методологическая основа генетических алгоритмов

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

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

В самом общем виде генетический алгоритм можно представить следующим образом.

Пусть Р(t) — поколение особей, т.е. решений-кандидатов, хit в момент времени t Р(t)= (х1t,х2t,..., хпt). В момент времени t=0 инициализируется популяция Р(0). Далее циклически на каждом шаге t вычисляется значение критерия качества для каждого члена популяции P(t), на основе значений критерия качества из P(t) выбирается нужное число родительских особей и помощью генетических операций создается следующее поколение, после чего, с учетом значений критерия качества, особи популяции P(t) заменяются их потомками, и цикл повторяется. Процесс завершается после получения особи (решения) с требуемыми характеристиками.

Конкретные реализации генетических алгоритмов могут отличаться в зависимости от задачи. Какое процентное соотношение особей выживает в следующем поколении? Сколько особей участвует в скрещивании? Как часто и к кому применяются генетические операторы?

Процедуру замены особей популяции P(t) можно реализовать простейшим образом, заменив фиксированное процентное соотношение слабейших кандидатов сильнейшими из полученных на данном шаге потомков. Более сложный подход состоит в упорядочении популяции согласно критерию качества и удалении особей с учетом вероятности, обратно пропорциональной значению критерия качества. Такой алгоритм замены известен под многими именами, в том числе как метод Монте-Карло (Monte-Carlo), правило рулетки (roulette wheel) или алгоритм отбора пропорционально критерию качества (fitness proportionate selection). В этих алгоритмах существует шанс удаления самых «сильных» особей популяции, хотя вероятность их исключения очень низка. Преимущество применения данного подхода в генетических алгоритмах состоит в возможности сохранения некоторых «слабых» особей, которые в дальнейшем могут внести свой вклад в получение более «сильных» потомков.

Кандидатов на решение задачи, т.е. особей популяции, можно описывать с помощью обычных битовых строк, хотя в генетических алгоритмах существуют и более сложные принципы представления особей. Предположим, что необходимо с помощью генетического алгоритма научиться классифицировать строки, состоящие из единиц и нулей. В такой задаче популяцию битовых строк можно описывать с помощью шаблона, состоящего из символов: 1, 0 и #, последний из которых может соответствовать как 1, так и 0. Следовательно, шаблон 1##00##1 представляет все восьмибитовые строки, начинающиеся, заканчивающиеся 1 и содержащие в середине строки два нуля подряд.

При работе генетического алгоритма популяция кандидатов Р(0) некоторым образом инициализируется. Обычно инициализация выполняется с помощью датчика случайных чисел. Для оценки решений-кандидатов вводится критерий качества f(хit), определяющий меру соответствия каждого кандидата в момент времени t. Так при классификации мерой соответствия кандидатов является процентное соотношение правильных ответов на множестве обучающих примеров. При таком критерии качества каждому решению-кандидату соответствует значение: , где т(Р, t) – среднее значение критерия качества для всех членов популяции. Обычно мера соответствия изменяется во времени, поэтому критерий качества может быть функцией от стадии решения всей проблемы или f(хit).

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

Существует множество генетических операторов получения потомства, обладающего свойствами своих родителей. Наиболее типичный из них называется скрещиванием (crossover). При скрещивании два решения-кандидата делятся на несколько частей и обмениваются этими частями, результатом становятся два новых кандидата. Например, пусть входными данными для операции скрещивания являются шаблонов битовых строк длины 8 следующего вида: 11# 0101# и #110#0#1. Эти строки делятся на две равные части, после чего формируются два потомка, содержащих по одному сегменту каждого из родителей, причем правая половина одного родителя соединяется с левой половиной другого родителя. В рассматриваемом примере родители делятся на такие части: 11#0 | 101# и #110 | #0#1, а потомки имеют вид: 11#0#0#1 и #110101# . Заметим, что родители могут разбиваться в любой точке, которую можно выбирать и изменять случайным образом в ходе решения задачи.

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

Мутация (mutation) — это еще один важный генетический оператор. Она состоит в случайном выборе кандидата и случайном изменении некоторых его свойств. Например, мутация может состоять в случайном выборе бита в шаблоне и изменении его значения на 1, 0 или #. Значение мутации состоит в возможном восполнении важных компонентов решения, отсутствующих в исходной популяции. Если в рассмотренном выше примере ни один из членов исходной популяции не содержит 1 в первой позиции, то в процессе скрещивания нельзя получить потомка, обладающего этим свойством. Значение первого бита может измениться лишь вследствие мутации. Этой цели можно также достичь с помощью другого генетического оператора — инверсии (inversion).

Работа генетического алгоритма продолжается до тех пор, пока не будет достигнуто условие его завершения, например, для одного или нескольких кандидатов значение критерия качества не превысит некоторого порога.

6.2. Представление задачи в конъюнктивной нормальной форме

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

Одним из способов описания задачи, является конъюнктивная нормальная форма представления. Описание в конъюнктивной нормальной форме (КНФ) – это представление выражения в виде последовательности операторов, связанных отношением И (&). Каждый из этих операторов должен представлять собой дизъюнктивное выражение, определяемое отношением ИЛИ (v), или литерал. Например, для литералов а, b, с, d, е и f выражение (avc) & (avcve) & (bvcvdve) & (avbvc) & (evf) ("а" это инверсия а) является конъюнктивной нормальной формой. Это выражение представляет собой конъюнкцию пяти операторов, каждый из которых является дизъюнкцией двух или нескольких литералов.

Представимость в конъюнктивной нормальной форме означает существование таких логических значений (1 или 0 либо true и false) для каждого из шести литералов, при которых КНФ-выражение принимает значение true. Несложно проверить, что для доказательства представимости рассмотренного выше выражения в конъюнктивной нормальной форме достаточно присвоить значение false литералам a, b и е. Еще одно решение обеспечивается присвоением литералу е значения false, а сtrue.

Естественным представлением особи в задаче с КНФ-описанием является последовательность из шести битов, каждый из которых представляет значение одного из шести литералов а, b, с, d, е и f. Например, выражение 101010 означает, что литералы а, с и е принимают значение true, a b, d и ffalse. Для такой комбинации значений литералов приведенное выше выражение принимает значение false. В процессе выполнения генетических операторов над особями популяции требуется получить потомка, для которого КНФ-выражение является истинным, т.е. в результате выполнения каждого генетического оператора должна получаться битовая строка, которая может рассматриваться как кандидат на решение задачи. Таким свойством обладают все рассмотренные до сих пор генетические операторы. Например, в результате скрещивания и мутации получаются битовые строки, которые могут стать решением задачи. Обмен (exchange), т.е. перемена мест двух произвольных битов, тоже обеспечивает получение возможного решения. Как видно, данное представление особей в задаче с КНФ-описанием является очень полезным.

Однако выбор критерия качества для популяции битовых строк как потенциальных решений достаточно сложен. Задача считается решенной, если найдена комбинация битов, при которой КНФ-выражение принимает значение true, причем КНФ-выражение представляет собой конъюнкцию пяти операторов, т.е. для получения искомого решения все пять операторов должны иметь значение true. Тогда можно определить рейтинг решения по шкале от 0 до 5 в зависимости от количества операторов, принимающих значение true. Например, следующие особи будут иметь рейтинг: 110010 – рейтинг 1, 010010 – рейтинг 2, 010011 – рейтинг 3, 001011 – рейтинг 5. Последняя особь и является решением. Такой генетический алгоритм обеспечивает разумный подход к решению КНФ-проблемы, причем одним из важнейших свойств этого подхода является неявный параллелизм, обеспечиваемый за счет одновременной обработки целой популяции решений. Этому представлению естественным образом соответствуют генетические операторы.

Более сложным является представление в виде генетического алгоритма «задачи коммивояжера» – классической тестовой задачи для систем искусственного интеллекта, описанной в разделе 1. Одним из способов поиска минимального пути является генерирование и оценка всех возможных перестановок из N элементов в списке городов. Поэтому представление особи и генетические операторы должны обеспечить возможность получения этих перестановок.

Основная сложность состоит в выборе представления для маршрута посещения городов и подборе подходящих генетических операторов. В то же время выбор критерия качества особи в данном случае достаточно прост – это длина пути, т.е. чем короче маршрут, тем лучше.

Возможно несколько представлений маршрута как отдельной особи. Пусть необходимо посетить девять городов 1, 2, ..., 9, тогда путь можно представить упорядоченным списком из девяти целых чисел. Если представить порядковый номер каждого города четырехбитной строкой: 0001,0010,..., 1001, то выражение 0001 0010 0011 0100 0101 0110 0111 1000 1001 представляет последовательность посещения городов по возрастанию их порядковых номеров (пробелы в этом выражении поставлены только для простоты восприятия).

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

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

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

Сначала выбираются две точки сечения, обозначенные символом |, которые случайным образом устанавливаются в одних и тех же позициях каждого из родителей. Например, если для двух родителей p1 и р2 точки сечения располагаются после 3-го и 7-го городов р1=(192|4657|83), р2=(459| 1876|23), то два потомка с1 и с2 получаются следующим образом. Сначала для каждого из потомков копируются фрагменты строк родителей, расположенные между точками сечения. с1=(ххх|4657|хх), с2=(ХХХ| 1876| хх). Затем после второй точки сечения одного из родителей помещаются города, соответствующие другому родителю, с сохранением порядка их следования, при этом уже имеющиеся города пропускаются. При достижении конца строки операция продолжается сначала. Так, последовательность подстановки городов из р2 имеет вид 234591876. Поскольку города 4, 6, 5 и 7 не учитываются, т.к. они уже входят в состав первого потомка, получается укороченный ряд 23918, который и подставляется в cl с сохранением порядка следования этих городов в р2: с1=(239|4657|18). Аналогично получается второй потомок с2=(392|1876|45).

Алгоритм упорядоченного скрещивания гарантирует однократное посещение всех городов, т.к. фрагменты пути передаются от одного родителя р1 потомку cl, при этом порядок посещения городов наследуется и от другого родителя р2. Такой подход основан на интуитивном предположении о том, что порядок обхода городов играет важную роль в поиске кратчайшего пути, поэтому информация о порядке следования сохраняется для потомков.

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

Инвертирование фрагмента маршрута тоже может дать хороший результат. Например, путь с1=(239|4657|18) после инвертирования его средней части примет вид с1=(239|7564|18).

6.3. Проблемы реализации генетических алгоритмов

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

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

«Хороший» способ представления данных во многом определяет эффективность генетического алгоритма. Пусть необходимо из множества цифр выделять цифры 6, 7, 8 и 9. Естественным представлением, обеспечивающим сортировку данных, является обычное целочисленное описание, поскольку среди десяти цифр каждая следующая на 1 больше предыдущей, но при переходе к двоичному описанию эта естественность исчезает. Из битового представления цифр 6,7,8 и 9 (01100111 1000 1001) видно, что 6 и 7, а также 8 и 9 отличаются друг от друга на один бит, но 7 и 8 не имеют между собой ничего общего. Такое представление данных может вызвать большие проблемы при решении задач, требующих систематизации образов. Использование кодов Грея, в которых каждое число отличается от своих соседей ровно на один бит, позволяет сделать переходы между состояниями при реализации генетических операторов более естественными и гладкими.

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

Работу генетического алгоритма можно представить как процесс поиск решения, при котором множество особей (решений-кандидатов) сходится к точкам экстремума в пространстве поиска. На рис.22 горизонтальная ось представляет возможные точки в пространстве решений, а по вертикали показано качество этих решений. Точки на кривой — это члены текущей популяции решений-кандидатов, полученные при работе генетического алгоритма. Изначально решения равномерно распределялись в пространстве поиска. После нескольких итераций они группируются в областях, соответствующих наиболее высокому качеству решения.

а. Исходное пространство поиска б. Пространство поиска после

n поколений

Рис.22 – Генетический алгоритм как параллельный поиск экстремума

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

В Работе Холланда, опубликованной в 1975г., вводится понятие схемы как общего шаблона и строительного блока особи. Схема – это шаблон битовых строк, описываемый символами 1, 0 и #. Например, схема 10##01 представляет семейство шестибитовых строк, начинающихся с фрагмента 10 и завершающихся символами 01. Поскольку центральный фрагмент ## описывает четыре возможные комбинации битов, 00, 01, 10, 11, то вся схема представляет четыре битовые строки, состоящие из 1 и 0. Традиционно считается, что каждая схема описывает гиперплоскость. В этом примере данная гиперплоскость пересекает множество всех возможных шестибитовых представлений. Центральным моментом традиционной теории генетических алгоритмов является утверждение, что подобные схемы являются строительными блоками семейств особей. Генетические операторы скрещивания и мутации оперируют такими схемами в процессе создания новых особей. По Холланду, для повышения производительности в некоторой среде адаптивная система должна идентифицировать, проверить и реализовать некоторые структурные свойства, формализуемые с помощью схем.

Анализ схем Холланда предполагает, что алгоритм выбора по критерию качества сводится к поиску подмножеств в пространстве поиска, наилучшим образом удовлетворяющих данному критерию. Следовательно, эти подмножества описываются схемами, для которых значение критерия качества выше среднего. При выполнении генетических операторов скрещивания строительные блоки с высоким показателем качества складываются вместе и формируют «улучшенные» строки. Мутации позволяют гарантировать, что генетические особенности не будут утеряны в процессе поиска, т.е. эти операторы обеспечивают переход к новым областям поверхности поиска. Таким образом, генетические алгоритмы можно рассматривать как некое обобщение процесса поиска с сохранением важных генетических свойств. Холланд изначально анализировал генетические алгоритмы на битовом уровне. Более современные работы распространяют результаты этого анализа на другие схемы представления.

Существенным отличием генетических алгоритмов от эвристического поиска в пространстве состояний является отсутствие необходимости анализа степени соответствия текущего и целевого состояний. Такая информация учитывается в алгоритмах, требующих оценки «усилий» для перехода из текущего состояния в целевое, а при работе генетических алгоритмов каждое поколение особей оценивается критерием качества. Не требуется и строгая систематизация последующих состояний, как при поиске в пространстве состояний, т.к. генетические операторы на каждом шаге формируют поколение особей, каждая из которых может внести свой вклад в получение новых возможных решений.

Расширение области применения генетических алгоритмов для решения прикладных задач и математического моделирования повышает интерес к осмыслению их теоретических основ, требующих ответа на следующие вопросы:

  • Можно ли охарактеризовать типы задач, для которых генетические алгоритмы работают наиболее эффективно?

  • Для каких типов задач они работают плохо?

  • Что означает высокая и низкая эффективность генетического алгоритма для решения некоторого типа задач?

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

  • Существует ли способ описать результаты таких различных генетических операторов, как скрещивание, мутация, инвертирование и т.д.?

  • При каких условиях (для каких задач и генетических операторов) генетические алгоритмы работают лучше, чем традиционные методы поиска?

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

109

Соседние файлы в папке СИИ пособие