УДК 681.356
В.В.Курейчик
Генетические алгоритмы для построения деревьев Штейнера
Заключительным этапом конструкторского синтеза является комплексная трудоемкая задача, определяющая качество всего процесса, трассировка соединений [1-3].
Задачу трассировки представляют в виде укрупненных четырех этапов: определение перечня соединений, размещение по слоям, определение порядка соединений, трассировка проводников.
В статье рассматривается разработка алгоритмов первого этапа. Основными алгоритмами здесь являются алгоритмы построения кратчайших связывающих деревьев Прима и Штейнера. Дадим краткое описание указанных задач. Обычно ставится задача соединения заданных точек кратчайшим образом (сумма расстояний между точками должна быть минимальной или стремиться к ней).
Для минимизации суммарной длины соединений в КСД предложено при соединении множества вершин (точек, контактов цепей) использовать дополнительные точки (вершины). Возникающую при этом задачу называют задачей Штейнера [3]. Она формулируется сле-дующим образом. Для заданных п точек плоскости построить соединяющие их КСД с п’гп точками (вершинами) общая суммарная длина соединений минимальна. Построенное таким образом дерево называется деревом Штейнера (ДШ), дополнительные вершины - точками Штейнера (ТШ). Задача Штейнера, как известно [1,3], является ЫР-полной. Для п=3 известно точное решение задачи. Для п=4 существует ряд эффекитвных алгоритмов [3]. При п^5 требуется огромное число вычислений, поэтому продолжается разработка различных эвристических алгоритмов данной задачи.
В [3] сформулирован ряд лемм и теорем о построении ДШ. Так, при соединении трех контактов единственная точка Штейнера ц находится внутри прямоугольника, объемлющего эти точки. Причем координаты единственной ТШ определятся как среднее ^ и ^ значения п„ 1=1,2,3 и 3 ,
£<*(?,"1 ) = ~РЩп1,п2,п3))
/-1 2
где Р(К) - длина периметра прямоугольника, построенного на трех точках. Так, для ДШ (рис.1) Я| и цг будут иметь координаты, определяемые следующим образом:
8|=0,8г=0, 5з=2, =2; 1|=6, 1г=3, Ь=0,
1срч1“3| в2—4, 54—8, 85—10, $срч2—$1 ^2 3, 14—5,
15—2, 1срч2—3.
Длина ДШ (рис. 1) определяется по формуле
Д7’)=^Л(Л(1^)) + ^/>2(Л(2,4^))-19
Предложим простой эвристический алгоритм, ВС А которого - 0 (ап). Идея алгоритма заключается в следующем. Выбираются первые три точки из п точек, на которых должно быть построено ДШ, и согласно [3] строится оптимальный
фрагмент ДШ для трех точек. Затем выбираются следующие по порядку три точки,
одна из которых принадлежит построенному фрагменту. На этих точках строится второй оптимальный фрагмент ДШ. Далее процесс повторяется аналогично, пока не будет построено ДШ. Ответим, что каждый фрагмент ДШ оптимальный, по полное ДШ в общем случае может оказаться не оптимальным. При наличии достаточных вычислительных ресурсов или распараллеливания алгоритма можно строить оптимальные фрагменты по три вершины и, выполнив перебор на них, можно получить оптимальное или квазиоптимальное ДШ.
Материалы Всероссийской конференции “Интеллектуальные СА11Р-95
Можно предложить упрощенную эвристическую процедуру построения ДШ, основанную на так называемых "столбах" Штейнера. Из любой точки, которые требуется соединить ДШ, проводится вертикальный столб Штейнера, а затем ит остальных точек проводятся перпендикулярные отрезки к этому столбу. Вертикальный столб можно проводить в любом месте плоскости (желательно в прямоугольнике, ограничивающем заданные точки). Аналогичным образом строится горизонтальный столб Штейнера и ДШ с использованием описанной выше идеи.
В связи с возможностью быстрого получения набора различных ДШ, по нашему мнению, представляется возможным испольэоьагь схемы генетического поиска для построения прямоугольных ДШ [4,5]. Опишем кратко идею предлагаемого ГА для построения прямоу-гольного ДШ.
Сначала, используя предложенные эвристические алгоритмы, строится
популяция Р'={ Р*|, Р’з ... Р'к}, каждый элемент популяции представляет собой
закодированное ДШ. Далее производится сортировка популяции и селекция родительских пар. Затем возможно применение любых из описанных выше генетических операторов (ГО) на основе мета-, микро- и макро- генетических влгоритмов (ГА).
Рассмотрим пример. Пусть необходимо построить ДШ на пяти точках Используя горизонтальные столбы Штейнера, построим четыре ДШ (рис. I -3).
На рис.1 столб проходит через точку 1, на рис.5 - через точку 4, на рис.З - через т°чку 3. Получили популяцию Р'={ Р'ь Р*2. Р’з, Р'ч). Кодирование каждой хромосомы в популяции будем проводить следующим образом:
Рис.1.
Рис.2
Рис.З
Р'і 1ПТНЗПТН2ПТН4ПН5 (1-столб) - 1
Р'2 1 НПТНЗПТН2П4ПН5 (2-столб) - 4
Р'з 1НПТ НЗПТВ2ПТВ4П (3-столб) - 5
Р'4 1НПЗПТВ2ПТВ4 ПВ5 (4-столб) - 3
Согласно суммарной длине выбранных деревьев Штейнера, соответствующих хромосомам Р11, Р'г, Р'з и PU произведем сортировку ДШ:
Р'з, Р'2, Р1., Р'4.
Построим новую популяцию Pli = {PIli, Рп2, Р"з, Р11^}, используя вертикальные столбы Штейнера. Произведя сортировку, получим: Рп2, Р"з, Ри4, Pni- Выберем в качестве родительских пар элитные элементы из первой и второй популяций:
Р'з : | 1 Н П TI Н 3 П | Т2 В 2 П Т | В 4 | П 5
Р“2 1ПНТ1П4Н|2НТ2П5|НЛ 3”
Р’з,2-. 1НПТ1НЗП 2НТ2П5 В 4.
На примере выбранных родительских пар Р'з и Р'Ь покажем работу модифицированного оператора сегрегации. Он может выполняться на одной, двух и т.д. хромосомах. Когда ОС выполняется на одной хромосоме, тогда случайным образом точки сегрегации позволяют определить строительные блоки (части хромосомы) для формирования потомка. В этом случае как бы происходит прераспределение генетического материала внутри одной хромосомы. При реализации ОС на двух и более хромосомах точки ОС, выбранные случайно, направленно или случайно-направленно, позволяют найти строительные блоки и скопировать их. в новую хромосому или в некоторое множество хромосом (потомков).
Эксперименты показывают, что наилучший размер популяции Np*n/2 число генераций для получения квазиоптимальных результатов колеблется от 10 до НЮ для соединений 5,10,20 и 30 точек.
Определим ориентировочную трудоемкость алгоритма:
T*tk + [Npt„ +(Np + N„ У ос +Nptc ]Nq
где tk - трудоемкость кодирования ДШ; t„ - трудоемкость получения одного потомка; Np количество потомков. Отметим, что трудоемкость получения одного потомка меняется в пределах 0(п) 0(п2) и ВСА для разработанных
эвристических алюритмов ДШ«0(ап2) где а- коэффициент, определяющий специфику генетического поиска.
В заключение отметим, что основной сложностью применения ГА для построения прямолинейных ДШ является оптимальное кодирование индивидуальностей в популяции. Кроме того, остаются все проблемы селекции, предварительной сходимости алгоритма и выбора эффективных ГО.
ЛИТЕРАТУРА
1. Курейчик В.М. Математическое обеспечение КТП с применением САПР. М.: Радио и связь, 1990. 352 с.
2. Норенков И.П., Маничев В.Б. Основы теории и проектирования САПР. М.: Высшая школа, 1990. 272 с.
3. Фридман А., Менон П. Теория и проектирование переключательных схем. М.: Мир, 1978. 580 с.
4. Davis L.D. Handbook of Genetic Algorithms. New York, USA, 1991.P.385.
5. Sulstrom B.A. A GA for the Rectilinear Steiner Problem. In Proc. of the 5th Intern, conf. on Genetic Algorithms, Urbana-Champaign, USA, 1993. P. 199-206.