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

ГЕНЕТИЧЕСКИЙ АЛГОРИТМ ТРАССИРОВКИ В.С. Полежаев, Д.В. Пудов Научный руководитель - доцент Н.Ю. Иванова

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

Введение

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

Основные понятия

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

• популяция - случайное множество случайных решений;

• особь популяции - одно из решений множества;

• размер популяции - число решений в множестве;

• число поколений - количество итераций, в течение которых обрабатывается множество (время генетического поиска);

• хромосома - наследственная информация, генотип особи: закодированная структура данных S, определяющая, описывающая решение (строка или стринг кодов);

• ген - элементарный код в структуре S;

• фенотип (фитнес) - оценка решения, позволяющая судить о его качестве (целевая функция);

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

• мутация - генетический оператор генерации нового решения на основе старого путем перестройки кода его структуры или самой структуры.

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

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

Основные отличия ГА от других оптимизационных и поисковых процедур заключаются в следующем.

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

• Решение задачи представляет собой некоторую закодированную структуру, а не набор параметров, что в некоторых случаях позволяет ускорить процесс поиска-оптимизации.

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

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

Существует несколько вариантов ГА. Рассмотрим основные этапы так называемого простого генетического алгоритма.

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

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

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

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

2. Случайный выбор родительских особей.

3. Копирование родительских хромосом для применения генетических операторов.

4. Применение оператора кроссинговера (ОК) с вероятностью Р(ОК).

5. Применение оператора мутации (ОМ) с вероятностью Р(ОМ).

6. Отбор и последующее удаление хромосом из популяции для восстановления первоначального ее размера.

7. Если не прошло заданное число поколений и не выполнилось какое-либо дополнительное условие, то переход к шагу 2.

8. Вывод индивида с наилучшим значением целевой функции.

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

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

точек скрещивания делится на одноточечный, двухточечный и многоточечный. Рассмотрим вариант одноточечного кроссинговера [3].

Допустим, родитель 1 имеет стринг «011011001», а родитель 2 - «101101101»; тогда, выбрав случайным образом точку скрещивания (см. табл.), получим 2 потомка, являющихся совершенно новыми решениями.

Точка скрещивания->

Родитель1 Родитель2 0 110 11 10 110 1 0 0 1 1 0 1

Потомок1 Потомок2 0 110 11 10 110 1 1 0 1 0 0 1

Таблица. Пример одноточечного кроссинговера

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

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

• точечные;

• хромосомные аберрации, или перестройки;

• инсерции;

• полиплоидизацию.

Примером точечной мутации является замена одного из генов хромосомы «011100» на противоположный: «011000» [3].

Волновая процедура и работа программы

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

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

Рк = Рк - 1 + ф(/1, / 2,..../я), где Рк и Рк-1 - веса к-го и (к-1)-го фронтов; ф(/1,/2,.../)- весовая функция, являющаяся показателем качества проведения пути, каждый параметр которой /1(1 = 1,2,....,g) характеризует путь с точки зрения одного или нескольких критериев качества (длины пути, числа пересечений и т.п.). На Рк накладывают одно ограничение - веса ячеек предыдущих фронтов не должны быть больше весов ячеек последующих фронтов. Фронт распространяется только на соседние ячейки, которые имеют с ячейками предыдущего фронта общую сторону. Процесс распространения волны (см. рис.) продолжается до тех пор, пока ее расширяющийся фронт не достигнет приемника или на 0-ом шаге не найдется ни одной свободной ячейки, которая могла бы быть включена в очередной фронт, что соответствует случаю невозможности проведения трассы при заданных ограничениях.

10 11 10 9 9 7 9 9 10 11

9 В 9 10 б 7 9 9 10

8 8 9 5 6 7 8 9

7 6 7 8 4 5 6 7 8

5 6  2 3 4  6 7

5 4 2 1 2 S 6

4 3 2 1 А 1 2 3 4 6

5 4 3 2 1 2 3 4 5 6

6 5 4 3 2 3 4 5 6 7

Рис. Пример распространенной волны

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

Описание программы

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

Исходные данные. Задается массив, содержащий множество выводов компонентов в дискретном монтажном пространстве, а также массив, содержащий множество связей, соединяющих эти выводы между собой. Происходит создание матрицы смежности.

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

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

Данная программа является моделью для изучения работы генетического алгоритма и волновой процедуры. Она также может помочь в учебном процессе для подготовки к работе со специализированными программными пакетами, такими как РСАО, АЦТОСАО и др. так как наглядно иллюстрирует в упрощенном виде часть конструкторского этапа автоматизированного проектирования, а именно трассировку.

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

Заключение

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

Литература

1. Аналитические технологии для прогнозирования и анализа данных. / http://www.neuroproject.ru/genealg.htm

2. Курейчик В.М. Генетические алгоритмы. Таганрог: изд-во ТРТУ, 1998. 242 с.

3. Курейчик В.М., Родзин С.И. Эволюционные алгоритмы: генетическое программирование. Обзор. // Известия РАН. ТиСУ. 2002. №1. С. 127-137.