Диаграмма Вороного
Эта статья находится в разработке!
Определения
Неформальное определение
Есть множество точек
на плоскости. Для всех точек этой плоскости узнаем ближайшую к точку из . Таким образом получим разбиение плоскости на кусочки, в каждом из которых содержится одна точка из и все точки , для которых — ближайшая среди точек из .Формальное определение
— множество точек на плоскости. Назовём их сайтами (site).
Определение: |
Диаграмма Вороного (Voronoi diagram, | ) для сайтов на плоскости — это разбиение плоскости на ячеек (ячейка Вороного, Voronoi cell, ), по одной для каждого сайта, которые обладают свойством: для всех .
В зависимости от контекста будем называть диаграммой Вороного как разбиение на ячейки, так и составляющие эти ячейки вершины и рёбра.
Свойства
Количество вершин и рёбер в ячейке
Возьмём две точки плоскости:
и . Проведём серединный перпендикуляр к отрезку ; полученную полуплоскость, которая содержит в себе , обозначим , другую — . Заметим, что тогда и только тогда, когда . Отсюда вытекает следующее:Утверждение: |
Отсюда получаем, что что ячейка Вороного — это пересечение
полуплоскостей, и поэтому представляет собой (возможно, неограниченную) открытую выпуклую область с не более чем вершинами и рёбрами.Отсутствие прямых в общем случае
Теорема: |
Пусть — множество из сайтов. Если они все лежат на одной прямой, то представляет собой параллельную прямую. Иначе связная и все её рёбра — либо отрезки, либо лучи. |
Доказательство: |
В случае, если все сайты лежат на одной прямой, каждая пара соседних сайтов порождает серединный перпендикуляр к отрезку, содержащему их, и, соответственно, к прямой, которая содержит все сайты. Так получаются прямая, каждая из которых перпендикулярна прямой, содержащей сайты, а значит, эти прямые параллельны.
Рассмотрим теперь случай, когда сайты не лежат на одной прямой. Покажем, что рёбра — это отрезки или лучи, от противного. Предположим, что есть ребро Докажем теперь, что диаграмма связна. Предположим, что это не так. Тогда на её рёбрах найдутся две точки , являющееся прямой. Пусть оно — граница ячеек и . Пусть точка не лежит на прямой (по условию такая точка существует). Тогда серединный перпендикуляр к не параллелен , и, значит, он его пересекает. Но тогда та часть , что лежит в , не может быть границей , потому что она ближе к , чем к . Пришли к противоречию. и , между которыми нет пути по рёбрам диаграммы. Рассмотрим отрезок . Он пересекает некоторое количество ячеек диаграммы, и, раз пути по рёбрам нет, какая-то из них несвязная. Это возможно, только если какая-то ячейка представляет собой полосу, ограниченную двумя параллельными прямыми. Но в нашем случае в диаграмме не может быть прямых, пришли к противоречию. |
Линейность
Теорема: |
Для сайтов диаграмма Вороного содержит не больше вершин и рёбер. |
Доказательство: |
Для случая сайтов, лежащих на одной прямой, утверждение напрямую следует из вида диаграммы для этого случая, поэтому рассмотрим общий случай. По формуле Эйлера , где — число вершин, — число рёбер и — число граней связного планарного графа. Мы не можем сразу применить эту формулу к , потому что в этом графе есть полубесконечные рёбра. Поэтому добавим вершину , и все полубесконечные рёбра мы превратим в рёбра, инцидентные ей. Таким образом мы увеличили число вершин на одну, а число рёбер не изменилось. Число граней равно по определению диаграммы Вороного. Тогда по формуле Эйлера получаем .
Сумма степеней всех вершин полученного графа равна Домножим равенство на два и вычтем из него полученную нижнюю границу для , так как у каждого ребра есть ровно два конца (нет петель). Также у из каждой вершины исходят как минимум три ребра. Отсюда получаем . , в результате получим . Далее подставим этот результат в равенство и получим , что и требовалось доказать. |
Связь с триангуляцией Делоне
Определение: |
Наибольшая пустая окружность точки | по отношению к ( ) — наибольшая окружность с центром в такая, что во внутренности соответствующего ей круга не лежит ни одного сайта из .
Лемма: |
Точка — вершина диаграммы Вороного в том и только в том случае, когда содержит три и более сайтов на своей границе. |
Доказательство: |
Предположим, что Докажем в другую сторону: каждая вершина существует, а — соответствующие точки. Так как внутри нет других сайтов, должна быть на границе одновременно, то есть вершиной диаграмму. диаграммы инцидентна минимум трём рёбрам, и, поэтому, как минимум трём ячейкам . Тогда лежит на равном расстоянии от и не может быть другого сайта ближе к , так как иначе не сойдутся в . Поэтому можно построить окружность с центром в и на границе так, что внутри не будет других сайтов. |
Лемма: |
Серединный перпендикуляр к отрезку образует ребро диаграммы Вороного в том и только в том случае, если на нём есть точка такая, что содержит на своей границе только сайты . |
Доказательство: |
Предположим, что существует. Тогда, так как не содержит в себе сайтов и содержит на границе, . Отсюда выходит, что лежит — вершина или лежит на ребре диаграммы. Но по предыдущей лемме выходит, что не может быть вершиной диаграммы. Значит, она лежит на ребре, заданном серединным перпендикуляром к . Докажем в другую сторону: пусть серединный перпендикуляр к задаёт ребро диаграммы. Наибольшая пустая окружность любой точки на этом ребре должна содержать на границе и , и никаких других сайтов внутри. |
Теорема: |
Если соединить все сайты, соответствующие смежным ячейкам диаграммы Вороного, получится триангуляция Делоне для этого множества точек. |
Доказательство: |
Если ячейки, соответствующие сайтам Вспомним, что триангуляции Делоне принадлежат те и только те рёбра (с поправкой на точки, лежащие на одной окружности), на которых можно построить такую окружность, что внутри неё не будет лежать никаких точек. Тогда ребро является ребром триангуляции Делоне. За счёт равносильности в обеих используемых леммах мы добавим все рёбра и не построим лишних. | , смежны, то серединный перпендикуляр к отрезку образует ребро диаграммы Вороного, то есть к нему применима предыдущая лемма и можно построить окружность с и на границе, внутри которой не будет других сайтов.
Построение
Наивный алгоритм
Будем пересекать полуплоскости по по свойству ячейки диаграммы. Необходимо раз пересечь плоскость, что суммарно делается за .