13.02.2014 Aufrufe

Kapitel 3

Kapitel 3

Kapitel 3

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

26 3 ABSTAND UND ÄHNLICHKEIT<br />

Wenn wir also einfache Edit-Operationen zugrunde legen und die elementare Distanzfunktion<br />

w eine Metrik ist, können wir mit Hilfe des Wagner-Fischer-Algorithmus eine<br />

optimale Edit-Sequenz zur Transformation von x in y bestimmen.<br />

Mit einer relativ kleinen Modifikation am Verfahren kann man auch optimale Edit-Sequenzen<br />

für den Fall berechnen, dass zu den einfachen Edit-Operationen zusätzlich Transpositionen<br />

aufgenommen werden.<br />

3.3 Allgemeine Edit-Operationen und Lückenkosten<br />

Will man allgemeine Edit-Operationen (r, s) ∈ Σ ∗ × Σ ∗ zulassen, so kann man unter<br />

gewissen Voraussetzungen Rekursionsformeln zur Berechnung eines entsprechenden Distanzbegriffs<br />

herleiten.<br />

3.3.1 Allgemeine Edit-Operationen<br />

Definition 3.13<br />

Sei ω ⊆ Σ ∗ × Σ ∗ eine vorgegebene endliche Menge von Edit-Operationen. Für jedes<br />

(r, s) ∈ ω seien Kosten w(r, s) ∈ R mit w(r, s) ≥ 0 festgelegt. Weiterhin gelte<br />

w(r, s) = 0 genau dann, wenn r = s.<br />

Seien x, y ∈ Σ ∗ . Dann sei E ω (x, y) die Menge aller Edit-Sequenzen σ = (r 1 →<br />

s 1 , · · · ,r n → s n ) mit r i → s i aus ω, die x in y überführen. Die leere Edit-Sequenz<br />

σ 0 = () überführt x in x.<br />

Dann definiert man die allgemeine Edit-Distanz bezüglich ω zu<br />

wobei<br />

D S (x, y) = max{ϱ(x, y),ϱ(y, x)}<br />

ϱ(x, y) = ∞, falls E ω (x, y) =∅ und x ≠ y<br />

|σ|<br />

∑<br />

ϱ(x, y) = min<br />

σ∈E ω(x,y)<br />

w(r i ,s i ) sonst.<br />

Durch x ∼ y genau dann wenn D S (x, y) < ∞ wird eine Äquivalenzrelation auf Σ ∗ definiert.<br />

i=1<br />

Satz 3.14<br />

Sei A Äquivalenzklasse bzgl. ∼. Dann ist D S Metrik auf A.<br />

Beweis:<br />

D S ist symmetrisch und D S (x, y) ≥ 0.<br />

Weiterhin gilt D S (x, x) = 0, da die leere Edit-Sequenz aus E ω (x, x) ist.<br />

Für x, y und z ∈ A gilt<br />

D S (x, z)+D S (z, y) ≥ ϱ(x, z)+ϱ(z, y) ≥ ϱ(x, y)


3.3 Allgemeine Edit-Operationen und Lückenkosten 27<br />

(man führe einfach beide Edit-Sequenzen nacheinander aus) und entsprechend<br />

D S (x, z)+D S (z, y) ≥ ϱ(y, x),<br />

also gilt<br />

D S (x, z)+D S (z, y) ≥ D S (x, y).<br />

Dieser Abstandsbegriff ist zu allgemein (Stichwort: Term-Ersetzungs-Systeme) und daher<br />

im allgemeinen Fall nicht berechenbar, also müssen Einschränkungen bei den Edit-Folgen<br />

gemacht werden.<br />

Idee: Es sollen nur solche Edit-Folgen betrachtet werden, die bei einer Überführung von<br />

x nach y jedes Zeichen in x höchstens einmal verändern.<br />

Wir definieren daher Edit-Sequenzen mit der Eigenschaft (∗):<br />

Definition 3.15<br />

Sei σ =(r 1 → s 1 , · · · ,r k → s k ) ∈E ω (x, y) eine Folge von Edit-Operationen, die x nach<br />

y überführt. σ hat die Eigenschaft ∗, wenn es eine Zerlegung x = u 0 r 1 u 1 r 2 · · · r k u k und<br />

y = u 0 s 1 u 1 s 2 · · · s k u k gibt mit u i ∈ Σ ∗ , 0 ≤ i ≤ k.<br />

Jede Edit-Operation einer Edit-Sequenz mit Eigenschaft ∗ kann also unabhängig von jeder<br />

anderen angewendet werden (parallele Transformation). Die Menge aller (∗) erfüllenden<br />

Edit-Sequenzen, die x nach y überführen sei E ∗ ω(x, y).<br />

Also könnte man einen neuen Ansatz zur Definition der Distanzfunktion DS ∗ bei allgemeinen<br />

Edit-Operationen machen:<br />

Definition 3.16<br />

Seien x, y ∈ Σ ∗ , E ∗ ω(x, y) die Menge der Edit-Sequenzen mit Eigenschaft ∗, die x nach<br />

y überführen. Für jedes (r, s) ∈ ω seien Kosten w(r, s) ∈ R mit w(r, s) ≥ 0 festgelegt.<br />

Weiterhin gelte w(r, s) = 0 genau dann, wenn r = s..<br />

Dann sei<br />

D ∗ S(x, y) :=<br />

