16.12.2012 Aufrufe

Zusammenfassung - Otto-von-Guericke-Universität Magdeburg

Zusammenfassung - Otto-von-Guericke-Universität Magdeburg

Zusammenfassung - Otto-von-Guericke-Universität Magdeburg

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.

6.1 Ähnlichkeiten <strong>von</strong> Zeichenketten<br />

benötigten Operationen zur Überführung <strong>von</strong> r in s ist, umso ähnlicher sind die Zeichenketten<br />

r und s einander.<br />

Laut [Kru99] wurden Algorithmen zur Bestimmung des klassischen Editierabstandes nach<br />

V. I. Levenshtein [Lev66] <strong>von</strong> verschiedenen Autoren in kurzer Folge unabhängig <strong>von</strong>einander<br />

publiziert, beispielsweise in [Vin68, WF74, Hir75]. Statt Editierabstand findet sich in der<br />

Literatur häufig auch die Bezeichnung Levenshtein-Abstand. Da für die Bestimmung des Editierabstandes<br />

zumeist auf Wagner und Fisher [WF74] verwiesen wird, soll deren Verfahren<br />

der dynamischen Programmierung hier kurz skizziert werden. Das Verfahren beruht darauf,<br />

eine Matrix D, die so genannte Distanzmatrix, der Größe (m + 1) × (n + 1) zu bestimmen,<br />

wie dies in den Gleichungen 6.2 bis 6.4 beschrieben ist. Es seien m = |r| die Länge der Zeichenkette<br />

r und n = |s| die Länge der Zeichenkette s.<br />

D0,0 = 0 (6.2)<br />

Di,0 = i (6.3)<br />

D0, j = j<br />

⎧<br />

⎨ Di−1, j−1 +<br />

⎫<br />

d(i, j), ⎬<br />

(6.4)<br />

mit<br />

Di, j<br />

d(i, j)<br />

=<br />

=<br />

min Di−1, j +<br />

⎩<br />

Di, j−1 +<br />

�<br />

1 falls ri �= s j<br />

0 sonst<br />

1,<br />

1<br />

⎭<br />

(6.5)<br />

(6.6)<br />

Hierbei ist ri das i-te Zeichen der Zeichenkette r und s j das j-te Zeichen <strong>von</strong> s; ri und s j<br />

sind Elemente eines endlichen Alphabetes A, so dass gilt r,s ∈ A ∗ .<br />

Das Element der Distanzmatrix D an der Stelle (i, j) mit 0 < i ≤ m und 0 < j ≤ n enthält<br />

genau den Editierabstand zwischen den Teilzeichenketten r1...i und s1... j. Hierbei gelte:<br />

r1...i = r1r2r3 ...ri und s1... j = s1s2s3 ...sj (6.7)<br />

Daraus folgt, dass der Editierabstand zweier Zeichenketten r und s genau dem Wert Dm,n der<br />

oben bestimmten Distanzmatrix D entspricht. Um diesen Wert Dm,n zu bestimmen, müssen<br />

alle (m + 1) × (n + 1) Elemente der Matrix D bestimmt werden, sodass sich eine Berechnungskomplexität<br />

<strong>von</strong> O(m · n) ergibt.<br />

Es lässt sich zeigen, dass der Editierabstand zweier Zeichenketten r und s stets im ganzzahligen<br />

Intervall [0,max{m,n}] liegt, mit m = |r| und n = |s|. Die untere Intervallschranke 0<br />

bezeichnet trivial die Äquivalenz <strong>von</strong> r und s:<br />

r = s ⇐⇒ (m = |r| = |s|) ∧ ∀i ∈ [1,m], (ri = si) (6.8)<br />

Die obere Intervallschranke max{m,n} betrifft den Fall, dass r und s an jeder Position verschieden<br />

sind, also höchstens min{m,n} Ersetzungsoperationen sowie zusätzlich höchstens<br />

|m − n| Einfüge- beziehungsweise Löschoperationen nötig sind, um r in s zu überführen.<br />

Mit dieser Angabe des maximal möglichen Editierabstandes zweier Zeichenketten r und s<br />

lässt sich entsprechend der Gleichung 6.1 die Ähnlichkeit similarityedit(·,·) beschreiben:<br />

73

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!