Канальная трассировка на основе генетических процедур

Раздел II ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ

УДК 658.512

Б. К. Лебедев Канальная трассировка на основе генетических процедур-

Введение

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

Проблема распределения соединений в минимальном числе магистралей является ЫР-полной. Поэтому несмотря на обилие разработок проблема построения эффективного канального трассировщика по-прежнему остается актуальной.

Генетические алгоритмы(ГА), являющиеся поисковыми алгоритмами, основанными на механизмах природной селекции и генетики, оказались очень пригодными в различных поисковых и оптимизационных задачах [1,2].

Отдельные попытки [3,4] применения эволюционного программирования к задаче канальной трассировки были достаточно успешными. Однако предложенные структуры ГА фактически являются “слепыми ” поисковыми структурами с присущими им недостатками: генерация решений с нарушениями,

что требует дополнительного контроля; генерация большого количества

подобных решений; генерация большого количества “плохих” решений.

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

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

1 .Формулировка задачи, основные термины и обозначения.

Дадим формальное описание ЗКТ. Даны : верхний ряд контактов Т={1||Ц,...Л, }

и нижний ряд контактов В={Ь,,Ь2.......Ь,}. К верхнему ряду контактов подходит

соответственно множество цепей Ыт={п1, | 1=1,2,.../}, а к нижнему соответственно

множество цепей Ыв={пЬ| | 1=1,2,..../}, ЫтиЫв =К Как уже говорилось выше,

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

горизонтальных фрагментов. Для учета этих ограничений вводятся граф вертикальных ограничений (ГВО) Оу и граф горизонтальных ограничений (ГГО) Он. =(У,Е), У-множество вершин, соответствующих горизонтальным

фрагментам , е^у^) бЕ -направленное ребро указывающее на то что V, должна располагаться над \}.

Он=(У,и); ик=(У|,^) еи -ребро, указывающее на то, что V, и ^ должны располагаться в различных магистралях.

В общем случае допускаются изломы горизонтальных фрагментов. Предполагается, что путем ввода изломов фрагментов в ГВО исключены все циклы. На рис.1,а приведен канал с распределенными по магистралям фрагментами. На рис.2 приведен для канала, приведенного на рис. 1 ,а

*1 *2 *3 ^4 *9 *7 tg 19 1ц (13 ^4 115 ^6

а)

р‘ Г) р4

б)

Рис.1

Рис. 2

Таким образом, имеется сформированное множество

Р={А I 1=1,2,...,п} фрагментов. Необходимо в соответствии с ограничениями вН и СУ разместить их в минимальном числе магистралей.

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

Упорядочим концы фрагментов по возрастанию их координат и запишем их в вектор О. Пусть 0(/|),0(г;) • порядковые номера концов /, и г, в векторе О.

Для любой пары Г|, /, справедливо 0(/|)< 0(г,).

Для любой пары г, е ^ и Ц е таких, что х(/>)> х(г;), справедливо : О (/,)> О (г).

Для любой пары Г| и Ц таких, что х(1)= х(г;), справедливо 0Щ<0(г).

Для любой пары /| и I, (г(, г, ) таких , что х(/;)= Щ), (х(г1)= х(г,)) , причем от точки I, (Г|) вертикальный фрагмент идет к верхнему ряду контактов , а от точки /| (г) к нижним, справедливо : О(/;)< 0(1),(О(г,)< 0(г;)).

Сформированный вектор О для примера, представленного на рис.1,а, имеет вид

0={/„ /|о, ^2» и> Ь>Г 10>Г1> !\\<Г 1> ^12>Г«>

Вектор О является базовой структурой данных для организации работы известного алгоритма “левого конца”, суть которого в следующем. Магистрали Для заполнения фрагментами цепей выбираются последовательно, начиная с первой. Каждая выбранная магистраль последовательно слева-направо заполняется фрагментами цепей. На некотором шаге занесения в заполняемую магистраль т„ некоторого фрагмента ^ отыскивается фрагмент 1- такой , что бы выполнялись условия : а) ^ мог размещаться в магистрали тп в соответствии с Сн и Су и с учетом уже размещенных фрагментов ; б) 0(/|)>0(г;). Проблема заключается в выборе для размещения в т„ одного из альтернативных кандидатов, отвечающих вышеперечисленным условиям. В простейшем случае выбирается ^ такой , чтобы (ОЦ)-О(г,)) -> шш , т.е. выбирается ближайший к $ фрагмент Однако такой подход не обеспечивает оптимального решения.

