Научная статья на тему 'Диетический алгоритм планаризации на основе матрицы цепей'

Диетический алгоритм планаризации на основе матрицы цепей Текст научной статьи по специальности «Математика»

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

Текст научной работы на тему «Диетический алгоритм планаризации на основе матрицы цепей»

Табл.4

тип селекции размер популяции

50 1000 200 250

элитная частота 0 0,45 0,80 0,95

значение К 7 3 1 1

колесо Рулетки частота 0 0,1 0,55 0,75

значение К 8 5 3 3

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

ЛИТЕРАТУРА

*• Селютин В.А. Машинное конструирование электронных устройств. - М.: Сов. Радио, 1977. Калашников В.А., Сергеев А.С. Разработка инвариантных методов трассировки в технологической схеме процесса проектирования топологии БИС на основе синхронного формирования соединений, ориентированных для реализации на супер-ЭВМ с одно- и многопроцесорной архитектурой. Труды 2 Международной научно-технической конференции “Актуальные проблемы фундаментальных наук”. М.: МГТУ им. Баумана, т. 6> с. А51-А55.

Калашников В.А., Сергеев А.С. Алгоритм построения сети соединений на КП и его применение для трассировки соединений. Труды научно-технической конференции “Автоматизация проектирования РЭА и ЭВА”, Пенза, ПДНТП, 1992, с. 26-28.

Давиденко В.Н. Надъячеечная трассировка на основе генетических процедур. - Известия 5 ТРТУ, №2, 1998, с. 22-27.

Liening J. A Genetic Algorithm for Channel Routing in VLSI Circuits. Evolutionary Computation, v. 1, № 4, p. 293-311.

Rostan J. Weaver: A knowledge - Based Routing Expert. - IEEE Design & Test, 1986.

УДК 658.512

^ Л.А. Гладков

Диетический алгоритм планаризации на основе матрицы ЦЕПЕЙ

Несмотря на то, что проблема определения планарности давно известна и хорошо И0в ена> она, тем не менее, не потеряла своей актуальности, о чем свидетельствует появление ЭтаЬ|х публикаций, посвященных различным аспектам решения данной проблемы. Кроме того, Наст3аДаЧа тесно связана с другой важной задачей САПР минимизацией пересечений. В Лл °Я1Цей статье представлен алгоритм позволяющий не только однозначно ответь на вопрос -г,Ло аРен ли исследуемый граф? - но и, в зависимости от полученного ответа либо получить МакСКУЮ УкладкУ Данного графа, либо минимизировать пересечения путем выделения его СиМальной планарной части.

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

Рис. 1

Разработанный алгоритм имеет блочную структуру, где каждый последующий блок использует в качестве исходных данные предоставляемые предыдущим блоком (за исключением начального блока). Укрупненная структурная схема алгоритма представлена на рисунке 1.

Блок ввода исходных данных (БВ) служит для преобразования заданного произвольным образом исходного графа к форме исходных данных используемых данным алгоритмом.

Блок генерации циклов (БГЦ) на основании данных, полученных от блока ввода производит генерацию всех циклов заданной длины, причем выполняет это действие столько раз, сколько потребует от него блок анализа (БА), являясь, таким образом источником данных для блока генетических операторов (БГО), который собственно и выполняет планаризацию графа.

И, наконец, блок укладки (БУ) на основе решений, полученных БГО выполняет плоскую укладку графа, либо его максимально планарной части.

Согласно Мак-Лейну, граф в планарен, если из всех возможно выделить базис из р -циклов, таких, что любое ребро графа принадлежит одновременно двум и только двум циклам из выделенного подмножества, причем число циклов р = т - п + 2.

В данном алгоритме используется модифицированная форма списка смежности 1^, где каждой вершине ставятся в соответствие номера ребер, инцидентных рассматриваемой вершине, например, Ьхі = {1и, 2и, Зі,*, 4і>4, 51)8}. Такая запись означает, что вершина *і инцидентна ребрам с номерами 1-5, которые, в свою очередь инцидентны вершинам 2, 3, 5, 6, 8. Причем в список смежности некоторой вершины Х| не включаются номера вершин от Хі до Х|_і включительно.

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

Генерация циклов к - той длины начинается со списка Ьхь в котором выбирается вершина Х|, стоящая на первом месте, после чего выполняется переход к списку Ьх|. За счет

модифицированной формы списка, исключается возможность досрочного замыкания цепи, а также повторной генерации одинаковых циклов, поскольку любой список Ьх| (1 = 1,п), не содержит вершин X] таких, что } ^ г На (к - 1) - м шаге алгоритм проверяет возможность замыкания цикла, т.е. наличие связи между вершинами хк и Х|.

