4. Textalgorithmen Arten von String-Matching-Problemen ...
4. Textalgorithmen Arten von String-Matching-Problemen ...
4. Textalgorithmen Arten von String-Matching-Problemen ...
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