210 likes | 363 Views
Algorithmische Probleme in Funknetzwerken V. Klaus Volbert kvolbert@upb.de. Zellulare Netze Voronoi-Diagramme. Bisektor Halbebene Voronoi-Region VR(p,V), p VIR 2 : Voronoi-Diagramm VD(V), VIR 2 :. Voronoi-Diagramme Eigenschaften. Voronoi-Regionen sind konvex
E N D
Algorithmische Probleme in FunknetzwerkenV Klaus Volbert kvolbert@upb.de
Zellulare NetzeVoronoi-Diagramme • Bisektor • Halbebene • Voronoi-Region VR(p,V), pVIR2: • Voronoi-Diagramm VD(V), VIR2:
Voronoi-DiagrammeEigenschaften • Voronoi-Regionen sind konvex • Voronoi-Diagramm von n Punkten in der Ebene • besteht aus Strecken, Geraden, Halbgeraden und Punkten • ist ein geometrischer Graph • hat O(n) viele Knoten und Kanten • kann in Zeit O(n3) berechnet werden (naiver Algorithmus) • kann nicht in Zeit o(n log n) berechnet werden
Sweep-Technik (I) • Betrachte Bisektor zwischen Punkt (0,a) und Linie y=0 • Ergibt Parabel mit • x2 + (y-a)2 = y2 • y = x2/ (2a)+ a/2 • Nun bewegt sich die Sweep-Line von Punkt (0,a) weg
Sweep-Technik (II) • Mehrere Punkte • Nur vordere Wellenfront ist von Interesse • Unterteilung der Wellenfront in Parabelstücke • Ereignisse • Entstehen eines Parabelstücks • Nur wenn die Sweep-Line einen Punkt streift • Verschwinden eines Parabelstücks • Dadurch entsteht Voronoi-Punkt
Sweep-Technik (III) • Schnittpunkte der Wellenfront fahren das Voronoi-Diagramm ab • Treffen sich zwei Parabeln an der Wellenfront, verschwindet ein Parabelstück • Nur benachbarte Spikes kommen als nächster Treffpunkt in Frage • Die Anzahl der Parabelstücke in der Frontlinie ist linear
Die Wellenfront • Sei H Halbebene über parallel abwärts bewegender Gerade L inklusive L, dann ist die Wellenfront W gegeben durch W = { x H | p V H : |x,p| = |x,L| } • Alle Punkte über W haben nächsten Nachbarn über W • Alle Punkte zwischen W und L können nächsten Nachbarn sowohl in VH oder V \ H haben • W ist x-monoton, d.h. jede senkrechte Gerade schneidet W höchstens in einem Punkt, und zusammenhängend • Die Schnittpunkte von Parabeln heißen Bruchpunkte • Beobachtung: Ein Punkt p ist ein Bruchpunkt gdw. p VD(V)
Ereignis A:Einfügen neuer Parabel • Sweep-Line trifft auf Punkt pV • Parabel beginnt als Halbgerade • Halbiert bestehendes Parabelstück (falls Sweep-Line in allgemeiner Position) • Da keine andere Operation Parabeln erzeugt, höchstens 2n-1 Parabelstücke • Die beiden Schnittpunkte mit der alten Wellenfront definieren eine beginnende Voronoi-Kante • Die Verlängerung der Kante über die Wellenfront hinaus, wird Spike genannt • Die Schnittpunkte der Parabeln bewegen sich auf diesen Spikes bis sie einen Voronoi-Punkt treffen • Treffpunkte möglicher Spikes zeigen mögliche Voronoi-Punkte an
Ereignis B:Löschen einer Parabel • Bewegung der Sweep-Line läßt Bruchpunkte aufeinanderlaufen • Parabel zwischen Bruchpunkten verschwindet • Voronoi-Region der verschwundenen nun hinter Sweep-Linie • Da Region konvex ist diese Voronoi-Region abgearbeitet • Der Treffpunkt der Bruchpunkte muß ein “bekannter” Spike sein • Berechne frühesten “Zeitpunkt”, an dem die Sweep-Linie eine Parabel löscht • Hierfür müssen nur benachbarte Parabelstücke berücksichtigt werden • Nach Löschen, aktualisiere mögliche Treffpunkte
Notwendige Datenstrukturen • Bisher konstruiertes Voronoi-Diagramm • Speicherung als QEDS • Technische Schwierigkeit: Unbeschränkte Kanten • Verwende “bounding box” • Wellenfront W • Wörterbuch mit Punkten aus V die relevante Parabeln beschreiben • sortiert nach x-Koordinaten • Jede Suche, Einfüge-Operation in Zeit O(log n) • Ereignis-Warteschlange Q als Priority-Queue • Priorität ergibt sich durch y-Koordinate der Sweep-Linie L • Aktualisiere Warteschlange bei jedem Ereignis
Ereignis-Warteschlange • Priorität ergibt sich durch y-Koordinate der Sweep-Line L • Parabel erzeugen: • Priorität = y-Koordinate der Punkte aus V • Parabel löschen: • Priorität = y-Koordinate der Sweep-Line, die den Kreis mit Mittelpunkt des Spike-Schnittpunkts s und Radius |s,u| von unten berührt, wobei u beteiligter Knoten eines Spikes ist. • Aktualisiere Warteschlange bei jedem Ereignis • Zeitaufwand O(log n) (amortisiert) für • Einfügen in Warteschlange • Löschen eines Elements der Warteschlange
Sweep-Line-Algorithmus für Voronoi-Diagramme Algorithmus Sweep-Line-VD(V) Gegeben V R2 Initialisiere Q mit Ereignissen A while Q nicht leer do Sei q aus Q mit maximaler Priorität Entferne q aus Q if q von Typ A (Einfügen Parabel) then Suche Platz in Wellenfront und lösche evtl. Spike-Schnittpunkt der geschnitttenen Parabel mit Nachbarn aus Q Füge neue Parabel und geschnittene Parabel in Wellenfront ein Berechne neue Spike-Schnittpunkte mit Nachbarn, füge diese in Q ein else (Lösche Parabel) Füge neuen Voronoi-Punkt und Kanten in Voronoi-Diagramm ein Lösche Parabel aus Wellenfront Lösche Spike-Schnittpunkte dieser Parabel mit Nachbarn Berechne neue Spike-Schnittpkte für neu enstandende Voronoi-Kante fi od end
Analyse Beweisskizze: • Der Sweep-Line-Algorithmus erfüllt die Voronoi-Eigenschaft. • Die äußere While-Schleife wird O(n) mal durchlaufen • Der Gesamtspeicherverbrauch in W, Q und QEDS von VD(V) ist O(n) • Jede elementare Operation in W und Q benötigt bei geeigneter Implementation Zeit O(log n)
Zellulare Netze • Ursprüngliche Problemstellung: • Starres Frequenzmultiplexing für gegebene Menge von Basisstationen • Gegeben: • Positionen der Basisstationen • Gesucht: • Frequenzzuteilung, welche die Interferenzen minimiert • Wie modelliert man zulässige Frequenzzuteilungen?
Frequenzzuweisung (I) • Gegeben: • Punktemenge VIR2 von n Basisstationen B1, …,Bn • Jede Basisstation sendet mit einer festen Reichweite ri, i {1..n} • Gesucht: • Funktion f:VIN, die einer Basisstation eine Übertragungs-frequenz zuordnet unter Berücksichtigung von Frequenz- und Abstandsbedingungen • Beispiele für Bedingungen: • Minimiere die Anzahl der vergebenen Frequenzen • Minimiere die Breite des Frequenzspektrums • Minimiere die Anzahl der Wellenüberlagerungen (Interferenzen)
Frequenzzuweisung (II)Modellierung • Interferenz-Graph GInt: • Knoten sind die Basisstationen • Kanten kennzeichnen Interferenzen zwischen den Basisstationen • Wann interferieren Basisstationen? • 1. Variante: • Sei U(B1) der Umkreis um B1 mit Radius r1 • Zwei Basisstationen B1 und B2 interferieren, falls U(B1) U(B2) GInt r1 B1 Graph-Färbungsproblem
Allgemeine Graph-Färbung • Sei G=(V,E) ein ungerichteter Graph. Eine Abbildung f:VF heißt k-Knotenfärbung, falls f(u)f(v) für {u,v}E und FIN, |F|=k. • Chromatische Zahl (G) ist die kleinste Zahl k, für die es in G eine k-Knotenfärbung gibt. • Clique Zahl (G) ist die größte Zahl von Knoten, die in G einen vollständigen Teilgraph bilden. • Zusammenhang ((G) Grad von G): (G) (G) (G) + 1 Beweis: Übung
Komplexität Beweis: • COLOR NP • rate eine k-Knotenfärbung und teste, ob sie zulässig ist. • 3SAT p COLOR: • Knoten: v1, …, vn, v1, …, vn, x1, …, xn, C1, ..., Cr • Kanten: {vi, vi} {xi, xj}, {vi, xj}, {vi, xj} für i j {vi, Ck}, {vi, Ck} für Literale nicht in Ck v2 v3 false x1 t1 v2 v3 t2 t3 x3 x2 v1 v1
COLOR ist NP-vollständig • 3SAT p COLOR: „“ Ann. Belegung, die die Klauseln C1, ..., Cr wahr macht. Färbe jedes erfüllte Literal mit dem entsprechenden ti und das Komplement mit false. Betrachte Cj: Ein Literal wurde mit einer true-Farbe (ti) gefärbt, da die Klausel erfüllbar ist. D.h. Cj kann mit ti gefärbt werden. „“ Ann. keine Belegung, die die Klauseln C1, ..., Cr wahr macht. Dann ex. Cj: Alle Literale wurden mit false (n+1. Farbe) gefärbt. D.h. Cj ist mit Knoten aller true-Farben verbunden und mit min. einem Knoten, dem die false-Farbe zugeordnet ist. Der Graph kann also nicht mit n+1 Farben gefärbt werden.
Resultate zur Graph-Färbung • Allgemeine Graph-Färbung ist nicht nur NP-vollständig, sondern auch nicht approximierbar mit Faktor besser als n für >0 unter der Ann. NPP. • „Besitzt der planare Graph eine 3-Knotenfärbung?“ ist auch NP-vollständig • Aber: • Jeder planare Graph kann in Polynomzeit mit 4 Farben knotengefärbt werden (Vier-Farben-Satz, ca. 633 Fälle!) • Jeder Graph kann in Polynomzeit auf 2-Knotenfärbbarkeit überprüft werden • Es gibt einen Approximationsalgorithmen der Güte O(n/log n) für das allgemeine Färbungsproblem
Approximationsalgorithmus für Knotenfärbung (I) • Independent Set Problem (NP-vollständig): • Sei G=(V,E) ein Graph, UV. U heißt unabhängig, falls: {u,v} E für alle u,v U • Independent Set: bestimme möglichst große unabhängige Menge (Beweis: Übung)