Eine Klasse von Problemen, die vermutlich in sind

Werbung
Eine Klasse von Problemen in O(n²)
Hoang Nguyen
März 2002
Einführung
In dieser Seminarausarbeitung beweisen wir für einige Probleme, dass sie mindestens so
schwer sind wie das folgende Basisproblem: Gibt es zu einer gegebenen Menge S von n
ganzen Zahlen drei Elemente aus S, deren Summe 0 ist? Wir nennen solche Probleme 3SUMhart. Der beste bekannte Algorithmus für 3SUM benötigt Θ(n²) Zeit, was auch für die grosse
Klasse der 3SUM-harten Probleme eine unüberwindbare Barriere zu sein scheint. Die Suche
nach o(n²) Lösungen für diese Probleme ist hoffnungslos, solange das Basisproblem nicht
schneller gelöst werden kann.
1 Reduktion
Wir setzen die Komplexitäten zweier Probleme in Relation, wenn ein Problem das andere
löst. Dies geschieht durch Transformation der Instanzen.
Definition 1.1 Seien A und B Probleme. Wir sagen, dass A f(n)-lösbar durch B ist, genau
dann wenn jede Instanz von A der Grösse n durch eine konstante Anzahl Instanzen (der
Grösse O(n)) von B und O(f(n)) zusätzlicher Zeit (Transformationskosten) gelöst werden
kann. Wir beschränken uns im Folgendem darauf, jede Instanz aus A zu jeweils nur einer
Instanz aus B zu transformieren und notieren
A<<f(n)B.
Für A<< f(n)B und B<<f(n)A nennen wir A und B f(n)-äquivalent und schreiben
A==f(n)B.
Ist A f(n)-lösbar durch B, so ist B in gewisser Weise mindestens so schwer wie A. Das aus der
Definition folgende Lemma macht dies explizit.
Lemma 1.1 Seien f und g zwei Polynome und A<<f(n)B. Sei O( g (n)) obere Schranke für B
und f (n) = O( g (n)) , dann ist O( g (n)) auch obere Schranke für A. Sei umgekehrt Ω( g (n))
untere Schranke für A und f (n) = o( g (n)) , dann ist Ω( g (n)) auch untere Schranke für B.
2 Das Basisproblem
Problem: 3SUM.
Instanz: Eine Menge S von n ganzen Zahlen.
Frage: Gibt es a,b,c ∈ S mit a + b + c = 0 ?
Der beste bekannte Algorithmus für 3SUM braucht Θ(n²) Zeit im Worst Case. 3SUM ist f(n)lösbar durch viele Probleme (für folgende Reduktionen genügen Transformationsschranken
f(n)=O(n log n) ). Diese sind mindestens so hart wie 3SUM.
1
Definition 2.1 Wir nennen ein Problem A 3SUM-hart, genau dann wenn 3SUM f(n)-lösbar
durch A ist, d.h. 3SUM<<f(n)A. Dabei ist f(n) = o(n²).
Zur Durchführung von Reduktionen definieren wir ein äquivalentes Βasisproblem:
Problem: 3SUM’.
Instanz: Drei Mengen A, B, C von insgesamt n ganzen Zahlen.
Frage: Gibt es drei Zahlen a∈A, b∈B, c∈C mit a + b = c ?
Theorem 2.1 3SUM’==n3SUM.
Beweis: 3SUM<< n3SUM’ ist trivial. Wir setzen einfach A=S, B=S, C=-S. Wenn a+b=c mit
a∈A, b∈B, c∈C gilt, dann ist offensichtlich a∈S, b∈S, (-c)∈S und a+b+(-c)=0. Für die
Umkehrung konstruieren wir eine Menge S, zu der es wenn 3 Elemente in der Summe 0 sind,
3 Elemente a∈A, b∈B und c∈C gibt, so dass a+b=c. Ohne Einschränkung seien A, B und C
positiv (sonst bilde A+k, B+k und C+2k mit passender Konstante k). Sei m=2*max(A,B,C).
Zu allen Elementen a∈A, b∈B, c∈C konstruieren wir Elemente a’=a+m, b’=b und c’=-c-m
für S. Wenn a+b=c dann a’+b’+c’=0, wir müssen nur noch einsehen, dass a, b und c aus drei
verschiedenen Mengen sind. Dies folgt aus der Konstruktion von S. !
3SUM’ (und somit 3SUM) kann in O(n²) gelöst werden: Sortiere die Mengen B und C.
Berechne für jedes a∈A die sortierte Menge B+a (plus a zu allen Elementen) in jeweils O(n)
und suche dann in O(n) ein gemeinsames Element in B+a und C. Da wir dies mit allen O(n)
Elementen a∈A wiederholen, ist die Laufzeit durch O(n²) beschränkt.
Die geometrische Interpretation des Basisproblems wird Reduktionen erleichtern.
Problem: GeomBase.
Instanz: Eine Menge von n Punkten mit ganzzahligen Koordinaten
auf drei Geraden y=0, y=1 und y=2.
Frage: Gibt es eine nicht horizontale Gerade durch 3 dieser Punkte ?
Theorem 2.2 GeomBase==n3SUM’.
Beweis: Zuerst zeigen wir 3SUM’<<nGeomBase. Wir erzeugen für alle Element a∈A, b∈B
und c∈C die Punkte (a,0), (b,2) bzw. (c/2,1). Offensichtlich sind drei Punkte (a,0), (b,2) und
(c/2,1) kolinear genau dann wenn a+b=c. Für die Umkehrung erzeugen wir zu jedem Punkt
(a,0) ein Element a∈A, zu jedem Punkt (b,2) ein Element b∈B und zu jedem Punkt (c,1) ein
Element 2c∈C. !
• •
B
C/2
•
A
•
•
•
•
•
•
•
• •
•
•
•
•
Figur 1: Ein Beispiel für GeomBase.
2
3 Inzidenz
Eine Reihe von Problemen in der algorithmischen Geometrie kann als Inzidenz-Probleme
formuliert werden. Die Frage ist, ob es zu einer gegebenen Menge von Objekten ein Objekt
aus einer bestimmten Klasse gibt, das eine geforderte Mindestzahl von Objekten in der Menge
berührt (oder schneidet).
Wenn zwei Objekte inzident sein sollen, ist das Problem normalerweise sehr effizient lösbar.
Bei Inzidenz mit mindestens drei Objekten erweisen sich viele Probleme als 3SUM-hart.
Problem: 3PointsOnLine.
Instanz: Eine Menge von Punkten in der Ebene.
Frage: Gibt es eine Gerade durch drei der Punkte?
Theorem 3.1 3SUM<<n3PointsOnLine.
Beweis: Wir transformieren jedes Element x∈S zu einem Punkt (x,x³). Es gilt a+b+c=0 genau
dann wenn (a,a³), (b,b³) und (c,c³) kolinear sind, d.h. wenn eine Gerade (a,a³) und (b,b³)
enthält, dann schneidet sie auch (-(a+b),-(a+b)³). Die Schnittgleichung
 a   b − a   − ( a + b) 
 3  + s 3
 

 a   b − a 3  =  − ( a + b) 3 
  
 

