Pravmisl.ru


ГЛАВНАЯ arrow Информатика в образовании arrow Генетические алгоритмы





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

О способе представления данных в генетических алгоритмах

Авторы: Д.А. Донской, Н.В. Слепцов

Генетические алгоритмы (ГА) моделируют эволюционные процессы. Для эволюции существенным является наличие ряда обстоятельств:

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

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

Рассмотрим некоторые аспекты проблемы выбора генетической кодировки.

Двоичное кодирование или представление задачи для ГА традиционно означает, что решение задачи представляется в виде двоичных строк фиксированной длины. Недвоичное кодирование предполагает представление задачи строками фиксированной длины, содержащих аллели из дискретных генов, из которых все или часть не являются двоичными. Таким образом двоичное представление не является подмножеством недвоичного.

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

Объявление:

В пользу двоичного кодирования существуют два основных довода: 1 – количество шаблонов и 2 – охват аллели. Анализ показывает, что эти обстоятельства не обеспечивают безусловного преимущества во всех случаях.

Двоичное представление использует больше шаблонов, чем эквивалентное недвоичное. Например, для представления <4> используется 5 шаблонов (0, 1, 2, 3, #), в то время как представление <2,2> с тем же самым числом строк использует 9 шаблонов (00, 01, 10, 11, 0#, 1#, #0, #1, ##). Поскольку ГА обрабатывает шаблоны, то чем больше шаблонов, тем больше информации имеет ГА и тем лучше он будет функционировать.

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

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

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

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

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

Если проблемы с охватом аллели и существуют, то они проявляют себя в малых популяциях. Для обоснования утверждения, что таких проблем не существует, проведем сравнение двоичной и недвоичной кодировки для моделей ГА с конечными популяциями. Малые популяции (в том числе и меньшие, чем величина характеристики для недвоичного кодирования), не выявили тех проблем для недвоичного кодирования, которые существовали для двоичного.

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

Основным аргументом для применения недвоичного представления является альтернативная интерпретация. С этой точки зрения групповой символ в кодировке шаблона # означает не «без различия», а «0 или 1». Такой подход ничего не меняет для двоичного представления, но для недвоичного вносит радикальные изменения. Рассмотрим триарный ген {0,1,2}. Вместо единственного символа «без разницы» теперь для различных подмножеств будет задано множество «мелкомодульных» символов безразличия: #01- позиция, где в строке могут появиться 0 или 1, #02- соответственно 0 или 2, аналогично #12 и, наконец, вместо традиционного # используется #012.

Для строк длины t и всех генов порядка c* при традиционной интерпретации имеем (c* + l)t шаблонов, альтернативная интерпретация дает (2c* -1)t и простой анализ показывает, что недвоичная кодировка дает для одинакового числа строк существенно больше шаблонов. Данное определяет преимущество недвоичного представления, но мы уже отмечали, что вопросы увеличения числа шаблонов, взятые сами по себе, обходят проблему качества шаблонов.

Альтернативная интерпретация шаблонов подразумевает, что лучшим кодированием задачи в целом является единственный ген, размер которого соответствует пространству поиска. Подобное кодирование превращает ГА в разновидность реализации алгоритма случайного поиска, управляемого мутацией.

Подобная интерпретация шаблонов позволяет проводить их обработку более свободно, но она не оказывает влияния на саму идею ключевых шаблонов, за исключением того, что теперь можно обобщить понятие шаблона до ключевого шаблона. Размер множества ключевых шаблонов при этом остается неизменным. Например, если известны для популяции удельный вес шаблонов 1 и 2, тогда удельный вес #12 составит их сумму. Этот пример распространяется на любые шаблоны с «мелкомодульными» символами безразличия и показывает, что множества ключевых шаблонов, рассмотренные ранее, таковыми остаются для любой интерпретации).

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

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


Новости по теме:
 
< Предыдущая   Следующая >