Научная статья на тему 'Надъячеечная трассировка на основе генетических процедур'

Надъячеечная трассировка на основе генетических процедур Текст научной статьи по специальности «Математика»

CC BY
207
32
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Надъячеечная трассировка на основе генетических процедур»

УДК 658.512

Давиденко В.Н.

Надъячеечная трассировка на основе генетических процедур

Несмотря на то, что разработано большое количество канальных трассировщиков, позволяющих получать оптимальные и близкие к оптимальным решения, по-прежнему актуальной является проблема минимизации области канальной трассировки. Для этого предлагается использовать, примыкающие к каналу сверху и снизу, однослойные области, расположенные над ячейками (Оег-ТЬе-Се11). В этом случае некоторые из соединений или их фрагментов могут быть направлены в надъячеечную область (НЯО), что приводит к уменьшению числа магистралей, используемых в канале. Например на рис. 1 приведен канал без использования НЯО, а на рис. 2 с использованием НЯО. Использование НЯО позволило часть соединений вынести за пределы канала (соединения в,, 84, 35) и позволило решить задачу канальной трассировки на 3, вместо 5, магистралях.

Рис. I. Пример канала без использования «нальячеечнмх» областей Б4

, [5 . ,2.2, 1

Верхняя «надъячеечная» область

Область канала

Рис. 2. Пример канала с «надъячеечными» областями

Задачей «надъячеечной» трассировки является построение планарного эскиза топологии в НЯО таким образом, чтобы плотность канала была минимальной [1,2].

Эта задача решается в три стадии:

1) «Надъячеечная» трассировка (НЯТ);

2) Выбор отрезков внутри канала;

3) Канальная трассировка.

