6. Colorni A., Dorigo M., Maniezzo V., "Distributed Optimization by Ant Colonies," Proceedings of the First European Conference on Artificial Life, Paris, France, F. Varela and P.Bourgine (Eds.), Elsevier Publishing, 134-142, 1991.
7. Colorni A., Dorigo M., Maniezzo V., “The Ant System: Optimization by a colony of cooperating agents,” Tech.Rep.IRIDIA/94-28, Université Libre de Bruxelles, Belgium, 1996.
8. Баяюк Л.В. Возможности комбинированных стратегий решения задачи размещения раз-
// - -ренций «Интеллектуальные системы» (AIS’06) и «Интеллектуальные САПР» (CAD-2006). Научное издание в 3-х томах. - М.: Изд-во «Физико-математической литературы», 2006, Т.1. - С. 552-557.
Б.К. Лебедев, С.А. Степаненко МЕХАНИЗМЫ ГЕНЕТИЧЕСКОГО ПОИСКА ПРИ РАЗМЕЩЕНИИ*
.
процессе проектирования СБИС, поскольку качество полученного решения в значительной степени влияет на выполнение последующей трассировки соединений, которые, в свою очередь, сильно влияют на производительность схемы [1-2]. Задача размещения относится к классу NP-полных, поэтому не существует алгоритма, позволяющего получать ее решение за полиномиальное время. Проведенные исследования имеющихся подходов к ее решению показывают, что существующие алгоритмы выдают решения, которые далеки от оптимальных
[1,3,4]. , - .
рассматривается структура хромосом, принципы кодирования и декодирования, а также модифицированные операторы, применяемые в генетическом алгоритме решения задачи размещения.
. . Имеется множество элементов M = {mi | i = 1,...N} с фиксированными размерами и
множество цепей C = {c | i = 1,2,...,K}, связывающих элементы множества M. Необходимо произвести размещение элементов на плоскости таким образом, чтобы отсутствовали перекрытия элементов, и при этом минимизировалась целевая функция F(x) ^ min. В качестве критериев оптимизации используются: общая площадь схемы, суммарная длина проводников, временные задержки.
Для представления относительного расположения элементов на плоскости будем использовать метод пары последовательностей (Sequence-Pair), который впервые был предложен Murata и др. в 1996 году [5]. Представление плана топологии с помощью пары последовательностей состоит из двух перестановок целых чисел < 1,2,...,N >,< 1,2,...,N > . Каждый элемент последовательности соответствует номеру прямоугольного элемента, расположенного на плоскости без перекры-
, N.
Эта пара последовательностей определяет относительное расположение элементов в пространстве, но для упаковки элементов необходимо также знать их про.
вектором O = {oi | i = 1,2,...,N}, ot е {1,2,3,4} , 1 - i - N . Таким образом, для каждого элемента существует четыре возможных ориентации (North = 1, East = 2, South = 3, West = 4).
* Работа выполнена при поддержке РФФИ (фант № 06-01-81018, № 05-08-18115) и программ развития научного потенциала высшей школы 2006-2008 гг. (РНП.2.1.2.3193, РНП 2.1.2.2238).
Разработка генетического алгоритма включает три основных компонента: разработка структуры, принципов кодирования и декодирования хромосом; разработка основных генетических операторов; разработка общей структуры генетиче-кого поиска [6].
Кодирование решения. Основным недостатком представления решения в виде пары последовательностей является то, что хромосомы в таком виде являются не гомологичными. В этом случае, при синтезе новых хромосом возникает проблема получения легальных решений. Это связано с наложением ограничений на . , , хромосоме не должно быть генов с одинаковыми значениями. Это требует дополнительных временных затрат, связанных с контролем и с использованием более трудоемких методов кроссинговера и мутации, не допускающих получение нелегальных решений [9]. Поэтому требуется закодировать последовательность пар в виде гомологичной хромосомы. Рассмотрим подробно процесс кодирования решения в виде гомологичной хромосомы.
Хромосома представляет собой массив генов, число которых на единицу меньше числа размещаемых элементов H = | i = 1,2,...^ — 1)} . Ген gj мо-
жет принимать значения, лежащие в интервале 1 < gi < N — / +1, т.е. чем выше порядковый номер 1, тем меньшее значение он может принимать.
Процедура перехода от гомологичных хромосом к паре последователь.
H = {gi | i = 1,2,...(N — 1)} к последовательности целых чисел
S = {^1 | i = 1,2,...,Щ (последовательность пар состоит их двух таких последовательностей < ^, S2 >). Для этого нам понадобится опорный вектор номеров элементов В = {Ъг. | i = 1,2,..., Ы}, 1 < Ъi < N, Ъi Ф Ъ}, Vi Ф ] , 1 < i, ] < N.
1. Имеется гомологичная хромосома Н = ^ | i = ^^..^ — 1)} и опорный вектор В = {ЪІ | i = 1,2,...,Щ . На первом шаге i = 1.
2. Выбирается ген хромосомы с номером 1: к = gj.
3. Определяется значение элемента опорного вектора В с номером к = gi: Ък. Это значение присваивается ьому элементу получаемой в процессе декодирования последовательности 8: ^ = Ък .
4. Элемент Ък удаляется из опорного вектора В.
5. Если i < N — 1, то i = i +1 и переход к пункту 2, иначе - переход к пункту 6.
6. В Ъ1 ,
элемент добавляется в конец последовательности 8: 5;+1 = Ъ1. Переход к пункту 7.
7. Конец работы алгоритма.
Гомологичные хромосомы хорошо подходят для применения стандартной
, ,
являются гомологичными и обмен местами генов из разных хромосом не приводит к получению нелегальных решений. Однако наряду со стандартными генетически, , -ритме применяются также более эффективные операторы, использующие знания о
задаче размещения и эти операторы работают не с гомологичной хромосомой, а с парой последовательностей. В результате на выходе получается не гомологичная , , -, -тельностей к гомологичной хромосоме, которая описывается далее.
Процедура перехода от пары последовательностей к гомологичной хро-. -логичной хромосоме. При этом также используется опорный вектор номеров элементов В = {Ъг. | i = 1,2,...,N .
1. Имеется последовательность целых чисел S = {^ | i = 1,2,...,Щ и опорный вектор номеров элементов В = {Ъг. | i = 1,2,..., Щ . На первом шаге i = 1.
2. Выбирается элемент последовательности с номером 1: ^ .
3. Просматривается опорный вектор В и определяется, какую позицию в нем занимает элемент со значением , пусть это будет позиция с номером к.
4. Гену gj хромосомы Н присваивается значение к: gj = к .
5. Элемент Ък удаляется из опорного вектора В.
6. Если i < N , то 1 = 1 +1 и переход к пункту 2, иначе - переход к пункту 7.
7. Конец работы алгоритма.
Трудоемкость декодирования хромосом имеет оценку О(п). Достоинствами предложенной структуры хромосом являются:
1) Отсутствие сложных элементов.
2) Линейная оценка временной сложности декодирования.
3) Гены, расположенные в одних и тех же локусах, являются гомологичными. Отметим, что процесс декодирования хромосомы опирается на вектор В.
Таким образом, одному и тому же генотипу Н, в зависимости от вектора В, соответствуют различные фенотипы.
. . -
дартный многоточечный оператор кроссинговера [6-8]. Оператор кроссинговера
выполняется с заданной вероятностью Рс . При этом для каждой пары генов хро-, , интервале [0;1] и, если это число меньше заданной вероятности кроссинговера Рс, производится обмен этих генов в потомках. Поскольку код одного решения
представляется парой хромосом < Н1, Н2 >, то кроссинговер может применяться как к хромосомам в пределах одного решения, так и к хромосомам из разных решений.
. -
сомами для выбранной пары решений.
Мутация. Оператор мутации применяется к одной выбранной хромосоме. Данный оператор работает следующим образом: выбирается случайно некоторый ген gj в хромосоме, генерируется случайное число в интервале [0;1] и, если это
число меньше заданной вероятности мутации Рм, производится случайное изменение гена в интервале [1; N — i +1] (дайна хромосомы равна N — 1).
Рассмотренные выше операторы носят чисто случайный характер, поскольку они не используют знания о решаемой задаче. Более эффективными являются опе-
раторы, использующие так называемые <жадные эвристики», которые пытаются изменить закодированное решение таким образом, чтобы улучшить целевую функцию. Рассмотрим ориентированные на знания операторы, разработанные специально для задачи размещения. Данные операторы работают не с гомологичной , , -образование гомологичной хромосомы к последовательности пар, используя описанный выше алгоритм.
Оператор сближения элементов цепей. Данный оператор пытается уменьшить длину проводников цепей. Оператор работает с первой последовательностью S1 в последовательности пар < S1, S2 > . Поскольку первая последовательность задает порядок укладки элементов, интуитивно понятно, что чтобы уменьшить длину проводников цепи, нужно чтобы элементы, принадлежащие одной цепи,
Sj .
В исходных данных задачи размещения задан список цепей, задающих связи между элементами: C = {ci | i = 1,2,...,K}. Каждая цепь (элемент списка ct)
содержит список элементов, связанных ею: Net = {bi | i = 1,2,..., V},
где bt E M, M - множество элементов, | Net |= V - степень цепи (количество ).
Оператор сближения элементов цепей работает отдельно с каждой цепью. Выбор цепи осуществляется случайным образом или на основании некоторого кри-, , , -. Net
образом: для каждого элемента цепи определяется его порядковый номер в последовательности S1. Далее определяется элемент с минимальным (а) и максимальным (b) порядковым номером в последовательности (S1 =< ...,sa,.........,sb > на
отрезке [ab] расположены все элементы связанные цепью Net). Длина отрезка равна l = b — a +1. Возможны два случая:
1) Net :
l >\ Net \, то внутри отрезка содержатся также элементы не связанные цепью Net (точное число элементов равно к = l — | N |) и можно длину этого отрезка уменьшить за счет обмена местами элементов цепи с остальными элементами.
2) В противном случае: l =| Net | и на отрезке [a; b] расположены только
Net .
уменьшить за счет изменения горизонтальных или вертикальных ограничений ме-, .
Сближение элементов цепи можно проводить разными способами:
1) , -[ a; b ] , a , .
2) a, b -
внутри отрезка, тем самым, «притягивая» крайние элементы цепи.
Оператор разбивания критических путей в графах горизонтальных и . -
ностью пар и пытается уменьшить общую площадь схемы, что достигается путем разбиения критических путей в графах ограничений, которые состоят из элемен-
, ,
.
< S1 , S2 > , -
вательности пар построены графы ограничений H(X, EH ) и V(X, EV ), выполнена процедура упаковки элементов и определены пути максимальной длины, состоящие из элементов, размеры которых вносят вклад в определение ширины и высоты схемы: RH =< ri | i = 1,...,L > (путь в графе горизонтальных ограничений) и RV =< rj | j = 1,...,T > (путь в графе вертикальных ограничений),
1 < i,j < N.
( RH Rv ) одним из следующих
: - RH ,
- RV .
выбор некоторого множества паросочетаний элементов пути. Затем выполняется
S
обмен местами элементов каждой пары в последовательности 1. Например, пусть
< a , b > ,
S1 :
S1 =< ...,a,...,b,... >, то после выполнения операции обмена их положение в последовательности S1 станет таким: S1 =<,...,b,...,a,... > .
Рассмотренные выше операторы позволяют производить модификацию решения с целью уменьшения размеров схемы и суммарной длины проводников. Экспериментальные исследования подтверждают их большую эффективность по сравнению со стандартными операторами кроссинговера, мутации и рекомбинации.
. -
,
и суммарная длина проводников. Для представления относительное размещение элементов на плоскости использовался метод пары последовательностей (Se-quence-Pair). Этот метод с успехом применялся в алгоритмах размещения основанных на моделировании отжига, он также хорошо подходит и для генетических алгоритмов. В предложенной статье были рассмотрены структуры хромосом, принципы кодирования и декодирования, а также модифицированные операторы, применяемые в генетическом алгоритме решения задачи размещения. Экспериментальные исследования подтверждают эффективность предложенных методик.
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Jason Cong, Joseph R., Shinnerl и Min Xie (UCLA Computer Science), Tim Kong (Magma Design Automation) и Xin Yuan (IBM Corporation, Microelectronics Division). Large-Scale Circuit Placement. ACM Transactions on Design Automation of Electronic Systems, Vol. 10, No. 2, April 2005.
2. Adya S. N., Yildiz M., Markov I. L., Villarrubia P. G., Parakh P. N., Madden P. H. Benchmarking for large-scale placement and beyond. In Proceedings of the International Symposium on Physical Design. ACM, Monterey, 95-103., 2003.
3. Cong J., Kong T., R J.. Shinnerl, Xie M., and Yuan X. Large-scale circuit placement: Gap and promise. in Proc. of the International Conference on Computer-Aided Design, November 2003.
4. Chang C.C., Cong J. и Xie M. 2003. Optimality and scalability study of existing placement algorithms. In Proceedings of the Asia South Pacific Design Automation Conference. 621-627.
5. Hiroshi Murata,Kunihiro Fujiyoshi, Shigetoshi Nakatake,Yoji Kajitani. VLSI Module Placement Based on Rectangle-Packing by the Sequence-Pair. IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 15, NO. 12, DECEMBER 1996.
6. . . : -бие. - Воронеж, 1995. - 69 с.
7. Курейчик В.В. Эволюционное моделирование: Учебное пособие. - Таганрог: Изд-во ТРТУ, 2003. - 76с.
8. Гладкое Л.А., Курейчик В.М., Курейчик В.В. Генетические алгоритмы. - Таганрог: Изд-
, 2004. - 400 .
9. Лебедев Б.К., Лебедев О.Б. Методы размещения. - Таганрог: Изд-во ТРТУ, 2006. - 108 с.
..
ГИБРИДНЫЙ ГЕНЕТИЧЕСКИЙ ПОИСК ДЛЯ ЗАДАЧИ УПАКОВКИ
БЛОКОВ*
. (Bin Packing Problem (BPP)) - -
NP- . BPP -
ся скомбинировать (объединить) элементы в блоки определенного объема так, чтобы минимизировать общее количество блоков [1,3,5-7].
BPP является интересной темой для исследования по следующим причинам [2,4,8,9]:
1) BPP , -
, ;
2) , -личными, но имеют очень сходную структуру такие, как составление сме-
, ,
СБИС;
3) BPP - NP- .
В данной работе предлагается алгоритм гибридного генетического поиска ( ). ,
экземплярах задачи упаковки лучше, чем самый известный и успешный на сегодняшний день гибридный группирующий генетический алгоритм (ГГГА) Эммануэля Фалкенауэра [3,9].
1. Формулировка задачи. BPP описывается следующим образом [1,3,5-10].
Дан определенный набор элементов |/| = n с весами W={w1 }, \W\ = j
такими, что 0 < wi < с, где с - объем каждого блока и набор блоков B={b1 ,...bN}, \B\ = N. I N , -
стве была не более с и N было минимальным.
Другими словами: даны n элементов (товара, изделий) и N блоков (рюкзаков, (bin)) wj - j, с - ( -
) . , чтобы общий вес элементов в каждом блоке не превышал с и число использованных блоков было минимально.
2. Целевая функция. Целевая функция (ЦФ) описывается следующим образом [2,3,6,7,9]:
*
Работа выполнена при поддержке РФФИ (грант № 07-01-00511, № 05-08-18115) и программ развития научного потенциала высшей школы 2006-2008 гг. (РНП.2.1.2.3193, РНП 2.1.2.2238).