Алгоритм построения диаграммы Вороного для внутренней

advertisement
Алгоритм построения диаграммы Вороного для
внутренней части замкнутого ортогонального полигона в
метрике L∞
К.С. Муханов, М.А. Сотников
ООО «Фрискейл Семикондактор», K.Mukhanov@freescale.com
найдутся не менее двух ребер данного полигона
таких, что все точки данного отрезка будут
равноудалены от этих ребер.
Из этого определения следует, что ребра ДВ
являются
геометрическим
местом
точек,
равноудаленных не менее чем от двух сторон
полигона, или являются отрезком их равного,
взаимного влияния.
Аннотация — В статье представлен алгоритм
построения диаграммы Вороного для внутренней части
замкнутого ортогонального полигона в метрике L∞. За
основу алгоритма взят принцип сканирующей линии.
Оценка эффективности показала, что сложность
алгоритма составляет O(n⋅log n)+O(m⋅log m), что дает
возможность использовать этот алгоритм для решения
задач сжатия топологии СБИС.
I. ВВЕДЕНИЕ
II. МЕТРИКА L∞
Для сокращения стоимости и улучшения
быстродействия СБИС необходимо минимизировать
их площадь. Одной из проектных операций,
решающих эту задачу, является сжатие топологии.
Входные данные для задачи сжатия представлены
технологическими
правилами
и
собственно
топологией. Основная цель сжатия – минимизировать
площадь путем перемещения и изменения формы
объектов топологии, при условии соблюдения
технологических правил.
Сжатие топологии – итерационный процесс, на
каждом шаге которого решается ряд задач. Одной из
них является построение графа ограничений, который
формируется на основании правил, определенных для
данной полупроводниковой технологии [7].
Технологические правила – это ограничения,
накладываемые на геометрическую форму и размеры
топологических объектов. Современные технологии и
постоянное повышение степени интеграции приводят
к тому, что величина правила становятся зависимой
от следующих факторов: размера фигур, взаимного
расположения, количества соседей и т.д. Встает
вопрос правильного учета данных параметров при
формировании графа ограничений.
Топология СБИС представляет собой набор
замкнутых
ортогональных
полигонов.
Для
реализации
технологических
ограничений
в
программе сжатия топологии [7][9] необходима
модель, с помощью которой можно было бы описать
все особенности формы полигона. Такой моделью
может служить диаграмма Вороного (ДВ) [1][3].
ДВ внутренней части полигона будем называть
множество отрезков, для каждого из которых всегда
Для упрощения процесса проектирования на этапе
сжатия
топологии
координаты
полигонов
представлены в виде целых чисел, которые кратны
некоторой
величине,
называемой
сеткой
проектирования. Это накладывает ограничения по
точности формирования модели, описывающей
фигуры топологии [7][9].
Расчеты, произведенные при построении ДВ в
классической Евклидовой (L2) метрике, приводят к
решению квадратных уравнений. В общем случае,
решение которых невозможно получить в целых
числах. Более того, решение в любой другой метрике
Ln, где n∈[2;∞), также будут приводить к решению
степенных уравнений, и как следствие, к
невозможности получения решения в целых числах.
Это легко видеть из формулы расстояния между
двумя точками [2]:
Ln : l = n ( x2 − x1 ) n + ( y2 − y1 ) n
(1)
Имея
дело
с
ортогональными
фигурами,
необходимые расчеты можно производить в метрике
L∞. В этом случае будем иметь дело с уравнениями
первого порядка, что обеспечит необходимую
точность. Расстояние между точками в метрике L∞
[2]:
L∞ : l = max( x2 − x1 , y 2 − y1 )
Где x1, y1,
соответственно.
135
x2,
y2
–
координаты
(2)
точек
III. АЛГОРИТМ ПОСТРОЕНЯ ДИАГРАММЫ ВОРОНОГО
Биссектором отрезка и прямой в метрике L∞ будем
называть
геометрическое
место
точек,
равноудаленных от этой прямой и отрезка (рис. 2).
Сложным биссектором прямой и группы объектов
(например, точек или отрезков) будем называть
результирующий биссектор, построенный как нижняя
граница всех биссекторов объектов (рис. 3).
Алгоритм построения ДВ для внутренней части
замкнутого ортогонального полигона в метрике L∞
можно представить в виде следующей блок-схемы:
Сканирование вниз в Y
направлении
Сканирование вверх в Y
направлении
Сканирование влево в X
направлении
Сканирование вправо в X
направлении
Рис. 3. Сложный биссектор множества точек
относительно прямой линии в метрике L∞.
Обработка объектов сканирования бывает двух
типов:
Первое событие – это появление нового объекта на
сканирующей линии. Его обработка в классическом
подходе означает расщепление сложного биссектора
и вставка в него биссектора нового объекта.
Второе событие – это «смыкание» вершин
сложного биссектора, и, как следствие, удаление из
него одного или нескольких составляющих
биссекторов. Результатом обработки данного события
является появление новой вершины ДВ. Ребра ДВ
являются следом движения вершин кривой по
плоскости во время сканирования.
Объединение и обработка
результатов сканирования
Рис. 1. Блок-схема алгоритма построения ДВ
Процедура сканирования является общей для всех
направлений, поэтому остановимся подробно на
одной из них: сканирование вниз вдоль оси Y.
А. Модификация алгоритма «Сканирующей линии»
Основа процедуры сканирования – принцип
«сканирующей линии» [4]-[6][8].
Во время
сканирования за сканирующей линией располагается
некая кривая, состоящая из частей биссекторов уже
обработанных объектов (сложный биссектор).
а)
а)
б)
Рис. 4. Сложный биссектор множества точек и биссектор
точки-события, расположенной на сканирующей линии
в метрике: а – L2, б – L∞
Для решения поставленной задачи алгоритм
сканирующей линии был модифицирован. Основным
изменением является отказ от обработки событий
смыкания вершин сложного биссектора. Причины, по
которым была произведена данная модификация,
напрямую зависят от выбранной метрики, в которой
производятся вычисления. Для сравнения можно
посмотреть, как выглядят биссектора для точек,
б)
Рис. 2. Биссектор а – горизонтального, б –
вертикального отрезка относительно прямой в метрике
L∞
136
расположенных на разных расстояниях относительно
сканирующей линии, в метриках L2 и L∞ (рис. 4).
Как это видно, точка в метрике L∞, пришедшая как
очередное событие, то есть располагающаяся на
сканирующей линии, своим биссектором не режет
сложный биссектор надвое, как в метрике L2, а
покрывает его часть. В область, покрываемую
биссектором точки-события, могут попасть вершины
сложного биссектора, что делает невозможным
обработку событий их смыкания, и, как следствие,
получения вершин ДВ. Этим обосновывается отказ от
обработки события смыкания вершин сложного
биссектора.
Поскольку сканирование плоскости происходит
сверху вниз, то есть в сторону уменьшения Y
координаты, то будем рассматривать события
установки сканирующей линии на нижние ребра.
Нижними ребрами будем называть такие ребра,
относительно которых внутренняя часть полигона
будет располагаться сверху.
биссектор ребра-события относительно сканирующей
линии, то он будет покрывать область влияния этого
ребра. Тогда та часть результирующего сложного
биссектора, которая попала в эту область (AB на рис.
6), и будет являться частью полной ДВ для этого
полигона.
После сканирования всей плоскости сверху вниз в
результате получатся участки ДВ, описывающие
взаимодействие нижних ребер со всеми остальными.
Для полной ДВ необходимо еще получить участки от
верхних, левых и правых ребер. Поэтому одно
сканирование в классическом подходе было заменено
четырьмя.
Б. Процедура сканирования
Представим алгоритм процедуры сканирования в
виде следующей блок-схемы и рассмотрим каждую
его часть отдельно (рис. 7).
Упорядочить множество всех
ребер полигона по Y координате
Взять очередное нижнее ребрособытие из упорядоченного
множества
Установить сканирующую линию в
координату ребра-события
Построить биссектор ребрасобытия
Взять очередное ребро из
множества ребер над
сканирующей линией
Рис. 5. Сложный биссектор множества ребер над
сканирующей линией
Добавить биссектор очередного
ребра к сложному биссектору
Все ребра
пройдены?
нет
Взять из сложного биссектора
часть, покрываемую биссектором
ребра-события
нет
Рис. 6. Область влияния ребра-события, выделенная из
сложного биссектора
Последнее
нижнее
Рис. 7. Блок-схема алгоритма процедуры сканирования
Пусть сканирующая линия установлена на
очередное ребро-событие. Тогда сложный биссектор,
описывающий взаимное влияние сканирующей линии
и всех ребер, располагающихся над ней, будет
выглядеть, как показано на рис. 5. Если построить
Сортировка в порядке уменьшения координаты
необходима для последовательного прохода по всем
нижним ребрам, начиная от ребра с наибольшей
координатой и заканчивая ребром с наименьшей.
137
Также эта сортировка необходима для составления
множества ребер, лежащих над сканирующей линией.
Для этого берутся все ребра, которые находятся выше
ребра-события.
В процедуре построения биссектора ребра-события
наиболее важна его форма. Каждый выпуклый угол
полигона отсекает наклонную часть биссектора с
соответствующей стороны (рис. 8). Это объясняется
тем, что влияние ребра-события в той области,
которую покрывала наклонная линия, как бы
экранируется соседним вертикальным ребром. Ребрособытие, которое не является составляющей
выпуклого угла, будет иметь биссектор и область
влияния, как показано на рис. 6.
а)
б)
в)
г)
Рис. 9. Результаты процедуры сканирования в разных
направлениях: а – вниз, б – вверх, в – влево, г – вправо
В. Объединение и обработка результатов
сканирования
В
результате
объединения
получается
геометрический граф [11] ДВ, представленный на
рис. 10.
Рис. 8. Усеченный биссектор ребра-события и его
область влияния
Операция добавления биссектора текущего ребра к
сложному биссектору (или операция сложения
биссекторов в общем случае) является базовой для
описываемого алгоритма и основана на принципе
сканирующей линии [8]. Результат сложения есть
новый сложный биссектор (рис. 5).
Операция
выделения
из
результирующего
биссектора
области
влияния
ребра-события
необходима для получения частей будущей
диаграммы
Вороного
для
данного
цикла
сканирования. Данная операция основана на
отсечении той части результирующего биссектора,
которая не попадает в область, покрываемую
биссектором ребра-события. Как и операция
сложения биссекторов, операция выделения основана
на принципе последовательного сканирования.
Результат выделения области влияния ребра-события
представлен на рис. 6, где пунктиром обозначена
отсеченная часть сложного биссектора.
На выходе одной процедуры сканирования
получается только часть ДВ, поэтому для получения
законченной ДВ следует объединить её части после
четырёх процедур сканирования (рис. 9).
Рис. 10. Объединенная диаграмма Вороного
ортогонального полигона
Следует отметить, что после объединения граф ДВ
содержит сдвоенные ребра и вершины. Поэтому
основной
задачей
обработки
результатов
сканирования является упрощение графа ДВ (рис. 11).
Сначала необходимо избавиться от частичного
наложения ребер с помощью алгоритма их
пересечения [11].
Рис. 11. Упрощение графа
138
После этого следует удалить все повторяющиеся
ребра и вершины.
Таким образом, получается ДВ для внутренней
части замкнутого ортогонального полигона (рис. 10).
 n1 log 2 n1

