УДК 658.512
С.Н. Щеглов, А.В. Мухлаев, В.А. Кулинский ИСПОЛЬЗОВАНИЕ МОДИФИЦИРОВАННЫХ ГЕНЕТИЧЕСКИХ ОПЕРАТОРОВ ПРИ РЕШЕНИИ ЗАДАЧИ ТРАССИРОВКИ (ЭТАП РАССЛОЕНИЯ)
Основными генетическими операторами, используемыми при работе генетического алгоритма распределения трассируемых соединений по слоям, являются операторы кроссинговера и мутации. К этому следует добавить, что с целью исследования работы данного алгоритма была реализована возможность подключения таких генетических операторов, как транслокации, сегрегации, инверсии. Вопрос использования этих операторов возник в связи с различными уровнями сложности исследуемых задач [1].
Использование различных комбинаций данных операторов, как показали экспериментальные исследования, позволяет существенно ускорить процесс получения
приемлемого решения.
Пусть заданы исходные данные в виде, схематично изображенном на рис. 1.
Рис. 1
Работа одноточечного оператора кроссинговера осуществляется следующим алгоритмом. Пусть в-длина хромосомы. Р(А), Р(В) - родительские хромосомы.
1° Получить случайным образом число К от 0 до 8.
2° Определить в каком слое находится цепь гена К хромосомы Р(А).
3° Перейти в конец данного слоя. ^
4° Объявить ген конца слоя точкой кроссинговера.
5° Остаток хромосомы Р(В) перенести в хромосому Р(А).
6° Добавить недостающие и удалить дублирующиеся гены.
7° Получить хромосому Потомок I
8° Повторить п. 1-6 для хромосомы Р(В).
9° Полученная хромосома Потомок 2
10° Конец работы.
Отличительной особенностью данного оператора кроссинговера является то, что он осуществляет обмен информацией между «родителями» с сохранением предварительно полученной структуры распределения по слоям соединений.
Рассмотрим пример.
Пусть хромосома 1 и хромосома 2, являющиеся родительскими, представлены следующей структурой:
1324576 75 6 2 43 1.
Согласно исходным данным (рис. 1) распределение соединений по слоям осуществится следующим образом:
Родитель 1 Родитель 2
СлойО: 1 3 СлойО: 5 7
Слой 1:24 5 7 Слой1:624
Слой2: 6 Слой2:3
СлойЗ:1
Случайным образом получим точку кроссинговера. Пусть точка кроссинговера попала на первый ген
1 |3 245 76 7|5 6243 1.
Тогда согласно алгоритму она переносится на второй ген
1 3 | 2 4 5 7 6 75 |6243 1.
После завершения обмена информации между родителями получились следующие хромосомы
Потомок1: 1 3 6 2 4 5 7 Потомок2: 7 5 2 4 1 3 6
Декодирование хромосом дает решение следующего вида Потомок 1 Потомок2
СлойО: 1 3 6 СлойО: 7 5 2 4
Слой 1:245 7 Слой1:136.
Полученные “потомки” имеют значения целевой функции лучше, чем родители-Распределение соединений по слоям осуществлено в двух слоях, тогда как у “родителей” в трех и четырех слоях соответственно.
Операция мутации применяется к одной хромосоме и незначительно преобразует ее путем локальных случайных перемещений. Применение различных операторов мутация вносит существенные изменения в работу алгоритма распределения соединений по слоям, что в свою очередь сказывается на времени получения приемлемого решения задачи • Экспериментальные исследования показали, что удовлетворительные результаты дает применение оператора мутации известного в литературе как «Золотое сечение» [ 2].
Рассмотрим пример.
Пусть хромосома, к которой применяется оператор мутации, имеет вид:
2 13 5 4 7 6.
Распределение соединений по слоям согласно задаче (рис.1) производится следующим образом:
СлойО: 2 Слой1: 1 3 5 47 Слой2: 6.
Применяя к хромосоме оператор мутации получаем:
Р:
П:
Декодирование хромосомы дает следующий результат.
Потомок СлойО: 6 1 3 Слой 1:5472
При разработке алгоритма также были реализованы операторы транслокации (перенос части одной хромосомы на другую, если обнаруживается недостаток одних и избыток других участков хромосом то избыточные заменяются недостающими случайным образом), оператор сегрегации (организован как чисто случайный выбор генов из всей популяции, пока не «соберется» хромосома) и операторы инверсии (двухточечные с инверсией между локальными точками и инверсия частей хромосомы попавшей за локальные точки).
Цель использования этих операторов - предотвращение единообразия во множестве решений. Сознательное ухудшение некоторых решений вносит новую информацию и является механизмом выхода из «локальных» ям.
Попытка реализации искусственного (принудительного) выхода из локальных оптимумов не повлияла на нахождение приемлемого решения и не увеличила время нахождения решения задачи. Реализован выход следующим образом. При обнаружении, что более половины новой популяции состоит из одинаковых решений, (преждевременная Сходимость), происходит уничтожение данной популяции. Новая популяция создается случайным образом и в нее добавляется лучшее решение, полученное в результате работы алгоритма с предыдущей популяцией. Таким образом, в ходе решения задачи происходит накопление информации. Это способствует более гибкому подходу к решению поставленной задачи.
После завершения работы ГО образуется новая популяция, которая в свою очередь может подвергнуться повторной обработке. Следует отметить, что применение генетических операторов не обязательно к каждой хромосоме. При реализации алгоритма предусмотрена возможность переноса лучшего решения в новую популяцию без изменения (принцип элитизма).
Выбор оператора отбора зависит от типа применяемого генетического алгоритма. Для Решения задачи распределения трассируемых соединений по слоям выбирается генетический алгоритм устойчивого состояния, поскольку после применения генетических операторов к Популяции добавляются новые хромосомы (потомки), то оператор отбора должен удалить «лишние» хромосомы, сохраняя размер популяции без изменений.
Оператор отбора состоит из двух этапов. На первом - производится попытка найти Дублирующие хромосомы и удалить «лишние», а на втором, если размер популяции остался больше нормы, делается просмотр в порядке возрастания целевой функции и происходит
удаление с вероятностью -77- текущего решения, где Бр - размер популяции [3].
ор
Важной задачей подготовки к работе генетического алгоритма является создание начальной популяции решений. Начальная популяция может быть построена случайно или же на основе эвристических правил. Поскольку создание популяции на основе эвристических правил ведет к попаданию в локальные оптимумы и снижает разнообразие генетического материала, то выбирается случайная генерация начальной популяции.
Общая схема генетического алгоритма для задачи распределения трассируемых соединений по слоям будет выглядеть следующим образом.
1° Ввод исходных данных (количество цепей, параметры генетического алгоритма).
2° Построение графа пересечений (определяет возможность нахождения цепей в одном слое)
3° Определение структуры хромосомы.
4° Генерация начальной популяции
5° Оценка начальной популяции и объявление ее текущей, установить номер текущей популяции Nt = 1
6° Выбор пары для кроссиновера на основе значения целевой функции.
7° Скрещивание пары и получение потомков.
8° Мутация.
9° Необходимо использовать дополнительные генетические операторы? Если «да», то перейти к п. 10° , в противном к п. 13°
10° Транслокация.
11° Сегрегация.
12° Инверсия.
13° Удаление «лишних» хромосом из популяции.
14° Включение в популяцию потомков и оценка их.
15° Nt = Nt+ 1
16° Если Nt Np (где Np - число генераций), то перейти на 6°
17° Вывести лучшее решение.
18° Конец работы алгоритма.
Представленная схема генетического алгоритма отличается от стандартной наличием операций, учитывающих специфику решаемой задачи. Другим отличием данного алгоритма является методика кодирования и декодирования решений, которая позволяет учитывать налагаемые ограничения.
В заключении хотелось бы отметить, что рассматриваемая методика использования модифицированных генетических операторов позволяет учитывать налагаемые ограничения (расположение пересекающихся соединений в одном слое). Это препятствует возникновению «нелегальных решений». Такой подход позволяет сократить пространство поиска и тем самым дает возможность ускорить процесс получения приемлемого решения.
ЛИТЕРАТУРА
1. Sherwani N.A. Algorithms for VLSI Physical Design Automation. Norwell, Kluwer Academic Publishers, 1995, 538 p.
2. Goldberg D.E. Genetic Algorithms in Search, Optimization, and Machine Learning. Addison-Wesley Publishing Company Inc., Massachusetts, 1989. 412 p.
3. Батищев Д.И. Генетические алгоритмы решения экстремальных задач: Учебное пособие. Воронеж, 1995. 69 с.