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

Erfolgreiche ePaper selbst erstellen

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

<strong>4.</strong> <strong>Textalgorithmen</strong> Trie<br />

Suffix-Bäume<br />

<strong>4.</strong> <strong>Textalgorithmen</strong> Trie<br />

Trie<br />

• In diesem Abschnitt sollen Datenstrukturen zur Beschleunigung des<br />

exakten <strong>String</strong>-<strong>Matching</strong>s (Problem <strong>4.</strong>1) untersucht werden.<br />

• Konkret liegt folgende Situation vor:<br />

– Gegeben ist ein (evtl. sehr langer) <strong>String</strong> text.<br />

– Man hat Anfragen an text gemäß Problem <strong>4.</strong>1, d.h. es sind alle<br />

(oder ein) Vorkommen eines beliebigen <strong>String</strong>s pat in text aufzufinden.<br />

– Gesucht ist eine Datenstruktur D, mit der nach einer Preprocessingphase<br />

für text solche Anfragen in sublinearer Zeit beantwortet<br />

werden können.<br />

Definition <strong>4.</strong><strong>4.</strong> Es sei Σ ein endliches Alphabet. Ein Trie (auch Σ-<br />

Baum genannt) ist ein Wurzelbaum mit den folgenden Eigenschaften:<br />

(i) Die Kanten des Baumes sind mit Zeichen aus Σ markiert.<br />

(ii) Für jeden Knoten k des Baums und jedes Zeichen c ∈ Σ gibt es<br />

höchstens eine Kante, die <strong>von</strong> k ausgeht und mit c markiert ist.<br />

Für einen Knoten k in einem Trie bezeichnet path(k) den <strong>String</strong>, der sich<br />

aus der Folge der Kantenmarkierungen auf dem Pfad <strong>von</strong> der Wurzel<br />

nach k ergibt.<br />

Für eine Menge P <strong>von</strong> <strong>String</strong>s bezeichnet T rie(P ) den kleinsten Trie<br />

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

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

<strong>4.</strong> <strong>Textalgorithmen</strong> Trie<br />

Anforderungen an die Datenstruktur D:<br />

<strong>4.</strong> <strong>Textalgorithmen</strong> Trie<br />

mit der Eigenschaft:<br />

• Die Größe <strong>von</strong> D sollte linear in |text| sein.<br />

∀pat ∈ P ∃k : pat = path(k)<br />

• D sollte effizient (möglichst in O(|text|)) aufgebaut werden können.<br />

• Problem <strong>4.</strong>1 (exaktes <strong>String</strong>-<strong>Matching</strong>) sollte mit Hilfe <strong>von</strong> D in sublinearer<br />

Zeit gelöst werden können.<br />

☞ Grundidee: Man finde eine geeignete Datenstruktur zur Repräsentation<br />

<strong>von</strong> Wortmengen.<br />

Beispiel <strong>4.</strong>13. [Trie] Für die<br />

Menge P = {ab, ba, babb, bb} <strong>von</strong><br />

<strong>String</strong>s ergibt sich der Trie:<br />

b<br />

a<br />

b<br />

a<br />

b<br />

b<br />

b<br />

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

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!