16.01.2015 Aufrufe

4. Textalgorithmen Arten von String-Matching-Problemen ...

4. Textalgorithmen Arten von String-Matching-Problemen ...

4. Textalgorithmen Arten von String-Matching-Problemen ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>4.</strong> <strong>Textalgorithmen</strong> Positionsbäume<br />

Lemma <strong>4.</strong>11.<br />

Jeder <strong>String</strong> s$ hat einen eindeutigen Positionsbaum.<br />

<strong>4.</strong> <strong>Textalgorithmen</strong> <strong>String</strong>-<strong>Matching</strong> mit Positionsbäumen<br />

<strong>String</strong>-<strong>Matching</strong> mit Hilfe <strong>von</strong> Positionsbäumen<br />

Beweis.<br />

• Für jede Position i gibt es einen eindeutigen Positionsidentifikator<br />

p(i).<br />

• Man braucht nun nur den Trie zu p(1), . . . , p(n + 1) aufzubauen.<br />

• Die Eindeutigkeit folgt aus der Minimalität des Baumes.<br />

✷<br />

Korollar <strong>4.</strong>12. Ein Positionsbaum für s$ mit |s| = n hat n + 1 Blätter.<br />

Beweis. Folgt direkt aus Lemma <strong>4.</strong>11. ✷<br />

• Gegeben sei der Positionsbaum für text$.<br />

• Es sei pat = p 1 , . . . , p m .<br />

• Steige im Positionsbaum ab gemäß pat, d.h.<br />

– wähle zunächst die <strong>von</strong> der Wurzel ausgehende und mit p 1 markierte<br />

Kante,<br />

– dann die mit p 2 markierte Kante, usw.<br />

• Es treten nun verschiedene Fälle auf, die den Abstieg beenden.<br />

Information Retrieval — FH Bonn-Rhein-Sieg, SS 06 250<br />

Information Retrieval — FH Bonn-Rhein-Sieg, SS 06 252<br />

<strong>4.</strong> <strong>Textalgorithmen</strong> Positionsbäume<br />

Lemma <strong>4.</strong>13. Es sei s ≠ ɛ. Dann hat jedes Blatt im Positionsbaum <strong>von</strong><br />

s$ mindestens einen Bruder.<br />

Beweis.<br />

• p(i) = ya, y ∈ Σ ∗ , a ∈ Σ<br />

• Falls y = ɛ, so hat das mit i markierte Blatt einen Bruder, weil es<br />

noch mindestens eine weitere Position im Baum gibt.<br />

• Also sei |y| ≥ 1.<br />

<strong>4.</strong> <strong>Textalgorithmen</strong> <strong>String</strong>-<strong>Matching</strong> mit Positionsbäumen<br />

Der Abstieg terminiert, falls:<br />

(1) pat erschöpft und zwar<br />

(1.1) an einem inneren Knoten oder<br />

(1.2) an einem Blatt<br />

(2) pat nicht erschöpft, aber der Positionsbaum ist erschöpft und zwar<br />

(2.1) an einem inneren Knoten oder<br />

(2.2) an einem Blatt<br />

⇒ Dann kommt y noch an anderer Stelle, etwa j ≠ i, im <strong>String</strong> s vor<br />

(wegen der Minimalität <strong>von</strong> p(i)).<br />

⇒ Also muß es eine Bruderkante geben, die den Anfang des Weges zu<br />

dem mit j markierten Blatt bildet.<br />

✷<br />

Information Retrieval — FH Bonn-Rhein-Sieg, SS 06 251<br />

Information Retrieval — FH Bonn-Rhein-Sieg, SS 06 253

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!