AK der Algorithmik 5 Übungsblatt 1 Gruppe B Andreas Brandstetter Philipp Neuner 1 Ultrametriken Eine Funktion d : M × M → R+ 0 bezeichnet man als Ultrametrik auf einer Menge M, wenn (1.1) (1.2) (1.3) ∀x ∈ M : d(x, x) = 0 ∀x, y ∈ M : d(x, y) = d(y, x) ∀x, y, z ∈ M : d(x, y) ≤ max{d(x, z), d(z, y)} (Definitheit) (Symmetrie) Eigenschaft 1.3 nennt man auch ultrametrische Dreiecksungleichung, da sie eine Verschärfung der gewöhnlichen Dreiecksungleichung darstellt. Alternativ lassen sich Ultrametriken über folgenden Satz charakterisieren: Satz 1.1. Sei d : M × M → R+ 0 eine Ultrametrik. Dann gilt: für alle Tripel x, y, z ∈ M sind die beiden größten Werte von d(x, y), d(x, z), d(y, z) gleich. Beweis. Nach 1.3 gilt d(x, y) ≤ max{d(x, z), d(y, z)} Im Falle d(x, z) = d(y, z) ist nichts weiter zu zeigen. Nehmen wir also ohne Beschränkung der Allgemeinheit d(y, z) < d(x, z) an. Dann gilt ⇒ d(x, z) ≤ max{d(x, y), d(y, z)} d(x, z) ≤ d(x, y) Daraus folgt d(x, y) ≤ d(x, z) ≤ d(x, y) ⇒ d(x, y) = d(x, z) > d(y, z) Jetzt zeigen wir noch die Umkehrung des obigen Satzes. Satz 1.2. Eine Funktion d : M × M → R+ 0 ist genau dann eine Ultrametrik, wenn d definit ist, d.h. ∀x, y ∈ M : d(x, y) = 0 ⇔ x = y, und für alle Tripel x, y, z ∈ M die beiden größten Werte von d(x, y), d(x, z), d(y, z) gleich sind. Beweis. Es ist zu zeigen, dass die Eigenschaften 1.1, 1.2 und 1.3 erfüllt sind. Definitheit (1.1) folgt nach Vorraussetzung. Für jedes Paar x, y ∈ M, x 6= y, gilt nach Satz 1.1 mit z := x, dass die beide größten Werte von d(x, y), d(x, x), d(y, x) gleich sind. Da d definit ist, muss gelten: d(x, x) = 0, d(x, y) > 0, d(y, x) > 0. Daraus folgt unmittelbar d(x, y) = d(y, x) > d(x, x) = 0; Symmetrie (1.2) ist somit gegeben. Um Eigenschaft 1.3 zu zeigen, müssen wir folgende Fälle betrachten: d(x, y) ≤ d(x, z) = d(y, z) d(x, z) ≤ d(x, y) = d(y, z) d(y, z) ≤ d(x, y) = d(x, z) Offensichtlich ist die ultrametrische Dreiecksungleichung (1.3) in allen drei Fällen erfüllt. 2 2 Ultrametrische Bäume Ein ultrametrischer Baum T zu einer gegebenen (n × n)-Distanzmatrix D erfüllt folgende Eigenschaften: B1 T hat n Blätter, die je durch eine Reihe von D beschriftet sind. B2 Jeder innere Knoten u von T hat eine Beschriftung lu aus D und mindestens zwei Kinder. B3 Auf einem Pfad von der Wurzel zu einem Blatt nehmen die Beschriftungen der Zwischenknoten monoton ab. B4 Für zwei Blätter vi und vj von T ist Di,j die Beschriftung des kleinsten gemeinsamen Vorfahren von vi und vj in T . Ein solcher Baum hat einen Verzweigungsgrad ≥ 2 (B2) und somit höchstens n − 1 innere Knoten. Da jeder in der Matrix vorkommende Wert 6= 0 einem dieser Knoten zugewiesen wird (B4), darf die Matrix D nicht mehr als n − 1 von Null verschiedene Werte enthalten, wenn sie einen ultrametrischen Baum repräsentiert. Zu einer gegebenen Distanzmatrix D läßt sich genau dann ein ultrametrischer Baum konstruieren, wenn die von D induzierte Metrik eine Ultrametrik ist. Algorithmus 1 konstruiert unter den angegeben Vorraussetzungen den von einer Distanzmatrix repräsentierten ultrametrischen Baum. Korrektheit. Dass Algorithmus 1 wirklich einen ultrametrischen Baum konstruiert, lässt sich per Induktion über die Kardinalität der Menge M zeigen. Im Fall |M| = 1 funktioniert der Algorithmus offensichtlich richtig. Nehmen wir also an, dass der Algorithmus für |M| < n korrekt funktioniert. Zeilen 8 und 12 stellen sicher, dass die Knoten ui,k auf dem Pfad vom Blattknoten vi zur Wurzel r monoton aufteigend beschriftet sind, da wir ausgehend von vi immer das Minimum der verbleibenden Elemente in K als Beschriftung wählen. Es muss noch gezeigt werden, dass die Wurzelknoten rk der Teilbäume Tk korrekt beschriftet sind, d.h. lrk ≤ lui,k (siehe Abb. 1). Da |Mk | < n, sind die Teilbäume Tk gemäß Induktionsannahme ultrametrische Bäume. Betrachten wir zwei beliebige Blattknoten vx , vy aus einem Teilbaum Tk , deren kleinster gemeinsamer Vorfahre lca(vx , vy ) = rk ist. Aufgrund von 1.3 sowie der Konstruktion der Menge Mk (siehe Zeile 14) gilt lrk = Dx,y ≤ Di,x = Di,y = lui,k . Schließlich müssen wir noch zeigen, dass die Beschriftung des kleinsten gemeinsamen Vorfahren zweier beliebiger Blattknoten vx , vy deren Distanz zueinander angibt. Ist einer der beiden Knoten das vi aus unserer Konstruktion, ist nichts weiter zu zeigen. Nehmen wir also an, das vx und vy aus zwei verschiedenen Teilbäumen Tx und Ty stammen (siehe Abb. 2). Ohne Beschränkung der Allgemeinheit gilt nun lui,k = Di,x < Di,y = lui,l . Der kleinste gemeinsame Vorfahre von vx und vy ist damit 3 Algorithm 1: UltrametricTree(M, D) Data: Eine Menge M, Distanzmatrix D Result: Ultrametrischer Baum T = (V, E) mit Wurzelknoten r 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 E=∅ Wähle ein Element i ∈ M M ← M \ {i} V ← {vi } K ← {Di,j : j ∈ M} r ← vi while K 6= ∅ do k ← min K K ← K \ {k} V ← V ∪ {ui,k } Beschrifte ui,k mit lui,k ← k E ← E ∪ {(r, ui,k )} r ← ui,k Mk ← {j ∈ M : Di,j = k} Tk = (Vk , Ek ) ← UltrametricTree(Mk , D) V ← V ∪ Vk E ← E ∪ Ek ∪ {(rk , ui,k )} lca(vx , vy ) = ui,l . Nach Satz 1.1 müssen nun die beiden größten Werte aus Di,x , Di,y und Dx,y gleich sein. Daraus folgt Di,x < Di,y = Dx,y = lui,l . Wenden wir den Algorithmus auf folgende Matrix an, so erhalten wir den ultrametrischen Baum in Abb. 3. A B C A 0 8 8 B 0 3 C 0 D E D 5 8 8 0 E 3 8 8 5 0 Die Laufzeit ist in O(n2 log(n)). Das ergibt sich aus maximal n rekursiven Aufrufen und dem Sortieraufwand in O(n log(n)). 4 ui,l ui,k rk ui,k vy vi vx vy vi Abbildung 1: Korrektheit (B3) vx Abbildung 2: Korrektheit (B4) 8 5 3 A 3 B C D E Abbildung 3: Ultrametrischer Baum Literatur [1] Volker Heun. Skriptum zur Vorlesung Algorithmische Bioinformatik I/II. http: //cgi.bio.ifi.lmu.de/~heun/lecturenotes/cb.pdf. [2] Hans-Peter Lenhof. Evolutionary Trees and Perfect Phylogeny. http://fred. bioinf.uni-sb.de:4711/downloads/bioinfo_ws02/BioinfI8.ppt. 5