|σ|<br />

∑<br />

min<br />

σ∈Eω(x,y)<br />

∗ i=1<br />

w(r i ,s i ), wobei σ =(r 1 → s 1 , · · · ,r k → s k ) und k = |σ|<br />

der Abstand zwischen x und y bezüglich der Menge ω von Edit-Operationen.<br />

Eine<br />

∑<br />

Edit-Sequenz σ = (r 1 → s 1 , . . . , r k → s k ) heißt optimal, falls DS ∗ (x, y) =<br />

k<br />

1 w(r i,s i ).<br />

Offensichtlich gilt<br />

D ∗ S(x, y) ≥ ϱ(x, y), da E ∗ ω(x, y) ⊆E ω (x, y)<br />

Bemerkung:<br />

Betrachtet man die einfachen Edit-Operationen und ist w eine Metrik, so folgt sofort<br />

DS ∗ = ϱ, da w(a, b) ≤ w(a, c)+w(c, b) und w(a, b) ≥ 0 ist.


28 3 ABSTAND UND ÄHNLICHKEIT<br />

Satz 3.17<br />

Seien x, y ∈ Σ ∗ mit |x| = n und |y| = m. Sei ω eine endliche Menge von Edit-<br />

Operationen und für jedes (r, s) ∈ ω seien Kosten w(r, s) ∈ R mit w(r, s) ≥ 0 festgelegt.<br />

Weiterhin gelte w(r, s) = 0 genau dann, wenn r = s. Dann gilt für alle 0 ≤ i ≤ n<br />

und 0 ≤ j ≤ m<br />

DS(x[1..i],y[1..j]) ∗ = min{p i,j ,q i,j } mit<br />

p i,j =<br />

{<br />

DS ∗ (x[1..i − 1],y[1..j − 1]) falls x[i] =y[j], i, j > 0<br />

∞<br />

sonst<br />

und<br />

q i,j = min<br />

(r, s) ∈ ω<br />

r Suffix von x[1..i]<br />

s Suffix von y[1..j]<br />

{D ∗ S(x[1..i −|r|],y[1..j −|s|]) + w(r, s)} , i, j ≥ 0<br />

Beweis:<br />

Es ist D ∗ S (ε, ε) = 0. Für i = 0 gilt D∗ S (ε, y[1..j]) = q 0,j, für j = 0 gilt entsprechend<br />

D ∗ S (x[1..i],ε) =q i,0 .<br />

Seien jetzt 1 ≤ i ≤ n und 1 ≤ j ≤ m beliebig aber fest gewählt.<br />

Es sei D ∗ S (x[1..i],y[1..j]) =<br />

k ∑<br />

i=1<br />

w(r i ,s i )für eine Edit-Sequenz σ =(r 1 → s 1 ,r 2 →<br />

s k , · · · ,r k → s k ), die Bedingung (∗) erfüllt und x[1..i] in y[1..j] überführt.<br />

Also gilt wegen (∗) x[1..i] =u 0 r 1 u 1 . . . r k u k und y[1..j] =u 0 s 1 u 1 . . . s k u k mit u l ∈ Σ ∗<br />

für 0 ≤ l ≤ k.<br />

Es sind drei Fälle zu unterscheiden:<br />

1) x[i] wird durch eine Edit-Operation transformiert. Es ist u k = ε und σ ′ =(r 1 →<br />

s 1 , · · · ,r k−1 → s k−1 ) ist eine optimale Edit-Sequenz, um x[1..i −|r k |] in y[1..j −<br />

|s k |] zu transformieren. Also gilt<br />

D ∗ S(x[1..i −|r k |],y[1..j −|s k |)+w(r k ,s k )=q i,j<br />

2) y[j] wird durch eine Edit-Operation eingesetzt. Dieser Fall wird wie Fall 1 behandelt.<br />

3) x[i] und y[j] werden nicht verändert.<br />

Dann ist x[i] =y[j] und D ∗ S (x[1..i − 1],y[1..j − 1]) = D∗ S (x[1..i],y[1..j]).<br />

Damit hat man eine rekursive Berechnungsvorschrift für das Abstandsmaß DS ∗ . Der Algorithmus<br />

benötigt O(n · m · l) Zeiteinheiten mit n = |x|, m = |y| und<br />

l = ∑<br />

(r,s)∈ω<br />

|r| + |s|.


3.3 Allgemeine Edit-Operationen und Lückenkosten 29<br />

Bemerkung:<br />

Eine geschicktere Lösung erhält man, wenn man zwei Aho-Corasick-Automaten für<br />

die linken bzw. rechten Seiten der Edit-Operationen in ω konstruiert. Dann kann man<br />

für jedes Paar von Zeichenketten (z 1 ,z 2 ) die Menge der in dieser Situation anwendbaren<br />

Edit-Operationen vorher berechnen. Damit reduziert sich der Zeitbedarf (ohne<br />

die Vorverarbeitung zur Konstruktion der Automaten) auf O(n · m · c) wobei c die<br />

maximale Anzahl gleichzeitig anwendbarer Edit-Operationen ist.<br />

3.3.2 Lückenkosten<br />

Betrachtet man den Spezialfall von Edit-Operationen, bei denen nur einfache Substitutionen,<br />

aber beliebige Einsetz- und Löschoperationen erlaubt sind, so erhält man:<br />

