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

Секция интеллектуальных систем автоматизированного проектирования

УДК 621.382.82

В.М. Курейчик

ПРИНЦИПЫ КОМБИНАТОРНОГО ПОИСКА НА ОСНОВЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ

Генетические алгоритмы (ГА) - это поисковые алгоритмы, основанные на механизмах натуральной селекции и натуральной генетики. Они реализуют "выживание сильнейших" среди рассмотренных структур, формируя и изменяя поисковый алгоритм на основе моделирования эволюции поиска. В каждой генерации, новое множество искусственных последовательностей создается при использовании части старых и добавлении новых частей с «хорошими свойствами». ГА - это не просто случайный поиск. Они эффективно используют информацию, накопленную в процессе эволюции [1-5].

Простой генетический алгоритм был впервые описан Гольдбергом на основе работ Холланда [1,2]. Механизм простого ГА (ПГА) не сложен. Он копирует последовательности и переставляет их части. Предварительно ГА случайно генерирует популяцию хромосом. Затем ГА применяет множество простых операций к начальной популяции и генерирует новые популяции. ПГА состоит их трех операторов: репродукции, крос-синговера, мутации. Репродукция - процесс, в котором хромосомы копируются согласно их целевой функции (ЦФ). Биологи называют эту функцию fitness . Копирование хромосом с «лучшим» значением ЦФ имеет большую вероятность для их попадания в следующую генерацию. Оператор репродукции (ОР) является искусственной версией натуральной селекции “выживания сильнейших”, по Дарвину. ОР представляется в алгоритмической форме различными способами. Самый простой - создать колесо рулетки, в котором каждая хромосома имеет поле, пропорциональное его ЦФ. В одной генерации колесо рулетки вращается, и после останова ее указатель определяет хромосому, выбранную для следующего оператора. Очевидно, но не всегда выполнимо, что хромосома с большой ЦФ в результате ОР будет выбрана для следующего оператора. ОР выбирает хромосомы для оператора кроссинговера. После выполнения ОР оператор кроссинговера (ОК) может выполниться в 3 шага. На первом шаге члены нового репродуцированного множества хромосом выбираются сначала. Далее каждая пара хромосом (стрингов) пересекается по следующему правилу: целая позиция к вдоль стринга выбирается случайно между / и длиной хромосомы меньше единицы, т.е. в интервале (1,1-1). Длина I хромосомы - это число значащих цифр в его двоичном коде. Следуя традициям генетики, хромосомы 1 и 2 часто называют родителями, а хромосомы Г, 2’ - потомками (дети). Число к, выбранное

случайно между первым и последним членами, называется точкой ОК или разделяющим знаком.

Согласно Холланду [1], ОК в технических системах выполняется в три этапа:

1. Две структуры (хромосомы, стринга) А = а1, а2, а, и В = а[,

а'п, ..., а'/ выбираются случайно из текущей популяции после ОР. Заметим, что этап 1 в некоторых случаях может выполняться и без ОР, непосредственно из начальной популяции.

2. Число к выбирается из {1,2,...,/-1} также случайно. Здесь /- длина хромосомы, к — точка ОК.

3. Две новые хромосомы формируются из А и В, заменяя множество элементов. В результате получим:

А' = а,, а2, ...,ак,а'к+],. ..,а'п В = c/j, а2, • •  ,ак, ок+!,... ,а,.

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

при ОР и обозначают

р,

\ит/

Здесь ft

- суммарное значение ЦФ всех хромосом в популяции. Величину (1) также называют нормализованной величиной. Ожидаемое число копий / хромосомы после ОР определяют так:

N =р,

где И — число анализируемых хромосом.

Число копий хромосомы, переходящее в следующее положение, иногда определяют на основе выражения

Д=4тт-

/

Далее, согласно схеме классического ПГА, выполняется оператор мутации. Из раздела 1 следует, что этот оператор играет существенную