...
L=
 n log n
2 k
 k
IV. АНАЛИЗ ЭФФЕКТИВНОСТИ АЛГОРИТМА ПОСТРОЕНИЯ
ДИАГРАММЫ ВОРОНОГО
Данная
глава
посвящена
исследованию
эффективности
алгоритма
построения
и
экспериментальной
оценке
вычислительной
сложности.
Как было описано выше, вся процедура построения
ДВ представляет собой два этапа: первый –
сканирование плоскости, в результате которого
получаются четыре части будущей диаграммы,
второй – объединение этих частей в геометрический
граф с последующим его упрощением. За основу
процедуры сканирования был взят принцип
сканирующей линии со сложностью алгоритма
O(n⋅log(n)), где n – число ребер входного полигона
[3]-[6]. Ниже будет показано, что описанные выше
модификации базового алгоритма не приводят к
увеличению сложности вычислений.
В процедуре упрощения графа использован
алгоритм пересечения ребер, который имеет
вычислительную сложность O(m⋅log(m)), где m –
число ребер в графе [11]. Тогда сложность данного
алгоритма
построения
должна
подчиняться
следующему закону:
O ( m, n ) = C1n log 2 n + C2 m log 2 m
2
(3)
O ( N i , M i ) = Ti
(5)
было бы минимальным. Или
 n1 log 2 n1