ω l = {r → s | r, s ∈ Σ oder r = ε und s ≠ ε oder r ≠ ε und s = ε}<br />

Fordert man nun weiter, dass die Kosten der Einsetz- und Löschoperationen nur von<br />

der Länge der eingesetzten bzw. gelöschten Zeichenkette abhängen, erhält man folgende<br />

elementare Distanzfunktion w.<br />

Definition 3.18<br />

Die elementare Distanzfunktion w : ˜Σ × ˜Σ → R sei festgelegt durch<br />

1. w(a, a) = 0 für a ∈ Σ,<br />

2. w(a, b) =w 0 > 0für a, b ∈ Σ,a≠ b,<br />

3. w(−,u)=w k und w(u, −) =w −k für u ∈ Σ + , |u| = k.<br />

Weiterhin gelte 0 h, k>0, so nennt man die w k affine Lückenkosten.<br />

Bemerkung:<br />

Lückenkosten der Form w k = w −k = k · w 0 nennt man lineare Lückenkosten. Sie<br />

entsprechen einer allg. Levenshtein-Metrik mit w(x, x) = 0 und w(x, y) = w 0 für<br />

x ≠ y als elementare Distanzfunktion.<br />

Bemerkung:<br />

Lückenkosten sind biologisch motiviert - viele kleinere Lücken sind biologisch gesehen<br />

teurer“ als eine große.<br />


30 3 ABSTAND UND ÄHNLICHKEIT<br />

Lemma 3.19<br />

Für eine optimale Edit-Sequenz, deren Edit-Operationen aus der oben definierten Menge<br />

ω l kommen, gilt die Bedingung (∗). Also ist hier D L (x, y) =D ∗ S (x, y) =ϱ(x 1,y 1 ).<br />

Beweis:<br />

Man überlegt sich leicht, daß wenn in einer Folge von Edit-Operationen minimalen<br />

Gewichts zwei Operationen ”<br />

nacheinander“ dieselben Zeichen verändern, diese Folge<br />

durch eine Folge mit kleinerem Gewicht ersetzt werden kann.<br />

Meist wählt man w k = w −k für k ∈ N, damit wird w Metrik auf Σ ∗ .<br />

Man kann die Werte von D L analog zum Satz 3.17 berechnen:<br />

Satz 3.20<br />

Sei ω l die Menge erlaubter Edit-Operationen und sei w eine elementare Distanzfunktion<br />

mit Lückenkosten, so gilt für alle x, y ∈ Σ ∗ mit |x| = n und |y| = m<br />

1. D L (ε, ε) = 0<br />

2. D L (x[1..i],ε) =D i,0 für 1 ≤ i ≤ n<br />

3. D L (ε, y[1..j]) = I 0,j für 1 ≤ j ≤ m<br />

4. D L (x[1..i],y[1..j]) = min{I i,j ,D i,j ,s} für i, j ≥ 1<br />

wobei<br />

und<br />

s = D L (x[1..i − 1],y[1..j − 1]) + w(x[i],y[j])<br />

I i,0 = ∞<br />

I i,j = min<br />

1≤k≤j {D L(x[1..i],y[1..j − k]) + w k } für 0 ≤ i ≤ n, 1 ≤ j ≤ m<br />

und<br />

Beweis:<br />

D 0,j = ∞<br />

D i,j = min<br />

1≤k≤i {D L(x[1..i − k],y[1..j]) + w −k } für 1 ≤ i ≤ n, 0 ≤ j ≤ m<br />

(analog zum Satz 3.17)<br />

Die Zeitkomplexität des Verfahrens ist O(nm(n + m)).<br />

Beispiel 3.21<br />

Sei x = ywcqpgk und y = lawyqqkpgka. Es sei D L (x[1..i],y[1..j]) = d i,j .<br />