Если на каком-то шаге оказывается невозможным дальнейшее продолжение (замыкание) цепи, алгоритм возвращается на один шаг назад и просматривает другие возможности для выбора пути.

После того, как просмотрены все возможности и сформированы все циклы, использующие вершину XI в качестве начальной, эта вершина изымается из рассмотрения и процесс повторяется для следующего списка, например Ьх2, и так (п -1) - раз.

В результате работы данного блока генерируется множество списков всех возможных Циклов длины к: Ск = {Си С2,Сж}, где х - число циклов длины к.

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

Блок анализа (БА) необходим для того, чтобы определить направление дальнейшего Движения алгоритма.

Словесный алгоритм работы БА выглядит следующим образом:

1. Подсчет числа сформированных циклов 1Чск = |Си| и числа повторений 1Чт; для каждого ребра п^, где ■ 1,М.

2. Если выполняется условие: 1Чск ^ т - п + 2 и (\7]еМ)( N01] ^2), то переход к п.З, если нет, то возврат к блоку генерации циклов и начало генерации циклов длины к + 1.

3. Из полученного множества Ск выбираются первые р - циклов и подсчитывается общее число ребер N111, принадлежащих этим циклам:

4. Полученное значение N111 сравнивается с удвоенным числом ребер исходного графа С. Если N111 > 2т, то рассматриваемый граф является непланарным. Если нам нужно выделить максимальную планарную часть графа и получить для нее плоскую укладку, то переход к пункту 5, в противном случае алгоритм завершен.

5. Конец работы БА. Переход к блоку генетических операторов.

Блок генетических операторов (БГО) является основным блоком алгоритма, выполняющим исследование графа и нахождение вариантов его плоской укладки.

Для этого был разработан многоуровневый генетический алгоритм, в котором задача планаризации графа рассматривается с точки зрения построения некоторого базиса, Удовлетворяющего установленным критериям. Строительство этого базиса проводится в Четыре этапа.

В качестве строительных методов на первых трех этапах используются генетические °ператоры селекции (ОС), кроссинговера (ОК) и отбора (00), адаптированные к специфике Поставленной задачи. Четвертый этап выполняется с помощью модифицированных операторов мУтации (ОМ) и инверсии (ОИ).

Для представления информации в данном алгоритме была разработана Модифицированная хромосома, с числом генов равным р + 3. Левая часть хромосомы состоит Из Р - разрядов, представляющих собой комбинацию задействованных циклов, а правая часть состоит из 3-х разрядов, несущих информацию о том, какие ребра и сколько раз содержатся в выбранной комбинации (О, 1 или 2 раза соответственно для разрядов № р + 1, р + 2 и р+3), Которая используется при оценке качества полученного решения. Для количественной оценки качества полученного решения вводится функция б(т), которая стремится к минимуму для генов р + 1 и р + 2 (/(Н) —>0) и стремится к максимуму для гена р + 3(/(Н) —>т):

б(т) = (г^Шр+з + N111,^2) / 2п» (1)

где Nm|t+J - число элементов в р + 3 - разряде хромосомы, а N111,,+! - соответственно чИсло элементов в р + 2 - разряде хромосомы.

В свою очередь левая часть также делится на две части - значащую и незначащую. Разряды значащей части заполняются номерами циклов, а незначащей - нулями. Очевидно, что Чем выше качество решения, тем меньше длина незначащей части (Ь0 —* 0). При получении

оптимального решения Ь0 будет равна нулю. Следовательно длина незначащей части является еще одним критерием оценки качества полученного решения.

Таким образом, целевая функция хромосомы полученного решения /(Н) является аддитивной функцией двух переменных:

/(Н) = (6(П1);Ь0) (2)

Причем /(Н) —»тах когда 5(т) —»2т &Ь0 —>0.

Например, некоторая комбинация циклов будет закодирована хромосомой следующего

вида:

2 5 6 7 8 9 0 0 0 0 {2,8,12} {1,4,6,9,10,11,14,15} {3,5,7,13,16}

Целевая функция хромосомы № 1н будет равна: 8(т) = (2*5 + 8) / 32 = 18 / 32 =

0,5625; и = 4; Д1п) = (0,5625; 4)

Теперь рассмотрим подробнее работу каждого из этапов БГО.

1 этан. «Строительство фундамента». Формирование начального базового решения, которое должно стать основой для дальнейших преобразований. Для этого были разработаны два варианта стратегии создания начального базового решения.

