Przeskocz do treści

Delta mi!

Diagramy Woronoja, czyli co widać z góry?

Mirosław Kowaluk

o artykule ...

  • Publikacja w Delcie: sierpień 2013
  • Publikacja elektroniczna: 31-07-2013
  • Autor: Mirosław Kowaluk
    Afiliacja: Instytut Informatyki, Wydział Matematyki, Informatyki i Mechaniki, Uniwersytet Warszawski
  • Wersja do druku [application/pdf]: (732 KB)

Kiedy wędrujemy po pustyni i poczujemy zmęczenie, poszukujemy najbliższej oazy, w której moglibyśmy zregenerować siły. Jeśli mamy szczęście, możemy spotkać na pustyni beduina, który wskaże nam właściwy kierunek do oazy. Czy rzeczywiście właściwy?

Gdybyśmy mogli unieść się w górę, zobaczylibyśmy interesujące nas obiekty znajdujące się w okolicy. Jak szybko określić, który z nich jest najbliżej? W tym celu moglibyśmy wykorzystać diagram Woronoja.

obrazek

Rys. 1 Diagram Woronoja

Rys. 1 Diagram Woronoja

Załóżmy, że obiektom, którymi jesteśmy zainteresowani, odpowiada zbiór math punktów na płaszczyźnie, które będziemy nazywać centrami. Odległość między punktami math definiujemy jako math

Definicja 1. Dla każdego centrum math obszar Woronoja math składa się z tych punktów płaszczyzny, dla których żadne inne centrum nie znajduje się bliżej niż math tzn. math Punkty należące do brzegów obszarów Woronoja tworzą diagram Woronoja.

Zauważmy, że centrum zawsze należy do odpowiadającego mu obszaru. Co więcej, do każdego obszaru należy tylko jedno centrum. Granicę między obszarami dla dwóch centrów math i  math wyznacza symetralna odcinka math Zatem obszar Woronoja dla math jest częścią wspólną półpłaszczyzn wyznaczanych przez symetralne odcinków math (dla math) i zawierających math Stąd wniosek, że obszary Woronoja są wielokątami wypukłymi (ograniczonymi lub nie), a krawędzie diagramu Woronoja są odcinkami lub półprostymi. Liczba krawędzi diagramu Woronoja jest liniowa względem liczby centrów, co uzasadnimy nieco dalej.

Wierzchołki diagramu Woronoja znajdują się w tej samej odległości od co najmniej trzech najbliższych centrów. Aby uprościć dalsze rozważania, przyjmijmy, że wierzchołek diagramu jest częścią wspólną dokładnie trzech obszarów Woronoja. Wtedy centra obszarów mających wspólny wierzchołek wyznaczają trójkąt. Ponieważ przeciwległe wierzchołki czworokąta nie mogą wyznaczać dwóch par sąsiadujących obszarów Woronoja, więc dwie różne krawędzie takich trójkątów nie mają innych punktów wspólnych niż końce. Wszystkie zdefiniowane w ten sposób trójkąty tworzą tzw. triangulację Delaunay.

Definicja 2. Triangulacja Delaunay to graf dualny do diagramu Woronoja. Wierzchołki triangulacji (centra obszarów) odpowiadają ścianom diagramu Woronoja (obszarom Woronoja). Natomiast odpowiednikami krawędzi triangulacji są krawędzie diagramu.

Zauważmy, że odpowiadające sobie krawędzie nie muszą się przecinać.

Triangulacja Delaunay jest grafem planarnym, a krawędzie ściany zewnętrznej wyznaczają otoczkę wypukłą zbioru math tzn. brzeg najmniejszego zbioru wypukłego zawierającego math Innymi słowy, wierzchołkami tej otoczki wypukłej są centra nieograniczonych obszarów Woronoja zbioru math Z własności grafów planarnych (twierdzenie Eulera) otrzymujemy, że liczba krawędzi triangulacji Delaunay jest liniowa względem liczby centrów. To pokazuje zarazem, że liczba krawędzi diagramu Woronoja jest liniowa względem liczby centrów.

Wierzchołki trójkąta należącego do triangulacji Delaunay wyznaczają okrąg o środku w wierzchołku diagramu Woronoja (gdyby na okręgu znajdowało się więcej centrów z  math to wyznaczany przez nie wielokąt moglibyśmy striangulować na różne sposoby). Spróbujmy uogólnić ten fakt.

Twierdzenie 1. Odcinek math gdzie math należy do triangulacji Delaunay wtedy i tylko wtedy, gdy istnieje okrąg przechodzący przez math i  math który nie zawiera w swoim wnętrzu punktów z  math

Dowód. Implikacja w prawą stronę wynika z konstrukcji triangulacji Delaunay. Musimy wykazać implikację w przeciwnym kierunku. Środek okręgu przechodzącego przez math i  math który nie zawiera w swoim wnętrzu punktów z  math z definicji należy do krawędzi diagramu Woronoja oddzielającej math i  math Zatem odcinek math jest krawędzią triangulacji Delaunay.