{<br />

0 für a = b<br />

Weiterhin gelte w(a, b) =<br />

für a, b ∈ Σ<br />

3 sonst


3.3 Allgemeine Edit-Operationen und Lückenkosten 31<br />

Die Lückenkosten seien:<br />

k = 1 2 3 4 5 6 7 8 9 10 11<br />

w k = 2 3 4 5 6 7 8 9 10 11 12<br />

w −k = 4 6 8 10 12 14 16 18 20 22 24<br />

Die Werte I i,j und D i,j müssen eigentlich nicht tabelliert werden. Um das Verfahren<br />

an diesem Beispiel zu erläutern, werden die entsprechenden Werte in Form zweier<br />

Matrizen I und D dargestellt.<br />

Man erhält die Matrix I:<br />

0 1 2 3 4 5 6 7 8 9 10 11<br />

ε l a w y q q k p g k a<br />

0 ε ∞ 2 3 4 5 6 7 8 9 10 11 12<br />

1 y ∞ 6 5 6 7 6 7 8 9 10 11 12<br />

2 w ∞ 8 9 8 7 8 9 10 11 12 13 14<br />

3 c ∞ 10 11 12 11 10 11 12 13 14 15 16<br />

4 q ∞ 12 13 14 13 14 10 11 12 13 14 15<br />

5 p ∞ 14 15 16 15 16 14 13 13 14 14 15<br />

6 g ∞ 16 17 18 17 18 16 17 16 17 13 14<br />

7 k ∞ 18 19 20 19 20 18 19 17 18 17 13<br />

wobei sich zum Beispiel I 5,6 wie folgt ergibt:<br />

I 5,6 = min<br />

1≤k≤6 {d 5,6−k + w k }<br />

= min{12 + 2, 14 + 3, 13 + 4, 14 + 5, 13 + 6, 12 + 7}<br />

= 14<br />

Die Matrix D ergibt sich zu:<br />

0 1 2 3 4 5 6 7 8 9 10 11<br />

ε l a w y q q k p g k a<br />

0 ε ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞<br />

1 y 4 6 7 8 9 10 11 12 13 14 15 16<br />

2 w 6 7 9 10 8 10 11 12 13 14 15 16<br />

3 c 8 9 10 9 10 11 13 14 15 16 17 18<br />

4 q 10 11 12 11 12 13 14 16 17 18 19 20<br />

5 p 12 13 14 13 14 12 14 15 16 17 18 19<br />

6 g 14 15 16 15 16 14 15 17 15 17 18 19<br />

7 k 16 17 18 17 18 16 17 18 17 15 17 18<br />

Dabei ist zum Beispiel.:<br />

D 5,6 = min<br />

1≤k≤5 {d 5−k,6 + w −k }<br />

= min{10 + 4, 10 + 6, 9+8, 7 + 10, 7 + 12}<br />

= 14


32 3 ABSTAND UND ÄHNLICHKEIT<br />

Mit d i,0 = min<br />

1≤k≤i {d i−k,0 + w −k } = D i,0<br />

d 0,j = min {d 0,j−k +w k } = I 0,j<br />

1≤k≤j<br />

Aussehen:<br />

(= 4 + 2(i − 1) im Beispiel),<br />

(= 2+(i−1) im Beispiel) hat die d-Matrix folgendes<br />

0 1 2 3 4 5 6 7 8 9 10 11<br />

ε l a w y q q k p g k a<br />

0 ε 0 2 3 4 5 6 7 8 9 10 11 12<br />

1 y 4 3 5 6 4 6 7 8 9 10 11 12<br />

2 w 6 7 6 5 7 7 9 10 11 12 13 14<br />

3 c 8 9 10 9 8 10 10 12 13 14 15 16<br />

4 q 10 11 12 11 12 8 10 11 12 13 14 15<br />

5 p 12 13 14 13 14 12 11 13 11 13 14 15<br />

6 g 14 15 16 15 16 14 15 14 15 11 13 14<br />

7 k 16 17 18 17 18 16 17 15 17 15 11 13<br />

Dabei ist etwa<br />

d 5,6 = D L (ywcqp, lawyqq) = min{I 5,6 ,D 5,6 ,s} mit s = d 4,5 + w(p, q) = 11<br />

Der Abstand von x und y beträgt also unter dieser Distanzfunktion D L (x, y) = 13.<br />

Eine optimale Ausrichtung wäre:<br />

[ ]<br />

− y w c q − − p g k −<br />

l a w y q q k p g k a<br />

Will man das Problem für affine Lückenkosten lösen, so vereinfacht sich der Algorithmus<br />

und auch die Laufzeit wird verbessert.<br />

Satz 3.22<br />

Sei ω l die Menge erlaubter Edit-Operationen und sei w eine elementare Distanzfunktion<br />

mit affinen Lückenkosten, d.h. es ist w −k = w k = g + h · (k − 1) für g > h ≥ 0, so gilt<br />

für alle x, y ∈ Σ ∗ mit |x| = n und |y| = m:<br />

1) D L (ε, ε) = 0<br />

2) D L (x[1..i],ε) =D i,0 = w −i für 1 ≤ i ≤ n<br />

3) D L (ε, y[1..j]) = I 0,j = w j für 1 ≤ j ≤ m<br />

4) D L (x[1..i],y[1..j]) = min{I i,j ,D i,j ,s}<br />

wobei<br />

s = D L (x[1..i − 1],y[1..j − 1]) + w(x[i],y[j])<br />

sowie<br />

und<br />

I i,0 = ∞,<br />

I i,j = min{D L (x[1..i],y[1..j − 1]) + g, I i,j−1 + h}, 0 ≤ i ≤ n, 1 ≤ j ≤ m<br />

D 0,j = ∞<br />

D i,j = min{D L (x[1..i − 1],y[1..j]) + g, D i−1,j + h}, 1 ≤ i ≤ n, 0 ≤ j ≤ m.


3.3 Allgemeine Edit-Operationen und Lückenkosten 33<br />

Beweis:<br />

1. Zu zeigen: D L (ε, y[1..j]) = I 0,j = w j für j>0.<br />

Nach Satz 3.20 gilt: I 0,j = min<br />

1≤k≤j {D L(ε, y[1..j − k]) + w k }.<br />

Es ist I 0,1 = w 1 = g. Weiter folgt mit vollständiger Induktion über j:<br />