Первый вариант заключается в том, что мы выбираем в имеющемся множестве циклов С ребра, повторяющихся точно два раза. Если это не удается сделать, то область поиска сужается и просматривается не все множество, а только первые р - циклов. Выбранные циклы суммируются и образуют определенную комбинацию, которая проверяется на предмет образования нелегальных решений (т.е. наличия ребер повторяющихся более двух раз). При обнаружении из комбинации удаляется один или несколько циклов, содержащих «лишние» ребра, а полученная комбинация преобразуется в хромосому. Таким образом получается базовое начальное решение.

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

2 этап. «Строительство каркаса» это процесс дополнения имеющегося базового решения новыми комбинациями циклов до достижения максимально возможной степени заполнения, в идеале до заполнения р - разрядов. Схема работы ГА на этом этапе состоит из нескольких шагов (Рис. 2).

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

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

1 3 0 0 0 0 0 0 0 0 {3,5,7,9,10,11,12,13,14,15,16} {1Л6,8} {2}

Размер популяции промежуточных решений зависит от длины хромосомы Ь (т.е. размерности исследуемого графа). Например, для хромосом с длиной Ь < 20 размер популяции промежуточных решений может быть равен числу комбинаций пар отсутствующих ребер. Для графов большей размерности размер популяции задается пользователем.

В зависимости от достигнутого на втором этапе результата (оптимальное или квазиоптимальное заполнение) процесс строительства либо завершается, либо переходит на следующий этап.

Рис. 2

Шаг «В». На этом шаге производится селекция множества промежуточных решений Для участия в операции кроссинговера. Для оценки решений были сформулированы следующие правила:

1. В генах р + 2 и р + 3 претендента, по возможности, не должно быть ребер, имеющих одинаковые номера с ребрами из разряда р + 3 первого родителя.

2. В гене р + 1 претендента должно быть максимальное количество ребер, имеющих одинаковые номера с ребрами из разряда р + 3 хромосомы первого родителя.

3. В гене р + 2 претендента должно быть максимальное количество ребер, имеющих одинаковые номера с ребрами из разряда р + 2 хромосомы первого родителя.

На основе данных правил был разработан специальный комплексный параметр Функция пригодности промежуточных решений относительно базового решения /ЧН).