obrazek

Rys. 2 Triangulacja Delaunay i euklidesowe minimalne drzewo rozpinające

Rys. 2 Triangulacja Delaunay i euklidesowe minimalne drzewo rozpinające

Pokażmy jeszcze jedną ciekawą własność triangulacji Delaunay.

Definicja 3. Euklidesowe minimalne drzewo rozpinające dla zbioru punktów math które oznaczamy przez math jest drzewem łączącym wszystkie punkty z  math i minimalizującym całkowitą długość krawędzi.

Twierdzenie 2. math jest podgrafem triangulacji Delaunay zbioru math

Dowód. Załóżmy, że teza nie jest prawdziwa. Niech math będzie krawędzią math która nie należy do triangulacji Delaunay zbioru math Wtedy, zgodnie z poprzednim twierdzeniem, okrąg o średnicy math zawiera w swoim wnętrzu punkt math Odcinki math i  math są krótsze od math Zatem krawędź math możemy zastąpić jednym z nich, nie niszcząc spójności grafu i zmniejszając całkowitą długość jego krawędzi. Jest to sprzeczne z założeniem, że math


W obliczeniach numerycznych ma zastosowanie jeszcze jedna, znacznie trudniejsza do udowodnienia, własność triangulacji Delaunay. Uporządkujmy niemalejąco kąty wszystkich trójkątów tworzących dowolną triangulację math zbioru math Następnie uporządkujmy leksykograficznie wszystkie triangulacje zbioru math tzn. dla math  oraz math zachodzi

display-math

oraz

display-math

Wtedy triangulacja Delaunay będzie ostatnim elementem tego porządku, tzn. triangulacja ta maksymalizuje minimalny kąt w tworzących ją trójkątach.

Wiedząc, że diagram Woronoja i triangulacja Delaunay mają tyle interesujących własności, spróbujmy skonstruować te grafy. Oczywiście, na mocy ich dualności wystarczy znaleźć tylko jeden z nich. Aby wyznaczyć diagram Woronoja, można zastosować pewne standardowe metody, np. „dziel i zwyciężaj” lub zamiatanie.

obrazek

Rys. 3 Rzut trójkąta triangulacji Delaunay na paraboloidę

Rys. 3 Rzut trójkąta triangulacji Delaunay na paraboloidę

Ale my znów spróbujemy unieść się w górę. Mianowicie, załóżmy, że punkty ze zbioru math należą do płaszczyzny math Zrzutujmy zbiór math równolegle do osi math na paraboloidę obrotową math Zauważmy, że obrazy punktów należących do okręgu zawartego w płaszczyźnie math będą współpłaszczyznowe. Rzeczywiście, jeśli punkt math spełnia równanie math to w przestrzeni trójwymiarowej punkt math należy do płaszczyzny math Zatem rzuty okręgów opisanych na trójkątach triangulacji Delaunay wyznaczają płaszczyzny przecinające paraboloidę i zawierające rzuty wierzchołków odpowiednich trójkątów. Co więcej, na mocy wypukłości paraboloidy obrotowej płaszczyzny te nie rozdzielają obrazów punktów z  math gdyż wnętrza okręgów opisanych na trójkątach triangulacji Delaunay (których rzuty są odcinane z paraboloidy przez omawiane płaszczyzny) nie zawierają punktów z  math Zatem rzuty ścian triangulacji Delaunay są ścianami otoczki wypukłej obrazów punktów z  math a rzuty krawędzi triangulacji są krawędziami otoczki wypukłej.

Zatem nie pozostaje nam nic innego, jak znaleźć otoczkę wypukłą zbioru punktów w przestrzeni trójwymiarowej. Możemy to zrobić, stosując np. metodę „dziel i zwyciężaj”. Złożoność obliczeniowa tego algorytmu wynosi math Następnie rzutujemy z powrotem na płaszczyznę math ściany otoczki wypukłej ograniczające ją od dołu i w ten sposób otrzymujemy triangulację Delaunay zbioru math Ponieważ wszystkie rzutowania możemy wykonać w czasie math  więc całkowita złożoność tego algorytmu wynosi math  Jest on więc nie tylko prosty, ale też efektywny.

Algorytm
Dane: Zbiór math punktów math na płaszczyźnie math
Wynik: Triangulacja Delaunay zbioru math
Zrzutuj zbiór math równolegle do osi math na paraboloidę math;
Znajdź otoczkę wypukłą zbioru obrazów punktów z  math; Zrzutuj prostopadle ściany otoczki wypukłej ograniczające ją od dołu na płaszczyznę math;
return Graf powstały na płaszczyźnie math;

Można również wykazać, że rzut prostopadły na płaszczyznę math minimalnego wielościanu wypukłego math  zawierającego paraboloidę math którego ściany zawierają się w płaszczyznach stycznych do tej paraboloidy w obrazach punktów z  math jest diagramem Woronoja zbioru math Dowód tego faktu pozostawiamy Czytelnikowi jako ćwiczenie.