I 0,j = min{D L (ε, y[1..j − 1]) + w 1 }∪{ D L (ε, y[1..j − k]+w k | 2 ≤ k ≤ j}<br />

= min{I 0,j−1 + w 1 }∪{ D L (ε, y[1..j − 1 − k]+w k + h | 1 ≤ k ≤ j − 1}<br />

= min{I 0,j−1 + h, w j−1 + h}<br />

= min{w j−1 + g, w j−1 + h} = w j−1 + h = w j , da g ≥ h.<br />

2. Analog zeigt man D i,0 = w −i .<br />

3. Laut Satz 3.20 ist I i,j = min<br />

1≤k≤j {D L(x[1..i],y[1..j − k]) + w k }.<br />

Also folgt<br />

I i,j = min{D L (x[1..i],y[1..j − 1]) + w 1 }∪<br />

{D L (x[1..i],y[1..j − k]) + w k | 2 ≤ k ≤ j}<br />

= min{D L (x[1..i],y[1..j − 1]) + g}∪<br />

{D L (x[1..i],y[1..j − 1 − k]+g +(k − 1)h<br />

} {{ }<br />

w k<br />

} + h | 1 ≤ k ≤ j − 1}<br />

= min{D L (x[1..i],y[1..j − 1] + g, I i,j−1 + h} für j>0<br />

Entsprechend zeigt man die Aussage für D i,j .<br />

Der Algorithmus benötigt also O(nm) Zeiteinheiten und O(min{n, m}) Speicher.<br />

Beispiel 3.23<br />

Sei x = ywcqpgk und y = lawyqqkpgka. Es sei D L (x[1..i],y[1..j]) = d i,j .<br />

{<br />

0 für a = b<br />

Die elementare Distanzfunktion sei wie vorher w(a, b) =<br />

für a, b ∈ Σ,<br />

3 sonst<br />

aber wir nehmen affine Lückenkosten mit w k = w −k = 3 + 1 · (|k|− 1) an.<br />

Auch hier werden die Werte I i,j und D i,j in Form zweier Matrizen I und D notiert.<br />

Dann erhält man für die Matrix I:<br />

0 1 2 3 4 5 6 7 8 9 10 11<br />

ε l a w y q q k p g k a<br />

0 ε ∞ 3 4 5 6 7 8 9 10 11 12 13<br />

1 y ∞ 6 6 7 8 8 9 10 11 12 13 14<br />

2 w ∞ 7 8 9 9 10 11 12 13 14 15 16<br />

3 c ∞ 8 9 10 11 12 13 14 15 16 17 18<br />

4 q ∞ 9 10 11 12 13 12 13 14 15 16 17<br />

5 p ∞ 10 11 12 13 14 15 15 16 16 17 18<br />

6 g ∞ 11 12 13 14 15 16 17 18 19 16 17<br />

7 k ∞ 12 13 14 15 16 17 18 18 19 19 16


34 3 ABSTAND UND ÄHNLICHKEIT<br />

wobei sich z.B. I 4,6 wie folgt ergibt:<br />

I 4,6 = min{d 4,5 + g, I 4,5 + h}<br />

= min{9+3, 13 + 1}<br />

= 12<br />

Und für die Matrix D ergibt sich zu:<br />

0 1 2 3 4 5 6 7 8 9 10 11<br />

ε l a w y q q k p g k a<br />

0 ε ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞<br />

1 y 3 6 7 8 9 10 11 12 13 14 15 16<br />

2 w 4 6 8 9 8 11 12 13 14 15 16 17<br />

3 c 5 7 9 9 9 11 13 14 15 16 17 18<br />

4 q 6 8 10 10 10 12 14 15 16 17 18 19<br />

5 p 7 9 11 11 11 12 14 16 17 18 19 20<br />

6 g 8 10 12 12 12 13 15 17 16 19 20 21<br />

7 k 9 11 13 13 13 14 16 18 17 16 19 20<br />

Dabei ist z.B.:<br />

D 4,6 = min{d 3,6 + g, D 3,6 + h}<br />

= min{11 + 3, 13 + 1}<br />

= 14<br />

Insgesamt hat die d-Matrix damit folgendes Aussehen, wobei<br />

d i,j = min{I i,j ,D i,j ,s} mit s = d i−1,j−1 + w(x[i],y[j])<br />

0 1 2 3 4 5 6 7 8 9 10 11<br />

ε l a w y q q k p g k a<br />

0 ε 0 3 4 5 6 7 8 9 10 11 12 13<br />

1 y 3 3 6 7 5 8 9 10 11 12 13 14<br />

2 w 4 6 6 6 8 8 11 12 13 14 15 16<br />

3 c 5 7 9 9 9 11 11 14 15 16 17 18<br />

4 q 6 8 10 10 10 9 11 13 14 15 16 17<br />

5 p 7 9 11 11 11 12 12 14 13 16 17 18<br />

6 g 8 10 12 12 12 13 15 15 16 13 16 17<br />

7 k 9 11 13 13 13 14 16 15 17 16 13 16<br />

Der Abstand von x und y beträgt also 16. Optimale Ausrichtungen wären etwa:<br />

[ − y w c q − − p g k −<br />

l a w y q q k p g k a<br />

]<br />

oder [ y − w c q − − p g k −<br />

l a w y q q k p g k a<br />

]


3.4 Ausrichtungsprobleme 35<br />

oder [ − − − y w c q − − p g k −<br />

l a w y − − q q k p g k a<br />

]<br />

Bemerkung:<br />

Bei diesen Lückenkosten reicht es nicht aus, ausschließlich in der d-Matrix die Minima<br />

zurück zu verfolgen, sondern man benötigt auch die Informationen in der I- und D-<br />

Matrix.<br />

3.4 Ausrichtungsprobleme<br />

In vielen Anwendungsgebieten ist man daran interessiert, statt der Distanz eine optimale<br />

Ausrichtung zu bestimmen. Das bisher betrachtete Problem wird unter diesem Gesichtspunkt<br />

als globales Ausrichtungsproblem (global alignment problem) bezeichnet. Es<br />

geht also darum, eine optimale Ausrichtung für x und y bezüglich einer vorgegebenen<br />

Distanzfunktion D zu finden. Im folgenden sollen zwei weitere bekannte Varianten des<br />

Ausrichtungsproblems betrachtet werden.<br />

3.4.1 Das semi-globale Ausrichtungsproblem<br />

Das semi-globale Ausrichtungsproblem für zwei Worte x, y ∈ Σ ∗ besteht darin, eine bezüglich<br />

einer Distanzfunktion D optimale Ausrichtung (oder Korrespondenz) zu finden,<br />

wobei bei der Berechnung der Distanz Präfixe bzw. Suffixe von x und y, die mit dem<br />

neutralen Zeichen ”<br />

-“ ausgerichtet sind, ignoriert werden. Sei D sg (x, y) dieser Wert.<br />

Es dürfte klar sein, dass in diesem Fall eine der üblichen Abstandsfunktionen nicht verwendbar<br />

ist, denn zum Beispiel die Ausrichtung, bei der jedem Zeichen von x und y das<br />

neutrale Zeichen gegenübersteht, hätte einen Abstand von 0.<br />

Man wählt also eine elementare abstrakte Abstandsfunktion, die die Ähnlichkeit zweier<br />

Zeichenketten positiv, Abweichungen dagegen negativ bewertet. Man erreicht dies zum<br />

Beispiel durch eine elementare Distanzfunktionen w mit w(a, a) ≥ 0 und w(a, b) ≤ 0für<br />

a ≠ b und man führt die Berechnung über dem Halbring H =(R, max, +, 0) aus.<br />

Definition 3.24<br />

Seien x, y ∈ Σ ∗ . Dann sei<br />

D sg (x, y) =<br />

max<br />

(x ′ ,y ′ )∈A(x,y)<br />

r∑<br />

w(x ′ [i],y ′ [i])<br />

wobei x ′ [1..l] oder y ′ [1..l], und x ′ [r+1..|x ′ |] oder y ′ [r+1..|y ′ |] nur aus neutralen Zeichen<br />

bestehen und l maximal und r minimal ist. Eine bezüglich D sg optimale Ausrichtung<br />

ist eine Lösung des semi-globalen Ausrichtungsproblems.<br />

i=l<br />

Beispiel 3.25<br />

Sei x = pqraxabcstvq und y = deaxbacsll und die elementare Abstandsfunktion w sei<br />

definiert durch w(a, a) = 2, w(a, b) =−2 für a ≠ b und w(a, −) =w(−,a)=−1.


36 3 ABSTAND UND ÄHNLICHKEIT<br />

Dann ist [ p q r − − a x a b − c s − t v q<br />

− − − d e a x − b a c s l l − −<br />

eine Ausrichtung der beiden Zeichenketten bezüglich der gegebenen elementaren Distanzfunktion<br />

und des Halbrings H mit D(x, y) =−2. Werden die Enden der Zeichenketten,<br />

die mit dem neutralem Symbol ausgerichtet sind, nicht mitgezählt, so erhält<br />

man D sg (x, y) ≥ 3. Es gibt aber eine für das semi-globale Ausrichtungsproblem noch<br />

bessere Ausrichtung, denn es gilt D sg (x, y) = 4.<br />

Es stellt sich nun die Frage, wie man dieses Problem lösen kann. Es zeigt sich, dass auch<br />

in diesem Fall eine Variante des Wagner-Fischer Algorithmus die Antwort liefert.<br />

Satz 3.26<br />

Sei |x| = n und |y| = m und sei (d i,j ) die Distanzmatrix, die man ausgehend von der<br />

Initialisierung d i,0 = d 0,j = 0 für 0 ≤ i ≤ n und 0 ≤ j ≤ m mit Hilfe der üblichen<br />

Rekursion berechnet. Dann ist:<br />

D sg (x, y) = max{d i,m ,d n,j |i ∈ [0..n],j ∈ [0..m]}.<br />

Sei (r, s) eine Stelle in der Distanzmatrix, an der das Maximum auftritt, also d rs =<br />

D sg (x, y). Man erhält eine optimale Ausrichtung, wenn man zunächst von d n,m horizontal<br />

oder vertikal direkt zum Eintrag d r,s geht und dann von dieser Position aus<br />

durch ”<br />

Rückverfolgen“ der Maxima die gesuchte Ausrichtung bestimmt.<br />

Zunächst wird gezeigt:<br />

Lemma 3.27<br />

Sei |x| = n und |y| = m und (d i,j ) die mit der elementaren Distanzfunktion w bestimmte<br />

Distanzmatrix. Dann ist d i,j = D ′ sg(x[1..i],y[1..j]), wobei bei der Distanzfunktion<br />

D ′ sg nur die Präfixe von x oder y, die neutralen Zeichen gegenüber stehen, nicht mitgezählt<br />

werden.<br />

Beweis:<br />

Die Aussage gilt für i = j =0<br />

Sei nun i + j>0<br />

Dann sind die folgenden drei Fälle zu unterscheiden:<br />

1. i =0, j > 0: Dann gilt d 0,j = 0 = D ′ sg(ε, y[1..j]).<br />

2. i>0,j = 0: Dann gilt d i,0 = 0 = D ′ sg(x[1..i],ε).<br />

3. i>0, j > 0: Es ist<br />

D sg(x[1..i],y[1..j]) ′ = d i,j<br />

= max{D sg(x[1..i ′ − 1],y[1..j − 1]) + w(x[i],y[j]),<br />

D ′ sg(x[1..i − 1],y[1..j]) + w(x[i], −),<br />

D ′ sg(x[1..i],y[1..j − 1]) + w(−,y[j])}<br />

]<br />

Damit lässt sich nun der Beweis zum Satz 3.26 führen


3.4 Ausrichtungsprobleme 37<br />

Beweis:<br />

Nach Lemma 3.27 folgt<br />

D sg (x, y) = max{D ′ sg(x[1 . . . i],y),D ′ sg(x, y[1 . . . j]) | 0 ≤ i ≤ n, 0 ≤ j ≤ m}.<br />

Will man jetzt zusätzlich Suffixe von x nicht berücksichtigen, so findet man den entsprechenden<br />

Wert in der letzten Spalte der Distanzmatrix d. Will man dagegen Suffixe<br />

von y nicht berücksichtigen, findet man den Wert in der letzten Zeile von d. Da die<br />

elementare Distanzfunktion für das neutrale Zeichen einen Wert ≤ 0 hat, muss man<br />

den maximalen Wert in der letzten Zeile oder Spalte von d suchen. Also folgt die<br />

Behauptung.<br />

Beispiel 3.28<br />

Sei x = pqraxabcstvq und y = deaxbacsll und die elementare Abstandsfunktion w sei<br />

definiert durch w(a, a) = 2, w(a, b) =−2 für a ≠ b und w(a, −) =w(−,a)=−1<br />

Die Initialisierung sei wie in Satz 3.26 Die d-Matrix hat damit folgendes Aussehen:<br />

0 1 2 3 4 5 6 7 8 9 10<br />

ε d e a x b a c s l l<br />

0 ε 0 0 0 0 0 0 0 0 0 0 0<br />

1 p 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1<br />

2 q 0 -1 -2 -2 -2 -2 -2 -2 -2 -2 -2<br />

3 r 0 -1 -2 -3 -3 -3 -3 -3 -3 -3 -3<br />

4 a 0 -1 -2 0 -1 -2 -1 -2 -3 -4 -4<br />

5 x 0 -1 -2 -1 2 1 0 -1 -2 -3 -4<br />

6 a 0 -1 -2 0 1 0 3 2 1 0 -1<br />

7 b 0 -1 -2 -1 0 3 2 1 0 -1 -2<br />

8 c 0 -1 -2 -2 -1 2 1 4 3 2 1<br />

9 s 0 -1 -2 -3 -2 1 0 3 6 5 4<br />

10 t 0 -1 -2 -3 -3 0 -1 2 5 4 3<br />

11 v 0 -1 -2 -3 -4 -1 -2 1 4 3 2<br />

12 q 0 -1 -2 -3 -4 -2 -3 0 3 2 1<br />

Der Abstand von x und y bezüglich des Abstandsmaßes D sg beträgt also 4. Optimale<br />

Ausrichtungen wären etwa:<br />

oder<br />

[ p q r − − a x − a b c s − − t v q<br />

− − − d e a x b a − c s l l − − −<br />

[ p q r − − a x a b − c s − − t v q<br />

− − − d e a x − b a c s l l − − −<br />

]<br />

]


38 3 ABSTAND UND ÄHNLICHKEIT<br />

3.4.2 Das lokale Ausrichtungsproblem<br />

Das lokale Ausrichtungsproblem (lokal alignment problem) ist aus biologischer Sicht besonders<br />

wichtig. Die Aufgabe besteht darin, in den gegebenen zwei Zeichenketten x und<br />

y Teilzeichenketten ˜x und ỹ zu suchen, die bezüglich eines gegebenen Abstandsmaßes<br />

möglichst ähnlich sind.<br />

Mit den ansonsten üblichen Abstandsbegriffen wie etwa der Levenshtein-Metrik kann man<br />

in dieser Situation nicht arbeiten, denn wählt man etwa jeweils die leere Zeichenkette als<br />

Teilzeichenkette, so erhält man bereits den für die Levenstein-Metrik optimalen Abstand.<br />

Sinnvoller ist es, die elementare Gewichtsfunktion so zu wählen, daß w(a, a) ≥ 0 und<br />

w(a, b) ≤ 0für a ≠ b ist. Man arbeitet in diesem Fall mit einer Distanzfunktion D über<br />

dem Halbring ˜H =(R, ˜max, +, 0), wobei gilt:<br />

{<br />

max(M) für max(M) ≥ 0<br />

˜max(M) =<br />

0 sonst<br />

Formal kann man dann das Problem wie folgt beschreiben:<br />

Definition 3.29<br />

Es seien x, y ∈ Σ ∗ mit |x| = n und |y| = m. Ferner sei w : ˜Σ × ˜Σ → R eine elementare<br />

Gewichtsfunktion, die ein Abstandsmaß D festlegt, das über dem Halbring ˜H berechnet<br />

wird. Gesucht sind Teilwörter ˜x und ỹ, für die der Abstand D(˜x, ỹ) maximal ist.<br />

D la (x, y) sei dieser maximale Wert.<br />

Beispiel 3.30<br />

Sei x = pqraxabcstvq und y = deaxbacsll und sei w(a, a) = 2,w(a, b) =−2 für a ≠ b<br />

und w(a, −) =w(−,a)=−1. Dann ist<br />

[ ]<br />

a x − a b c s<br />

a x b a − c s<br />

eine Ausrichtung der Teilzeichenketten ˜x = axabcs von x und ỹ = axbacs von y mit<br />

D(˜x, ỹ) = 8. Also ist D la (x, y) ≥ 8.<br />

Auch hier zeigt sich, dass man dieses Problem mit Hilfe des Wagner-Fischer Algorithmus<br />

lösen kann.<br />

Satz 3.31<br />

Sei |x| = n und |y| = m und sei (d i,j ) die Distanzmatrix, die man ausgehend von der<br />

Initialisierung d i,0 = d 0,j = 0 für 0 ≤ i ≤ n und 0 ≤ j ≤ m mit Hilfe der üblichen<br />

Rekursion bezüglich des Halbrings ˜H berechnet. Dann ist:<br />

D la (x, y) = max{d i,j | 0 ≤ i ≤ n, 0 ≤ j ≤ m}.<br />

Sei (r, s) eine Stelle in der Distanzmatrix, an der das Maximum auftritt, also d rs =<br />

D la (x, y). Von dieser Position aus kann man dann durch das ”<br />

Rückverfolgen“ der<br />

Maxima bis zu einem Wert 0 die gesuchte Ausrichtung und die beiden Teilzeichenketten<br />

˜x und ỹ bestimmen.


3.4 Ausrichtungsprobleme 39<br />

Lemma 3.32<br />

Sei |x| = n und |y| = m, w eine elementare Distanzfunktion und ˜H der Halbring, über<br />

den die Berechnung der Distanzmatrix (d i,j )für die dadurch definierte Distanzfunktion<br />

D durchgeführt wird. Dann ist<br />

d i,j = max{D(α, β) | α Suffix von x[1..i], β Suffix von y[1..j]}<br />

Beweis:<br />

Es gilt offensichtlich d i,j ≥ 0, da α = β = ε möglich ist.<br />

Die Aussage gilt für i = j =0<br />

Sei nun i + j>0<br />

Dann sind die folgenden drei Fälle zu unterscheiden:<br />

1. i =0, j > 0: D(ε, y[1..j]) = 0 = d 0,j .<br />

2. i>0,j = 0: D(x[1..i],ε) = 0 = d i,0 .<br />

3. i>0, j > 0: Es ist<br />

D(x[1..i],y[1..j]) = max{0,D(x[1..i − 1],y[1..j − 1]) + w(x[i],y[j]),<br />

D(x[1..i − 1],y[1..j]) + w(x[i], −),<br />

D(x[1..i],y[1..j − 1]) + w(−,y[j])}<br />

= d i,j<br />

Beweis:<br />

(zum Satz 3.31)<br />

Offensichtlich gilt D la (x, y) ≥ max{d i,j , 0 ≤ i ≤ n, 0 ≤ j ≤ m}.<br />

Sei nun x = x 1˜xx 2 und y = y 1 ỹy 2 mit D(˜x, ỹ) =D la (x, y) und es gelte r = |x 1˜x|,s =<br />

|y 1 ỹ|. Es ist D(˜x, ỹ) =D la (x, y) ≤ d r,s ≤ max{d i,j , 0 ≤ i ≤ n, 0 ≤ j ≤ m} und es folgt<br />

die Aussage.<br />

Beispiel 3.33<br />

Sei x = pqraxabcstvq und y = deaxbacsll und die elementare Abstandsfunktion w sei<br />

definiert durch w(a, a) = 2, w(a, b) =−2 für a ≠ b und w(a, −) =w(−,a)=−1<br />

Die Initialisierung sei wie in Satz 3.31. Die d-Matrix hat dann folgendes Aussehen:


40 3 ABSTAND UND ÄHNLICHKEIT<br />

0 1 2 3 4 5 6 7 8 9 10<br />

ε d e a x b a c s l l<br />

0 ε 0 0 0 0 0 0 0 0 0 0 0<br />

1 p 0 0 0 0 0 0 0 0 0 0 0<br />

2 q 0 0 0 0 0 0 0 0 0 0 0<br />

3 r 0 0 0 0 0 0 0 0 0 0 0<br />

4 a 0 0 0 2 1 0 2 1 0 0 0<br />

5 x 0 0 0 1 4 3 2 1 0 0 0<br />

6 a 0 0 0 2 3 2 5 4 3 2 1<br />

7 b 0 0 0 1 2 5 4 3 2 1 0<br />

8 c 0 0 0 0 1 4 3 6 5 4 3<br />

9 s 0 0 0 0 0 3 2 5 8 7 6<br />

10 t 0 0 0 0 0 2 1 4 7 6 5<br />

11 v 0 0 0 0 0 1 0 3 6 5 4<br />

12 q 0 0 0 0 0 0 0 2 5 4 3<br />

Die zwei Teilzeichenketten ˜x = axabcs und ỹ = axbacs maximaler Ähnlichkeit erhält<br />

man durch Rückverfolgung der Maxima ausgehend vom maximalen Wert 8 in der<br />

d-Matrix.<br />

Die zugehörigen Ausrichtungen sind<br />

oder<br />

[ a x − a b c s<br />

a x b a − c s<br />

[ a x a b − c s<br />

a x − b a c s<br />

]<br />

]

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!