Перед НЯТ все цепи, имеющие несколько выводов, разбиваются на двухвыводные отрезки. Двухвыводной отрезок 8 связывает соседние в линейке выводы цепи, например, такими отрезками на рис 2 являются отрезки ві, 82, 83, 84< 8}. Каждая такая двухвыводная цепь, контакты которой расположены по одной стороне канала, может располагаться либо в канале, либо в НЯО. Для каждого такого отрезка существует подмножество 8С(1 отрезков в канале, один из которых можно удалить при размещении отрезка Б в НЯО. Например, для фрагмента топологии изображенного на рис. 3 для отрезка 8, подмножество 8с(, = { Бі, 82, , }.

При НЯТ задается число магистралей, доступных для трассировки для НЯО. Обозначим для верхней НЯО, число магистралей, доступных для трассировки, МТор и для нижней НЯО -Мвовош- На рис. 2 МТор = 2, а МВоиоіп = 1 • Нумерация магистралей идет от линейки контактов. Например, на рис. 2 отрезоки 5, и 8$ расположены на первой магистрали, а отрезок - на второй.

Б

Рис. 3. Фрагмент топологии канала.

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

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

ГВО для НЯТ Оу=(Е$е4, Еу), где Е&8 - множество вершин, соответствующих множеству отрезков цепей, которые могут быть вынесены в НЯО, Еу - множество направленных ребер. Ребро (п, т) Еу, существует тогда и только тогда, когда отрезок п должен быть расположен на магистрали с большим номером, чем отрезок ш для предотвращения вертикальных или горизонтальных наложений. Например, для канала на Рис. 2 подмножество отрезков для верхней НЯО выглядит как 8е£={8|,82,83,84}, а для нижней НЯО выглядит как Бе^^}. ГВО для верхней НЯО показан на рис. 4

Рис. 4. Граф вертикальных ограничении для надъячеечной трассировки

Граф горизонтальных оіраничений (ГГО) С„ = ( Е5е8, Ен), где Е^- множество вершин, соответствующих множеству отрезков цепей, которые могут быть вынесены в НЯО Ен множество ребер. Ребро (п, ш) Е„ существует, тогда и только тогда, когда отрезки пишне могут быть одновременно расположены в НЯО без наложения. Например, в ГГО (рис 5)

для верхней НЯО рис. 1 существует ребро (1,4),'это означает что отрезок в, не может размещаться в НЯО одновременно с отрезком Б*.

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

В настоящее время большое распространение получили генетические алгори™ы(ГА) предложенные Холландом [3] в 1975 году. ГА успешно используются при проектировании СБИС в задачах размещения [4], при решении задач канальной трассировки [5-71 Они в отличии от существующих, рассматривают не одно решение, а целый спектр возможных решений, к тому же обладают возможностями выхода из "локальных" оптимумов В данной работе описан новый подход решения задачи надъячеечной трассировки на основе ГА

Для данной задачи наиболее удобной представляется кодирование хромосом таким образом, чтобы каждому отрезку, который может быть вынесен в НЯО ставился в соответствие один ген. Ген содержит целое число в интервале от 0 до N Значение 0 в гене соответствующем отрезку обозначает, что отрезок не выноситься в НЯО, а значение к [1 N1 - что отрезок выносится в НЯО и из канала удаляется к-ый отрезок входящий в

і------------в'------------1

1 5 1--------1 5 1

I г-Ч -г- + - -I-

1 , I5 П 12 її Р 15 Iі |

5 ю

...

Б,

їв $7

Р

4 І4 2 3

Рис. 6

подмножество Бсь для данного отрезка. В хромосоме можно выделить две части: первая отвечает за отрезки, выносимые в верхнюю НЯО, вторая за отрезки, выносимые в нижнюю НЯО. Для примера рассмотрим рис. 6. На рисунке пунктирными линиями нарисованы отрезки которые могут быть вынесены из канала в верхнюю или нижнюю НЯО.

В верхнюю НЯО могут быть вынесены отрезки обозначенные ві, 52, 83, 54, в нижнюю -8}. При вынесении в НЯО отрезка Б] можно удалить в канале либо отрезок 56, либо отрезок 87. При вынесении остальных отрезков, в канале можно удалить только один отрезок для 52 это Ба, для Бз это 59, для 54 это 810 и для 85 это 5П. Таким образом хромосома будет состоять из 5 генов, и будет выглядеть следующим образом

Гены для верхней НЯО Г ены для нижней НЯО

Номер гена 1 2 3 4 5

Отрезок 5, 82 в,

Интервал [0,2] [0,11 [0,1] [0,1] [0,1]

В строке «Номер гена» указан номер гена в хромосоме, в строке «Отрезок» указано обозначение отрезка в НЯО которому соответствует данный ген, в строке «Интервал» указан интервал, в котором может лежать значение данного гена.

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

Гены для верхней НЯО Гены для нижней НЯО

Номер гена 1 2 3 4 5

Отрезок в,

Интервал [0,2] [0,11 10.1] [0,1] [0,1]

При такой кодировке топологии канала, изображенной на рис 2, будет соответствовать хромосома следующего вида

Номер гена 1 2 3 4 5

Значение гена 2 0 0 1 1

, где в строке «Значение гена» указано значение, которое ген должен иметь чтобы получилось такое решение.

При построении топологии канала вынесение отрезков из канала в НЯО делается раздельно для верхней и нижней областей. Одновременно с вынесение отрезков из канала делается удаление отрезков внутри канала.

Вынесение отрезков в одну из областей делается следующим образом. Пусть дана хромосома А. Пусть даны ГВО Gv и ГТО GH для данной НЯО. Пусть для каждого i-ro отрезка, где i = 1,2, ..., N ( N - число отрезков которые можно вынести в НЯО) , который можно вынести в данную НЯО, существует значение T(i), которое равно 0, если отрезок размещается в канале или хранит номер магистрали на которой он располагается в НЯО. Тогда алгоритм для укладки отрезков в одной из областей НЯО будет выглядеть следующим образом.

1 Присвоить каждому T(i) ( i = 1, 2, N ) значение гена соответствующего i-му отрезку

2° i = 1.

3° Если T(i) = 0 то перейти на 13°.

4° k = 1.

5° j = i - 1.

6° Если] < 1 то перейти на 10°.

7° Если T(j) 0 и ребро ( i, j) Gv, и к T(j), то к = T(j) + 1.

8°j=j-l.

9° Перейти на 6°

10° Если к больше числа магистралей, выделеных для трассировки в НЯО то к = 0

11° Если к > 0, то удалить из канала отрезок, в подмножестве Sch отрезка i с номером T(i) и для всех отрезков ш ( m [ i+1, N ] ) для которых существует ребро ( i. ш ) в гоабе GH установить Т( m ) = 0.

12° T(i) = k.

13° i = i + 1

14° Если i N, то перейти на 3°.

15° Конец укладки отрезков в НЯО

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

F(A)= 1/ (D(A)*LS + L(A) + 1),

где D(A) - плотность канала для решения соответствующего хромосоме A Ls - общую длину горизонтальных отрезков цепей в канале, L(A) - длину горизонтальных отрезков цепей в канале соответствующем хромосоме А.

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

ЦФ может принимать значения от 0 до 1. Задачей ГА является максимизация ЦФ

Для решения задачи использовался ГА устойчивого состояния (steady-state genetic algorithm) [8]. Применён стандартный двухточечный кроссинговер и точечная мутация [3].

Генетический алгоритм надъячеечной трассировки реализован на языке Си++

Теоретическая временная сложность алгоритма составляет (2*Т +M)*0(N2) где Т

число поколений, М размер популяции 0(N ) временная сложность декодирования хромосомы, N - число отрезков выносимых в НЯО.

Для сравнения нашего алгоритма с аналогичными были использованы стандартные тесты Ех1, ЕхЗа, ЕхЗЬ, ЕхЗс, Ех4Ь, Ех5 и тест Дойча из [9]. Результаты сравнения приведены в таблице 1. В таблице 1 в олонка "Тест" даны названия тестов, в колонке "Плотность" приведены плотности каналов для каждого теста', в колонке "Алгоритм [1]" даны плотности канала для каждого теста после проведения надъячеечной трассировки алгоритмом, представленным в [1], в колонке "Алгоритм [2]" даны плотности канала для каждого теста после проведения надъячеечной трассировки алгоритмом, представленным в [2] и в колонке "Предложенный алгоритм" даны плотности канала для решений найденых алгоритмом, предлагаемым в данной статье.

Таблица 1

Тест Плотность Алгоритм [ 1 ] Алгоритм [2] Предложенный алгоритм

Exl 12 9 9 8

ЕхЗа 15 12 12 12

ЕхЗЬ 17 13 13 12

ЕхЗс 18 14 15 13

Ex4b 17 16 12 12

Ex5 20 14 12 11

Deutsch 19 16 17 15

Из таблицы 1 видно, что применение представленного алгорима позволило получить лучшие решения для тестов Ех1, ЕхЗЬ, ЕхЗс, Ех5 ё теста Дойча. Для остальных тестов не удалось улучшить решения полученые алгоритмами [1,2].

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

Литература:

1. Cong J., and Liu C.L., «Over-the-Cell Channel Routing», IEEE Trans. Computer-Aided Design , vol. 9, no. 4, pp. 408 - 418 , 1990.

2. Cong J„ Preas B., and Liu C.L., «Physical Model and Efficient Algorithms for Over-the-Cell Routing in Standard Cell Design», IEEE Trans. Computer-Aided Design, vol. 12, no. 5, pp. 723-734, 1993.

3. J. Holland. Adaptation in natural and artificial systems. Universyty of Michigan Press Ann Arbor, USA, 1975.

4. Liu, X. Sakamoto, A., Shimamoto, T„ «Restructive Channel Routing with Evolution Programs», Trans. IEICE, vol.E76-A, no.10, pp.1738-1745, 1993.

5. Goodman, E. Tetelbaum, A. and Kureichik, V. (1994). “A Genetic Algorithm Approach to Compaction, Bin Packing, and Nesting Problems”, Case Center Technical Report #940702, Michigan State University.

6. Rahmani, A.T. and Ono N., “A Genetic Algorithm for Channel Routing Problem”, in Proc. 5th Intl. Conf. on GAs, pp. 494-498, 1993.

7. Davidenko V.N., Kureichik V.M., and Miagkikh V.V. "Genetic Algorithm for Restrictive Channel Routing Problem", Proc. of the 7th International Conf. on Genetic Algorithms, M. Kaufmann Publisher, San Mateo, California, 1997, pages 636-642.

8. Лебедев Б.К. "Канальная трассировка на основе генетических процедур", Известия ТРТУ, №3, Таганрог, с. 53-60, 1997.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

9. Syswcrda G. “Uniform Crossover in Genetic Algorithms", Proc. of the 3-rd Conf. on Genetic Algorithms, M. Kaufmann Publisher, San Mateo, California, 1989. p. 2-9

10. Yoshimura, T. and Kuh, E.S. «Efficient algorithms for channel routing», IEEE Trans. Comput.-Aided Des. Integrated Circuits & Syst., vol.l, no.l, pp.25-35,1982.

УДК 658.512

Бондалетов A.B.

Применение группирующего генетического алгоритма для решения задач

одномерной упаковки.

Аннотация.

Группирующий генетический алгоритм (ГГА) (Grouping Genetic Algorithm (GGA)) - это генетический алгоритм, измененный для решения задач группировки. Цель таких задач найти лучшее разбиение множества или сгруппировать вместе членов данного множества, используя различные критерии группировки. Задача упаковки (ЗУ) (Bin Packing Problem (ВРР)) является NP-сложной задачей группировки элементы различного размера должны быть сгруппированы в минимальное количество блоков (bin) фиксированного размера.

1. Введение.

1.1 Задача упаковки.

Задача упаковки (ЗУ) определяется следующим образом: дано конечное множество чисел (размеров элементов) Е и константа МАХ (размер блока), цель найти разбиение

множества Е на минимальное количество подмножеств, таких, что сумма элементов в каждом подмножестве не будет превышать МАХ (размера блока).

Будучи NP-сложной задачей, не существует оптимального алгоритма для ЗУ с полиномиальной временной сложностью. Однако есть различные простые эвристики для решения ЗУ, находящие решение, которое, в основном, не является лучшим.

Например: Начиная с одного пустого блока, брать последовательно элементы и для каждого из них искать уже используемый блок с достаточным свободным местом. Если такой блок найден, то «положить» в него элемент, иначе взять пустой блок. Такая эвристика называется First Fit (FF). Если элементы перед распределением отсортировать, то получим эвристику First Fit Decreasing (FFD), которая решает задачу лучше, но работает медпенее. А если искать самый заполненный блок, имеющий достаточно места, то такая эвристика называется Best Fit.

1.2 Задача группировки.

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

и( = U и U[ Uj =, і j.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.