Interesuje mnie złożoność decydowania, czy dany nie-prosty wielokąt jest prawie prosty, w jednym z dwóch różnych formalnych zmysłów: słabo prostym lub nie-samokreślącym . Ponieważ te terminy nie są powszechnie znane, zacznę od niektórych definicji.
Wieloboku jest zamknięty cykl odcinków łączenia kilku skończoną sekwencję punkty na płaszczyźnie. Punkty nazywane są wierzchołkami wielokąta, a segmenty nazywane są jego krawędziami . Możemy określić dowolny wielokąt, po prostu wymieniając jego wierzchołki w kolejności.
Wielokąt jest prosty, jeśli wszystkie wierzchołków są różne, a krawędzie przecinają się tylko w punktach końcowych. Odpowiednio, wielokąt jest prosty, jeśli jest homeomorficzny dla koła, a każda krawędź ma długość dodatnią. Ogólnie jednak wierzchołki i krawędzie wielokąta mogą przecinać się dowolnie, a nawet pokrywać. 1
Rozważ dwie ścieżki wielokątne i których przecięcie jest wspólną podścieżką obu (być może pojedynczym punktem). Mówimy, że i B krzyż , jeśli ich punkty końcowe A (0), B (0), A (1), B (1) zastępcy na granicy dzielnicy wspólnej podścieżkę A \ cap B . Wielobok sam się krzyżuje, jeśli ma dwie przecinające się podścieżki, a w przeciwnym razie nie krzyżuje się . 2)
Wielobok jest słabo prosty, jeśli stanowi granicę sekwencji prostych wieloboków lub równoważnie, jeśli występuje dowolnie mała perturbacja wierzchołków, która sprawia, że wielobok jest prosty. Każdy słabo prosty wielokąt nie przechodzi przez siebie; jednak niektóre wielokąty nieprzekraczające się nie są dość proste.
Rozważmy na przykład sześć punktów pokazanych poniżej.
Wielokąt jest prosty; patrz lewa postać.
Wielobok jest słabo prosty; środkowa figura pokazuje pobliski prosty wielokąt. Jednak ten wielokąt nie jest prosty, ponieważ odwiedza trzy razy.
Wielobok to samo przejście, ponieważ podścieżki i krzyż. Zobacz odpowiednią liczbę dla intuicji.b p q z y q p a
Wreszcie, wielokąt (który nakręca dwukrotnie wokół środkowego wielokąta) jest non-self-przejście, ale to nie słabo proste. Intuicyjnie liczba zwrotna tego wielokąta wynosi , podczas gdy liczba zwrotna dowolnego prostego wielokąta musi wynosić . (Formalny dowód wymaga pewnej analizy przypadku, częściowo dlatego, że liczba zwrotów nie jest właściwie dobrze zdefiniowana dla wielokątów z kątami !)± 2 ± 1 0 ∘
Aktualizacja (13 września): Na poniższym rysunku wielokąt nie przechodzi przez siebie i ma zwrot 1 , ale nie jest to wcale takie proste. Wielokąt ma prawdopodobnie kilka przecinających się niełatwych ścieżek , ale nie ma żadnych prostych ścieżek . (Mówię „prawdopodobnie”, ponieważ nie jest jasne, jak określić, kiedy krzyżują się dwa niełatwe spacery!)
Na koniec oto moje aktualne pytania:
Jak szybko możemy ustalić, czy dany wielokąt nie przechodzi przez siebie?
Jak szybko możemy ustalić, czy dany wielokąt jest słabo prosty?
Pierwszy problem można rozwiązać w czasie w następujący sposób. Ponieważ istnieje wierzchołków, istnieją podścieżki wierzchołków ; możemy sprawdzić, czy jakaś konkretna podścieżka jest prosta w czasie (brutalną siłą). Dla każdej pary prostych podścieżek wierzchołek-wierzchołek możemy sprawdzić, czy przecinają się w czasie . Ale to nie może być najlepszy możliwy algorytm.n O ( n 2 ) O ( n 2 ) O ( n )
Nie wiem, czy drugi problem można rozwiązać w czasie wielomianowym. Myślę, że mogę szybko obliczyć dobrze zdefiniowaną liczbę zwrotną dla dowolnego nieprostego wielokąta (chyba że połączenie krawędzi wielokąta jest tylko ścieżką, w którym to przypadku wielokąt musi być słabo prosty); zobacz moją odpowiedź poniżej. Jednak nowy przykładowy wielokąt powyżej sugeruje, że brak przekraczania i obracanie numeru 1 nie oznacza słabo prostej.
Można określić, czy dana wielokąt jest prosty w w czasie sprawdzając każdą parę krawędziami przecięcia lub razem za pomocą standardowego algorytmu sweepline lub nawet w Czas za pomocą algorytmu triangulacji Chazelle. (Jeśli wielokąt wejściowy nie jest prosty, dowolny algorytm triangulacji wyrzuci wyjątek, pętlę nieskończoną lub wygeneruje dane wyjściowe, które nie są prawidłową triangulacją.) Ale żaden z tych algorytmów nie rozwiązuje problemów, o które pytam. O ( n log n ) O ( n )
1 Branko Grünbaum. Wieloboki: Meister miał rację, a Poinsot mylił się, ale zwyciężył . Beiträge zur Algebra und Geometrie 53 (1): 57–71, 2012.
2 Patrz na przykład: Erik D. Demaine i Joseph O'Rourke. Geometryczne algorytmy składania: powiązania, origami, wielościany . Cambridge University Press, 2007.