Упорядочим фрагменты ^ в виде той последовательности П, в которой она выбирается алгоритмом “левого конца”. Очевидно , что существует последовательность Пост , такая , что если осуществлять последовательное заполнение магистралей фрагментами в соответствии с последовательностью Попт, получится оптимальное решение.

На рис.1,а представлено оптимальное (по числу занимаемых магистралей) Решение. Оптимальная последовательность имеет вид:

Попт={Г|, £(, Г6, ^з, Г», ^0, ^|. ^7, ^2* ^12» ^14> ^|> •

Фактически Пот- является решением ЗКТ. Отличительной особенностью л»бой последовательности Пх полученной с помощью алгоритма “левого конца”, В ТОМ числе И Попт , является следующее.

Для любого фрагмента ^ в списке П* все фрагменты, под которыми ^ должен располагаться в соответствии с Оу, расположены слева от ^ , а все фрагменты , над которыми в соответствии с в, должен располагаться ^ ,в списке П, расположены справа от $.

Назовем любую последовательность с вышеперечисленными свойствами решением ЗКТ. Сопоставим решению П« оценку Ф* число занимаемых магистралей. Тогда ЗКТ сводится к нахождению решения, для которого

Фопт->тт.{Ф«)

2. Алгоритм генетической канальной трассировки

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

2.1. Кодирование и декодирование хромосом

Разобьем множество фрагментов F на подмножества в соответствии со следующими правилами.

1. У(/,л[/;о^ = о].

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

У(1,;| & е&^ ^ е [ие = (уьV]) Ф 0].

3. Подмножества пронумерованы так, что все левые концы

фрагментов расположены левее левых концов фрагментов /V,:

\/(Ц ад[0(Н)< 0(Ш].

Для разбиения на ^ используется вектор О. Подмножества ^

формируются последовательно, начиная с /”/, в процессе просмотра слева-направо вектора О. На каждом шаге выбирается очередной элемент вектора О. Если элемент является левым концом /, фрагмента ^ , то ^ включается в формируемое в данный момент множество Рк. Если очередной элемент является правым концом г{, то в 5* ничего не включается . Возможны два варианта продолжения. Если ^ не был включен В /х , то выбирается следующий элемент в векторе О и по-прежнему формируется Рк. Если ^ е Рк, то процесс формирования Рк считается завершенным и начинается процесс формирования множества (если О не просмотрен до конца).

На рис. 1 ,в представлено разбиение множества фрагментов схемы рис. 1 ,а ^={1,10,2,8,3}; /^={11,12,4}; /^={5,13,9}; ^={7,6,14}.

На основе какой-либо методики (например, на основе методики, изложенной в [5]) определяется оценка М минимального числа магистралей, необходимых для размещения фрагментов. Величину М можно увеличить на 1-2 единицы. Добавляем в каждое /•£ нулевые элементы и формируем вектор <1к, чтобы мощность каждого была равна М. Полученный после дополнения набор векторов 0=^ ;1=1,2,...п} будем называть решением ЗКТ. Для нашего примера:

<//={1,10,2,8,3} ;</2=(11,0,12,0,4}; </з={5,0,13,9,0} ; ^{7,0,6,14,0}.

Представим решение в виде хромосом. Хромосома Ни является упорядоченной

к к * совокупностью генов Ген в , является одним из вариантов вектора а1 , т.е.

к

значением g! является некоторый вектор а1

к I

Гены g< и gl хромосом Нк и Н/ гомологичны, они одинаковы по составу элементов, соответствуют одному и тому же подмножеству фрагментов И; но отличаются порядком расположения элементов.

Декодирование хромосомы и определение магистралей для фрагментов осуществляется с помощью процедуры декодирования, использующей идеи алгоритма “левого конца”.

Представим хромосому Нк в виде матрицы Ок (рис.З.а), где каждый столбец соответствует гену. Магистрали заполняются последовательно, начиная с первой. Заполнение магистралей осуществляется следующим образом. Последовательно по строкам начиная с первой, в пределах строки слева направо просматриваются элементы матрицы Ок. Для каждого выбранного элемента матрицы (фрагмента) определяется возможность его размещения в сформированной магистрали в соответствии с и Сн. Если возможно, то фрагмент помещается в формируемую магистраль и удаляется из Ок. По окончании просмотра матрицы Эк осуществляется сжатие всех столбцов, из которых удалялись фрагменты снизу вверх(рис.3,в). После этого осуществляется переход к заполнению следующей магистрали. Процесс заполнения показан на рис.З,а,в,с,<1,е,^,Ь:

Пк= {(1,5),(10,11,17),(2,13,6),(9,14),(4),(3),( 12),(8)}.

В результате применения вышеуказанной процедуры к матрице Бк строится последовательность Пк. Очевидно, что порядок расположения элементов в Пк полностью определяется порядком расположения элементов в Бк и существует Некоторая Оопт , которой соответствует Попт.

2.2.Исходная популяция

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

Именно потому, что Г4 занимает последнее место в <12 решение получилось Далеким от оптимального. Если же учесть эти соображения и Г4 переставить в середину списка <12, а (В в конец <11, то в результате декодирования получим, что Фрагменты можно разместить в 6 магистралях.

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

В соответствии с методикой, изложенной [5], для каждого элемента в <Н °пределяются позиции, которые он может занимать , удовлетворяя СУ и СН.

В виду простоты примера из методик [5], последовательно уточняющих Допустимые значения позиций элементов последовательности (11, применимы следующие. Вначале по СУ определяют возможные позиции фрагментов друг относительно друга, при заданной длине списка, в нашем примере (рис. 1 ,а) длина списка равна 5. Поэтому для фрагментов допустимы позиции :

{1,2};Г2-> {3,4};Гэ_> {2,3,4}{1,2,3};Г5_> {1,2,3,4}&-> {1,2,3,4};

{,-> {2,ЗЛ)-,и^> {4,5} А-> {2,3,4,5} Д0— {2,3}*, _» {2,3,4};Г12-> {2,3,4};

Г„—>{3,4,5};^—>{2,3,4,5}.

Вторая методика связана с учетом вН. [4 должен располагаться выше П и П2, П и П2 находятся в горизонтальном конфликте и каждый из них не может занимать позицию больше 4. Следовательно М не может занимать 3-ю позицию, т.е. Г4—{1,2}. Фрагмент 19 должен быть в соответствии с СУ размещен ниже fl.fl! и Г4. Фрагменты П, Г11 и Г4 находятся друг с другом в горизонтальном конфликте и следовательно займут 3 магистрали. Исходя из этого приходим к выводу, что Г9 не может занимать 3-ю магистраль, т.е. ГО-»{4,5}. Используя при необходимости все методики, изложенные в [5], для всех элементов формируются значения допустимых позиций. На основе которых с помощью тривиального алгоритма случайным образом генерируется исходная популяция. Отметим, что нулевые элементы, дополнительно включенные в список <11, могут занимать любую позицию. Наример: список <Н в соответствии с ограничениями на допустимые позиции его элементов может иметь в исходной популяции следующие разновидности: {1,10,2,3,8};{1,10,3,2,8};{1,3,10,2,8}

Он =

а. <1> <1, <1<

1 11 5 7

10 0 0 0

2 12 13 6

8 0 9 14

3 4 0 0

{1,5}

<1. <12 (1] *4

10 1 1 0 7

2 0 13 0

8 12 9 6

3 0 0 14

- 4 - 0

{10,11,7) — тп 2

«11 <1, а, <14

2 0 0 0

8 12 13 6

Э 0 9 14

- 4 0 0

- - - -

{2,13,6) - шз с

<1. Аг Аг А*

8 0 0 0

3 12 9 14

- 0 0 0

- 4 - -

- - - -

{9,14 -» Ш 4

«I

<1, <1> <1, «>4

8 0 0 0

3 12 0 0

- 0 - -

- 4 - -

- - - -

4}- -* ш з

с

<1. А1 <ь <1,

8 0 0 0

3 12 0 0

- 0 - -

- - - -

- - - -

3}- * т*

Г

<>. Аг <1, (14

8 0 0 0

- 12 0 0

- 0 - -

- - - -

- - - -

(I 2) -» тт В

<11 <1> <Ь <14

8 0 0 0

- 0 0 0

- - - -

- - - -

- - - -

8}- * т в

Рис. 3

Основными генетическими операторами являются кроссинговер, мутация и селекция. В нашем случае операция «кроссинговер» реализуется путем выделения и взаимооднозначного обмена гомологичными участками хромосом Ш и Два участка 1ик€ № и Н] гомологичны, если для каждого гена в Ы к есть 1 гомологичный ген в 1у к и наоборот. В общем случае хромосомы могут обмениваться группами гомологичных участков, т.е. кроссинговер может быть многоточечным. Позиции точек, задающих границы участков, выбираются случайным образом. В пределах каждого поколения (итерации) выбирается V/ пар хромосом и к каждой паре с вероятностью РМ применяется операция кроссинговера. При выборе пар хромосом используется принцип “рулетки”

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

Селекция популяции после выполнения операций кроссинговера и мутации осуществляется с использованием принципа “рулетки” Альтернативой является отбор ЫР“лучших решений” , где размер исходной популяции.

С каждой хромосомой Н* связана функция качества Фх- число занимаемых магистралей. Цель генетического поиска - нахождение решения с минимальными значениями Фх.

З.Экспериментальные результаты

Программа генетической канальной трассировки была реализована на языке Си для 1ВМ РС. Эмпирически подобраны управляемые параметры. Задачи решались на стандартном наборе задач. Исследованы популяции размером от 20 до 50 решений и было установлено, что увеличение популяции размером более 30 нецелесообразно. Наилучшие результаты были достигнуты при РС=0.9, РМ=0.1. После 20 поколений практически во всех случаях было получено решение с минимально возможным числом занятых магистралей.

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

Заключение

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

Предложенный подход полностью применим для “безсеточнойЧ^Шеи) трассировки соединений разной ширины. Для этого на основе конструктивный параметров (ширина цепи, расстояние между цепями, окнами, размеры переходных Контактов) рассчитываются допустимые расстояния между фрагментами. При этом задача трассировки сводится не к распределению фрагментов по магистралям, а к

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

Литература.

1. De JongJK.. ’’Genetic algorithms: A 10 year perspektive”,in Proc.lst Intl.Conf. on Gas pp.169-177,1985

2. Jones,D.R.,cmd Beltramo,n.a.,’’Solving partitioning problems with genetic algorithms”

3. Taniguch,N..,Liu,X., SakamotoA- & Shimamoto,T.,”An anproach to channel routing using genetic algorithms” Bulletin of Faculty of Engineering, Tokushima Univesity, no.38, pp.99-112,1993

4. Jones,N.R.cmd Beltramo, n.a.’’Solving partitioning problems with genetic algorithms”, in Proc. 4th Intl.Conf. on Gas,pp.442-449,1991

5. Лебедев Б.К. Канальная трассировка на основе динамических принципов и методов минимизации комбинаторной размерности // Интеллектуальные САПР. Вып. 5. Таганрог,1995. С.11-21

УДК 658.512

В.В. Курейчик Генетический алгоритм определения изоморфизма однородных графов

Заключительным этапом конструкторского синтеза СБИС является • верификация. Одной из важнейших задач верификации является установление взаимно однозначного соответствия между структурой и электрической схемой СБИС и ее топологической реализации [1]. Данные задачи решаются путем установления изоморфизма между графовой моделью ее тополгии [2]. Данная проблема, как и все остальные рассмотренные выше проблемы конструкторского синтеза, является № полной. Поэтому разрабатываются различные эвристики для получения приемлемых практических результатов. В [2] описаны эффективные методы решения задачи установления изоморфизма однородных графов, имеющих автоморфные подграфы. Для решения таких задач используются методы разбиения исследуемых графов на различные уровни. При этом ВСА алгоритма снижается с О (п!) до О (к!),где п- число элементов в графе ,а к- число элементов в наибольшем автоморфном подграфе. Основная идея таких алгоритмов заключается в следующем [2].В обоих графах выбираются две предполагаемо изоморфные вершины. Относительно них производится разбиение всех оставшихся вершин на два класса В первый класс включаются вершины, смежные предполагаемым изоморфоэным , а во второй нет Например , на рис. 1 показаны два графа О и 0’.0=(Х,и),С’=(Х’,и’Х 1Х1=1Х’1=6, Ш1=Ш’1=9, локальные степени всеТ вершин

графа равным трем. Необходимо установить изоморфизм графов О иС Другими

словами, необходимо определить, существует ли отношение эквивалентности ХоХ иои такое что, если ребро (х;, * ) о ребру (хД у/), тогда х, о х’, х, о

^ , Х1 , Х] € X, X,’, X/ еХ ;

Выберем одну вершину в графе О и одну в графе О’ И относительно них выполним указанное выше разбиение {1} {2,4,6,} {3,5}.

{1} {4’,5’,6’} {2’, 3’},'