Данный параметр является аддитивной функцией двух переменных /’(Н) = (8’т; N’0, г^е 8’га - относительное увеличение числа ребер; N4 - относительное увеличение числа циклов. Количественное значение функции пригодности рассчитывается следующим образом:

6’т = 1 - [(2«М, + N(12 + М3) / (2*^, + N82 + №3)] (3)

N4 = 1- (N0' / N0*) (4)

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

Так для хромосомы № 2н функция пригодности относительно базового решения:

б’т(2н) = 1 - [(0 + 0) / (2.1 + 4)] = 1; ^с(2н) = 1 - (0 / 2) = 1; /’(Н) - (1;1).

Шаг «С». Для данного алгоритма была разработана специальная схема кроссинговера, адаптированная к условиям решаемой задачи. Эта схема получила условное название двухточечный суммирующий кроссинговер. Точки скрещивания в таком ОК выбираются следующим образом:

1. В первом родителе первая точка скрещивания ^ всегда находится за последним значащим (ненулевым) элементом хромосомы Ь|, а позиция второй точки (2 выбирается после элемента Ь(+к, где к - число значащих элементов во второй родительской хромосоме.

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

В результате выполнения ОК происходит объединение значащих частей родительских хромосом. В случае, если в функция пригодности второго родителя 5’т(Н) Ф 1, то из хромосомы потомка удаляются ребро (или ребра), которые повторяются в данной комбинации более двух раз. Параллельно с удалением ребер удаляются N0" циклов, которым принадлежит данное ребро. При этом вновь появившиеся в хромосоме циклы не могут быть удалены.

Таким образом, в нашем примере точки кроссинговера для хромосомы 1п: ^ = 6,12 = 8, и для хромосомы 2н: ^ = 0,= 2.

1 н 2 5 6 7 8 9 |о 0 0 0 {2,8,12} {1,4,6,9,10,11,14,15} {3,5,7,13,16}

2н 1 з о 0 0 0 0 0 0 0 {3,5,7,9,10,11,12,13,14,15,16} {1,4,6,8} {2}

После выполнения операции скрещивания получается новое базовое решение:

1п 2 5 6 7 8 9 1 3 0 0 {12} {8,9,10,11,14,15} {1,2,3,4,5,6,7,13,16}

Шаг <«1». Популяция промежуточных решений переупорядочивается, для чего производится пересчет функций пригодности каждого элемента популяции относительно нового базового решения. После чего элементы имеющие низкие оценки функции пригодности (/’(Н) = (б’т(Н) < 25% & N4(11) < 0)) удаляются и, либо происходит генерация новых промежуточных решений за счет добавления промежуточных решений включающих пары ребер, идентичных ребрам из разряда р + 3 базовой хромосомы, либо пользователь на основании оценки размера популяции и числа пройденных поколений принимает решение о переходе к следующему этапу строительства.

3 этап. «Индивидуальная достройка». На этом этапе алгоритм пытается путем точечных пошаговых улучшений получить оптимальное решение не повредив в процессе достройки сформированное ранее квазиоптимальное решение. Для этого популяция промежуточных решений расщепляется таким образом, чтобы каждый индивид новой популяции содержал в себе только один цикл. После чего выполняются шаги идентичные шагам «Ь» «(I» этапа № 2. При построении оптимального решения блок генетических

операторов завершает работу, иначе алгоритм переходит к этапу № 4.

4 этап. «Корректировка проекта». Если получено некоторое квазиоптимальное решение, не улучшающееся в течении определенного числа поколений, т.е. алгоритм попал в локальный оптимум, применяются операторы мутации и инверсии.

В данном алгоритме используется специально разработанный модифицированный оператор мутации - мутация одностороннего обмена, позволяющий учесть нюансы решаемой задачи. Для этого случайным образом выбираются два гена, один из которых является значащим элементом, а второй незначащим. После проведения обмена обмененный значащий элемент обнуляется, все принадлежащие данному циклу ребра удаляются из генов р + 2 и р + 3

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

Например для хромосомы № 1п операция мутации будет выглядеть следующим образом: случайным образом выбираем два гена, один из которых значащий, а второй нулевой. Пусть это будут гены № 3 и 10.

2 5т, 8 9 1 3 «Як). {8,9,10,11,14,15} {1,2,3,4,5,6,7,13,16}

После этого производим операцию обмена, удаляем из генов р + 2 и р + 3 ребра принадлежащие циклу №6 и, наконец, сдвигаем значащие элементы влево, после чего операция мутации заканчивается:

2 5 7 8 9 1 3 0 0 0 {12,15} {3,5,8,9,10,11,14} {1,2,4,6,7,13,16}

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

Вероятности проведения операций мутации Р(ОМ) и инверсии Р(ОИ) задается случайным образом на интервале |0,1], причем их суммарная вероятность Р(виМ) = Р(ОМ) + Р(ОИ) = 1.

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

С точки зрения теории множеств мы на каждом і + 1 - м шаге находим разность множеств Свні’ ■= Свні \ С|+1 и С|+і’ = С!+1 \ Свні, где Свн - внешний цикл графа. После чего выполняем суммирование СвН|+І=Свні’ + С|+і’.

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

Плоская укладка сформирована когда не остается непройденных ребер.

Разработанный алгоритм имеет пространственную сложность 0(аМ2), где а переменная, зависящая от соотношения числа циклов к числу ребер и размера популяции. Временная сложность алгоритма определения планарности пропорциональна О(РМ), где 0 -переменная, зависящая от размера популяции вр и числа поколений 1ЧР. Очевидно, что при фиксированных значениях размера популяции и числа генераций 1ЧР алгоритм имеет полиномиальную теоретическую пространственную и временную сложность и, следовательно, имеет практическую полезность.

УДК 658.512

В.В. Курейчик, Н.В. Курейчик1 РЕШЕНИЕ ОПТИМИЗАЦИОННЫХ ЭКОНОМИЧЕСКИХ ЗАДАЧ НА ОСНОВЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ

В последнее время наблюдается неуклонное использование математических методов в экономике. Для построения математических моделей (ММ) экономических задач эффективно используется теория графов, а для разработок эвристических алгоритмов - методы и модели исследования операций. Одной из важнейших экономических задая является транспортная задача (ТЗ). Ее постановка следующая: задано некоторое множество товара Т={Т1, Т2,..., Т„}, 1т„ |=п, расположенное в различных местах М={М!, М2,..., Мр}, |м |=р. Товар должен быть перевезен в другие пункты П={П1, П2,..., Пч}, |п|=я. При этом задана матрица стоимости перевозок, определяющая стоимость каждой перевозки М; Пч. Необходимо построить оптимальный план перевозки, при котором транспортные расходы минимальны в смысле заданной целевой функции.

1 Работа выполнена за счет частичного финансирования по гранту РФФИ ГР № 99-01-00050

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