3. Д.И.Батищев. Генетические алгоритмы решения экстремальных задач. Нижний Новгород.: НГУ, 1995.
4. Fast Effective Heuristics for the Graph Bisectioning Problem. Transaction on computer desighn, IEEE, vol.9, N1, January 1990.
УДК 658.512
В.Б. Лебедев ПЛАНИРОВАНИЕ СБИС МЕТОДОМ ГЕНЕТИЧЕСКОГО ПОИСКА
1. Введение
Планирование СБИС заключается в размещении на поле кристалла блоков, имеющих заданную площадь и не имеющих фиксированных размеров [1]. Блоки и кристалл имеют форму прямоугольников. В результате планирования решаются сразу две задачи: определяется взаимное расположение блоков друг относительно друга, т.е. их размещение, также фиксируются размеры каждого блока. В результате планирования строится план кристалла, представляющий собой охватывающий прямоугольник, разделённый горизонтальными и вертикальными сегментами на неналагающиеся прямоугольники, в которые следует поместить соответствующие блоки. Это более сложная задача, чем стандартная задача размещения блоков с фиксированными размерами.
Основной целью оптимизации является минимизация общей площади кристалла.
Задача планирования относится к классу NP. Анализ существующих подходов к Решению поставленной задачи показал, что наиболее удачными являются подходы основанные на методах моделирования отжига [2,3] и методах генетической эволюции [4].
Эти методы отличаются друг от друга, как постановками, так и моделями. Однако Недостаточно полный учёт специфики рассматриваемой задачи, и недостаточно адекватные способы представления оставляют актуальной проблему построения более совершенных эволюционных моделей.
В данной работе рассматриваются генетические процедуры для решения задачи планирования, отличительными чертами которых является то, что решение для более полного Учёта специфики представляется тремя хромосомами, что увеличивает возможности Целенаправленного комбинирования. С другой стороны гены в одних и тех же локусах хромосом являются гомологичными, что упрощает выполнение генетических операторов кРоссинговера и мутации.
2. Постановка задачи планирования
Проблема планирования формулируется следующим образом [5].
Имеется множество модулей М = {m,|i=l,2,...,n}. Каждый модуль характеризуется тРойкой <Sj,lj,Uj>, где Sj- площадь модуля, а параметры 1; и U* задают нижнюю и верхнюю h
Пэаницу значения —-,т.е. 1. 5а—*-^(7,., где
Wt W, ‘
hi - это высота модуля, Wj - ширина модуля.
В качестве плана кристалла будем использовать план получаемый путём рекурсивного ^Пользования «гильотинного разреза», т.е. последовательного разрезания прямоугольников на *ве части.
На рис. 1(a) представлен план, а на рис 1(b) соответствующее ему дерево <<гильотинного разреза».
План для множества модулей М представляет собой прямоугольник Я, разрезанный вертикальными и горизонтальными линиями на множество областей г, в каждую из которых помещается соответственно модуль гп;. На дереве цифрами помечены вершины, соответствующие разрядам, причём V - вертикальный разрез, а Н - горизонтальный разрез. Буквами помечены вершины соответствующие областям. Каждая область п имеет размеры х, и У; . Очевидно, ЧТО размеры области ДОЛЖНЫ соответствовать ограничениям Б; < X) у,
И 1; <^-<иГ х/
В некоторых случаях задают границы отношения высоты к ширине прямоугольника Я-Площадь области г* определяется как х, • у,, а общая площадь как ^.Х, у (
Будем считать, что связи между модулями ш, и гт^ связывают центры соответствующих областей п и Обозначим через длину связей между т; и mj а через с^ - стоимость связей.
П П
Тогда критерий оптимизации при планировании имеет вид: = +^'.С^(1- при
1=1
у.
соблюдении ограничений 81 ^Х* У; И 1; ^' ДЛЯ I = 1,2,...,п.
*/
3. Генетический алгоритм
Как уже указывалось выше плану кристалла на основе «гильотинного разреза» соответствует дерево разрезов, листьями которого являются вершины, соответствующие блокам. Каждая такая вершина имеет вес примерно равный площади соответствующего блока. Просмотром дерева разрезов снизу вверх присваиваются веса всем встреченным вершинам-При этом вес родительской вершины равен сумме весов пары её дочерних вершин-Взвешенное дерево разрезов содержит всю информацию необходимую для построения плана.
Задать дерево разрезов это во первых задать структуру этого дерева, т.е. последовательность бинарных разрезов, во вторых для внутренних вершин дерева, соответствующих разрезам указать тип разреза Н или V. В третьих пометить висячие вершины дерева (листья ) номерами блоков. Обозначим через X = { Х| |! = 1,2,..,п } множество висячих вершин дерева разрезов, которые располагаются в горизонтальном ряду слева направо. Задать разметку блоков можно с помощю вектора (} = < | ! = 1,2,...,п >, где я* "
номер блока. Например для дерева на рис.1(Ь) вектор (} имеет вид: () = < А,В,Е,Р,С,0,Е,Н,1 >•
С помощью перестановки элементов вектора О можно задать любую разметку вершин множества X.
Основы генетического алгоритма составляют принципы кодирования и декодирования хромосом, генетические операторы и структура генетического поиска, основанная на идеях естественного отбора.
В работе решение кодируется набором из трёх хромосом. Хромосома Н1 несёт информацию о разметке множества вершин X. Хромосома Н2 содержит информацию о структуре дерева. Хромосома НЗ содержит информацию о типах разрядов ( Н или V).
Пусть п - число областей плана ( число вершин множества X ). Хромосома Н1 имеет вид, представленный на рис.2. Число генов равно ( п-1 ).
Н1
& §2 Из ёп-1
Рис.2
Каждый ген §, может принимать любое значение Ъ( gj) в интервале от 1 до ( п+1-і).
Например: для п = 8, 1 5 Z(gl)£&, 1 £ 1 < 1 ^
Декодирование хромосомы НІ производится следующим образом. Пусть для п = 8
имеется хромосома Н1 < 3,5,3,4,4,2,2 > и пусть имеется опорный вектор В1 <
1*2,3,4,5,6,7,8 >, число элементов которого равно п, а значение элементов изменяются от 1 до п.
Рассматриваем по порядку гены хромосомы и в соответствии с их значениями выбираем элементы и записываем их в порядке выборки в вектор С?.
Для §| г( gl ) = 3. Выбираем в В1 элемент Ь'3 ( это 3 ) и записываем его на первое
^есто формируемого вектора (}, т.е. Яі = 3.
Удаляем элемент Ь‘3 из В1 и получаем вектор В2 = < 1,2,4,5,6,7,8 > содержащий 7 Цементов. Следующим выбирается g2 , & ) = 5. Отыскиваем элемент Ь23 вектора В2 это 6.
Следовательно g2 = 6. Удаляем из В2 элемент Ь25, получаем вектор В3 = < 1,2,4,5,7,8 >. Далее:
— г(ы = з Ь33 = 4 Кз = 6 В4 = < 1,2,5,7,8 >
_ Е4) = 4 Ь44 = 7 Й4 = 6 В5 = < 1,2,5,8 >
— г(Е5) = 4 00 II ■О В5 = 6 В6 = < 1,2,5 >
2<86) = 2 іЛ = 2 Кб = 6 В7 = < 1,5 >
Щ, )= 5 Ь72 = 5 87 = 6 В8 = < 1 >
вв = Ь8, = 1.
^ В итоге получаем вектор (} = < 3,6,4,7,8,2,5,1 > , задающий разметку множества вершин
Рассмотрим структуру хромосомы Н2. Введём алфавит А = { X, • }. Структуру дерева Срезов можно задать используя на базе алфавита А польское выражение для бинарного ^еРева, где X соответствует листьям дерева разрезов ( областям ), а • -соответствует Утренним вершинам дерева ( разрезам ). Польские выражения для деревьев, представленных На РИс.З(а) и З.(Ь) имеют вид: ХХ«ХХ*Х«»;иХХ*ХХ**Х»;
(а) (Ь)
Рис.З
Процесс восстановления дерева по польскому выражению достаточно прос* Последовательно слева направо просматривается польское выражение и отыскиваются букв^ типа •, соответствующие разрезам. Каждый такой разрез обьединяет два ближайших подграф3 расположенных в полькой записи слева от знака • образованных на предыдущих шагах. № рис.З(а) и 3(Ь) показаны контуром образованные подграфы при просмотре польской выражения.
Отметим основные свойства польского выражения для выполнения которь1* необходимо, чтобы записи соответствовало дерево разрезов.
Обозначим через пх - число элементов польского выражения типа X, а через п. ЧисП0 элементов типа •.
Для дерева разрезов всегда выполняется равенство пх = п. + 1.
Если в польском выражении провести справа от знака • сечение, то слева от сечени* число знаков X больше числа знаков • по крайней мерс на единицу. Первый знак • в польской выражении ( при просмотре слева направо ) может появиться только после двух знаков X Пронумеруем позиции между знаками X как показано на рис.4.
ХХ'_Х2_Х3_Х4 ... х^-'
Рис.4
Максимальное число знаков • , которое может появиться в позиции, равно номерУ позиции. Напомним, что общее число п. = пх - 1.
Если польское выражение соответствует выше перечисленным свойствам, то еМУ соответствует дерево разрезов.
Хромосома Н2 имеет вид представленный на рис.5.
ё2 ё°•
Рис.5
В результате декодирования хромосомы строится польское выражение. Число генов в хромосоме равно п., т.е. числу знаков Значение гена gi колеблется в пределах от 1 до п., т-е. 1 ^ ) <1 п.. Значение гена указывает номер позиции в польском выражении в которую
необходимо поместить знак •.
Например: пусть для п. = 4 имеется хромосома Н2 = < 4,2,2,4 >. Польское выражение, соответствующее хромосоме, имеет вид:
XX 'х*2»х3х-4*
Дерево, соответствующее данному польскому выражению, имеет вид, представленный на рис.б(а);
(а) (Ь)
Рис.6
С помощью хромосомы НЗ задаются типы разрезов ( Н или V ). Число генов ИЗ равно п.
Значением гена является 0 или 1, 0 - соответствует Н и 1 - соответствует V. Разметка внутренних вершин (определение типа разрезов ) осуществляется последовательно в порядке Расположения знаков «в польском выражении.
Например: НЗ = < 1,0,0,1 >. Модифицированное с учётом НЗ польское выражение примет вид: ХХХНУХХУН. Пусть Н1 = < 1,1,1,1,1 >. Соответствующий Н1 вектор <3 ^Меет вид: 0 = < 1,2,3,4,5 >.
Тогда для Н1 = < 1,1,1,1 >, Н2 = < 4,2,2,4 > и НЗ = < 1,0,0,1 > дерево разрезов имеет вид, Представленный на рис.б(Ь). А план разрезов имеет вид, представленный на рис.7.
Рис.7
Размер описывающего прямоугольника плана определяется при просмотре дерева снизу вверх исходя из размеров областей в которые помещаются блоки.
Процедура генетического поиска реализуется следующим образом. Формируется исходная популяция решений. Каждое решение представлено набором из трёх хромосом. Для генов хромосом Н1 и Н2 формируются диапазоны значений, которые они могут принимать. Гены хромосомы НЗ всегда принимают одно из двух значений - О или 1. На каждой итерации с помощью генетических операторов кроссинговера и мутации генерируются новые решения Затем расширенная популяция путём селективного отбора усекается до исходного размера отбрасыванием решений с наихудшим значением фитнесса( fitness ).
В работе используются два типа операторов кроссинговера К1 и К2. С помощью К1 новые решения получаются путём комбинирования составами хромосом родительской пары. Задаётся параметр Рц вероятность кроссинговера. Просматриваются последовательно хромосомы от Н1 до НЗ и с вероятностью Рц осуществляет обмен гомологичными хромосомами родительской пары.
На рис.8(a) представлена родительская пара, а на рис.8(Ь) дочерняя пара образованная обменом пары хромосом н'2 и Н22.
I ГнПК1[нГ
н,
н2 №
II
L
п
(а)
(Ь)
Рис.8
С помощью К2 новые решения образуются путём обмена гомологичных хромосом родительской пары. Задаётся параметр Ри вероятность кроссинговера. Просматриваем последовательно, начиная с первого, локусы хромосом. С вероятностью Ри осуществляется обмен гомологичными генами.
На рис.9(а) представлена родительская пара, а на рис.9(Ь) дочерняя пара, после обмена
генами.
н,
н2
Нз
I 1111 4224 100 1
0 1
iiii 11 t
II 3221 1423 О
(а)
I
II
Hi 3 12 1 12 11
Н2
4424
1223
(Ь)
Нз 110 1 000 1
Рис.9
Оператор мутации выполняется следующим образом. Задаётся параметр Р„ вероятность мутации. Просматриваются последовательно локусы хромосом решения. С вероятностью Р„ осуществляется мутация гена в текущем локусе. Мутация заключается в принятии геном случайного значения из заданного диапазона значений для гена в данном локусе.
В основу селекции, как для выбора пары хромосом при кроссинговере, так и при отборе популяции положен “принцип рулетки”. В соответствии с этим принципом для всех
Решений устанавливается вероятность выбора. Вероятность выбора решения К|: } осуществляется по формуле:
Р, =——,гдеЁ1 =1—!—
{ H i, H i, H j
Ft+l
Решение с большими значениями фитнесса ^ имеют большую вероятность выбора.
4 Экспериментальные исследования
Алгоритм планирования был реализован на языке Си++. Экспериментальное Исследование производилось на ЭВМ типа IBM PC/AT Pentium 166.
Наилучшие результаты генетический алгоритм планирования показал при следующих значениях управляющих параметров: Pki = 0.3 , Р^ = 0.4 , Р„ = 0.1 , М = 50 и Т = 100, где М -°бьём исходной популяции, а Т - число итераций ( генераций ). Исследованию подвергались Примеры, содержащие до ста (100) блоков.
Исследования показали, что при фиксированном значении управляющих параметров трудоёмкость алгоритма имеет линейную зависимость и пропорциональна 0( N ), где N -Число блоков.
Для сравнения экспериментальных данных были выбраны наиболее известный диетический алгоритм [ 4 ] и алгоритм на основе моделирования отжига. В качестве меры сРавнения исследовалось число итераций при котором достигалось решение близкое к °птимальному. На основе экспериментальных исследований было установлено, что Р^работанные и сравниваемые алгоритмы позволяют получать решения близкие к
оптимальным, однако, разработанный алгоритм обладает большим быстродействием в том смысле, что для достижения высокого результата требуется меньшее число итераций.
5 Заключение
Разработка структуры, методов кодирования и декодирования хромосом решения, генетических операторов опиралось на учёте специфических особенностей задачи и её модели. При этом было обеспечено свойство гомологичпости генов и хромосом, что упрощает структуры генетических операторов и делает их ближе к естественным.
Представление одного решения в виде трёх хромосом, даёт возможность использовать генетический оператор комбинирования набором хромосом в одном решении, что также является приближением к естественной эволюции. Кроме того разделение решения на три хромосомы даёт возможность организации поиска решений в различных постановках оставляя отдельные типы хромосом ( III или Н2 или НЗ ) неизменяемыми в процессе генетического поиска.
Например: при фиксированных Н1 и НЗ искать оптимальное решение только лишь за счёт изменения типов разрезов(Н или V)
Источником усовершенствования может стать правильная настройка управляющих параметров. Исследования показали достаточно высокую эффективность разработки генетических процедур.
ЛИТЕРАТУРА
1. D.P. LaPotin and S. W. Director, ” Mason; A global floorplaning tool,” in Proc .IEEE Int.Conf.on \ Computer - Aided Design, Santa Clara, CA, 1985, p.p. 143-145.
2. C.Sechen and A.Sangiovanni Vincentelli, " The Timberwolf placement and routing package,” IEEE J. Solid-State Circuits, Vol. SC-20, p.p.510-522,1985
3. D.F.Wong, H.W.Leong, and C.L.Lin Simulated Annealing for VLSI Design. Boston, MA Kluwer Academic, 1988
4. J.P.Cohoon, S.U.Hegde, W.N.Martin, D.Richards, Distributed genetic algorithms for the floorplan design problem ”, in Proc. IEEE Transactions on Computer - Aided Design, VoI.10.No
4, April 1991. p.p.483-492.
5. D.F.Wong and C.l.Lin, A new algoritm for floorplan design, Proc. 23 rd ACM/IEEE Design Automation Conf., Las Vegas, NV, 1986,p.p.l01-107
УДК 658.512
В.М. Курейчик, В.В. Курейчик1 ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ В КОМБИНАТОРНО-ЛОГИЧЕСКИХ ЗАДАЧАХ ИСКУССТВЕННОГО ИНТЕЛЕКТА
В последнее время наблюдается неуклонное использование математических методов в экономике. Для построения математических моделей (ММ) экономических задач эффективно используется теория графов, а для разработок эвристических алгоритмов - методы и модели исследования операций. Одной из важнейших экономических задая является транспортная задача (ТЗ). Ее постановка следующая: задано некоторое множество товара Т={Т1, Т2,..., Т„Ь |т„|=п, расположенное в различных местах М={М,, М2,..., Мр}, |м|=р. Товар должен быть перевезен в другие пункты П={П|, П2,..., Пч}, | П | =я. При этом задана матрица стоимости перевозок, определяющая стоимость каждой перевозки М| Пч. Необходимо построить
1 Работа выполнена за счет частичного финансирования по гранту РФФИ ГР № 99-01-00050