mit s =
2a + b
a−b
stimmt offensichtlich in der ersten Komponente. Für die zweite Komponente muss gelten
a 3 + ( a + b) 3 +
2a + b 3
(b − a 3 ) = 0 bzw. (a − b)(a 3 + (a + b) 3 ) + (2a + b)(b 3 − a 3 ) = 0 .
a−b
Dies lässt sich leicht berechnen:
a 4 − a 3b + (a − b)(a + b)(a + b) 2 + 2ab 3 − 2a 4 + b 4 − a 3b =
b 4 − a 4 − 2a 3b + 2ab 3 + (a 2 − b 2 )(a 2 + 2ab + b 2 ) = 0 . !
-1
0.25
0.75
Figur 2: Transformation von 3SUM zu 3PointsOnLine.
3
Problem: PointOn3Lines.
Instanz: Eine Menge von Geraden in der Ebene.
Frage: Gibt es einen Schnittpunkt von mindestens 3 Geraden ?
Dies ist das exakte Dual zu 3PointsOnLine, und somit folgt
Theorem 3.2 PointOn3Lines==n3PointsOnLine.
Auch wenn ein Inzidenzproblem mit drei Objekten 3Sum-hart ist, kann es bei k>3 Objekten
2
leichter werden. So ist z.B. ’kPointsOnLine’ in O nk log nk lösbar, also viel schneller als
(
)
2
O(n ) , wenn k mit n wächst.
4 Separatoren
Definition 4.1 Sei S eine Menge von n Objekten in der Ebene. Eine Gerade g heisst
Separator von S, falls g kein Objekt berührt und die beiden von g begrenzten Halbebenen
nichtleere Teilmengen von S enthalten.
Problem: Separator1.
Instanz: Eine Menge S von n geschlossenen oder semi-infiniten
horizontalen Geradensegmenten.
Frage: Gibt es einen nicht horizontalen Separator von S ?
Theorem 4.1 GeomBase<<n log nSeparator1.
Beweis: Gegeben sei eine Menge von Punkten auf drei horizontalen Geraden A:y=0, B:y=2
und C:y=1. Die x-Koordinaten der Punkte auf A seien aufsteigend sortiert a1 ,..., ai . Analog
für B b1 ,..., b j und C c1 ,..., c k . Wir transformieren die Punkte auf A zu horizontalen Geraden-
segmenten mit den x-Intervallen [-∞, a1 -ε], [ a1 +ε, a 2 -ε], ..., [ ai +ε, ∞] mit ε= 14 und für B
und C analog in O(n log n) . Sei g ein Separator, der die ’Lücken’ (a-ε, a+ε) in A, (b-ε, b+ε) in
B und (c-ε, c+ε) in C an den Positionen (a+δ1), (b+δ2) und (c+δ3) passiert wobei -ε < δi < ε.
Dann ist (a+δ1) + (b+δ2) = 2(c+δ3) und wegen − 12 < δ1+δ2, 2δ3 < 12 muss a+b=2c sein (weil a,
b und c ganze Zahlen sind), d.h. es gibt eine Gerade durch Punkte auf A, B und C. !
Figur 3: Transformation von GeomBase zu Separator1.
4
Wenn man senkrechte Geradensegmente auch zulässt, gelingt obige Reduktion auch ohne
Halbgeraden. Zudem erlaubt folgende Erweiterung auch horizontale Separatoren.
Problem: Separator2.
Instanz: Eine Menge S von n geschlossenen, disjunkten,
achsenparallelen Geradensegmenten.
Frage: Gibt es einen Separator von S ?
Theorem 4.2 GeomBase<<n log nSeparator2.
Beweis: Wir benutzen die Separator1-Instanz aus Figur 3 und ersetzen die 6 Halbgeraden
durch lange Segmente mit 2 vertikalen Segmenten1 an den Rändern. Wenn man die Segmente
passend wählt, sind die 6 seitlichen Lücken für Separatoren unpassierbar und der obige
Separator schneidet die vertikalen Segmente nicht2. Wie oben existiert also ein Separator,
genau dann wenn 3 Punkte kolinear sind. !
Figur 4: Transformation von GeomBase zu Separator2.
5 Covering
In Covering Problemen fragt man sich, ob in der Ebene die Vereinigung einer Menge von
Objekten ein spezielles Objekt überdeckt (beinhaltet). Die Einfachsten sind schon 3SUM-hart.
Definition 5.1 In der Ebene ist eine Box ein achsenparalleles Rechteck. und ein Strip ist die
Fläche zwischen 2 parallelen Geraden.
Problem: StripCoverBox.
Instanz: Eine Menge von Strips und eine Box in der Ebene.
Frage: Überdecken die Strips die Box ?
Figur 5: Die Box wird nicht
von den Strips überdeckt.
1
2
Man beachte die Asymmetrie. Sie verhindert horizontale Separatoren. Siehe dazu Figur 4.
Wenn man die Orientierung des Separators kennt, sind die Vertikalen passend ausgerichtet nie zu lang.
5
Für den folgenden Beweis notieren wir einige Eigenschaften der Point-Line-Duality:
Das Dual einer nicht vertikalen Gerade ist ein Punkt.
(i)
(ii)
Das Dual eines vertikalen Geradensegmentes ist ein Strip.
(iii) Das Dual einer vertikelen Halbgerade ist eine Halbebene.
Theorem 5.1 GeomBase<<n log nStripsCoverBox.
Beweis: Zuerst transformieren wir die GeomBase-Instanz zu einer Menge von horizontalen
Geradensegmenten wie in Figur 3. Wir rotieren die Menge vertikal und dualisieren die Segmente. Separatoren in der Primalebene sind dann Punkte (i) in der Dualebene, die in keinem
Strip (ii) und keiner Halbebene (iii) liegen. Das durch die 6 Halbebenen begrenzte offene
Polygon1 P ist in der Primalebene die Menge aller nicht vertikalen Geraden, die keine der 6
Halbgeraden schneiden. Wir legen eine Box R um P und machen die Halbebenen mit Geraden
ausserhalb von R zu Strips. Zusammen mit den Dualen der geschlossenen Geradensegmente
sind es n+3 Strips, da wir in Figur 3 drei Segmente mehr haben als Punkte (Lücken). Ein
Punkt in R bzw. P, der von keinem Strip überdeckt wird, ist im Primalen einem Separator. Ist
andererseits R und somit P überdeckt, gibt es keinen Separator. !
StripCoverBox löst offensichtlich Varianten mit beliebig orientierten Rechtecken. Noch
allgemeiner ist
Problem: TrianglesCoverTriangle.
Instanz: Eine Menge S von Dreiecken und ein Dreieck T in der Ebene.
Frage: Ist T in der Vereinigung der Elemente aus S enthalten ?
Theorem 5.2 StripCoverBox<<nTrianglesCoverTriangle.
Beweis: Zuerst zeigen wir StripsCoverBox==nStripsCoverTriangle dessen Definition klar ist.
Das zweite Problem löst das erste Problem durch Spaltung der Box in zwei Dreiecke. Sind
beide überdeckt, so auch die Box. Umgekehrt legt man eine Box R um das Dreieck T und fügt
drei Strips hinzu, die R-T überdecken. Nun ist R überdeckt genau dann wenn T überdeckt ist.
Ebenso trivial ist StripsCoverTriangle<<nTrianglesCoverTriangle. Man schneidet die Strips
ausserhalb des Dreiecks zu Rechtecken und zerlegt sie jeweils in jeweils zwei Dreiecke. Nun
überdecken die Dreiecke das Dreieck genau dann wenn die Strips das Dreieck überdecken. !
6 Point Covering
Wir betrachten einen weiteren Typ von Überdeckungsproblemen:
Problem: PointCovering.
Instanz: Eine Menge S von n Halbebenen und eine Zahl k.
Frage: Gibt es einen Punkt p, der von mindestens k Halbebenen überdeckt wird.
Für k ≤ n/2 lautet die Antwort einfach ja, für grössere k wird das Problem 3SUM-hart.
Theorem 6.1 StripsCoverBox<<nPointCovering.
1
Komplement der Vereinigung der Halbebenen.
6
Beweis: Wir transformieren jeden Strip zu 2 Halbebenen durch Komplementbildung und
erhalten eine Menge S von 2n Halbebenen. Jeder Punkt, der in keinem Strip liegt, ist in genau
n Halbebenen enthalten (andere Punkte sind in weniger Halbebenen), da wir n Strips haben
und ausserhalb eines Strips heisst in einer Halbebene. Diese Punkte können sowohl in der Box
als auch ausserhalb sein. Um sie zu unterscheiden fügen wir S vier Halbebenen hinzu, die die
Grenzen der Box markieren und nach innen zeigen. Ein Punkt, der durch n+4 Halbebenen
(dies ist die maximale Überdeckungszahl) überdeckt ist, liegt also in der Box und in keinem
Strip. Mit anderen Worten: Die Strips überdecken die Box nicht, genau dann wenn es einen
Punkt gibt, der durch n+4 Halbebenen überdeckt wird. !
7 Planar Visibility
Sichtbarbarkeit von einem Punkt in der Ebene ist normalerweise einfach. Sichtbarkeit von
einem Geradensegment dagegen ist schon in der folgenden einfachen Version 3SUM-hart.
Problem: VisibilityBetweenSegments.
Instanz: Eine Menge S von n horizontalen Geradensegmenten in der Ebene
und zwei weitere horizontale Segmente s1 und s2 .
Frage: Gibt es zwei Punkte auf s1 und s2 , die sich gegenseitig sehen ?
(Das offene Segment zwischen ihnen schneidet kein Segment aus S)
Theroem 7.1 GeomBase<<n log nVisibilityBetweenSegments.
Beweis: Wegen Theorem 4.1 reicht es Separator1<<nVisibilityBetweenSegments zu zeigen.
Wir benutzen die Separator1-Instanz aus Figur 3 und setzen passende Segmente s1 und s2
knapp über und unter die Menge der Lücken (siehe Figur 6). Nun sehen sich s1 und s2 genau
dann wenn es einen Separator gibt. Man beachte, dass wir keine Halbgeraden mehr brauchen,
weil entartete Separatoren s1 oder s2 nicht mehr schneiden. !
s1
s2
Figur 6: Transformation von GeomBase zu VisibilityBetweenSegments.
8 Planar Motion Planning
Die Komplexität der Bewegungsplanungsprobleme neigt zur Abhängigkeit von der Anzahl
der Freiheitsgrade. Ein Roboter z.B., der in der Ebene Translation und Rotation ausführen
kann, hat 3 Freiheitsgrade. Die einfachsten Probleme mit 3 Freiheitsgraden sind schon 3SUMhart.
7
Problem: PlanarMotionPlanning.
Instanz: Eine Menge von disjunkten, achsenparallelen Geradensegmenten (Hindernisse)
in der Ebene und weiteres Segment als Roboter mit 3 Freiheitsgraden (Rotation
und Translation) sowie Start- und Zielgebiet.
Frage: Gelangt der Roboter vom Start zum Ziel ohne Kollision mit den Hindernissen ?
Die beste bekannte Lösung ist durch O(n²) beschränkt.
Theorem 8.1 GeomBase<<n log nPlanarMotionPlanning.
Beweis: Wir benutzen die Konstruktion mit Segmenten wie in Figur 4. Der Roboter soll sich
von einem Bereich über zu einem Bereich unter den Segmenten bewegen. Damit er die
Segmente (eine löchrige Grenze zwischen Start- und Zielgebiet) nicht umgeht und für die
Finitheit bauen wir einen Käfig wie in Figur 7. Die Gebiete müssen natürlich so umzäunt
werden, dass der Roboter darin noch manövrieren kann. Nun kann der Roboter aus dem
Startgebiet nicht entkommen ohne durch die Lücken zu schlüpfen, die aus der GeomBaseInstanz konstruiert wurden. Der Roboter soll so lang sein, dass beim erfolgreichen Grenzübergang ein Moment existiert, in dem er in beiden Regionen (teilweise) drin ist, d.h. er steckt
in drei Lücken zwischen den Segmenten. Eine Lösung der GeomBase-Instanz existiert also
genau dann wenn es eine Bewegung des Roboters vom Start zum Ziel gibt. !
der Roboter
die Segmente
Figur 7: Transformation von GeomBase zu PlanarMotionPlanning.
8
Literatur
A. Gajentaan, M. H. Overmars. On a class of problems in computational geometry. Comput.
Geom. Theory Appl., 5:165-185, 1995.
9
Herunterladen