Online Algorithmen Proseminar von Prof. Dr. Rolf Klein, Dr. Elmar Langetepe, Diplom Inform. Thomas Kamphans im Wintersemester 00/01 Vortrag Das Brückenproblem von Rainer Montignies 10 Januar 2001 Inhalt des Vortrags: 1. Vorstellung des Problems 2. Diskretisierung jeder Strategie 3. Nicht jede Strategie ist kompetitiv 4. Die Verdopplungsstrategie ist 9-kompetitiv 5. Der Faktor 9 ist optimal 1.Vorstellung des Problems: Wir stehen in absoluter Dunkelheit an einem Fluß und wollen diesen an einer Brücke überqueren, wir wissen jedoch nicht, wo sich die nächste Brücke befindet und da es absolut dunkel ist können wir auch nicht sehen, wo sich die nächste Brücke befindet. Gesucht ist eine Strategie, die die nächste Brücke am schnellsten bzw. mit dem geringsten Umweg findet. Angewendet werden solche Strategien in der Robotik, wo zum Beispiel ein Roboter mit einem Tastsensor vor einer Wand steht und die nächste Tür sucht. 2. Diskretisierung jeder Strategie: 1. „Raten“: Der Roboter sucht sich eine Richtung aus und läuft dann immer in diese Richtung. Hat er die richtige Richtung gewählt, löst er das Problem, sonst nicht. Da wir an Strategien interessiert sind, die immer funktionieren, ist diese Strategie ungeeignet. 2. Strategie mit Richtungswechsel: Der Roboter geht vom seinem Startpunkt aus einen Meter nach rechts kehrt zu seinem Startpunkt zurück und geht zwei Meter nach links und kehrt wieder zu seinem Startpunkt zurück, usw. Nach jedem Richtungswechsel wird die Suchtiefe um eine Einheit erhöht. Der Roboter stoppt, sobald er die Tür erreicht hat. 3. Verdopplungsstrategie: Die Verdopplungsstrategie funktioniert wie die zweite Strategie, nur mit dem Unterschied, dass die Suchtiefe nach jedem Richtungswechsel doppelt wird. Diese Strategie ist effizienter als die ersten beiden Strategie, da das Ziel schneller erreicht wird. 3. Nicht jede Strategie ist kompetitv: Ich führe den Beweis am Beispiel der zweiten Strategie. Wir gehen vom schlimmsten Fall aus: der Roboter verfehlt die Tür knapp. l = ganze Zahl; aktuelle Suchtiefe ε>0 ; Länge, um die Tür verfehlt wird d = l + ε ; Entfernung vom Startpunkt zur Tür Der Roboter läuft l Meter nach rechts, verfehlt die Tür knapp , kehrt zum Startpunkt zurück und erreicht beim übernächsten Versuch nach l + ε Metern die Tür. Wir betrachten nun die Weglänge: 1 + 1 + 2 + 2 + ... + l + l + (l +1) + (l +1 ) + l + ε l +1 = 2 ∑i +l+ε i =1 = 2 (l + 1) ( l + 1 + 1) /2 + l + ε = (l + 1) (l + 2) + l + ε ∈ θ (d ²) ⇒ die Strategie ist nicht kompetitiv Beispiel: Der Startpunkt ist 100m von der Tür entfernt. Der Algorithmus benötigt 10 km. 4. Die Verdopplungsstrategie ist 9 – kompetitiv Wir gehen hier wieder den schlimmsten Fall aus: der Roboter verfehlt die Tür knapp. Die Entfernung zur Tür ist 2²j+ε. Wir betrachten nun wieder die Weglänge: 1+1+2+2+...+22j+22j+22j+1+22j+1+22j+ε 2 j +1 =2 ∑2 i + 22j +ε i= 0 = 2((1-22j+1)/(1-2))+ 22j+ε = 2(22j-1-1)+ 22j +ε = 9⋅22j –2 + ε < 9d Spezialfall: d= ε≤2 Weg des Roboters: 1+1+ ε < 9ε+2= 9d+2 q.e.d. 1. Der Faktor 9 ist optimal: Beh.: Jede kompetitive Strategie zum Auffinden eines Punktes auf einer Geraden hat einen Faktor ≥9. S kompetitive Strategie mit Richtungswechsel fi Folge von Erkundungsweiten s Startpunkt S kompetitiv ⇒2 n +1 ∑f +f i +ε ≤C (fn +ε ) i i =1 Annahme: ε =0 ⇔2 ⇔2 ⇔2 n +1 ∑f ∑f +fn i +fn +2 fn +2fn+1≤C fn i =1 n −1 ∑f i =1 ≤C fn i i =1 n −1 i +2fn+1≤C fn+3 fn n −1 ⇔ 2 ∑ fi +2fn+1 ≤ fn(C-3) i =1 n −1 n −1 i =1 i =1 ⇔ fn+1≤ fn(C-3)/2+ ∑ fi = fnH- ∑ fi mit H=(C-3)/2 n −1 In die Gleichung fn+1≤ fnH- ∑ fi setzen wir die ebenfalls gültige i =1 n− 2 Gleichung fn≤fn-1H- ∑ fi ein: i =1 n− 2 fn+1 ≤ ( fn-1H- ∑ fi )H i =1 n −1 ∑f n− 2 n −1 i =1 i =1 i i =1 = H² fn-1-H ∑ fi - ∑ fi – fn-1 n− 2 ∑f = ( H² -1)fn-1 +(H+1) i i =1 Dieser Ersetzungsvorgang lässt sich iterieren: Zahlenfolgen: (an) (b n) a0=H b0=1 ai+1=aiH-b bi+1=ai+bi Beh.: Für alle n≥1 und für alle 0≤m≤n-1 gilt: fn+1≤amfn-m-bm n −1− m ∑f i =1 Beweis: n fest Induktion über m Induktionsanfang: m=0 n −1 fn+1≤a0fn-b0 ∑ fi i =1 n −1 =Hfn- ∑ fi i =1 i Induktionsschritt: m→m+1 fn+1 ≤ amHfn-m-1-am n −m −2 ∑ n −1− m f i -b m i =1 ∑f n −m −2 = amHfn-m-1- am i i =1 ∑ n −m −2 f i -b m i =1 ∑f i – bmfn-1-m i =1 n −m −2 = (amH– bm) fn-1-m-(am+bm) ∑f i i =1 n −1 −m −1 = am+1fn-m-1-bm+1 ∑f i i =1 Lemma 1: Die Zahlen ai sind positiv. Beweis: Sei i≥0 beliebig. Annahme: ai≤0 Dann folgt für m=i und n=i+1: fi+2≤aif1- bi ⋅0≤0 Widerspruch, da die Erkundungstiefen positiv sind. Lemma 2: Sei H ≠3, dann gilt für die Zahlen ai und bi , für alle i≥0 die Darstellung: ai= v z i+ v z i bi= v ( z − 1 ) z i+ v ( z − 1 ) z i mit v =( H z - H − 1 )/ z - z ) und v =( H z - H − 1 )/( z - z ) Zunächst eine kurze Wiederholung: a b = ad-bc c d det χ(t)=det(tE-M) Charakteristische Polynom Eigenwerte sind die Nullstellen des Charakteristischen Polynoms Eigenvektor : MV=zV Beweis: Zunächst schreibe ich die rekursiv definierten Zahlenfolgen an und b n als Iterierte Matrizenmultiplikation hin. ai +1 = bi +1 i +1 H − 1 ai H − 1 a0 = ...= 1 1 bi 1 1 b0 Jetzt stellen wir die Anfangswerte a0 und b0 als Linearkombination von zwei Eigenvektoren V1 und V2 der Multiplikationsmatrix M dar. H − 1 M = 1 1 a Wenn 0 = v1 V1 + v2 V2 gilt und z1 und z2 die Eigenwerte der Eigenvektoren b 0 V1 V2 von M. ⇒ MVj=zjVj und MiVj=zij Vj für j=1,2 so folgt ai a = Mi 0 = Mi(v1V1+v2V2)= v1 Mi V1+ v2 Mi V2= v1 zi V1+ v2 zi V2 bi b0 Die geschlossene Darstellung ergibt sich durch den Vergleich der Vektorkoordinaten. M hat das Charakteristische Polynom t − H 1 2 = t -(H+1)t+H+1 t −1 −1 det(tE-M) = Die Eigenwerte sind die Nullstellen der Charakteristischen Polynoms. z , z = 0,5(H+1± ( H + 1)( H − 3) Durch das Lösen eines linearen Gleichungssystems ergeben sich die zugehörenden Eigenvektoren. 1 V = z −1 1 und V = z −1 a0 H = b0 1 = Hz − H − 1 z−z 1 z −1 + H z − H −1 z−z 1 z −1 = vV + vV Die Behauptung folgt durch Einsetzen sofort. Beh.: Der Faktor 9 ist optimal Beweis: Annahme: C<9 ⇒ H<3 ⇒ nach Lemma 2 ist die Zahl a komplex ⇒an=vzn+ vzn=2Re(vz) Wir stellen uns die komplexe Zahl W=c+di als Ortsvektor 0w des Punktes w=(c,d) im R2 vor. Nun betrachten wir die komplexe Multiplikation geometrisch: die Winkel der positiven Achse addieren sich, die Längen werden multipliziert. Am leichtesten sieht man das an der Darstellung der Polarkoordinaten.. v=r cos φ+irsinφ z=s cosϕ+idsinϕ mit r,s>0 vz =rs(cosφcosφ-sinϕsinϕ)+irs(cosφsinϕ-sinφcosϕ) =rs cos(ϕ+φ)+irs sin(φ+ϕ) z hat einen Winkel ϕ>0, weil sie nicht reell ist. Bei jeder Mutliplikation mit z wird der Winkel vzn um ϕ größer. Hieraus folgt, dass vzn in der linken Halbebene liegt. an=2Re(vz) <0 Dies widerspricht Lemma 1. ⇒ C>9