роль в естественной генетике и эволюции. Оператор мутации (ОМ) играет вторичную роль в ПГА. Обычно выбирают одну мутацию на 1000 бит. Считают, что мутация - вторичный механизм в ГА.

Согласно Холланду ОМ состоит из двух этапов:

1. В хромосоме А,, а2, йГ3а,_2 , а;_,, а, определяются случайным

образом две позиции. Например, позиция 2 и позиция / — 1.

2. Гены, соответствующие выбранным позициям, меняются местами и формируется новая хромосома. Например, после ОМА = а|, а,_,, oij 2, ct2 > &/ •

Основная идея в ПГА — объединить две хромосомы с ЦФ выше средней, а именно найти подстринги типа 11— и — 111. (Здесь —

- могут соответствовать любым значениям). Тогда, применяя ОК к данным подстрингам, можно получить хромосому 11111 с наилучшим значением ЦФ.

Понятие "схема" (схемата), согласно Холланду, есть шаблон, описывающий подмножество стрингов, имеющих подобные значения в некоторых позициях стринга [1]. Для этого вводится новый алфавит {0,1,*}, где* означает метки 1 или 0. Для вычисления числа схем или их границ в популяции требуются точные значения о каждом стринге в популяции. Поэтому сначала вычисляют число схем, содержащихся в индивидуальном стринге, а затем находят верхнюю границу общего числа схем в популяции. Тогда популяция размера п будет содержать от 2 до /Г шаблонов (схемат). Схематы короткой определенной длины называют "строительными блоками".

Генетический поиск требует наличия популяции стрингов. Будем

считать, что популяция индивидуальных стрингов Aj j — 1,2,...,/? Aj,

стрингов содержится в популяции A{t) за время (или генерацию) t. Пусть схема Н строится из алфавита V=={0,1,* }. Для количественной оценки схем введены 2 характеристики [1, 2]: порядок схемы - 0{Н)\ определенная длина схемы - 1(H). Порядок схемы - число закрепленных позиций (в двоичном алфавите - число единиц и нулей), представленных в шаблоне.

Предположим, что заданы шаг (временной) /, П1 примеров частичных схем Н, содержащихся в популяции А((). Все это записывают, как m=rn{H,t) - возможное различное число различных схем Н в различное время /.

В течение репродукции стринги копируются согласно их ЦФ или более точно: стринг А(/) получает выбор с вероятностью, определяемой выражением (1).

После сбора непересекающихся популяций размера П с перемещением из популяции А(/) мы ожидаем иметь Ш (H,t+\) представителей схемы Н в популяции за время t-*-l. Это вычисляется уравнением

т

где ДЯ) — есть средняя ЦФ стрингов, представленных схемой Я за время /.

