Mam poważne problemy ze zrozumieniem jednego kroku w pracy Dobkina i Kirkpatricka o rozdzieleniu wielościanów. Próbuję zrozumieć tę wersję: http://www.cs.princeton.edu/~dpd/Papers/SCG-09-invited/old%20papers/DPD+Kirk.pdf
Twierdzi się, że gdy znamy najlepsze oddzielenie i , realizowanego przez i , można znaleźć oddzielenie i w schodów. Odbywa się to w następujący sposób. Bierzemy płaszczyznę równoległą do przez przecinamy nią na dwie części. Z jednej strony najbliższym punktem jest a z drugiej mamy `` elementarny '' wielościan, który możemy sprawdzić w czasie . Mój problem polega na tym - jak znaleźć ten elementarny wielościan? Należy pamiętać, że stopień r I w P í - 1 może być nieograniczona.
W pliku pdf, aby udowodnić Thm 5.1 ze strony 9, używają Thm 3.1 ze strony 4, co utrudnia śledzenie całej sprawy.
źródło
Odpowiedzi:
Odpowiedz zaktualizowane i przepisane od nowa.
Dostaniesz Polytope . Uruchom Dobkin-Kirkpatric hierarchię na P. To daje sekwencję polytops P 1 ⊆ P 2 ⊆ ... ⊆ P k = P . Załóżmy, że chcesz znaleźć punkt P najbliższy punkt kwerendy q . Podstawowy algorytm zaczyna się od obliczenia najbliższego punktu c 1 do q na P 1 , a następnie uwzględnia wszystkie nowe regiony (namioty) przylegające do c 1 , znajduje najbliższy punkt c 2 do qP P1⊆P2⊆…⊆Pk=P P q c1 q P1 c1 c2 q w tych nowych regionów, a dalej w ten sposób, aż docieramy .Pk
Teraz, jeśli jest na krawędzi, nie ma problemu - tylko dwa namioty mogą dotykać tej krawędzi lub tylko jeden z nich może zakrywać krawędź. W związku z tym aktualizacja c i + 1 z C i w tym przypadku zajmuje stały czas.ci ci+1 Ci
Problem pojawia się wtedy, gdy leży na wierzchołku wysokiego stopnia, ponieważ wtedy liczba nowych namiotów przylegających do niego przy przejściu do P i + 1 może być duża. Aby temu zaradzić, będziemy symulować wierzchołek dużego stopnia jako zbiór wierzchołków o niskim stopniu. W szczególności na każdym etapie, jeżeli c i leży na wierzchołku v , będziemy pamiętać dwie kolejne krawędzie e i , e ' i przylegające do v , tak że najbliższy punkt doci Pi+1 ci v ei,e′i v w P i + 1q Pi+1 leży na namiocie, który jest przyległy lub zakrywa jedną z tych dwóch krawędzi. W związku z tym możemy wykonać wymagane obliczenia w stałym czasie.
Pozostaje nam więc problem śledzenia tych dwóch krawędzi podczas wspinania się.
W tym celu wcześniej obliczyć dla każdego wierzchołka o P kierunek stycznej t v . Niech Q i ( v ) będzie wypukłym wielokątem, który jest figurą wierzchołka v dla wielokąta P i (z płaszczyzną definiującą figurę wierzchołka ma normalną w kierunku t v ). Koncepcyjnie, P 1 ( V ) , P 2 ( V ) , . . . , Q k ( v )v P tv Qi(v) v Pi tv Q1(v),Q2(v),...,Qk(v) zachowuje się jak hierarchia 2d DK. Jeśli najbliższy punkt na do q spoczywa na wierzchołku wag następnie odpowiada v a sąsiednią krawędzią e w P ı , gdzie krawędź e przecina płaszczyznę rysunku na wierzchołek wag . Jeśli najbliższy punkt na Q i ( v ) do q leży na krawędzi e ′ , pamiętasz, że dwie sąsiednie krawędzie P iQi(v) q w v e Pi e w Qi(v) q e′ Pi , które określają dwa wierzchołki (tutaje′ należy do Q i ( v ) ).e′ Qi(v)
A teraz skończymy ... Rzeczywiście, jeśli jest również na Q i + 1 ( v ), możemy go aktualizować w stałym czasie (ponieważ jest to tylko hierarchia 2d DK). Jeśli z drugiej strony c i + 1 nie jest już na Q i + 1 ( v ), to musi należeć do nowego namiotu, który sąsiaduje lub obejmuje poprzedni punkt c i . W obu przypadkach możemy go aktualizować w stałym czasie.ci+1 Qi+1(v) ci+1 Qi+1(v) ci
źródło
Twierdzenie 3.1 wymaga, aby hierarchiczna reprezentacja była zwarta . Jednym z wymagań dla zwięzłości, że stopień r I w P ı - 1 jest ograniczona przez stałą. Zobacz dół strony 3.P ri Pi−1
Definicja i konstrukcja hierarchii Dobkina-Kirkpatricka jest o wiele bardziej wyraźna we wcześniejszych artykułach (odniesienia [9,10,11] w czytanym dokumencie). Zdecydowanie polecam je najpierw przeczytać.
źródło
In case somebody would still be interested by the question: the snag in the Dobkin Kirpatrick explanation has also been pointed out in Barba and Langerman's Optimal detection of intersections between convex polyhedra.
They observe in the paper (SODA 2015 version, not arxiv) that O'Rourke's Computational Geometry in C, chap 7 already details a workaround (which is essentially Sariel's answer). The SODA paper also introduces an alternative solution; defining a variant of the DK hierarchy in which each vertex has bounded degree.
źródło