Книга
Книга
ВВЕДЕНИЕ
Недавние исследования алгоритмических аспектов построения роботов и навигации в средах с препятствиями привели к нескольким интересным вариантам постановки задачи поиска кратчайшего пути. Задача определения кратчайшего пути между двумя точками в трехмерном пространстве при наличии препятствий в виде многогранников оказывается очень сложной, и для ее решения известны лишь чрезвычайно неэффективные
[16, 17] или приближенные [14] алгоритмы. Соответствующая двумерная задача с препятствиями в виде многоугольников может быть легко решена за время О (/г2 log/г) путем построения графа видимости [4, 6, 8, 9, 17], а в некоторых особых случаях, когда кратчайшие траектории обладают рядом свойств монотонности, сложность алгоритма удается снизить до О (/г log/г) [5, 9, 17] (здесь п— суммарное число вершин препятствий многоугольников). Недавно было сообщено [16] об алгоритме, решающем двумерную задачу нахождения кратчайшего пути, который имеет сложность О\пк + n\ogn) (где к— число отдельных простых многоугольных препятствий).
В этой статье мы рассмотрим особый случай трехмерной постановки задачи поиска кратчайшего пути, известный под названием дискретной геодезической задачи. На поверхности заданного многогранника даны две точки, и требуется найти кратчайший путь между ними, проходящий по этой поверхности. Геодезическая задача представляет определенный интерес для наземной навигации на пересеченной местности, где движущийся аппарат должен оставаться на поверхности, которую можно смоделировать многогранником. Заметим, что длина полученного пути вовсе не обязана быть минимальной для свободного от многогранника пространства, поскольку в нашем случае мы вынуждены оставаться на многогранной поверхности. Чтобы убедиться в том, что приведенная формулировка есть частный случай общей трехмерной постановки, представим себе два многогранных препятствия: открытый многогранник и дополнение к его замыканию. Тогда путь между двумя точками, не пересекающий оба многогранника, есть как раз путь, лежащий на общей для них обоих поверхности. С другой стороны, решаемая нами задача представляет собой обобщение двумерной постановки, поскольку каждое многоугольное препятствие можно представить в виде очень высокой призмы, выступающей над плоскостью, в которой лежит заданный многоугольник.
Впервые задача поиска кратчайшего пути на поверхности была поставлена в работе [17], где описан алгоритм ее решения для случая выпуклого многогранника, имеющий временную сложность О (/г3 log/г). При этом п— это мера сложности сцены, которую в нашей ситуации можно оценить, к примеру, числом ребер многогранной поверхности. В работе [10] Маунт предложил алгоритм для выпуклого многогранника, который улучшил оценку до О (/г2 log/г). Для невыпуклого многогранника в работе [13] приведен алгоритм, имеющий сложность О (/г5).
В настоящей работе перечисленные результаты улучшаются следующим образом. Мы рассматриваем многогранник общего вида (возможно, невыпуклый или даже более сложной кон-
струкции) и получаем для него оценку сложности О (/г log/г). При этом решается задача нахождения кратчайшего пути с одним источником (а с помощью простого обобщения и задачи с несколькими источниками, см. [11]) путем построения такого разбиения поверхности, которое позволяет определить длину кратчайшего пути до любой концевой точки простой локализацией положения этой точки в построенном разбиении. Таким образом, длина кратчайшего пути может быть определена за время О (log/г), а сам путь затем находится за время О(^ + + log^)> где к— число ребер, которые он пересекает. Тем самым наш алгоритм служит обобщением решений двумерной задачи построения кратчайшего пути среди препятствий, данных в работах [4] и [17]. Здесь мы сосредоточим внимание на случае ограниченных многогранников. Однако алгоритм непосредственно обобщается так, чтобы можно было работать и с неограниченными гранями.
Алгоритм основан на методе, который мы назвали «непрерывный Дейкстра», поскольку по своей структуре он очень напоминает известный алгоритм Дейкстры нахождения кратчайшего пути на графе [1]. Ребра многогранника соответствуют вершинам графа с той лишь разницей, что в нашем случае расстояние от исходной точки до ребра определено неоднозначно. Вместо этого мы имеем функцию, служащую как бы меткой узла, и храним дискретное описание минимума этой функции. Это требует запоминания для каждого ребра «интервалов оптимальности», разбивающих ребро на части, для которых кратчайший путь к точкам области имеет одинаковую дискретную структуру, проходя через одну и ту же последовательность вершин и ребер. Эти интервалы аналогичны понятию «срезов», использованному в работе [17].
вершин), и что s и t— вершины нашей многогранной поверхности. Нам требуется найти кратчайший путь от начальной до конечной точки, целиком лежащий на поверхности.
Дискретная геодезическая задача (ДГЗ).
Дано*. Две точки s и t на многогранной поверхности 9\ которая была подвергнута триангуляции.
Требуется*. Найти кратчайший в смысле евклидовой метрики путь из s в /, целиком лежащий на поверхности 9Р.
В действительности предлагаемый ниже алгоритм решает поставленную задачу в более общей формулировке.
Дискретная геодезическая задача с одним источником (ДГЗ-ОИ).
Дано*. Две точки s и / на многогранной поверхности ^, которая была подвергнута триангуляции.
Требуется*. Построить структуру, позволяющую вычислять кратчайший путь из s в любую конечную точку t, целиком лежащий на поверхности 9.
Таким образом, мы можем определить кратчайший путь от источника до любой точки на поверхности, и нам неизвестен
Рис. 1. Последовательность смежных по ребру граней.
алгоритм, решающий ДГЗ за более короткое время (в наихудшем случае асимптотически), чем метод ДГЗ-ОИ. Ввиду сказанного в последующем изложении мы нс будем рассматривать какую-либо конкретную конечную точку.
Две грани f и f называются смежными по ребру, если они имеют общее ребро е. Последовательность смежных по ребру граней — это список = (fb /2, • > fwV включающий одну или более граней, таких что грань ft смежна по ребру (обозначим его через е^ с гранью f/+i (рис. 1). В дальнейшем список ребер (возможно, пустой) ^ = (вц е2, ..., е^ мы будем называть реберной последовательностью, а вершину грани fi, противоположную ребру е\ — корнем г(<П (г(0) нсопрсдслсн). Если каждая грань (соответственно ребро) встречается лишь один раз в 9" (соответственно в <^), мы говорим, что последовательность является простой.
С каждой гранью связана двумерная система координат. Для двух смежных по ребру граней f и f' с общим ребром е определим плоскую развертку грани f' на грань f как образ точек грани f' при ее повороте вокруг прямой, проходящей через е, до совмещения с плоскостью грани Д причем так, что точки f оказываются с противоположной стороны от е по отношению к f (т. с. Д не накрывает грань f).
Координаты точек плоской развертки грани f на грань f записываются в системе координат, связанной с гранью f. Обобщая введенное понятие, мы говорим, что развертываем реберную последовательность S = (еь е^ ..., е^ следующим образом: поворачиваем грань Д вокруг ребра е\ до тех пор, пока ее плоскость нс совпадет с плоскостью грани Д; поворачиваем грани Д и Д вокруг е2 до тех пор, пока их общая плоскость нс совпадет с плоскостью грани f3, и т. д. до тех пор, пока все грани Д, А, • fk не лягут в плоскость грани f^. Окончательная плоская развертка вдоль <^ приводит к представлению точек всех граней Д, Д, ..., fk в системе координат, связанной с гранью Д+ь Если к — точка, принадлежащая грани Д (1 ^/^+1), то через U^ (х) обозначим образ точки х при развертке вдоль 8 (представленный в системе координат, связанной с гранью Д+1).
Под путем на ^ будем всегда подразумевать простой (т. е. самонепересекающийся) путь, пересечение которого с любой гранью есть объединение непересекающихся прямолинейных отрезков. Геодезический путь — это путь, являющийся локально оптимальным и, следовательно, не поддающийся укорачиванию посредством небольших вариаций. Мы говорим, что путь р связывает реберную последовательность <^ = (еь е^ ..., е^, если р состоит из отрезков, соединяющих внутренние точки ребер ^i, е^ .... ек (именно в таком порядке). (Заметим, что такой путь нс может проходить через концы какого-либо из ребер ei, поскольку в противном случае два разных последовательных ребра из S должны были бы быть коллинеарны.) Путь р проходит через реберную последовательность 8, если существует его часть, связывающая S (заметьте, что таких частей может быть несколько). Если р связывает реберную последовательность 8, то плоская развертка р вдоль 8 есть просто образ р при плоской развертке вдоль 8.
ХАРАКТЕРИСТИКА ГЕОДЕЗИЧЕСКИХ И ОПТИМАЛЬНЫХ ПУТЕЙ
Характеристику геодезических и оптимальных путей мы начнем с простой леммы о существовании, утверждающей, что такие пути существуют (но они необязательно единственны}.
Лемма 3.1. Всегда существует геодезический путь из точки s до любой другой точки х^ 9\ Более того, среди геодезических путей, идущих из s в х, всегда существует по крайней мере один путь наименьшей длины .
Мы предположим, что рассматриваются только простые пути, т. е. пути, которые нс проходят ни через какую точку более одного раза. (Для кратчайших путей это, конечно, справедливо.) В соответствии со следующей леммой оптимальные пути обладают дополнительным свойством: они нс проходят ни по какой грани более одного раза.
Лемма 3.2. Пересечение оптимального пути р с произвольной гранью f представляет собой отрезок {или пустое множество') .
Доказательство. Пусть рП/т^ 0 и пусть у — первая точка р, принадлежащая f, a у7—последняя. Тогда путь из точки у в точку у' также должен быть оптимальным (иначе р можно было бы улучшить). Кратчайший путь из точки у в точку у7 на f есть отрезок, их соединяющий. Следовательно, пересечение р с f должно быть прямолинейным отрезком. ■
Обратите внимание на то, что пересечение геодезического пути с гранью может быть объединением нескольких отдельных прямолинейных отрезков. Например, если несколько раз обмотать туго натянутую струну вокруг длинного узкого прямоугольного параллелепипеда, то путь, по которому она пройдет, локально будет оптимален, хотя глобально, конечно, нет. Отсюда также видно, что не все геодезические являются оптимальными путями и что геодезических может быть бесконечно много (хотя лишь конечное их число будет пересекать каждую грань не более одного раза).
Сейчас мы сформулируем одно простое свойство геодезических (оно упоминается в работах [7] и [17]), заключающееся в том, что при развертке геодезического пути вдоль реберной последовательности он переходит в отрезок прямой.
Лемма 3.3. Если р — геодезический путь, связывающий реберную последовательность S, то плоская развертка р вдоль реберной последовательности S есть отрезок прямой.
Доказательство. Если бы образ отличался от отрезка прямой, то нашлись бы два отрезка ах и ха7 пути р, такие что х есть внутренняя точка ребра e = fHfcz^, и угол Даха7 не
равен л. Но тогда путь р можно укоротить за счет выбора точек р е ах, (3' е ха', определяющих отрезок рр', целиком принадлежащий граням f и f'. Это противоречит локальной оптимальности р. ■
В случае выпуклых когда не пройдет через
многогранников оптимальный путь ни-вершины многогранников, за исключе-многогранников оптимальный путь ни-вершины многогранников, за исключе-нием граничных точек, и это обстоятельство играет существенную роль в алгоритме, предложенном в [17]. Однако в случае невыпуклых многогранников оптимальный путь может проходить через множество других вершин. Например, на рис. 2 оптимальный путь из s в t проходит через вершину у. (Вершина у обладает тем свойством, что сумма углов при вершине у по всем граням, смежным с
многогранников оптимальный путь ни-вершины многогранников, за исключе-
многогранников оптимальный путь ни-вершины многогранников, за исключе-
Рис. 2. Оптимальный путь, проходящий через вершину.Рис. 2. Оптимальный путь, проходящий через вершину.ней, больше 2л.) Оптимальныйней, больше 2л.) ОптимальныйРис. 3. Оптимальный путь, включающий цепочку ребер.Рис. 3. Оптимальный путь, включающий цепочку ребер.путь может также включать длинную цепочку смежных ребер (рис. 3).
Рис. 2. Оптимальный путь, проходящий через вершину.
Рис. 2. Оптимальный путь, проходящий через вершину.
ней, больше 2л.) Оптимальный
ней, больше 2л.) Оптимальный
Рис. 3. Оптимальный путь, включающий цепочку ребер.
Рис. 3. Оптимальный путь, включающий цепочку ребер.
Мы можем охарактеризовать то, каким образом геодезический путь проходит через вершину. Предположим, что путь р проходит через вершину у при переходе с грани f на грань f'. Обозначим через ау отрезок пути р на f, входящий в у, а через уо/— отрезок пути р на f, выходящий из у. Определим угол пути р при вершине у в направлении по часовой стрелке как угол, отсчитываемый от ас к са' в направлении по часовой
Рис. 4. Спрямление пути, проходящего через вершину.Рис. 4. Спрямление пути, проходящего через вершину.стрелке при плоской развертке всех граней от f до f' (включительно), содержащих и (просто нужно сложить углы, образованные соответствующими ребрами граней; в результате угол может оказаться значительно больше 2л). Аналогично определим угол в направлении против часовой стрелки от осу к иа/. Определим угол, образованный путем р при прохождении через вершину и, как минимум из этих двух углов. Тогда мы имеем следующий результат.
Рис. 4. Спрямление пути, проходящего через вершину.
Рис. 4. Спрямление пути, проходящего через вершину.
Лемма 3.4. Если геодезический путь р проходит через вершину v, то угол, образованный р при прохождении и, больше или равен л.
Доказательство. Допустим, что угол меньше л и что (без ограничения общности) это угол в направлении по часовой стрелке. Если грани f, fi, f2, ..., Д, fz развернуть в одной плоскости вокруг вершины и, то мы получим ситуацию, изображенную на рис. 4. Теперь заметим, что на отрезке old существует точка р, а
на отрезке и а/— точка Р', такие что отрезок рр' целиком принадлежит объединению развернутых граней Д fi, f2, • Д, f. Ясно, что отрезок ррх «спрямляет» путь, проходящий через вершину, так что р не может быть геодезическим путем. ■
Часть пути р между любыми двумя последовательными вершинами и и у' связывает некоторую реберную последовательность 8 с корнем у = rkS^ (если S = 0, то у и у'—концевые точки ребра е, являющегося частью р). Если р— геодезический путь, то, согласно лемме 3.3, часть его от вершины у до вершины у' полностью определяется заданной реберной последовательностью S. Следовательно, мы можем описать геодезический путь из s в х в виде списка р = Vo\ = s, Sx, ^2, ^2, v^ а%, 8 к, x), где У1, y2, ..., y^ — вершины (упорядоченные), через которые проходит р, а ^1, ^2, ..., S к— реберные последовательности (возможно, пустые), которые связывает р. Отметим, что Ci = r^i) для всякого I, такого что ^i^=0. Мы назовем и к корнем пути р, а ^— последней реберной последовательностью р. Для геодезических путей р реберные последователь-
ности необязательно простые (вспомните пример со струной, намотанной на прямоугольный параллелепипед); однако если р оптимален, то каждая Si должна быть простой, и никакое ребро не должно входить более чем в одну реберную последовательность Si, 1 ^ i ^ К (иначе р в противоречии с леммой 3.2 более одного раза пересечет ребро).
Подводя итог сказанному, мы можем следующим образом охарактеризовать геодезические и оптимальные пути на невыпуклых поверхностях.
Лемма 3.5. В общем случае геодезический путь есть путь, который проходит через чередующуюся последовательность вершин и (возможно, пустых) реберных последовательностей, таких что образ пути при развертке вдоль любой реберной последовательности представляет собой прямолинейный отрезок, а угол, образованный путем при прохождении через вершины, больше или равен л. Общий вид оптимального пути такой же, как и геодезического, за исключением того, что никакое ребро не может появиться более чем в одной реберной последовательности и каждая реберная последовательность должна быть простой.
/СВОБОДНЫЕ ПУТИ И ИНТЕРВАЛЫ ОПТИМАЛЬНОСТИ
Для произвольной точки х обозначим через р(х) оптимальный путь из s в х, и пусть d(x)— длина р(х). Множество всех точек у ребра е, таких, что существует оптимальный путь в у с корнем г и последней последовательностью S, представляет собой некоторое подмножество ребра е, которое в общем случае может содержать до О (п) отрезков. Это приводит к заметным трудностям, когда наш алгоритм пытается «распространить» сигналы, идущие из г, через ребро е. В случае выпуклого многогранника подобной проблемы не возникает. В этом случае все «клинья» на плоской развертке поверхности выпуклы, поскольку их границы прямолинейны (это следует из того факта, что оптимальные пути не проходят через вершины, отличные от s, и, значит, разделяющие «клинья» кривые являются прямыми). В невыпуклом случае кривые раздела будут гиперболическими дугами, так что «клинья» будут невыпуклыми.
Чтобы преодолеть указанную трудность, мы вводим понятие f-свободного пути. Если задана грань / и е — одно из трех ее ребер (сокращенно это будем обозначать так: (е, f)— пара ребро — грань), то f-свободный путь в точку у е е определяется как путь на У из s в у, не пересекающий внутренней части грани /. Кратчайший /-свободный путь в у (обозначаемый р^у))
есть /-свободный путь в у минимальной длины. Нам нужно показать следующее.
Лемма 4.1. Оптимальный путь р^ в точку хЕе пересекает внутреннюю часть не более чем одной грани, содержащей х.
Доказательство. Если х— вершина, то содержащих ее граней может быть несколько; если х— внутренняя точка е, то их ровно две. Пусть /1, /2, .., fk — грани, содержащие х. Если р(х) нс пересекает внутреннюю часть ни одной из них, то все в порядке. В противном случае пусть /, будет первой из этих граней, внутреннюю часть которой пересекает оптимальный путь р(х), и пусть у — точка на р(х), внутренняя для грани ft. Тогда часть пути р(х) от у до х должна представлять собой оптимальный путь. Но кратчайший путь из у в х на ^ есть Отрезок прямой, соединяющий у и х, поскольку он целиком лежит на грани У и, значит, на поверхности ^. Следовательно, никакая другая грань fj^fu содержащая х, нс имеет общих внутренних точек с путем р. I
Лемма 4.2 указывает нам способ построения оптимального пути во внутреннюю точку х ребра e = ff\f по кратчайшему /-свободному и кратчайшему /'-свободному пути в х.
Лемма 4.2. Оптимальный путь во внутреннюю точку х ребра е совпадает с кратчайшим из путей рДх) и р^Дху
Лемма 4.3 устанавливает другое важное свойство кратчайших /-Свободных путей: они не могут пересекать друг друга.
Лемма 4.3. Если р(х) и р(у)— оптимальные пути из s в точки х и у, то они могут пересекаться только в вершинах У, причем если они пересекаются в вершине v, то часть пути р^ от s до и имеет ту же длину, что и часть пути р(у) от s до и. Аналогичное утверждение справедливо по отношению к ^-свободным путям рДх^ и Pf {у).
Доказательство. Если р(х) и р(уД пересекаются в точке 2, то, конечно, длина их частей до точки г должна быть одинакова (иначе один из них можно сделать короче, заменив его часть от точки s до 2). Если бы 2 была внутренней точкой грани, то оба пути можно было бы локально улучшить с помощью обхода точки 2. Аналогичное улучшение обоих путей было бы возможно, если бы 2 была внутренней точкой ребра (достаточно представить себе развертку путей и действовать тем же способом, как если бы 2 была внутренней точкой грани). Те же рассуждения применимы к кратчайшим /-свободным путям, поскольку подобные локальные улучшения не влияют на свойства обоих путей быть /-свободными. ■
Обратите внимание на то, что, хотя рДх) и рДу) не могут пересекаться, кратчайшие /-свободные пути для различных граней пересекаться могут (например, на рис. 5 pf(x) пересекается с рь^у Проблема в том, что если мы попытаемся улучшить один из путей (скажем, P^W) с помощью замены его части частью пути pf? то он может перестать быть /i-свободным.
Важность введенного понятия кратчайших /-свободных путей для разрабатываемого нами алгоритма становится очевидной из следующей леммы.
Лемма 4.4. Если заданы пара ребро — грань (e,f), реберная последовательность S и некоторая вершина г1}, то множество 3 точек х на е, для которых существует кратчайший f-свободный путь в х с корнем г и последней реберной последовательностью S, является связным (и, следовательно, представляет собой интервал, принадлежащий е).
Доказательство. Если на е нет точек, в которые ведет кратчайший /-свободный путь с корнем г и последней реберной последовательностью $, то доказывать нечего. В противном случае пусть х и х'— точки на е, такие, что рДх) и Pf(x') имеют корень г и последнюю реберную последовательность ^. Мы хотим доказать, что если у — точка на е, расположенная между х и х', то рДу) также имеет корень г и последнюю реберную последовательность ^. Для этого построим развертку последовательности ^ и обозначим через r = U^^ образ г при этой развертке. Поскольку, согласно лемме 3.3, образы путей рДх^ и Pt^x^ являются отрезками, отрезки гх, гх' и хх' образуют на развертке треугольник. Никакой /-свободный путь рДу) не может пересекать внутренность /; следовательно, он должен
*) Очевидно, что г является корнем §: г = r^SY— Прим, перев.
гг
Рис. 6. Развертки и интервалы оптимальности.
проходить внутри указанного треугольника. Далее, поскольку кратчайшие /-свободные пути не пересекаются (лемма 4.3), образ Pf(y) при развертке не может пересекать отрезки гх и гх, во внутренних точках. Поэтому образ pf(y) должен пересекать треугольник в точке г, а это и означает, что Pf (у) имеет корень г и последнюю реберную последовательность ^.
Интервал J может быть замкнутым, открытым или полуоткрытым. (Концевая точка может не принадлежать интервалу в вырожденном случае, при котором отрезок, представляющий собой развертку кратчайшего /-свободного пути, проходит через две или более вершины (рис. 6). То, что результирующий интервал имеет при этом открытый конец, в действительности есть следствие данного нами определения корня пути как первой вершины, отсчитываемой при трассировке пути в обратном направлении.) Пусть отрезок / = [а,6] представляет собой замыкание 3. (Обычно геометрический отрезок с концами а и b мы будем записывать как / = ab; однако здесь мы пишем \а, 6], желая подчеркнуть тот факт, что точки ребра е можно снабдить координатами, и тогда интервал / можно рассматривать как интервал этих координат.) Точка а (соответственно 6) представляет собой левый (соответственно правый) конец ин-
тервала, если смотреть на грань / с наружной относительно е стороны. Мы будем называть / интервалом оптимальности для г и S относительно пары (e,f). Альтернативное задание интервала оптимальности состоит в указании образа корня при развертке г = (7g (г), его глубины d = d^ и соответствующей пары ребро — грань Vе ЛУ Заметьте, что в вырожденном случае г может быть концевой точкой е (и, следовательно, /). (Условимся, что <17 не включает ребро е, так что U^ (г) есть представление корня г в системе координат грани f. Если S = 0, то г будет одной из вершин f.) Точка х является элементом интервала оптимальности для г относительно (е,/), если существует кратчайший /-свободный путь в х, образ которого при развертке (вдоль его последней реберной последовательности) в плоскости / содержит отрезок гх.
Примеры разверток и интервалов оптимальности приведены на рис. 6. Слева показан интервал Г точек ребра е, которые «достижимы» из корня г вдоль путей, проходящих через заданную реберную последовательность и являющихся при развертке прямыми линиями. Обратите внимание на то, что Г определяется левой и правой «загораживающими» вершинами rL и rR. (Г есть попросту та часть е, которая видима из г внутри многоугольника, получаемого разверткой последовательности смежных граней.) На правой стороне рисунка показан интервал оптимальности / = [#,£]. (Заметьте, что здесь 9 = (а, 6] — это полуоткрытый интервал, поскольку корнем пути в а служит не г, а /д.) Интервал слева от / есть просто тот, корнем которого является rL. Правая концевая точка b находится как точка пересечения Г с гиперболической кривой раздела между вершинами г и г'. Хотя точки справа от b и достижимы из г, более короткий путь к ним проходит через г'.
Легко видеть, что интервалы оптимальности относительно (е,/) образуют покрытие е и что они могут касаться, но не перекрывать друг друга.
Лемма 4.5. Интервалы оптимальности относительно заданной пары ребро — грань (еД) образуют покрытие е, причем их внутренние части не перекрываются.
Доказательство. Прежде всего заметим, что каждая точка х^.е должна принадлежать хотя бы одному интервалу оптимальности относительно ^еД^ (если рДх^— любой кратчайший /-свободный путь в х, то х принадлежит интервалу оптимальности для корня этого пути относительно (е,/)). Далее, если точка х^е принадлежит интервалам оптимальности относительно (е, /) для г и /, то она должна удовлетворять уравнению ^(г) + |7х| = d^r^-V\rzx\. Но это уравнение задает гиперболу
(которая вырождается в прямую при d(r) = dt/^Y Пересечение этой гиперболы с е есть точка (в вырожденном случае прямая не может содержать е, потому что тогда точки г и г' оказались бы по разные стороны от прямой, инцидентной е). Таким образом, не существует открытого подынтервала е, все точки которого принадлежат двум или более интервалам оптимальности. А это и означает, что последние не имеют общих внутренних точек. ■
Точка с на /, ближайшая к г, называется фронтальной точкой интервала. Поскольку минимум расстояния от точки г до замкнутого отрезка \а» ^1 достигается ровно в одной точке, мы можем быть уверены, что такая точка с существует и единственна. Она может быть как концевой, так и внутренней точкой / в зависимости от того, лежит ли проекция перпендикуляра из г на прямую, инцидентную е, соответственно вне или внутри интервала /.
Пересечение /-свободного пути, идущего в с, с гранью f (являющейся смежной с гранью / по ребру е) есть отрезок рс на грани /'. Мы будем называть (3 точкой доступа интервала /. Заметьте, что если с — вершина, то р может совпадать с с, так что рс вырождается в точку. Если нарисовать все отрезки 0 с для каждого интервала оптимальности относительно (е,f), то мы получим разбиение грани f' на каналы доступа (поскольку никакие два отрезка не могут пересекаться). Нетрудно видеть, что канал доступа представляет собой либо треугольник, либо четырехугольник, либо пятиугольник. Канал доступа мы будем обозначать, задавая пару (Л,/2), где h и /2— интервалы оптимальности, определяющие граничные отрезки р^ и р2с2. Если /1 = NIL, то канал есть просто часть f, расположенная слева от р2с2; если же U = NIL, то канал — это часть /', расположенная справа от PiCi.
АЛГОРИТМ
Наш алгоритм работает в полном соответствии с духом алгоритма Дейкстры [1]. Он представляет собой важный пример мощности метода, который мы назвали «непрерывный Дейкстра». «Сигнал» распространяется из источника к остальным точкам поверхности. Если он попадает в точку х поверхности впервые, то ей присваивается окончательная метка, значение которой равно d^— времени распространения сигнала (равному минимальному расстоянию от начальной точки до xY а сам сигнал передается дальше.
К счастью, такую разметку и дальнейшее распространение сигнала достаточно производить лишь для конечного числа (как мы покажем, для О (п2)) точек поверхности, называемых точками событий. (Фактически мы даем «ориентированную» реализацию рассматриваемого метода, при которой точки ребра помечаются длинами путей, входящих в ребро с каждой из его сторон. Это следует из того, что интервалы оптимальности были определены по отношению к /-свободным путям.)
В алгоритме используется несколько простых структур данных. Мы заводим список ILIST для кандидатов в интервалы оптимальности. Кандидатом в интервал (или для краткости иногда просто интервалом) считается подынтервал ребра, который содержит некоторый (возможно, пустой) интервал оптимальности и имеет в точности ту же структуру, что и этот интервал (т. е. в его структуре данных содержится информация того же типа). Мы называем их кандидатами, поскольку на завершающей стадии алгоритма все оставшиеся кандидаты в интервалы будут уже интервалами оптимальности. С кандидатом в интервал / связана следующая информация: его замыкание [а, &]; пара ребро — грань (е,/); корень г; проекция корня при развертке г; глубина корня d; фронтальная точка е; точка доступа р; предшественник I, являющийся кандидатом в интервалы (или вершиной), «распространение» которого привело к созданию интервала /. В дальнейшем мы будем использовать запись / = ([а, 6], (е, f), г, г, d, с, р, I).
Паре ребро — грань (i, f) ставится в соответствие упорядоченный список кандидатов в интервалы относительно (е,/), которые заносятся в порядке, определяемом направлением на ребре (направление на ребре выбирается так, чтобы грань f была расположена слева). Такое упорядочивание оказывается возможным благодаря тому, что внутренние части кандидатов в интервалы никогда не перекрываются. При инициации и в процессе работы алгоритма интервалы из списка, связанного с парой (е, /), необязательно покрывают ребро е (это означает, что существуют точки на е, не лежащие ни в одном из кандидатов в интервалы), но при завершении работы, как мы увидим, они будут образовывать покрытие.
С каждой вершиной и связываются указатели на всех кандидатов в интервалы, для которых она является корнем. Кроме того, ей присваивается окончательная метка d^u), представляющая собой длину кратчайшего пути в вершину с. Исходно d^c) = 4-00 для каждой вершины с. По мере выполнения алгоритма вершины становятся окончательно помеченными*, им присваиваются метки tZ(v)<+°°- Мы будем также помечать
некоторые точки, не являющиеся вершинами (фронтальные точки, лежащие во внутренней части ребер). Будем считать, что и для них исходные значения меток равны бесконечности.
Далее, в алгоритме используется очередь с log п приоритетами (называемая очередью событий), входами в которую служат точки некоторого кандидата в интервалы (концевая или фронтальная точки) с уже присвоенными им метками, которые представляют собой длины кратчайших на данный момент путей, ведущих к источнику. (В действительности нет необходимости хранить информацию о всех концевых точках кандидатов в интервалы. Вполне достаточно было бы это делать для событий, связанных с вершинами и фронтальными точками, лежащими внутри интервалов. Однако принятая избыточность не влияет на оценку эффективности алгоритма.)
Алгоритм работает следующим образом.
Алгоритм
(0) (Инициализация.) Присвоить s окончательную метку 0. Инициализировать очередь событий; список ILIST сделать пустым. Для каждой пары ребро — грань связанный с ней список интервалов сделать пустым. Для каждого ребра, противолежащего s, создать кандидата в интервалы, замыкание которого есть все ребро, а корень равен s. Найти точку с для каждого такого интервала и поставить ее вместе с концевыми точками ребра в очередь событий, причем каждая точка должна быть помечена се расстоянием от s. Занести полученные интервалы в список ILIST и в списки интервалов, связанные с соответствующими парами ребро — грань.
(Основной цикл.) Если очередь событий не пуста, выбрать из нее точку с наименьшей меткой и окончательно пометить ее. Если эта точка есть фронтальная точка некоторого кандидата в интервалы /, то выполнить процедуру Propagate^!) (распространение /).
Распространение интервала / интуитивно означает следующее: «волновой фронт» сигналов, идущих из корня интервала /, пропускается через /, прослеживается движение сигналов через два других ребра той же грани и на этих ребрах запоминаются те интервалы точек, которые лежат на оптимальных путях, проходящих через /. Один интервал может породить два (по одному на каждом из противолежащих ребер), поэтому при распространении интервалов необходимо соблюдать осторожность, чтобы не получить экспоненциального роста их числа. Это оказывается возможным благодаря тому, что оптимальные пути и кратчайшие f-свободные пути не пересекаются (лемма 4.3).
Отсюда также следует, что распространение интервалов может произойти лишь через каналы доступа, уже образованные интервалами на противолежащих ребрах. Теперь мы приведем детали процедуры Propagate(I).
Процедура Propagate^
(0) Допустим, что / — интервал относительно пары (е,f), где е = /ПГ- Пусть сее— фронтальная точка /. Пусть ei = fnfi
и е2 = /П/2 — ребра грани f, противолежащие е (рис. 7).
(с не является вершиной). Пусть h = Project^ е;). Тогда, если h NIL, выполнить процедуру Insert-Interval (Ji, с) для I = 1,2.
(с — вершина). Для каждого противолежащего вершине с ребра во, на котором найдется точка, составляющая угол, больший чем л, с отрезком рс, создать кандидата в интервал /0 на е^ замыкание которого совпадает со всем ребром е^ а корень есть Interval^, с).
Рис. 7. Распространение интервала.с. Выполнить процедуру Insert-Рис. 7. Распространение интервала.с. Выполнить процедуру Insert-Чтобы определить, в каком случае целесообразно в качестве корня кандидата в интервал на противолежащем ребре принять вершину с, на шаге (2) применяется лемма 3.4. (Это не влияет на корректность алгоритма или его сложность, но позволяет несколько ускорить его работу.) Мы создаем интервалы только на тех ребрах, для которых угол при вершине с, образованный построенными в итоге путями, будет больше л.
Рис. 7. Распространение интервала.
с. Выполнить процедуру Insert-
Рис. 7. Распространение интервала.
с. Выполнить процедуру Insert-
Функция Project J,e\) находит подмножество ребра е^ на которое проектируются пути, идущие через /. Здесь для определения того, как «клинья» путей распространяются через следующую грань, используется критерий локальной оптимальности (заключающийся в том, что развертки путей представляют собой прямые — лемма 3.3). Функция возвращает кандидата в интервал /л на ребре е^ точки которого доступны при прохождении через /. (Если таких точек на ех нет, возвращается NIL.) Корень интервала 1А тот же, что и у интервала /, а проекция корня Ц получается из проекции корня / просто преобра-
зованием его в систему координат грани f (поворотом вокруг е).
Процедура Insert-Interval^, с) вставляет нового кандидата в интервал, /, между интервалами /1 и /2, которые определяют канал доступа, содержащий с. Интервал / может «поглотить» интервал /1 или интервал /2 (если только фронтальная точка интервала Л или соответственно интервала /2 не была еще окончательно помечена). В этом случае поглощенный интервал должен быть удален. Кроме того, /, возможно, будет «обрезан» в «точках стыковки» между корнем интервала / и корнями интервалов /1 и /2. В результате та часть интервала, которая останется после обрезания, будет состоять из точек ребра, которые достигаются первыми при распространении сигналов из корня интервала / через последнюю реберную последовательность этого интервала.
Процедура Insert-InterealVL с)
(0) Допустим, что I = [а, 6] — интервал относительно пары (е, f). Пусть он имеет корень г с проекцией г и глубиной d. Точка с — фронтальная точка интервала /, предшественника /. (1) (Определение положения точки с в канале доступа.) Найти канал доступа, которому принадлежит точка с. Пусть он определяется интервалами (Л,/2) относительно пары (е, f). Фронт сигнала может попасть в / только через этот канал. Пусть /; = [#,,&,], i=l, 2 (при условии, что h- ^ NIL), и пусть п— корень, ri — его проекция, di — глубина.
(Удаление поглощенных кандидатов в интервалы.) Если Л NIL, ах^1 и d; +|n^i| ^ d + |f6Zi|, то выполнить Delete (Id, включить 1\ в качестве предшественника / в список интервалов ребра ех (если предшественника нет, то 1\ положить равным NIL) и вернуться на начало шага (2). Аналогично, если /2 ^ NIL, b2 ^ I и d2 +| r2a2| ^ d +| га21, то выполнить Delete(12у включить /2 в качестве преемника / в списке интервалов ребра в1 (если преемника нет, то /2 положить равным NIL) и вернуться на начало шага (2).
(Обрезание в точках стыковки.) Если /1 ^ NIL и bx ^ I, ю найти точку а, принадлежащую I d h, такую, что di+|^i^| = = dd-lral (если такой точки не существует, то занести в а точку 61). Точка а достигается за одинаковое время как при прохождении через интервал /, так и через интервал 1Х. Удалить 61 из очереди событий, положить Ь\ равной а и, если нужно, перевычислить точку Сь Если /2 ф NIL и а2 ^ L то найти точку 6, принадлежащую / Л Л, такую что d2 +1 r2b | = d +1 rb | (если такой точки не существует, то занести в b точку я2). Точка b достигается за одинаковое время как при прохождении через
интервал /, так и через интервал /2. Удалить а2 из очереди событий, положить а^ равной b и, если нужно, перевычислить точку с2. Если а ^ Ь, то перейти к шагу (4); иначе — останов (никакого интервала вставлять не нужно).
(Окончательные корректировки.) Вычислить фронтальную точку Ci и точку доступа для интервала Z = [б?, 6]. Занести /
Рис. 8. Определение положения точки с в канале.
в список ILIST и вставить его в список интервалов ребра е- (между интервалами /1 и /2). Занести точки а, b и Ci (если Ci Ф а, Ь) в очередь событий, снабдив их соответственно метками d +1 га |, d +1 rb ] и d +1 rci |.
Процедура Delete (I) удаляет / из списка ILIST и из списка интервалов, связанного с соответствующей парой ребро—грань, а также удаляет все точки, принадлежащие /, из очереди событий.
На шаге (1) приведенной выше процедуры нам необходимо найти положение точки с в канале доступа пары (е, f). Это легко сделать посредством бинарного поиска следующим образом. Мы имеем список интервалов для (е,/) с хранящимися в нем отрезками Р/С/, которые упорядочены вдоль ребра е. Отрезки не пересекаются. Поэтому для нахождения положения точки с в канале доступа грани f можно произвести бинарный поиск, в процессе которого каждая проверка определяет, по какую сторону от отрезка Р/С/ точка с расположена (рис. 8).
ДОКАЗАТЕЛЬСТВО КОРРЕКТНОСТИ
Теперь мы приступим к доказательству работоспособности алгоритма. Наша первая цель состоит в доказательстве следующего предложения.
Предложение 6.1. После каждой итерации основного цикла алгоритма в списке кандидатов в интервал (ILIST) содержатся
интервалы, отвечающие кратчайшим на текущий момент {-свободным путям из s в точки этих интервалов, где «кратчайший на текущий момент» означает следующее; если точка х^ е = = f(Af принадлежит интервалу I для корня г относительно пары (е,{), то {-свободный путь в х, имеющий корень г и длину d(r)+|^L является оптимальным среди тех {-свободных путей в х, которые пересекают границу грани {' через интервал, содержащийся в текущем списке ILIST.
Доказательство. Доказательство производится индукцией по счетчику основного цикла. На первой итерации доказываемое утверждение справедливо, поскольку единственными кандидатами служат тривиальные интервалы, расположенные на ребрах, противолежащих источнику s. Допустим теперь, что утверждение справедливо для первых к циклов (предположение индукции). Для индуктивного перехода нам необходимо доказать, что если на (А + 1)-й итерации мы вводим в рассмотрение интервал / для корня г относительно пары (е,f), то кратчайший из всех построенных к настоящему моменту /-свободных путей пройдет через г. Это будет показано в двух приведенных ниже леммах. ■
Допустим теперь, что индуктивное предположение выполняется.
Судьба кандидата в интервалы может быть двоякой: либо его фронтальная точка становится окончательно помеченной (при этом она оказывается в вершине очереди событий), тем самым обеспечивая «выживаемость» некоторой его части, которая войдет в окончательный интервал оптимальности с теми же атрибутами, что и сам кандидат, либо кандидат в интервалы удаляется на шаге 2 процедуры Insert-Interval’, в этом случае соответствующий этому кандидату интервал оптимальности окажется пустым.
Лемма 6.2. Если на шаге (2) процедуры Insert-Interval удаляется интервал /1, то интервал оптимальности для корня гх относительно пары (е, {) не имеет внутренних точек. Аналогичный вывод относится и к результату удаления интервала U.
Доказательство (рис. 9). Допустим, что ахе1 и dx-\- +1 Г\й\ | ^ d + | ^\| • Тогда кратчайший на текущий момент /-свободный путь в точку ах проходит через корень г. Пусть |3 есть пересечение отрезка га с ребром ег. Поскольку ах ^1, то, согласно способу построения / по его предшественнику 1, мы знаем, что ^ ^1. Предположим, что существует внутренняя точка у кандидата в интервалы для корня гх относительно (еД)
(так что путь pf(y) имеет корень ri). Это приведет нас к противоречию.
Во-первых, заметим, что у есть внутренняя точка отрезка [яь 6J (иначе у либо недостижима из гь либо может быть достигнута из некоторого другого корня пары (е, /) по более короткому /-свободному пути). Далее, вспомним, что интервал.
Рис. 9. Иллюстрация к доказательству леммы 6.2.
/1 был создан в результате распространения интервала 1\. Поскольку точка с^1 расположена в канале (/i, Л), то с лежит справа от отрезка ?\с, а потому справа и от отрезка ?\Ь (иначе с^1хУ Поскольку множество 1 связно, все точки I лежат справа от отрезка r^z для любого 2e[ai,6i] и лежат строго справа от отрезка t\Z для любой внутренней точки z отрезка [<21,61]. В частности, р лежит строго справа от отрезка pt#, где Pi// есть пересечение гху с гранью f'. Но ах лежит строго слева от отрезка Pi//, так что отрезки pat и р^ должны пересекаться в некоторой точке у, которая является внутренней для каждого из них (рис. 9). Поскольку у принадлежит пути pf(y), /-свободный путь через ri в у не длиннее /-свободного пути через г в у. Но это означает, что мы можем укоротить путь в аь пройдя в <21 напрямую через корень ri (поскольку |riy| + + |Уа11 > I П&11). Это противоречит нашему предположению, что dx + |Mi|5^ d + |rai|.
Аналогичное рассуждение справедливо и в случае удаления интервала /2. ■
Теперь мы должны доказать, что интервал, вставленный процедурой Insert-Interval, «корректен» в следующем смысле.
Лемма 6.3. После вставки процедурой Insert-Interval интервала I между интервалами 1х и U получающийся список интервалов для ребра е правильно отражает картину разбиения точек е в соответствии с кратчайшими на текущий момент {-свободными путями.
Доказательство. Пусть [аь 6J и [а2,62] обозначают первоначальные границы интервалов /1 и /2, а через [ар ft'] и [а^, ЬД обозначим интервалы, полученные в результате обрезания после выполнения процедуры Insert-Interval. Кратчайший на текущий момент путь в точку, лежащую вне отрезка [#1,62], не может проходить через г, поскольку в противном случае он должен был бы пересечь граничный отрезок ргсг канала доступа.
Пусть теперь хе I = \а, ft], где [а, ft]— замыкание / после выполнения всех необходимых операций обрезания. Поскольку по построению /^[ai, 62], то кратчайший на текущий момент путь в х должен проходить через г, гх или г2. Если точка х не принадлежит [ai,&J, то более короткий путь в нее проходит через корень г, а не через гх. Если х— внутренняя точка [ai, 61], то и а является внутренней точкой (поскольку [а, ft] ^ [аь ft2]). Но тогда путь в а через корень г не длиннее, чем путь в а через корень и, и поэтому он является на текущий момент оптимальным. Если бы кратчайший путь в х проходил через корень гх, а не через корень г, то он пересек бы путь, проходящий через г в а (поскольку отрезки га и гхх должны пересекаться). При' ходим к противоречию. Аналогично можно показать, что кратчайший путь в х не может проходить через г2.
Если х^[ар ft'] (соответственно ^а^ ft2] ), те же рассуждения показывают, что кратчайший путь в х проходит через гх (соответственно г2), а не через г (и, конечно, лучше идти в х через /'1 (соответственно г2), а не через г2 (соответственно ri), поскольку [цр Ь'Д ^ [ар ЬД и ^а^ ft2] ^ [а2, ft2]). ■
Этим завершается доказательство предложения 6.1.
Можно показать, что если в процессе выполнения алгоритма Дейкстры вершина оказывается «окончательно помеченной» (т. е. занесенной в список CLOSED), то ее метка равна длине кратчайшего пути от источника. Аналогично, справедлива следующая лемма.
Лемма 6.4. Если точка, расположенная внутри ребра, оказывается окончательно помеченной, являясь при этом частью кандидата в интервал относительно пары (еД), то ее метка равна длине кратчайшего ^-свободного пути в нее. При присвоении окончательной метки вершине ее значение равно длине кратчайшего пути в вершину.
Доказательство. Пусть х есть внутренняя точка ребра е = = /ПЛ Предположим, что ей только что была присвоена окончательная метка б и что длина кратчайшего /-свободного
пути рДх) меньше б. Поскольку рДх) пересекает по крайней мере одного кандидата в интервал (ведь во время инициализации списка ILIST они «окружают» точку s), мы можем обозначить последнего такого кандидата, скажем, через h = = [а/, ЬД и считать, что он является кандидатом в интервалы относительно пары (ei,fi). (Заметьте, что в случае, когда рДх) пересекает h в концевых точках, таких кандидатов может быть несколько. В этом случае можно выбрать любого из них. Если Pf(x)nh = 'U— вершина, нужно выбрать такой //, чтобы рДх)П Qfi^u.) Ввиду того что длина рДх) меньше 6, первая общая точка пути рДх) и грани f' не может принадлежать ни одному кандидату в интервалы (это вытекает из предложения 6.1, поскольку х была помечена длиной кратчайшего на текущий момент пути). Таким образом, fi^f. Пусть ^х' = fi П pf (х). Тогда точка х' принадлежит ребру e0 = fl(Af0. Обозначим через ^o(V) часть пути рДх) от s до х'. Ясно, что р^х') есть кратчайший fo-свободный путь в хг. Интервал Л должен был быть распространен (поскольку расстояние до фронтальной точки h меньше или равно d^<L d(x^<_ 6, а окончательная метка присваивается алгоритмом всегда ближайшей точке событий). Но тогда, согласно лемме 6.3, на ребре е0 должен был бы существовать кандидат в интервалы, содержащий точку х'. Это противоречит тому, что / — последний из кандидатов в интервалы, которые пересекают путь рДх).
Аналогичное рассуждение позволит показать, что окончательные метки, присваиваемые вершинам, равны длинам кратчайших путей в них. ■
В нашей воображаемой картине процесса исполнения алгоритма мы считаем, что «волновой фронт» распространяется из источника s, и, по мере того как он захватывает новые ребра или границы кандидатов в интервалы, происходят события. Если на определенном расстоянии от s происходит событие, то, согласно приведенной ниже лемме 6.5, все точки, расположенные ближе к s, оказываются уже охваченными фронтом.
Лемма 6.5. Если некоторой точке алгоритмом только что была присвоена окончательная метка б, то для любой точки х ребра е, такой что d(x)<6, в списке ILIST найдется интервал I (для корня г относительно пары (е, f)), содержащий эту точку, причем оптимальный путь в х имеет корень г и длину d(r) + |rx|.
Доказательство. Пусть х^е и d(x)<6. Допустим, что х не принадлежит кандидату в интервалы, который определяет оптимальный путь в эту точку. Как и при доказательстве леммы 6.4,
обозначим через h = [at, bi\ последний из кандидатов в интервалы текущего списка ILIST, пересекаемый путем р(х), и допустим, что Ь есть интервал относительно пары (ei,fiy Из нашего предположения относительно х следует, что х //. Пусть ^х7 =Дz (^ р ^ху Тогда точка х7 лежит на ребре £0 = fzAf0- Пусть р^Дх7) есть часть пути р(х) от s до х7. Ясно, что р^ДхД представляет собой кратчайший fo-свободный путь в х7. Интервал // должен был быть распространен (поскольку расстояние до фронтальной точки У меньше или равно d(P) < d^ < 6, а окончательная метка присваивается алгоритмом всегда ближайшей точке событий). Но тогда, согласно лемме 6.3, на ребре е0 должен был бы существовать кандидат в интервалы, содержащий точку х7. Это противоречит тому, что / — последний из кандидатов в интервалы, которые пересекает путь рДУ ■
По завершении работы алгоритма волновой фронт охватит все точки поверхности 9?:
Лемма 6.6. По завершении работы алгоритма список интервалов относительно пары (е, f) образует покрытие ребра е.
Доказательство. Допустим, что существует точка х е е = = /ПГ, которая не принадлежит ни одному из кандидатов в интервалы относительно ДДУ Пусть рДх)—кратчайший/"-свободный путь в х. Как и при доказательстве леммы 6.4, обозначим через h = [az, bi\ последний из кандидатов в интервалы, пересекаемый путем рДхУ и допустим, что //—интервал относительно пары (ei, fi). Поскольку точка х не покрыта ни одним из интервалов, имеем et^e. Пусть |3xz = fz (1 Pf (х) • Тогда точка х7 лежит на ребре e0 = fznf0- Пусть р^ДД есть часть пути рД) от s до х7. Ясно, что р^Дх7) представляет собой кратчайший /o-свободный путь в х7. Интервал У должен был быть распространен (иначе его фронтальная точка не была бы удалена из очереди событий, и алгоритм никогда бы не завершился). Но тогда, согласно лемме 6.3, на ребре е0 должен был бы существовать кандидат в интервалы, содержащий точку х7. Это противоречит тому, что / — последний из кандидатов в интервалы, которые пересекают путь рДху ■
Лемма 6.7. Следующие два утверждения относительно точки х, лежащей на ребре е грани f, эквивалентны.
По завершении работы алгоритма х принадлежит кандидату в интервалы для корня г Д проекцией Д относительно пары ДДУ
Существует кратчайший f-свободный путь из s в х с корнем г длиной d(r) + |rx|; иными словами, х принадлежит интервалу оптимальности для корня г относительно пары (e,f).
Доказательство. Доказательство следует непосредственно из предложения 6.1 и леммы 6.6. ■
АНАЛИЗ СЛОЖНОСТИ
Чтобы установить время работы алгоритма, нам прежде всего необходимо найти верхнюю границу числа событий.
Лемма 7.1. Алгоритмом генерируется не более О(п2) кандидатов в интервалы.
Доказательство. Пусть Д, /2, ..., 1к — список интервалов относительно некоторой пары ребро — грань (в, [). Обозначим через xi внутреннюю точку интервала И, а ребро е представим в виде отрезка е = ХоХ^+ь Проведем теперь кратчайшие /-свободные пути в каждую из точек Xi (0 ^ i ^ К + 0- (Напомним, что ни один из этих путей не пересекает ребро е.) Ясно, что в результате мы получаем разбиение поверхности ^ на К + 1 частей (каждая часть представляет собой область, ограниченную замкнутой кривой, идущей из s в Xi (вдоль рДхд), из Xi в xt+i (вдоль е) и затем из хг-+1 назад в s (вдоль рДхг+1), но в противоположном направлении). Заметьте, что пути pf(Xi) и pf(xt+i) могут иметь некоторые общие вершины. Внутри каждой из указанных частей должна находиться по крайней мере одна вершина Следовательно, К ^ п—1. Поскольку пар ребро — грань не более чем О (п), то кандидатов в интервалы может быть не более чем О (п2).
Предыдущее рассуждение применимо лишь к многогранникам нулевой связности, поскольку в нем неявно использовалась теорема Жордана о кривой, из которой вытекало, что число частей разбиения поверхности равно К+1. В случае ненулевой связности можно применить следующее альтернативное доказательство. Будем прослеживать пути из Xi и хц-\ в обратном направлении, отмечая места, где они впервые начинают расходиться, проходя через различные ребра (или где один из путей пройдет через вершину — его корень). Определим точку ветвления ci как вершину, ответственную за это расхождение. Она может быть корнем одного из путей или вершиной между двумя соседними ребрами, внутренние части которых пересекаются рассматриваемыми путями. Обозначим через ^ грань, на которой
Корень соответствующего интервала.—Прим, перев.
началось расхождение. Таким образом, оба пути, рДх^ и Pf(x/+i), проходят по внутренней части /,, a Vi есть вершина fi, которая «расщепляет» эти пути (она может лежать на одном из них). В такой ситуации мы «припишем» интервал h паре вершина — грань (у/, fi). Нетрудно видеть, что к каждой паре вершина — грань можно приписать не более двух интервалов: если Ui является корнем одного из путей (скажем, Pf^Xi)), то паре ^Uiji) могут соответствовать максимум два интервала (один, относящийся к паре путей pt^Xi-i), Pf(xi), и другой, относящийся к путям рДхб), Pf(^z+i)); в противном случае — только один. (Доказательство последнего в сущности сводится просто к утверждению, что кратчайшие /-свободные пути не пересекаются.) Между парами вершина — грань и ребрами существует взаимно однозначное соответствие. Поэтому каждому ребру может быть приписано не более двух интервалов. Это приводит к линейной оценке числа К в зависимости от числа ребер поверхности ^ (эта оценка, видимо, является более подходящей мерой сложности для многогранников с высоким порядком связности). ■
Мы можем также оценить число обращений к процедуре Delete внутри процедуры Insert-Interval.
Лемма 7.2. Число обращений к процедуре Delete будет не более чем О (/г2).
Доказательство. Согласно лемме 6.2, мы никогда не уничтожаем интервал, если какой-либо его точке присвоена окончательная метка. Если интервал исключается, то распространения его в дальнейшем не происходит. В случае распространения интервала его фронтальной точке присваивается окончательная метка и создается не более двух новых интервалов на противолежащих сторонах грани. Эти два интервала являются лишь кандидатами в интервалы оптимальности, и поэтому в дальнейшем они могут быть исключены. Но таких кандидатов может быть не более О (/г2), поскольку, согласно лемме 7.1, число интервалов с точками, имеющими окончательную метку, не превышает О (п2). ■
Легко видеть, что объем структур, необходимых для работы алгоритма, квадратично зависит от п.
Лемма 7.3. Объем памяти, необходимый для размещения структур данных, не превышает О(п2).
Доказательство. Каждый из О (/г2) кандидатов в интервалы требует постоянного объема памяти. (Напомним, что мы не храним реберную последовательность, соответствующую каж-
дому интервалу, а запоминаем только образ ее корня.) Поскольку каждое ребро инцидентно лишь двум граням, имеется не более О (п) пар ребро — грань, с каждой из которых связан список не более чем О (п) кандидатов в интервалы (см. доказательство леммы 7.1). Следовательно, структура данных для хранения пар ребро — грань требует объема памяти лишь О (/г2). Очередь событий в худшем случае может содержать утроенное число кандидатов в интервалы ^, так что и эта структура ограничена размером О (/г2). ■
Теперь мы можем дать окончательное заключение о корректности предложенного алгоритма и о заявленных показателях его эффективности.
Теорема 7.4. Вышеприведенный алгоритм корректно строит разбиение каждого ребра на интервалы оптимальности и при этом требует О (/г2 log/г) времени и О^п^ памяти.
Доказательство. Корректность следует из леммы 6.7. Оценка памяти обоснована в лемме 7.3. Что касается оценки времени, то, согласно лемме 7.1, число событий в очереди не превосходит О (/г2). Поскольку каждое событие вставляется или удаляется не более одного раза, полное время, необходимое для операций с очередью, составляет О (/г2 log/г). Кроме того, по лемме 7.1 число вызовов процедуры Propagate оценивается как О (л2). Если фронтальная точка, которой присваивается метка, не является вершиной, то время работы процедуры Propagate составляет О (log/г) (это время расходуется на определение канала доступа, которому принадлежит с), а затем происходит вызов процедуры Insert-Interval. На каждый вызов этой процедуры расходуется постоянное время, за исключением того случая, когда вызывается процедура Delete. Но вызов процедуры Delete требует максимум O(logn) времени (на удаление элемента из списка интервалов); следовательно, по лемме 7.2 суммарное время составляет О (/г2 log/г). В случае когда фронтальная точка есть вершина, само по себе обращение к процедуре Propagate могло бы потребовать О (/г log/г) времени (поскольку число граней, инцидентных с, может составлять О^п), а каждое обращение к процедуре Insert-Interval занимает О (log/г) времени). Однако общее число вызовов процедуры Insert-Interval не может превзойти числа пар (у, е), где v — вершина, а е — ребро, противоположное у. Ясно, что таких пар не более О (п). Таким образом, суммарное время, необходимое
*) Поскольку с каждым интервалом связано не более трех событий. — Прим, персе.
на обращение к процедуре Insert-Interval, не превосходит О (/г2 log п). Это дает общую оценку времени работы алгоритма в виде О (п2 log zz). ■
ПОСТРОЕНИЕ РАЗБИЕНИЯ
Предложенный нами алгоритм позволяет найти длину d(x) кратчайшего пути из s в любую точку х ребра e = f^f/- Если х— вершина, то d^ есть просто окончательно присвоенная ей метка. В противном случае мы находим (за время О (log я)) соответствующий точке х интервал оптимальности / (соответственно Г) для корня г (соответственно /) относительно пары (е, f) (соответственно (е, f)). Согласно лемме 4.2, наименьшая из двух сумм d(r) + |xr| и d(И + 1хг'\ и является искомой длиной кратчайшего пути.
Мы можем обобщить наш алгоритм для нахождения наикратчайшего пути из s в любую точку многогранной поверхности следующим образом. Пусть ei, е2 и е3— три ребра грани f. Построим три разбиения (^i, ST2 и £Г3) этой грани. Разбиение 2Г} представляет собой разбиение грани f на ячейки, связанные с интервалами оптимальности относительно (ei,f).
Обозначим через Л, /2, ..., 1к список интервалов относительно пары (^i,/). Ячейка С/ разбиения £ГЬ связанная с соответствующим интервалом оптимальности Ij (i^j^K), определяется как множество точек х, таких что существует путь (на ^) из s в х через интервал /7 (т. е. через корень Y и его реберную последовательность), являющийся кратчайшим среди всех путей (на ^) из s в х, пересекающих ребро е\.
Пусть г/ — корень, соответствующий интервалу Ij. Тогда точка х будет лежать на границе ячеек С; и С^ в том и только в том случае, когда d (rj) + | xtj | — d (г у) + | хг,' |, где fj = = U^.,e^rh есть образ корня г7- при развертке в плоскости f (это несколько отличается от принятого нами до сих пор соглашения о том, что r = (7g(r) есть образ г при развертке в плоскости, расположенной по другую, чем f, сторону ребра e\Y Иными словами, «взвешенное расстояние»1) от х до г/ должно равняться аналогичному «расстоянию» от х до г^. Под «взвешенным расстоянием» (имеющим вес d) между точкой х и другой точкой у мы подразумеваем сумму d + \xy\. Из аналитической геометрии известно, что геометрическое место точек, «взвешенные расстояния» от которых до двух фиксированных точек
]) В ориг. weighted distance. Аксиомам расстояния указанное выражение не удовлетворяет. Поэтому этот термин взят в кавычки. — Прим, перев.
г и г' равны, представляет собой гиперболу. Таким образом, границами ячеек разбиения являются гиперболические дуги.
Теперь мы опишем процедуру Build-Subdivision (e,f), которая строит разбиение грани f на ячейки С/, определяющие кратчайшие пути через е к точкам х на f. Суть процедуры сводится к «распространению» интервалов оптимальности (Л, /2, ..., 1к) относительно пары (е, f) во внутреннюю часть грани f с прослеживанием определенных точек «событий» (которые будут точками пересечений гиперболических дуг с границами ячеек).
Рис. 10. Построение разбиения внутренней части грани f.
Обозначим через hi, j ветвь гиперболы, содержащую границу между ячейкой С/ (связанной с интервалом h = [az, bz] ) и ячейкой Cj (связанной с интервалом // = [я/,67]). Она определяется уравнением d (/у) +1 хп | = d (rj) +1 хг; | относительно переменной х (в системе координат грани f). Заметим, что если hi, j существует, то с необходимостью |d(n)—d(r/) | ^ |fify-|, причем в случае равенства гипербола вырождается в прямую. Мы будем рассматривать только ту часть hi, j, которая лежит в полуплоскости, определяемой прямой, проходящей через в и содержащей грань f. Кроме того, будем считать hi, j ориентированной в направлении увеличения расстояния от п и гр Через й0,1 обозначим луч, идущий из а\ вдоль ребра ез, а через hK) к+1 — луч, идущий из Ьк вдоль ребра е2. Если ячейки Ci и Cj имеют общую границу, то через qi, 7 (0 ^ i < j ^ К + 1) обозначим точку этой границы, ближайшую к точке п (и г/). На рис. 10 приведен пример для случая, когда К = 6. Наконец, пусть ui — верхняя грань расстояний от s до точек Ci (щ может быть равно +°°)-
Процедура Build-Subdivision (е, ()
(0) Инициализировать список INTLIST: (/0, Л, Л, ...,/к, Л<+1). Для каждого i (i^i^K) положить щ = di + |йда| ), где w-: — точка пересечения hi-\.i и Ы,^х (в случае, если они пересекаются), и положить ш — +°° в противном случае. Величины и; занести в очередь с приоритетами ULIST.
(Определение следующего события.) Если очередь ULIST пуста (это означает, что список INTLIST имеет вид (/о,/х+i)), то выход из процедуры. В противном случае введем индексацию элементов INTLIST: (/о, hv . .., hp /к+i). Пусть и = ин — элемент из списка ULIST с минимальным значением (если значения совпадают, то выбираем элемент с наименьшим индексом ц\ Удалить Л. из INTLIST, a и^ из ULIST.
(Корректировка ut._x и ^//+1.) Если / ^= 1, то fzZ/i положить равным di._x + | ft Wj-х |, где Wj-х — точка пересечения hi , ij_1 и hi._ri.+p если они пересекаются, и положить Ut._x = + оо в противном случае. Если / ^ /, то и^. положить равным ^z/+1 + | r/^^’y+i |, где Ю/+1 есть точка пересечения hi. i., и hi., i.. , если они пересекаются, и поло- жить Ui.+x = +°° в противном случае. Дуги ht._vi. и hi.,t.^x перестают быть «активными», а дуга ^'у_1л/+1, наоборот, «активизируется» на этом этапе.
.— точка со-z/+i.— точка со-z/+i(Корректировка разбиения.) Пусть qt
.— точка со-
z/+i
.— точка со-
z/+i
бытий, соответствующая и{ . (Точка qt. r z-+1 есть точка ячейки Cz , наиболее удаленная от rz J Установить q{ z в качестве одной из вершин разбиения, через которую прохо- дят дугиhipm (входящие в qt._vl.^ и
(выходящая из q. . Y Перейти к шагу (1).
Процедура вычисляет вершины разбиения ЗГi в порядке их удаленности от источника. Каждое событие соответствует смыканию границ ячейки Сц в момент, когда мы удаляем Ьг. из списка интервалов INTLIST, определяющих фронт волны. При этом мы следим за дугой гиперболы, являющейся границей
ячеек, связанных с интервалами, которые расположены по обе стороны И. в списке INTLIST. Рис. 11 иллюстрирует типичную ситуацию на одном цикле работы процедуры. Следующая лемма показывает, что процедура Build-Sub division (е, f) делает то, что от нее требуется.
Лемма 8.1. Процедура Build-Subdivision(e, f) правильно вычисляет ячейки С;, связанные с интервалами оптимальности относительно пары (e,f).
Доказательство. Доказательство проводится индукцией по числу итераций в основном цикле. Допустим, что 6к есть расстояние от точки события до s на k-й итерации. Прежде всего
Рис. 11. Событие в точке а; :.
4-r li+i
заметим, что исходное разбиение, заданное первоначальными гиперболическими дугами при инициализации, справедливо для всех точек, расстояние от которых до s не превосходит 61 (поскольку по определению расстояния до точки события гиперболические дуги не могут пересечься на расстоянии, не превосходящем 61). Допустим теперь, что оно справедливо для всех точек, расстояние от которых до s не превосходит 6*, и рассмотрим эффект возникновения события на расстоянии 6^. Событию номер к отвечает смыкание границ ячейки Ci и возникновение контакта между ячейками CL и CR, которые становятся соседями на расстоянии, большем 6^. (До наступления события ячейки CL и CR расположены соответственно слева и справа от Сь) Если точка к находится на расстоянии 6 от S,
где б^ ^ б < б^+ь то утверждается, что она будет правильно расположена по отношению к активным дугам, т. е. внутри разбиения, построенного процедурой для точек между й-м и (£+1)"м событиями. Действительно, кратчайший путь в к не может проходить через интервал /, поскольку х лежит по другую сторону от общей границы ячеек С/ и CL или Ci и CR. Положение х относительно новой активной дуги (являющейся общей границей ячеек Cl и Сд) верно отражает ее расположение относительно соответствующих интервалов. Наконец, положение х относительно всех остальных интервалов также должно быть правильным, поскольку точки грани, находящиеся от s на расстоянии, лежащем в диапазоне от 6 а- до б^+ь не влияют на расположение соответствующих разделяющих дуг, и, кроме того, согласно предположению индукции, то же относится к точкам грани, расстояние до которых от s не превосходит 6^. Тем самым, высказанное утверждение вытекает из предположения индукции о том, что построенное до этого разбиение корректно. ■
Лемма 8.2. Процедура Build-Subdivision(e,f) требует времени О (/(log/С) и памяти О^К), где К— число интервалов оптимальности относительно пары (е, f).
Доказательство. Поскольку на каждом цикле процедуры из списка INTLIST удаляется один интервал, шаги (1) и (2) выполняются не более К раз. Но на каждом из них число операций вставки и удаления элемента из списка ULIST одно и то же. Отсюда ясно, что общая временная сложность процедуры равна О (К log К). ■
Необходимо заметить, что разбиения £ГЬ £Г2 и ЗГ3 необязательно строить по отдельности. (Это было сделано для простоты изложения.) Можно распространять сразу все интервалы относительно пар (е\Д), (е2Д) и (e^f) во внутреннюю часть грани f. Соответствующая процедура аналогична процедуре для одного ребра, приведенной выше, но теперь список INTLIST должен быть циклическим списком интервалов, расположенных вдоль периметра f (тем самым необходимость в «фиктивных» гиперболах на ребрах грани f отпадает).
Процедура Build-Subdivision (е, f) выполняется для каждой пары ребро — грань (е, f). Это приводит к построению трех разбиений каждой грани и требует О (/г2 log/г) суммарного времени (поскольку общее число интервалов оптимальности относительно всех пар ребро — грань оценивается как О (п2)). Чтобы определить длину кратчайшего пути из s в любую точку хе^, мы просто должны найти грань f, которой принадлежит х, а затем
три ячейки разбиений f, в которых лежит эта точка. Тем самым мы получаем длины кратчайших путей в %, проходящих через каждое из трех ребер f. Выбирая наименьшую из них, получаем длину кратчайшего пути в х. Все четыре задачи о положении точки могут быть решены стандартными методами за время О (log/г) ([15], [3]). (Единственное небольшое отличие нашей ситуации состоит в том, что границы клеток являются гиперболами, а не прямыми. Это, однако, не вызывает серьезных затруднений.) Сам оптимальный путь в х находится обратной трассировкой указателей на предшественников (от / к /, потом к / и т. д.). Понятно, что обратная трассировка потребует О (К) времени, где К—число граней, через которые проходит оптимальный путь. В итоге мы имеем следующую теорему.
Теорема 8.3. После предобработки длина кратчайшего пути из s в любую точку х^9\ лежащую на многогранной поверхности 9Р, может быть определена за время O^Xogn^, а сам кратчайший путь может быть найден за время O(K + \ogn), где К — число граней, которые он пересекает. Предобработка может быть осуществлена за время О (/г2 log/г) (ц требует памяти объема СЦп2)).
ЗАКЛЮЧЕНИЕ
В работе приведен алгоритм сложности О (п2 log п), строящий такое разбиение поверхности произвольного многогранника, что длина кратчайшего пути из заданной начальной точки s (источника) до произвольной точки t поверхности может быть определена с помощью локализации положения точки t в разбиении. Для работы алгоритма требуется объем памяти О (/г2). Определение положения точки может быть осуществлено стандартными методами за время О (log/г), после чего сам путь находится обратной трассировкой за время О (ТС), где К — число граней, через которые он проходит.
Наш алгоритм основывается на методе, который мы назвали «непрерывный Дейкстра». Этот метод очень напоминает оригинальный алгоритм Дейкстры нахождения кратчайшего пути, но при этом включает новые понятия о распространяющемся волновом фронте и дискретных событиях. В некотором смысле получается сочетание алгоритма Дейкстры и принципа заметания, используемого в вычислительной геометрии.
Алгоритм легко обобщается на случай нескольких источников, а потому может быть применен для построения диаграммы Вороного на поверхности многогранника [11]. Для этого достаточно при инициализации очереди событий занести в нее
события, связанные с ребрами, противоположными каждому источнику, а затем при распространении интервалов действовать точно так же, как и ранее. Для m точек-источников, заданных на поверхности многогранника, диаграмма Вороного строится алгоритмом за время О (A2 log А) и требует обьема памяти О (А2), где N = max (и, т). После этого определение ближайшего к произвольной точке источника требует О (log N) времени, а нахождение пути до него осуществляется с помощью обратной трассировки за время, пропорциональное числу изломов искомого пути.
Нетрудно также представить себе, как предложенный алгоритм может быть обобщен на случай поверхностей других типов (не являющихся многогранными). Если поверхность задана порциями, образующими ее грани, то при определенном типе сложности поверхности (как говорят, «достаточно хорошем поведении») мы можем рассчитать, как проходят по ней геодезические. Так, в случае плоских порций поверхности мы имеем задачу, рассмотренную в настоящей работе, и участки геодезических на каждой грани являются в этом случае прямыми линиями. Для сферических порций поверхности геодезическими будут дуги больших кругов. Поэтому нам было бы желательно обобщить локальный критерий оптимальности, состоящий в том, что геодезические, пересекающие границы порций поверхности, при развертке переходят в прямые: развертки геодезических только локально (вблизи границ порций поверхности) должны быть прямыми. А это есть просто условие на непрерывность изменения касательной вдоль геодезической. Метод «непрерывный Дейкстра» позволяет распространять фронт волны поперек границ порций поверхности, не нарушая критерия локальной оптимальности. Детализация рассмотренного обобщения требует некоторой дополнительной работы.
Нам бы хотелось улучшить временную сложность предложенного алгоритма. Как нам кажется, ее можно свести к оценке О^п?^ (такая оценка является в настоящее время наилучшей для алгоритмов обхода препятствий на плоскости), но до тех пор, пока для плоского случая не будут найдены более эффективные решения, мы не надеемся добиться еще большего продвижения Д
*) Недавно опубликован алгоритм построения кратчайших путей на плоскости в среде с прямоугольными препятствиями, имеющий сложность О (л log и). Используемый в нем метод близок к предложенному авторами настоящей работы. См. Р. J. de Rezende, D. Т. Lee, G. F. Wu. Rectilinear Shortest Paths in the Presence of Rectangular Barriers. Discrete & Comput. Geometry, v. 4 (1989), N 1, 41—53. — Прим, nepee.
Что касается оценки объема памяти О(п2), она бесспорно поддается улучшению. Предложенный алгоритм является громоздким в том плане, что в процессе его работы запоминаются точки пересечения карты кратчайших путей с каждым ребром, а число таких точек квадратично зависит от п. В то же время размер графа, расположение которого на поверхности образует нужное нам разбиение, лишь линейно зависит от числа ребер исходного многогранника. Представляется целесообразным хранить информацию нс о концевых точках интервалов, а о кривых раздела и распространять эти кривые через ребра, не создавая при этом каждый раз новые структуры. (Это также наводит на мысль о построении всего разбиения (включая разбиение внутренней части граней) «по ходу дела» и хранении информации о пересечении кривых раздела подобно тому, как мы это делали в процедуре, описанной в § 8.) При этом нужно следить за тем, чтобы структуры данных, используемые для хранения построенного разбиения, позволяли эффективно отвечать на запросы о положении точки (т. е. за время О (log/?)). В работе [12] хМаунт продемонстрировал способ построения подобного разбиения многогранной поверхности с использованием структуры данных размера О (n log и), позволяющей отвечать на запрос о положении точки за время O(logn). Может ли такая конструкция быть построена по ходу исполнения предложенного алгоритма? Укажем, что для случая выпуклых многогранников Маунту удалось снизить требования к объему памяти до O(/?logn) [10].
Другая очевидная открытая проблема заключается в нахождении эффективного алгоритма определения кратчайших путей в трехмерном пространстве при наличии произвольной совокупности многогранных препятствий. Геодезическая задача является особым случаем, для которого эффективный алгоритм существует. Однако мы убеждены, что имеются и другие специальные постановки, допускающие простые и эффективные решения.
Благодарность. Нам хотелось бы поблагодарить референтов за тщательное прочтение текста и замечания, улучшившие форму подачи материала.
ЛИТЕРАТУРА
Dijkstra Е. W. A note on two problems in connection with graphs. Numer. Math., 1 (1959), p. 269—271. [См. kh. Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. — М.: Мир, 1979, с. 235—238.]
Garey М. R., Johnson D. S., Preparata F. Р., Tarjan R. E. Triangulating a simple polygon. Inform. Process. Lett., 7 (1978), p. 175—179.
Kirkpatrick D. G. Optimal search in planar subdivisions. SIAM J. Comp., 12 (1983), p. 28—35.
Lee D. T. Proximity and reachability in the plane. Ph. D. thesis, Technical Report ACT-12, Coordinated Science Laboratory, Univ, of Illinois, Chicago, IL, November 1978.
Lee D. T., Preparata F. P. Euclidean shortest paths in the presence of rectilinear boundaries. Networks, 14 (1984), p. 393—410.
Lozano-Perez T., Wesley M. A. An algorithm for planning collision-free paths among polyhedral obstacles. Comm. ACM, 22 (1979), p. 560—570.
Lyusternik L. A .Shortest Paths: Variational Problems. Macmillan, New York, 1964. [Ориг.: Люстерник Л. А. Кратчайшие линии: вариационные задачи. — М.: Гостехиздат, 1955.]
Mitchell J. S. В. Shortest paths in the plane in the presence of obstacles. Manuscript, Dept, of Operations Research, Stanford Univ., Stanford, CA, 1984.
Mitchell J. S. B. Planning shortest paths. Ph. D. thesis, Dept, of Operations Research, Stanford Univ., Stanford, CA, August, 1986. (Available as Research Report 561, Artificial Intelligence Series, No. 1, Hughes Research Laboratories, Malibu, CA.)
Mount D. M. On finding shortest paths on convex polyhedra. Technical Report 1495, Dept, of Computer Science, Univ, of Maryland, Baltimore, MD, 1985.
Mount D. M. Voronoi diagrams on the surface of a polyhedron. Technical Report 1496, Dept, of Computer Science, Univ, of Maryland, Baltimore, MD, 1985.
Mount D. M. Storing the subdivision of a polyhedral surface. Proc. 2nd ACM Symposium on Computational Geometry. Yorktown Heights, NY, June 2—4, 1986.
O’Rourke J., Suri S., Booth H. Shortest paths on polyhedral surfaces. Manuscript. The John Hopkins Univ., Baltimore, MD, 1984.
Papadimitriou С. H. An algorithm for shortest-path motion in three dimensions. Inform. Process. Lett., 20 (1985), p. 259—263.
Preparata F. P. A new approach to planar point location. SIAM J. Comp., 10 (1981), p. 473—482.
Reif J. H., Storer J. A. Shortest paths in Euclidean space with polyhedral obstacles. Technical Report CS—85—121, Computer Science Dept., Brandeis Univ., Waltham, MA, April, 1985.
Sharir M., Schorr A. On shortest paths in polyhedral spaces. SIAM J. Comp., 15 (1986), p. 193—215.
Алгоритм триангуляции простогомногоугольника с временнойсложностью О(п log log/?)4
Р. Э. Тарьян^, К. Дж. Ван Вик^
Задача триангуляции простого многоугольника с п вершинами состоит в выборе п — 3 непересекающихся диагоналей, разбивающих его внутренность на п— 2 треугольника. Предлагается алгоритм решения этой задачи, имеющий временную сложность О (/г log log/г), что лучше прежней оценки О (п log п). Тем самым показывается, что задача триангуляции нс такая сложная, как задача сортировки. Полученный результат позволяет улучшить алгоритмы для решения некоторых других задач вычислительной геометрии, включая проверку многоугольника на простоту.
ВВЕДЕНИЕ
Пусть Р— простой многоугольник с п вершинами, заданный списком своих вершин v0, Ui, ..., Un-ь перечисляемых в порядке обхода границы многоугольника по часовой стрелке. (При движении по границе многоугольника в направлении по часовой стрелке внутренность многоугольника будет находиться справа.) Обозначим дР границу многоугольника Р. В этой статье предполагается, что все вершины многоугольника Р имеют различные //-координаты (это предположение не умаляет общности). Кроме того, для удобства положим vn = и0. Стороны многоугольника Р— это открытые отрезки с концами в вершинах гл и u/+i, 0 ^ I < п. Диагонали многоугольника Р суть открытые отрезки, целиком лежащие внутри многоугольника Р, концами которых являются вершины многоугольника. Задача триангуляции заключается в выборе п — 3 непересекаю-
!) Ап О (и log log и)-time algorithm for triangulating a simple polygon. SIAM Journal on computing, v. 17, n. 1, 1988, pp. 143—178.
AT&T Bell Laboratories, Murray Hill, New Jersey 07974. Department of Computer Science, Princeton, New Jersey 08544.
AT&T Bell Laboratories, Murray Hill, New Jersey 07974.
© 1988 Society for Industrial and Applied Mathematics
щихся диагоналей многоугольника Р, разбивающих его внутренность на п— 2 треугольников. .
Если многоугольник Р выпуклый, то любая пара его вершин определяет диагональ и триангуляция многоугольника Р довольно просто может быть выполнена за время О(п). Если Р не является выпуклым, то не все пары вершин определяют диагонали, и сама по себе задача определения одной диагонали, не говоря уже о задаче триангуляции, нетривиальна. В 1978 г. Гэри, Джонсон, Препарата и Тарьян [10] предложили алгоритм триангуляции с временной сложностью O(zzlogzz). Дальнейшее исследование этой задачи велось по двум направлениям. Некоторые исследователи разработали алгоритмы триангуляции с линейной временной сложностью для специальных классов многоугольников, таких как монотонные [10] и звездные [31] многоугольники [32, 33]. Другие разработали алгоритмы триангуляции с временной сложностью О (п log А), где к — параметр, некоторым образом характеризующий сложность многоугольника, такой, например, как число невыпуклых углов [13] или «извилистость» [5]. Так как для каждой такой меры сложности существует класс многоугольников, для которых & = Q (rz), то в худшем случае время выполнения этих алгоритмов составляет O(zzlogn). Вопрос, можно ли произвести триангуляцию многоугольника за время o(rzlogn), т. е. асимптотически быстрее, чем сортировку, был одним из главных открытых вопросов вычислительной геометрии.
В этой статье предлагается алгоритм триангуляции с временной сложностью О (п log log п) и тем самым показывается, что задача триангуляции и в самом деле более легкая, чем задача сортировки. Данная статья представляет исправленный вариант доклада, опубликованного в трудах конференции [27], где ошибочно утверждалось о существовании алгоритма с временной сложностью О^пу Все попытки разработать алгоритм с линейной сложностью по-прежнему остаются безуспешными, но предлагаемый нами подход определяет несколько направлений для дальнейшего поиска и проясняет те трудности, которые при этом потребуется преодолеть.
Отправной точкой нашего алгоритма является сведение задачи триангуляции к задаче вычисления информации о видимости по какому-то одному направлению, в качестве которого мы возьмем горизонтальное направление. Будем говорить, что вершина и сторона многоугольника Р образуют ВС-пару видимости, или просто ВС-пару, если их можно соединить открытым горизонтальным отрезком, целиком лежащим внутри многоугольника Р. Аналогично, две стороны образуют СС-пару видимости, или просто СС-пару, если их можно соединить открытым
горизонтальным отрезком, целиком лежащим внутри Р. Фурнье и Монтуно [9] доказали, что задача триангуляции простого многоугольника сводима за линейное время к задаче вычисления всех ВС-пар этого многоугольника (см. дополнение переводчика). Независимо от них этот результат получен в работе [5]. Учитывая сказанное, в этой статье мы представим лишь
Рис. 1. Иллюстрация к определению пар видимости в простом многоугольнике. Штриховые горизонтальные прямые соответствуют ВС-парам; точечные горизонтальные прямые соответствуют СС-парам.
алгоритм вычисления всех ВС-пар многоугольника, имеющий сложность О (п log log п). С помощью упомянутого сведения получаем алгоритм триангуляции простого многоугольника с временной сложностью О (rz log log п).
Наш алгоритм вычисления пар видимости определяет не только пары видимости, образованные вершиной и стороной многоугольника, но и некоторые пары видимости, образованные сторонами многоугольника (СС-пары). Утверждается, что полное число пар видимости каждого типа (ВС- или СС-пар) линейным образом зависит от числа вершин многоугольника.
Лемма 1. В простом многоугольнике с п вершинами имеется не более 2п ВС-пар и не более 2п СС-пар.
Доказательство. Каждая вершина многоугольника может принадлежать не более чем двум ВС-парам. Следовательно, в целом по всем вершинам получаем не более 2п ВС-мз^. Разобьем многоугольник Р на трапеции и треугольники, проведя горизонтальные отрезки, целиком лежащие внутри Р и соединяющие элементы каждой ВС- и СС-пар (рис. 1). Каждая СС-пара соответствует нижней стороне в точности одной такой
трапеции или треугольника. В случае трапеции ее верхняя сторона состоит из одного или двух отрезков, соответствующих SC-парам. В случае треугольника его верхняя вершина не входит ни в одну ВС-пару. Любая вершина многоугольника порождает не более двух отрезков, служащих верхней стороной трапеций, или она является верхней вершиной треугольника. Таким образом, имеются не более 2п трапеций и треугольников, нижние стороны которых соответствуют СС-парам, и, следовательно, не более 2п таких пар. ■
Другим краеугольным камнем нашего метода служит очень тесная взаимосвязь между вычислением видимости и задачей о жордановой сортировке. Задача жордановой сортировки для простого многоугольника Р и горизонтальной прямой L состоит в упорядочении точек пересечения дР и L в соответствии со значением х-координаты в случае, когда в качестве исходных данных служит лишь список этих точек пересечения, перечисленных в порядке их прохождения при движении вдоль дР в направлении по часовой стрелке. (Заметим, что список вершин многоугольника Р не является частью исходных данных.) Хофмен, Мелхорн, Розенстил и Тарьян [14] представили в своей работе алгоритм для задачи жордановой сортировки, имеющий линейную сложность и решающий задачу для произвольной простой кривой, как открытой, так и замкнутой. В этом алгоритме, который мы называем алгоритмом жордановой сортировки, требуется, чтобы всякий раз, когда дР доходит до L, она пересекала ее. Но этот алгоритм можно легко изменить с тем, чтобы можно было обработать и точки касания, при условии, что про каждую точку в исходных данных известно, является ли она точкой пересечения или точкой касания. Вычисление пар видимости является по крайней мере такой же сложной задачей, как и задача жордановой сортировки. Более точно это сформулировано в следующей лемме.
Лемма 2. Используя алгоритм вычисления ВС-nap, можно решить задачу жордановой сортировки для п-угольника Р, затратив на это дополнительное время 0{п), при условии, что в качестве исходных данных задан многоугольник и прямая L {точки пересечения прямой L с многоугольником Р не заданы).
Доказательство. Вычислим все SC-пары многоугольника Р. После этого «вывернем» многоугольник Р, «разорвав» его границу дР в вершине с наименьшей zy-координатой и «склеив» ее с границей произвольного прямоугольника, охватывающего многоугольник Р, как это показано на рис. 2. В результате получится многоугольник Q, имеющий п + 5 вершин. Вычислим
ВС-пары многоугольника Q. Эти пары определяют видимость вершин многоугольника Р снаружи и указывают, какие его вершины будут видны из внешних точек, расположенных достаточно далеко слева или справа от многоугольника Р. Разобьем внутренность и внешность многоугольника Р на трапеции,
Рис. 2. «Вывернутый наизнанку» многоугольник с рис. 1 и соответствующие ему ВС-пары видимости.'
треугольники и неограниченные трапецеидальные области, проведя горизонтальные отрезки, соответствующие всем парам видимости. Если задана некоторая прямая L, то точки пересечения дР и L в порядке увеличения их д-координаты можно получить, просматривая слева направо области, через которые проходит прямая L. Полное время выполнения этого алгоритма (без учета времени на двухкратное вычисление пар видимости) составляет О (/г). ■
Так как при любом вычислении данных о видимости неявно выполняется жорданова сортировка, то вполне естественно попытаться явным образом использовать жорданову сортировку для вычисления пар видимости. Это соображение приводит к следующему алгоритму, основанному на методе «разделяй и властвуй» (рис. 3).
Шаг 1. В заданном многоугольнике Р выбираем одну из его вершин у, zy-координата которой не является ни максимальной, ни минимальной среди всех вершин многоугольника Р. Если такой вершины не существует, то в Р нет ни одной пары видимости, и на этом применение алгоритма к многоугольнику Р
заканчивается. В противном случае проведем через вершину у горизонтальную прямую, обозначив ее L.
Шаг 2. Определим точки пересечения дР с L в порядке их расположения на границе многоугольника Р.
Шаг 4Шаг 4пересечения и перечислим все шаг 1пересечения и перечислим все шаг 1Шаг 3. Выполним жорданову сортировку найденных точек тары видимости, определяемые последовательными точками пересечения в порядке их расположения на L.
Шаг 4
Шаг 4
пересечения и перечислим все шаг 1
пересечения и перечислим все шаг 1
Шаг 4. Разобьем многоугольник Р по прямой Л на части, каждая из которых является простым многоугольником.
Шаг 5. К каждому из многоугольников, получившемуся в результате разбиения Р, применим рекурсивно данный алгоритм.
Рис. 3. Иллюстрация к выполнению шагов 1 и 4 алгоритма вычисления пар видимости.Рис. 3. Иллюстрация к выполнению шагов 1 и 4 алгоритма вычисления пар видимости.К счастью, алгоритм жордановой сортировки в качестве побочного эффекта вычисляет достаточно много дополнительной информации, облегчающей выполнение шага 4 приведенного выше алгоритма. Шаг 2 является наиболее трудной частью алгоритма. В алгоритме имеются два узких места, непродуманная реализация каждого из которых приведет к тому, что алго
Рис. 3. Иллюстрация к выполнению шагов 1 и 4 алгоритма вычисления пар видимости.
Рис. 3. Иллюстрация к выполнению шагов 1 и 4 алгоритма вычисления пар видимости.
ритм будет иметь квадратичную временную сложность. Во-первых, в ряде случаев алгоритм будет многократно порождать некоторые пары видимости. Действительно, для многоугольника, показанного на рис. 4, алгоритм может найти Qf/г2) повторяющихся пар видимости.
Эту неприятность можно обойти, изменив шаг 2 алгоритма таким образом, чтобы вычислять не все точки пересечения дР с Л, а лишь некоторые из них. Однако это может привести к появлению ошибок при выполнении жордановой сортировки на шаге 3. Эти ошибки возникают из-за того, что в такой ситуации сортируемая последовательность может не содержать
всех точек пересечения простого многоугольника с прямой. К счастью, алгоритм сортировки является итеративным, и при обнаружении ошибки можно продолжить его выполнение с некоторого допустимого состояния, вычислив для этого дополнительно несколько точек пересечения и сделав локальные изменения в используемой им структуре данных. Будем называть этот
Рис. 4. Обрабатывая многоугольники, подобные приведенному на рисунке, «прямолинейный» алгоритм порождает пары видимости в количестве, пропорциональном квадрату числа вершин многоугольника. Первый разрез, проходящий через вершину и0, отсекает k + 1 треугольников. Последующие разрезы, проходящие через вершины u2i, i = 1, 2, ..., к, порождают каждый раз к — i + 1 пар видимости, но лишь две из них являются новыми.
модифицированный метод сортировки жордановой сортировкой с исправлением ошибок.
Вычисляя лишь часть точек пересечения дР с L и используя жорданову сортировку с исправлением ошибок, получаем алгоритм определения пар видимости, вычисляющий лишь О (/г) пар видимости и требующий для этого времени О (п) (без учета времени, необходимого для определения точек пересечения). Такой подход требует использования двухуровневой структуры данных для представления границы многоугольника, но при этом остается полная свобода во всем остальном, касающемся этой структуры данных.
Второе и значительно более существенное узкое место в нашем алгоритме — это проблема определения точек пересечения. Прямая L разбивает дР на части. Если бы каждая из этих частей образовывала границу отдельного подмногоугольника, то можно было (без особого труда) получить оценку О (п) для
временной сложности алгоритма вычисления пар видимости, воспользовавшись для представления границ многоугольников структурой данных, называемой деревом поиска с указателями, и учитывая линейность следующего рекуррентного соотношения [20]:
О (1), если и = 1;
(1) Т^-(1) Т^-max \Т (Д) + 7 (и — 6) + О (1+log min {/г, п—/г})}, 1 < к<п
(1) Т^-
(1) Т^-
если п > 1.
К сожалению, части исходной границы многоугольника нельзя рассматривать каждую по отдельности, так как они группируются, образуя границы подмногоугольников. Чтобы улучшить оценку О (п log п) временной сложности задачи триангуляции простого многоугольника, даваемую существующими алгоритмами, необходима новая идея, какой является идея сбалансированного разбиения на части. Мы усовершенствуем алгоритм вычисления пар видимости, сделав более разумным выбор прямой L, так чтобы каждая из границ образующихся подмногоугольников содержала относительно небольшое число частей исходной границы многоугольника. Метод сбалансированного разбиения на части в сочетании с использованием деревьев поиска с указателями в качестве структуры данных для представления границ многоугольников позволяет получить алгоритм вычисления пар видимости с временной сложностью О (п log log п).
Оставшаяся часть данной статьи включает пять разделов и приложение. В разд. 2 рассматривается алгоритм жордановой сортировки и его модификация, позволяющая исправлять ошибки. В разд. 3 обсуждается базовый алгоритм вычисления пар видимости, использующий жорданову сортировку с исправлением ошибок и выдающий О (п) пар видимости. В разд. 4 этот алгоритм получает дальнейшее развитие на основе метода сбалансированного разбиения на части. В разд. 5 описывается структура данных для представления границы многоугольника. Эта структура данных состоит из двух уровней деревьев поиска с указателями. Показывается, что с использованием такой структуры данных временная сложность алгоритма вычисления пар видимости, рассматриваемого в разд. 4, равна О (/г log log/г). В заключение в разд. 6 приводятся некоторые замечания, обсуждаются вопросы, касающиеся приложений, и формулируются открытые проблемы. В приложении приведено описание деревьев поиска с указателями, которые используются нс только в алгоритме, непосредственно вычисляющем пары видимости, но и в алгоритме жордановой сортировки.
ЖОРДАНОВА СОРТИРОВКА С ИСПРАВЛЕНИЕМ ОШИБОК
Пусть Р— простой многоугольник, а у — одна из его вершин. Обозначим L горизонтальную прямую, проходящую через вершину у, а точки пересечения этой прямой с границей многоугольника Р обозначим х0 = у, хь . хт-\. Точки пересечения перечислены в порядке обхода границы многоугольника в направлении по часовой стрелке. Так как в данной работе предполагается, что вершины многоугольника Р имеют различные //-координаты, то множество точек пересечения L и дР конечно. Точки хь х2, .Хт-\ являются точками пересечения дР и L; точка х0 является либо точкой пересечения, либо точкой касания. Введем на множестве точек пересечения х, полный порядок, соответствующий упорядоченности этих точек по значению их х-координаты. Мы хотим упорядочить точки xi, х2, ..., хт-х в соответствии с этим полным порядком.
Последовательность Xq, xi, ..., х щ,—। порождает два леса. Ниже обсуждается, как это происходит. Положим для удобства Хщ == Xq. Не ограничивая общности, будем считать, что часть границы дР от х0 до хд находится выше прямой L. Обозначим //= min{xz-i, Xi} и ri = max{xt-i, xj, где 0 < i ^ т. Будем говорить, что пара {xt-i, xj охватывает точку х, если h ^ х ^ п. Две пары {xt-i, х^ и {x/-i, х7} называются пересекающимися, если {х^—i, xj охватывает в точности одну из точек ху—i и х,; пара {xi-i, xj охватывает пару {x7-i,x/}, если она охватывает одновременно обе точки ху—i и х/. Из условия простоты многоугольника Р следует, что если i = /mod 2, то две пары {xt-i,Xi} и {х/-1, х/} не пересекаются. Будем называть это свойство свойством непересекаемости. Диаграмма Хассе отношения «охватывает» на множестве пар {{х2/, x2l+i} |0 ^ i < m/2} является лесом, называемым далее верхним лесом. Диаграмма Хассе отношение «охватывает» на множестве пар {{x2l-i, x2l} |0 С i
/п/2} также является лесом, называемым нижним лесом. Упорядочим каждое множество потомков в каждом из двух лесов, поместив {xi-i, xj перед {ху-i, ху}, если ri^lj. Эта операция делает каждый лес упорядоченным лесом. Преобразуем оба леса в деревья, добавив к каждому из них фиктивную пару {—оо, оо}. В результате получим два дерева, называемые верхнее дерево и нижнее дерево (рис. 5). Множество, состоящее из родительской вершины в каждом из деревьев и ее потомков, называется семьей.
Здесь мы представим алгоритм жордановой сортировки [14] в форме, удобной для его последующего расширения для применения при вычислении пар видимости. Алгоритм обрабатывает точки xi, х2, ..., хт итеративно, добавляя на каждом
Верхнее Зеребо.-
Рис. 5. Диаграмма Хассе отношения «охватывает», определяемого прямой L. (На рисунке каждая точка Xi отмечена своим номером z.)
шаге по одной точке и постепенно создавая верхнее дерево, нижнее дерево и упорядоченный список этих точек пересечения. В начале работы оба дерева содержат единственную пару {—оо, оо}, а упорядоченный список имеет вид {—оо,х0, оо}. Основной этап обработки очередной точки xt включает выполнение следующих шагов. Предположим, что I — нечетное число. Это значит, что пара {xz-i, xz} должна добавляться к верхнему дереву. Будем считать, что xz-i < Xi. (Случай xz-i > xi является симметричным.)
Шаг 1. Найти точку х, следующую за xz-i в упорядоченном списке.
Шаг 2. В верхнем дереве найти такую пару {x/-i,X/}, что хе {Х/-1, X/}.
Шаг 3. В зависимости от ситуации, выполнить одну из следующих четырех групп действий (рис. 6):
Рис. 6. Четыре случая, возникающие при жордановой сортировке.Рис. 6. Четыре случая, возникающие при жордановой сортировке.обработку, такобработку, такСлучай A {lj < xi-\ < /7 < Xi}. Завершить как пары {xz_i, х,} и {х/_ь ^/} пересекаются.
Рис. 6. Четыре случая, возникающие при жордановой сортировке.
Рис. 6. Четыре случая, возникающие при жордановой сортировке.
обработку, так
обработку, так
Случай В (// < х/—1 < Xi ^ г/). Сделать пару {xz-i,Xz} новым последним сыном пары {xf-\,Xj}. Если f < т, то вставить Xi в упорядоченный список после xt—\.
Случай С {xi ^ //). Вставить {x-i, xz} в список братьев пары {xy_i, ху} непосредственно перед {x/-i, х/}. Если i < т, то вставить Xi в упорядоченный список после Xi_\.
Случай D (xz—i < lj < х^. В списке братьев пары {х/_ь X/} найти такую последнюю пару (назовем ее (x£-i,x4), для которой U < Xi. Если гk > Xi, то завершить обработку, так как пары {х/-ь xj и (х^-ь хк} пересекаются. В противном случае, если пара {х^-1, Хк} является последним сыном родителей пары {x>-i, хр) и гр < Xi, то завершить обработку, так как пары {х/-ь Xi} и (хр-1, хр} пересекаются. Если ни одно из этих пересечений не имеет места, то удалить из списка братьев пары {ху-1, Xj} подсписок, начиная с {x/_i, Xj} и кончая {x&-i, хк} включительно, и вставить вместо него пару {xz-i,X/}. Удаленный подсписок пар сделать списком сыновей пары {xz-^Xz}. Если I < гп, то вставить Xi в упорядоченный список после гк.
Заметим, что если {xz-i,Xz} и {x/-i,xj—две такие пары, что i >> / и i = / mod 2, то все четыре точки хг-ь xi, Xi~\, Xj различны, если только не имеет место случай i = m, и пт— нечет-
ное число, и в этом случае возможно Xi^ ^j-i^A- Это значит, что случаи А — D исчерпывают все возможные варианты упорядочения четырех точек.
Случай, когда I — четное число, а значит, пара {xz-i,xz} добавляется к нижнему дереву, обрабатывается аналогично тому, как описано выше, с той лишь разницей, что необходимо сделать небольшие изменения, чтобы учесть тот факт, что точка х0 не принадлежит ни одной паре в нижнем дереве до тех пор, пока не будет обработана точка хт = х0 (если это произойдет). Эти изменения состоят в следующем:
Непосредственно перед шагом 2 проверить, не выполняется ли х = хо; если да, то заменить х точкой, следующей за хо в упорядоченном списке.
На шаге 2 пара {x/-i,xy}, содержащая точку х, ищется в нижнем дереве (а не в верхнем дереве, как выше).
На шаге 3 в случаях В и С, если X/-i<x0<xz, то точка Xi вставляется в упорядоченный список после х0 (а не после Xi_\, как выше).
На шаге 3 в случае D, если Гк < хо < х/, то точка xi вставляется в упорядоченный список после точки х0 (а не после г^ как выше).
Алгоритм сортировки в том виде, как он представлен выше, выполняет проверки с целью обнаружения пересечений пар. Если гарантируется корректность исходных данных (т. е. имеет место свойство непересекаемости), то алгоритм можно упростить. В этом случае можно исключить полностью случай А и две проверки на пересечение в случае D.
Чтобы рассмотренный алгоритм выполнял сортировку за линейное время, необходимо использовать в нем соответствующие структуры данных. А именно, каждый список братьев в верхнем и нижнем деревьях будем представлять с помощью однородного дерева поиска с указателями (см. приложение), каждый лист которого соответствует паре из списка братьев. Кроме того, между каждой парой и ее первым и последним сыновьями имеются двунаправленные указатели (в любом дереве, содержащем эту пару). Таким образом, каждая семья образует дважды связный кольцевой список, обладающий дополнительно тем свойством, что любая пара в списке может быть достигнута из любой другой пары, отстоящей от нее на d позиций в любом направлении, за время 0(1 + 1°?^)- Более того, приведенное время1), необходимое для вставки пары рядом с заданной па-
Ч Приведенное время — это время, приходящееся на одну операцию, усредненное по последовательности операций, выполняемой в худшем случае, при условии, что исходная структура данных является пустой. Подробное обсуждение этого понятия содержится в обзоре [26].
рой в список семьи, составляет 0(1), а приведенное время, необходимое для удаления подсписка из d пар из списка, содержащего s пар, в случае, когда заданы первая и последняя пары подсписка, составляет 0(1 + log (min {d, s — d} + l)).
Время выполнения алгоритма жордановой сортировки определяется в первую очередь временными затратами на выполнение операций типа «удалить подсписок» и «вставить пару», выполняемых над списками семей. Обозначим Г (р, s) максимальное значение приведенного времени, необходимое для выполнения совокупности из р таких операций над исходным списком, содержащим s элементов, и над удаленными подсписками. Т (р, s) удовлетворяет следующему рекуррентному соотношению:
{
О, если р = 0;
max У(1, d + 1) + Т (р — i — 1, s — d + 1) +
0<i<p
O^d<s
+ 0(1 + log (min {d, s — d} + 1))}, если p > 0.
По индукции можно доказать, что Т (.р, s) = 0(р + s). На обработку списка в алгоритме жордановой сортировки тратится время не более T([/n/2], 1) + У ( L m/2 J , 1), откуда следует, что время выполнения алгоритма равно О^п). Детальное описание самого алгоритма и его анализ можно найти в исходной работе [14]. (В представленном в настоящей работе алгоритме несколько иная структура данных. Основное изменение состоит в устранении кольцевых ссылок по уровню в деревьях поиска с указателями. Эти модификации не влияют на полученную оценку временной сложности 0(/п).)
Теперь мы хотим расширить алгоритм жордановой сортировки таким образом, чтобы при обнаружении двух пересекающихся пар он мог в определенных случаях возобновлять работу с некоторого скорректированного состояния, представляющего частично отсортированную последовательность, измененную так, чтобы устранить обнаруженное пересечение. При использовании алгоритма жордановой сортировки в задаче вычисления пар видимости алгоритм сортировки получает в качестве входных данных только некоторую подпоследовательность последовательности точек пересечения. При этом элементы подпоследовательности выбираются из последовательности не обязательно подряд. В этой подпоследовательности некоторые пары определяются как особые. (Все остальные пары являются нормальными.)
Чтобы приспособить алгоритм триангуляции к работе с такими данными, мы наложим на каждую особую пару {х/-ь xj дополнительное требование, заключающееся в том, чтобы из
данных точек пересечения она не охватывала никаких других, кроме Х/-1 и xi. Мы назовем это свойство свойством пустоты. С другой стороны, особые пары потенциально могут подлежать изменению: если {xz-i,xz}—особая пара, то между точками Х[_\ и Xi на границе дР могут иметься дополнительные точки пересечения. Алгоритм жордановой сортировки имеет возможность запрашивать такие дополнительные точки пересечения, если он обнаружит пересекающиеся пары или нарушения свойства пустоты.
Механизм, обеспечивающий получение дополнительных точек пересечения, реализуется процедурой корректировки refine. Входными данными для этой процедуры служат особая пара {xz-i, xz} и охватываемая этой парой точка х. Процедура возвращает так называемую ограничивающую пару точек хг и хм, являющихся точками пересечения дР и L. При этом порядок следования точек вдоль L будет следующим: для четырех точек Xi-x, х', х\ Xi, для пяти точек хм, х\ х, х”, Xi (либо обратным). Если такой ограничивающей пары точек не существует, то refine ничего не возвращает. Если процедура возвращает пару точек, то новая последовательность точек для сортировки получается из старой последовательности путем вставки между точками Xi-x и Xi точек х' и х", при этом точка хм следует после точки х'. Из трех пар точек, заменяющих пару Vxi-x.x^, две пары, {xz-^x'} и ^х",х^, являются особыми, а пара
х") — нормальной. (Это значит, что {х', х"} — ближайшая к х пара точек пересечения.)
Мы модифицируем алгоритм жордановой сортировки так, чтобы он мог обрабатывать особые пары, используя процедуру refine всегда, когда это возможно, чтобы устранить нарушение свойств непересекаемости и пустоты. Соответствующее изменение алгоритма достигается путем введения следующих трех дополнений (рис. 7):
На шаге 1, если {xz-i,xz}—особая пара и х < xz, выполнить refine({xz-i, xz}, х). Если процедура refine ничего не возвратит (в качестве своего результата), то завершить обработку, так как пара {xz-i, xz} нарушает свойство пустоты. Если refine возвратит пару {х\ х"), то вставить х' и х" в упорядочиваемую последовательность точек пересечения между точками xz-i и Xi и возобновить обработку с точки х'.
На шаге 3, случай В, если пара {x,_i,x7}—особая, то закончить обработку, так как нарушено свойство пустоты. Даже если бы его можно было восстановить применением процедуры refine к {х/_!,ху}, это привело бы впоследствии к нарушению свойства непересекаемости. (То же самое имеет место на шаге 3 в случае А: даже если пара {x/_i,x/}—особая и пересечение
{х,-ь х^ и {ху—i, х^ может быть устранено путем корректировки {Ау-ьХ/}, это приведет к появлению новой пересекающейся пары.)
На шаге 3, случай D, если пара {хм,*4—особая и rk >> xi, то завершать выполнение алгоритма не нужно, а вместо этого нужно выполнить процедуру refine ({х^-ь х^, Xi). Если процедура refine ничего не возвратит, то завершить алгоритм: пара ^Xk-\, xk} нарушает свойство пустоты. Если refine возвратит пару (х7, х"), то в верхнем лесе заменить пару (x^-i, хД на {хб-ьх'^за которой следует {х",Хк). Вставить {х\х"} в надлежащее место в нижнем лесе (в качестве брата или сына пары, содержащей х^, в зависимости от ситуации). Дальнейшую обработку вести как для случая D на шаге 3, подставив пару {х^-1, xz} вместо Vxk-\s XkY а также вместо пары {xy_i,xy}, если {xy-i, ху} = {x^-i,xz}. А именно, если {ху-ьху} — {х^_ь х^, т0 заменить пару (xy-i, xz} в списке ее братьев парой {xz-i, xz} и сделать {ху-i, х'} сыном пары {xz-i,xz}. Если {ху-^х/}^ =^ {x*-i, Xkh то заменить подсписок от {х/-ь ху} до {х*—i, х7) (включительно) парой {xt_i,xz}, а заменяемый подсписок
сделать списком сыновей пары {xZ'-i, х,}. В обоих случаях точку х^ необходимо вставить в сортируемый список после точки х' (или после х0 или х' < х0 < х^.
Корректность алгоритма жордановой сортировки с исправлением ошибок следует из того факта, что в работе алгоритма особая пара {а/-ь хД может охватывать самое большее одну точку пересечения х;^ {x/-i,x/}. Чтобы убедиться в этом, предположим, не умаляя общности, что пара {хн,а/} принадлежит верхнему дереву. Точка пересечения Xi^ {х/-ь хД может быть вставлена в сортируемый список между Xj-x и Xj, так как пара {хг_ь х^ добавляется к нижнему дереву, но в этом случае, как показано на рис. 7(п), при обработке точки х^х будет обнаружено нарушение свойства пустоты.
Дополнения, которые необходимо сделать к алгоритму, чтобы он мог исправлять ошибки, приводят к дополнительным временным затратам, составляющим лишь 0(1) на обрабатываемую точку и на одну корректировку, без учета времени, затрачиваемого внутри вызовов процедуры refine. (Одна корректировка порождает не более двух операций вставки в списке братьев.) Таким образом, алгоритм сортировки с исправлением ошибок имеет временную сложность 0(/п), где tn — число точек пересечения в окончательной скорректированной последовательности. В следующем разделе будет показано, как алгоритм жордановой сортировки с исправлением ошибок может быть использован для вычисления пар видимости.
ЭФФЕКТИВНЫЙ АЛГОРИТМ ВЫЧИСЛЕНИЯ ПАР ВИДИМОСТИ
Наш алгоритм вычисления пар видимости следует общей схеме, представленной в разд. 1, основанной на методе «разделяй и властвуй»: исходный многоугольник разбивается на части, также представляющие собой многоугольники. Эти многоугольники в свою очередь подвергаются разбиению на меньшие многоугольники, и т. д. до тех пор, пока ни один из получившихся многоугольников не сможет быть подвергнут дальнейшему разбиению. Прежде чем подробно обсуждать этот метод, необходимо рассмотреть структуру многоугольников, получаемых при разбиении, которые мы можем называть областями видимости. Внутренность области видимости представляет связанное подмножество внутренности исходного многоугольника, заключенное между двумя горизонтальными прямыми у = //min и у = = Утах, где //min < Утах- Мы потребуем, чтобы граница области видимости реально пересекала обе эти прямые (рис. 8).
Граница области видимости состоит из связанных частей границы исходного многоугольника, называемых граничными
Рис. 8. Схематичное представление области видимости. Каждая кривая представляет сегмент, являющийся частью границы многоугольника.
сегментами, чередующихся с отрезками прямых у = ymtn и у = = Утах. Каждый такой горизонтальный отрезок, не вырождающийся в точку, соответствует паре видимости. На каждой из прямых у = утт и у = утах лежит не более чем одна вершина исходного многоугольника. Хотя область видимости сама является простым многоугольником, тем не менее всякий раз, когда мы будем говорить о вершинах области видимости, мы будем иметь в виду лишь те из них, которые являются вершинами исходного многоугольника Р. Граничный сегмент начинается вершиной или частью стороны исходного многоугольника, называемой усеченной стороной, и заканчивается вершиной или усеченной стороной. Сторона исходного многоугольника, содержащая усеченную сторону, называется концевой стороной сегмента.
Разобьем граничные сегменты на три группы в зависимости от их типа:
верхний сегмент; ни одна концевая сторона сегмента и ни одна его вершина не пересекает прямую у = ymir;
нижний сегмент; ни одна концевая сторона сегмента и ни одна его вершина не пересекает прямую у = утаХ;
боковой сегмент; одна концевая сторона или вершина пересекает прямую у = утах, а другая пересекает прямую у =
//min-
Вырожденный случай верхнего или нижнего граничного сегмента представляет сегмент, содержащий одну вершину и нс содержащий усеченных сторон. Вырожденный случай бокового граничного сегмента представляет сегмент, содержащий одну усеченную сторону и не содержащий ни одной вершины. Граница области видимости состоит из четырех следующих друг за другом частей. Далее перечислены эти части в порядке их следования при обходе границы области по часовой стрелке. Множество верхних сегментов вместе со смежными с ними частями прямой у = ymax образует верхнюю границу. Затем следует боковой сегмент, образующий правую границу области. Множество нижних сегментов вместе со смежными с ними частями прямой у = z/min образует нижнюю границу области. И наконец, второй боковой сегмент образует левую границу области. В границе области обязательно присутствуют оба боковых сегмента; верхняя и/или нижняя границы могут быть пустыми.
Мы будем представлять область видимости, задав z/min и z/max, а также четыре части границы (левую, правую, верхнюю и нижнюю). Верхнюю и нижнюю границы области будем представлять списками входящих в них граничных сегментов в порядке их следования при обходе границы по часовой стрелке. Левая и правая границы представляются одним сегментом каждая. В свою очередь каждый граничный сегмент будем представлять списком его вершин, перечисляя их в порядке следования при обходе границы по часовой стрелке, и концевыми сторонами (если они имеются). Мы не конкретизируем реализацию (организацию) списков для представления граничных сегментов, а также верхней и нижней границ области. Этот вопрос обсуждается в разд. 5.
Обсудив структуру областей видимости, рассмотрим вопрос о пересечении границы области с горизонтальной прямой и введем ряд связанных с этим понятий (рис. 9). Пусть V— область видимости, a L — горизонтальная прямая, пересекающая внутренность этой области. В зависимости от взаимного расположения прямой L и граничных сегментов области V разобьем все граничные сегменты на три категории:
мелкий; сегмент не пересекает прямую L;
глубокий; верхний сегмент, все вершины которого лежат строго ниже прямой L, или нижний сегмент, все вершины которого лежат строго выше прямой L;
смешанный; любой другой сегмент.
В соответствии с этой классификацией боковой сегмент является смешанным, а верхний или нижний сегмент может иметь любой тип. Определим М-границу как непрерывную часть списка граничных сегментов, перечисляемых в порядке обхода
5V по часовой стрелке, содержащую лишь мелкие граничные сегменты. Аналогичным образом определяется Г-граница. Г-гра- ница и М-граница состоят либо целиком из верхних сегментов, либо целиком из нижних сегментов. Каждая усеченная сторона Г-границы пересекает прямую Л, и других точек пересечения
Рис. 9. Иллюстрация трех типов граничных сегментов. Верхняя группа сегментов включает Г-границу, состоящую из трех сегментов. Верхняя и нижняя группы сегментов включают М-границы, каждая из которых состоит из двух сегментов.
этой Г-границы с L нет. Введем следующую классификацию точек пересечения dV с L:
пересечение с максимальной Г-границей, не являющееся ни первым, ни последним пересечением с этой Г-границей, будем называть несущественными
любое другое пересечение будем называть существенным
Последнее, что необходимо обсудить, прежде чем перейти к описанию алгоритма вычисления пар видимости, это понятие особой пары и действие процедуры корректировки (refine); они влияют на выполнение алгоритма жордановой сортировки с исправлением ошибок. Пара точек пересечения dV с L называется особой, если одна из них является первой, а другая — последней точками пересечения некоторой Г-границы (в порядке следования вдоль dV), иначе пара называется нормальной. (Заметим, что порядок следования точек пересечения Г-границы с прямой L при просмотре вдоль L либо совпадает с порядком следования этих точек при просмотре вдоль 6V, либо точки вдоль L идут в обратном порядке по сравнению с dV.)
В результате обращения к процедуре refine ({xi-x.Xi^x) происходит следующее. Точки Xi-x и Xi являются первой и последней точками пересечения некоторой Г-границы S с прямой L. Если S можно разбить на две части (Г-границы) Si и 8^ первой и последней точками пересечения которых будут точки Xi-x, х7 и х77, Xi соответственно, и при этом {х7, xzz} охватывает точку х, то процедура refine возвращает пару точек (xz, х"). Если такое разбиение S выполнить нельзя, то процедура ничего не возвращает. Заметим, что если процедура возвратила пару точек (xz, xzz), то (xi-ь х') и {х77, Xi} являются особыми парами, а (х^х77)—нормальная пара, как того требует алгоритм жордановой сортировки.
Отметим еще один существенный момент, касающийся особых пар. Рассмотрим особую пару }xi_x,Xi}, содержащую первую и последнюю точки пересечения одного глубокого граничного сегмента Т с прямой. Если этот сегмент является верхним, то Т вместе с некоторым отрезком прямой у = ymax составляют простую замкнутую кривую, содержащую внутри отрезок, соединяющий точки Xi-х и Xi, вне которой находится вся граница области видимости V, отличная от Т. Согласно теореме о жордановой кривой, {x/-b Xi} не может охватывать никаких других точек пересечения, кроме Xi-x и хи Таким образом, каждая особая пара либо может быть скорректирована, либо обладает свойством пустоты, как того требует алгоритм жордановой сортировки.
Теперь мы готовы к обсуждению самого алгоритма вычисления пар видимости. Входными данными для алгоритма служит описание одной области видимости V. Чтобы алгоритм можно было применить к исходному многоугольнику, мы преобразуем этот многоугольник в область видимости, разбив его границу на два боковых граничных сегмента, концевыми вершинами которых являются вершины исходного многоугольника с минимальной и максимальной //-координатой; //-координаты этих двух вершин выбираются в качестве значений ymm и Утах для получаемой таким образом области. Приводимый ниже алгоритм аналогичен алгоритму из разд. 1, за тем исключением, что он вычисляет лишь существенные точки пересечения 6V и L (шаг 2) и использует жорданову сортировку с исправлением ошибок (шаг 3). Алгоритм включает следующие шаги:
Шаг 1. Задана область V, ограниченная прямыми у = ymtn, у = Утах. Выберем некоторую вершину у области V с //-координатой, раВНОЙ //cut, удовлетворяющей УСЛОВИЮ //min < //cut < < утах. Если такой вершины у не существует, то останов: об-
ласть V не дает пар видимости. В противном случае обозначим через L прямую у = z/cut.
Шаг 2. Найти существенные точки пересечения dV с L в том порядке, в каком они встречаются при движении вдоль дУ.
Шаг 3. Применить алгоритм жордановой сортировки с исправлением ошибок для сортировки по х-координате существенных точек пересечения и точек пересечения, полученных при выполнении процедуры корректировки (refine). Перечислить все пары видимости, соответствующие последовательным упорядоченным точкам пересечения в порядке следования вдоль L.
Шаг 4. Разрезать область V по прямой Л, разбив ее на некоторую совокупность подобластей.
Шаг 5. Применить рекурсивно данный алгоритм к каждой подобласти, полученной на шаге [4].
Из сделанного выше замечания, касающегося особых пар и процедуры корректировки, следует, что шаг жордановой сортировки выполняется корректно. Всякая несущественная точка пересечения лежит при движении вдоль дУ между точками, входящими в особую пару, и в случае необходимости может быть получена с помощью процедуры корректировки.
Последний вопрос, который необходимо обсудить, прежде чем переходить к анализу приведенного алгоритма, касается выполнения шага 4. Границы подобластей образуются следующим образом (рис. 10). Разрезать дУ в каждой точке пересечения, входящей в упорядоченный список, полученный на шаге 3. Каждой из полученных таким образом частей соответствует пара в одном из деревьев, созданных алгоритмом жордановой сортировки, верхнем или нижнем. Каждая семья в каждом из деревьев, родительная вершина которой имеет нечетную глубину (считая, что фиктивные корни деревьев имеют нулевую глубину), соответствует подобласти. Граница этой подобласти состоит из частей дУ, которым соответствуют пары, входящие в семью. Порядок следования этих частей совпадает с порядком соответствующих им пар в списке семьи в нижнем дереве или, в случае верхнего дерева, является обратным. Части границы дУ чередуются с соответствующими отрезками прямой у = ycut. В этом порядке следования есть одно важное исключение. В особом случае, когда некоторая часть D границы дУ соответствует Г-границе, прежде чем включить D в качестве составляющей в границу подобласти, необходимо каждый отрезок прямой у = ymin или у = z/max заменить соответствующим отрезком прямой у = z/cut. Отметим, что это не влияет на представление
Рис. 10. Образование подобластей. На верхнем и нижнем деревьях выделены семьи вершин дерева, соответствующих подобластям. Трапеции, отмеченные на рисунке цифрой 0, полностью игнорируются.
Г-границы, а значит, не требуется никаких изменений в структуре данных, представляющей Г-границу. Более того, области видимости, отсекаемые в результате такой замены и, следовательно, игнорируемые алгоритмом при обработке, представляют собой трапеции. Если бы алгоритм вычисления пар видимости обрабатывал их, он завершил бы свою работу на шаге 1. Эффективность алгоритма вычисления пар видимости достигается за счет того, что он избегает каких-либо вычислений, связанных с такими тривиальными областями видимости.
Рассмотрим теперь, как определяются значения г/min и //max для получаемых подобластей. Возьмем некоторую подобласть, лежащую над прямой L. Ей соответствует семья в верхнем дереве. Значение z/min для этой подобласти устанавливается равным yCut. Значение утах для подобласти равно ymax для исходной области, если родительская вершина семьи имеет глубину 1 в верхнем дереве. В противном случае z/max для подобласти берется равным максимальному значению //-координаты среди всех вершин, принадлежащих части границы dV, соответствую-
щей родительской вершине семьи. В последнем случае часть границы дУ, соответствующая родительской вершине, состоит из одной части граничного сегмента области У. Разделим эту часть на две, разорвав ее в вершине с максимальной //-координатой. Две получившиеся части образуют боковые сегменты подобласти. Верхняя граница подобласти оказывается пустой. Для подобластей, лежащих ниже прямой Л, значения ym-m и ymax определяются симметричным образом.
Давайте вновь сформулируем, в чем состоит различие между приведенным выше алгоритмом и алгоритмом, описанным в разд. 1. В первом из них максимальная Г-граница рассматривается так, как если бы она имела лишь две точки пересечения с L (существенные точки пересечения), до тех пор пока не будет обнаружена точка пересечения, не принадлежащая этой Г-границе и находящаяся между точками пересечения Г-гра- ницы с L. Такой подход оказывается возможным благодаря тому, что порядок точек пересечения Г-границы с L оказывается одним и тем же (или обратным) при просмотре вдоль границы и вдоль прямой L. Если таких «чужих» точек пересечения нет, то алгоритм из разд. 1 просто рассекал бы границу между каждой парой смежных граничных сегментов на шаге 2 и опять соединял бы их в точности в том же самом порядке на шаге 4. Новый алгоритм избегает этой ненужной работы.
Теперь мы хотим оценить количественно, насколько новый алгоритм эффективнее. Наш основной результат состоит в том, что полное число пар видимости, обнаруженное при обработке /7-угольника, равно О (п). Отсюда следует, что время, затрачиваемое на жорданову сортировку, без учета обращений к процедуре refine равно О (п).
Лемма 3. При обработке п-угольника требуется не более п — 2 раз выполнить шаги 2—4 алгоритма.
Доказательство. Каждая вершина многоугольника, за исключением вершин с максимальной и минимальной //-координатой, может быть выбрана в качестве вершины и на шаге 1 не более одного раза. ■
Лемма 4. Рассмотрим однократное выполнение шага 3. Пусть к — число пар видимости, найденных при этом выполнении шага 3, которые не были найдены ранее. Полное число точек пересечения, отсортированных на шаге 3, включая точки пересечения, полученные в результате выполнения процедуры корректировки refine, равно СЦк + 1).
Доказательство. Подсчитаем сначала существенные пересечения. Назовем существенную точку пересечения х хорошей,
если х является вершиной многоугольника (т. е. х = у) или если две вершины, предшествующая х и следующая за х вдоль dV, которые мы обозначим и' и y/z, находятся в одной и той же части dV (верхней, нижней, левой или правой) и не лежат строго по одну сторону от L. В противном случае точку пересечения х будем называть плохой. Утверждается, что если х— хорошая точка пересечения, отличная от у, то сторона многоугольника, содержащая х, принадлежит некоторой впервые найденной паре видимости. Это утверждение справедливо, если часть границы dV от у' до y/z состоит от отрезка, соединяющего yz и у", так как пара видимости, которая содержит сторону многоугольника с вершинами у' и yzz и которая будет обнаружена алгоритмом, является первой из уже найденных пар видимости, содержащей эту сторону многоугольника. Утверждение также справедливо, если часть границы V от у' до yzz состоит из усеченной стороны многоугольника, идущей из yz до прямой у = Утах (или у = Z/min), ОТреЗКа ПрЯМОЙ у = утах (ИЛИ СООТветственно у = ymin) и усеченной стороны многоугольника, идущей ОТ прямой у = Утах (ИЛИ СООТВеТСТВеННО у = z/min) в вершину у". Чтобы убедиться в этом, без ограничения общности предположим, что вершина yz находится строго ниже прямой L и dV содержит усеченную сторону многоугольника, идущую из у' до прямой у = утах (рис. 11). Точка пересечения х лежит на этой усеченной стороне. Если смотреть вдоль направления прямой L со стороны, выходящей из у', то будет видно нечто иное по сравнению с тем, что видно со стороны, входящей в у", и это различие будет отражено в новых парах видимости. Таким образом, в обоих случаях сделанное утверждение оказывается справедливым. Из этого утверждения следует, что число хороших точек пересечения равно О(/? + 1).
Рассмотрим теперь плохие точки пересечения. Любой смешанный граничный сегмент содержит не более двух плохих точек пересечения (первое и последнее пересечение в сегменте) и, если он считается верхним или нижним сегментом, по крайней мере одну хорошую точку пересечения. Любая максимальная Г-граница содержит не более двух плохих точек пересече-
Рис. 11. Сторона многоугольника, содержащая точку пересечения х, принадлежит новой паре видимости.
ния (первое и последнее пересечения в Г-границе). Такая Г-гра- ница либо (i) предшествует мелкому сегменту, либо (ii) предшествует смешанному верхнему или нижнему граничному сегменту, либо (iii) содержит последний сегмент на своей стороне. В случае (i) последнее пересечение является хорошим. Число плохих пересечений в случае (ii) равно О(/? + 1), так как смешанный сегмент содержит по крайней мере одно хорошее пересечение. На случай (iii) приходится не более четырех плохих пересечений (два последних пересечения внутри каждой верхней и нижней границ). Кроме того, имеется не более двух плохих пересечений внутри как левой, так и правой границ. Таким образом, число плохих пересечений равно О(/? + 1).
Остается подсчитать несущественные точки пересечения, получаемые при корректировке. Предположим, что при обращении к процедуре refine ({xt-i, xj, х) она возвращает пару х, х77. Каждая из сторон многоугольника, содержащая х7 или х77, будет входить в новые пары видимости, обнаруженные алгоритмом, так как вдоль прямой L с каждой из этих сторон видно нс только другую сторону. Таким образом, число точек пересечения, полученных при корректировке, равно О^ку
Следующая теорема подводит итог проведенному анализу алгоритма.
Теорема 1. При обработке п-угольника алгоритм вычисления пар видимости выдает (Цп) пар видимости, затратив при этом на жорданову сортировку время 0(h) без учета времени на обращение к процедуре корректировки refine.
Доказательство. Доказательство этой теоремы непосредственно следует из лемм 1, 3 и 4. ■
область с большим числом граничных сегментов таким образом, чтобы по крайней мере нужная нам доля сегментов заканчивалась в какой-либо одной из подобластей. Процедура, которая обеспечивает такой выбор вершины и может быть быстро выполнена, состоит в следующем.
Выбор вершины для разреза. Пусть область V имеет t верхних и b нижних граничных сегментов. Предположим, что t^b. (В противном случае обработка ведется симметричным образом.) Если ^^2, то выбрать любую вершину и, //-координата которой не ВХОДИТ В множество {//min, //max}. В противном случае разделить список граничных сегментов на три подсписка так, чтобы первый и последний содержали по [//3] сегментов, а средний подсписок — все оставшиеся. Среди вершин сегментов среднего подсписка выбрать вершину и, имеющую наименьшую //-координату.
Будем называть модифицированный алгоритм вычисления пар видимости, использующий такую стратегию выбора вершины, алгоритмом со сбалансированным разбиением. Алгоритм, использующий некоторую произвольную стратегию выбора, будем называть исходным алгоритмом. В следующем ниже анализе два граничных сегмента будут считаться различными лишь в случае, если различны множества их вершин или они имеют различные концевые стороны (если таковые вообще имеются).
Лемма 5. При обработке п-угольника исходный алгоритм вычисления пар видимости создает в целом О(п) различных граничных сегментов.
Доказательство. Единственный способ, которым алгоритм может создать новые граничные сегменты, — это разрезать старый граничный сегмент на два в точке пересечения, являющейся исходными данными для алгоритма жордановой сортировки, или в вершине с максимальной или минимальной //-координатой среди вершин подобласти. Согласно теореме 1, число таких вершин, по которым разрезаются сегменты, равно О (п). Следовательно, имеется О (п) различных граничных сегментов. ■
Лемма 6. Пусть V — область с s граничными сегментами. Если V разбивается на части с использованием стратегии сбалансированного разбиения, то ни одна из получившихся подобластей не будет содержать более 7s/8 исходных граничных сегмента области V.
Доказательство. Пусть V содержит / верхних и b нижних граничных сегментов. Имеет место равенство s = b + t 4- 2. Без потери общности предположим, что t Ь. Если t 2, то спра-
ведливость леммы очевидна, так как некоторый граничный сегмент разрезается на новые сегменты, отличные от исходных, так что исходный сегмент нс появится ни в одной подобласти. Предположим, что / ^ 3. Рассмотрим, где заканчиваются верхние сегменты области V после разбиения ее на части. Сегмент, являющийся смешанным относительно разбивающей прямой Л, разбивается на несколько новых граничных сегментов, отличных от исходных, так что исходный сегмент нс появится ни в одной подобласти. Имеется не более [//3J глубоких верхних граничных сегментов. Отсюда следует, что каждая подобласть, лежащая ниже L, содержит не более ^+2V3+2^7s/8 граничных сегментов области V. Глубокий верхний сегмент не может заканчиваться в подобласти, лежащей выше прямой L; это возможно лишь для части этого сегмента, образующей отдельный граничный сегмент. Таким образом, средн верхних сегментов лишь мелкие сегменты могут заканчиваться в подобластях, лежащих выше L. Множество мелких сегментов может заканчиваться в одной и той же подобласти лишь в том случае, если оно образует М-границу. С учетом выбора прямой L любая такая М-граница может содержать не более t— [//3J— 1 ^ 2//3 верхних граничных сегментов области V. Таким образом, любая подобласть, лежащая выше L, содержит не более 6 + 2//3 + + 2 ^ 7s/8 граничных сегментов области V. ■
Теорема 2. При применении алгоритма вычисления пар видимости, использующего стратегию сбалансированного разбиения, к п-угольнику сумма по всем областям числа граничных сегментов в области равна О (/г log/г).
Доказательство. Один из способов доказательства этой теоремы состоит в том, чтобы, основываясь на лемме 6, выписать рекуррентное соотношение и решить его. Вместо этого мы применим «амортизационный» метод доказательства, основанный на анализе кредитов (см. [26]). При создании алгоритмом нового граничного сегмента мы будем приписывать этому сегменту значение 151ogi6/i5^> называемое кредитом. В дальнейшем всякий раз, когда этот сегмент будет появляться в некоторой области, кредит будет уменьшаться на единицу. Мы покажем, что сумма кредитов всегда остается неотрицательной. Отсюда, согласно лемме 5, следует, что сумма по всем областям числа граничных сегментов этих областей равна О (п log п).
Чтобы показать, что сумма кредитов остается неотрицательной, мы в действительности докажем следующее более сильное утверждение об инвариантности кредита: область с s граничными сегментами имеет кредит нс менее slogi6/i5s. Очевидно, что исходно это утверждение истинно. Предположим, что
оно истинно и в некоторый момент обработки перед началом выполнения шагов 1—4. Пусть V — область, подвергаемая разбиению, a s — число граничных сегментов этой области. До разбиения область V имеет кредит не менее slogie/is-s, который мы распределяем по logie/is-s на каждый граничный сегмент. Одна единица из этой величины вычитается как «плата» за появление сегмента в области V. Оставшийся кредит (logie/is-s)—1 = = Iogi6/i5(15s/16) представляет собой вклад сегмента в кредит подобласти, в которой он появляется. Рассмотрим подобласть V', образующуюся при разбиении V. Предположим, что ее граница содержит р граничных сегментов области V7 и q вновь созданных граничных сегментов. Положим s' = р + q. Чтобы проверить, что V' имеет кредит s' logie/i5 s', рассмотрим два случая. Если ^>^715, то сумма всех кредитов не меньше суммы кредитов новых сегментов:
l5^ 10gl6/15« > S' ^gie/lS^ > S' 10gl6/15 s'-
Если q ^ 5715, то поскольку ,согласно лемме 6, p ^ 7s/8, имеем s' ^ 15s/16. Сумма всех кредитов равна
Р Iogi6/15 (15s/l6) + 15? log16/15 n >
> P Iogi6/15 (15s/16) 4- 15? 10g16/15 (15s/16) >
> S' logl6/15 (15s/l6) > s' logl6/15 s'.
Применив индукцию по числу шагов, убеждаемся в истинности утверждения об инвариантности кредита. С учетом сказанного ранее это доказывает теорему. ■
ПРЕДСТАВЛЕНИЕ ГРАНИЦЫ ОБЛАСТИ
С ИСПОЛЬЗОВАНИЕМ ДЕРЕВЬЕВ ПОИСКА С УКАЗАТЕЛЯМИ
Мы почти завершили описание алгоритма вычисления пар видимости. Единственная задача, которую нам осталось решить, это выбрать структуру данных для списков, представляющих граничные сегменты и их группы, и проанализировать последствия этого выбора. Для представления списков обоих типов мы используем неоднородные деревья поиска с указателями (см. приложение). Как мы увидим, это обеспечивает временную сложность О (/г log log/г) для алгоритма вычисления пар видимости, использующего стратегию сбалансированного разбиения.
Мы представляем каждый граничный сегмент как неоднородное дерево поиска с указателями, в котором каждый лист содержит вершину, входящую в этот сегмент. Порядок следования вершин при просмотре дерева слева направо соответствует по-
Рис. 12. Граничный сегмент и его представление с помощью неоднородного дерева поиска с указателями. (Обозначения, принятые при изображении дерева, объясняются на рис. 22.)
рядку прохождения вершин при движении вдоль сегмента. Кроме того, если сегмент имеет одну или две концевые стороны, то эти стороны запоминаются вместе с деревом. В дереве поддерживаются два вторичных порядка, оба связанные со значением //-координаты вершин. Первый определяет упорядоченность вершин по возрастанию //-координаты, а второй — по уменьшению //-координаты. Это значит, что каждая вершина -дерева содержит максимальное и минимальное значения //-координаты вершин многоугольника, соответствующих листьям дерева, достижимых из этой вершины дерева (рис. 12). Это позволяет для любого заданного значения // найти самую левую (или самую правую) вершину многоугольника, //-координата которой меньше (или больше) заданного значения, за время 0(1 + log (min {d, s— d} + l)), где s — полное число вершин
многоугольника, запомненных в дереве, ad — позиция найденной вершины. За это же/ время можно найти вершину многоугольника с максимальной' (Или минимальной) //-координатой. Приведенное время операции расщепления дерева по позиции с номером d также равной (1 + log (min {d, s — d^ + 1)).
Для представления каждого списка верхних и нижних граничных сегментов, составляющих верхнюю или нижнюю границу области, используются неоднородные деревья поиска с указателями, в которых каждый лист представляет граничный сегмент. При просмотре дерева слева направо порядок следования граничных сегментов совпадает с порядком их прохождения при обходе границы в направлении по часовой стрелке. Каждый лист дерева содержит указатель на дерево, представляющее соответствующий граничный сегмент, а также на концевые вершины или стороны этого сегмента и максимальное и минимальное значения //-координаты вершин многоугольника, входящих в сегмент. Мы рассматриваем каждую вершину дерева как представляющую подсписок граничных сегментов, соответствующих множеству листьев, достижимых из этой вершины дерева. Для каждого такого подсписка запоминаются также первая и последняя концевые вершины или стороны, число входящих в него сегментов и максимальное и минимальное значения- //-координаты вершин, входящих в сегменты подсписка (рис. 13). Вся эта информация может быть изменена, при этом обновление информации в вершинах дерева проводится в порядке движения снизу вверх для внутренних вершин дерева и сверху вниз для вершин дерева, лежащих на левом и правом путях.
Все перечисленные ниже операции могут быть выполнены за время 0(1 + log (min {d, s— d} + l)), где d— позиция найденного элемента, a s— общее число сегментов, запомненных в дереве.
Найти в дереве самый левый (или самый правый) сегмент, содержащий вершину многоугольника, //-координата которой меньше (или больше) заданного значения.
Найти сегмент в позиции d.
Предположим, что все вершины сегмента лежат строго выше (или строго ниже) заданной горизонтальной прямой L и все концевые стороны сегментов пересекают L. Для заданного значения х найти в дереве самый левый (или самый правый) сегмент, сторона которого пересекает прямую L, и при этом х-координата точки пересечения меньше (или больше) х. (Возможны все четыре варианта поиска: самый левый сегмент с х-координатой точки пересечения, меньшей х, самый левый сегмент с х-координатой точки пересечения, большей х, и т. д.)
Рис. 13. Группа граничных сегментов и ее представление с помощью неоднородного дерева поиска с указателями. (Обозначения, используемые при изображении дерева, объясняются на рис. 22; прописными буквами обозначены концевые стороны.)
Кроме того, приведенное время операции вставки нового сегмента вслед за элементом в позиции d составляет 0(1 + + log(min{d, s — d} + l)), где s— общее число сегментов, запомненных в дереве. Приведенное время операции конкатенации двух деревьев равно 0(1).
Теперь рассмотрим, какие операции над структурами данных, представляющими границы областей, требуется выполнить на каждом шаге алгоритма вычисления пар видимости, использующего стратегию сбалансированного разбиения. Мы
последовательно опишем выполнение каждого шага алгоритма, приводя в некоторых случаях временные оценки.
Шаг 1. Пусть задана область V. Определим число верхних и нижних граничных сегментов в границе области V, обозначив их соответственно t и b (время 0(1)). Предположим, что t^ Ь. (Альтернативный случай рассматривается симметричным образом.) Если / ^ 2, выберем сегмент границы, содержащий некоторую вершину многоугольника, //-координата которой лежит строго между ymm и //max, и выберем в качестве у первую такую вершину в этом сегменте (время 0(1)). Если / ^ 3, то разделим список верхних граничных сегментов на три части. В средней части найдем вершину с минимальной //-координатой, которую и возьмем в качестве у (затраты времени на эту операцию будут проанализированы ниже). Тем самым определяется прямая L, по которой производится разбиение области у.
Шаг 2. Расщепим дерево, представляющее верхнюю границу, между каждой парой сегментов, имеющих различные типы: мелкий, глубокий, смешанный (затраты времени на эту операцию будут проанализированы ниже). Такое расщепление разбивает список верхней границы на три части: смешанные сегменты, максимальная Г-граница и максимальная М-граница. Повторим эту операцию с деревом, представляющим нижнюю границу (затраты времени анализируются ниже). Расщепим дерево, содержащее вершину, лежащую на L, по этой вершине, поместив ее в оба полученных в результате расщепления дерева (затраты времени анализируются ниже). Каждому из выполненных расщеплений соответствует существенная точка пересечения границы области с прямой L. Сформируем список этих точек пересечения в том порядке, в каком они располагаются вдоль границы области. Это делается путем просмотра списков деревьев, представляющих Г-границы и новые граничные сегменты, образованные при расщеплении смешанных сегментов (время 0(1) на одно существенное пересечение).
Шаг 3. Для того чтобы выполнить вызов процедуры refine ^xi-y, х^, х), рассмотрим дерево, представляющее Г-границу, первой и последней точками пересечения которой с L являются соответственно xi-\ и хи Предположим, что x,-i < xt (альтернативный случай симметричен). Если ^-координата точки последнего пересечения этого сегмента с L больше х, то процедура refine ничего не возвращает (время 0(1)). В противном случае расщепить Г-границу между этим и следующим за ним сегментами и возвратить в качестве хг и х" соответственно последнюю точку пересечения этого сегмента в первую точку пересечения
следующего за ним сегмента (время выполнения этой операции будет проанализировано ниже).
Шаг 4. Для каждой пары в верхнем дереве, глубина которой нечетна и больше единицы, выполним расщепление дерева, представляющего соответствующий граничный сегмент, по вершине этого сегмента, имеющей максимальную у-координату (время
Рис. 14. Подобласть, приводящая к ошибке на шаге 4 алгоритма. Стрелки указывают направление прохождения двух граничных сегментов в исходном многоугольнике. Подобные подобласти не могут появиться при обработке простого многоугольника.
выполнения этой операции будет проанализировано ниже). Поместим вершину, по которой произведено расщепление, в оба получившихся в результате расщепления дерева. Аналогичным образом (с учетом симметрии) обработаем граничные сегменты, соответствующие парам в нижнем дереве. Для каждой семьи в обоих деревьях выполним конкатенацию граничных сегментов и Г-границ, соответствующих парам этой семьи, получив в результате границу подобласти, соответствующей семье (время 0(1) на одну пару). Так как обрабатываемый многоугольник является простым, то порядок расположения вершин многоугольника на границе подобласти согласуется с их порядком в исходном многоугольнике (рис. 14). Это значит, что при конкатенации никогда не надо будет изменять на обратный порядок граничных сегментов.
Теперь давайте проанализируем время выполнения этой реализации алгоритма сбалансированного разбиения. Заметим, что для каждого сегмента, найденного среди сегментов верхней или нижней границы, и для каждой вершины, найденной в сегменте, расщепление производится по этому сегменту или вершине. Так как временные оценки для операций поиска и расщепления одинаковы, то время, затраченное на расщепление, доминирует над временем, затрачиваемым на поиск таких сегментов и вершин, включая время на поиск //-координат вершин многоугольника, по которым производится расщепление, на шаге 1. Таким
образом, учитывая оценки, приведенные выше, и теорему 1, получаем, что полное время работы алгоритма равно О (/г) плюс время выполнения операций вставки в дерево, расщепления и конкатенации деревьев.
Остается оценить временные затраты, связанные с операциями, изменяющими структуры данных. Каждая операция вставки производится с одного из концов дерева поиска с указателями, и, следовательно, приведенное время этой операции равно 0(1). Изменения деревьев, представляющих сегменты, связаны лишь операциями расщепления и вставки, число которых равно О (/г). Полное время, затрачиваемое на эти изменения, удовлетворяет рекуррентному соотношению, в сущности совпадающему с соотношением (1) (см. разд. 1), и, следовательно, равно О (/г).
Изменения, производимые над деревьями, представляющими верхнюю и нижнюю границы, включают в конкатенацию, а значит, рекуррентное соотношение (1) в этом случае уже неприменимо. Для анализа этих операций заметим сначала, что приведенное время одной операции конкатенации или вставки равно 0(1). Так как полное число таких операций равной О (/г), то полное время выполнения всех операций составляет О (п).
Для анализа О (/г) операций расщепления рассмотрим некоторую область видимости Уь полное число граничных сегментов которой равно S[. Полное время, затрачиваемое на расщепление двух деревьев, представляющих верхнюю и нижнюю границы, равно ✓+1
о I kt + X log Si, ,\/ = 0
где kt —- полное число расщеплений, a s^o, s^, ..., si)k. + 1 — число сегментов в каждом из деревьев, созданных в результате выполнения операций расщепления. (Начав с двух деревьев, в результате kt расщеплений получим ki + 2 деревьев; если исходно имеется только одно дерево, то мы считаем, что sz, ^, + 1 = !•) Для всех / имеем Si, / ^ 1 и
+1
Si + 1.
/=o ’1
Так как логарифмическая функция является вогнутой, то оценка времени, затрачиваемого на расщепление, имеет максимум, когда все получаемые части имеют одинаковый «размер», что дает оценку О (ki + (ki + 2) log( (sz + l)/(^ + 2))).
Оценивая полное время выполнения всех О^п) операций расщепления, равное О (Xz Мч + Оч + 2) log ((s, + l)/(^z + 2)))),
мы представим его в виде суммы двух слагаемых и оценим каждое из них. Назовем область Vi хорошей областью, если ki ^ sz/(log/2)2, и плохой в противном случае. Согласно теореме 2, Xi st — О (п log п\ так что число расщеплений, имеющих место при обработке хорошей области, равно
X ^ = О («/log «).
k^sJOo^ пу
Взяв О (log/г) в качестве завышенной оценки времени выполнения этих операций расщепления, получаем для полного времени расщепления хороших областей оценку О (/г). Остается получить оценку для времени расщепления плохих областей: о( 2(^ + (^ + 2)log(Sz + № + 2)))) =
V(.>s(./(logn)=)
= О( 2(^« +(^i + 2)loglogn)A = O(nloglogra),
так как ^ikt = O kn\
На основании проведенного выше анализа мы приходим к выводу, что полное время выполнения алгоритма вычисления пар видимости, использующего стратегию сбалансированного разбиения, равно О (/г log log/г).
ЗАМЕЧАНИЯ, ПРИЛОЖЕНИЯ И ОТКРЫТЫЕ ПРОБЛЕМЫ
Мы описали алгоритм вычисления СВ-пар видимости в горизонтальном направлении для простого многоугольника, имеющий временную сложность О (/г log log/г). Путем линейного по времени сведения задачи триангуляции к задаче вычисления пар видимости [5, 9] мы получаем алгоритм с временной сложностью О (/г log log/г), решающий задачу триангуляции. Главными составляющими нашего алгоритма являются жорданова сортировка, метод сбалансированного разбиения на части и деревья поиска с указателями. Представляет интерес следующее замечание: и алгоритм жордановой сортировки, и алгоритм вычисления пар видимости используют деревья поиска с указателями, но только разных типов. Алгоритм жордановой сортировки требует быстрого доступа в окрестность элемента, занимающего произвольную позицию в дереве, но при этом нет необходимости искать элементы по вторичному порядку. Этим требованиям удовлетворяют однородные деревья поиска с указателями. Алгоритм вычисления пар видимости сам по себе не нуждается в использовании поиска по вторичному порядку, но вместе с тем требует быстрого доступа лишь в окрестность
первого и последнего элементов. Этим требованиям удовлетворяют неоднородные деревья поиска с указателями. Наш алгоритм в полной мере использует указанные свойства этих структур.
Деревья поиска с указателями довольно сложны для использования в практической реализации алгоритма. Слитор и Тарьян [23] выдвинули гипотезу, что если вместо деревьев поиска с указателями использовать сплей-деревья (разновидность саморегулирующихся деревьев поиска), то оценка О (/г log log и) для временной сложности алгоритма остается справедливой. Использование сплей-деревьев, возможно, приведет к практически полезной реализации нашего алгоритма, хотя это предположение следует проверить экспериментально. С практической точки зрения в алгоритм следует внести еще некоторые менее значительные изменения. Этот вопрос мы оставим в качестве темы для дальнейших исследований.
Рассмотренный алгоритм вычисления пар видимости может быть изменен с тем, чтобы можно было обрабатывать многоугольники, имеющие вершины с одинаковыми //-координатами. Для обработки возникающих при этом касательных точек пересечения в процессе жордановой сортировки (см. разд. 2) мы представляем такую точку Xi фиктивной парой (xi,xf), добавляемой к нижнему дереву, если касание происходит с верхней стороны прямой L, по которой производится разбиение, или к верхнему дереву в противном случае. Другие связанные с этим изменения в алгоритме очевидны (см., например, [30]).
Эффективный алгоритм триангуляции имеет многочисленные применения в вычислительной геометрии. Обычно требуется выполнить триангуляцию (возможно, несколько раз) и некоторую линейную по времени предобработку или постобработку. В этом случае наш алгоритм триангуляции дает оценку О (/г log log/г) временной сложности решения всей задачи в целом. Любое улучшение времени триангуляции будет давать соответствующее улучшение в прикладной задаче. Среди задач, в которых используется триангуляция, отметим следующие:
некоторые задачи разбиения многоугольников на части [9] (когда дополнительно не налагается условие минимальности разбиения, как, например, в [17]);
регуляризация (или триангуляция) некоторого разбиения плоскости, задаваемого связным планарным графом [8];
вычисления внутреннего расстояния между двумя точками внутри многоугольника и определение видимости многоугольника из точки, находящейся внутри многоугольника [3];
решение задачи о кратчайшем пути внутри многоугольника и вычисление информации о видимости внутренности мно-
гоугольника с некоторого отрезка, лежащего внутри многоугольника [11];
проверка многоугольников на пересечение и представление (декомпозиция) простых сплайн-многоугольников [24] в виде объединения разностей объединений выпуклых множеств [7];
определение трансляционной отделимости двух простых многоугольников [1];
определение кратчайщего пути наблюдателя при обходе простого многоугольника [6, 3].
Одно из важных применений нашего алгоритма вычисления пар видимости касается проверки, является ли многоугольник Р
Рис. 15. Многоугольники, не являющиеся простыми и не вызывающие ошибок при применении к ним алгоритма вычисления пар видимости. Если в многоугольнике, показанном на рисунке (с), сделать разрез, проходящий через вершину у5, то он «распадется» на три простых многоугольника.Рис. 15. Многоугольники, не являющиеся простыми и не вызывающие ошибок при применении к ним алгоритма вычисления пар видимости. Если в многоугольнике, показанном на рисунке (с), сделать разрез, проходящий через вершину у5, то он «распадется» на три простых многоугольника.
Рис. 15. Многоугольники, не являющиеся простыми и не вызывающие ошибок при применении к ним алгоритма вычисления пар видимости. Если в многоугольнике, показанном на рисунке (с), сделать разрез, проходящий через вершину у5, то он «распадется» на три простых многоугольника.
Рис. 15. Многоугольники, не являющиеся простыми и не вызывающие ошибок при применении к ним алгоритма вычисления пар видимости. Если в многоугольнике, показанном на рисунке (с), сделать разрез, проходящий через вершину у5, то он «распадется» на три простых многоугольника.
с п вершинами простым, и определения точек самопересечения границы дР, если многоугольник не является простым. Мы покажем, как следует изменить наш алгоритм для того, чтобы можно было решать эти задачи за время О (п log log /г).
Хотя алгоритм жордановой сортировки с исправлением ошибок и обнаруживает в некоторых случаях, что многоугольник нс является простым, столкнувшись с неподдающимися корректировке пересечениями или нарушениями свойства пустоты, однако успешное завершение алгоритма вычисления пар видимости не доказывает, что он действительно прост. Среди проблем, с которыми должен успешно справляться алгоритм, гарантированно проверяющий простоту многоугольника, укажем следующие: совпадение двух вершин — многоугольник касается самого себя (рис. 15, а); ни при какой согласованной разметке ребер, определяющей их ориентацию при обходе границы, невозможно определить внутренность многоугольника (рис. 15,Ь); наличие самопересечений границы, когда многоугольник, не
являясь простым, может быть разбит на части, каждая из которых является простым многоугольником (рис. 15, с).
Наш алгоритм проверки простоты многоугольника состоит в следующем. Сначала мы проверяем, что любые две последовательные стороны многоугольника Р имеют пересечение, состоящее из одной точки — их общей вершины. Затем применяем алгоритм вычисления пар видимости к многоугольнику Р и многоугольнику Q, полученному из Р путем «выворачивания», как
Рис. 16. Порядок четырех углов области видимости, показанной на рисунке, позволяет утверждать о том, что эта область не является простым многоугольником.Рис. 16. Порядок четырех углов области видимости, показанной на рисунке, позволяет утверждать о том, что эта область не является простым многоугольником.это определено при доказательстве леммы 2. Выполнение алгоритма прерывается и объявляется, что многоугольник Р не является простым, если имеет место один из перечисленных ниже случаев.
Рис. 16. Порядок четырех углов области видимости, показанной на рисунке, позволяет утверждать о том, что эта область не является простым многоугольником.
Рис. 16. Порядок четырех углов области видимости, показанной на рисунке, позволяет утверждать о том, что эта область не является простым многоугольником.
На шаге жордановой сортировки обнаруживается точка пересечения двух сторон многоугольника, отличная от общей вершины этих сторон (рис. 15, а).
На шаге жордановой сортировки обнаруживается неподдающееся корректировке пересечение или нарушение свойства пустоты.
На шаге 4 строится подобласть с граничными сегмен
тами Si и S2, про которые известно, что они пересекаются, так
как порядок точек пересечения Si и S2 с верхней ограничивающей прямой отличается от порядка точек пересечения этих сегментов с нижней ограничивающей прямой (рис. 16).
Если алгоритм вычисления пар видимости успешно завершает свою работу на обоих многоугольниках Р и Q, то объявляется, что многоугольник Р простой.
При обсуждении шага 4 алгоритм в разд. 5 мы отметили, что если многоугольник простой, то порядок вершин вдоль граничных сегментов области совместим с порядком вершин вдоль собранной из частей граничных сегментов области границы подобласти. Ясно, что если многоугольник не является простым, то на шаге 4 может появиться подобласть, граничные сегменты которой входят в границу в неправильном порядке, как показано на рис. 14. К счастью, такая ситуация не может реально произойти: если такая вложенная пара существует, то, согласно теореме о жордановой кривой, текущая обрабатываемая
область имеет непростую границу, и на самом деле сегменты границы, определяемые разбивающей прямой, не удовлетворяют свойству непересекаемости. Следовательно, тот факт, что многоугольник не является простым, будет обнаружен на шаге 3.
Теорема 3. Алгоритм проверки многоугольника на простоту корректен.
Доказательство. Несомненно, что если алгоритм проверки многоугольника на простоту .выдает ответ, что Р не является простым многоугольником, то дР имеет самопересечения. Предположим, что алгоритм определил, что Р— простой многоугольник. В процессе вычисления пар видимости алгоритм породил два множества областей. Пусть Р и Q — множества областей, порожденных при применении алгоритма вычисления пар видимости соответственно к многоугольникам Р и Q. Каждая область в Р и Q является либо трапецией, либо треугольником. Некоторые области из Q ограничены одной или более сторонами из множества Q—Р, т. е. сторонами, добавленными к «вывернутому» многоугольнику Р. Обозначим Q' множество областей, получаемых из областей множества Q путем их продолжения в бесконечность в направлении сторон, входящих в Q—Р. Области, входящих в Q', могут быть трапециями, треугольниками, полуплоскостями или бесконечными областями, ограниченными двумя горизонтальными прямыми и частью некоторой стороны многоугольника Р.
Соблазнительно было бы сказать, что области из Р образуют разбиение «внутренности» многоугольника Р, но мы не можем так сказать, так как мы пока не знаем, имеет ли многоугольник Р внутренность. Однако, учитывая, каким образом были получены области из Р, мы знаем, что их можно склеить вместе по горизонтальным сторонам, определяющим пары видимости, таким образом, что получившаяся область будет топологически эквивалентна кругу. Это необходимое, но не достаточное условие для того, чтобы многоугольник Р был простым (рассмотрите в качестве примера многоугольник на рис. 15, с). Алгоритм вычисления пар видимости легко модифицировать так, чтобы он выполнял такое «склеивание», или, более правильно, порождал двойственный граф «склеенной» области, в котором области представляются вершинами, и вершины, соответствующие областям, разделяемым горизонтальной стороной, определяющей пару видимости, соединяются ребром.
Вследствие успешности завершения алгоритма вычисления пар видимости также известно, что области, входящие в Q, могут быть склеены друг с другом по горизонтальным отрезкам, определяющим пары видимости. Получаемая в результате
такого склеивания область топологически эквивалентна кругу. Эта операция склеивания может быть естественным образом расширена на области, входящие в Q; при этом получается область, топологически эквивалентная плоскости с выколото?! точкой. Теперь мы используем области, входящие в Р и Q', для построения отображения плоскости на себя.
Пусть С — окружность в плоскости, на которой выбраны п различных точек, соответствующих вершинам многоугольника Р. Это позволяет естественным образом установить соответствие между точками границы многоугольника дР и точками окружности С. Для; каждой ВС- или СС-пары видимости в Р, порождаемой алгоритмом вычисления пар видимости, соединим соответствующие точки некоторой кривой, лежащей внутри окружности С. Кривые будем проводить таким образом, чтобы они нигде не пересекались, за исключением концевых точек. (Двойственный граф областей, входящих в Р, дает естественный и конструктивный способ реализации этой операции. Обрабатывая вершину двойственного графа, степень которой равна единице, мы должны провести кривую между двумя точками, лежащими на С. Эта кривая разбивает круг на две части, одна из которых может быть исключена из рассмотрения на последующих этапах построения отображения. Таким образом, полное построение требуемой совокупности кривых может быть осуществлено в результате последовательной обработки с удалением вершин двойственного графа, имеющих степень, равную единице, выполняемой до тех пор, пока двойственный граф не станет пустым.) Эти кривые разбивают область, лежащую внутри окружности С, на области, соответствующие областям Р. Аналогичным образом для каждой пары видимости, связанной с Q', проведем кривую, соединяющую две точки окружности С и лежащую вне С. Если один из элементов пары видимости находится в бесконечности, то соответствующая это?! паре кривая, начинаясь на С, уходит в бесконечность. При этом кривые вне С будем проводить таким образом, чтобы не было пересечений. Эти кривые разбивают область вне окружности С на области, соответствующие области из Q' (рис. 17).
Можно построить непрерывное отображение h плоскости на себя, которое отображает каждую область внутри С на соответствующую область из Р и каждую область, лежащую вне С, на соответствующую область из Q'. Отображение является отображением на, так как каждая точка плоскости принадлежит одной из областей, входящих в Р или Q'. Действительно, пусть х — произвольная точка. Будем двигаться из точки х вправо в горизонтальном направлении до тех пор, пока не достигнем границы многоугольника дР. Если мы достигли дР изнутри, то
Рис. 17. Иллюстрация к построению отображения h в доказательстве теоремы 3. Для 0 ^ i ^ 5 имеет место h^u^ = гч. Пунктирные кривые на верхнем рисунке соответствуют ВС-парам видимости, показанным на нижнем рисунке. Стрелки на конце пунктирных линии означают, что эти линии уходят на бесконечность.
точка х принадлежит некоторой области из Р. В противном случае точка х принадлежит некоторой области из Q'. Если, двигаясь таким образом, мы не достигнем дР, то х принадлежит некоторой области из Q'.
Так как множества Р и Q' конечны и прообразы различных областей имеют непересекающиеся внутренности, то отображение h является накрывающим отображением плоскости на себя: каждая точка плоскости х имеет открытую окрестность N, такую что h-x (N) является непересекающимся объединением конечного числа открытых множеств [21]. Более того, так как область определения отображения h связна, то каждая точка
Рис. 18. Возможные варианты взаимного расположения пересекающихся граничных сегментов: (а) четыре точки лежат на одной ограничивающей прямой; (6) три точки лежат на одной ограничивающей прямой, а четвертая на другой; (с) по две точки на каждой ограничивающей прямой. Варианты ^d), (е) и (f) представляют вырожденные случаи конфигураций вариантов (а), (Ь) и (с) соответственно. Многоугольник, показанный на рис. 15,6, представляет вырожденный случай варианта (f). Вырожденные случаи могут быть обнаружены в результате анализа внутреннего угла в точке (или в точках) вырождения.
в области значений h является образом (при отображении Л) одного и того же числа точек из области значений [21, примеры 8—3.5]. Учитывая, что каждая точка, принадлежащая открытой полуплоскости, лежащей выше горизонтальной прямой, проходящей через вершину многоугольника Р с наибольшей zy-координатой, является образом (при отображении h) лишь одной точки, то отображение h является взаимно однозначным соответствием. Таким образом, h является гомеоморфизмом плоскости на себя. Тем самым доказано, что дР гомео- морфна окружности С и, следовательно, многоугольник Р— простой. ■
Если алгоритм проверки на простоту обнаруживает, что многоугольник Р не является простым, то конкретное подтверждение этого можно получить, затратив дополнительное время O^nY Если имеет место случай (1), то мы непосредственно получаем точку самопересечения границы многоугольника. В других случаях ((2) и (3)) мы можем найти одну или две ограничивающие прямые и два граничных сегмента Si и $2 с концами
на этих ограничивающих прямых, которые заведомо пересекаются. При этом возможна одна из семи конфигураций взаимного расположения сегментов. Эти конфигурации показаны на рис. 18 и 15, Ь. Для непосредственного выявления точки пересечения сегментов применим, возможно многократно, следующую последовательность действий.
Шаг 1. Выберем некоторую вершину, лежащую на одном из сегментов Si и S2, //-координата которой не является ни минимальной, ни максимальной. Пусть L — горизонтальная прямая, проходящая через эту вершину.
Шаг 2. Найти все точки пересечения сегментов Si и S2 с прямой L в том порядке, в каком они расположены вдоль Si, а затем вдоль S2.
Шаг 3. Применим алгоритм жордановой сортировки к полученным точкам пересечения. В результате либо будет явно определена точка самопересечения, либо будет обнаружено нарушение свойства непересекаемости. Если обнаружено нарушение свойства непересекаемости, то обозначим через S[ и S' пересекающиеся подсегменты. Заменим St и S2 на S' и S'. Если и S', и S' состоят лишь из одной усеченной стороны каждый, то выдать точку пересечения этих сторон.
Анализ, аналогичный проведенному в разд. 3—5, показывает, что такая постобработка требует времени О^п), если для представления сегментов используются деревья поиска с указателями. (При этом не требуется выполнять конкатенацию деревьев и производить сбалансированное разбиение.)
Алгоритмы проверки многоугольника на простоту и получение фактов, подтверждающих непростоту многоугольника, легко могут быть расширены для обработки связных незамкнутых ломаных. В качестве первого шага такого расширения проведем через концы ломаной прямую. Эта прямая разбивает ломаную на граничные сегменты, целиком лежащие по одну сторону от прямой. Выполним жорданову сортировку точек пересечения ломаной с прямой. Если алгоритм жордановой сортировки обнаружит нарушение. свойства непересекаемости, то алгоритм поиска пересечения может быть применен непосредственно к двум обрабатываемым сегментам. В противном случае дальнейшую обработку будем производить аналогично шагу 4 алгоритма вычисления пар видимости (см. разд. 3), дополнив его таким образом, чтобы можно было учесть ситуации с противоположно направленными граничными сегментами (рис. 14). В результате мы построим многоугольники, целиком лежащие по одну сторону от прямой. Исходная ломаная является простой тогда и
только тогда, когда каждый из этих многоугольников является простым.
Алгоритмы вычисления информации о горизонтальной видимости, проверки на простоту и получения фактов, подтверждающих непростоту, могут быть расширены для обработки кривых, удовлетворяющих некоторым довольно слабым ограничениям (см., например, [22, 24]). Для этого нужно выполнить предобработку исходной кривой, разбив ее на части, каждая из которых представляет монотонную по //-координате кривую. Точки разбиения будут играть роль вершин ломаной, а дуги кривой между последовательными точками разбиения — роль сторон. К представленной таким образом кривой можно непосредственно применять указанные алгоритмы при условии, что имеются процедуры вычисления точек пересечения кривой с прямой. Корректность такого подхода вытекает из того факта, что если некоторая совокупность «сторон» кривой пересекает две горизонтальные прямые, то порядок пересечения обеих прямых «сторонами» кривой одинаков1). При применении алгоритма проверки на простоту нужно расширить его следующим образом: необходимо для каждой тривиальной области видимости проверять, не пересекаются ли ее левая и правая границы. Если все получаемые области обладают этим свойством, то исходная кривая является простой, иначе мы непосредственно получаем подтверждение ее непростоты. И предварительная обработка кривой, и постобработка получаемых областей видимости могут быть выполнены за время О (/г).
Ряд проблем, связанных с триангуляцией, по-прежнему остается открытым. Первая и, конечно, самая важная из них касается сложности задачи триангуляции: возможно ли разработать алгоритм триангуляции простого многоугольника с временной сложностью О (п) или хотя бы алгоритм со сложностью о (/г log log zz)? Для решения этой проблемы, по-видимому, требуется новая идея. Один из возможных подходов заключается в разработке структуры данных для представления ломаной, позволяющей быстро вычислять точки пересечения ломаной с произвольным горизонтальным отрезком или хотя бы с произвольным горизонтальным лучом. Возможно, такую структуру данных можно построить, используя информацию, получаемую алгоритмом вычисления пар видимости, применяемым рекурсивно к небольшим участкам границы, имеющим размер, скажем, О (log/г). Результатом такого подхода мог бы стать алгоритм вычисления пар видимости с временной сложностью О (zi log* п). Другая открытая проблема касается сложности
^ При условии, что кривая является простой. — Прим, перев.
определения всех точек самопересечения ломаной: можно ли для этой задачи получить лучшие оценки по сравнению с оценками для задачи поиска всех пересечений произвольной совокупности отрезков [4, 32*, 33*]?
Приложение. Деревья поиска с указателями. Дерево поиска с указателями — это разновидность сбалансированного дерева поиска, в котором с целью повышения эффективности доступа к элементам, находящимся в окрестности некоторых выделенных элементов, используются специальные указатели. Деревья поиска с указателями впервые ввели Гибас, Маккрейт, Плэс и Робертс [12], а затем они получили дальнейшее развитие в работах других исследователей [2, 15, 18, 28, 29]. Мы рассмотрим два вида деревьев поиска с указателями, обладающие несколько различными свойствами: неоднородные и однородные деревья. Наше обсуждение основано на использовании сбалансированного дерева специального вида, называемого красно-черным деревом [20, 25], хотя с таким же успехом можно было бы использовать другие разновидности сбалансированных деревьев, например а, 6-деревья [16, 19]. Нас будет интересовать главным образом оценка приведенной сложности, связанной с использованием таких деревьев, а не оценки сложности в худшем случае.
Здесь мы будем подразумевать под двоичным деревом поиска полное двоичное дерево, в котором каждая внешняя вершина содержит элемент, выбранный из некоторого полностью упорядоченного универсума, причем порядок следования внешних вершин согласуется с общей упорядоченностью этого универсума. Каждая внутренняя вершина дерева содержит ключ, который также является элементом универсума. Ключ не меньше любого элемента в левом поддереве соответствующей вершины и меньше любого элемента в правом поддереве. Ключи можно использовать для поиска наибольшего элемента в дереве, не превосходящего заданного элемента. Поиск начинается с корня дерева и продолжается в левом поддереве, если ключ в текущей вершине больше или равен заданному элементу, в противном случае поиск продолжается в правом поддереве. Поиск продолжается до тех пор, пока не будет достигнута какая-либо внешняя вершина дерева. Искомым элементом является либо элемент в первой достигнутой внешней вершине, либо элемент, содержащийся в предыдущей внешней вершине, которую можно найти, если вернуться назад по пути, пройденному при поиске, до внутренней вершины, в которой для поиска было выбрано правое поддерево, в этой точке выбрать левое и снова двигаться вниз до внешней вершины, каждый раз выбирая
правую ветвь. Время поиска элемента пропорционально глубине дерева.
Рис. 19. Красно-черное дерево. Закрашенные вершины имеют черный цвет, а незакрашенные — красный. (На рисунке показаны лишь цвета вершин.)Рис. 19. Красно-черное дерево. Закрашенные вершины имеют черный цвет, а незакрашенные — красный. (На рисунке показаны лишь цвета вершин.)Красно-черное дерево — это двоичное дерево поиска, все вершины которого раскрашены в два цвета: красный и черный. Цвета вершин удовлетворяют следующим условиям (рис. 19): (1) все внешние вершины являются черными;
Рис. 19. Красно-черное дерево. Закрашенные вершины имеют черный цвет, а незакрашенные — красный. (На рисунке показаны лишь цвета вершин.)
Рис. 19. Красно-черное дерево. Закрашенные вершины имеют черный цвет, а незакрашенные — красный. (На рисунке показаны лишь цвета вершин.)
все пути из корня в любую внешнюю вершину содержат одинаковое число черных вершин;
родительская вершина (если она существует) любой красной вершины является черной вершиной.
элемент, меньший вставляемого.элемент, меньший вставляемого.Глубина красно-черного дерева, содержащего п элементов, равна O(logzz). Чтобы вставить новый элемент в красно-черное дерево, мы сначала ищем в нем наибольший Достигнув в процессе поиска
элемент, меньший вставляемого.
элемент, меньший вставляемого.
внешней вершины, мы заменяем ее внутренней вершиной, имеющей двух сыновей (потомков): старую внешнюю вершину и новую внешнюю вершину, содержащую вставляемый элемент. Новая внутренняя вершина содержит в качестве ключа наименьший из двух элементов, содержащихся в вершинах-сыновьях этой вершины. Эта новая внутренная вершина окрашивается в красный цвет. Это может привести к нарушению условия (3), которое должно выполняться для красных вершин. Чтобы это условие вновь выполнялось, применим следующую процедуру перекраски вершин. Двигаясь снизу вверх по пути, пройденному при поиске, изменяем цвета вершин по правилам, показанным на рис. 20, а. Если эти преобразования больше неприменимы, то в случае необходимости один раз выполняется одно из преобразований, представленных на рис. 20, 6, с, d.
Исключение элемента производится аналогичным образом. При удалении элемента сначала ищется внешняя вершина, содержащая этот элемент. Затем вершина-родитель этой вершины заменяется братом удаляемой вершины. Это может привести к нарушению условия (2) для черных вершин, а именно может появиться так называемая короткая вершина, определяемая тем, что все пути, проходящие через нее к внешним вершинам, содержат на одну черную вершину меньше, чем пути, проходящие через ее брата. Чтобы условие (2) вновь выполнялось, при-
меним следующую процедуру перекраски вершин. Двигаясь снизу вверх по пути, пройденному при поиске, повторно применяем (до тех пор, пока это возможно) преобразование, показанное на рис. 21, а. После этого, если требуется, применяем один раз преобразование, показанное на рис. 21, Ь, а затем,
Рис. 20. Преобразования, применяемые для балансировки красно-черного дерева после операции вставки вершины. Симметричные случаи опущены. Все неизвестные сыновья красРис. 20. Преобразования, применяемые для балансировки красно-черного дерева после операции вставки вершины. Симметричные случаи опущены. Все неизвестные сыновья красРис. 21. Преобразования, применяемые для балансировки красно-черного дерева после операции удаления вершины. В случае (d) две вершины, закрашенные наполовину, имеют одинаковый цвет. То же самое имеет место и в случае (е). Знаком минус отмечены короткие вершины. В случае (я) верхняя вершина после применения преобразования является короткой, если только она не является корнем.Рис. 21. Преобразования, применяемые для балансировки красно-черного дерева после операции удаления вершины. В случае (d) две вершины, закрашенные наполовину, имеют одинаковый цвет. То же самое имеет место и в случае (е). Знаком минус отмечены короткие вершины. В случае (я) верхняя вершина после применения преобразования является короткой, если только она не является корнем.
Рис. 20. Преобразования, применяемые для балансировки красно-черного дерева после операции вставки вершины. Симметричные случаи опущены. Все неизвестные сыновья крас
Рис. 20. Преобразования, применяемые для балансировки красно-черного дерева после операции вставки вершины. Симметричные случаи опущены. Все неизвестные сыновья крас
Рис. 21. Преобразования, применяемые для балансировки красно-черного дерева после операции удаления вершины. В случае (d) две вершины, закрашенные наполовину, имеют одинаковый цвет. То же самое имеет место и в случае (е). Знаком минус отмечены короткие вершины. В случае (я) верхняя вершина после применения преобразования является короткой, если только она не является корнем.
Рис. 21. Преобразования, применяемые для балансировки красно-черного дерева после операции удаления вершины. В случае (d) две вершины, закрашенные наполовину, имеют одинаковый цвет. То же самое имеет место и в случае (е). Знаком минус отмечены короткие вершины. В случае (я) верхняя вершина после применения преобразования является короткой, если только она не является корнем.
ных вершин имеют черный цвет. В случаях (с) и (d) самая нижняя из показанных черная вершина может быть внешней.
возможно, один раз одно из преобразований, показанных на рис. 21, а, с, d или е.
Для выполнения операций вставки и удаления, выполняемых над красно-черным деревом, сдержащим п элементов, в худшем случае требуется время O(logzz). Но время, затрачиваемое непосредственно на вставку и удаление элемента, без учета времени на поиск места (вершины), где производится операция вставки или удаления, равно 0(1). (Это переформулировка результата, полученного Хадлестоном и Мелхорном [16] и Майером и Салветером [19] для а, 6-деревьев.) Для доказа-
тельства этого нам потребуется ряд понятий. Потенциал красночерного дерева определяется как число черных вершин, имеющих двух черных сыновей, плюс удвоенное число черных вершин с двумя красными сыновьями. Фактическое бремя операции вставки или удаления определим как увеличенное на единицу число примененных локальных преобразований, а приведенное время — как фактическое время плюс увеличение потенциала, обусловленное операцией. С учетом этих определений можно сказать, что если начать с пустого дерева, то полное фактическое время для последовательности операций вставки и удаления не превышает сумму приведенных времен для каждой из операций, так как потенциал пустого дерева равен нулю и потенциал дерева не может быть отрицательным. Кроме того, приведенное время операции вставки или удаления равно 0(1), так как любое из преобразований, представленных на рис. 20 и 21, увеличивает потенциал на 0(1), а каждое из преобразований, показанных на рис. 20, а и 21, а, уменьшает потенциал по крайней мере на единицу.
В обычном двоичном дереве поиска каждая вершина содержит указатели на двух своих сыновей. Мы преобразуем такое дерево в неоднородное дерево поиска с указателями, заменив указатели у ряда вершин. У всех вершин левого пути1) указатель на левого сына будет теперь указывать на родителя, а у всех вершин правого пути указатель на правого сына будет указывать на родителя.
Доступ к дереву осуществляется с помощью двух указателей, указывающих на самую левую и самую правую внешние вершины дерева (рис. 22).
В неоднородном дереве поиска, содержащем п элементов, элемент, отстоящий на d позиций от одного из концов, может быть найден за время 0(1 + log(min{d, п — ^} + 1)) в результате выполняемых параллельно просмотра снизу вверх левого и правого путей до тех пор, пока не будет найдено одно или два поддерева, гарантированно содержащие требуемый элемент, с последующим поиском сверху вниз в найденных поддеревьях. Кроме того, за приведенное время 0(1 + log (min {d, п — d^ + 1) можно вставить или удалить элемент, отстоящий на d позиций от одного из концов. Поиск элемента можно также осуществлять по занимаемой им позиции или по вторичному порядку. Чтобы приспособить дерево для поиска по позиции, в каждой
!) В двоичном дереве левый путь определяется как путь, ведущий из корня в некоторую внешнюю вершину, при этом на каждом уровне путь идет по ссылке на левого сына. Правый путь определяется симметричным образом.
внутренней вершине дерева запоминается число достижимых из нее внешних вершин (т. е. внешних вершин, в которые можно попасть из данной вершины, пройдя некоторый путь по указателям). Чтобы приспособить дерево для поиска по вторичному порядку, предположим, что каждый элемент имеет некоторое связанное с ним вторичное значение. В каждой внутренней вершине дерева запоминается минимальное и максимальное вторичные значения элементов, достижимых из этой вершины по
Рис. 22. Неоднородное красно-черное дерево поиска с указателями. Цвета вершин на рисунке не показаны. Элементами являются буквы от а до f. Числа, указанные во внешних вершинах, представляют вторичные значения. Числа, указанные во внутренних вершинах, представляют минимальное и максимальное вторичные значения вершин, достижимых из соответствующей вершины. Числа, указанные рядом с вершинами, представляют число достижимых внешних вершин.
путям указателей (рис. 22). Просматривая снизу вверх левый и правый пути дерева, а затем сверху соответствующие поддеревья (или одно поддерево) за время 0(1 + log (min {d, п— — d} + 1)), можно выполнить следующие операции поиска:
Найти в дереве элемент, находящийся в позиции с номером d;
Найти самый левый (или самый правый) элемент, вторичное значение которого не меньше (не больше) заданного значения, если найденный элемент находится в позиции d.
Вспомогательная информация о позиции и вторичном значении должна соответствующим образом изменяться при выполнении операций вставки или удаления элементов. Эти изменения можно сделать, просматривая в обратном порядке путь поиска, т. е. двигаясь снизу вверх внутри дерева и сверху вниз по его левому или правому пути. Приведенное время, необходимое для вставки или удаления элемента с номером d, включая время поиска, составляет 0(1 + log (min {d, п — d}4-l)).
Теперь нам хочется расширить диапазон операций, связанных с изменением дерева, и включить в него операции конкатенации и расщепления деревьев. Мы рассмотрим лишь, как эти операции изменяют структуру дерева; довольно легко можно проверить, что указатели, ключи и вспомогательная информация о позиции и вторичном значении могут быть изменены надлежащим образом за время, удовлетворяющее приведенным выше оценкам. Определим ранг вершины красно-черного дерева как число черных внутренних вершин на любом пути, идущем из этой вершины в некоторую внешнюю вершину. Ранг внешней вершины равен нулю. Ранг вершины можно вычислить за время, пропорциональное рангу вершины, двигаясь вниз в соответствующем поддереве.
Операцию конкатенации деревьев описать проще, чем расщепление. Предположим, что нужно объединить два дерева Тх и Т2 в одно дерево. При этом предполагается, что все элементы в дереве Т\ меньше любого элемента в дереве Т2. Пусть хх и х2— корневые вершины деревьев 7*1 и Т2 соответственно, гх и г2— ранги этих вершин. Будем считать, что п ^ г2. (Случай r2 ^ П рассматривается аналогичным образом.) Чтобы выполнить конкатенацию Л и Т2, будем просматривать снизу вверх левый путь дерева Т2 до тех пор, пока не будет найдена вершина (которую обозначим у), ранг которой равен гх. Заменим вершину у в Т2 новой красной вершиной, левым сыном которой является вершина Xi, а правым сыном — вершина у. При нарушении условия (3) для красных вершин коррекция цветов вершин производится так же, как это делалось при вставке вершины. Приведенное время выполнения операций конкатенации равно 0(1 + пмп{гь ^2}). Если изменить определение потенциала дерева, определив его как сумму ранга корня дерева и числа черных вершин, не имеющих черных сыновей, то приведенное время операции конкатенации составит 0(1). Приведенное время операций вставки или удаления элемента в позицииd при общем числе элементов п останется по-прежнему равным О (1 + log (min ^d, п — d^ + 1)).
Пусть нам нужно расщепить дерево Г, содержащее п элементов, разделив его на два дерева: Т^ содержащее d первых элементов, и Т2, содержащее п— d последних элементов. Прежде всего найдем элемент с номером d. Затем будем подниматься вверх по пути поиска до тех пор, пока не достигнем некоторой вершины х, лежащей либо на левом, либо на правом пути. При продвижении по пути поиска будем удалять все лежащие на нем вершины, за исключением внешней вершины, содержащей элемент с номером d. Предположим, что вершина х принадлежит левому пути дерева. Произведем конкатенацию деревьев,
лежащих слева от пути поиска, включая дерево, состоящее из единственной вершины, содержащей элемент с номером d. Конкатенация деревьев производится в порядке справа налево. Дерево, получившееся в результате конкатенации, является искомым деревом Т\. Выполним конкатенацию деревьев, лежащих справа от пути поиска, корни которых являются потомками вершины х. Результат конкатенации обозначим Т2. Если вершина х не имеет родителя (предка), то дерево?' является искомым деревом Т2- В противном случае остается еще другое дерево Т", содержащее вершину у, являющуюся родителем вершины х. В дереве Т2 недостает вершины, так вершина х была удалена. Мы заменяем вершину у ее правым сыном, и если при этом появляется короткая вершина, нарушающая условие (2), то выполняется процедура перекраски вершин (так же, как это делалось при удалении вершин). После этого, выполнив конкатенацию деревьев 7' и Г", получаем необходимое дерево Т2. Тщательный анализ (см., например, [20]) показывает, что приведенное время операции расщепления дерева составляет 0(1 + log(min{d, п — й} + 1)), как при старом, так и при новом определении потенциала дерева.
Неоднородные деревья поиска с указателями используются в алгоритме вычисления пар видимости для представления частей границ областей. Термин «неоднородный» указывает на тот факт, что указатели структуры обеспечивают особо эффективный доступ к некоторым частям структуры, а именно к двум ее концам. В противоположность этому однородные деревья поиска с указателями обеспечивают быстрый доступ в окрестность любого элемента. Однородное дерево поиска с указателями получается из красно-черного дерева путем добавления новых указателей. А именно, каждая вершина содержит указатели на двух своих сыновей и на родительскую вершину. Кроме того, каждая черная вершина имеет указатели на своего левого и правого соседей — черные вершины, имеющие тот же самый ранг, одна из которых предшествует данной вершине, а другая следует за ней при симметричном упорядочении (рис. 23). Эти дополнительные указатели называются ссылками по уровню.
Ссылки по уровню обеспечивают поиск заданного элемента за время 0(1 + log{min(d, п — d} + 1)) при начале поиска с произвольного элемента. В этом случае d— это число элементов между искомым элементом и элементом, с которого начинается поиск. Поиск ведется вверх по указателям на родительские вершины и по ссылкам по уровню до тех пор, пока не будет найдено одно или два поддерева, содержащее требуемый
элемент. Затем поиск продолжается сверху вниз обычным образом. Одновременно с поиском из заданной начальной вершины выполняется поиск еще из двух вершин — из вершин, содержащих первый и последний элемент в списке. Все три процесса поиска завершаются при первом обнаружении искомого элемента (или как только становится известным, что он не содержится в дереве).
Однородные деревья поиска с указателями обеспечивают быстрый поиск лишь в случае, когда поиск ведется на основе
Рис. 23. Организация указателей в однородном красно-черном дереве поиска с указателями.
полного порядка на множестве элементов и не дает никаких преимуществ при поиске элемента по номеру позиции или при поиске на основе порядка, заданного на множестве вторичных значений. С другой стороны, дополнительное время, необходимое для изменения ссылок по уровню при выполнении операций над деревом, составляет лишь 0(1) на одно локальное преобразование дерева (типа показанных на рис. 19 и 20), и оценки приведенного времени для операций вставки, удаления, конкатенации и расщепления одни и те же для однородных и неоднородных деревьев. Более того, однородные деревья позволяют выполнить более «масштабную» операцию расщепления, так называемое тройное расщепление. Суть этой операции состоит в следующем. В дереве Т заданы два элемента х и у. Требуется удалить из Т подсписок элементов, начиная с х и кончая у (включительно), получив в результате два дерева. Первое дерево представляет удаленный подсписок, а второе — остальные элементы. Приведенное время выполнения операции тройного расщепления равно 0(1 + log min {d, п— d} + 1)), где d — число элементов в удаляемом подсписке. Более подробное обсуждение
вопроса о реализации операции тройного расщепления за указанное время можно найти в работе [14].
Благодарности. Мы благодарны Бренде Бекер за ее многочисленные замечания к предварительному варианту этой статьи и Бернарду Чазелле, с большой тщательностью прочитавшему окончательный вариант статьи.
ЛИТЕРАТУРА
в. К. Bhattacharya and G. Т. Toussaint, A linear algorithm for delermin- ing the translation separability of two simple polygons, Technical report SOCS 861, School of Computer Science, McGill University, Montreal, Canada, 1986.
M. R. Brown and R. E. Tarjan, Desing and analysis of a data structure for representing sorted lists, SIAM Journal on Computing, 9 (1980), pp. 594—614.
B. Chazelle, A theorem on polygon cutting with applications, Proc. 23rd Annual Symp. on Found, of Comput. Sci., 1982, pp. 339—349.
B. Chazelle, Intersecting is easier than sorting, Proc. Sixteenth Annual ACM Symp. on Theory of Comput., 1984, pp. 125—134.
B. Chazelle and J. Inperpi, Triangulation and shape complexity, ACM Trans, on Graphics, 3 (1984), pp. 135—152.
W. P. Chin and S. Ntafos, Optimum watchman routes, Proc. Second Annual Symp. on Computational Geometry, 1986, pp. 24—33.
D. P. Dobkin, D. L. Souvaine and C. J. Van Wyk, Decomposition and intersection of simple splinegons, Algorithmica, to appear.
H. Edelsbrunner, L. J. Guibas and J. Stolfi, Optimal point location in a monotone subdivision, SIAM Journal on Computing, 15 (1986), pp. 317—340.
A. Fournier and D. Y. Montuno, Triangulating simple polygons and equivalent problems, ACM Trans, on Graphics, 3 (1984), pp. 153—174.
M. R. Garey, D. S. Johnson, F. P. Preparata and R. E. Tarjan, Triangulating a simple polygon, Inform. Process. Lett., 7 (1978), pp. 175—180.
L. Guibas, J. Hershberger, D. Leven, M. Sharir and R. E. Tarjan, Linear time algorithms for visibility and shortest path problems inside triangulated simple polygons, Algorithmica, to appear.
L. J. Guibas, E. M. McCreight, M. F. Plass and J. R. Roberts, A new representation for linear lists, Proc. Ninth Annual ACM Symp. on Theory of Comput., 1977, pp. 49—60.
S. Hertel and K. Mehlhorn, Fast triangulation of a simple polygon, Proc. Conf. Found, of Comput. Theory, New York, Springer-Verlag, Berlin, 1983, pp. 207—218.
K. Hoffman, K. Mehlhorn, P. Rosenstiehl and R. Tarjan, Sorting Jordan sequences in linear time using level-linked search trees, Inform, and Control, 68 (1986), pp. 170—184.
S. Huddleston, An efficient scheme for fast local updates in linear lists, Dept, on Information and Computer Science, University of California, Irvine, CA, 1981.
S. Huddleston and K. Mehlhorn, A new data structure for representing sorted lists, Acta Inform., 17 (1982), pp. 157—184.
J. M. Keil, Decomposing a polygon into simpler components, SIAM Journal on Computing, 14 (1985), pp. 799—817.
S. R. Kosaraju, Localized search in sorted lists, Proc. Thirteenth Annual ACM Symp. on Theory of Comput., 1981, pp. 62—69.
D Maier and C. Salveter, Hysterical В-trees, Inform. Process. Lett., 12 (1981), pp. 199—202.
K. Mehlhorn, Data Structures and Efficient Algorithms, Volute 1: Sorting and Searching, Springer-Verlag, Berlin, 1984.
J. R, Munkres, Topology: A First Course, Prentice-Hall, Englewood Cliffs, NJ, 1975.
A. A. Schaffer and C. J. Van Wyk, Convex hulls of piecewise smooth Jordan curves, J. Algorithms, 8 (1987), pp. 66—94.
D. D. Sleator and R. E. Tarjan, Self-adjusting binary search trees^ J. Assoc. Comput. Mach., 32 (1985), pp. 652—686.
D. L. Souvaine, Computational Geometry in a Curved World, Ph. D. dissertation, Department of Computer Science, Princeton University, 1986.
R. E. Tarjan, Data Structures and Network Algorithms, Society for Industrial and Applied Mathematics, Philadelphia, PA, 1983.
R. E. Tarjan, Amortized computational complexity, SIAM J. Algebraic and Discrete Methods, 6 (1985), pp. 306—318.
R. E. Tarjan and C. J. Van Wyk, A lineal-time algorithm for triangulating simplev polygons, Proc. Eighteenth Annual ACM Symp. on Theory of Comput., 1986, pp. 380—388.
A. K. Tsakalidis, AVL-trees for localized search, Automata, Languages, and Programming, 11th Colloquium, J. Paredaens, ed., Lecture Notes in Computer Science 172, Springer-Verlag, Berlin, 1984, pp. 473—485.
A. K. Tsakalidis, An optimal implementation for localized search, A84/06 Fachbereich Angewandte Mathematik und Informatik, Universitat des Saarlandes, Saarbriicken, West Germany, 1984.
C. J. Van Wyk, Clipping to the boundary of a circular — arc polygon. Computer Vision, Graphics, and Image Processing, 25 (1984), pp. 383— 392.
T. C. Woo and S. Y. Shin, A linear time algorithm for triangulating a point — visible polygon, ACM Trans, on Graphics, 4 (1985), pp. 60—69. [32*] Д. Ли, Ф. Препарата, Вычислительная геометрия. Обзор. — Кибернетический сборник, вып. 24. — М.: Мир. 1987, с. 5—96.
] Ф. Препарата, М. Шеймос, Вычислительная геометрия. Введение.—М.: Мир, 1989.
ДОПОЛНЕНИЕ ПЕРЕВОДЧИКА
Хотя в название статьи авторы вынесли тему триангуляции простого многоугольника, в самой статье они лишь ограничились ссылкой на работы, содержащие описание сведения задачи триангуляции к задаче вычисления пар видимости. Несмотря на относительную простоту этого сведения, здесь мы ради полноты изложения дадим набросок алгоритма, позволяющего за линейное время выполнить триангуляцию простого многоугольника, основываясь на информации, полученной в результате выполнения алгоритма вычисления пар видимости.
Алгоритм использует тот факт, что триангуляцию простого монотонного многоугольника можно выполнить за линейное время [32, 33]. Простой многоугольник называется монотонным, если существует такая прямая L, что граница Р может быть разбита
на две ломаные таким образом, что для каждой из них порядок проекций вершин ломаной на L (при проектировании в направлении, перпендикулярном к прямой Л) совпадает с порядком вершин вдоль ломаной. Идея алгоритма состоит в разбиении исходного многоугольника на совокупность монотонных подмногоугольников с последующей триангуляцией последних. Разбиение производится путем проведения ряда диагоналей в исходном многоугольнике.
Результатом применения алгоритма вычисления пар видимости, представленного в статье, является разбиение многоугольника на некоторое множество трапеций, верхнее и нижнее основания которых параллельны оси Ох. Получившиеся трапеции
abedеf
Рис. 1.
делятся на два класса (рис. 1). К первому классу относятся трапеции, у которых обе определяющие их вершины являются смежными в исходном многоугольнике (рис. 1а, 16). Все остальные трапеции относятся ко второму классу (рис. 1с—If). В каждой трапеции второго класса проведем отрезок, соединяющий вершины, определяющие эту трапецию. Каждый такой отрезок является диагональю исходного многоугольника Р. Совокупность этих диагоналей разбивает Р на подмногоугольники.
Довольно легко можно показать, что все полученные таким образом подмногоугольники являются монотонными относительно вертикальной прямой. Более того, в каждом подмногоугольнике одна из монотонных ломаных, на которые в силу монотонности подмногоугольника разбивается его граница, состоит из единственного отрезка (рис. 2).
Рассмотрим триангуляцию подмногоугольника типа показанного на рис. 2а. Триангуляция осуществляется в процессе обхода с возвратом границы подмногоугольника в направлении по часовой стрелке. Обход начинается с вершины, следующей за вершиной с максимальной ^-координатой. Будем продвигаться по границе до тех пор, пока не достигнем вершины Vi внутренний
угол которой меньше 180°. Такая вершина, как легко можно убедиться, всегда существует. Соединим диагональю вершины К-1 и К+ь получив очередной треугольник триангуляции Vt-x УгУг+ь Исключим вершину Vi из границы и продолжим движение по скорректированной границе с вершины К-i (возврат на один шаг), если Vi-\ ^ Vo, и с вершины Vr+i в противном
случае. Эта процедура продолжается до тех пор, пока в границе не останутся лишь две вершины.
Легко видеть, что при триангуляции подмногоугольника число возвратов равно О (п), так как возврат осуществляется лишь при удалении вершины, а число шагов в прямом направлении также составляет О (п). Таким образом, триангуляция подмногоугольника выполняется за линейное время.
Триангуляция подмногоугольника, показанного на рис. 26, производится аналогично с той лишь разницей, что обход начинается с вершины, следующей за вершиной с минимальной //-координатой.
Реализация описанной выше схемы позволяет получить алгоритм, выполняющий триангуляцию простого многоугольника с использованием информации, полученной в результате применения алгоритма вычисления пар видимости, за время О(п). Это с учетом оценки сложности алгоритма вычисления пар видимости и дает суммарную оценку О (/г log log п) сложности алгоритма триангуляции простого многоугольника.
М. М. Комаров
Отрицание малоэффективно длябулевых слой-функций^
Л. Дж. Валъянт)
Резюме. Показано, что для любой слой-функции от п переменных сложность монотонной схемы не превосходит суммы удвоенной сложности схемы в полном базисе и аддитивного члена порядка О (л (log п)2).
ВВЕДЕНИЕ
Вопрос о том, какую экономию дает полный базис {&. V, 1} по сравнению с монотонным базисом {&, V}, долгое время оставался нерешенной проблемой теории сложности булевых схем. В 1981 г. С. Берковиц [3] сделал замечательное наблюдение, показывающее, что при подходящей формулировке эта проблема имеет простое решение. Для произвольной булевой функции f(xi, ..., хл) он ввел к-ю слой-функцию для функции f как функцию, равную:
f (xb ..., хп^ если ровно к переменных равны 1,
0, если меньше чем к переменных равны 1,
1, если больше чем к переменных равны 1.
Ясно, что для многих целей функцию f можно представлять ее п + 1 слой-функциями. Пусть g^, ..., хп)—любая слой-функция (т. е. она является таковой для некоторого к) и Х^ху, ... ..., хп)—схема в базисе {&, V, 1}, вычисляющая ее. Известно, что схема X может быть преобразована в монотонную схему Х^^хх, хп, 2Ь ..., ZnV содержащую не более чем в 2 раза больше элементов [6], которая будет вычислять g, если вместо каждого Zj подставить Xj. Известно также [1], что существует монотонная схема сложности О (/г log/г) для булевой сортировки и, следовательно, для вычисления любой пороговой функции
*) Valiant L. G. Negation is powerless for Boolean slice functions, SIAM Journal on Computing, v. 15, N 2 (1986), 531—535.
Th^(xi, ..., хпу Здесь Th^ — функция, которая равна 1 тогда и только тогда, когда по крайней мере к переменных равны 1. Вот это неожиданное открытие, справедливость которого читатель может легко проверить:
Лемма Берковица. Если g — к-я слой-функция, то схема Х^хх, ..., хп, 21, ..., гп) будет вычислять g(xx, ..., Хп^ если вместо Zj подставить Th^(xi, ...,х;_х, х^ XnV
Пусть L&, у и L&, у, i — величины сложности минимальных схем в соответствующих базисах.
Следствие 1. Если g—слой-функция, то
U, V (g) < ^U, V, п (g) + о (п2 log п).
Цель данной работы — улучшить аддитивный член до О (/г(log/г)2), показав, каким образом функции, выполняющие роль хх, ..., хп, могут быть одновременно вычислены монотонной схемой указанной сложности.
Определение. Монотонным (k, п)-инвертором называется монотонная схема с входами хх, ..., хп и выходами ух, ..., уп, такая что:
Если ровно к входов равны 1, то у; = X;, 1 ^ / ^ п.
Если больше чем к входов равны 1, то у, = 1, 1 ^ / ^ п. с) Если меньше чем к входов равны 1, то у/ = О, 1 ^ / ^ п.
Теорема. Существует константа а, такая что для любых п и к существует монотонный (k, п)-инвертор, содержащий не более чем a/i(log2/i)2 элементов.
Главный недостаток следствия 1 в том виде, в каком оно сформулировано, состоит в том, что оно слишком слабо по отношению к известным нижним оценкам монотонной сложности, так как эти оценки имеют порядок О (/г2)1), а такой рост подавляется аддитивным членом 9 (/г2 log/г). В противоположность этому наша теорема может быть успешно применена к таким проблемам, как умножение матриц и булева свертка, которые рассматривались в работах [4], [7] — [И], [13], [15]. Например, в случае умножения булевых матриц размера mXm известно, что любая монотонная схема содержит по крайней мере
/п3 элементов, в то время как в полном базисе достаточно О(/п2’81) или даже О(/п2’5) элементов [5], [12], Следствием нашей теоремы является тот факт, что, например, (/п2)-я слой- функция, соответствующая умножению матриц размера m'Xm, может быть вычислена монотонной схемой из О(/п2’81) или даже О(/п2’5) элементов. На интуитивном уровне это сводится к тому, что известные методы доказательства нижних оценок для монотонных схем в равной мере выражают и особенности конкретной постановки задачи, подлежащей вычислению, и свойства модели вычислений, а также самой этой задачи.
Мы сформулируем наше усиленное следствие для систем слой-функций, поскольку это единственный случай, для которого в настоящее время получены нелинейные нижние оценки1).
Определение. Системой слой-функций называется система булевых функций fi(xi, ..., xnV ..., /И^ь . xnY каждая из которых является &-й слой-функцией для одного и того же к.
Следствие 2. Для любой системы F слой-функций от переменных Х\, . . . , Хп
U xv (F) < 2L&, V, i(F) + O kn (log n^Y
Дальнейшие результаты о слой-функциях получены недавно Вегенером [14].
КОНСТРУКЦИЯ
Конструкция основана на монотонной подсхеме, которая упорядочивает совокупность двух предварительно упорядоченных наборов длины m и содержит O(/nlog/n) элементов. Здесь достаточно алгоритма раздельного упорядочения чисел с нечетными и четными номерами, принадлежащего Бэтчеру [2].
Первое упрощение. Заметим, что достаточно построить инвертор, работающий правильно, когда на входах ровно к единиц. По выходам {z/J такой схемы правильные выходы ^у^ могут быть вычислены так:
У*1 = (Vi & ТЬ6 (^Р • • • - *„)) V Th6+1 (хр ..., х„)
для каждого i. Ясно, что все выходы у* будут равны 0, если Th^ = 0, и будут равны 1, если Th^+i = 1. Это добавит только О (/г(log/г)2) элементов к общей сложности, если использовать алгоритм Бэтчера, или О (/г log/г), если использовать алгоритм из [1].
Входы
Рис. 1. Схематический вид конструкции.
Следующее упрощение. Рассмотрим только случай к ^ п/^. Чтобы получить (&,/г)-инвертор для k> п/2, достаточно построить (й, 2п) -инвертор и на половину его входов подать 0. По аналогичной причине мы можем также считать п степенью 2.
Мы построим схему глубины 0((logn)2). Выделим элементы на 2 log2 п уровнях и назовем эти уровни ярусами. Ярусы пронумеруем числами из множества 0| 0 ^ i < log2 п) U {2 log2 п — — /|0 ^ i < log2/г}. Ярусы с номерами I и 21og2/i— i состоят из п/21 блоков, содержащих по 2Z элементов. Каждый блок А охватывает множество span (Д) ^ {хь ..., хп) с индексами переменных r2* + L • • ^2Z + 2Z для некоторого r(0 ^ г < n[2lY Ярус с номером 0 состоит из п одиночных блоков-входов ХЬ ... ..., хп, ярус с номером 21og2 п также состоит из одиночных блоков-выходов у\, ..., уп, причем span({yz}) = {х/}. Дополнение блока А, обозначаемое А, есть объединение всех блоков, отличных от А, лежащих в том же ярусе, что и А.
Согласно сказанному выше, блоки состоят из элементов или из входов. Но, когда входы принимают булевы значения, выходы
элементов тоже принимают булевы значения. Для удобства отождествим блоки с наборами булевых значений, которые они порождают. Каждый такой блок будет упорядочен в порядке возрастания, потому что в конструкции не будет других преобразований, кроме слияния уже упорядоченных блоков. Схематический вид конструкции дан на рис. 1.
Будем обозначать блоки через Д, В, С, ..., а номера их ярусов — через N^A^, N^B), ... . Схему можно описать так:
Если ЩА) = 0 и 5рап(Д) = {%/}, то А — это вход Xj.
Если ^(Д) = i и 1 ^ t < log2^, то А — это упорядоченный блок, полученный слиянием блоков В и С, где N(В) = N(С) = = I— 1 и зрап(Д) = span(B)U span(C).
Если 1^0) = log2/i + К то D — это блок, полученный приписыванием справа к последним к цифрам блока G п^ — к единиц, где N (G) = log2 п —- 1 и span(G) span (В). (Заметим, что G и D имеют размер п/2 и span(G)U span(B) = {хь ...
Если N(D) = 2 log2 п —- i и 0 ^ i < log2 п, то D — это блок, состоящий из средних 21 разрядов упорядоченного блока длины ЗХ2\ полученного слиянием блоков Е и Е, где ^(E) = = 21og2/2—I—1, N^=i и span (Е) = span (В) U span (В).
Если N^D) = 21og2п и D = {у/}, то у/— это выход, соответствующий входу X, (1 /2).
ДОКАЗАТЕЛЬСТВО КОРРЕКТНОСТИ
Очевидно, что первые log2 /2 ярусов образуют схему упорядочения. В частности, если N (.А) = I и 0 ^ i < log2 /2, то Д — упорядоченный блок для зрап(Д). Обозначим через #О(Д) (соответственно через #а(зрап(Д))) число разрядов с цифрой а в А (соответственно в зрап(Д)), где а = 0 или 1. Главную идею конструкции можно выразить так:
Утверждение !). Если N (D) = 2 log2 п — I и 0 ^ г С log2 п, то
#о W = k — 4kx (span (В)).
Заметим, что из справедливости утверждения для яруса с номером 21og2/2 следует и истинность теоремы, так как если В = {у/}, то span(D) — это множество всех входов, отличных от Xj, и, следовательно, уу-= 0 тогда и только тогда, когда Xj = 1.
*) Особо не оговорено, что рассматривается только случай, когда на входы подается ровно к единиц. — Прим, перев.
Доказательство утверждения. Доказательство основано на. индукции по i от log2 п — 1 до i = 0.
Основание индукции, т. е. случай f = log2/i—1, соответствует ярусу с номером log2/i + 1. В силу п. 3) описания конструкции и того, что #i(G) имеем
*до) = #дон№-к\
Поскольку #1(G) = #iSpan(D)) и #„(£>) = п^ — ^(D), #0(D) = = k— Фх (span/)).
Шаг индукции. Пусть утверждение верно для некоторого I (О < i ^ log2/i— 1). Докажем, что тогда оно верно и для I— 1. Рассмотрим упорядоченный блок, полученный в результате слияния Е и F (см. п. 4) описания конструкции). По индуктивному предположению
#0 (£) = & — ^1 (span (£)).
Так как F — упорядоченный блок для span(E), то
#0 (F) = 21 — #j (span
Следовательно,
#0 (£ U Л = 2* + & — #i (span (Ё)) — #! (span (Е)) =
= 21 + ^ — #i (span (Ё)),.
так как span (D) = span (Е) U span (F). Упорядоченный блок, полученный в результате слияния блоков Е и F, состоит из 2Z нулей, следующих за ними еще &— #i(span(5)) нулей и единиц в оставшихся разрядах. Так как всего на входы схемы подается ровно к единиц, то #i (span (5)) ^ к— 2Z и, следовательно, к — #i(E)^2z. Поэтому в средних 2Z разрядах блока, полученного в результате слияния блоков Е и F, ровно к — #i (span(D)) нулей, что и требовалось доказать. ■
ЛИТЕРАТУРА
М. Ajtai, J. Komlos, Е. Szemeredi, An O(nlogn) sorting network, Proc, 15th ACM Symposium on Theory of Computing, 1983, pp. 1—9.
K. Batcher, Sorting networks and their applications, AFIPS Spring Joint Computing Conference, 32, 1968, p. 307—314.
S. J. Berkowitz, Personal communication (1981). Also, On some relationships between monotone and non-monotone circuit complexity, manuscript, University of Toronto, Computer Science Department.
N. Blum, An Q(M3/4) lower bound on the monotone network complexity of M-th degree convolution, Proc. 22nd ACM Symposium on Foundations of Computer Science, 1981, pp. 101—108.
D. Coppersmith and S. Winograd, On the asymptotic complexity of matrix multiplication, Proc. 22nd ACM Symposium on Foundations of Computer Science, 1981, pp. 82—90.
M. J. Fischer, The complexity of negation-limited networks, Lecture Notes in Computer Science 33, Springer-Verlag, Berlin, 1974, pp. 71 — 82.
E. A. Lamagna and J. E. Savage, Combinational complexity of some monotone functions, Proc. 15th IEEE Symposium on Switching and Automata Theory, 1974, pp. 140—144.
K. Mehlhorn and Z. Galil, Monotone switching circuits and Boolean matrix product, Computing, 16 (1976), pp. 99—111.
M. S. Paterson, Complexity of monotone networks for Boolean matrix product, Theoret. Comput. Sci, 1 (1975), pp. 13—20. [Имеется перевод: M. С. Патерсон. Сложность монотонных схем для булева умножения матриц. Кибернетический сборник, № 15 (1978), с. 28—38.]
N. J. Pippenger and L. G. Valiant, Shifting graphs and their applications, J. Assoc. Comput. Mach., (1976), pp. 423—433.
V. R. Pratt, The power of negative thinking in multiplying Boolean matrices, this Journal, 4 (1975), pp. 326—330.
V. Strassen, Gaussian elimination is not optimal, Numer. Math., 13 (1969), pp. 354—356. [Имеется перевод: В. Штрассен, Исключение по Гауссу не оптимально, Математика, сб. переводов, 1970, т. 14, № 3, с. 127—128.]
I. Wegener, Boolean functions whose monotone complexity is size n2/logn, Theoret. Comput. Sci., 21 (1982), pp. 213—224. [Имеется перевод: И. Вегенер. Булевы функции, чья монотонная сложность имеет величину порядка n2/log п, Кибернетический сборник, № 21.—М.: Мир, 1984, с. 69—85.]
Wegener, On the complexity of slice functions, Lecture Notes in Computer Science 176, Springer-Verlag, Berlin, 1984, pp. 553—561. (Also Theoret. Comput. Sci., to appear.)
J. Weiss, An Q(n3/2) lower bound on the monotone complexity of Boolean convolution, Inform, and Control, to appear.
[16] P. E. Dunne, The complexity of central slice functions, Theoretical Computer Science, v. 44, No. 3 (1986), 247—257.
[17*] I. Wegener, On the complexity of slice functions, Theoretical Computer Science, v. 38, No. 1 (1985), 55—68.
[18*] I. Wegener, More on the complexity of slice functions, Theoretical Computer Science, v. 43, No. 2/3 (1986), 201—212.
[19*] E. А. Окольнишникова. О сведении оценок сложности в полном базисе к оценкам сложности в неполном базисе. — В кн.: Методы дискретного анализа в теории графов и схем. Новосибирск, 1985, вып. 42, с. 80—90.
Характеристика всех оптимальныхсхем из функциональных элементовдля одновременноговычисления AND и NOR)
Н. Блюм), М. Сейсен?)
В работе характеризуются оптимальные схемы из функциональных элементов в базисе из всех 16 двуместных булевых операций для одновременного вычисления AND и NOR. Мы покажем, что оптимальные схемы для AND и NOR — это в точности схемы, каждая из которых является объединением оптимальной схемы для AND и оптимальной схемы для NOR, не имеющих общих элементов.
ВВЕДЕНИЕ
Мы охарактеризуем оптимальные схемы из функциональных элементов для одновременного вычисления AND и NOR. Из [3—5] известно, что сложность схем для булевых функций тесно связана с величиной произведения времени работы и объема программы машин Тьюринга, вычисляющих их. Поэтому представляет интерес получение нижних оценок сложности схем для. конкретных булевых функций. Обычно трудно вычислить точное значение сложности схемы для булевой функции. Нетривиальный пример см. в [6].
Если несколько булевых функций вычисляются одной схемой, то интересно выяснить, что лучше: вычислять ли все функции независимо или же экономичнее вычислить промежуточные результаты, которые можно использовать для вычисления нескольких функций.
Пауль [2] показал), что существуют две функции Рп, Gn*. {О, 1}"->{0, 1}" равной сложности, зависящие от непересе-
кающихся множеств переменных, такие что:
L{Fn, G„}<G{AJ(1 + е), где е->0 при п->оо.
С другой стороны, мы покажем, что функции
пп
ANDn=Axz и nor„=Aa,i = 1i = I
зависящие от одного множества переменных, независимы в том смысле, что
L {AND,, NOR,} = L {AND,} + L {NOR,}.
Более того, мы покажем, что в каждой оптимальной схеме, вычисляющей эти две функции одновременно, элементы, используемые для вычисления ANDn, отличны от элементов, используемых для ВЫЧИСЛЕНИЯ NORn.
СИСТЕМА ОБОЗНАЧЕНИЙ
Пусть В ={0,1}, Вп= {f|f: Вп-^В^ и пусть xt— это 1-я переменная.
Схемой называется ориентированный ациклический граф Р, такой что:
i) Входная степень каждой вершины графа р равна 0 или 2 (вершины с входной степенью 0 называются входами схемы). Каждому входу и приписана функция ор (у) е {xi, х2, ..., хп) • =
И) Каждой вершине у с входной степенью 2 приписана операция ору е 62 (подразумевается, что входы вершины у упорядочены).
Каждой вершине у схемы р сопоставим функцию resp, v, определяемую следующим образом:
resp, и ' ори (reSp,,, res^ w),resp, и ' ори (reSp,,, res^ w),если у — вход схемы с ор(у) = хг, если и — первый вход вершины у и w ~ второй вход вершины у.
resp, и ' ори (reSp,,, res^ w),
resp, и ' ори (reSp,,, res^ w),
Будем говорить, что система функций FcBn реализуется схемой р, если
4f<=F; Зу^Р: reSp>D = f.
Для любой булевой переменной х положим х1 = х и х° = х. Будем говорить, что функция f^Bn зависит от хь если суще-
ствует набор (аь ..., ап)^ Вп, такой что
f («ь ..аь ..ап) ^f(alf ..az_b аь а1+ь ап\
В противном случае говорят, что f не зависит от хь
По определению f ^ В2 — функция Л-типа, если
За, Ь, сеВ: f (х, у) = {ха К уьУ;
f В2 — функция ©-типа, если
За^В: ^ {х, У) = ^х©у)а.
функций f ^ В2 классифицируются следующим образом: 2 константы (0 и 1), 4 функции, зависящие в точности от одной переменной, 8 функций Д-типа и 2 функции Ф-типа.
Введем обозначения:
and„=A^, nor„=Axz.z=it=i
Для схемы р положим L(P) равным числу всех вершин схемы,, не являющихся ее входами. Сложность L(F), Р^В^ определим следующим образом:
L(F) = min{.L(p)|p реализует ру
Схема р, реализующая F и удовлетворяющая равенству L^) = = L{F), называется оптимальной схемой для F.
Вершина и называется преемником {предшественником) вершины у, если существует путь из v в и (из и в у).
Пусть у — произвольная вершина схемы р. Обозначим множество непосредственных преемников вершины у через suc^y), а ее выходную степень через out|j(y). Вершина с выходной степенью ^2, не являющаяся входом схемы, называется элементом ветвления. Вершину с выходной степенью 0, не являющуюся входом схемы, назовем выходом схемы. Вершины, не являющиеся входами схемы, называются элементами.
Для каждой схемы р введем следующее обозначение: xdeg(p) = 2 *outg(.rz).
ДОКАЗАТЕЛЬСТВО НИЖНЕЙ ОЦЕНКИ
Следующая лемма представляет собой незначительное обобщение леммы, доказанной Паулем [1].
Лемма 1. Каждая схема р с S элементами ветвления и {в* точности) А выходами удовлетворяет неравенству
L(p)^deg (Р) + 5-Л.
Доказательство совпадает с доказательством в работе [1].
Лемма 2. Для каждой оптимальной схемы р, реализующей ANDrt ^соответственно NORn), выполняются следующие 3 условия.
р — бинарное дерево ^ с п входами и п—1 элементом;
все элементы в р являются элементами ^типа;
для каждой вершины и схемы р существуют множество переменных М и константа с ^ В, такие что*.
Xх/ е ^✓
где k = 1 ^соответственно к = 0) при реализации функции ANDn ^соответственно NORn).
Доказательство. Мы докажем лемму для ANDn. Доказательство для NORn аналогично.
следует из следующих фактов:
ANDn зависит от всех п переменных.
Существует оптимальная схема р для ANDn, такая что L^=n — 1.
Единственный способ связать п входов при помощи п— 1 элемента — это бинарное дерево.
Для доказательства (2) и (3) положим, что р— оптимальная схема для ANDn. Допустим, что в р существует элемент у Ф-типа с непосредственными предшественниками и, w. Так как р — бинарное дерево и для каждого / е {1, ..., п^, out|j(x/)= 1, имеет место следующее: существуют Xi и Xj xt, такие что resp, и зависит от хи но не зависит от х, и resp, w зависит от Xj, но не зависит от хь Поскольку ANDn |х =1 зависит от Хк при любом k = 1, ..., п, имеем
resM(L ..., 1) = res3, м (1, . . ., 1, 0, 1, . .., 1, 0, 1, . .., 1),
resp> (1, .. ., l) = resp>w(l, .. ., 1, 0, 1, . . ., 1, 0, 1, . . ., 1).
Следовательно,
res» 0(U •0 = res» ЛЬ . . •, Ь 0, 1, . .., 1, 0, 1, .. ., 1),
что невозможно, так как р — бинарное дерево. Это доказывает (2).
Предположим1), что некоторая вершина и в р не удовлетворяет (3). Из (1) следует, что р— бинарное дерево с п входами. Так как AND. зависит от всех п переменных, все п входов схемы попарно различны, и, следовательно, из (2) мы имеем
reSo « — ( /Лk., с В,
где |Л1|>2 и Зх^М\ ^- = 0.
Следовательно, resp,v(l, ..., 1) = 0с. Выберем произвольное xi ^ М; l^ j. Тогда
resp>o(l, ..., 1, 0, 1, .. l) = resM(l, ..., 1).
Это невозможно, так как р — бинарное дерево. Утверждение (3) доказано. ■
Определение. Пусть Pi — оптимальная схема для AND. и Ро — оптимальная схема для NOR.. Отождествляя входы Xi схемы Pi с входами Xi схемы Ро, получаем схему р для {AND^ NOR.}. Такая схема называется стандартней схемой для {AND., NOR.}.
Теорема 1. Каждая оптимальная схема для {AND., NOR.} либо является стандартной схемой, либо в ней существует вход Xi с выходной степенью 1.
Доказательство. Пусть р— оптимальная схема для {AND.r NOR.}, причем outp(xz)^2 при всех ie{1, ..., nY Тогда xdeg(P)^2n. Пусть S— количество элементов ветвления и А — количество выходов схемы р. В силу леммы 2
2п — 2 ^ L (р) ^
^ х deg (Р) + S — А ^ (по лемме 1)
>2/г+5 —А.
Значит, А— 5^2, и следовательно, А ^ 2, так как 5 неотрицательно. Поскольку р — оптимальная схема для {ANDn, NOR4, А ^ 2. Следовательно, А = 2 и 5 = 0. Пусть Л— элемент, вычисляющий ANDn, и /0 — элемент, вычисляющий NOR^ (/о, Л суть 2 выхода схемы Р). Пусть pm (т = 0, 1) — схема, состоящая из всех (непосредственных и отдаленных) предшественников tm. Так как р не содержит элементов ветвления (т. е. 5 = 0), две схемы р0, Pi не имеют общих элементов. Из этого следует, что р— стандартная схема для {ANDn, NOR,J. Это доказывает теорему 1. ■
В оставшейся части работы мы докажем следующее утверждение.
Теорема 2. Пусть р— оптимальная схема для {AND^, NOR4- Тогда каждый вход Xi схемы р имеет выходную степень ^2.
Из теорем 1 и 2 непосредственно следует
Главная теорема. Каждая оптимальная схема для {ANDn, NOR4 —это стандартная схема для {ANDn, NORn}-
ДОКАЗАТЕЛЬСТВО ТЕОРЕМЫ 2
Пусть рр, г —путь от Xi (outp(x/) = 1) до первого элемента ветвления или выхода.
Лемма 3. Пусть р— оптимальная схема для {ANDn, NORn} с outp(xz) = 1 для некоторого /е{1, ..., nY Тогда последний элемент пути p^i— это элемент ветвления.
Доказательство. Без ограничения общности положим i = 1.
Допустим, что последний элемент с на пути р^, i — не элемент ветвления. Тогда с вычисляет или ANDn, или NORn. Пусть t — другой элемент схемы р, вычисляющий одну из двух функций ANDn или NORr?. Элемент t принадлежат рр, i, так как resp, / зависит от Xi. Следовательно, существует функция h^Bn, такая что
' resM = A(resP)/, х2, ..., хп\
Без ограничения общности положим resp, t = ANDrt, resp, e = = NORn. Имеем
NORn = A(ANDn, x2, ..., xnY
Это дает
NORn (0, ..., 0) = h ( A 0, 0, ..., 0) = h (0, 0, ..., 0),
nor„(i, o, .о) = /Т1л Ло, о, .o)=A(o, о, о).X 8=2
Следовательно, NORn(0, 0, .0)=NORn(l, 0, .0). Получили противоречие. ■
Весьма полезна следующая лемма.
Лемма 4. Пусть 0— произвольная схема для {ANDn, NOR4, и пусть g— элемент на пути p^.i (outp(xt) = 1). Пусть с — не-
Рис. 1.Рис. 1.
Рис. 1.
Рис. 1.
посредственный предшественник g на р^, ; (это может быть Xi) и пусть d— другой элемент, предшествующий g. Если resp g = = (reSp с A res^ d)m, k, /, m^B (t. e. g — элемент A-типа), то
res£ d0, ..(0) = reszp,d(l, ..1) = 1.
Доказательство. В схеме 0 есть фрагмент, изображенный на рис. 1. Отметим, что функция res^d не зависит от хи
Допустим, что res^ d (0, ..., 0) = 0 или res^ d (1, . . ., 1) = 0. Тогда по крайней мере в одном из этих двух случаев res^ ^ не зависит от Xi, и, следовательно, или ANDrt, или NOR„ не зависит от Xi. Получили противоречие. ■ ■
Приведем простое следствие леммы 4.
Лемма 5. Пусть 0 — произвольная схема для {ANDn, NORrt}. Пусть p^/i, p^j (i^j, outp(x.) = outp (x7) = 1) — два пути в 0, не содержащие элементов Ф-типа. Тогда р^ и p^j не имеют общих элементов.
Доказательство. Без ограничения общности положим г=1, / = 2. Допустим, что рр, i и рр,2 имеют общий элемент. Тогда мы имеем ситуацию, показанную на рис. 2 (g— элемент А-типа, в котором пути рр, i и рр, 2 встречаются; dY, . . . , dr (соответственно eY, ..., es)—входные вершины для элементов на рр, i (соответственно рр, 2), не принадлежащие рр, i (соответственно РМ))' ’
Из конструкции ясно, что функция resp,av ^=1> г (соответственно resp, е/, 1=1, ..., s) не зависит от хц (соответ-
ственно от х2)!). Отсюда в силу леммы 4 следует, что существуют а, Ь, с ^ В, такие что
reSP.g(XP Х2> 0-0) = reS₽,g(XP Х2>0 = (Х? Л Х2)С-
Следовательно, либо resp, 5(xi, 0, 0, ..., 0), либо resp, 5(xi, 1, 1, ..., 1) не зависит от хь Значит, или NOR«(X[, 0, ..., 0), или ANDn(xi, 1, ..., 1) не зависит от Хь Получили противоречие. ■
Утверждение 1. Пусть р— оптимальная схема для (AND,?, NOR4, которая имеет 1^ 1 входов с выходной степенью 1. Пусть m— число элементов Ф-типа в р. Тогда существует оптимальная схема р' для {ANDn, NOR4, обладающая следующими двумя свойствами*.;
В р' существует элемент d, такой, что
resp;d(O,,..0) = res₽;d(l, .1).
Выполняется по крайней мере одно из следующих двух условий;
В р' не больше I—1 входов с выходной степенью 1 и не больше tn элементов ©-типа.
В р' не больше / входов с выходной степенью 1 и не больше m— 1 элемента ©-типа.
Рис. 3.Рис. 3.Доказательство утверждения 1
Рис. 3.
Рис. 3.
Случай 1. Существует вход х/ с выходной степенью 1, такой, что на пути p^j есть элемент ф-типа.
Л 2 \Л 2 \Без ограничения общности положим / = п. Тогда этот путь имеет вид, показанный на рис. 3.
Л 2 \
Л 2 \
Пусть gb gs — элементы Л-типа на р^ п и пусть d^ (р = 1, .s) — элемент, являющийся предшественником 5Ц и не лежащий на р^п. Пусть
Преобразуем схему р в схему р следующим образом.
Вычислим G= Г resf^ , используя s—1 дополнительных элементов и вершины d\, ..., ds.
Сначала на входы элементов g^ подадим /ц, вместо res^d для всех ц=1, ..., s. (Это позволяет удалить s элементов gi, ..., gs.) Затем мы вычислим AND^aG и NOR^aG. (Это требует двух дополнительных элементов.) В результате нужен
!) Более того, каждая из этих функций не зависит от их х. ни от Хо. — Прим, персе.
один дополнительный элемент, т. е. Л(Р) = L(p) + 1. Отметим, что
resl^ (0, .0) = res^S (1, .1) = 1 при всех ц = 1, .s
(по лемме 4 и определению 1^. Отсюда следует, что новая схема р также вычисляет {ANDn, NORn} *).
По построению все элементы на р_ — элементы ©-типа (рис. 4).
Так как (/Ф й)° = (/ф й°) и операция © ассоциативна, без потери общности будем считать, что элементом ветвления в
р_ п является преемник вершины хп, обозначаемый через g.
Пусть d^Xi)—другой элемент, предшествующий g.
Тогда имеет место ситуация, показанная на рис. 5. Так как Р вычисляет {ANDn, NORn}, существуют функции Ло, hi е Вп, такие что
Xn-V Xn®reSp,d(^P^-1))>ОТ==0> h
Если мы заменим хп на ^хпфгез_ d(xp . .., ^„JJ, то последний аргумент функции hm станет просто хп. В итоге получаем
hm^P Хп) = А^^п^^.Д*>Хп-1)Г =
= Л х™ Л (х™ ® res. d (m, . .., т)у
В этомВ этом*) Надо рассмотреть два случая: а) при всех ц = 1, ..., s resp ..., о„) = /ц; b) эр: resp, ^ (<ть ..., ап) * Vw Очевидно, что
В этом
В этом
случае (аь ..., ал) =# (0, ..., 0) и (аь ..., an) (1, ..1). — Прим, перев.
(
п-1
Заметим, что если (х,, ..., xn_v^ #= (пг, ..., mA то Л х™=0
i = l 1
и, следовательно, hm(xY, ..., х„) = 0.)
Случай 1.1. res^d(00) = res d(l, .V) = k^B. Получим p' из p, подав k вместо res, d на вход элемента g. Схема р' вычисляет
п-1
Мхр хп-р А®к)=ЛхГл[(хп®к)т®ге5м(тm)] =
И—1= Л Х™Л(х™И—1= Л Х™Л(х™е^ е^) =е^ е^) =AND„ при т = 1, NORn при т = 0.
И—1
= Л Х™Л(х™
И—1
= Л Х™Л(х™
е^ е^) =
е^ е^) =
Таким образом, удален один элемент и в итоге L (Р') = Л(Р).
Случай 1.2. reSp ДО, . .., 0)#=res^d(l, .1). Пусть res^ d (т, ..., /тг) = k™, k^ В. Получим р* из Р, заменяя всюду в схеме resp g на к. Схема р* вычисляет
и —1и—1
hm^Xx, ..., x„_v, k)= Л хТЛ (кт^кт) = Л хГ Л 1 = i = \t=l
ANDrt-1 при m=l, NORrt-1 при т = 0.
Схема р* для {ANDn-i, NORr.-i} может быть легко дополнена до схемы р' для {ANDn, NOR4 путем введения двух новых элементов, которые вычисляют соответственно
ANDn_! Л xn = ANDn и NOR^ Л хп = NORn.
При замене resp на к удаляются по крайней мере элемент g и его преемники. Напомним, что g — элемент ветвления. Поэтому в конечном счете удален по крайней мере один элемент. В итоге нам не потребовались дополнительные элементы для преобразования р в р' (т. е. L(pz)^^(P)).
Замечание. (1). В обоих случаях при преобразовании р в р' удален один элемент, и, следовательно, в силу оптимальности Р'
на пути р^, . существует элемент A-типа). По лемме 4 р7 содержит элемент /, такой что
resp;/(0, . . ., O) = resp',/(1, . .., 1).
Тем самым доказано (i).
В обоих случаях число входов с выходной степенью 1 не увеличивалось), а число элементов ©-типа уменьшилось по крайней мере на один. Следовательно, (и) также доказано. Случай 1 разобран.
Случай 2. Для всех входов X/ с выходной степенью 1 все элементы на пути p^j— это элементы Л-типа.
По лемме 3 последний элемент на любом из этих путей. p^j — это элемент ветвления, и по лемме 5 все эти элементы
Xjd
ANDn NORn
Рис. 6.
попарно различны. Так как L^^2n — 2, других элементов: ветвления не существует. Следовательно, существует путь р^, i в р, такой, что последний его элемент g— это элемент ветвления и среди преемников элемента g нет элементов ветвления.
Сначала преобразуем схему р в схему р введением двух новых элементов, вычисляющих ANDn л xt и NORnAxz. Ясно, что два новых выхода вычисляют AND„ и NOR«. Благодаря этому преобразованию после последующих шагов, удаляющих элементы, NORzz будет правильно вычисляться при Xi = 1 и AND„— правильно вычисляться при Xi = 0.
Рассмотрим р^, t как подграф р. Мы собираемся последовательно удалить все элементы на р£, z. На каждом шаге рассматриваем непосредственного преемника 1г входа Xi на р^, t. Имеем следующую ситуацию (рис. 6).
Пусть d ^= Xi) — другой элемент, предшествующий й, и пусть / = resp, d(0, ..., 0). По лемме 4 существует а е В, такое, что
resM(0, •••’°’ х1’ °’°) =
= resM(l, .1, хр 1, .1) = х“.)
Теперь удалим элемент й, подав I вместо res^ d на вход элемента й. Затем введем новый элемент, который вычисляет
ANDnAres^ d, если а=1, или
NORnAres^ d, если а = 0.
Б итоге на этом шаге не нужно дополнительных элементов. По лемме 4
resl н (0, • • •, 0) = resi , (1, .. ., 1)= 1.р, а х'р, а х ’’ '
Кроме того, reSp h зависит от res^ d только при xL = a. Отсюда следует, что обе функции AND„ и NOR„ вычисляются правильно).
Пусть р* — схема, полученная после удаления последнего элемента g из р^, i. Тогда по построению L^*) ^ Л(Р) + 2 и outp* (xz) = 4.
Так как ни на каком шаге новые элементы ветвления не вводились, среди преемников Xi нет элементов ветвления. Следовательно, по построению р* существуют путь от Xi к выходу, вычисляющему AND«, и путь от Xi к выходу, вычисляющему NORn, возникшие при преобразовании р в р. Кроме того, существует другой путь р от Xi к выходу, вычисляющему ANDn, и существует другой путь р' от Xi к выходу, вычисляющему NORn, которые являются остатками путей схемы р, проходивших от Xi через р^ i к выходам схемы.
Подавая 1 на ребро, выходящее из х^ в р, и подавая 0 на ребро, выходящее из Xi в р', экономим два элемента.
Благодаря преобразованию, сделанному при переходе от (3 к р, ANDn продолжает вычисляться верно при xt = 0, a NOR«— при Xi = 1.
Таким образом получена схема р7, вычисляющая {ANDn, NOR4, Для которой L^^^L^^, т. е. р7— оптимальная схема..
Замечание. Как следует из леммы 4, р7 содержит элемент /, такой что
resg', <(0, ..., 0) = resp', / (1, ..., I).1)
Число входов с выходной степенью 1 уменьшилось на единицу^ а число элементов ©-типа не увеличилось.
Утверждение 1 доказано.
Доказательство теоремы 2.
Допустим, что существует оптимальная схема для {ANDnr NORn}> имеющая по крайней мере один вход с выходной степенью 1. В силу утверждения 1 можно построить схему р7 из схемы р со следующими свойствами:
Р' — оптимальная схема для {ANDn, NOR4-
Все входы в р7 имеют выходную степень 2.
Существует элемент g в р7, такой что
resp'.g(O, ..., O) = resp'.g(l, ..., 1).
Из леммы 2 следует, что р7 не является стандартной схемой для {ANDn, NORn}. С другой стороны, по теореме 1 или р7 — стандартная схема, или в р7 существует вход х, с выходной степенью 1. Получили противоречие.
Следовательно, оптимальная схема р7 для {ANDn, NORn} не может иметь входа с выходной степенью 1.
Теорема 2 доказана.
ЛИТЕРАТУРА
Paul, W., A 2.5n lower bound on the combinatorial complexity of Boolean functions. SIAM J. Comput. 6, 427—433 (1977). [Имеется перевод: Пауль В. И., Нижняя оценка для комбинационной сложности булевых функций. Киб. сб. № 16, с. 23—44.—М.: Мир, 1979.]
Paul, W., Realizing Boolean functions on disjont sets of variables. Theor. Comp. Sci. 2, 383—396 (1976).
*) Например, можно взять t = d.— Прим, перев.
Pipenger, Nn Fisher, М. J., Relation among complexity measures. J ACM 26, 361—381 (1979).
Savage, J. E., Computational work and time on finite machines. JACM 19, 660—674 (1972).
Schnorr, С. P., The network complexity of finite functions. Acta Informat. 7, 95—107 (1976).
Schnorr, С. P., The combinatorial compexity of equvalence. Theor. Comp. Sci. 1, 289—295 (1976). [Имеется перевод: Шнорр К. И., Комбинационная сложность эквивалентности, Киб. сб. № 16, с. 74—81. — М.: Мир, 1979.]
Характеризация Р- и Q-полиномиальныхсхем отношений °
П. Тервиллигер)
Пусть Y = (X, {Р/}, О ^ i^ d)— симметричная схема отношений с d классами, с числами пересечений р^ и параметрами Крейна ^^. (О^й, I, j^d), Для каждого i (O^i^d) определим /-ю (приведенную) диаграмму пересечений Di (соответственно диаграмму представлений D*) на вершинах 0, 1, ... ..., d, соединяя неориентированным ребром каждую пару вершин h, j, для которых р^ > 0 (соответственно q^ > 0). Схема Y называется Р-полиномиальной (соответственно Q-полиномиальной), если некоторая D{ (соответственно D*") является путем. Мы получим положительно полуопределенные матрицы G^i) и G^i)* (O^f^d), которые дадут новые неравенства для чисел р^ и q^. Кроме того, мы покажем, что при каждом I (0 ^ ^ i ^ d) эквивалентны следующие утверждения: диаграмма D* является лесом, матрица G^i) обращается в нулевую, существует определенная геометрическая интерпретация множества X. Аналогичные результаты справедливы для G(i)* и Di. Называя листом произвольной диаграммы вершину, смежную ровно с одной другой вершиной, мы покажем, что в любой связной диаграмме/)* для Р-полиномиальной схемы помимо О-вершины имеется самое большее один лист. Объединив этот и приведенный выше результаты, мы получим некоторую интерпретацию свойства Q-полиномиальности для Р-полиномиальных схем. В заключение мы используем уравнения, возникающие в силу обращения в нулевую некоторой G^i) для получения простого доказательства теоремы Д. Леонарда о том, что числа пересечений Р- и Q-полиномиальной схемы могут быть найдены с помощью 5 параметров.
!) Paul Terwilliger, A Characterization of Р- and Q-Polynomial Association Schemes, Journal of Combinatorial Theory, Series A 45, 8—26 (1987).
ВВЕДЕНИЕ
Пусть У = (X, VRi^ 0 ^ i ^ d)—симметричная схема отношений с d классами (см. определение 1.2), и пусть р^ и q1^. (О ^/г, f, j ^ d)— числа пересечений и параметры Крейна схемы У. Для каждого i (0 ^ i^ d) определим f-ю (приведенную) диаграмму пересечений Di (соответственно диаграмму представлений D) на вершинах {0, 1, ..., d^, соединяя неориентированные ребром любые две различные вершины h и /, для которых р^ > 0 (соответственно q1^. > 0). Схему У называют Р-полиномиальной (соответственно Q-полиномиальной), если диаграмма Di (соответственно D*^ является путем при некотором I. В этой статье мы свяжем геометрию схемы У со структурой диаграммы D; и £>* (O^i^d). В нашем первом основном результате, теореме 2.3, мы найдем множество положительно полуопределенных матриц G^i) и 0(f)* (O^i^d), которые дадут новые неравенства для чисел пересечений и параметров Крейна произвольной схемы отношений У. Эти неравенства обусловлены неотрицательностью чисел пересечений и параметров Крейна (условие Крейна см.1) в [1], с. 73) и очень полезны. В теореме 2.5 мы показываем, что при каждом i (О ^ i ^ d) эквивалентны три следующих утверждения: диаграмма D* является лесом (объединением непересекающихся деревьев), матрица 0(f) обращается в нулевую, существует определенная геометрическая интерпретация схемы У. Далее мы замечаем, что обращение матрицы 0(f) (соответственно 0(f)*) в нулевую, когда D* (соответственно Di) является лесом, дает много равенств, связывающих числа пересечений (соответственно параметры Крейна) схемы У. Можно надеяться, что эти равенства прольют достаточно света на схемы отношений, для которых как некоторая диаграмма пересечений Di (f^O), так и некоторая диаграмма представлений D* (/^ 0) являются лесами, чтобы мы могли классифицировать эти схемы. Это есть обобщение Баннаи и Ито [1, стр. 156] о классификации Р- и Q-полиномиальных схем отношений.
В разд. 3 мы сконцентрируем внимание на P-полиномиальных схемах. Так как Баннаи и Ито [1] и Стантон [12] заметили, что при d ^ 13 все известные Р-полиномиальные схемы либо являются Q-полиномиальными схемами, либо связаны с одной из них с помощью «деления пополам» двудольных графов или образования антиподальных частных, то возникает
вопрос, какие диаграммы представлений могут быть у P-полиномиальных схем. Наша теорема 3.3 дает частичный ответ на этот вопрос. Называя листом диаграммы любую вершину, смежную ровно с одной другой вершиной, мы докажем, что в любой связной диаграмме представлений имеется самое большее один лист, не считая О-вершины (которая всегда является листом). В частности, если некоторая диаграмма представлений является деревом, то она является путем, и эта схема является Q-полиномиальной. Мы соединяем эту информацию с теоремой 2.5 и получаем следующий результат, который дает геометрическую интерпретацию свойства Q-полиномиальности для P-полиномиальных схем.
Теорема LL Симметричная схема отношений У = (X, {PJ, 0 ^ г ^ d) обладает некоторой приведенной диаграммой представлений, которая является деревом, тогда и только тогда, когда множество X может быть представлено множеством {х*|хеХ} различных единичных векторов, порождающих некоторое евклидово пространство (/,<,> таким, что
(**, У*^ зависит только от I, для которого (z, у^ е Rf,(1.1)
для всех хгХ и всех i (0 ^ z ^d) вектор У у* уеХ, (х, у) е R{ пропорционален вектору х*;(1.2)
для всех х, уеХ и всех I, j (O^z, j^d) вектор Zг*-Iw* пропорционален
угХ, (х, у) е Rp (z, у) е Rjw е X, (х, w) е Rp (w, y^R{
вектору х* — у*.(1.3)
Кроме того, если схема Y является Р-полиномиальной, то приведенная выше фраза «обладает приведенной диаграммой представлений, которая является деревом» может быть заменена на «является Q-полиномиальной».
Упомянем об одном важном следствии из (1.3). Мы говорим, что четверки (хь х2, ^з, *4) и (z/i, z/2, z/3, У^ элементов из X имеют один и тот же тип, если ^xi, Xj) и (у;, у^ принадлежат одному и тому же классу схемы У при всех 1, / (1 ^ I, / ^ 4). Обозначим через пт число четверок из X типа Т. Кроме того, для любых х, у еХ и любых z, j (0 ^ z ^ d) обозначим через гц(х, у) вектор в левой части (1.3). С помощью вычисления различных <ra^x,yV rst{x,y)} (0 ^ z, /, s, t ^ а) мы покажем в последующей статье, что намного больше информации о числах пт получается из чисел пересечений схемы, удовлетворяющей условиям теоремы 1.1, по сравнению с общим случаем. В частности.
для Р- и Q-полиномиальных схем мы покажем, что все числа пт могут быть определены заданными числами пересечений и [d/2] свободными параметрами (которые должны удовлетворять определенным неравенствам). Этот результат должен помочь при классификации схем числами пересечений (см., например, Егава [5] для графа Хэмминга и Хуанг [6] для его ^-аналога, Неймайер [9] и Тервиллигер [15] для графа Джонсона и Спраги [11] для его ^-аналога).
В нашем последнем результате, теореме 3.4, мы используем уравнение, возникающее в силу обращения некоторой матрицы G^ в нулевую, для получения простого доказательства теоремы Леонарда [8] о том, что числа пересечений Р- и Q-полиномиальной схемы могут быть определены с помощью пяти параметров.
■ В оставшейся части этого раздела мы введем термины и приведем некоторые основные сведения. За подробностями мы отсылаем читателя к работам Баннаи и Ито [1], Дельсарта [4] или Слоэна [10]. Для произвольного целого положительного числа d обозначим через [d] множество {0, 1, ..., d} и положим
sd = №, Ж/еИ, /</}.(1.4}
Определение 1.2. Симметричная схема отношений с d классами (или просто схема) есть совокупность У = (X, {/?/}, 0^ t^it^d), состоящая из конечного множества X и симметричных отношений Ro, Ry, Rd на X, где
Ro= {(х, х)|хеХ}—тождественное отношение;
для любых х, уеХ имеет место (х, у) е Ri для единственного i е [d];
для любых h, I, / ^ [d] и любых х, у ^Х, таких что (х, у) е Rh, и число элементов zeX, для которых (х, г) е Ri и (2, y)eRj, зависит только от К, I и /. Мы обозначим это число через р^.
Мы называем числа р^ числами пересечений, а отношения Ri — классами схемы У.
В дальнейшем будем считать, что /г = |Х|. Пусть матрицы смежности Ао = I, А\, ..., Ad схемы У имеют строки и столбцы, занумерованные элементами множества X, и удовлетворяют соотношению
( 1, если (х, у) е Ri, (х, уеХ, ze[d]).
^At^xg [ о в противном случае.
В силу пункта 3) определения 1.2 эти матрицы удовлетворяют соотношению
d
лд. = Ё рА (*• /G М)’
А=0
и, следовательно, они порождают некоторую алгебру ^(У) над R, называемую алгеброй Боуза-Меснера. Пусть £0, ^ь • •., Ed — примитивные идемпотенты алгебры ^(У), упорядоченные таким образом, что nEQ = J, где / — матрица, все элементы которой равны единице, и пусть Р и Q — матрицы порядка d+h чьи (t,/)-элементы р3\Г) и qj(i) определяются соотношениями
d
Aj = 2 Pj (О Е^i=o
и
d
Е; = п~х^д;^ At.(1.5)
dE.-E^n-^E.,dE.-E^n-^E.,(1.6)(1.6)Параметры Крейна q^ (h, I, j e [d]) схемы У определяются соотношениями
d
E.-E^n-^E.,
d
E.-E^n-^E.,
(1.6)
(1.6)
где • есть адамарово (поэлементное) умножение матриц. Пола- тая к, = р°И и т.= д°и (i е [d]), мы получаем, согласно [1, стр. 69], что kjgt(j) = rmpdi) (z,/)е[Л), и, следовательно^, можно определить матрицу косинусов С порядка d+ 1, чей (z, /) -й элемент удовлетворяет равенству
Cj (0 = qs(i) т-р
= рД1)кр (i, j^[d]}.(1.7)
Из хорошо известных равенств, которые имеются в указанных выше источниках, немедленно следуют следующие соотношения:
тнд^ = тЛм (А- *» /G №)’
q^ = 4t <Kie\d\Y(1.9)
E PVt (/) = kict (0 ct W (h, i, t e [d]),
X q^Cj (0 = mlci (Z) ch (/) <h, i, t e [d]),
p^ = k.k tT1 X mfcf (h) c. (z) c. (j) (h,i,/^[d]),(l.H)
Ли = mtm.rTv 2 kfch(f) сДП сДЛ^О (h,i,j^[d]). (1.12)
Ради упрощения обозначений будем считать, что cz(/) = 0 для любых целых положительных чисел I и /, для которых i или / не принадлежит [d]. Нам понадобится следующее утверждение о диаграммах пересечений и представлений, определенных в начале этой статьи.
Лемма 1.3. Пусть ze[d]. Тогда число компонент связности диаграммы D{ ^соответственно D*^ равно числу тех j е [d], для. которых сД1) = 1 (соответственно Ci(j) = 1).
Доказательство. Мы рассмотрим только диаграммы Di, поскольку для D* рассуждения аналогичны. Определим полную диаграмму пересечений FDi на вершинах {0, 1, ..., d}, проводя ориентированное ребро от вершины h к вершине / всякий раз, когда р^. > 0, и припишем этому ребру пометку р^.е В этой диаграмме возможны петли, и в силу (1.8), если имеется ребро из j в h (й, / ^ [d]), то имеется ребро из h в j. Диаграмма Di получается из FDi удалением пометок, петель и объединением пар ребер (й,/) и (j,h), которые могут существовать в FDi, в одно неориентированное ребро. Очевидно, что число компонент в Di и FDi одно и то же. Далее пусть Bi— матрица смежности для FDi, т. е. матрица порядка d+ 1, чей (й,/)-й элемент равен пометке на ребре от й к /, если оно существует, и равен О, если такого ребра нет. В силу (1.10)
BzC:=CMiad{co(O = 1, ^ (z), . .., cd(^. (1.13>
В частности, первый столбец матрицы С, состоящий из одних единиц, является собственным вектором для Bi. Так как все элементы в Bi неотрицательны, то по теореме Фробениуса (см., например [7]) кратность максимального собственного значения ki матрицы Bi равна числу компонент FDi. Утверждение леммы следует теперь из (1.13). ■
Пусть ^ (У) действует на евклидовом пространстве V, <,>, обладающем ортонормированным базисом, который мы отождествим с элементами множества X, и пусть V = Vo + Vi + ... •.. + Vd есть ортогональная прямая сумма его максимальных подпространств, инвариантных относительно <9^ (У). Обозначим через л/ ортогональную проекцию V на Vj (j е [d]) и занумеруем инвариантные подпространства таким образом, что Е; является матричным представлением л/ относительно упомянутого выше базиса пространства V для всех j^[d]. Так как £/ = = £/ = £,• (/ е [d]), то можно рассматривать Е} как матрицу Грама векторов (л/(х) |х е X}, откуда в силу (1.5) следует, что
(лДх), лу(у)) = т/п-1с/(г), когда (х, г/)е7?г(х, уеХу (1.14).
Кроме того,
л,Ь) = £ <Е^уХу= 2 <МХ)> Л/(у))г/.(1.15)
деХу^Х
ДИАГРАММЫ ПЕРЕСЕЧЕНИЙ И ПРЕДСТАВЛЕНИЙ
В этом разделе мы исследуем фиксированную схему Y = = (X, {/?/}, О ^ z d) и найдем новые неравенства для чисел пересечений и параметров Крейна. Мы покажем важность достижения в них равенства, что происходит, когда некоторая диаграмма пересечений или представлений схемы Y является лесом, и этот случай приводит к некоторому геометрическому представлению схемы Y. Векторное пространство V и проекции л0, Ль ..., Лй упомянуты после леммы 1.3. Символ [d] введен перед определением (1.4) множества Sd, а константы сД]) определены равенством (1.7).
Определение 2.1. Для любого i е [d] положим
№ = {/|/е№ C/(z)^l},
Определение 2.2. Для любого /e[d] обозначим через О(/) и О(/)* матрицы, строки и столбцы которых занумерованы эле- ментами множества Sd, такие что
d
G ^Ц. И' = £ khct W (P^r - P^-P^) - /i=0
Е
Ч (ct G) - ct 0")) (cz ('') ~ ct (D) P^Pur
1 - ct № h e [d]*
№, /) e Sd, (i', j') e Sdy d
G ^a, it = Z mnch (0 (^г --
v mh (Ci «) - Cj (Z)) (Ci, W ~ cr (Z)) q^,r
L1 - ch (Z)
h e \d]^
((i, П e Sd, (i', j') e Sd).
Теорема 2.3. Матрицы G(t) и G(t)* из определения 2.2 являются положительно полуопределенными при всех Z е [d].
В частности,
2 khct w (pi^ - q^y) - 2.—x-ctw— ^ °*(2- °
А=оheYdAj.
h=Qh^[d]i
Доказательство этого утверждения будет проведено после следствия 2.17. Мы теперь дадим геометрическую интерпретацию обращения в нуль некоторой из матриц G(t) или G(Q*.
Определение 2.4. Для любых i, j^ [d] и любых х, у е X обозначим через Рц(х,у) и Qa(x, у) векторы в V, такие что
Pii (х, у>= Е 2
zeX
(X, Z^Rt
(z, y)^Rf
И
Qn<x, у) = Е <МД л^ХлДг/), л^х.z^X
Теорема 2.5. При любом фиксированном t е [d] эквивалентны следующие утверждения;
диаграмма представления D*t является лесом,
вектор nt ^Рц (х, у) — Pji (х, у)) пропорционален вектору лг (х — у) при всех х, у ^Х и всех I, j е [d],
матрица G(t) является нулевой.
Кроме того, лес в пункте 1) является деревом тогда и только тогда, когда векторы {лДх) |хеХ} различны.
Теорема 2.6. При любом фиксированном t е [d] эквивалентны следующие утверждения;
диаграмма пересечений Dt является лесом,
вектор nr (Qij (х, у) — Qu (х, у)) пропорционален вектору пг^х — у) при всех х, у^Х, для которых (x,y)^Rt и всех I, j, г е [d],
матрица G(t)* является нулевой.
Кроме того, лес в пункте 1) является деревом тогда и только тогда, когда пг^^ лг(х) при всех re[d] и всех х, уеХ, для которых (х, у) е Rt.
Доказательства следуют из леммы 2.19. Нам будут необходимы следующие предварительные результаты.
Определение 2.7. Пусть V—тензорное произведение V = = у® у ® У. Введем на У скалярное произведение <, > так, чтобы множество {x®z/®2|x, у, z^X} образовывало некоторый ортонормированный базис. Заметим, что
(zz®y®w, и' ® у' ® а/) = (^, и'^-о, u^(w> w,x)
для всех и, у, w, и', у', w' ^V. Для каждого / ^ [d] определим подпространство Yt пространства V ® V формулой Yt =- = ({x®z/|x, У^Х, (х, у) ^ Rt^ (где ( ) обозначает линейную оболочку) и положим V^Y^V и V*l = V^V<8>Vi (z е [d]). Здесь Уг- есть z-e инвариантное подпространство У. Наконец,, обозначая через р. и р* (i е [d]) ортогональные проекции из V на У. и V^ соответственно, заметим, что они удовлетворяют следующим условиям:
( х ® у ^2, если (х, у) ^ Ri (х, у, z г X. 1е [б/]) Pt (х 0 У 0 2)| qв противном случае,
(2.3)
р* (х ® у ® г) = х ® у ® л. (г) (х, у, г е X, i^ [d]).(2.4)
Заметим также, что р. и р*. коммутируют при всех z, / ^ [й].
Теперь мы определим подпространство W и 1У1 пространства У и рассмотрим два базиса для каждого из них: Н и Н* для IF и Я1 и Н* для IFi. Затем мы изучим действие pt и р* на этих базисах.
Определение 2.8. Для любых z, / е [d] положим
ец= И 22 x®z/®z(2.5)
zeX хеХУ^Х
^x,z^Ri {y,z)^Rj
и определим множества Н и Н\ формулами
H = Ke4\i, jsVd^,
Н1 = ^-е!(\а, n^Sdy(2.6)^
Положим также W7 = <Я> и Wi = <Я1>.
Определение 2.9. Для любых s, / е [d] положим
е* t = n У л$ (z) ® л, (г) ® г,(2.7)
определим множества Н* и Н* формулами
Лемма 2.10. Множества Н* и Н* содержатся в W и W х соответственно.
Доказательство. Применяя (1.14) и (1.15) к (2.7), получаем
e*st = n^ X У, UAxY m^\(n.tkyY я.Дгрх^у®2== z^X х^Х уеХ х77
d d
= msmtn-x'^ Цс^сД^ец (s, / g [d]) 1=0 j=oJ
и
e’st-ets^VtH-1 X d-\ d
X L . X+1 (cs (0 ct U) - ct (z) cs up (ei; - e^ ((s, 0 г 5Д. H
Лемма 2.11. При всех i, j, s, fe[d] имеет место
<eih e^^b^jtnktkj,(2.8)
«/- =(2-9)
В частности, множества H и Н* являются ортогональными базисами для W^a Нхи Н* являются ортогональными базисами для W[.
Доказательство. Равенства (2.8) следуют непосредственно из (2.2). Чтобы получить (2.9), используем (1.14), (2.2) и ортогональность инвариантных подпространств пространства V:
(е*р е*Х = /п У л. (г)® л. (г)® 2, п У л5 (цу) ® л^ (^) ®w\ =
= n2 X (лг(г), ns(z))(ny(z), л< (z)) = dfsd/<zzm;zn/. ■ zeX
Перейдем теперь к вычислению матриц Грама множеств векторов pt^Hx^ р^Н*^ p*t(Hx) и p*t (ТУ*) (Z е [d]). Вычислим сначала действие pt и р* на Нх на Н*.
Лемма 2.12. При всех i, j, t е [d] имеет место
Pt^a)= 222 x^y^z, (2.10
zеX хеХуеХ
(х, z)e^. (х, z^Rt
(У, z)^ Ri
p*t (е(Х = 222 х®#®л<(г),(2.11
z^X х^Х у ее X
(х, z) е R. (у, z) е Rt
Р1(ен) = п L 22 (лДх), л.(г)\/л (у), л (z)\x® z/®z,
'zgX х^Х у^Х/ \ 11 I
(x,y)eRt(2.12
р‘ (^ = п 22х л/ (z) ® л/ (z) ® л< (z)-(2-13
Доказательство. Следует непосредственно из (1.15) и (2.3) — (2.7). ■
Лемма 2.13. При всех I, j, г, s, /e[d] имеет место (Pt (еа^ Pt (ее^) = MiM'
В частности, для любого t е [d] имеет место
W П Ker (pt) = <{ez/1Z, jG[d], ^- = 0}).(2.14:
Доказательство. Следует непосредственно из (2.10). ■
Лемма 2.14. При всех I, j, г, s, t^ [d] имеет место
(p't (eij)- P*t (ers)) = М/зга,П^Г
В частности, для любого t е [d] имеет место
ГПКег(р;) = ({е*.|/, /е№ ^ = °}>-(2Л5>
Доказательство. В силу (2.13), (2.2), (1.14) и (1.12)
ШеИ' Р*1^ =
= п?( ^ Kt (z) ® Л; (z) ® Л; (z) , X ^г (®) ® л$ W ® Kt (ty)\ = \zeX1w^X/
= /г2 2 2 <л;(г), лД^Хл/^г), л5 (ж)Хл^ (^), ЛД®)) = 2еА' w е X
d
= bt^jsmtmjmt £ ktct (/) с, (f) ct (/) = =^trbunmtq\y
что и требовалось доказать. ■
Лемма 2.15. Для любого t е [d] имеет место
№', П Кет (р,) = ({е„ - е„ | Я, П е S,. р*„ = 0}).
»-',ПКет(р;) = ({<1^<г|(г,,;, = !)}).(2.16)
Доказательство. Следует непосредственно из (2.14) — (2.15). ■
Лемма 2.16. При всех I, j, г, s, t е [d] имеют место равенства d
ШеаУ р'Мз^чч EkMctW- (2-17)
d
<Р,«,У(2.18)
Доказательство. Чтобы получить (2.17), мы используем (2.11) и (1.14) и, вспоминая, что (^, w') = 6WiW^w, w'^ Х^ получаем
(№1)’ Pi(ers)) =
= 222222 <х, х'Ху, уЬ х
z е X хеХиеХ z'е X х'^Ху'еХ
(X. 2) е R{ (у, z)e Rj(х', z') е Rr (у', z') e /?s
Х(лДз), лЛг')) =
= 2 222<^pz\ ut(z'^=
z^X z'г X x^Xy^X
U,z)eRi (y,z)^Rj
(x, z')^ Rr (y, z')^Rs dd
= 2 22<р?гр?л (z)> л/ <г'й = ’ч 2 khP^rp%ct (h),
zeX h=Q z'^X x‘h=0
(2, z') e Rh
что и требовалось доказать. Чтобы установить (2.18), мы вспоминаем, что, согласно (1.11),
Pet = ^^frt”‘ 2о ткск (е) ch kb Ch kb (e, f, t g [d]),
и, используя (1.14) и (2.13), получаем
(pt0 Pt(e*rsp =
= na 222 k^tW, ^tkbX^ikyY ^A^X^rkx^, ^kz^x
z г X x e X у e X
kx, y^Rt
Х<л5(1/), Л5(г)> =
d d
= mlmimrmsn""v ^ £ btPVt <е)с/ ^ cr ^ cs (/) =
d/d\
= ^ Z mhch (О I пцтЛ^ £ kech (e) ct (e) cr (e) I X
h=QX^=0/
/dx
X I m1msn""x 2 ^ch (f) Ci (f) cs (f)) =
d
= kt Z mhch (/) q^q^, h=0
что дает (2.18). ■
Следствие 2.17. При всех i, j, г, s, Ze [d] имеют место равенства
(р* кеИ - еп\ P*t (еоь - ем)> = 2^/Р?/ (^ (0 - ct (/)),
<Pt (ец - e/i)> Pt (^ ~ <о)> = ^h^a (ct (О - Cj (О)-
В частности,
^\Pt (^0/ejo)’ Pt (50/ге/го)) = ^ih^hrnt (* Ct ^\(2.19)
(Pt {eGie/o)» Pt i6^eh,oh = ^ihmh^t (1 Cj ^\(2.20)
так,что каждое из множеств^р* {ещ — е.^ | / е [d]*} и {pt {е^ —
— ^0)|je[d]Jсостоит изортогональных векторов. Заметим
также, что из равенств (2.19) и (2.20) следует, что векторы P*t(eoA и P^t(ejo) ^соответственно р^е^ и Pt^c*^ различны тогда и только тогда, когда j е [d]* (соответственно j е [d]^).
Доказательство. В силу (1.8) доказательство следует непосредственно из (2.17) и (2.18). ■
Теперь мы готовы доказать теорему 2.3, показывающую, что матрица G(Z) (соответственно G(0*) является матрицей Грама множества векторов, полученных из Р^Н^ (соответственно р.та-
Доказательство теоремы 2.3. Мы рассмотрим только матрицу G(Z), так как в случае матрицы G^* рассуждения аналогичны. Пусть задано число Ze[d] и Ft — подпространство пространства Г*, определенное следующим образом:
f.-Wh-^lisi» <2-2»
Для любых (t, j)^Sd обозначим через fa проекцию р* ^е^ — е.^ на ортогональное дополнение Ft в V*. Это дает
i/ = Pt {ец ~ ец) —# ^jPt (5o/i enoh (2.22)
h GE \d\t
где в силу ортогональности векторов из (2.21) и следствия 2.17 имеет место
- kp*tkeij-eii\ Р*Ае№-е№$) =
4 (jA (e0h * eho> P*t (eoh ~ eho)}
— Y—ctW (Л e [<Д,/ <= [d] ).
Используя (2.22), лемму 2.16 и следствие 2.17, можно теперь проверить, что
2^G Ц\. iT = (f lpЦ1, П s Sd, (t", П e Sd).
Тем самым матрица G(0 представлена в виде матрицы Грама и, следовательно, является положительно полуопределенной. Неравенства (2.1) следуют теперь из неотрицательности диагональных элементов матрицы G(Z). ■
Далее мы собираемся показать, что размерность образа Wi при отображении ргр* сужается самое большее до единицы в предельном случае, когда диаграмма пересечений Dr или диаграмма представлений/)* является лесом. Мы сделаем это, подбирая подмножества в Нх и Н* так, чтобы получилось независимое множество в ITi, которое становится базисом для IFi в упомянутых выше предельных случаях и на котором легко описать действие ргр*.
Лемма 2.18. Для любого /e[d] векторы
Ь/ - ei01 j е [d];} и {С - ^ | (г, s)^Sd, qts = 0}(2.23)
независимы. Векторы
К-«;.11еИ.№гЖ, п^ Ж —°) <2-24> также независимы.
Доказательство. Если векторы (2.23) зависимы, то, согласно (2.16), подпространство пространства ITi, образованное линейной оболочкой первого множества в (2.23), имеет нетривиальное пересечение с Кег (р*). Тогда векторы ^р* (е0/ — е.о^ | / е [d]*}
не являются независимыми. Однако в силу следствия 2.17 эти векторы ортогональны, и, следовательно, независимость векторов (2.23) установлена. Аналогичным образом доказывается независимость векторов (2.24). ■
Для доказательства теоремы 2.5 нам необходима еще одна лемма.
Лемма 2.19. Для любого / е [г/] число ребер в Dt (соответственно в D*) не меньше \[d]t\ (соответственно |[Д*|), причем равенство достигается тогда и только тогда, когда Dt (соответственно Dt) является лесом.
Доказательство. Утверждение следует непосредственно из леммы 1.3 и хорошо известной теоремы о графах, состоящей в том, что неориентированного графа без петель с е ребрами, и вершинами и с компонентами справедливо неравенство е ^ ^ v — с, которое становится равенством тогда и только тогда, когда граф является лесом (см. [3]). ■
Доказательство теоремы 2.5. 1)->2). Предположим, что Dt, является лесом. В силу (2.16) число элементов Sd, которые не являются ребрами в D*, равно dim (ITj П Ker (д7)\ а в СИЛУ леммы 2.19 число элементов, которые являются ребрами, равно ]№;/. в частности, векторы (2.23) образуют базис для 1Гь За фиксируем теперь произвольное held]. Применяя лемму 2.15 к векторам (2.23), получаем, что образ IFi при отображении php*h имеет размерность 1 или 0 в зависимости от того, принадлежит h множеству [d]* или нет. В частности, (2.6) означает, что вектор php* (ем — ^.) пропорционален вектору php* (e0/i — eh^ при всех i, /^[d]. Так как ввиду (2.3) — (2.5) имеют место равенства
РйР*(е; -е.)= Е У х ® у ® nt (Р (х, у) - Р (х, У^,
(2.25)
PhPt (еол - ем) = У Е х^у^кДх-у\ (2.26) х е X у г X
(X, U^Rh
то мы заключаем, что 2) справедливо при всех х, у^Х, для которых (x,y)^Rh. В силу произвольности выбора h отсюда следует 2).
2)->3). Выберем произвольные х, у е X и I. j ^[d] и предположим, что (x,y)^Rh при некотором he[d]. Пусть % есть
скаляр, такой что
<Рц <», у) — Pji и, у)) = ^t (х — у\ (2.27)
Вычисляя скалярное произведение каждой из частей последнего равенства с ш(х), находим, что
Рц {ct ^ — ct (/)) = X (1 — ct (А)).
В частности, либо h ф [d]* (и в этом случае обе части равенства (2.27) равны нулю), либо X определяется числами h, i и /, что позволяет нам написать Х = Х^. В силу (2.25) и (2.26) мы заключаем, что
* / к Г ^jPhPt (e0h ено)’ если h ^ [d]p
Р hPtiI
1 v 0в противном случае.
Так как из (2.10) следует рн^оп— еп^=е^а— ено для всех h ^ [d] и так как Х^е^ Ph есть тождественное отображение, то
Pt (^/ “ eji^ = h^vdA PhPt (^/ “ ер) =
= Е ,PhPUea-eн) =
= ^ * ^jPh (в0П — ^/го) е h^Vd^
В частности, образ Wi при отображении р* содержится в подпространстве Ft, определенном в (2.21). Согласно абзацу, следующему за (2.21), мы заключаем, что матрица G^ является нулевой.
3)-^1). Согласно доказательству теоремы 2.3, равенство О(/) = 0 означает, что образ Wi при отображении р* содержится в Ft. В силу (2.21) Ft имеет размерность | [d], |, поэтому dim (Ker (pj) П ^^ т- е. число векторов в правой части (2.16) не меньше | Нх | — | [d]* |. Это означает, что D*t имеет не более |[d]*| ребер. По лемме 2.19 число ребер в D*t не меньше этого числа, что приводит к равенству и выводам о том, что D' является лесом.
Последнее утверждение теоремы 2.5 следует из леммы 1.3 и того факта, что Kt (х) = Kt (у) для произвольных х, у ((х,у)^ ^Rn) тогда и только тогда, когда €1^= 1. ■
Доказательство теоремы 2.6 полностью аналогично, и мы его опускаем. В следующем разделе мы ограничимся рассмотре-
нием Р-полиномиальных схем и покажем, что все диаграммы представлений, которые являются деревьями, в действительности являются путями. Это есть следствие теоремы 3.3.
3. Р- И Q-ПОЛИНОМИАЛЬНЫЕ СХЕМЫ
В этом разделе мы усилим теорему 2.5 для случая P-полиномиальных схем. В теореме 3.3 мы покажем, что помимо 0-вершины имеется самое большее один лист в любой связной диаграмме представлений Р-полиномиальной схемы. В нашем последнем результате, теореме 3.4, мы приводим короткое доказательство теоремы Леонарда [8], использующее матрицу 6(0 из определения 2.2. Сначала мы сделаем обзор некоторых фактов о Р-полиномиальных схемах.
Определение 3.1. Схема У называется Р-полиномиальной, если .некоторая ее диаграмма пересечений является путем, и Q-полиномиальной, если некоторая ее диаграмма представлений является путем (более широко известное, но эквивалентное определение см. в [1, стр. 159]). Заметим, что понятия Р-поли- номиальной схемы и дистанционно-регулярного графа эквивалентны.
Мы всегда будем предполагать, что в Р-полиномиальной (соответственно Q-полиномиальной) схеме классы занумерованы таким образом, что Dy есть путь (соответственно примитивные идемпотенты занумерованы таким образом, что D* есть путь), в котором вершины I—1 и I являются смежными при всех i (1 i d).
Определение 3.2. Пусть У = (X, {PJ, 0 ^ / ^ d) является Р-полиномиальной схемой. Для каждого i е [d] обозначим через Ci, ai и bi числа пересечений р\ ._р p\ t и Р\)1лл соответственно. Заметим, что число 60 есть в точности к\, и мы в дальнейшем будем обозначать его просто через к. Согласно [2], константы ^Ci, ai, bi\i е [d]} определяют все числа пересечений. Вот один из примеров, который нам понадобится:
p2,i-l=C2Xci(ai + Qi-l ~°1) (1<«<^)- (3.1)
В этом легко убедиться непосредственно или посмотреть в [14]. Нам также будут необходимы следующие известные результаты:
к = Ci + Ui + bi (i [d]), (3.2) kct (z) ct (1) = CiCt (z — 1) + a^t (z) + biCt (z + 1) (z, t e [d]). (3.3)
Заметим, что индукцией по I в (3.3) можно показать, что ct^ и ^(г+1) не обращаются в нуль одновременно (f, ^ [d]) и, следовательно, ct^ =# 0 при всех / ^ [d].
Теорема 3.3. Пусть У = (X, {/?/}, О ^ i ^ d) есть Р-полино- миальная схема и некоторая диаграмма представлений D*t является связной. Тогда D*t имеет самое большее один лист, не считая 0-вершины. В частности, если диаграмма D* является деревом, то она является путем и, следовательно, схема У Q-полиномиальна.
Доказательство. Пусть f (f #= 0) является листом в D*, и пусть h — единственная вершина, смежная f. В силу (1.6) мы имеем nEt- Ef = qtffEf + q^E^ и, таким образом, (1.5) означает, что
At (0 At ^ = ^цА^ (0 + А*^Ан (0 V е И )•У-4)
Чтобы упростить наши обозначения, положим а; = Са(/) = = qa^)m”1 при а = /, / и h и также положим a = q^m^x и b = q^tm”x. Тогда (3.4) приводится к виду
tifi^af^bhi (i^[d])(3.5)
или
ht = b-xtAti-a> (ze[d]).(3.6)
Полагая z = 0 и 1 в (3.5), находим, что b = 1 — а и
—<3'7>
Заменим а, в (3.3) с помощью (3.2):
Cl («z-i — аг) — S; (аг — ai+i) = k (с^ — 1) dx
(z е [d], a = h, f или /).(3.8)
Полагая далее z = 1, i = d и a = f, a = t в (3.8), получаем
l-fi-61(fi-f2) = /?(fi-l)fi,(3.9)
CdQd-i-fd^k^-X^fd,(3.10)
1 - tx -bx<tx-t2) = k(tx — l)/b(3.11)
CdVd-i-td^kiti-^td.(3.12)
Полагая a = h и i = 1 в (3.8) и используя для всех, кроме одного, значений hi равенство (3.6) с учетом того, что b = 1 — а.
получаем
А № — 1) (ЛЛ — Ла) =
= — а (1 — Л ~ Mt + 6, Л) + 1 — АЛ — А1ЛА + btf2t2.
Исключение обоих членов bxf2 с помощью (3.9), приведение членов и применение (3.7) дает
/1 (— ^ Ьх (^ У) + ^2 (^fi + 1) (Л — 1) + I =
= Цх (hxtx + fxtx — hx — tx\
Теперь вычислим первый член с помощью (3.11):
(1 - Q (1 - А) = *А (Mi + ГА ~^~ Mi -tH М- ^
Далее, полагая а = h и i = d в (3.8) и исключая hd-x и hd с помощью (3.6), получаем
— akCdtd-i — cdfd) + Cdtd-itd-i — Cdtdtd = A (A, — 1) Hdtd — №.
Исключение обоих членов Cdfd-i с помощью (3.10), приведение членов и применение (3.7) дает
fdcd ^d-\ — ^d) — fd^ VMd + f 1^1 — ^1 — td — ^d-lfl + ^-1) = 0-
Вычисляя первый член с помощью (3.12), получаем
kfd (fi (^i — ^-i) — hx (1 — t^ + ^-i — txt^ = 0.
По лемме 1.3 ^=^ I, а по замечанию, следующему за (3.3), fd ¥= 0. Следовательно,
Подставляя hx в (3.13), используя это равенство и проводя тождественные преобразования, получаем
(fl0 (^f 1 k^d^d ^d-\ + d—X ^2 + ^1) +
+ (1-М(.1-У) = °
Так как /2 и id отличны от 1 по лемме 1.3, то это квадратное уравнение относительно fx не вырождается. В частности, имеется только одно возможное значение для fi, кроме 1. Так как константы {Cz(1) | i е [d] } различны для любой Р-полиномиальной схемы [1, с. 269], то fi однозначно определяет вершину f.
Доказательство теоремы 1.1. Если множество X представимо множеством единичных векторов, удовлетворяющих условиям (1.1) — (1.2), то их матрица Грама должна быть пропорциональна некоторому примитивному идемпотенту Et алгебры
^(У), и, следовательно, введенное векторное пространство U можно рассматривать в качестве Vt. Утверждение следует теперь из теоремы 2.5 и 3.3. ■
Теорема 3.4 (Леонард [8]). Числа пересечений Р- и Q-полиномиальной схемы У определяются пятью параметрами. Если обозначить Ci(i) G’sM) через ri, то числа пересечений схемы У могут быть получены из к, а^ п, г2 и гг с помощью следующих соотношений*.
(fi —Г;.,)^ —rz+1) = (l — rz)(r2 —гг) (l<Z<d), (3.14)
= «z-i ^Ц^^ЯА _ кЦ + &r2 — г2 + 1 (i< / ^ d\ (3.15)
■Ci(rZ-i — rz+1) = /z(r/z —rz+1) —az(rz —rz+1) (l<Z<d),(3.16)
bi = к — a{ - cb (l^/<d).(3.17)
Доказательство. Если У является Р- и Q-полиномиальной схемой, то, согласно [1, с. 269], п^Г} при i^j (z, /^[d]). Поэтому если равенства (3.14) — (3.17) справедливы, то они действительно позволяют определить d, at, bi (ie[^]). Равенство (3.14) получается упрощением равенства G (1) l i+l z-i = 0 (1 ^
i ^ d—1).С помощью (3.1) и (3.2) равенство G(1)l /—i, i, t = = 0 (ie [d]) сводится к
“Г ai-\ I ГТ77Г G-1 — ^2 1 — “1 V 1 — Г2) — U
X 1г-1/
(1 <z<d).(3.18)
Сочетая (3.2) и (3.3) при i = 1, получаем
«1 (Г1 - G) = кА - &г2 + Г2 - 1.
Исключая ах из. (3.18), используя это равенство и упрощая коэффициенты при ou—x и ai с помощью (3.14), получаем (3.15). Равенство (3.16) есть просто равенство (3.3), в котором bi заменено на к— ai — Ci, а равенство (3.17) есть просто равенство (3.2). ■
Заметим, что уравнения, эквивалентные (3.16) — (3.19), были решены Баннаи и Ито [1, с. 206] при получении явных выражений для чисел пересечений Р- и Q-полиномиальных схем.
ЛИТЕРАТУРА
Bannai Е. and Ito Т. Algebraic Combinatorics I: Association Schemes. Benjamin Cummings Lecture Note Series, Menlo Park, Cal., 1984. [Имеется перевод: Баннаи Э., Ито Т. Алгебраическая комбинаторика. Схемы отношений. — М.: Мир, 1987.]
Biggs N. Algebraic Graph Theory. Cambridge Univ. Press, Cambridge,. 1974.
Bollobas B. Graph Theory, an Introductury Course. Graduate Texts in Mathematics Vol. 63, Springer-Verlag, New York, 1979.
Delsarte P. An algebraic approach to the association schemes of coding theory. Phillips Res. Rep. Suppl. 10 (1973). [Имеется перевод: Дельсарт Ф. Алгебраический подход к схемам отношений теории кодирования. — М.: Мир, 1976.]
Egawa Y. Characterization of Н (n, q) by the parameters. J. Combin. Theory Ser. A 31 (1981), 108—125.*
Huang T. Ph. D. Thesis, The Ohio State University, 1985.
Lancaster P. Theory of Matrices. Academic Press, New York/London, 1969. [Имеется перевод: Ланкастер П. Теория матриц. М.: Наука, 1982.]
Leonard D. Parameters of association schemes that are both P- and Q-polynomial, J. Combin. Theory Ser. A 36 (1984), 355—363.
Neumaier A. A characterization of a class of distance-regular graphs. J. Reine Angew. Math., 357 (1985), 182—192.
Sloane N. An introduction to association schemes and coding theory, in Theory and Applications of Special Functions (R. A. Askey, Ed.), 225—260„ Academic Press, New York, 1975.
Sprague A. Characterization of projective graphs. J. Combina Theory Ser. В 24 (1978), 294—300.
Stanton D. Some q-Krawtchouk polynomials on Chevalley groups. Amer. J. Math. 102 (1980), 625—662.
Terwilliger P. A class of distance-regular graphs with the Q-polynomial property, J. of Comb. Theory, 40B (1986), 213—223.
Terwilliger P. Distance — Regular Graphs and Generalizations, Ph. D. Thesis, University of Illinois, Urbana, 1982.
Terwilliger P. Root systems and the Johnson and Hamming graphs, European J. Comp., 8 (1987), 73—102.
Обзор по пороговым методам0
Л. К. Саху), С. Солтани), А. К. С. Вонг), И. С. Чень3)
В области цифровой обработки изображений пороговая операция широко применяется при сегментации изображений. Ввиду ее широкой применимости и в других задачах обработки изображений в последние годы были разработаны многочисленные пороговые методы. В данной работе дан обзор пороговых методов и обновлены предыдущие обзоры по этой тематике, выполненные Уэшка (Comput. Vision, Graphics & Image Process., 7, 1978, 259—265) и Фу и Му (Pattern Recognition, 13, 1981, 3—16). Предпринята попытка оценить качество некоторых автоматических глобальных пороговых методов с помощью таких критериев, как меры однородности и показатель формы. Проведенные оценки основаны на некоторых изображениях, взятых из реального мира.
ВВЕДЕНИЕ
Пороговая операция является известным средством сегментации изображений. В этой статье представлен обзор ряда методов порогового типа (также известных как методы приведения к бинарному виду), включая как глобальные, так и локальные методы.
Ради удобства обсуждения глобальные методы в свою очередь разделяются на точечно-зависимые и регионально-зависимые. Некоторые глобальные пороговые методы исследованы подробно, с тем чтобы оценить их качество на основе данного множества тестовых изображений. В работе сделана попытка
*) Р. К. Sahoo, S. Soltani and А. К. Wong. A survey of thresholding techniques. — Computer vision, graphics and image processing 41, 233—260, 1988.
оценить качество ряда глобальных методов, выбирая в качестве критериев показатель формы и меру однородности области. Процесс оценки осуществляется на множестве изображений, полученных в результате оцифровки фотографий портрета и естественных сцен. Хотя главной целью остается обзор двухуровневых пороговых методов, также рассмотрены и обобщения этих методов на случай решения задачи сегментации со многими порогами.
Пусть N—множество натуральных чисел, (х, у)—пространственные координаты точек цифрового изображения, G = {0, 1, ..., I—1} — множество неотрицательных целых чисел, представляющих уровни яркости. Тогда изображение может быть определено как отображение f: NX N-^ G. Яркость (т. е. полутоновый уровень) элемента изображения с координатами (х, у) будет обозначаться как f(x, у).
Пусть t^G — некоторый порог, а В = {б0, 61} — пара бинарных уровней яркости ибо, b\^G. Результат применения пороговой операции к функции /(•, •) (изображению) на уровне яркости t приводит к двузначной функции fr: N X N -^ В, такой что
ft у) = Ift у) = I60, если / (х, у) < /,
ft у) = I
ft у) = I
Ьъ если /(х, у)^Л
В общем случае пороговый метод — это такой метод, который определяет значение величины t на основе некоторого критерия. Если t* задается только по уровню яркости каждого элемента изображения, то пороговый метод считается точечнозависимым. Если же t* определяется исходя из локального свойства (например, по локальному распределению яркостей) в окрестности каждого элемента изображения, то пороговый метод считается регионально-зависимым. Глобальным пороговым методом называется метод, в котором все изображение обрабатывается по одному значению порога. Локальным пороговым методом называется такой метод, в котором производится разбиение данного изображения на подызображения и определяется значение порога для каждого из этих подызображений.
Пусть nt — число элементов изображения с уровнем яркости I. Тогда общее число элементов изображения равно
Z-1
М = X ГЦ.
Z=0
Вероятность встречаемости уровня яркости I задается величинойPi = Гц/п.
По соглашению будем считать, что уровень яркости 0 соответствует наиболее темному, а уровень яркости /—1 — наиболее светлому концам диапазона яркости.
ГЛОБАЛЬНЫЕ ПОРОГОВЫЕ ТОЧЕЧНО-ЗАВИСИМЫЕ МЕТОДЫ
р-клеточный метод
Одним из первых пороговых методов является р-клеточный метод [10]. В нем предполагается, что изображение состоит из темных объектов на светлом фоне. При условии, что известна доля площади объекта в процентах, порог задается как наибольший уровень яркости, при выборе которого по крайней мере (100 — р) % элементов изображения отображаются в точки объектов на результирующем изображении. Например, пусть объект занимает 20 % изображения, тогда в качестве порога следует выбрать наибольший уровень яркости, такой что по крайней мере 20 % элементов изображения должны будут отобразиться в точки объекта. Ясно, что если площади объектов на изображении неизвестны, то данный метод неприменим.
Метод мод
Для изображений, состоящих из различных объектов и фона, их гистограммы яркостей должны быть бимодальными. В этом случае значение порога можно выбрать равным уровню яркости, соответствующему «впадине» гистограммы. Данный метод называется методом мод [31]. Хотя он и прост, он неприменим к изображениям с очень неравными пиками или широкими и пологими впадинами на гистограммах.
Метод Осту
Этот метод, предложенный в [27], основан на дискриминантном анализе. В нем пороговая операция рассматривается как способ разбиения элементов изображения на два класса Со и Ci (например, на объекты и фон) на уровне яркости t. Таким образом, Со = {0, 1, ..., /} и Ci={/+1, / + 2, .I—1}. Пусть о^, о^ и Ор— соответственно дисперсия внутри класса, дисперсия между классами и полная дисперсия. Оптимальный порог можно определить исходя из минимизации одной из следующих (эквивалентных друг другу) функций-критериев относительно t:
о2во^о^
л = ~2“ > Л = “ И Х = Т* •Оц^ОрО^
Среди приведенных трех функций т] наиболее простая. В этом случае оптимальный порог— это
f = Arg min т],
t г G где
/-i/-1
<4 = £ (i — УтУРр P-r^Tjpp i =7i = 0
t
СТВ = Ю0Ю1(^1 ^о)2> ®О=У.оРи tot = 1—tog, t
Hi = 7-t< ’ ^0= * Hz = 2 lPi-
1 = 0
Метод анализа вогнутости гистограмм
Для изображений, содержащих различные объекты и фоновые части, значение порога можно выбрать на гистограмме яркостей с помощью метода мод. Для некоторых изображений^ гистограммы яркостей которых не имеют выраженных минимумов, часто удается задать хорошее значение порога на «хвосте» гистограммы. Поскольку как долины, так и хвосты соответствуют вогнутостям гистограммы, значение порога можно определить в результате анализа вогнутостей гистограммы [35].
Пусть HS— гистограмма, заданная на множестве уровней яркостей g0, gb •gi-\* Обозначим высоты гистограммы для
указанных уровней яркостей через h (g0), A(gi), ..., A(gz—1)„ где h (gi) =7^=0 при всех i. Таким образом, HS можно рассматривать как двумерную область.
Для определения вогнутостей гистограммы HS строится ее выпуклая оболочка. Она представляет собой наименьший выпуклый многоугольник HS, содержащий HS. Вогнутости HS выделяются по теоретико-множественной операции разности HS — HS. Пусть h (gf) — высота HS для уровня яркости gi. Возможными пороговыми значениями являются уровни яркости,, для которых hl^gi) — h(gi) имеет локальный максимум. Однако не все из этих максимумов равноценны при выборе значения порога, так как большие вогнутости также могут возникать, из-за шумовых выбросов. В работе [35] Розенфельда и Дела Торре эти вогнутости были названы ложными. Для устранения максимумов, порождаемых ложными вогнутостями, вводится мера равновесия
V=go ) U^^l
Е{ измеряет меру сбалансированности гистограммы относительно уровня яркости gi. Для ложных вогнутостей, которые обычно присутствуют лишь на одной стороне гистограммы, значения Е{ будут малы. Таким образом, ложные вогнутости могут исключаться, если игнорировать максимумы h — h при малых Ей Остальные максимумы указывают возможные значения порога, хотя они могут и не быть оптимальными. Другие уровни яркости, расположенные вблизи точек максимума, также могут рассматриваться для возможного улучшения выбора значений порога.
Энтропийные методы
В этих методах, разработанных в последние годы, гистограмма яркостей рассматривается как источник / символов. Оптимальное значение порога находится применением теории информации.
(z) Методы Пуна
В данном подразделе будут рассматриваться два алгоритма, недавно разработанные Пуном [32, 33].
Пусть t— значение порога. Определим две апостериорные энтропии [1]
н'ь = -^ P№pt,
= 0
t
H'w = -T. Pt\np{,
где Я' и H'w могут соответственно трактоваться как меры апостериорной информации, связанной с черными и белыми элементами изображения после применения пороговой операции.
Исходя из априорной энтропии гистограммы яркостей, Пун [32] предложил алгоритм для определения оптимального значения порога путем максимизации верхней границы апостериорной энтропии .
н'=н'ь +
Пун [32] показал, что максимизация Я' равносильна максимизации оценочной функции
Н.In Р,г Я, т In (1 - РА
HT lnmax[p0, ..., pjнт J lnmax{p^p ..., p^^
tотносительно /, где Ht = — У pt In рьZ = 0/-1t
Нт= — У.рЛпрь Pt=Hpi. z=оz = о
Во втором алгоритме Пун [33] предложил использовать в пороговой операции коэффициент анизотропии а, где
m
X р.ln р.
X Piln Pt z=o
и m— наименьшее целое число, такое что
m
X Pi >0.5.
z=o
Оптимальное значение порога t* выбирается по условию t*
— а, если а 0.5, Pi = <п к
.=0(а, если а >
Однако Капур и др. [16] установили, что данный алгоритм всегда будет характеризоваться порогом /* ^ ш. что означает возникновение нежелательных смещений на изображении.
Метод Капура, Саху и Вонга
В этом методе [16] по первоначальному распределению уровней яркости изображения строятся два распределения вероятностей (например, распределение объекта и распределение фона) следующим образом:
2^о Л Ptpt' Pt1 '" ’ Ptи
Pt + lPt + 2Pl-1
x-Pt' X-Pt' X — Pt ’t
где / — значение порога и Pt=^Lpi- Определим z=o
^(О=-Хрг/Л1п№а, z=o
(0 = —1 — Pt 111 1 — Pt '
i=t + Y
Тогда оптимальное значение порога t* определяется как значение яркости, которое максимизирует величину //^(/) +^^(0> т. е.
Г = Arg max ^Hb (О + Hw (t)}. teG
Метод Йоханнсена u Балле
В данном методе [15] используется энтропия гистограммы яркостей цифрового изображения. В сущности он состоит в разбиении множества уровней яркости на два подмножества с тем условием, чтобы минимизировать взаимозависимость между ними (в теоретико-информационном смысле). Метод Йоханнсена и Биллс предлагает выбор значения порога /* по соотношению
Г = Arg min {S (0 + 5 (0),teG
где
F. Метод сохранения моментов
В этом методе [40] значения порога вычисляются детерминированным способом, так чтобы моменты для изображения, подвергаемого пороговому преобразованию, сохранялись для выходного (бинарного) изображения. Момент mt порядка i вычисляется по формуле
Z-1
£ ^ Л^’ i=L 2, 3, g=o
где п — общее число элементов изображения. Оптимальное значение t* находится по гистограмме яркостей путем выбора t* в качестве р0-ячейки, где величина р0 определяется соотношением
— тх
Ит^з — nt^Cqт^ - т^Ит^з — nt^Cqт^ - т^т1т2 —* т3 т2 —- Ш^ ’т1т2 —* т3 т2 —- Ш^ ’z=^Vc2-4co)2 -схУz=^Vc2-4co)2 -схУ
И
т^з — nt^
Cq
т^ - т^
И
т^з — nt^
Cq
т^ - т^
т1т2 —* т3 т2 —- Ш^ ’
т1т2 —* т3 т2 —- Ш^ ’
z=^Vc2-4co)2 -схУ
z=^Vc2-4co)2 -схУ
Метод минимальной ошибки
В методе минимальной ошибки [19] гистограмма яркостей рассматривается как оценка плотности распределения вероятности р^ смеси совокупности, состоящей из уровней яркости элементов изображения, принадлежащих объекту и фону. Обычно предполагается, что каждая из двух компонент p(g\i) смеси нормально распределена со средним значением ц, и среднеквадратичным отклонением Oi и априорной вероятностью Рц так что
2
p(g)= Е PiPlgUY
i=A где
В качестве значения порога можно выбрать корень квадратного уравнения
(g+ In о2 - 2In4- Inо2 - 2InР2.а2
Однако параметры цр а2. и Р. (/=1, 2) плотности смеси p(g), связанной с изображением, к которому применяется пороговая операция, как правило, неизвестны. С целью преодоления трудностей при оценке этих неизвестных параметров Киттлер и Иллингворт [19] ввели в качестве критерия функцию /(О,
J(0=l + 2 {Р, (0 In а, (0 + Р2 (0 In а2 (0} -
-2{Р1(01пР1(0 + Р2(01пР2(0),гдеtz-i
^.(0 = Е hkgY р2^ = £
g=0g=f + l
И
(О = {g f 1 (5 - н2 (О)2 Ate)}/Р2 (О-
Оптимальное значение порога находится путем минимизации /(/), т. е.
Г = Arg min/(Z).
teG
ГЛОБАЛЬНЫЕ ПОРОГОВЫЕ ОПЕРАЦИИ:РЕГИОНАЛЬНО-ЗАВИСИМЫЕ МЕТОДЫ
Описываемые ниже методы нс предназначены для прямого выбора значения порога. Вместо этого они осуществляют преобразование гистограммы яркостей изображения, с тем чтобы получить гистограмму с более глубокими впадинами и более резкими пиками. Затем к ней можно применить метод мод, описанный в разделе 2В, для определения значения порога. Общей чертой, присущей всем указанным методам, является то, что новая гистограмма строится взвешиванием элементов изображения в соответствии с их локальным свойством. Кроме того, в них предполагается, что каждое из рассматриваемых изображений состоит из объектов и фона, причем оба имеют унимодальное распределение яркостей.
В работе [23] Мейсон и другие предложили использовать краевой оператор (например, лапласиан, перекрестный оператор Робертса и т. д.) для взвешивания элементов изображения. Согласно их методу, значения краевого оператора малы для элементов изображения в однородных областях и этим элементам следует приписать больший вес. Однако для элементов изображения, расположенных в окрестности краевого элемента, значения краевого оператора велики и указанным элементам назначается меньший вес. Новая гистограмма яркостей, полученная в результате выполнения данного процесса взвешивания, будет иметь более резкие пики и более глубокие впадины.
В 1965 г. Катц [17] отмстил, что ввиду более высоких краевых значений для элементов изображения, расположенных вблизи края, гистограмма яркостей для этих элементов должна иметь единственный пик для уровня яркости, промежуточного между уровнями яркости объекта и фона. Тем самым этот уровень яркости может считаться подходящим значением для порога. Данный вопрос также исследовался Уэшкой и Розенфельдом [46]. Некоторые варианты указанного метода были рассмотрены в [45], [43, 49]. Уэшка и Розенфельд [48] объединили их в терминах диаграммы разброса краевых значений по уровням яркостей.
Метод квадродеревьев является еще одним методом преобразования гистограмм, привлекающим наше внимание [51]. Этот метод основан на том факте, что среднеквадратичное отклонение в однородной области мало, а в неоднородной области велико. Таким образом, области с большим среднеквадратичным отклонением могут быть разбиты на меньшие по размерам и однородные области. Исходя из входного изображения, метод квадродеревьев производит его разбиение на кванты при условии, что среднеквадратичное отклонение его уровней яркости превосходит заданный порог. Этот процесс повторяется для каждого кванта. Тем самым строится разбиение исходного изображения на блоки с меньшими среднеквадратичными отклонениями с приемлемой степенью аппроксимации уровня яркости каждого блока его средним уровнем яркости. Результирующее изображение называется Q-изображением. Благодаря однородности каждого блока гистограмма яркостей Q-изображения будет иметь более резко выраженные пики и впадины.
Методы, основанные на статистиках второгопорядка уровней яркости
Один из недостатков точечно-зависимых пороговых методов состоит в том, что они целиком зависят только от статистик первого порядка уровней яркости (т. е. от гистограммы) изображения. Описываемые нами методы будут основаны на статистиках второго порядка уровней яркости изображения.
Метод матриц совместной встречаемости
Матрица совместной встречаемости была введена Харали- ком для анализа текстур [14]. В общем случае матрица совместной встречаемости Md, Ф определяется как матрица, элементы которой суть относительные частоты встречаемости двух соседних элементов изображения с уровнями яркости I и /, находящихся на расстоянии d друг от друга и имеющих ориентацию ф. Ясно, что число таких матриц может оказаться довольно большим в зависимости от выбора d и ф. В работе [12] Ахуджа и Розенфельд [2] следующим образом определили матрицу совместной встречаемости:
М = M(i, о) + Af(i, л/2) + Af(i, л) + М(1, зл/2), т. е. (z,/)-й элемент матрицы М равен частоте встречаемости уровня яркости z в 4-окрестности уровня яркости у1).
9 Имеется в виду 4-окрестность элемента изображения с уровнем яркости /. — Прим, перев.
Ввиду однородности элементы изображения, принадлежащие внутренней части объектов или фону, должны в основном учитываться в элементах матрицы М, размещенных вблизи ее диагонали. Элементы изображения, расположенные вблизи краев, должны вносить свой вклад в недиагональные элементы матрицы М, так как в окрестности края уровни яркости меняются. Поэтому матрица М может использоваться для задания двух новых гистограмм:
гистограммы, основанной на почти-диагональных элементах матрицы. Эта гистограмма должна иметь глубокую впадину, отделяющую уровни яркостей объекта и фона;
гистограммы, основанной на недиагональных элементах матрицы. Она должна иметь резкий пик между уровнями яркости объекта и фона.
Значение порога можно выбрать в интервале уровней яркости, в котором впадина в гистограмме а) перекрывается с пиком в гистограмме Ь).
Метод диаграммы разброса (яркость, локальная средняя яркость)
Данный метод [18] довольно схож с методом матриц совместной встречаемости, рассмотренным в предыдущем разделе. При задании диаграммы разброса (яркость, локальная средняя яркость) начало координат выбирается как точка верхнего левого угла, и уровень яркости возрастает в направлении слева направо, а средняя яркость, вычисляемая по окну, возрастает в направлении сверху вниз. Интенсивность точки на этой диаграмме пропорциональна частоте встречаемости соответствующей пары (яркость, локальная средняя яркость). В работе [18] Кирби и Розенфельд предложили вычислять локальные средние яркости по квадратному окну размера 3X3.
Почти диагональные элементы диаграммы разброса представляют элементы изображения, для которых локальные средние яркости близки к их уровням яркости. Такие элементы должны, по-видимому, принадлежать внутренней части объектов или фону ввиду свойства их однородности. Таким образом, гистограмма уровня яркости этих элементов должна иметь глубокую впадину. С другой стороны, недиагональные элементы диаграммы разброса соответствуют элементам изображения вблизи края, так что гистограмма уровня яркостей этих элементов должна иметь резкий пик. Так же как в методе матриц совместной встречаемости, значение порога может быть определено по интервалу уровней яркости, в котором впадина и пик указанных гистограмм перекрывают друг друга.
Метод Дерави и Пала
В этом методе [9] используются матрицы перехода, аналогичные матрицам совместной встречаемости, которые были, рассмотрены в разд. 3B(i), с целью определения двух «мер взаимодействия» для выбора значения порога. Оптимальное значение порога находится путем минимизации этих мер взаимодействия.
С помощью обозначений из раздела 3B(i) матрицы перехода, вводимые в [9], могут быть записаны в виде
Тн = Af(i, о), Ту = Мо, Зл/2), Thv — Tу + Th-
Любая из приведенных матриц перехода может использоваться при выборе значения порога, и она в последующем будет обозначаться через Т. В [9] отмечается, что результаты, получен
ные по различным матрицам перехода, имеют несущественные
отличия.
метрам:метрам:а=Е ^Tibi = 0 j = 0t z-1c=TL E tu,i=0 j=f + lа=Е ^Tibi = 0 j = 0t z-1c=TL E tu,i=0 j=f + lПусть Tt, j есть (г,/)-й элемент матрицы Т и t— порог, по которому множество уровней яркости разбивается на два класса: Со= {0, 1, ..., /} и Ci = {^+ 1, / + 2, ..., /— 1}. Тогда Т можно разбить на 4 части, определяемые по следующим пара
метрам:
метрам:
а=Е ^Tib
i = 0 j = 0t z-1c=TL E tu,i=0 j=f + l
а=Е ^Tib
i = 0 j = 0t z-1c=TL E tu,i=0 j=f + l
z-1z-1
b=Z ,E TM,i = t +1 j = t +1
Z-1 td= E IL тм.i=t+\ j=0
Таким образом, a, b, с и d представляют соответственно общее число переходов в Со, общее число переходов в Сь общее число переходов из Со в Ci и общее число переходов из Ci в Со. Совместная и условная вероятности переходов между Со и Ci могут оцениваться выражениями
Р = с -у daA-b-Vc-Vd
Дерави и Пал [9] назвали величины Pj^ и Pc^t) мерами взаимодействия. Они также отметили, что Pj(t) имеет сходство с «мерой занятости», введенной в [47], и что РДР) непосредственно не зависит от гистограммы. Оптимальное значение t* находится путем максимизации любой из указанных мер взаимодействия.
Релаксационные методы
Идея релаксации была предложена Саузвеллом [38, 39] для ускорения сходимости рекурсивного решения системы линейных уравнений. При сегментации изображений релаксация применяется следующим образом. Сначала элементы изображения классифицируются по вероятностному правилу на «светлые» и «темные» на основе их уровней яркости. Затем вероятность отнесения элемента изображения к классам корректируется в соответствии с вероятностями соседних с ним элементов изображения. Процесс корректировки повторяется с тем, чтобы вероятности отнесения к «светлым» (соответственно к «темным») стали очень велики для элементов, принадлежащих светлым (соответственно темным) областям. Замечательной особенностью релаксационных методов является то, что они осуществляют параллельную обработку данных в противоположность последовательным методам, рассмотренным нами до сих пор.
Начальная классификация
Розенфельд и Смит [36] предложили следующий метод для начальной классификации элементов изображения. Пусть d и /—наиболее темный и наиболее светлый уровни яркости и gi— уровень яркости элемента изображения хи Тогда для xt положим
р»
•I, теми. I — Д И
ri, светл. / — Д *
Несмотря на простоту этого метода, в тех случаях, когда уровни яркости для объекта и фона не относятся к различным половинам гистограммы яркостей, он становится непригодным. Для устранения этой трудности Розенфельд и Смит [36] предложили другую схему инициализации. Пусть m— средний уровень яркости. Тогда, если gt > m, положим
„о =1.1.
• светл, 22 I — m ’
если же gt т, то положим
ро =1 + 1Z1Z^..
Г1, теми 2 1 2 tn — d
Фекете и др. [11] предложили подход, в котором предполагается возможность разбиения гистограммы на две гауссовы совокупности, так что распределение уровней яркости может
быть представлено в виде суммы двух гауссовых распределений. Параметры этих гауссовых распределений определяются с помощью метода, предложенного в [7]. Они установили, что данный метод обеспечивает большую скорость сходимости процесса релаксации.
Итеративная корректировка вероятностей
Как это уже упоминалось, процесс корректировки состоит в изменении вероятностей для каждого элемента изображения исходя из вероятностей для соседних элементов изображения. Пусть Л—множество меток классов (например, классов, состоящих из светлых и темных элементов изображения). Тогда
для управления процессом корректировки меток классов вводится коэффициент совместимости гц{К9 V) элемента изображения Xi с меткой ХеЛ с другим элементом изображения х^ с меткой
"—1, если X и V несовместимы,
Гц (Я, X') = *Гц (Я, X') = *О, если Xi и Xj независимы,
Гц (Я, X') = *
Гц (Я, X') = *
если X и V совместимы.
Цукер и др. [52] предложили следующую формулу для корректировки вероятностей:
Pi ()£p?W[i+^W]’
x j €= Ni VgX
где Nt есть 8-окрестность элемента хи Однако Павлидис [29] показал, что р? (X) всегда изменяются при корректировке, что противоречит естественному допущению о неизменности меток в случае, когда соседние элементы изображения независимы. Этот теоретический недостаток устранил Пелег [30], который предложил следующую формулу для корректировки:
p‘ ’ Z »?m Z Z г„о.,>/)р?(1-) -
XeX Xj^Ni VeA
Методы градиентной релаксации
При градиентной релаксации схема оптимальной разметки определяется путем максимизации функции-критерия методом градиентной оптимизации.
Пусть Xi и 2.2—метки классов светлых и темных элементов изображения, {[pi(M)> рД^П7» i = 0, 1, ..., /—1} — множество векторов вероятностей, соответствующих уровням яркости, ( \.Qi (М, Qi (^2) ]т, I = 0, 1, ..., 1 — 1} — множество векторов совместимости,. где Qi^k) = "^ 7 Pj^kY Nt — это 8-окрестность.
xieNi
элемента изображения xL. В работе [4] Бхану и Фегерас указали, что схема оптимальной разметки для изображений с унимодальным распределением уровней яркости может задаваться следующим уравнением:
/-1 максимизировать С (р) := ^ рГ (ЧрДЧ 1 = 0
при
/^)еК:=Цн/>М, рО1р(^)>0, Ёр(М = 1|.
Они отметили, что максимизация СДр) равносильна уменьшению степени несовместимости и неоднозначности при разметке элементов изображения.
Мы предложим аналогичный метод исходя из другой функции-критерия, выводимой из теории информации. В данном методе схема оптимальной разметки определяется путем максимизации функции
/-1
^ (р) := S / (Рь 40 при pt е к.
1=0
Величина Hpi, Qi) задается в виде
I ^Рь qO = £ pi ^j) In (^дц) -
Другие методы
Пороговые методы для оптических систем распознавания печатных знаков также вызвали большой интерес. Поскольку в одном документе встречаются разные искажения, часто приходится использовать комбинацию нескольких пороговых операторов. Каждый из этих операторов обладает чувствительностью к определенному типу искажений. Например, в работе Бартца [3] строится комбинация четырех линейных пороговых операторов для формирования одного порога. Примером этих операторов является оператор Т = kv + с, где у — средний контраст по множеству знаков, просмотренных на предыдущем шаге„
к и с — оптимизирующие параметры. Вольф [50] предложил двухэтапную процедуру для решения задачи штриховки печатных знаков. На первом этапе вычисляется средний уровень яркости для каждого элемента изображения в пределах окна 4X4. Элемент изображения X считается частью знака, если его уровень яркости темнее, чем средние уровни яркости двух элементов изображения, ориентации которых отличаются на 180°
о п в п оп в о п вв о X о вв в о в во в в в о
Рис. 1. (5Х5)-окно, используемое в работе Ульмана [41].
и находятся на расстоянии 8 друг от друга. Второй этап аналогичен первому и отличается тем, что в нем используется окно больших размеров.
В работе Ульмана [4] выбор значения порога для элемента изображения X производится на основе уровней яркостей в пределах окна W размером 5X5 с центром на элемент X. При подборе значения порога учитывается вклад лишь тех элементов изображения, которые помечены меткой п (рис. 1).
Ниже приводятся два экспериментальных правила, которые используются при определении значения порога для X. Пусть пх — наибольший (самый светлый) уровень яркости в пределах W. Если пх ^ 40, то применяется правило 1, если же пх > 40, то правило 2. Вот эти два правила.
Пометить элемент X как точку объекта, если для некоторой точки п из W выполняется g(X)— £(я)<т> где g(^ обозначает уровень яркости точки (•) и т — некоторый заданный порог; в противном случае элемент X помечается как точка фона;
Пометить элемент X как точку объекта, если по крайней мере для одной точки п из W имеем g(X) <g(n)/\i, где ц— некоторая фиксированная константа, в противном случае элемент разметить как точку фона.
Моррин [25] использовал графики зависимости градиента от уровней яркости с целью преобразования полутоновых изображений с высокой разрешающей способностью и контрастностью для задания значения порога. Панда [28] предложил метод, в котором порог для данной точки выбирается в зависимости от уровня яркости и краевого значения для этой точки. Некоторые его результаты и выводы изложены в [28].
ЛОКАЛЬНЫЕ ПОРОГОВЫЕ МЕТОДЫ
В локальных пороговых операциях исходное изображение разбивается на подызображения меньших размеров и для каждого из подызображений определяется свой порог. Их применение вызывает разрывы уровней яркости на границах двух различных подызображений на результирующем изображении. Значение порога для области можно задать либо с помощью точечно-зависимого метода, либо метода с региональной зависимостью. Для устранения возникающих разрывов применяется метод сглаживания.
Чоу и Канеко [7, 8] предложили использовать окно размера 7X7 для локальной пороговой операции. В методе, разработанном ими, исходное изображение разбивается на окна размера 7X7 и для каждого из подызображений вычисляется соответствующий порог. Однако если подызображение имеет унимодальную гистограмму яркости, то для него порог не вычисляется. Для таких подызображений значения порога интерполируются по соседним подызображениям. Для изображений с бимодальной гистограммой яркости порог вычисляется следующим образом. Сначала гистограмма яркости для подызображения аппроксимируется суммой двух гауссовых распределений, а затем значение порога находится путем минимизации ошибки классификации относительно значения порога. В [261 рассмотрен ряд экспериментов по применению данного метода.
Фернандо и Монро [12] разработали метод локального определения значения порога для ангиограмм (рентгенограмм кровеносных сосудов). Было установлено, что глобальные пороговые методы неприменимы для этих изображений, которые, как правило, имеют унимодальные гистограммы с очень узким пиком. Согласно этому новому методу, исходное изображение разбивается на 16 неперекрывающихся подызображений и к каждому из подызображений применяется метод энтропийного определения значения порога, который изложен в работе Пуна [32]. Наконец, изображение, полученное после пороговой операции, полностью обрабатывается низкочастотным фильтром для устранения разрывов уровней яркости на границах между подызо- бражениями.
МНОГОПОРОГОВЫЕ МЕТОДЫ
Многие глобальные пороговые методы (такие как методы Осту [27], Пуна [32, 33], Капура и др. [16], сохранения моментов [40], минимальной ошибки [19]) могут быть обобщены на случай многих порогов. В данном разделе мы обсудим три метода выбора значений нескольких порогов, которые не вошли в предыдущие разделы данной работы.
X. Метод сегментации амплитуд
Этот метод был предложен Боукхаробой и др. [5]. В нем учитываются характерные свойства функции распределения изображения, к которому применяется пороговая операция. В этом методе информация о значениях порогов извлекается из анализа кривизны функции распределения. Функция распределения F(k) в точке к задается в виде
кh (g)
У,
-Кривизна функции F определяется по соотношению
С (х) = F"U)[1 W' «Г3/2,
где F' и F"— первая и вторая производные функции F соответственно. В [5] отмечается, что С(х) имеет зашумленный вид и колебательное поведение, и поэтому для ее использования в пороговом методе необходимо осуществить сглаживание и аппроксимацию С(х). Точки, в которых F (&) обращается в нуль, определяют значения порогов, а также уровни яркости, приписываемые каждому классу.
Метод Ванга и Харалина
Данный метод [42] представляет собой рекурсивный метод для выбора значений нескольких порогов на цифровых изображениях. В нем сначала производится классификация элементов изображения на краевые и некраевые элементы. Затем дается классификация краевых элементов на относительно темные или относительно светлые на основании информации об их окрестностях. Для элементов изображения, оказавшихся краевыми и относительно темными, строится гистограмма яркости. Для элементов изображения, также являющихся краевыми, но относительно светлыми, строится другая гистограмма яркости. Значение порога выбирается исходя из уровня яркости, соответствующего одному из наивысших пиков этих двух гистограмм. Для получения значения нескольких порогов данная процедура повторяется рекурсивно применительно лишь к тем элементам изображения, яркости которых выше значения порога.
Метод однородного контраста
Это предложенный Кохлером [21] метод рекурсивного выбора значения порога. Он основан на следующей идее. Оптимальное значение порога для сегментации изображения должно выделять больше резкоконтрастных и меньше слабоконтрастных краев по сравнению с любыми другими значениями [21]. В этом методе для каждого возможного порога t строится гистограмма среднего контраста ц(^),и ее наивысший пик соответствует оптимальному значению порога. Средний контраст вычисляется по соотношению
причем ц(0 = 0 при N^ = 0 и С(/)—полный контраст, обнаруживаемый по порогу /, М^— число краев, выделяемых по t. Для выбора значений нескольких порогов сначала выбирается произвольное начальное значение порога, а затем формируется новая гистограмма ц(0 посредством исключения вклада уже выделенных по начальному значению порога краев. Эта процедура повторяется до тех пор, пока максимальный средний контраст для любого порога не окажется меньше некоторого минимального среднего контрастного параметра 9 > 1.
ЭКСПЕРИМЕНТАЛЬНЫЕ РЕЗУЛЬТАТЫ
Следует отметить, что не все из рассмотренных нами методов могут считаться автоматическими (т. е. не требующими
Рис. 2. а) оцифрованное изображение оператора, Ь') гистограмма изображения оператора.
вмешательства человека). Для некоторых необходима обратная связь с пользователем, поскольку однозначный выбор оптимального значения порога невозможен. При применении локальных пороговых методов изображение разбивается на подызображе-
Рис. 3. а) оцифрованное изображение здания, Ь^ гистограмма изображения здания.
Рис. 4. а) оцифрованное изображение модели, Z>) гистограмма изображения модели.
Таблица 1. Оптимальное значение порога для набора тестовых изображений
Метод
Оптимальное значение порога
Оператор
Здание
Модель
матриц совместной встречаемости
63
63
63
Дерави и Пал
116
127
анализа вогнутостей гистограмм
127
47
Йоханнсена и Билле
75
79
114
Капура и др.
123
69
81
минимальной ошибки
111
37
113
сохранения моментов
91
76
76
Осту
86
73
91
Пуна [32]
131
28
63
'(I£I = *7) внЛц tfoxaw G ‘(98 = *Й
Xxoq voxaw (t/ *(l6 = */) зохнэркж бинэнейхоэ tfoxaw (5 ‘(m = *;) иядипто уонаггЕминитм tfoxaw (/ *(^j = */) ejhoq и Ххеэ ‘udAnu^ Гохэи (a ‘(g^ = *;) ЭЕЕИд И ЕНЭЭННЕХОЦ XTOXOVi (p ‘(Z3l = */) HWMBdJOXOHJ ИЭХЭОХЛНЛОЗ ЕЕИ1ГЕНЕ Voxaix (a ‘(911 = */) ееец и naEday voxaw (q ‘(59 = *;) HxaowaEhadxaa xiOHxoawaoo hHdxEW tfoxaw (0 ‘.EdoxEdauo винэжEd9oeи aiqndEHHg £ ’эи^
•эоннваойфиНо '952 wranged ‘hidomcIk yangodX июеэин и 565X51^ ediDed wodaweed э [gg] 9 иииом ионхенап ола on нино^фиПо Енд Hiodoiedano э модоинэ ’«чках/оде» и «аине№» ‘«doiudauo» :иеяи1Инэ wadi м HHanawndu иггид HlToiaw энннэеэит^эц 'eiod -on иинэьинЕ xi4H4iruwniuo еяюэжони! ей eiodou кинэьвне олэш -ьХеиен иинэхгжохин keV иинэХГжХэ хнннихмэч^дЛэ loiXgadi ан 9эенЛ1гэ ээюнишчЕод я и nwnMoahniEwoiHE koioikithk ино мем них ‘кинэнЛеи олонч1Г91ин9^э kitIT i4Hudgi49 nvoiaw аннниеим^ ’ [6l] иидишо noH4ifuwnHnw Voxaw и [q^] aoinawow nnHaHBdxoo Voiaw ‘[б] ^О1гиц и ngedaff nHHHUiogudeud ‘Voiaw ‘[gg] wwedлolэил июохЛнлоэ ееи^ене Voiaw ‘ [5] nioowaehadiag ионхэаияоэ XindiBw iroiaw *[9i] -dir и edXue^ ‘[Si] sirirng и инээннихоц ‘[SS] енХц ‘ [2,2] ^1эо intfoxaw оннэми и ‘хин ей aindoxoHan чхинэПо кэиаеэ -adawBH raw Xwoieou тлodou кинэнене edograg keV иэютХечеоп -эй охэен raVoiaw аганчЕедоЕЛ ‘XwowhIThh-ou 'Voiaw иннч1гедо1м ии'гпк'п'оххгоп HaiaHHawndu кинаж^доега’п'оп олоХГжем hitv uлodoп Еинаьене олончев^ишо edograg hW и godaweed хишчнаго иин
<691<691WDQOldW W1Q9020d0U OU dOGQQ
<691
<691
-олвиГ за ю энннд1Гв1ГЛ ээ1годивн ‘ру iqTiudiBW 801ндиэве % д и 'I niqHHBd ониёдня оьччд вин0жвdgoeи иивчнэиэЕв Л1ГждИ р OHHBOiodBd HiDO^dBhDdiDa ионюэиеоэ nndiBiv вТГоюи ве^/
*1 'irgBi a HHorasHdu ‘иквшэи иинннвввмЛ хнннэьКеон ‘soj -odou ВИНдЬИНд 'UWBIVHBdjOlDHJ ХИ Э Э1ЭЭИЯ ^ И £ *dHd BH HHOV -asHdu niraVoiM и впивав винэжвdgoeи ‘Hioondn imBHsodA ggg э и H£Xl6£ Bdiosd IVoddivsbd э вэL•вsIqsodфи'пo ш/эГои мои -инэ ‘HiooMdB HivBHeodX gq^ и £0^ X lit7 ediDBd noddWBBd э [g£] ей иипом HOHiBhau ojo ou нвeodфиПo img эжмвх buhbVs яоиинЗ •g ’dud bh ннвввяои niooudB BwnBdioidnj ojo и dинdжвdgo£И
• (ЭИНЭЖЦ’ОХГОЙп) 9 ‘ЭИ^
W9h э И ^нод э М ‘V 'пншгоэ Э ‘^э М П
09L
нали, были спроектированы на диагональ. В данном случае для всех трех изображений значение порога оказалось равным 63. Это значение не изменилось при использовании 10 % элементов вместо 5%. Однако, когда величина d изменилась от 1 до 2 (соответственно до 3), значения порогов для изображений оператора и здания не изменились, но значение порога для изображения модели стало равным 30 (соответственно равным 33). Если принять процент элементов матрицы М, спроектированных на диагональ, равным 1 % и 2 % с сохранением значений d равными 2 и 3 соответственно, в обоих случаях были получены значения порога 63. Таким образом, при больших значениях d рекомендуется уменьшить процент элементов матрицы М, которые наиболее удалены от диагонали и отображаются на эту диагональ.
Метод Дерави и Пала [9] был реализован лишь применительно к изображению оператора. В их методе были выявлены два локальных минимума, один из которых в точке 45, другой — в точке 116. Поскольку пороговая операция при значении порога 45 не привела к лучшему изображению, в качестве оптимального значения порога было выбрано 116. На рис. 5—7 показаны бинарные изображения, полученные с помощью пороговых методов, рассмотренных в данном разделе.
МЕРЫ ДЛЯ ОЦЕНКИ ПОРОГОВЫХ МЕТОДОВ
Однородность и форма объектов на цифровых изображениях играют важную роль при отделении объектов от фона. Степень согласованности этих двух характеристик любого бинарного изображения с реальным изображением была оценена для трех тестовых изображений, рассмотренных в предыдущем разделе.
Рис. 6. Бинарные изображения здания: а) метод матриц совместной встречаемости (/* = 63), Ь^ метод анализа вогнутостей гистограмм (/* = 47), с) метод Йоханнсена и Билле (/* = 79), метод Капура, Саху и Вонга (/* = 69), е) метод минимальной ошибки (/* = 37), /) метод сохранения моментов (I* = 76), g) метод Осту (t* = 73), /1) метод Пуна [32] (^* = 28).
^3(fi ‘%)
‘^^-(Й ‘X)/) 2 = 2°
явя KaiaKEaVadno ; Bjodou иин
-эьвне wohhbVbe Hdu (;)/) niaonpodongo oda^v [%] ефиявц иенияэ]/ HiogBd ей bikes ‘иивн квннв^дня ‘HiooHVodoHVo Bdaw
•(anHSKiroTOdu) 9 OHj
ОДЗЬ Э "И ‘г«°а Э У "V ‘tWDj.vo9 Э *йхуЭ "Я 'll
391
Рис. 7. Бинарные изображения модели: а) метод матриц совместной встре-чаемости (/* = 63), Ь^ метод анализа вогнутостей гистограмм (/* = 127),€) метод йоханнсена и Билле (/* = 114), d) метод Капура, Саху и Вонга^* = 81), е) метод минимальной ошибки (/* = ИЗ), /) метод сохранениямоментов (/* = 76), g) метод Осту (t* = 91).
Рис. 7 (продолжение).
Ri — сегментированная t-я область, f(x,y)— уровень яркости У Нх, у)
элемента изображения (х, у), 1^/=———j:, Ai— число-
элементов изображения в Ri, i= 1, 2, и С—нормирующий множитель. Для вычисления меры однородности U изображений, содержащих более двух областей, Левин и Назиф [22] включили в нее весовой множитель.
Мера формы S используется при количественной оценке формы объектов на тестовых изображениях. Мера S для данного изображения вычисляется следующим образом: (а) приписать каждому элементу изображения (х, у) обобщенное значение градиента А(х, у); (Ь) если уровень яркости элемента изображения (х, у) больше, чем средняя яркость соседних с ним элементов, то приписать знак «+» обобщенному значению градиента А(х, у), в противном случае приписать ему знак «—»; (с) вычислить меру формы S по формуле
У sgn (f (х, у) - fN (х> у)) Д (х, у) sgn у (х, у) - /) о(*, г/)
С’
где fN(x,y) — средняя яркость в окрестности N(x, у), t— значение порога для изображения, С—нормирующий множитель и
( 1, если х^О,sgn (х) = sА
Таблица 2а, Результаты оценки для изображения оператора
Метод
Порог
Однородность, U
Форма,
S
матриц совместной встречаемости
63
0.7121
5
0.7471
4
Дерави и Пала
116
0.6190
6
0.5790
6
анализа вогнутостей
127
0,3556
8
0.3387
8
Йоханнсена и Билле
75
0.9089
3
0.9452
3
Капура и др.
123
0.4775
7
0.4148
7
минимальной ошибки
111
0.7133
4
0.6951
5
сохранения моментов
91
0.9911
2
0.9839
2
Осту
86
0.9990
1
1.0000
1
Пуна
131
0.2205
9
0.2390
9
Таблица 2Ь. Результаты оценки для изображения здания
Метод
Порог
Однородность, U
Форма,
матриц совместной встречаемости
63
0.9098 5
0.8863
5
анализа вогнутостей гистограмм
47
0.5889 6
0.5597
6
Йоханнсена и Билле
79
0.9833 3
0.9990
2
Капура и др.
69
0.9792 4
0.9647
4
минимальной ошибки
37
0.3820 7
0.2987
7
сохранения моментов
76
0.9980 2
0.9995
1
Осту
73
0.9986 1
0.9931
3
Пуна [32]
28
0.1988 8
0.0131
8
Таблица 2с, Результаты оценки для изображения модели
Метод
Порог
Однородность, U
Форма,
матриц совместной встречаемости
63
0.5483 7
0.9597
1
анализа вогнутостей гистограмм
127
0.6246 6
0.2775
7
Йоханнсена и Билле
114
0.8334 5
0.4543
6
Капура и др.
81
0.9192 2
0.7636
3
минимальной ошибки
ИЗ
0.8465 3
0.4682
5
сохранения моментов
76
0.8445 4
0.7872
2
Осту
91
0.9986 1
0.7418
4
Пуна [32]■
63
0.5483 7
0.9597
1
ОБСУЖДЕНИЕ РЕЗУЛЬТАТОВ ОЦЕНКИ
Анализируя табл. 2а, мы приходим к выводу, что методы Осту, сохранения моментов и Йоханнсена и Билле являются более предпочтительными методами выбора значения порога
для снимка оператора по обеим мерам: однородности области и формы. Для бимодальных изображений (см. табл. 3) оптимальные значения мер однородности и формы незначительно отличаются друг от друга. Таким образом, если для снимка оператора какой-то метод окажется приемлемым, то он будет таким же приемлемым по мере формы. Поэтому упомянутые методы
Таблица 3. Оптимальное значение порога для мер однородности и формы
Мера
Оператор
Здание
Модель
Однородность
87
74
93
Форма
86
78
57
в табл. 2а имеют одинаковый ранг как относительно меры однородности, так и относительно меры формы. В целом результаты оценки на этом изображении для указанных методов почти не отличаются.
Снимок здания не имеет четкой бимодальной гистограммы яркости. Таким образом, для него в отличие от снимка оператора метод Осту (см. табл. 2Ь) имеет ранг, равный трем, относительно меры формы и ранг, равный 1, относительно меры однородности. Метод сохранения моментов имеет ранг 2 относительно меры однородности и ранг 1 относительно меры формы. Методы Иоханнсена и Билле, Капура и др. уступают лишь методам Осту и сохранения моментов.
Отметим, что снимок модели не имеет бимодальной гистограммы. Для него (см. табл. 2с) метод Осту имеет ранг 1 относительно меры однородности и ранг 4 относительно меры формы. Метод матриц совместной встречаемости имеет ранг 1 по мере формы и ранг 7 по мере однородности. Метод Капура и др. оказался вторым по рангу относительно меры однородности и третьим по рангу относительно меры формы. Данный результат свидетельствует о том, что метод Капура и др. хорошо согласуется с обеими мерами для данного типа изображений. Метод матриц совместной встречаемости в этом смысле ориентирован на меру формы, а метод Осту — на меру однородности. Таким образом, для снимка модели, не имеющего бимодальной гистограммы, метод матриц совместной встречаемости можно считать приемлемым лишь для меры формы, в то время как метод Осту является хорошим лишь для меры однородности.
По результатам этой объективной оценки (табл. 2а, 2Ь и 2с) можно сделать вывод о том, что метод Осту, который основан
на дискриминантном анализе, можно считать одним из лучших пороговых методов, несмотря на многие его недостатки (см. [20, 34]). Поскольку наши меры оценки порогового метода основаны только на свойствах однородности и формы, вывод о преимуществе метода Осту не является неожиданным. Метод сохранения моментов оказывается сопоставимым с методом Осту. Характеристики таких методов, как метод Йоханнсена и Билле, Капура и др., почти не уступают характеристикам метода Осту и методов сохранения моментов. Бинарные изображения, полученные с помощью пороговых методов (перечисленных в табл. 1), являются источником ценной информации о пороговых методах. Мы учитываем эту зрительную информацию в качестве дополнительных данных. Для зрительного анализа представляется разумным рассматривать такие важные признаки, как черты лица и камеру на снимке оператора, края здания на правой части снимка здания, характерные черты лица и волос на изображении модели. Вместе с этими наблюдениями необходимо также принять во внимание степень искажения и потерю информации на изображении, полученном в результате применения к нему пороговой операции. При пристальном рассмотрении бинарных изображений оператора на рис. 5 можно прийти к выводу, что такие методы, как метод Пуна (рис. 5i), метод анализа вогнутостей гистограмм (рис. 5с) и метод совместной встречаемости (рис. 5а), не дают хороших значений порога для этого изображения. Этот результат можно усмотреть также из табл. 2а. Также отметим, что метод матриц совместной встречаемости приводит к бинарному изображению, на котором черты лица и камера оператора оказываются потерянными, в то время как метод Пуна и методы анализа вогнутостей гистограмм дают бинарные изображения с искажениями. И метод Осту, и метод сохранения моментов не сохраняют черты лица на изображении оператора. Эти детали и другая ценная информация сохраняются при применении метода Капура и др. и метода минимальной ошибки. Отметим, что метод Капура и др. имеет ранг 7 в табл. 2а относительно меры однородности, так же как и относительно меры формы, однако он позволяет получить бинарное изображение, на котором сохраняются детали лица оператора.
Аналогичный анализ изображений на рис. 6 показывает, что методы сохранения моментов (рис. 6f), матриц совместной встречаемости (рис. 6а), Осту (рис. 6h), Капура и др. (рис. 6d), Йоханнсена и Билле (рис. 6с) дают достаточно хорошие значения порога для снимка здания. Среди перечисленных методов методы Йоханнсена и Билле и сохранения моментов дают хорошие бинарные изображения. Применительно к бинарным
изображениям на рис. 7 отметим, что метод Капура и др. и метод сохранения моментов являются более предпочтительными при выборе значения порога. Для этого же изображения метод Осту также даст хорошее значение порога. Однако он уступает двум упомянутым методам.
Таким образом, как по визуальной оценке бинарных изображений, так и по их объективной оценке, основанной на мерах
Рис. 8. Бинарные изображения оператора: а) оптимальная однородность (/* = 87), 6) оптимальная форма (f* = 86).
однородности и формы, мы находим, что методы Иоханнсена и Билле, Капура и др., сохранения моментов, Осту являются приемлемыми пороговыми методами. В большинстве случаев методы Пуна, анализа вогнутости гистограмм и минимальной ошибки не отличаются хорошим качеством по сравнению с другими методами, рассмотренными в данном разделе. В одной из ранних работ [12] Фернандо и Монро указали на неудовлетворительное качество метода Пуна [32].
КОММЕНТАРИИ И ЗАКЛЮЧЕНИЕ
В данной работе при оценке автоматического порогового метода были использованы меры формы и однородности. В табл. 3 приведены значения уровней яркости, которые оптимизируют меры однородности и формы для тестовых изображений. Набор цифровых тестовых изображений, преобразованных к бинарному виду при уровнях яркости, доставляющих величинам S и U максимумы, показан на рис. 8, 9 и 10. По этим изображениям можно сделать вывод о пригодности указанных мер для получения бинарных изображений пороговым преобразованием.
В центом мы дали обзор различных пороговых методов и оценили качество некоторых глобальных методов, являющихся автоматическими по своему строению. Все описанные нами ме-
тоды оптимизируют некоторые функции-критерии и дают соответствующие обоснования для подобной оптимизации. Мы исследовали лишь связь оптимальных значений с соответствующими мерами однородности и формы по данному множеству
Рис. 9. Бинарные изображения здания: а) оптимальная однородность (/* = — 74), Ь^ оптимальная форма (t* — 78).
Рис. 10. Бинарные изображения модели: а) оптимальная однородность (/* = 93), Ь) оптимальная форма (/* = 57).
тестовых изображений. По результатам этого исследования мы пришли к заключению, что для указанного множества тестовых изображений методы Йоханнсена и Билле, Капура и др., метод Цэй сохранения моментов и метод Осту можно считать приемлемыми пороговыми методами, если к бинарному изображению предъявляются требования, выражаемые в терминах большей однородности и лучшей формы объекта на бинарном изображении. Однако остается открытым вопрос о качестве указанных методов, если рассматривать общий случай.
БЛАГОДАРНОСТЬ
Мы выражаем признательность рецензенту за помощь в улучшении вида статьи.
ЛИТЕРАТУРА
N. Abramson, Information Theory and Coding, McGraw-Hill, New York, 1963.
N. Ahuja and A. Rosenfeld, A note on the use of second-order gray-level statistics for threshold selection, IEEE Trans. Systems Man Cybernet. SMC-8, 1978, 895—899.
M. R. Bartz, Optimizing a video processor for OCR, in Proceedings International Joint Conference on AI, 1969, pp. 79—90.
B. Bhanu and O. Faugeras, Segmentation of images having inimodal distributions, IEEE Trans. Pallern Anal. Mach. Intell. PAMI-4, 1982, 408—419.
S. Baukharouba, J. M. Rebordao, P. L. Wendel, An amplitude segmentation method based on the distribution function of an image, Comput. Vision Graphics Image Process, 29, 1985, 47—59.
H. Bunke, H. Feistl, H. Heimann, G. Sagerer, F. Wolf, G. Zhou, Smoothing, thresholding, and contour extraction in images from gated blood pool studies, in First IEEE Symp. on Medical Imaging and Image Interpretation, Berlin, 1982.
С. K. Chow and Kaneko, Boundary detection of radiographic images by a threshold method, in Proceedings, IFIP Congress 71, pp. 130—134.
С. K. Chow and T. Kaneko, Automatic boundary detection of left ventricle from cineangiograms, comput. Biomed. Res. 5, 1972, 338—410.
F. Deravi and S. K. Pal, Gray level thresholding using second-order statistics, Patten, Recognit. Lett. 1, 1983, 417—422.
W. Doyle, Operation useful for similarity-invariant pattern recognition, J. Assoc. Comput. Mach. 9, 1962, 259—267.
G. Fekete, J. O. Eklundh and A. Rosenfeld, Relaxation: Evaluation and applications, IEEE Trans. Pattern, Anal. Mach. Intell PAMI-3 1981, 460—469.
S. M. X. Fernando and D. M. Monro, Variable thresholding applied to angiography, in Proceedings 6th International conference on Pattern Recognition, 1982.
S. K. Fu and J. K. Mu, A survey on image segmentation, Pattern Recognit. 13, 1981, 3—16.
R. M. Haralick, K. Shanmugam, and I. Dinstein, Texture features for image classification, IEEE Trans. Systems Man Cybernet. SMC-3, 1973, 610—621.
G. Johannsen and J. Bille, A threshold selection method using information measures in Proceedings, 6th Int. Conf. Pattern Recognition, Munich, Germany, 1982, pp. 140—143.
J. N. Kapur, P. K. Sahoo, and А. К. C. Wong, A new method for graylevel picture thresholding using the entropy of the histogram, Comput. ision Graphics Image Process, 29, 1985, 273—285.
Y. H. Katz, Pattern recognition of meteorological sattelite cloud photography, Proceedings, Third Symp. on Remote Sensing of Environment, 1965, pp. 173—214.
R. L. Kirby and A. Rosenfeld, A note on the use of (gray level local average gray level) space as on aid in thresholding selection, IEEE Trans. Systems Man Cybernet, SMC-9, 1979, 860—864.
J. Kittier and J. Illingworth, Minimum error thresholding, Pattern Recognit, 19, 1986, 41—47.
J. Kittier and J. Illingworth, On threshold selection using clustering criterion, IEEE Trans. Systems Man Cybernet, SMC-15, 625—653.
R. Kohler, A segmentation system based on thresholding, Comput. Graphics Image Process. 15 1981 319—338.
М. D. Levine and А. М. Nazif, Dynamic measurement of computer generated image segmentations, IEEE Trans. Pattern. Anal. Mach. Intell. PAMI-7, 1985, 155—164.
D. Mason, I. J. Lauder, D. Rutoritz, and G. Spowart, Measurement of С-Bands in human chromosomes, comput. Biol. Med. 5, 1975, 179—201.
D. L. Milgram, Region extraction using convergent evidence, Comput. Graphics Image Process 11, 1979, 1 —12.
T. H. Morrin, A black-white representation of a gray-salepicture, IEEE Trans. Comput. 23, 1974, 184—186.
Y. Hakagawa and A. Rosenfeld, Some experiments on variable thresholding, Pattern Recognit. 11, 1979, 191—204.
H. Ostu, A threshold selection method from gray-level histogram, IEEE Trans. Systems Man Cybernet. SMC-8, 1978, 62—66.
D. P. Panda, Segmentation of FLIR Image by Pixel Classification, TR-508, University of Maryland Computer Science Center, 1977.
Pavlidis, Structural Pattern Recognition, Springer-Verlag, New York, 1977.
S. Peleg, A new probabilistic relaxation scheme, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-2, 1980, 362—369.
J. M. S. Prewitt and M. L. Mendelsohn, The analysis of cell: image, in Ann. New York, Acad. Sci. Vol. 128, pp. 1035—1053, New York Acad. ScL, New York, 1966.
T. Pun, A new method for gray-level picture thresholding using the entropy of the histogram, Signal Process, 2, 1980, 223—237.
T. Pun, Entropie thresholding: A new approach, comput. Vision Graphics Image Process, 16, 1981, 210—239.
S. S. Reddi, S. F. Rudin, and H. R. Keshavan, An optimal multiple threshold scheme for image segmentation, IEEE Trans. Systems Man Cybernet. SMC-14, 1984, 661—665.
A. Rosenfeld and P. De La Torre, Histogram concavity analysis as an aid in threshold selection, IEEE Trans. Systems Man Cybernet, SMC-13, 1983, 231—235.
A. Rosenfeld and R. C. Smith, Thresholding using relaxation, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-3, 1981, 598—606.
P. K. Sahoo, Theory and Applications of Some Measure of Uncertainties, Ph. D. thesis Department of Applied Mathematics, University of Waterloo, Waterloo, 1986.
R. Southwell, Relaxation Methods in Engineering Science, A Treatise on Approximate computation, Oxford Univ. Press, London, 1940.
R. Southwell, Relaxation Methods in Theoretical Physics, Oxford Univ. Press (Clarendon), London, 1946.
W. Tsai, Moment-preserving thresholding: A new approach comput Vision Graphics Image Process. 29, 1985, 377—393.
J. R. Ullman, Binarization using associative addressing, Pattern Recognit, 6, 1974, 127—135.
S. Wang and R. M. Haralick, Automatic multithreshold selection, Comput. Vision Graphics Image Process, 25, 1984, 46—67.
S. Watanabe, and the CYBEST group. An automated apparatus for cancer processing CYBEST, Comput. Vision Graphics Image Process, 3, 1974, 350—358.
J. S. Weszka, A survey of threshold selection techniques, comput. Vision Graphics Image Process, 7, 1978, 259—265.
J. S. Weszka, R. H. Hagel, and A. Rosenfeld, A threshold selection technique, IEEE Trans. Comput. C-23, 1974, 1322—1326.
J. S. Weszka and A. Rosenfeld, Threshold Selection 4, TR-336, University of Maryland Computer Science Center, 1974.
J. S. Weszka and A. Rosenfeld, Threshold evaluation techniques, IEEE Trans. Systems Man Cybernet. SMC-8, 1978, 622—629/
J. S. Weszka and A. Rosenfeld, Histogram modification for threshold selection, IEEE Trans. Systems Man Cybernet, SMC-9, 1979, 38—51.
J. S. Weszka, J. A. Vertuon and A. Rosenfeld, A Technique for Facilitating Threshold Selection for Objects Extraction from Digital Pictures, TR-243, University of Maryland Computer Science Center, 1973.
R. H. Wolfe, A dynamic thresholding scheme for quantization of scanned image, in Proceedings, Automatic Pattern Recognition, 1969, pp. 143— 162.
A. Y. Wu and A. Rosenfeld, Threshold selection using quadtree, IEEE Trans. Pattern Anal. Mach. Intel. PAMI-4, 1982, 90—94.
S. Zucker, R. Hummel and A. Rosenfeld, An Application of relaxation labelling to line and curve enhancement, IEEE Trans. Comput. C-26, 1977, 394—403.
Комбинаторные задачистатистической физики)
Ж. Вьенно)
Резюме. Введение предпочтительного направления в модели статистической механики изменяет критические показатели. Именно это объясняет происходящее в настоящее время возрастание интереса физиков к ориентированным моделям и, в частности, с 1982 г. — к ориентированным фигурам) [8—25]. Именно они и составляют основной предмет этого обзора.
Точные результаты для размерности d = 2 (число фигур, средняя ширина и др.) получили Деррида, Хаким, Надаль и Ваннименю [17, 21], а для размерности d = 2, 3 — Дхар [12, 13]. Последний показал эквивалентность недавно решенной Бакстером модели жестких шестиугольников [30, 1, глава 14] и модели газа.
С другой стороны, автором в [26, 27] и автором совместно с Гуйю — Бошаном в [28] показано, что современные биективные методы перечислительной комбинаторики позволяют получать практически без каких-либо вычислений точные результаты для ориентированных фигур в рамках обычного подхода статистической механики.
Многие вопросы остались открытыми, в частности вопросы, касающиеся удивительного появления широко известных тождеств Роджерса — Рамануджана в модели жестких шестиугольников.
ВВЕДЕНИЕ
Будут рассматриваться модели, используемые для объяснения явлений фазовых переходов: кипения воды, намагничивания ферромагнетиков и т. д. Предполагается заданной решетка,
т. е. граф, вершины которого суть элементы Zd. Этот граф бесконечен и обладает достаточной «регулярностью». В этом обзоре мы рассмотрим квадратные, треугольные и шестиугольные решетки для ^ = 2 (см. соответственно рис. 1, 2 и 9), кубические
и кубоцентрические — для d = 3 (см. § 8). Две вершины, связанные между собой ребром, называются смежными.
Каждой вершине i соответствует переменная оц которая может принимать случайным образом конечное число q значений. Например, сг; = ±1, если речь идет о спине, или, например, о/ = 1 или О[ = 0 в зависимости от того, «занята» вершина i (атомом) или «свободна». (Важнейшей функцией является статистическая сумма1).) Она выражается через энергию взаимодействия.
*) В оригинале — fonction de partition (функция разбиения).— Прим. ред.
Взаимодействие между вершинами i и / есть функция переменных си и Oj и температуры Т. Иногда могут учитываться другие виды энергии (внешнее магнитное поле и т. д.). Дифференцируя статистическую сумму, получают обычно связываемые с системой физические величины (свободная энергия, плотность, восприимчивость, теплоемкость и т. д.).
Методология состоит в выборе подходящей идеализации для энергии взаимодействия, с тем чтобы сделать возможным точное вычисление статистической суммы. Обычно ограничиваются взаимодействием между ближайшими соседями. Наиболее известной является модель Изинга. Со времени решения этой модели Онзагером в 1944 г. (для d = 2 и при отсутствии внешнего магнитного поля) появилась серьезная литература о разрешимых моделях. Прекрасный обзор ее представляет собой недавно вышедшая книга Бакстера [1].
Несмотря на то что размерность этих моделей не превышает двух, они представляют интерес для понимания таких реальных процессов, как фазовые переходы. При фазовом переходе (т. е. при критической температуре Гс) физические величины имеют особенность. Поведение величины F(T) в окрестности Тс определяется критическим показателем X. Например, когда Т-^Тс, может иметь место соотношение F(T) ~ (Г — Тс)-Х- (Обозначение А ~ В имеет обычный для физики смысл, т. е. logД/logB стремится к 1.) Вычислению критических показателей физики придают большое значение.
Пусть D — конечная связная область рассматриваемой решетки, содержащая N вершин. Пусть ZDVH— статистическая сумма связанной с ней конечной системы. В действительности последняя есть полином, перечисляющий qN возможных конфигураций определенных параметров. Пример такого полинома приведен в § 8 для модели жестких шестиугольников. Для модели Изинга задача состоит в перечислении 2^ конфигураций Hi, .сг^==+1 на конечном прямоугольнике квадратной решетки при заданном числе пар смежных вершин i и /, таких что OiOj = —1. Важное значение имеет вычисление предела величины ZdN при условии, что D становится (в определенном смысле) бесконечно большой. Этот предел Z(T) называется термодинамическим пределом статистической суммы или приведенной статистической суммой, приходящейся на одну ячейку.
Связь между комбинаторикой и статистической механикой не нова. Например, давно известны комбинаторные решения модели Изинга [5]. Некоторые модели приводят вновь к известным объектам теории графов (хроматический полином, полином 'Татта, см. [6]).
Новым в комбинаторной постановке задачи об ориентированных фигурах является использование методов современной перечислительной комбинаторики, а именно упоминавшихся уже биективных методов. Начиная примерно с 70-х годов под влиянием различных школ, а именно Шютценберже во Франции и Рота в США, наступает расцвет того раздела комбинаторики^ который в разделе 05А журнала Mathematical Reviews называется classical combinatorial problems (классические задачи комбинаторики).
Здесь речь идет не только о перечислении, но также, например, и об интерпретации некоторых известных в классических разделах математики тождеств путем построения взаимно однозначного соответствия между двумя конечными структурами, являющимися объектами изучения. Возникают многочисленные связи с приложениями (статистики, информатика и др.), а также с другими областями математики (например, симметрические функции и ортогональные многочлены). Более полное представление читатель может получить, прочитав статью Картье [58] или [54].
Постепенно основные идеи прояснялись, и появлялись комбинаторные «модели», позволяющие интерпретировать семейства тождеств в целом. Излагаемая ниже комбинаторика ориентированных фигур привела к трем следующим моделям: коммутационный моноид1) Картье и Фоата [38] в модернизированной (и более наглядной) версии — укладок плиток — Дюлюка, Вьенно [40]; композиция разбиений Фоата, Шютценберже [43, 46] (или роды структур Жуайяля [50]), связанная с экспоненциальными производящими рядами; взвешенные пути Моцкина в комбинаторной теории производящих ортогональных многочленов и исследованиях непрерывных дробей Флажоле [42] и Вьенно [55].
ОРИЕНТИРОВАННЫЕ ФИГУРЫ
Обозначим П = Z X Z множество вершин квадратной решетки. Путь на П есть последовательность со = ($о, • • •, Sn) вершин st из П. Путь ведет из s0 в sn, его длина есть п, и (st, Si+i) есть элементарный шаг. Ориентированный путь — это путь, элементарные шаги которого направлены либо на север, либо на восток, т. е. если Si = (x, у), то соответственно s^+i = (^, у + 1) ИЛИ St-+1 = (% + 1, у).
Ориентированная фигура (на квадратной решетке) есть конечное подмножество A cz П, содержащее непустое множество
5 точек, расположенных на прямой, перпендикулярной главной диагонали, и такое, что для всякой точки аеД существует ориентированный путь, образованный вершинами фигуры и ведущий из некоторой точки S к а. Множество S, очевидно, единственно, и его элементы будем называть точечными источниками. Направление северо-восток называется физиками предпочтительным направлением (см. рис. 1, 3, 5).
Ширина (соответственно длина) ориентированной фигуры А есть минимум величины \Ь— ц| для всех целых а и Ь, таких что А располагается между прямыми, заданными уравнениями у = х -|- а, у = х + Ь (соответственно у = —х + а, у = —%+&). При перечислении фигуры рассматриваются с точностью до сдвига. Пусть ап — число ориентированных фигур размера (или мощности) |Д|=/г с единственным точечным источником. Обозначим 1п (соответственно Ln) среднюю ширину (соответственно длину) фигур в предположении, что они распределены равномерно. Физики считают, что при п—>■ оо имеют место соотношения следующего типа:
ап ~ ^гГ6; ^1п~пЧ (3) L„~nX
Задача состоит в вычислении показателей 0, v±, vy (и доказательстве их существования!). Вопрос, собственно говоря, не в описании термодинамической модели, но в том, чтобы представить модель как систему такого типа. Производящий ряд f (0= S ап^п играет роль термодинамической функции с одной 1
или несколькими вещественными критическими точками. Поведение f(0 в окрестности одной из них, обозначенной tc (наименьшей по абсолютной величине), позволяет (вообще говоря) вывести соотношение вида (1) и найти величины 0 и р = \/tc- Показатели 0, v± и Vy играют роль критических показателей. Они и соответствуют некоторым показателям термодинамических моделей. Кроме того, как будет видно в § 8, —f(—t) есть в точности плотность в газовой модели Бакстера. Ориентированные фигуры описывают также модель, называемую разветвленными полимерами в движущихся растворах. Здесь имеется связь с ветвящимися марковскими процессами. Наконец, ориентированные фигуры близки к моделям ориентированного просачивания (см. [7]).
Заметим, что классическое просачивание соответствует обычным (неориентированным) фигурам. Для этих фигур понятие направленного пути заменяется понятием пути, который может иметь четыре типа элементарных шагов: на север, юг, запад, восток. Такие фигуры известны в комбинаторике под названием
полимино (каждая вершина замещается элементарным квадратом двоичной решетки). Однако пока еще мы слишком далеки от знания точных формул для таких изотропных фигур.
Введение предпочтительного направления изменяет класс универсальности модели (т. е. ее критические показатели). Более того, для ориентированного просачивания, как и для ориентированных фигур, два критических показателя vj. и vy заменяют показатель v, характеризующий неориентированные модели.
Можно также определить ориентированные фигуры на треугольной решетке. Эту решетку можно рассматривать как квадратную решетку, которая дополнена диагоналями элементарных квадратов, параллельными главной диагонали. Тогда возможны ориентированные шаги трех типов: на север, на восток и шаг на северо-восток, т. е. si = (х, у), $ж = (х + 1, у + 1). Можно также обобщить понятие ориентированной фигуры на Zd. Относительно d = 3 отсылаем к § 8. Физики считают, что ориентированные фигуры на квадратных и треугольных решетках имеют одни и те же критические показатели: это положение известно как гипотеза универсальности. Класс универсальности зависит от размерности модели. Напротив, число р в формуле (1), называемое константой связи, зависит от типа выбранной решетки. .
ФИЗИЧЕСКИЕ МЕТОДЫ ДЛЯ ОРИЕНТИРОВАННЫХ ФИГУР
Опишем коротко различные приближенные методы вычисления критических показателей ориентированных фигур, используемые физиками с 1982 г. Именно они представляют хороший набор сильных методов, обычно используемых в статистической физике, таких как, например, методы ренормгруппы. Заметим, что получающиеся результаты более или менее приближенные. Выписывание точной формулы для критических показателей еще не означает строгого доказательства. Например, для модели связей на плоской квадратной решетке значение 1/2 для порога просачивания было принято физиками в 1963 г., тогда как строгое доказательство (Кастена) получено не ранее 1980 г. Для ориентированных фигур известны два различных метода, дающие vh = 0.8185 + 0.0010 (Надаль и др. [21]) и vy = 0.800 ± + 0.001 (Реднер и Янг [24]), тогда как строгого доказательства существования показателя vy (хотя с тех пор Реднер и Янг улучшили это значение) все еще нет. Мы проводим различие между «доказать» и «показать».
Теория поля позволяет построить теорию среднего поля для ориентированных фигур, обосновываемую введением предельной
критической размерности de, возмущения критических показателей относительно 8 = de — d, а также законов скейлинга. При d^ dc критические показатели не зависят от d. Так, для ориентированных фигур без «внутренних циклов», т. е. таких фигур, в которых никакие два различных ориентированных пути фигуры не ведут в одну точку, Дэй и Любенский [И] дают do = 7 и 8 = 7 — d. Эти фигуры оказываются объектами того же класса универсальности, что и (некоторые другие) ориентированные фигуры. Следовательно, v ± = 1/4 + 8/36, vn = 1/2 + 8/24 и 6 = 3/2 — 8/12.
Брейер и Янсен [9], а также Карди [10] показали эквивалентность модели ориентированных фигур размерности d и модели Ли — Янга размерности d— 1. Последняя представляет собою модель Изинга с мнимым магнитным полем, время рассматривается как предпочтительное направление. Он построил подмножество моделей, именуемых критическими динамическими моделями. Эта эквивалентность дает закон скейлинга 9 = = (d—l)vi (см. также Фэмили [15]) и показывает, что для размерности два 0 = vi = 1/2. Критический динамический показатель 2 характеризуется отношением 2 = V|/v±. Его нахождение сопряжено с большими трудностями, теми же, что и для размерности 1. Отметим, что аналогичная эквивалентность, согласно Паризи и Сурла [36], имеет место между неориентированными фигурами размерности d и моделью Ли — Янга размерности d—1. Это показывает, что критический показатель гд для ориентированных фигур размерности d ^ 2 тот же самый, что и показатель v для неориентированных фигур размерности d + 1.
Указанная аппроксимация, называемая аппроксимацией Флори, была сначала предложена для линейных полимеров (т. е. несамопересекающихся путей). К ориентированному случаю она была приспособлена Любенским, Ваннименю [19] и Реднером, Конильо [23]. Ими найдены предельная критическая размерность de = 7 и для d^ dc — показатели среднего поля, а именно v± = 1/4 и V], = 1/2.
Перечисление фигур на дереве Кели (которое можно рассматривать как предел решетки Zd при d-^oo) снова приводит к тем же показателям среднего поля, см. Надаль [20].
Заметим, что фигуры на дихотомическом дереве являются ничем иным, как известными в комбинаторике бинарными деревьями. Их число есть классическое число Каталана Сп =
1 ( 2/Z | »- 1/21 =——г I I, имеющее производящий ряд -тт [1 — (1 — 4/) ]
^ "г 1 \ П /
и асимптотику Сп ~ 4"П-з/2.
Другие методы являются численными. В соответствии с первыми членами производящих рядов метод аппроксимант Паде позволяет давать оценки критических показателей, см. Стенли и др. [25], Реднер, Янг [24], Дхар и др. [14]. Прямые перечисления привели Дхара, Фани и Барма к предположению, что» для числа ориентированных фигур на квадратной и треугольной решетке (размерности два) имеют место некоторые замечательные точные формулы.
ФИГУРЫ НА ОГРАНИЧЕННОЙ ЛЕНТЕ
(ПО ДЕРРИДА, ХАКИМУ, НАДАЛЮ, ВАННИМЕНЮ [17, 20, 21])
Для точного решения разрешимых моделей традиционно применяется метод трансфер-матриц (см., например, книгу Бакстера [1]). Он, в частности, хорошо приспособлен для перечисления ограниченных фигур на ленте ширины й, как показано на рис. 3. Фигура расположена между границами (зигзагообразными ломаными линиями), обозначенными на этом рисунке L^ и Lk-\. Сужая фигуру на прямую Dm, заданную уравнением у =—х— т, получают точечную конфигурацию Ст. Существует 2^ возможных конфигураций. Определим матрицу ТДх^, называемую трансфер-матрицей, строки и столбцы которой соответ-
Рис. 3. Ориентированная фигура на ограниченной ленте.
ствуют этим 2^ конфигурациям. Элемент (С, С') есть х^1, если С и С'— два последовательных сечения Ст и Ст^х одной и той же ориентированной фигуры, и равен нулю в противном случае. Через |С| обозначается число вершин, «занятых» данной конфигурацией. Отождествляя концы линий Ло и Lk-i, можно определить фигуры на циклической ленте и соответствующую трансфер-матрицу T^xY
Обозначим ^(С) (соответственно й^(С)) число ориентированных фигур размера п с источником С, расположенных на ленте (соответственно на циклической ленте) ширины к. Производящий ряд 2 йп^1п есть рациональная дробь, знаменате
лем которой является определитель det (/й—Ге(х)), где к — единичная матрица размера 2^X2*. Имеет место асимптотика
а^-^сЦС). (4)
Вычисление р,^ (как и аналога этой величины ц^) сводится к вычислению наибольшего собственного значения трансфер- матрицы. Надаль и др. [21] получили замечательный результат
M-fe = I + 2 cos-^, (5)
откуда следует, что ц = Пш ц^ = 3. Они получили также точ- £->оо
ную формулу для a^CY который является ничем иным, как собственным вектором трансфер-матрицы, соответствующим собственному значению Х*(х) = 1.
Методы феноменологической перенормировки позволяют дать точные оценки для v± и v|( и предположить, что v(1 = 9/ll.
Для циклических источников обозначим через N* число дыр ширины I, т. е. число последовательностей с i расположенными подряд «вакантными» позициями, окаймленными двумя позициями, «занятыми» источником.
Предложение 1 (Хаким, Надаль). ПустьПредложение 1 (Хаким, Надаль). Пустьтогда1 к~х^(O=TX(-1)Psin«Pртогда1 к~х^(O=TX(-1)Psin«Pрsin [(/ + 1/2) ар] X^isin (ар/2))sin [(/ + 1/2) ар] X^isin (ар/2))ар = (2р+ 1)^, (l+2cosap)"-1.(6)ар = (2р+ 1)^, (l+2cosap)"-1.(6)
Предложение 1 (Хаким, Надаль). Пусть
Предложение 1 (Хаким, Надаль). Пусть
тогда
1 к~х
^(O=TX(-1)Psin«Pр
тогда
1 к~х
^(O=TX(-1)Psin«Pр
sin [(/ + 1/2) ар] X^isin (ар/2))
sin [(/ + 1/2) ар] X^isin (ар/2))
ар = (2р+ 1)^, (l+2cosap)"-1.
(6)
ар = (2р+ 1)^, (l+2cosap)"-1.
(6)
Эту формулу, высказанную Надалем и др. [21] как предположение, доказали Хаким и Надаль [17], рассматривая трансфер-матрицу как оператор, действующий на пространстве спинов, и используя стандартную технику для интегрируемых
систем. Они дали формальный аналог, несколько более сложный, для а* (С) (свободные границы).
Из предложения 1 при k-^oo можно получить следующие замечательные точные формулы:
(7)(8)(7)(8)Из них выводится асимптотическая формула вида (1) с р = 3 и 6=1/2. Формула (7) была угадана Дхаром и др. [14]. ПоИз них выводится асимптотическая формула вида (1) с р = 3 и 6=1/2. Формула (7) была угадана Дхаром и др. [14]. ПопреЗпочтцтельное направлениепреЗпочтцтельное направлениеРис. 4. Случайные ориентированные фигуры размера 500, 1000, 2000 (по Надалю, Деррида, Ваннименю).Рис. 4. Случайные ориентированные фигуры размера 500, 1000, 2000 (по Надалю, Деррида, Ваннименю).
(7)
(8)
(7)
(8)
Из них выводится асимптотическая формула вида (1) с р = 3 и 6=1/2. Формула (7) была угадана Дхаром и др. [14]. По
Из них выводится асимптотическая формула вида (1) с р = 3 и 6=1/2. Формула (7) была угадана Дхаром и др. [14]. По
преЗпочтцтельное направление
преЗпочтцтельное направление
Рис. 4. Случайные ориентированные фигуры размера 500, 1000, 2000 (по Надалю, Деррида, Ваннименю).
Рис. 4. Случайные ориентированные фигуры размера 500, 1000, 2000 (по Надалю, Деррида, Ваннименю).
аналогии с предложением 1 для свободных границ, Надаль [20] показал, что v± = 1/2.
В § 8 можно найти другое доказательство формулы (8) (принадлежащее Дхару [12]), которое использует бакстеров- скую модель газа. Точная формула (6) позволяет порождать определенным образом расположенные случайные фигуры, имеющие многочисленные сгустки точек. Каждая фигура размера п порождается с одной и той же вероятностью \/ап. Как видно из рис. 4, имеются веские основания считать, что запрещение циклов в ориентированных фигурах не изменяет класса универсальности.
ВЗАИМНО ОДНОЗНАЧНОЕ СООТВЕТСТВИЕ МЕЖДУОРИЕНТИРОВАННЫМИ ФИГУРАМИ РАЗМЕРНОСТИ ДВА(НА КВАДРАТНЫХ РЕШЕТКАХ) И НЕКОТОРЫМИ ПУТЯМИРАЗМЕРНОСТИ ОДИН (ПО РАБОТЕ [28])
Пусть Fn — множество путей со = (s0 = 0, ..., Sn) на Z, состоящих из элементарных шагов, удовлетворяющих неравенству
|$ж— sj^ 1. В каждой вершине возможны три типа элементарных шагов. Обозначим через Fn множество путей, суженное на N, т. е. таких, что Si ^ 0.
Непосредственное вычисление показывает, что производящий ряд чисел I^/LJ именно тот, что фигурирует в (8). Путем установления элементарного взаимно однозначного соответствия можно также показать, что [fn-J задается посредством (7).
Рис. 5. Ориентированная фигура с компактным источником, $(Д) = 3, Anf(я) == 2.
Возникает задача установления взаимно однозначного соответствия между множеством Fn-i и множеством Ап ориентированных фигур на квадратной решетке, имеющих единственный точечный источник. Такое взаимно однозначное соответствие ср построено в [28].
Источник без дыр называется компактным (см. рис. 5). Фактически мы строим более общее взаимно однозначное соответствие ф между Fn-\ и ориентированными фигурами размера п, имеющими компактный источник.
Обозначения^ Пусть А— некоторая ориентированная фигура. Число ее точечных источников обозначим s(Л). Пусть р— точечный источник, имеющий наименьшую ординату. Пусть b — целое число, такое что р располагается на прямой, заданной уравнением у = х + Ь. Нижняя полуширина фигуры А, обозначаемая /inf(Л), есть минимум величины b— а на множестве целых чисел а, таких что рассматриваемая фигура целиком расположена выше прямой y = x-Vct. Пусть <о = (so, .S/0— путь из Fn; обозначим через /л(<о) наименьшее среди целых чисел Si (0 ^ i ^ п) и положим d(to) = sn— m((o).
Предложение 2 (Гуйю-Бошан, Вьенно). Существует взаимно однозначное соответствие ф между множеством путей Fn множеством ориентированных фигур размера n-V 1 на квадратной решетке, имеющих компактный источник, которое удовлетворяет следующим соотношениям:
m (со) = hnt (Ф (°*)) и 1 + ^ (to) = s (г|) (to)) для феРп. (9)
В частности, фигуры, имеющие единственный точечный источник, соответствуют путям из Рп, таким что sn = т(со). Обращением времени эти пути ставятся во взаимно однозначное соответствие с Fn. Таким образом, указанное взаимно однозначное соответствие (р установлено. Для всякого пути а> = ($о, ... . . ., sn) из F^ нижняя полуширина фигуры А = ф((о) равна sn. Теперь легко вывести (аналитически или посредством установления взаимно однозначного соответствия) следующую формулу, высказанную Дхаром в [12] как предположение.
Следствие 3.
Из соотношения (1) при р = 3, 0 = 1/2 следует, что v± = = 1/2. Обозначим сп,Р число ориентированных фигур размера п, имеющих компактный источник мощности р. Из предложения 2 следует, что другое предположение Дхара, также доказанное Хакимом и Надалем, вытекает из (6), а именно:
^м + 1, р ^п, р — 1 + ^п, р 4“ сп, р + \. (Ю)
Заметим также, что ап = сп, i есть число ориентированных фигур размера п с компактным источником, нижняя полуширина которых равна нулю.
По-видимому, еще более любопытной является формула, приведенная в следствии 4.
Следствие 4. Число ориентированных фигур размера п + 1 на квадратной решетке, имеющих компактный источник, равно У.
Я не знаю никакого простого способа доказать это. Используемая биекция ф получена комбинацией трех операторов U, I/, W над ориентированными фигурами с компактным источником. Вместе эти операторы добавляют точку к фигуре А. Оператор U добавляет точечный источник, V оставляет s(A) неизменным, и W уменьшает это число на единицу, кроме случая s(X)=l, когда -$(Ц7(Д))= 1. Определение V требует особой аккуратности.
Некоторые свойства фигур на ленте допускают простой перевод на язык путей. Например, свойство «быть на ленте» еле-
дует из высказывания, что путь со есть сужение на ограниченный отрезок Z. Заметив, что ориентированные фигуры (вообще говоря) могут быть получены превращением точечных источников фигуры в компактный источник, можно было бы передоказать выражения Хакима, Надаля для ^(С). Но если взаимно однозначное отображение гр единственно, это довольно тонкий результат. Лучше воспользоваться результатами §§ 7 и 8. Именно там приведена подлинная комбинаторная структура рассматриваемых ориентированных фигур.
УКЛАДКИ 1)
В [26] автор показал, что биекция гр может быть получена композицией трех взаимно однозначных отображений.
На каждом из этих трех этапов используется аппарат, построенный для решения ряда других задач комбинаторики.
Пусть X и Р— два множества и л — отображение множества Р в множество всех подмножеств X. Помеченная укладка (множества X плитками из Р) есть (частично) упорядоченное множество (Е, ^), снабженное отображением 9: Е-^Р, и удовлетворяющее двум следующим условиям:
для всякого х^Х множество {а^Е, х^л(9(а))} является цепью в Е,
для любых а, реЕ, а^Р, существует цепь a = at^ =^ а9 ^ . .. ^ а& = р, такая что л (9 (az)) Q л (9 (az+1)) ^ 0 для 1<7<й- 1.
Множество X называется базой, Р— множеством плиток. Отношение ос^р есть «а предшествует р». Это определение формализует интуитивное понятие укладки плиток; которую мож- представлять себе как объект, построенный из костяшек домино на шахматной доске и изображенный на рис. 6.
На этом рисунке X = R X R, плитка — внутренность объединения двух элементарных прямоугольников с целыми координатами вершин. Отображение л есть тождественное отображение, 9 ставит в соответствие каждой костяшке домино, входящей в укладку, ее «позицию» при проекции на шахматную доску. Вообще говоря, когда плитки — подмножества множества X, л— тождественное отображение. Мы ввели л в общее определение, потому что нам нужно строить укладки подмножеств множества X, имеющие определенную комбинаторную структуру (циклы и пути). В общем случае X и Р будут бесконечными. А^ножество Е будет всегда конечным.
9 В оригинале «empilements».—Прим. ред.
Легко определяется понятие изоморфизма между двумя укладками, имеющими одни и те же тройки (X, Р, л). Укладкой множества X плитками из Р (или типом укладки) назовем помеченную укладку множества X плитками из Р, определенную* с точностью до изоморфизма. Для более строгого определения нужно обратиться к «родам структур» Жуайяля [50]. Помеченные укладки образуют один род. Укладки суть типы этого рода.. Грубо говоря, мы считаем, что элементы укладок суть плитки.
Рис. 6. Укладка плиток.
В задачах перечисления используют обычные степенные ряды для укладок и экспоненциальные ряды для помеченных укладок. Для этих последних всегда предполагают, что Е есть отрезок (1, . пу
Первый этап. Ориентированные фигуры => укладки. Полагаем X = Z. Назовем домино пару ^i,i+^. i^Z. Пусть Р — множество таких домино, и пусть л— тождественное отображение на X. Как показано на рис. 7, ориентированные фигуры на треугольной решетке становятся укладками домино на Z. Предпочтительное направление — север. Каждая точка фигуры замещается одним домино.
Лемма 5. Описанное соответствие между ориентированными фигурами и укладками домино на Z взаимно однозначно.
Точечные источники соответствуют минимальным плиткам (и только им). В частности, ориентированные фигуры, имеющие только один точечный источник, соответствуют пирамидам^ т. е. укладкам, имеющим единственную минимальную плитку.
Укладка Е называется плотной (strict), если выполнены следующие условия:
а, РеЕ, а<р, л (0 (а)) = л (0 (Р)) => Зу ^ Е, «<(у<(р. (И)
При взаимно однозначном соответствии из леммы 5 фигурам на квадратной решетке соответствуют плотные укладки (домино на Z).
Второй этап. Укладки => пути. Здесь база X произвольна. Пусть и и у— два элемента X. Плитки теперь имеются двух
^сортов: циклы (или циклические перестановки у: ГХГ на подмножествах Г X) и пути ^ = (sQ=u, ..., s,. = у)—несамо- пересекающиеся пути, ведущие из и в у. По определению л (у) = Г и л (<о) = {s0, ..., sj.
Лемма 6. Существует взаимно однозначное соответствие между путями со в X, ведущими из и в v, и пирамидами Е на X, все плитки которых суть циклы, за исключением минимальной плитки, которая является путем (ведущим из и в и и неса- мопересекающимся). Более того, для всех вершин х и у из X число элементарных шагов (х, у) пути со равно числу элементарных шагов (х, у) пути в пирамиде, умноженному на число циклов у этой пирамиды, таких что у = у(х).
В частности, для X = Z путь, ведущий из 0 в у, принадлежит F (определение см. в § 5) тогда и только тогда, когда соответствующая пирамида относится к следующему типу: путь, образованный минимальной плиткой, есть последовательность (О, 1, 2, ..., у) при у^О (соответственно (0, —1, —2, ..., у) при у < 0); циклы имеют длину один или два и образованы двумя последовательными точками. Эти циклы отождествляются
с плитками, именуемыми мономино {г} и домино {i, i + 1}. Если. стационарный шаг sz+i = St запрещен для пути у, то укладки строятся только из домино.
йд 2йд 2Из этих замечаний в сочетании с леммами 5 и 6 получаем,, что число Ьп фигур (на треугольной решетке) размера п с единственным точечным источником таково:
йд 2
йд 2
(12)
Эта формула, высказанная в виде предположения Дхаром и др. [14], позднее была получена Дхаром [12] с использованием газовой модели Бакстера (см. § 8). Асимптотически Ьп ~ ~ 4^-i/2? и> таким образом, гипотеза универсальности подтверждается.
Рис. 8. Соответствие путь-> ориентированная фигура при со ^ ^ •Рис. 8. Соответствие путь-> ориентированная фигура при со ^ ^ •
Рис. 8. Соответствие путь-> ориентированная фигура при со ^ ^ •
Рис. 8. Соответствие путь-> ориентированная фигура при со ^ ^ •
Третий этап. Укладки => плотные укладки. Это несколько техническое взаимно однозначное отображение, преобразующее плотную укладку домино на N в укладку мономино и домино на четных положительных числах (рис. 8). Оно порождено другим, более простым отображением, происходящим из комбинаторной модели для ортогональных полиномов |55] (о которой говорится в § 7).
Комбинируя эти три этапа, находим в1 точности конструкцию ф(со) из § 5 для случая, когда <о е Ft (т. е. Anf (Ф (м)) = 0). Теперь остается сделать совсем немного для определения ^(п) в общем случае.
Укладки и коммутационные моноиды Картье и Фоата.
Картье и Фоата ввели в [38] коммутационные моноиды в. связи со знаменитой master theorem1) Макмагона и свойствами
*) Этот термин переводится иногда как «главная теорема», иногда как «основная теорема». — Прим. ред.
перегруппировок последовательностей. Фоата [44, 45] показал, что этот аппарат позволяет приспособить комбинаторную модель для биективного (путем установления некоторого взаимно однозначного соответствия) доказательства классических теорем алгебры матриц (обращение матрицы, тождество Якоби и др.). В случае путей и циклов (лемма 6) Дюлюк и автор [40] ввели укладки с целью упрощения и унификации таких биективных рассуждений. Такая формализация применяется также в других разделах комбинаторики (ортогональные полиномы [55] и полиномы паросочетаний графа [39]).
Коммутационные моноиды определяются следующим образом. Пусть Мо(Р) (обозначаемый также через Р*)— свободный моноид, порожденный Р. Пусть С — подмножество Р X Р- Коммутационный моноид, порожденный Р и С, есть факторизация моноида Мо(Р) по конгруэнции, порожденной отношением коммутативности сф = Ра для (а, Р)е С. Со всяким отображением л: Р-^Х связывают множество пар (а, Р), таких что л(а)П Г|л(Р) = 0. Тогда каждый элемент соответствующего коммутационного моноида находится во взаимно однозначном соответствии с укладкой множества X плитками из Р. Каждое слово длины п из одного и того же класса эквивалентности находится во взаимно однозначном соответствии с некоторой помеченной укладкой (Е = {1, ..., л}, - ), такой что I < /, когда плитка I предшествует /. Таким образом, лемма 6 есть просто измененная версия теоремы Картье, Фоата [38].
ИНВЕРСИЯ
В этом параграфе предполагаем, что база X и множество Р плиток укладки конечны. Пусть К — коммутативное кольцо с единицей, V — отображение Р-^К, именуемое оценкой. Практически К есть кольцо целых чисел или кольцо коммутативных полиномов от нескольких переменных с целыми коэффициентами. Оценка укладки ^Е, 0) есть произведение Ц v (0(a)).
Укладка называется тривиальной, если элементы Е попарно несравнимы. Это приводит к утверждению, что множества л (0(a)) попарно не пересекаются. Обозначим D^ полином, заданный соотношением
D(x) = Е (—1)|£| и (£)х|£|, (13) Е
где суммирование производится по тривиальным укладкам множества X плитками из Р.
Лемма 7. Производящий ряд помеченных укладок множества X плитками из Р есть
-7717-04)
Е
Эта лемма, в сущности, переложение теоремы 2.4 [38], дающее функцию Мёбиуса для коммутационных моноидов. Понятие функции Мёбиуса на (частично) упорядоченных множествах, обобщающее хорошо известную функцию Мёбиуса на целых числах, было популяризировано Рота [52]. Оно играет большую роль в комбинаторике.
Преимущество представленной здесь версии состоит в возможности сформулировать более сильную лемму для производящих рядов укладок, минимальные множества которых заранее фиксированы. В этом случае она принимает следующий вид:
F
где N (х) есть некоторый полином из К [х].
Идея доказательства состоит в следующем. Пусть N(х) = = X (— I)1^ у (£) у (^) x^,+|F|, где Е— тривиальная укладка, F)
F— укладка, удовлетворяющая заданным условиям. Посредством «переноса» некоторой максимальной плитки одной укладки в другую определяют инволюцию, группирующую попарно члены с оценкой одинаковой величины и противоположными знаками. Остается конечное число членов, дающее числитель N(x). Это соответствует парам (E,F), для которых такой «перенос» невозможен.
Отношение (15) применяют к укладкам домино на отрезке Х = (1, ..., к). Оценка домино выбирается равной 1. Обозначим Uк (х) полином Чебышёва второго рода. Определенный соотношением sin(/? + 1)£ = sin £(A(cos £). Полином /)(х), определенный равенством (13), является тогда полиномом F*k (х), сопряженным к ортогональному полиному ^(х) = ё/^(х/2). Прямое применение лемм 5 и 7 показывает, что производящий ряд ориентированных ограниченных фигур на ленте ширины к и треугольной решетке есть 1/Е^(х). Если заданы точечные источники, то в этом случае выполнено соотношение (15). Числитель N^ есть произведение полиномов Е*Дх\ индексы которых I соответствуют ширине дыр источника. Когда база X есть цикл Ск, имеющий к вершин, получаем фигуры на циклической ленте и, следовательно, полином Uk^ достаточно заменить полиномом Чебышёва первого рода Т^х^, определяемым соотношением cos £ = 7^ (cos g).
И опять случай ограниченных фигур на ленте (на квадратной решетке) получается комбинацией (15) с третьим этапом § 6. Образование пар мономино в укладках ведет к замене х на х—1. Никаких других вычислений для доказательства предложения 1 и его аналога в случае свободных границ не нужно.
Комбинаторная модель для ортогональных полиномов.
Предыдущие рассуждения позволяют построить часть комбинаторной модели для ортогональных производящих полиномов Флажоле [41] и Вьенно [55]. Эта модель, в терминах взвешенных путей, предложена Моцкином. Рассмотрим основную идею, переведя ее на язык укладок. Пусть у ({г}) = Ьг и u^V—1, i^=X\ суть соответственно оценки полимино и домино на N- Полиномы Dk^x), определенные равенством (13) при X = = {1, ..., к— 1}, являются сопряженными с полиномами РДх^ определяемыми линейными рекуррентными соотношениями
Рк^ = ^х-Ьк>Рк^-ХкРк_Лх\ Р,= \, Рх = х-Ьх. (16)
Взаимно однозначное отображение (фактически то же самое, что ив (15)) показывает, что эти полиномы ортогональны относительно последовательности моментов Мп = X у W, рДе р суммирование производится по пирамидам на N, образованным п мономино или домино, и минимальное подмножество которых содержит 0. Производящий ряд этих пирамид допускает переход к непрерывным дробям типа Якоби — Стильтьеса. Ограничение укладок на отрезок {0, ..., к—1} приводит к сокращению этих непрерывных дробей. Последние выбираются *в виде (15). Описанный случай полиномов Чебышёва приводит к выбору bk = 0, Хк = 1. Для фигур на квадратной решетке имеем Ьк = 1, Хк = 1. В этом случае получается последовательность ортогональных полиномов, рассмотренная Надалем и др. [21] в их доказательстве соотношения (5) и вычислении собственного вектора а (С). Соответствующие моменты становятся числами укладок (эти числа указаны Каталаном и Моцкином). Отметим, что взаимно однозначное соответствие из третьего этапа § 6 порождено взаимно однозначным соответствием (гораздо более простым), объясняющим так называемые свойства свертки в непрерывных дробях.
Другие замечания. Соотношение (15) возникает также во многих других комбинаторных задачах. Если плитки суть циклы, оцениваемые элементами матрицы Д, то Щх) = det (Z— Д), и лемма 7 представляет собой замаскированную master theorem Макмагона [51], тогда как соотношение (15) становится классической формулой обращения матрицы (/ — Д).
Если плитки суть домино (оцененные единицей) на конечном графе (пара двух смежных вершин), то полином D^, определенный равенством (13), называют полиномом паросочетания графа. Вычисление этого полинома для плоской решетки (по крайней мере ее «термодинамического предела»)—знаменитая задача, возникшая из статистической механики. Вычисление коэффициентов при более высоких степенях (число совершенных или полных паросочетаний) эквивалентно решению модели Изинга (d = 2, внешнее магнитное поле — нуль). Полиномы паросочетаний имеют вещественные корни. Биективное (почти полностью) доказательство дано де Сент-Катрин [39] как комбинация соотношения (15), леммы 6 и идеи Годсила [48].
ОРИЕНТИРОВАННЫЕ ТРЕХМЕРНЫЕ ФИГУРЫИ МОДЕЛИ ЖЕСТКИХ ШЕСТИУГОЛЬНИКОВ
Пусть D — конечное связное подмножество треугольной ре- .шетки. Обозначим h(n,d) число способов выбора п попарно не-
Рис. 9. Конфигурация точек, приводящих к h^n, d).
смежных вершин (рис. 9). Статистическая сумма для этой модели, называемой жесткими шестиугольниками, есть
ZD^= X h(n, DVn. ■(17)
n ^ О
Напомним, что термодинамический предел при D, становящемся (в определенном смысле) большим, имеет вид
Z^ = lim (ZD(0)'/|D|.(18)
D^>OO
Предположив существование этого предела, Бакстер решил эту модель ([30], [1, гл. 14] и Бакстер, Пирс [33]). В двух первых работах предполагаются более определенные свойства
аналитичности функции logZ(Z). Модель допускает фазовые переходы при 1С = -~ (11 + 5 V5) = П .09.
Обозначим /?т(^) и /?п(^) общее значение двух членов тождеств Роджерса — Рамануджана
XX(1-9) ... О-?”)(1-9) ... О-?”)„ (l-^+1)(l-95n+„ (l-^+1)(l-95n+(19)(19)
X
X
(1-9) ... О-?”)
(1-9) ... О-?”)
„ (l-^+1)(l-95n+
„ (l-^+1)(l-95n+
(19)
(19)
22(20)(20)
2
2
(20)
(20)
q
q) ... (1-Л „Уо (1 - »5"+2) (1 — <75П+3) '
Для 0 < / < tc функция ZU) получена посредством исключения q из двух следующих уравнений:
(21)
(1 _ ^"+2) (1 _ ^6п+3)2 (^бл-М) (]_^л+1)2 ^_^п^у^_^пу(1 - <76И+1) (1 - ^S) (1 - ^(l - 95n+2)3 (1 - 95"+3)3
(22)
Решение основывается на методе поквадрантных трансфер- матриц. Бакстер ввел более общую модель с двумя параметрами L и М на квадратной решетке с диагональными взаимодействиями. Переменная I, рассматриваемая как формальная переменная в указанных ниже производящих рядах, является здесь положительным числом, именуемым активностью (или фугасностью) газа. Бакстер определяет тогда соотношения между параметрами Л, М и /, при которых трансфер-матрицы коммутируют. Далее получается биквадратичное соотношение, связывающее eL и ем, допускающее параметризацию с использованием эллиптической тэта-функции. Исходная модель жестких шестиугольников соответствует предельному случаю режима I Бакстера при L = 0, М оо.
Дхар [12] показал, что производящий ряд ориентированных фигур (квадраты или треугольники, d = 2) можно заменой переменных свести к приведенной ниже модели обобщенных шестиугольников. Параметры не удовлетворяют соотношениям, которые делали бы модель разрешимой, но Бакстер [32] доказывает разрешимость, перейдя к величинам, не являющимся физически активными (/ < 0) в разрешимой модели Ферхагена [37] (модель Изинга с магнитным полем на треугольном источнике с некоторыми соотношениями между параметрами). Для этого случая Дхар выводит производящий ряд (8) и ряд, соответствующий (12).
В другой статье [13] Дхар рассматривает производящий ряд g^ ориентированных фигур на Z3 (разрешен четвертый шаг по диагоналям для ориентированных путей в направлении (1, 1, 1)). Он доказал, воспользовавшись вероятностными методами (модель «роста кристаллов»), что g^ связана с плотностью газа р (/) = /-^-log Z (/) в шестиугольной модели Бакстера соотношением
Чисто комбинаторное доказательство этого соотношения дано автором в [27]. В действительности полином (17) является полиномом типа (13). Плитки образованы шестью вершинами
Рис. 10. Плитка для укладок шестиугольников.
элементарных шестиугольников шестиугольной решетки (см. рис. 10).
Лемма 7 интерпретирует Z"Y^ как укладку шестиугольников. Перейдем к экспоненциальным рядам с помеченными укладками. Здесь можно применить технику частичного смешивания Фоата, Шютценберже [43, 46] (или предложенную автором версию этой техники, модернизированную Жуайялем [50]) для интерпретации logZ~l(/) как производящего ряда некоторых помеченных пирамид. Теперь легко понять переход к пределу (15). Рассмотрим «краевые эффекты» в ограниченных пирамидах на «цилиндре» множества D. Затем, применив оператор t^, перейдем к «повышению» меток пирамид. Переходя к обычным степенным рядам, получаем, что —р(—/) есть также производящий ряд для пирамид шестиугольников. Как и в двумерном случае, эти пирамиды находятся во взаимно однозначном соответствии с ориентированными фигурами на кубической решетке с диагональными шагами.
Дхар вывел из (23) и из решения Бакстера асимптотику для числа фигур. Она соответствует не имеющей физического смысла критической точке системы tNp =—1//с. Отсюда следует, что p, = (ll + 5V5)/2 и 9 = 5/6. Заметим, что тождество
1(11 + 5;V5) = (-^^)5
получено Роджерсом — Рамануджаном из непрерывной дроби
* ^1 1 _L ? '
Замечание. Значительно более простое доказательство этого знаменитого тождества можно провести, установив взаимно однозначное соответствие с укладками домино на N, если в качестве веса взять иЦ1—1,/}) = —qt. Фактически 7?i (^) и ^п(^)—частные случаи полиномов D^ и N(х), фигурирующих в (15).
Можно также рассмотреть вместе с Дхаром ориентированные фигуры на решетке, называемой «кубоцентрической», и комбинаторно доказать их эквивалентность модели, которая называется жесткими квадратами. Кроме того, эта модель есть предельный случай L = М — 0 модели Бакстера с двумя параметрами. Для этих значений модель неразрешима. Соответствующие пирамиды суть некоторые пирамиды квадратов.
Заметим, наконец, что модель жестких шестиугольников (соответственно жестких квадратов) сводима к модели Поттса для ^ = 2 (соответственно 7 = 3). С другой стороны, Эндрюс и Бакстер [29] пришли к пониманию решения шестиугольной модели с параметрами в случае, когда переменные Oi = 0 или 1, приписанные каждой вершине треугольной решетки, могут принимать р различных значений. При этом доказаны мульти- линейные аналоги тождеств типа Роджерса — Рамануджана. Доказана их эквивалентность некоторым моделям вершин.
ЗАКЛЮЧИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
Было бы очень интересно иметь прямое комбинаторное доказательство того, что производящий ряд для пирамид шестиугольников задается соотношениями (21), (22), (23), и понять, в чем состоит их отличие от перечислений пирамид квадратов.
Вычисление плотности и «параметра порядка» для разных режимов шестиугольной модели (с параметрами) позволяет получить кроме тождеств Роджерса — Рамануджана двенадцать
других тождеств того же типа, шесть из которых являются новыми. Они изобретены Бакстером и доказаны Эндрюсом [57]. Удивительно, что они приводят к обычной классификации гипергеометрических функций. Было бы, в частности, интересно понять, почему тождества типа Роджерса — Рамануджана всегда появляются в решении шестиугольной модели (см. Бакстер [31]).
Тождества Роджерса — Рамануджана могут быть интерпретированы в терминах разбиений целых чисел, которые обычно представляются посредством некоторой ориентированной фигуры, именуемой диаграммой Фере (см. Эндрюс [56]). Поиск биективного доказательства заставляет специалистов по комбинаторике тратить много чернил, см. Гарсиа, Милн [47]. Эти тождества имеют интерпретацию в терминах алгебр Каца — Муди (см. обзор Макдональда на этом семинаре [59]). Роль этих алгебр существенна для понимания разрешимости модели. Выдвинуты основные идеи (отношение звезда — треугольник, отношение обращения). См., например, Бакстер [1] или Екель и Майяр [34, 35].
Бесконечные произведения членов вида (1 — q1^ возникают во многих разрешимых моделях. Знаменитая функция А возникла в модели, называемой плоскими циклами. Хотя комбинаторное изучение эллиптических функций Якоби начато (Дюмон [41], Флажоле [42], Вьенно [53]), тета-функции и модулярные формы пока еще не изучены с этой точки зрения. Разрешимые модели статистической механики представляют собой, быть может, хорошую отправную точку для такого рода исследований.
Наконец, физики интересуются ориентированными растущими фигурами (модель ориентированной агрегации, см., например, Надаль и др. [22]). Это ориентированные фигуры, помеченные целыми числами 1, 2, ..., п таким образом, что метки возрастают вдоль ориентированных путей. Знаменитые таблицы Юнга [58], соответствующие фигурам «диаграмм Фере», являются частным случаем такого рода объектов. Три типа формы ориентированных фигур приводят к формулам, именуемым в комбинаторике «формулами крюка» (formules d’equerre). Вот единственные типы таких формул, известные в настоящее время: таблицы Юнга, усеченные таблицы Юнга, растущие (бинарные) деревья, соответствующие фигурам без циклов. Существуют ли другие формулы крюка? Известно, что таблицы Юнга связаны с представлениями симметрических групп. Какая алгебраическая структура играет роль аналога растущих ориентированных фигур?
Благодарности. Я благодарю М. Е. Екеля, Ж. М. Майяра, Ж. П. Надаля и Ж. Ваннименю за живые дискуссии на темы «статистической механики. Я благодарю также Д. Фоата и Ж. Л. Вердье за многочисленные замечания, а также А. Доди, который меня познакомил с Ж. Ваннименю, который в свою очередь познакомил меня с ориентированными фигурами.
ЛИТЕРАТУРА
Основные работы и статьи по синтезу
Обзор известных актуально разрешимых моделей
R. Bakster, Exactly solved models in statistical mechanics, Academic Press, New York, 1982. [Имеется перевод: Бэкстер P. Точно решаемые модели в статистической механике. — М.: Мир, 1985.]
Книги по статистической механике
D. Ruelle, Statistical mechanics, rigorous results, Benjamin, New York, 1969. [Имеется перевод: Рюэль Д. Статистическая механика. Строгие результаты. — М.: Мир, 1971.]
С. Domb et М. S. Green, eds, Phase transition and critical phenomena, Academic Press, New York, 1974.
Комбинаторные методы в статистической физике,комбинаторное решение модели Изингаи формулировка на языке графов
J. К. Percus, Combinatorial methods, Applied mathematical sciences, vol. 4, Springer-Verlag, New York/Berlin, 1971.
P. W. Kasteleyn, Graph theory and crystal physics, in «Graph theory and theoretical physics», F. Harary ed. Academic Press, New York, 1967, 43—110.
F. Y. Wu. Graph theory in statistical physics, in «Studies in foundations and combinatorics», Advances in Math, supplementary studies, vol. 1, 1978.
Недавний обзор задач просачивания,ориентированного просачивания и фигур(с цитированными статьями по синтезу)
М. Sahimi, Critical exponents and thresholds for percolation and conduction, in «Mathematics and physics of desordered media», Lecture Notes in Maths n° 1035, Springer-Verlag, New York/Berlin, 1983, 314—346.
Статьи об ориентированных фигурах
N. Breuer, Corrections to scaling for directed branched polymers (lattice animals), .preprint (1983), soumis a Z. Physik B.
N. Breuer et H. K. Janssen, Critical behaviour of directed branched polymers and the dynamics at Yang — Lee edge singularity, Z. Physik B, 48 (1982) 347—350.
J. L. Cardy, Directed lattice animals and the Lee — Yang edge singularity, J. Phys. A: Math. Gen., 15 (1982), 1593—1595.
A. R. Day et T. C. Lubensky, e expansion for directed animals, J. Phys. A: Math. Gen., 15 (1982), L 285—L 290.
D. Dhar, Equivalence of the two-dimentional directed-site animal problem to Baxter’s Hard-Square Lattice-Gas model, Phys. Rev. Lett., 49 (1982), 959—962.
D. Dhar, Exact solution of a directed-site animals-enumeration problem in 3 dimensions, Phys. Rev. Lett., 59 (1983), 853—856.
D. Dhar, M. K. Phani et M, Barma, Enumeration of directed site animals on two-dimensional lattices, J. Phys. A: Math. Gen., 15 (1982), L 279— L284.
F. Family, Relation between size and shape of isotropic and directed percolation clusters and lattice animals, J. Phys. A: Math. Gen., 15(1982), L 583—L 592.
J. E. Green et M. A. Moore, Application of directed lattice animal theory to river networks, J. Phys. A: Math. Gen., 15 (1982), L 597—L 599.
V. Hakim et J. P. Nadal, Exact results for 2D directed animals om a strip of finite width, J. Phys. A: Math. Gen., 16 (1983), L213—L218.
H. Herrmann, F. Family et H. E. Stanley, Position-space renormalisation group for directed branced polymers, J. Phys. A: Mith. Gen., 16 (1983), L 375—L 379.
T. C. Lubensky et J. Vannimenus, Flory approximation for directed branched polymers and directed percolation, J. Physique, 43 (1982), L377—L 381.
J. P. Nadal, Etude des systemes diriges en physique statistique, These 3eme cycle, Univ. d’Orsay, 1983.
J. P. Nadal, B. Derrida et J. Vannimenus, Directed lattice animals in 2 dimensions: numerical and exact results, J. Physique, 43 (1982), 1561.
J. P. Nadal, B. Derrida et J. Vannimenus, Directed Diffusion-controlled Aggregation versus directed animals, Preprint (1983).
S. Redner et A. Coniglio, Flory theory for directed lattice animals and directed percolation, J. Phys. A: Math. Gen., 15 (1982), L 273—L 278.
S. Redner et Z. R. Yang, Size and shape directed lattice animals, J. Phys. A: Math. Gen., 15 (1982), L 177—L 187.
H. E. Stanley, S. Redner et Z. R. Yang, Site and bond directed branched polymers for arbitrary dimensionality: evidence supporting a relation with the Lee — Yang edge arbitrary, J. Phys. A: Math. Gen., 15 (1982), L 569—L 573.
G. Viennot, Combinatorial solution of the 2D directed lattice animals problem with heaps of dominos, en preparation.
G. Viennot, Directed animals and combinatorial interpretation of the density of gaz, Advances in Applied Maths.
G. Viennot et D, Gouyou — Beauchamps, The number of directed animals,. Advances in Applied Maths.
Другие цитированные статьи по статистической механике
G. Е. Andrews, R. J. Baxter et Р. J. Forresters, Eight vertex SOAS model and generalized Rogers — Ramanujan type identities, preprint (1984).
R. J. Baxter, Hard hexagons: exact solution, J. Phys. A: Math. Gen., IS (1980), L61—L70.
R. J. Baxter, Rogers — Ramanujan identities in hard hexagon model, J. Stat. Physics, 26 (1981), 427—452.
R. J. Baxter, письмо Дхару, цитированное в [12].
R. J. Baxter et P. A. Pearce, Hard hexagones: interfacial tension and correlation length, J. Phys. A: Math. Gen., 15 (1982), L 897—L910.
M. T. Jaekel et J. M. Maillard, Modeles solubles en mecanique statistique^ Proc. R. С. P. 25, vol. 29, Publ. IRMA, Strasbourg (1982), 93.
J. M. Maillard, Equations fonctionnelles en mecanique statistique, Note. CEA-N-2332, (1983).
G. Parisi et N. Sourlas, Phys. Rev. Lett. 14 (1981), 871.
A. M. W. Verhagen, J. Stat. Physics, 15 (1976), 219.
Цитированные статьи по комбинаторике
Р. Cartier et D. Foata, Problemes combinatoires de commutation et rearrangements, Lecture Notes in Maths. n° 85, Springer-Verlag, New York/ Berlin, 1969.
M. de Sainte Catherine, Couplage ot Pfaffien en combinatoire et physique, These Seme cycle, Universite de Bordeaux, I, 1983.
S. Dulucq et G. Viennot, The Cartier — Foata commutation monoid revisited with heaps of pieces, manuscript, 1983.
] D. Dumont, Une approche combinatoire des fonctions elliptiques de Jacobi, Advances in Maths., 41 (1981), 1—39.
P. Flajolet, Combinatorial aspects of continued fractions, Discrete Math., 32 (1980), 125—161.
D. Foata, La serie generatrice exponentielle dans les problemes d’enumeration, Presses de 1’Univ. de Montreal, (1974).
D. Foata, A non-commutative version of the matrix inversion formula, Advances in Maths., 31 (1979), 330—349.
t[45] D. Foata, A combinatorial proof of Jacobi’s identitv, Annals of Discrete Maths. 6 (1980), 125—135.
D. Foata, M. P. Schutzenberger, Theorie geometrique des polynomes Euleriens, Lecture Notes in Maths. n° 138, Springer-Verlag, New York/ Berlin, 1970.
A. Garsia, S. Milne, A Rogers—Ramanujan bijection, J. Combinatorial Th., A, 31 (1981), 289—339.
C. D. Godsil, Matchings and walks in graphs, J. Graphs Th., 5 (1981), 285—291.
S. N. Joni et G. C. Rota, Coalgebras and bialgebras in combinatorics, Studies in Applied Maths., 61 (1979), 93—139.
A. Joyal, Une theorie combinatoire des series formelles, Advances in Maths., 42 (1981), 1—82.
P. A. MacMagon, Combinatory Analysis, Cambridge Univ. Press, London, 1915. Перепечатка: Chelsea, New York, (1960).
G. C. Rota, On the foudations of combinatorial theory, I. Theory of Mobius functions, Z. Wahrsch. Band 2, Heft 4, (1964), 340—368.
G. Viennot, Une interpretation combinatoire des coefficientes des deve- loppements en serie entiere des fonctions elliptiques de Jacobi, J. Combinatorial Th., A, 29 (1980), 121 — 133.
G. Viennot, Theorie combinatoire des nombres d’Euler et Genocchi, Se- minaire Theorie des Nombres 1981/82, Publication Universite de Bordeaux I, 94 p.
G. Viennot, Theorie combinatoire des polynomes ortogonaux generaux, Notes de seminaire de 1’Univ. du Quebec a Montreal, (1983), 165p.
E. Другие цитированные статьи и работы
G. Е. Andrews, The theory of partitions, Encyclopedia of Maths, and its applications, G. C. Rota ed., vol. 2, Addison-Wesley, Reading, (1976). [Имеется перевод: Эндрюс Г. Теория разбиений. — М.: Мир, 1979.]
G. Е. Andrews, The hard-hexagon model and Rogers — Ramanujan identities, Pros. Nat. Acad. Sci. U.S.A., 78, (1981), 5290—5292.
P. Cartier, La theorie classique et moderne des fonctions symetriques, Seminaire Bourbaki, expose n° 577, Asterisque n° 105—106, (1983), 1—23.
I. G. MacDonald, Affine Lie algebras and modular forms, Seminaire Bourbaki, expose n° 577, Lecture Notes in Maths. n°901, Springer-V'erlag, New York/Berlin, (1981), 258—275.
СОДЕРЖАНИЕ
ДЖ. МИТЧЕЛ, Д. МАУНТ, К. ПАПАДИМИТРИУ. Дискретная геодези
ческая задача. Перевод А. Ю. Каргаишна 5
Р. Э. ТАРЬЯН, К. ДЖ. ВАН ВИК. Алгоритм триангуляции простого многоугольника с временной сложностью О (n log log п). Перевод М. М. Комарова41
Л. ДЖ. ВАЛЬЯНТ. Отрицание малоэффективно для булевых слой-функ- ций. Перевод В. В. Кочергина ........97
Н. БЛЮМ, М. СЕЙСЕН. Характеристика всех оптимальных схем из функциональных элементов для одновременного вычисления AND и NOR. Перевод К. А. Зыкова104
П. ТЕРВИЛЛИГЕР. Характеризация Р- и Q-полиномиальных схем отношений. Перевод В. И. Левенштейна . .. . 118
П. К. САХУ, С. СОЛТАНИ, А. К. ВОНГ, И. С. ЧЕНЬ. Обзор по пороговым методам. Перевод Т. М. Дадашева . . 139
Ж. ВЬЕННО. Комбинаторные задачи статистической физики. Перевод Н. А. Карповой 173
Научное издание
КИБЕРНЕТИЧЕСКИЙ СБОРНИК
Новая серия
Выпуск
27
Заведующий редакцией чл.-корр. АН СССР В. И. Арнольд
Зам. зав. редакцией А. С. Попов
Научный редактор С. В. Чудов
Мл. научные редакторы Т. А. Дехтярева, Л. А. Королева
Художник Н. К. Сапожников
Художественный редактор В. И. Шаповалов
Технический редактор Л. П. Бирюкова
Корректор Л. И. Панова
ИБ № 7335
Сдано в набор 05.01.89. Подписано к печати 23.07.90. Формат 60X90V16-Бумага типографская № 1. Печать высокая. Гарнитура литературная. Объем 6,25- бум. л. Усл. печ. л. 12,5. Усл. кр.-отт. 12,5. Уч.-изд. л. 11,56. Изд. № 1/7147. Тираж 2900 экз. Зак. 384. Цена 2 р. 50 к. В/О «Совэкспорткнига» государственного комитета СССР по печати. Издательство «Мир», 129820, ГСП, .Москва, И-110, 1-й Рижский пер., 2.
Набрано в Ленинградской типографии № 2 головного предприятия ордена Трудового Красного Знамени Ленинградского объединения «Техническая книга» им. Евгении Соколовой Государственного комитета СССР по печати. 198052, г. Ленинград, Л-52, Измайловский проспект, 29. Отпечатано в Ленинградской типографии № 8 ордена Трудового Красного Знамени Ленинградского объединения «Техническая книга» им. Евгении Соколовой Государственного комитета СССР по печати. 190000, Ленинград, Прачечный переулок, 6.
4. ИСПОЛЬЗОВАНИЕ МЕТОДА СБАЛАНСИРОВАННОГО РАЗБИЕНИЯНА ЧАСТИ
Алгоритм вычисления пар видимости, приведенный в разд. 3, в худшем случае может порождать области, содержащие в общей сложности Q(n2) граничных сегментов (граничный сегмент учитывается каждый раз, когда он входит в некоторую область).
Как будет показано в разд. 5, для того чтобы данный алгоритм ймел временную сложность О (п log log п), необходимо, чтобы суммарное число граничных сегментов не превышало О (п log п). Мы достигаем этого, модифицировав алгоритм таким образом, чтобы использовать в нем стратегию сбалансированного разбиения на части (сбалансированный метод «разделяй и властвуй»). Предлагаемая модификация заключается в более тщательном
3) Fachbereich 12, Mathematik, Johann Wolfgang v. Goethe-Universitat, D-6000 Frankfurt a. M., (Fed. Rep.).
© Springer-Verlag, 1984
очевидно, что в этом случае d =^= Хь В случае 1.2 возможное увеличение
числа входов с выходной степенью 1 (если d = х^ в схеме р' компенсирует
ся тем, что выходная степень хп становится равной 2.— Прим, перев.
6( —1, если х < 0.
Вычисление обобщенного значения градиента А(х, у) на элементе (х, у) проводится по формуле
Г 4__"I1/2
A (х, У) = [ 2 Dl + V2 Di (Оз 4- О4) - V2 Ог фг - П4) J ,где.
D1=f(x+ 1, у) —f(x — 1, у),
D2 = f U, у — 1) — f {х, у + 1),
D, = Hx-V 1, у+1)-Цх-1, у — 1),
O4 = f(x+1, у — 1) — f (х — 1, у + 1).
Используя обе меры, можно получить оценки значения порога по каждому из перечисленных выше методов. В табл. 2а, 2Ь и 2с приведены результаты этих оценок. Заметим, что указанные значения перенормированы по наилучшему возможному значению порога для каждой меры (справа приведен ранг каждого метода).
*) В оригинале «monoide de commutation». Иногда используется название «частично коммутативный моноид» [1*].—Прим. ред.
Кибернетическийсборник
НОВАЯ СЕРИЯ
ВЫПУСК
Перевод с английскогопод редакцией
О. Б. ЛУПАНОВА ИО. М. касим-заде
МОСКВА «МИР» 1990
ББК 32.81
К38
УДК 519.95
Кибернетический сборник. Новая серия. Вып. 27. Сб. К38 статей: Пер. с англ. — М.: Мир, 1990. — 200 с., ил.
ISSN 0234—1921
Продолжение известной серии сборников, начатой издательством в 1965 г. В данном выпуске содержатся оригинальные и обзорные работы зарубежных ученых по актуальным проблемам теоретической кибернетики и ее приложениям. Большой интерес вызовут статьи К. Пападимитриу и др. о построении геодезических и Р. Тарьяна и др. о сверхбыстрых алгоритмах триангуляции. Применению новых методов перечислительной комбинаторики посвящена статья Ж. Вьенно. Включены также работы по теории сложности, алгебраическим схемам отношений и обзор по методам преобразования многоуровневых изображений в двухуровневые. Среди авторов — специалисты из Канады, США, Франции.
Для научных работников, инженеров-исследователей, аспирантов и студентов университетов.
ББК 32.81ББК 32.81IZ 1402010000—377 .
ББК 32.81
ББК 32.81
К —04Й0ТН90” ‘-90
Редакция литературы по математическим наукам
ISSN 0234—1921ISSN 0234—1921© состав, Лупанов О. Б., Касим-Заде О. М.; перевод на русский язык, коллектив переводчиков, 1990.
ISSN 0234—1921
ISSN 0234—1921
Дискретная геодезическая задача’
Джозеф Митчел), Дэвид Маунт) и Кристос Пападимитриу)
Предлагается алгоритм определения кратчайшего пути между двумя точками на произвольной (возможно, невыпуклой) многогранной поверхности. Путь должен проходить по поверхности; метрика предполагается евклидовой. Сложность алгоритма по времени составляет О (/г2 log/г), а по объему памяти О (п2), где п— число ребер поверхности. После того как алгоритм отработает, расстояние от начальной точки до любой концевой точки поверхности может быть определено с помощью стандартных методов за время O(logzz) локализацией положения конечной точки в полученном разбиении поверхности. Кратчайший путь от начальной до конечной точки может быть найден за время О (^ + log п), где к— число граней, через которые он проходит. Алгоритм можно обобщить на случай нескольких начальных точек, что позволяет строить на поверхности диаграмму Вороного, при этом п равно максимуму из числа вершин поверхности и числа начальных точек.