Если обозначить среднюю ЦФ всей популяции как У*=8ит [/" (/)]/«, тогда

т{Н,1+\)=т

Другими словами, частные схемы «растут» как отношение средней ЦФ схемы к средней ЦФ популяции. Схема с ЦФ выше средней в популяции будет получать больше возможности для копирования и наоборот.

Правило репродукции Холланда: схема с ЦФ выше средней

“живет”, копируется и с ниже средней ЦФ “умирает” [1].

Предположим, что схема Н остается с выше средней ЦФ с величиной С4/*, где с — константа. Тогда выражение (5) можно модифицировать так:

т

Некоторые исследователи считают, что репродукция может привести к экспоненциальному уменьшению или увеличению схем, особенно если выполнять генерации параллельно [3, 5].

Лемма Холланда [1]. Если на некотором шаге генерации ГА Р\ есть вероятность того, что хромосома А выдает потомка на этом шаге и Рг есть вероятность того, что А уничтожается в течение этого шага, тогда ожидаемое число потомков хромосомы А есть Р\/Рь

Известно также, что вероятность «выживания» хромосомы А на шаге I после определяется величиной

/>

Величина I изменяется от 1, 2, ... , N.

Отметим, что если мы только копируем старые структуры без обмена, поисковое пространства не увеличивается, и процесс затухает. Потому и используется ОК. Он создает новые структуры и увеличивает или уменьшает число схем в популяции.

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

Р

Если ОК выполняется посредством случайного выбора, например, с вероятностью Р(ОК), то вероятность выживания схемы определится

Р

Очевидно, что выражение (9) уменьшается с Р(ОК) => 1.0. Теперь можно асимптотически учесть эффект репродукции и ОК. Снова определим число частных схем Я, ожидаемых в новой генерации. Допуская независимость репродукции (ОР) и ОК, получим

т

То есть число схем Я в новой генерации зависит от двух факторов: ЦФ схемы выше или ниже ЦФ популяции; схема имеет «длинную» или «короткую» /(Я)(определенную длину). Из выражения (10) следует, что схемы с выше средней ЦФ и короткой /(Я) имеют возможность экспоненциального роста в новой популяции.

Рассмотрим влияние мутации на возможности выживания. Напомним, что ОМ есть случайная альтернативная перестановка элементов в стринге с вероятностью Р(ОМ). Для того, чтобы схема Я выжила, все специфические позиции должны выжить. Следовательно, единственная хромосома выживает с вероятностью (1-Р(ОМ)), а частная схема выживает, когда каждая из /(Я) закрепленных позиций схемы выживает. Умножая вероятность выживания (1-Р(ОМ) на /(Я) раз, получим, что вероятность выживания ОМ (1-Р(ОМ)Р(ОМ). Для малых величин Р(ОМ) (Р(ОМ) « 1) схема вероятности выживания может быть аппроксимирована к выражению [2]:

1 -/

Тогда мы ожидаем, что частная схема Я получает ожидаемое число копий в следующей генерации после ОР,ОК ОМ:

т

Это выражение называется схемой теорем или фундаментальной теоремой ГА [1,2]. Часто встает вопрос, а сколько новых схем в новой генерации нужно, сколько реально, сколько полезно? Холланд считает, что качество схем ( шаблонов ), которое может быть получено из популяции размера «//» с длинной хромосом равной А, лежит между 2' и И  2 . Гольдберг и Холланд считают, что количество «эффективных»

шаблонов составляет ориентировочно величину /Г* [1].

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

Основная теорема ГА, приведенная Холландом, показывает асимптотическое число схем, “выживающих” при реализации ПГА на каж-

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

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

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

ЛИТЕРАТУРА

1. Holland John Н., Adaptation in Natural and Artificial Systems: An Introductory Analysis with Application to Biology, Control, and Artificial Intelligence. University of Michigan , 1975.

2. Goldberd David E. Genetic Algorithms in Search, Optimization and Machine Learning. Addison-Wesley Publishing Company. Inc. 1989, 412p.

3. Handbook of Genetic Algorithms, Edited by Lawrence Davis, Van Nostrand Reinhold, New York, 1991, 385p.

4. Курейчик В.М., Лях А.В. Задачи моделирования эволюции в САПР. Труды международной конференции (CAD-93), РФ - США. М. 1993.

5. Chambers L.D., Practical Handbook of Genetic Algorithms. CRS Press, Boca Ration FL, 1995, v. 1, 560 p., v. 2, 448 p.

УДК 621.382.82

В.Н. Давидсико

МЕТОДИКА КОДИРОВАНИЯ РЕШЕНИЙ ДЛЯ ЗАДАЧИ НАДЪЯЧЕЕЧНОЙ ТРАССИРОВКИ

Трассировка соединений является, как правило, заключительным этапом конструкторского проектирования СБИС. Эта задача является одной из наиболее трудоемких среди задач автоматизированного проектирования СБИС. Развитие технологии изготовления СБИС приводит к возникновению новых возможностей, использование которых позволит увеличить степень интеграции СБИС. Одной из таких возможностей является использование областей над активными элементами для проведения межсоединений. Задачей трассировки надъячеечных областей является перемещение части соединений из области канала в надъячеечные области. При этом удается уменьшить плотность канала и длину соединений в нём.