...

 n log n
2 k
 k
уравнений
m1 log 2 m1 
T 
  C1   1 
...
 ⋅   =  ... 
C
mk log 2 mk   2   Tk 
 T1 
 
T =  ... 
T 
 k
(9)
LT ⋅ L ⋅ C = LT ⋅ T
(10)
Экспериментальные и теоретические данные
зависимости времени построения ДВ от числа
ребер полигона и ребер в графе ДВ
i
для всех i.
Запишем эту систему линейных
относительно C в матричной форме:
(8)
Таблица 1
(4)
i
C 
C =  1 
 C2 
Решая данную систему, получим коэффициенты C1
и C2. Теоретические данные времени построения ДВ,
рассчитанные по формуле (3), приведены в крайнем
правом столбце таблицы 1.
i
i
(7)
Тогда
где C1 и C2 – некие константы.
Основываясь на экспериментальных данных,
представленных в таблице 1, найдем коэффициенты
C1 и C2 с помощью метода наименьших квадратов. То
есть, необходимо найти такие C1 и C2, при которых
∑ (T − O( N , M ))
m1 log 2 m1 

...

mk log 2 mk 
Число
ребер
полигона
Ni
40
44
48
50
52
56
56
56
58
80
98
102
104
184
288
384
768
Число
ребер в
графе Mi
59
71
73
75
73
92
87
85
86
114
104
168
172
255
96
125
237
Время
построения
(эксперимент)
TЭi, с
0,07
0,09
0,10
0,16
0,18
0,15
0,14
0,20
0,22
0,58
0,78
0,37
0,40
2,07
5,06
8,96
34,34
Время
построения
(теория)
TТi, с
0,19
0,11
0,20
0,23
0,34
0,25
0,22
0,12
0,30
0,56
0,72
0,29
0,28
1,75
9,78
13,73
30,85
(6)
Выше нами была выдвинута гипотеза о том, что
сложность алгоритма построения подчиняется закону
(3), и экспериментальные данные распределены
нормально относительно теоретических. Подтвердим
где k – число экспериментов. Обозначим:
139
её справедливость с помощью аппарата проверки
статистических гипотез [10].
Подсчитаем стандартную ошибку нашей выборки:
µ = σ / k ≈ 3.47
(11)
где σ – среднеквадратичное отклонение, k – число
степеней свободы.
Для каждого экспериментального значения найдем
его нормированное отклонение:
t = TЭi − TТi µ
(12)
Зададимся уровнем значимости p=0.05. Тогда,
чтобы не отвергнуть гипотезу, нормированное
отклонение не должно превышать значения tкр=2.03,
найденного по таблице нормального распределения.
Построим таблицу, в которой поместим данные
согласно нашей гипотезе, экспериментальные данные
и их нормированные отклонения (таблица 2). Из этой
таблицы видно, что на уровне значимости p=0.05
гипотеза о том, что сложность алгоритма построения
подчиняется закону (3), верна.
Нормированное
отклонение t
0,19
0,11
0,20
0,23
0,34
0,25
0,22
0,12
0,30
0,56
0,72
0,29
0,28
1,75
9,78
13,73
30,85
0,07
0,09
0,10
0,16
0,18
0,15
0,14
0,20
0,22
0,58
0,78
0,37
0,40
2,07
5,06
8,96
34,34
0,0343
0,0044
0,0295
0,0212
0,0457
0,0295
0,0218
0,0244
0,0244
0,0063
0,0184
0,0242
0,0348
0,0917
1.3607
1.3743
1.0077
Представленный
в
данной
статье
модифицированный алгоритм сканирующей линии
для построения ДВ внутренней части ортогонального
полигона достаточно эффективен для своего класса
задач, а так же прост в реализации. С помощью
несложных модификаций из него можно получить
алгоритм построения ДВ как внешней области
множества полигонов, так и полной ДВ, т.е. внешней
и внутренней частей одновременно.
[1] Ф. Препарата, М. Шеймос Вычислительная геометрия.
– М.: Мир, 1989.
[2] D.T. Lee
Two-Dimensional Voronoi Diagrams in Lpmetric // Journal of the Computing Machinery. - October
1980. - V. 27. - № 4.
[3] Martin Held Voronoi Diagrams and Offset Curves of
Curvilinear Polygons // Dept. of Applied Mathematics and
Statistics, June 19, 1997.
[4] Steven Fortune A Sweepline Algorithm for Voronoi
Diagrams // AT&T Bell Laboratories.
[5] Frank Dehne and Rolf Klein The Big Sweep: On the
Power of the Beach Line Approach for Voronoi Diagrams
// 19th International Symposium on Mathematical
Foundations of Computer Science, 1994.
[6] David M. Mount Computational Geometry // Dept. of
Computer Science, University of Maryland, 2002.
[7] М.А. Сотников Разработка и исследование алгоритмов
сжатия топологии стандартных ячеек субмикронных
СБИС // М.: ЗАО "Моторола ЗАО", 2004.
[8] Майкл Ласло
Вычислительная геометрия и
компьютерная графика на C++. – М.: БИНОМ, 1997.
[9] В.П. Розенфельд, М.А. Сотников, И.Г. Топузов, Э.А.
Улуханов, Е.Г. Широ Система сжатия и миграции
топологии стандартных ячеек // Всероссийская Научнотехническая конференция "Проблемы разработки
перспективных микроэлектронных систем – 2005" / Сб.
научных тр. под общ. ред. А.Л. Стемпковского. - М.: ИППМ
РАН. - 2005. - С. 121-127.
[10] И.И. Баврин, В.Л. Матросов
Краткий курс теории
вероятностей и математическая статистика. –
М.: ПРОМЕТЕЙ, 1989.
[11] http://www.algorithmicsolutions.info/leda_manual/MANUAL.html.
Нормированное отклонение теоретического
времени построения ДВ от экспериментального
Время
построения
(эксперимент)
TЭi, с
V. ЗАКЛЮЧЕНИЕ
ЛИТЕРАТУРА
Таблица 2
Время
построения
(теория) TТi, с
приемлемой
логарифмической
сложностью
вычисления. Доля времени, занимаемая работой
данного алгоритма для наибольшей размерности
входных данных, от общего времени одной итерации
процесса сжатия составило ~20%. Это позволяет
включить данный алгоритм в общий цикл сжатия для
получения достаточно удобной модели данных,
описывающей свойства фигур топологии.
Таким образом, анализ эффективности показал, что
предложенный алгоритм построения ДВ обладает
140
Download