УДК 658.512
Б. К. Лебедев*
ГЛОБАЛЬНАЯ ТРАССИРОВКА НА ОСНОВЕ ГЕНЕТИЧЕСКОЙ
ЭВОЛЮЦИИ
Введение. Задача глобальной трассировки в общем случае состоит из предварительного этапа, заключающегося в разбиении общей области коммутационного поля на отдельные области, и основного этапа, заключающегося в распределении соединений по областям и определения наборов цепей на границах каждой области [1,2,3]. В работе используется комбинаторный подход, основанный на методах генетической эволюции, реализующих процесс случайного направленного , ,
.
. -
ний по областям используется графовая модель в=(Х,и). Вершины графа х1еХ соответствуют областям а1е А. Если две области а1 и aJ имеют общую границу Ък , то вершины х1 и xJ , соответствующие этим областям, связываются ребром икеи. Для каждого ребра ик связывающего вершины х1 и xJ задается вес ак, равный пропускной способности общей границы Ък между областями, соответствующими вершинам х1 и хг
Пусть заданно множество цепей Т={11|1=1,2,_). Для каждой цепи определяется множество областей, в которых существуют контакты, связываемые этой цепью. На графе в множество областей, связываемых цепью ^еТ, соответствует множество вершин х1еХ. Распределить цепь ^ по областям это значит построить в графе в на множестве вершин х1 связывающую сеть. Каждая цепь Ъ после ее реализации, . . , -каемых ее границ [4,5].
В качестве исходных данных для каждой цепи Ъ задается параметр ф1 равный ширине цепи плюс расстояние между цепями. Иногда для одной цепи задаются два параметра - ф11 при распространении цепи по горизонтали, ф21 - по вертикали.
Пусть имеется некоторое решение задачи глобальной трассировки, в соответствии с которым построено множество связывающих сетей Е.
Пусть Е1 е Е множество связывающих сетей, построенных для множества цепей Т1 е Т , в состав которых входит ребро иг Обозначим через PJ сумму ресурсов, необходимых множеству связывающих сетей Е1 для прохождения через ребро иг Другими словами сумму ресурсов, необходимых цепям множества Т1 для пересечения границы Ър
в = 2 ф1 (1 | ЪеТО.
Для каждого ребра и графа в введен параметр тс] = а - Найдем в графе в
минимальное значение параметра и обозначим его wmm, т.е.
™тш ^ ^ ^тШ < ^]
Для нашей задачи цель оптимизации - максимизация параметра wmln. Дейст-
, ,
*
Работа выполнена при финансовой поддержке РФФИ (проект №99-01-00050)
детальной трассировке, и абсолютно неприемлем результат, когда Wj имеет отрицательное значение.
Распределение ресурсов коммутационного поля. Рассмотрим подход к формированию альтернативных вариантов связывающих сетей. Для каждой цепи Tj на множестве вершин X,, X = n + 1 графа G строится минимальное связывающее дерево (МСД) Dj с помощью алгоритма Прима.
Dj = (rjk | k = 1, 2,..., n}, где rlk - ребро минимального связывающего дерева.
Для каждого ребра rlk е Dl существует набор Vlk = {vlkj | j = 1, 2,.} вариантов маршрутов, связывающих на графе G соответствующие вершины. Каждому маршруту vlkj соответствует множество F(vlkj) ребер графа G. Формирование возможных маршрутов осуществляется следующим образом. Для ребра rlk е Dl, связывающего xn е G и xm е G, определяется множество вершин Xk с X, смежных вершинам xn и xm ребра rlk. Через множество вершин Xk, а так же через вершины xn и xm . ,
G. -
ний лежат некоторые вершины xi е X. Эти вершины являются узловыми для фор. ,
G, . -
минальным соединением или d-соединением.
Формирование d-соединений осуществляется из следующих соображений:
1) d- ,
.
2) d- , -
d-
одной цепи друг с другом.
Альтернативная реализация для цепи tl заключается в том, что для всех ребер rlk МСД Dl выбраны соответствующие варианты их реализации в виде d-соединений. Введем переменную ylkj:
ylkj = 1, если вариант vlkl ребра rlk, дерева Dl реализован;
ylkj = 0, в противном случае.
Альтернативная реализация цепи tl задается набором параметров y jk , удовлетворяющих следующей группе ограничений:
nt
Xyjj = !; k = 1,2,---, n; j = const.
j=1
Обозначим через Rll альтернативную реализацию Tl, выбранную при решении R/. Тогда в нашем случае
Ri = URn , a Rll = {vlki | k = 1, 2,., n,},
i
где vlkl - вариант d - соединения для реализации ребра rlk МСД Db выбранный в соответствии с альтернативой R Каждый вариант v* представляет собой набор
ребер Г(vf) графа G, составляющих соответствующий варианту маршрут на
G. Rll (Rll) G,
проходит цепь Т,, причем F(R,/) = ^ Г(vjк ) . Отметим, что если выбранные вак
d - Dl
И ТО же Uj, ТО совместно ОНИ используют В Uj объем ресурсов равный фу.
Некоторое решение задачи глобальной трассировки, заключается в том, что rlk , .
, d-соединений для реализации ребер связывающих деревьев, оптимизирующего пока-( ).
Рассмотрим задачу распределения соединений по областям как задачу рас. -сматриваемого ниже алгоритма.
В общем случае имеется множество потребителей Р={р,|1=1,2,...,п} и множество складов S = {Sj | j = 1, 2,., m}. Пусть А, - множество альтернатив потребителя Pi, а, = {а* | k = 1, 2,., v}.
Допустимым решением Rl, |Rl| = n является набор альтернатив, содержащий
l.
Для задачи распределения соединений по областям множество потребителей это множество цепей Т; множество складов S это множество границ В (или множество ребер U моделирующего графа G = (X,U)). Множество альтернатив А, это множество вариантов реализации связывающих сетей для цепи tl. Потребности потребителей в ресурсах ф^ определяются шириной цепи, задаваемой априорно. Основной целью является полное распределение цепей по областям и исклю-
, Wj ,
т.к. при этом невозможна 100% детальная трассировка (критерий Fi).
Введем функцию знака sj gn(wj):
slgn(wl) = +1, если w, > 0; slgn(wl) = 0, если w, = 0; slgn(w,) = -1, если w, < 0;
В качестве критерия оптимизации будем использовать величину:
m
F1 = Е sign(w ■) • 1 ^ max 1 j=1 j
Rl , -
тором число складов, чьих ресурсов недостаточно для обслуживания потребителей, минимально. Найдем минимальное значение wmln среди всех wj, т.е. Vj[wmln < wj]. В другой постановке задача представляется в виде:
F2 = wmln ^ max
Ri еR
Задача заключается в максимизации минимального остатка ресурсов на складах после обслуживания потребителей.
, F2 , -
ствует решения, для которых wmln > 0. Оптимизация по критерию F2 - максимизация минимального остатка ресурсов создает благоприятные условия для детальной .
Обозначим через ^ число потребителей р;, чьи альтернативы в соответствии с решением включают склады с отрицательными значениями те]. Это значит, что потребители в этом складе могут быть не полностью обслужены. Следующая постановка задачи представляется в виде:
= ^1 ^ тт
Я,еЯ
Задача сводится к минимизации числа не полностью обслуженных потребителей. Оптимизация по критерию Б3 приводит к минимизации числа непроложен-, .
Структура хромосом. Разработка генетического алгоритма включает три ос: , -ния хромосом; разработка основных генетических операторов; разработка общей структуры генетического поиска.
Разработка структуры хромосомы производилась так, чтобы гены в одних и тех же локусах хромосом или же соответствующие группы генов являлись гомоло-, -ра и мутации и делает возможным использование естественных механизмов гене.
Каждое двутерминальное соединение представляет собой маршрут, состоящий из горизонтальных и вертикальных отрезков. Обозначим через X = |х; |1 = 1,2,..., Пх} и У = {у |] = 1,2,..., Пу}
соответственно базовые множества горизонтальных и вертикальных отрезков, составляющих некоторое d - соединение (маршрут). Любой маршрут М на опорной сетке, связывающий точки А и В, состоит из вертикальных и горизонтальных отрезков. Отметим, что в любом маршруте число и размеры отрезков не изменяются. Вариант маршрута описывается следующим списком отрезков:
М = < Х1, У1, У2, Х2, Хз, уз >.
Различные маршруты отличаются различными вариантами чередования горизонтальных и вертикальных отрезков, причем отрезки одного вида (горизонтальные или вертикальные) имеют строго фиксированное взаимное расположение. Обозначим через г1 значение 1-го элемента списка (маршрута) М. Это может быть либо некоторый горизонтальный отрезок х1, либо - вертикальный отрезок у1.
:
^(11,12) [(г11 = х1) & (г 12 = х]) & (11 < 12) ^ (1 < .Ш; ^(11,12) [(г 11 = У1) & (г 12 = у]) & (11 < 12) ^ (1 < ^].
Этим обстоятельством можно воспользоваться для кодирования маршрута.
Поставим в соответствие горизонтальному отрезку ноль, а вертикальному -единицу. Тогда маршрут М в закодированном виде имеет вид:
М* = < 0, 1, 1, 0, 0, 1>.
Число нулей равно пх, а число единиц равно пу.
Для обратного перехода необходимо для каждого элемента списка М* определить порядковый номер 1 в списке среди элементов своего вида. Тогда, если это был ноль, то ему соответствует х1, а если это была единица, то ей соответствует у1.
Будем использовать множество нулей в качестве опорного множества для кодирования списка М*. Сформируем на базе опорного множества нулей множество
, , -лями код некоторого маршрута.
Если число нулей пх, то число позиций Р равно пх + 1.
Каждая из пу единиц может быть расположена в любой из позиций
Р1 е Р = { р1 | 1 = 1, 2, ..., (пх + 1)}.
Всевозможным вариантам размещения единиц в позициях Р совместно с
*, -
тельно и всевозможные маршруты М, соединяющие две точки.
Распределение единиц по позициям будем задавать с помощью списка Р, размер которого равен пу, а значением элемента списка является число, лежащее в диапазоне 1 (пх + 1). Таким образом, Р является кодом маршрута, соединяющего две точки на опорной сетке.
Например. Пусть пу = 4, пх = 4, Р = 5, 3, 3, 1.
Тогда М* = < 1, 0, 0, 1, 1, 0, 0, 1 >, а М = < у1, х1, х2, у2, у3, х3, х4, у4 >.
Отметим, что порядок расположения элементов в списке Р не имеет значения, важно только какие значения имеют элементы списка р.
Очевидно также, что для построения по коду Р маршрута на опорной сетке необходимо описание геометрии этой сетки и координаты связываемых точек.
На основе вышеизложенного хромосома, задающая распределение соединений по областям, имеет следующую структуру.
Хромосома Н = { Н1 | 1 = 1, 2, ..., п } представляет собой объединение множества частей Н1 . Каждая часть Н1 соответствует цепи Ъ и несет информацию о распределению по областям цепи ^.
В свою очередь каждая часть Н1 = { Н1к | к = 1, 2, ..., п1 } является объединением частей Н1к. Каждая часть Н1к соответствует ребру г1к дерева Б1 построенного для цепи Ъ, и несет информацию о двутерминальном соединении (маршруте), реализующем ребро г1к.
Структура Н1к эквивалентна структуре кода Р, несущем информацию о двутерминальном соединении (маршруте), реализующем ребро г1к. Н1к состоит из генов g1lk, значениями которых являются числа, лежащие в диапазоне 1 те1к, где те1к рав-
. Н1к
равно числу вертикальных участков в маршруте.
Как уже указывалось выше, порядок расположения элементов в списке Р и
Н1к . -
, . Р1к -
Н1к. , -
ствует Р1к списков Н1к. Тогда одному решению задачи распределения соединений по областям соответствует II Рл хромое ом.
I к
Устранить избыточность можно путем использования модифицированной , ,
Н1к .
Формирование исходной популяции хромосом осуществляется случайным . Н1к -
ваются случайные значения в диапазоне 1 те1к.
При использовании модифицированной структуры в пределах каждой части
Н1к .
, (
), -ляются: п - число цепей; п1 - число ребер г1к каждого дерева Б1, построенного для соответствующей цепи; для каждого ребра г1к координаты связываемых точек, число горизонтальных участков - (те1к - 1) и число вертикальных участков у1к, кроме того декодирование хромосомы опирается на описание опорной сетки, построенной в соответствии с вышеприведенной методикой, и на описание всех горизонтальных и вертикальных отрезков.
Трудоемкость декодирования как основной, так и модифицированной хромосом имеет одну и ту же оценку О(Ь), где Ь - длина хромосомы.
. -ся кроссинговер и мутация. Кроссинговер заключается в обмене гомологичными , .
Для описанной выше основной структуры хромосомы для любой пары хромосом гомологичными являются гены, расположенные в одном и том же локусе, а гомологичными участками являются участки, соответствующие одной и той же Н1, Н1к. -
синговера: К1, К2, К3. При кроссинговере К1 осуществляется обмен гомологичными Н1, 2 - Н1к, -
синговере К3 - обмен гомологичными генами.
Во всех случаях реализация кроссинговера осуществляется следующим образом. Последовательно просматриваются гомологичные участки или гены и с вероятностью РК1 для К1, РК2 для К2, Ркз для К3 осуществляется обмен.
В случае модифицированной структуры хромосомы гомологичными будут те ,
Н1к.
Н1к .
, Н1к , . .
Н1к. Н1к -
сы, начиная со второго. Если для пары генов g1 ^ и g21, расположенных в текущем локусе 1 родительской пары хромосом выполняются условия: лгк 1к гк 1к
gl 1 > g21_1 И g21 > gl 1_1 ,
(1 - 1) 1 .
Участки хромосом между двумя соседними секущими линиями для данной родительской пары хромосом будут гомологичными, т.к. обмен участками не при-
Н1к.
, 3 -
ется следующим образом. Предварительно родительская пара разбивается на го. -
РК3 .
Суть оператора мутации в произвольном изменении значений генов. Реализация оператора мутации осуществляется следующим образом. Последовательно
. Н1к,
которой расположен рассматриваемый локус. С вероятностью Рт осуществляется мутация гена в рассматриваемом локусе. При этом, в случае использования основной структуры хромосомы, гену присваивается случайное значение в диапазоне 1 те1к, где те1к - число горизонтальных участков в маршруте, реализующем ребро г1к,
плюс единица. В случае модифицированной структуры хромосомы ген g ^ пр ини-
мает случайное значение в следующем диапазоне:
ik ik ik „
1 < gl < gl+1, если gl первый в Hlk и | Hlk | > 1;
ik ik ik g l_2 < g l < Wik, если g l - последний в Ha, и | Hlk | > 1;
ik ik ik ik
gl_1 < gl < gl+1, если gl - ни первый, ни последний и | Hlk | >1;
1 < g l < 2, если | Ha, | = 1.
При таком способе гены по-прежнему останутся упорядоченными по возрас-
Hlk.
Как видно из алгоритмов реализующих операторы кроссинговера и мутации оценка их временной сложности имеет вид 0( L ), где L - длина хромосомы.
Организация процедуры генетического поиска. На начально м этапе работы генетического алгоритма осуществляется построение модели КП, построение минимальных связывающих деревьев для всех цепей, формирование описаний со, , , -шруты и другой информации, необходимой для формирования структуры хромо,
выполнения ее декодирования и организации оперирования с хромосомами.
Для организации генетического поиска формируется исходная популяция .
Пи = { Hm | m = 1, 2, ..., M }, где М - размер популяции.
В работе используется описанный выше принцип случайного формирования .
, , -ственной сложности, равную O(L • M).
В качестве фитнесса для оценки хромосом используется один из показателей: Fb F2, F3* = 1 / 1 + F3 или же их аддитивная свертка. Цель генетического поиска -.
Algorithm ГЛОБАЛЬНАЯ ТРАССИРОВКА begin
задача = ИСХОДНЫЕ^АННЫЕ; генетика = НАСТРОЙКА; деревья = МСД (задача); маршруты =СОСТАВ (задача, деревья); нач^опул = ФОРМ (задача, генетика, маршруты); фитнесс = РАСЧЕТ (нач^опул, задача, маршруты);
К = число_генераций; while K > 0 do {
кросс^опул = 0; мут_попул = 0;
N1 = число_крос_1;
N2 = число_крос_2;
N3 = число_крос_3; while N1 > 0 do
{
род_пара = СЕЛЕК_ПАРЫ (нач_попул, фитнесс, генетика); доч_пара = КРОССИНГ1 (род_пара, генетика); кросс_попул = ВКЛЮЧИТЬ (кросс_попул, доч_пара);
N1 = N1 - 1;
};
while N2 > 0 do
{
род_пара = СЕЛЕК_ПАРЫ (нач_попул, фитнесс, генетика); доч^ара = КРОССИНГ 2 (род_пара,генетика); кросс^опул = ВКЛЮЧИТЬ (кросс^опул, доч^ара);
N2 = N2 - 1;
};
while N3 > 0 do
{
род^ара = СЕЛЕК^АРЫ (нач^опул, фитнесс, генетика); гомолог = РАЗБИЕН (род^ара);
доч^ара = КРОССИНГ 3 (род_тра, гомолог, генетика); кросс^опул = ВКЛЮЧИТЬ (кросс^опул, доч^ара);
N3 = N3 - 1;
};
фитнесс = РАСЧЕТ (кросс^опул); тек^юпул = ОБЪЕДИНИТЬ (нач_поп}’л, кросс_тпул); while N4 > 0 do {
мутант = МУТАЦИЯ (тек^юпул (N4), генетика); мут_попул = ВКЛЮЧИТЬ (мут^опул, мутант);
N4 = N4 - 1;
};
фитнесс = РАСЧЕТ (щт^ощт);
тек^юпул = ОБЪЕДИНИТЬ (тек^юпул, мут_попул);
лучшрешение = ВЫБОР (тек^опул, фитнесс);
К = К - 1;
нач^опул = СЕЛЕК^ОПУЛ (тек^опул, фитнесс, генетика);
};
end
Рис.1.
На рис.1 представлен псевдокод алгоритма генетического поиска для задачи гло-. .
Массив задача содержит параметры, описывающие области и структуру комму, , , описание цепей, критерии оптимизации и т.п.
Массив генетика включает основные параметры, управляющие процессом генетического поиска: К - число генераций; М - объем популяции; Pk1, Pk2, Pm - вероятности кроссинговера и мутации; N1, N2, N3 - число пар для кроссинговера Ku K2, K3; ti - тип селекции при выборе родительской пары; t2 - тип селекции при отборе популяции;
С помощью процедуры МСД (задача) на опорной сетке для каждой цепи t строится алгоритмом Прима минимальное связывающее дерево Da. Информация о построенных деревьях заносятся в массив деревья. Процедурой СОСТАВ (задача деревья) формируется массив маршруты, включающий описания для каждого ребра каждого
дерева вертикальных и горизонтальных отрезков, из которых образуется маршрут, реализующий ребро. Процедурой ФОРМ (задача, генетика, маршруты) генерируется начальная популяция хромосом, которая заносится в массив нач^опут. Процедурой РАСЧЕТ (нач_попул, задача, маршруты) рассчитывается значение фитнесса для каждой хромосомы в популяции, рассчитанные значения заносятся в массив фитнесс.
На каждой генерации (число генераций равно К) в начале реализуются операторы кроссинговера Ки К2, К3, мутации, а затем расширенная популяция подвергается редукции с помощью селективного отбора, т.е. уменьшению до начального .
Операторы кроссинговера выполняют N раз для кроссинговера Кь N - для К2, N - для К3. Каждый раз процедурой СЕЛЕК_ПАРЫ (нач^опул, фитнесс, генетика) выбирается ро дительская пара.
_ , -стройке механизмов генетического поиска. Это может быть "принцип рулетки", выбор на основе рейтинга и т.д.
С помощью процедур КРОССИНГ !, КРОССИНГ 2, КРОССИНГ_3 реализуется оператор кроссинговера и образуется пара дочерних хромосом дочпар а, которая процедурой ВКЛЮЧИТЬ (кросс^опул, доч пара) включается в массив
_.
Для модифицированной структуры хромосомы перед выполнением процедуры КРОССИНГ3 (род^ара, гомолог, генетика) выполняется процедура
РАЗБИЕН (род_пара), с помощью которой каждая часть И1к у пары хромосом разбивается на гомологичные участки. Информация о гомологичных участках заносится в массив гомолог.
С помощью процедуры РАСЧЕТ (кросс^опул) рассчитываются значения фитнесса для всех хромосом массива кросс^опул. Затем процедурой ОБЪЕДИНИТЬ (нач^опул, кросс^опул) массивы нач^опул и кросс^опул объединяются в тек_попул.
Каждая хромосома популяции тек^опул подвергается мутации с помощью процедуры МУТАЦИЯ (тек^опул (N4), генетика), при этом образуется новая индивидуальность - мутант, которая процедурой ВКЛЮЧИТЬ (мут^опул, мутант) включается в популяцию мут_попул.
Затем для каждой индивидуальности массива мут^опул процедурой ( _ ) .
Процедура ОБЪЕДИНИТЬ (тек^опул, мут^опул) объединяет популяции тек_попул и мут_попул в одну тек_попул. Процедурой ВЫБОР (тек_попул, фит) .
Заключительным этапом в пределах одного поколения является реализация процесса "естественного отбора", то есть сокращение популяции тек^опул до размеров начальной популяции нач^опул.
Селекция осуществляется процедурой СЕЛЕК^ОПУЛ (тек^опул, фитнесс, ), " ".
Временные затраты в пределах одного поколения складываются из затрат на декодирование хромосом ^, затрат на операторы кроссинговера ^, мутации селекции ^, расчета фитнесса Ц. Все эти оценки имеют линейную зависимость. Отсюда временные затраты в пределах поколения для популяций хромосом объема М имеют оценку трудоемкости 0(Ь • М), где Ь - длина хромосомы.
Экспериментальные исследования. Основной целью экспериментальных исследований являлось выявление зависимости и влияния на качество решения задачи глобальной трассировки различных комбинаций управляющих параметров
. ,
являются Рк = 0,35; Рм = 0,1; М = 80; К = 120.
Вероятность получения оптимального решения после одного прогона генетического алгоритма составила 0,8. Исследования трудоемкости алгоритма показали,
, (L).
120 200 размером 10 х 10 составило 48 секунд.
Экспериментальные исследования показали, что наилучшие по качеству решения получались при использовании подхода, связанного с распараллеливанием
. -люционирование нескольких подпопуляций. На каждой генерации хромосомы случайным образом мигрируют из одной подпопуляции в другую. Исследования пока, , -шения составила 0,94. Сравнение с алгоритмами, приведенными [1,2,3] показало, что при том же и даже меньшем времени работы предложенный алгоритм дает более качественные решения. Преимущество особенно заметно для задач большой .
ЛИТЕРАТУРА
1. Naveed Sherwani. Algorithms for VLSI physical design automation // Kluwer academic pab-lishers. Boston / Dordrecht / London. - 1995.
2. K.W.Lee and C.Sechen. A new global ronter for row - based layout // Proceedings of IEEE International Conference on Computer - Aided Design, November, 1998.
3. C.Chiang, M.Sarrafraden, C.K.Wong. A Weighted - Steiner - Tree - Based Global Router / Manuscript. - 1992.
4. . . . // -
нетика. - 1980. - Вып.1. - С. 217.
5. . . . // -
тирования электронной аппаратуры. - Таганрог: Изд-во ТРТИ, 1988. - Вып.1. - С. 9-92.
УДК 681.3.001.63+007.52:611.81
В.А. Костенко, P.JI. Смелянский, АХ. Трекин СИНТЕЗ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ, ОПТИМАЛЬНЫХ ПО ЧИСЛУ
,
АЛГОРИТМОВ
Введение. Задача синтеза архитектур вычислительных систем (ВС) в самом общем виде может быть поставлена следующим образом. Для заданного поведения прикладной программы H(PR) требуется синтезировать архитектуру HW, параллельную прикладную программу HP и выбрать способ организации параллельного вычислительного процесса р. При этом должны оптимизироваться критерии оцен-
{fi} {gi} .
В качестве параметров оптимизации (управляемых переменных) выступают варьи-
HW, HP р. , -
ничения на допустимые решения и варьируемые параметры моделей определяются при конкретизации задачи синтеза архитектур.
Задача синтеза архитектур ВС относится к классу задач структурного синтеза. В отличии от задач параметрического синтеза, задачи структурного синтеза в общем случае не могут быть отнесены к классу формально разрешимых. При реше-