Доклады БГУИР_DokladyBGUIR
2017, № 8 (110) 2017, No. 8 (110)
УДК 004.5; 621.38
УСТРАНЕНИЕ ИЗБЫТОЧНОСТИ В ПОКРЫТИИ ТОПОЛОГИЧЕСКОГО ОБЪЕКТА ПРЯМОУГОЛЬНИКАМИ
А.А. БУТОВ
Белорусский государственный университет информатики и радиоэлектроники, Республика Беларусь
Поступила в редакцию 29 мая 2017
Аннотация. Описан приближенный метод нахождения кратчайшего покрытия прямоугольниками топологического объекта типа многоугольника, заданного в дискретной форме множеством своих узловых точек. Дискретная форма задания многоугольника позволяет устранить известный в практике топологического проектирования недостаток, связанный с наличием проблемы вычислительной точности. Материал статьи относится к очередному этапу исследований, связанных с общей задачей по разработке программной системы подготовки топологической информации для микрофотонаборных генераторов изображений.
Ключевые слова: топология СБИС, дискретная оптимизация, кратчайшее покрытие.
Abstract. The approximate method of finding the shortest path of topological object covering by rectangles of type polygon given in discrete form by many nodal points is described. The discrete form of the description of the polygon eliminates topological design problem connected with the presence of problems of computational accuracy. The article refers to the next phase of the research related to the overall task of developing a software system for the preparation of topology information for microphotograph image generators.
Keywords: VLSI topology, discrete optimization, shortest coverage.
Doklady BGUIR. 2017, Vol. 110, ]\о. 8, pp. 13-20
Elimination the redundancy in coverage of a topological object with rectangles A.A. Butov
Введение
Одной из важных составных частей технологического процесса изготовления сверхбольших интегральных схем (СБИС) является подготовка с помощью систем автоматизированного проектирования (САПР) топологии послойных масок для изготовления кристаллов интегральных схем [1, 2]. Разработанная топология используется в фотонаборных установках микроэлектроники для создания изображений, которые проецируются
на некоторый материал (на пленку или стекло - для получения фотошаблонов, на полупроводниковую пластину - для получения интегральных схем). Под генерацией изображения понимается процесс создания изображения посредством генератора изображения, являющегося составной частью фотонаборной установки. В процессе генерации для каждого объекта топологии создается изображение, которое получается путем пошагового экспонирования отдельных областей объекта в виде прямоугольников, объединение которых дает изображение объекта. Для получения изображения прямоугольника на экспонируемой поверхности используется диафрагма прямоугольной формы с регулируемыми размерами
и ориентацией. Перемещение изображения прямоугольника по экспонируемой поверхности осуществляется с помощью координатного стола.
Создание управляющей программы для генерации изображения позволяет в итоге получить набор элементарных областей (прямоугольников), покрывающих в совокупности всю площадь изображения (рис. 1, 2). Элементы этого покрытия как раз и представляют собой исходную топологическую информацию для микрофотонаборных генераторов изображений, используемых в технологическом цикле изготовления СБИС.
Рис. 1. Изображение, подлежащее экспонированию
Рис. 2. Изображение с покрытием из прямоугольников
Однако для тех изображений, которые не являются примитивами (шина, круг, кольцо, треугольник), набор покрывающих прямоугольников, полученный с помощью программной системы подготовки топологической информации [2], как правило, является избыточным, то есть из него можно исключить некоторые элементы без потери качества покрытия, что, в свою очередь, увеличивает производительность фотонаборной установки. Одному из приближенных методов устранения такой избыточности и посвящена настоящая статья.
Проблема вычислительной точности
Традиционные способы работы с геометрическими объектами основаны на использовании методов вычислительной геометрии [3] и находят практическое применение, в том числе и в САПР топологии интегральных схем. Однако для многих алгоритмов вычислительной геометрии характерно наличие проблемы вычислительной точности. Она заключается в том, что хотя теоретически строго обоснована правильность работы алгоритма, однако на практике встречаются задачи, для которых алгоритм не работает или работает некорректно в силу ограниченной точности представления вещественных чисел в памяти компьютера и потери точности в промежуточных вычислениях. Практика разработки элементов САПР топологии СБИС показала, что такой эффект возникает, например, в алгоритмах, описанных в [4, 5]. С другой стороны, предпринимались попытки предложить алгоритмы, свободные от указанного недостатка, например, в работах [6, 7].
В настоящей работе проблема вычислительной точности устраняется за счет того, что используется лишь одна, простейшая операция, которую можно отнести к операциям вычислительной геометрии, а именно: проверка факта попадания точки плоскости в область, занимаемую прямоугольником. Эта задача легко решается и сводится к четырехкратной проверке принадлежности точки полуплоскостям, порождаемым сторонами прямоугольника. Все другие операции относятся к операциям над дискретными данными, представленными в виде конечных множеств и булевых матриц, где проблем, связанных с вычислительной точностью, не может возникнуть в принципе.
Основные определения, постановка задачи
Создание управляющей программы для микрофотонаборных генераторов изображений связано с решением целого ряда достаточно сложных задач [2, 5, 8]. Исходная информация,
описывающая топологию интегральном схемы, представляется в широко используемом в мировой практике формате ОБ811. Далее она преобразуется в формат, описывающий топологию в виде набора односвязных и многосвязных многоугольников, задающих области плоскости, подлежащие экспонированию (многосвязные многоугольники, в отличие от односвязных, имеют наряду с внешним контуром один или несколько внутренних контуров [8]). Выходная информация, управляющая работой генератора изображений, содержит описание множества прямоугольников, покрывающих в совокупности всю площадь изображения, заданного набором односвязных и многосвязных многоугольников.
Рассмотрим многосвязный многоугольник М, изображенный на рис. 3, а, для которого найдено множество Я из прямоугольников, покрывающих в совокупности все точки плоскости, принадлежащие этому многоугольнику. Множество Я в общем случае является избыточным, поэтому устранение этой избыточности заключается в отыскании такого множества Я , где Я* с Я, которое удовлетворяет следующим двум условиям:
1) элементы множества Я , как и элементы множества Я, покрывают в совокупности все точки плоскости, принадлежащие многоугольнику М;
2) из множества Я нельзя удалить ни один из его элементов без нарушения условия 1.
Множество Я , удовлетворяющее этим условиям, будем называть безизбыточным покрытием
многоугольника М. Нахождение множества Я относится к задачам логико-комбинаторного характера, позволяющим находить в общем случае несколько вариантов решений. Решение,
для которого множество Я содержит наименьшее число элементов, будем называть кратчайшим.
а б
Рис. 3. Многоугольник и его покрытие (а) и узловые точки (б)
С целью устранения проблемы вычислительной точности будем использовать иной, дискретный способ задания многоугольника на плоскости, что позволит использовать принципиально другие алгоритмы поиска кратчайших покрытий. Этот способ заключается в том, что многоугольник будем задавать конечным множеством тех принадлежащих ему точек плоскости, которые располагаются в узлах решетки, накладываемой на многоугольник, как показано на рис. 3, б. Тем самым из бесконечного множества точек, образующих многоугольник, отбирается конечное множество Р тех точек, которые располагаются в узлах накладываемой на многоугольник решетки (на рис. 3, б они показаны темными точками). Эти точки будем называть узловыми точками многоугольника. Так как каждая вершина V, многоугольника задана парой декартовых координат (х,, у,), то, определив размеры ячейки решетки, можно легко вычислить декартовы координаты всех узловых точек многоугольника. Ясно, что чем меньше размер ячеек решетки, тем точнее будет задан многоугольник множеством Р и тем более точным будет найденное кратчайшее покрытие Я .
Поиск кратчайшего покрытия многоугольника, заданного в дискретной форме
Пусть имеется многоугольник М (односвязный или многосвязный), для которого найдено в общем случае избыточное множество покрывающих его прямоугольников Я = {г1, Г2, ■■■, гт}. Переходя к дискретной форме задания многоугольника М, найдем множество его узловых точек Р = {р1, р2, ■■■, Рп} путем отбора из множества всех точек, порождаемых пересечениями линий накладываемой на многоугольник решетки, только тех точек, которые покрываются хотя бы одним прямоугольником из множества Я. Именно здесь используется достаточно простая операция вычислительной геометрии, заключающаяся
в проверке принадлежности точки той области плоскости, которую занимает прямоугольник.
Классический метод решения задачи поиска кратчайшего покрытия многоугольника, заданного множеством узловых точек, заключается в сведении ее к задаче о нахождении кратчайшего покрытия булевой матрицы [9]. Для этого необходимо построить матрицу В бинарного отношения покрытия узловых точек множества Р прямоугольниками из множества Я (строки ставятся в соответствие узловым точкам, столбцы - прямоугольникам). Кратчайшее столбцовое покрытие этой булевой матрицы и определит множество прямоугольников Я*, где Я* с Я, которое будет представлять собой кратчайшее покрытие многоугольникаМ.
Простейший способ нахождения кратчайшего столбцового покрытия матрицы В заключается в переборе всех подмножеств ее столбцов, отборе из них тех подмножеств, которые содержат сообща не менее одной единицы в каждой строке, и в выборе среди последних подмножества наименьшей мощности.
Перебор можно сократить, основываясь на том, что множество решений задачи покрытия является выпуклым по отношению включения, и это означает, что если некоторое подмножество является решением, то и любое его расширение путем добавления в него новых элементов также будет представлять собой решение. В таком случае нахождение множества всех решений сводится к нахождению его нижней границы, что позволяет существенно сократить объем выполняемых вычислений.
Процесс сокращенного перебора подмножеств столбцов при поиске кратчайшего покрытия можно отобразить деревом поиска, в котором каждое ребро ставится в соответствие некоторому столбцу матрицы В, а каждая вершина - подмножеству столбцов, образованному столбцами-ребрами, связывающими данную вершину с корнем дерева. Прямой шаг выполняется лишь в том случае, если подмножество столбцов, соответствующее текущей вершине, не является покрытием и, следовательно, граница выпуклого множества решений еще не достигнута.
Еще одна возможность сокращения перебора основана на том, что если при обходе дерева поиска будет найдено покрытие, содержащее т столбцов, то в дальнейшем можно ограничиться рассмотрением цепей длины не более, чем т.
По окончании перебора самая короткая цепь в дереве поиска, достигающая нижней границы выпуклого множества решений, определит своими столбцами-ребрами кратчайшее покрытие матрицы В, причем таких цепей, вообще говоря, может быть несколько.
Рассмотренный метод поиска кратчайшего покрытия матрицы В характеризуется громоздкими вычислениями, однако позволяет находить все кратчайшие покрытия (из них, например, можно выбрать «лучшее» покрытие, соответствующее оптимальной траектории перемещения диафрагмы координатного стола). Если же нужно найти только одно из кратчайших покрытий, то можно использовать более простой метод [9]. Он основан на использовании перечисленных ниже правил редуцирования (упрощения) переменной матрицы X, характеризующей текущую ситуацию и первоначально равной матрице В.
Правило удаления строки. Из матрицы Xудаляется строка, если она поглощает некоторую другую строку (булев вектор с поглощает булев вектор d, если каждая пара одноименных компонент с, и di удовлетворяет условию: с, > di).
Правило удаления столбца. Из матрицы X удаляется столбец, если он поглощается некоторым другим столбцом.
Правило приращения покрытия. Если некоторая строка матрицыXимеет лишь один элемент со значением 1, то столбец, содержащий эту единицу, включается в конструируемое покрытие. Включаемый в покрытие столбец удаляется из матрицы X вместе со всеми строками, в которых он содержит единицы.
Если в очередном миноре нет ни поглощающих строк, ни поглощаемых столбцов, следует применить правило расщепления.
Правило расщепления. В матрице X отыскивается минимальная (по числу единиц) строка и поочередно рассматриваются варианты, связанные с включением в конструируемое покрытие столбцов, имеющих в этой строке единицу.
Дополнительное сокращение перебора обеспечивается следующим правилом возврата.
Правило возврата. Если в процессе поиска решения удалось найти некоторое покрытие, последующий перебор ограничивается рассмотрением таких подмножеств столбцов, мощность которых меньше мощности найденного покрытия. Метод поиска кратчайшего покрытия, основанный на использовании правил редуцирования, хотя и является более быстродействующим, однако число точек ветвления вариантов в нем и, соответственно, объем вычислений быстро возрастают с увеличением размеров исходной матрицы В.
Приближенный метод поиска кратчайшего покрытия многоугольника, заданного в дискретной форме
Точное решение задачи поиска кратчайшего покрытия многоугольника, заданного множеством узловых точек, как видно из предыдущего материала, сопряжено с громоздкими вычислениями, объем которых резко возрастает с ростом размерности решаемых задач. По этой причине на практике имеет смысл использовать приближенные методы, позволяющие находить решения, близкие к оптимальным.
Известно, что самыми быстродействующими являются цепные алгоритмы, без возвратных движений по дереву поиска. Их реализация разбивается на этапы, и на каждом из этих этапов выбирается лишь один вариант его прохождения, причем оптимальность его условна и определяется некоторым эвристическим критерием, лежащим в основе метода.
Например, можно использовать следующий простой алгоритм решения задачи покрытия матрицы B [9], дающий достаточно хорошее приближение к кратчайшему покрытию: найти минимальную (по числу единиц) строку, выбрать максимальный среди столбцов, содержащих в ней единицу, и включить его в конструируемое подмножество (вначале оно пустое), затем удалить из матрицы выбранный столбец и все строки, содержащие в нем единицу, и повторить эту процедуру уже для остатка матрицы, и т. д. до тех пор, пока растущее подмножество не станет покрытием. Оно и будет представлять приближенное решение задачи поиска кратчайшего покрытия.
Рассмотрим работу этого алгоритма на примере многоугольника с множеством узловых точек P = (р1, p2, ..., p9} и найденным покрытием Я = (г1, Г2, ..., г8}, для которых матрица В имеет следующий вид:
Я к 0 0"
1 2
3
4
В = 5 6
7
8 9
Ь 0 1 0 1 1 0 0
d 0 0 1 0 1 0 0
е 0 0 1 0 0 0 0
/
0 0 1 0 0 0 0
1 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1
где для простоты строки взвешены цифрами (а не элементами из множества Р), а столбцы - буквами а, Ь, ..., к (а не элементами из множества Я).
Сначала в матрице В выбирается строка 1 и столбец а, после чего из матрицы удаляется столбец а и строки 1, 2, 7, 8, и она сокращается до
Ь с d е / Я к
3 "0 1 1 1 1 0 0
4 1 1 0 0 0 1 0
5 1 0 1 0 0 1 0
6 0 0 0 0 0 1 1
9 0 0 0 0 1 0 1
Затем выбираются строка 6 и столбец я, и матрица сокращается до
Ь с d е / к
0 11110 0 0 0 0 1 1
Следующий далее выбор строки 9 и столбца/приводит к получению покрытия {а, /, £} и, следовательно, Я = {г1, Гб, Г7}. В данном случае покрытие оказывается кратчайшим, в чем можно убедиться, применив к матрице В один из точных алгоритмов.
Следует, однако, отметить, что решение задачи поиска кратчайшего покрытия связано не только с отысканием покрытия матрицы В, но и с достаточно трудоемким процессом ее построения, что осложняет решение задач практической сложности.
Рассмотрим в связи с этим приближенный цепной алгоритм, позволяющий избежать построения промежуточной матрицы В при поиске ее кратчайшего покрытия.
Обозначим через р(г,) множество узловых точек, которые покрывает прямоугольник г,, где , е {1, 2, .., т}. Далее сформируем множество Р(г) = {р(г1), р(г2), ■.., р(гт)}, которое по сравнению с матрицей В значительно более компактно задает ту же самую информацию.
Каждый этап алгоритма будем рассматривать, как процесс, состоящий из двух ступеней. Пусть результатом прохождения первой ступени этапа является включение в формируемое решение Я некоторого элемента из множества Я, а результатом прохождения второй ступени этапа -корректировка множества Р(г).
На первой ступени этапа для выбора элемента из множества Я для включения его в множество Я используются два критерия. Согласно первому из них, оптимальным будет выбор такого элемента, который принадлежит любому безизбыточному покрытию многоугольника М (для этого среди еще не покрытых узловых точек многоугольника М должна найтись такая точка, которая покрывается только одним этим элементом).
Если же такой элемент не найден, то в качестве критерия оптимальности принимается число тех, еще не покрытых узловых точек, которые может покрыть элемент множества Я, после чего из множества Я выбирается элемент, которому соответствует максимальное значение этого критерия.
Обозначим через Гк элемент, который был включен в множество Я после завершения первой ступени этапа.
На второй ступени этапа из множества Р(г) удаляется элемент р(гк), а затем просматриваются остальные элементы этого множества и из них удаляются те узловые точки, которые покрываются элементом Гк. Если в результате этого окажется, что какой-либо элемент множества Р(г) стал пустым множеством, то он также удаляется из Р(г).
Такое поэтапное расширение множества Я* продолжается до тех пор, пока корректируемое множество Р(Г) не окажется пустым, что будет означать, что все узловые точки многоугольника М покрыты элементами множества Я , которое и будет представлять решение исходной задачи.
Применим данный алгоритм к рассмотренной выше задаче поиска кратчайшего покрытия элементов множества Р = {р1,р2, ■.., р9} элементами множества Я = {г1, Г2, ■.., Г8}.
Теперь вместо бинарной матрицы В формируем множество Р(г): Р(г) = {р(п),р(г), ■,р(г8)} =
= {р р2, р7, р8}, {р2, р4, р5}, {р3,р4}, {р3, р5}, {р3, р8}, р р9}, {р4, р5, рб}, {рб, Р7, р8, рр}}.
Расширение множества Я , первоначально пустого, начинается с добавления в него элемента Г1 е Я, так как в множестве Р есть узловая точкар1, которую может покрыть только один элемент Г1 из множества Я. После этого множество Р(Г) корректируется и примет следующий вид: Р(Г) = {{р4,р5}, {р3, р4}, {р3, р5}, {рз}, {р3, р9}, ^4, р5, рб}, {рб, р9}}.
На втором этапе в конструируемое решение Я вносится элемент Г7 е Я, так как он сможет покрыть наибольшее число еще не покрытых узловых точек, и множество Р(Г) после корректировки станет выглядеть так: Р(г) = {{р3}, {р3, р9}, {р9}}.
На третьем, завершающем этапе в решение Я вносится элемент Гб, а множество Р(г) после корректировки окажется пустым. В результате будет найдено приближенное решение: Я = {г1, г б, Г7}. В данном случае оно также оказывается кратчайшим.
Заключение
Данная работа содержит материал, относящийся к очередному этапу исследований, связанных с общей задачей по разработке программной системы подготовки топологической информации для микрофотонаборных генераторов изображений. В частности, решается оптимизационная задача по устранению избыточности в покрытии геометрического объекта типа многоугольника множеством прямоугольников.
Предлагаемый приближенный метод в отличие от методов, дающих точное решение, ориентирован на задачи практической сложности и свободен от известного в практике топологического проектирования недостатка, связанного с наличием проблемы вычислительной точности. Это обеспечивается за счет того, что информация об исходном объекте (многоугольнике) задается в дискретной форме конечным множеством его узловых точек, что позволяет далее использовать методы дискретной оптимизации.
Дополнительного исследования (в том числе - машинного эксперимента) требует задача, связанная с выбором размера ячеек решетки, накладываемой на многоугольник при нахождении множества его узловых точек, от чего зависят, в частности, быстродействие метода и качество получаемого покрытия. Однако этот достаточно не простой прикладной вопрос требует отдельного рассмотрения и в данной работе не обсуждается.
Список литературы
1. Фейнберг В.З. Геометрические задачи машинной графики больших интегральных схем. М.: Радио и связь, 1987. 178 с.
2. Автоматизированная система подготовки информации для формирования фотошаблонов / Е.А. Шестаков [и др.] // Искусственный интеллект. 2008. № 4. С. 200-207.
3. Препарата Ф., Шеймос М. Вычислительная геометрия: Введение. М.: Мир, 1989. 478 с.
4. Поттосин Ю.В., Шестаков Е.А. Использование булевых функций для представления многоугольников // Вестник Томского государственного университета. Управление, вычислительная техника и информатика. 2008. № 2 (3). С. 106-115.
5. Бутов А.А. Метод объединения множества пересекающихся контуров // Вестник Брестского государственного технического университета. Физика, Математика, Информатика. 2008. № 5. С. 65-70.
6. Бутов А.А. Простой метод нахождения булевой формулы многоугольника в дизъюнктивной нормальной форме // Вестник Брестского государственного технического университета. Физика, Математика, Информатика. 2011. № 5. С. 35-38.
7. Бутов А.А. Метод построения булевой формулы многоугольника в дизъюнктивной нормальной форме // Информатика. 2014. № 4. С. 117-124.
8. Шестаков Е.А., Воронов А.А. Декомпозиция многосвязного многоугольника во множество ортогональных многоугольников // Вестник Брестского государственного технического университета. Физика, Математика, Информатика. 2008. № 5. С. 87-91.
9. Закревский А.Д. Логический синтез каскадных схем. М.: Наука, 1981. 416 с.
References
1. Fejnberg V.Z. Geometricheskie zadachi mashinnoj grafiki bol'shih integralnyh shem. M.: Radio i svjaz', 1987. 178 s. (in Russ.)
2. Avtomatizirovannaja sistema podgotovki informacii dlja formirovanija fotoshablonov / Shestakov E.A. [i dr.] // Iskusstvennyy intellekt. 2008. № 4. S. 200-207. (in Russ.)
3. Preparata F., Sheymos M. Vychislitel'naja geometrija: Vvedenie. M.: Mir, 1989. 478 s. (in Russ.)
4. Pottosin Yu.V., Shestakov E.A. Ispolzovanie bulevyh funkcij dlja predstavlenija mnogougol'nikov // Bestnik Tomskogo Gosudarstvennogo universiteta. Upravlenie, vychislitel'naja technika i informatika. 2008. № 2(3). S. 106-115. (in Russ.)
5. Butov A.A. Metod obedinenija mnozhestva peresekajushhihsja konturov // Vestnik Brestskogo gosudarstvennogo tehnicheskogo universiteta. Fisika, Matematika, Informatika. 2008. № 5. S. 65-70. (in Russ.)
6. Butov A.A. Prostoj metod nahozhdenija bulevoj formuly mnogougol'nika v dizjunktivnoj normalnoj forme // Vestnik Brestskogo gosudarstvennogo tehnicheskogo universiteta. Fisika, Matematika, Informatika. 2011. № 5. S. 35-38. (in Russ.)
7. Butov A.A. Metod postroenija bulevoj formuly mnogougol'nika v dizjunktivnoj normal'noj forme // Informatika. 2014. № 4. S. 117-124. (in Russ.)
8. Shestakov E.A., Voronov A.A. Dekompozicija mnogosvjaznogo mnogougol'nika vo mnozhestvo ortogonalnyh mnogougol'nikov // Vestnik Brestskogo gosudarstvennogo tehnicheskogo universiteta. Fisika, Matematika, Informatika. 2008. № 5. S. 87-91. (in Russ.)
9. Zakrevskij A.D. Logicheskij sintez kaskadnyh shem. M.: Nauka, 1981. 416 s. (in Russ.)
Сведения об авторе
Бутов А.А., к.т.н., доцент, доцент кафедры экономической информатики Белорусского государственного университета информатики и радиоэлектроники.
Information about the author
Butov A.A., PhD, associate professor, associate professor of economic informatics department of the Belarusian state university of informatics and radioelectronics.
Адрес для корреспонденции
220013, Республика Беларусь, г. Минск, ул. П. Бровки, д. 6, Белорусский государственный университет информатики и радиоэлектроники тел. +375-17-293-22-73; e-mail: [email protected] Бутов Алексей Александрович
Address for correspondence
220013, Republic of Belarus, Minsk, P. Brovka st., 6, Belarusian state university of informatics and radioelectronics tel. + 375-17-293-22-73; e-mail: [email protected] Butov Aleksey Alexandrovich