Bezeichnungen. Arten von String-Matching-Problemen
|
|
- Reinhardt Lehmann
- vor 6 Jahren
- Abrufe
Transkript
1 4. Textlgorithmen String Mthing 4. Textlgorithmen Die Suhe von einem Muster in einem Text wird uh ls String Mthing oder Pttern Mthing ezeihnet. Generell esteht die Aufge drin, einen String (ds Muster, Pttern) der Länge m in einem Text der Länge n zu finden, woei n > m gilt. Je nh Freiheitsgrden ei der Suhe untersheidet mn vershiedene Arten von String-Mthing-Prolemen. 4. Textlgorithmen String Mthing Welhe Stellen in einem Text stimmen mit einem Muster is uf d Fehler üerein (Distne-Mth-Anfrge)? Beispiel: grep Editierdistnz: Wie knn mn m günstigsten einen String s in einen String t üerführen? Beispiel: diff Wo ruht mn String-Mthing-Verfhren? Z.B.: Volltextdtennken, Retrievlsysteme, Suhmshinen Bioinformtik In diesem Ashnitt lernen wir effziente Algorithmen für exktes String-Mthing kennen. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen String Mthing Arten von String-Mthing-Prolemen 4. Textlgorithmen String Mthing Bezeihnungen Exktes String-Mthing: Wo tritt ein String pt in einem Text text uf? Beispiel: fgrep Mthing von Wortmengen: Gegeen sei eine Menge S von Strings. Wo tritt in einem Text ein String us S uf? Beispiel: grep Mthing regulärer Ausdrüke: Welhe Stellen in einem Text pssen uf einen regulären Ausdruk? Beispiel: grep, egrep Approximtives String-Mthing: Welhe Stellen in einem Text pssen m esten uf ein Muster (Best-Mth-Anfrge)? Ein Alphet Σ ist eine lihe Menge von Symolen. Σ ezeihnet die Krdinlität von Σ. Ein String (Zeihenkette, Wort) s üer einem Alphet Σ ist eine lihe Folge von Symolen us Σ. s ezeihnet die Länge von s. ɛ ezeihnet den leeren String. Wenn x und y Strings sind, dnn ezeihnet xy die Konktention von x und y. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
2 4. Textlgorithmen String Mthing s[i] ezeihnet ds i-te Element eines Strings s (1 i s ). s[i... j] ezeihnet den String s[i]s[i + 1]... s[j]. Für i > j gelte s[i... j] = ɛ. Für einen String s (mit m = s ) ezeihnet s R die Umkehrung s[m]s[m 1] s[1] von s. Für zwei String x und y gilt x = y genu dnn, wenn x = y = m und x[i] = y[i] für lle 1 i m gilt. Wenn ω = xyz ein String ist, dnn ist x ein Präfix und z ein Suffix von ω. Gilt ω x (ω z), dnn ist x (z) ein ehter Präfix (ehter Suffix) von ω. 4. Textlgorithmen String Mthing Exktes String-Mthing Prolem 4.1. [Exktes String-Mthing] pt und text. () Mn estimme, o pt ein Sustring von text ist. Gegeen sind die Strings () Mn estimme die Menge ller Positionen, n denen pt in text uftritt. Diese Menge wird mit M AT CH(pt, text) ezeihnet. Im folgen wird nur die Vrinte () von Prolem 4.1 etrhtet. Algorithmen für die Vrinte () erhält mn durh einfhe Modifiktionen der Algorithmen für (). Im folgen sei m = pt und n = text. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen String Mthing Ein String x (mit m = x ) heißt Sustring (Fktor) von y, wenn ein i existiert mit x = y[i... i + m 1]. Andere Sprehweisen: x tritt in y n Position i uf zw. Position i ist ein Mth für x in y. x (mit m = x ) heißt Susequenz von y wenn Positionen i 1 < i 2 < i m existieren mit x = y[i 1 ]y[i 2 ]... y[i m ]. 4. Textlgorithmen String Mthing: niver Algorithmus Der nive Algorithmus Der nive Anstz esteht drin, für jede Position von text (zw. solnge pt der ktuellen Position in text pßt) von neuem zu testen, o pt n dieser Position uftritt. Ds llgemeine Shem für solh einen niven Algorithmus lutet: for i := 1 to n m + 1 do mn prüfe, o pt = text[i... i + m 1] gilt Die Prüfung knn nun von links nh rehts oder von rehts nh links erfolgen. Dies führt zu untershiedlihen niven Algorithmen und druf ufu zu untershiedlihen Ansätzen der Veresserung. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
3 4. Textlgorithmen String Mthing: niver Algorithmus Zunähst wird die Vrinte von links nh rehts etrhtet. Algorithmus 4.1. [Nives String-Mthing von links nh rehts] i := 1 while i n m + 1 do j := 1 while j m nd pt[j] = text[i + j 1] do j := j + 1 if j = m + 1 then return true i := i + 1 return flse 4. Textlgorithmen String Mthing: niver Algorithmus Trotz der im Durhshnitt lineren Lufzeit lohnt sih der Einstz von esseren String-Mthing-Algorithmen, denn: die nhfolgen String-Mthing-Algorithmen hen sih niht nur in der Theorie, sondern uh in der Prxis ls erhelih effizienter erwiesen, und die Relität gehorht niht immer den Gesetzen der Whrsheinlihkeitstheorie. Stz 4.1. Der nive Algorithmus 4.1 löst Prolem 4.1 in Zeit O(nm) und Pltz O(m). Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen String Mthing: niver Algorithmus Anlyse f ür nives String-Mthing 4. Textlgorithmen String Mthing: Morris und Prtt String-Mthing nh Morris und Prtt Für pt = m 1 und text = n enötigt Algorithmus 4.1 Zeihenvergleihe (Worst Cse). (n m + 1)m = nm m 2 + m Bei einem inären Alphet und zufällig erzeugten pt und text (jedes Zeihen unhängig und jedes Symol mit Whrsheinlihkeit 1/2) ergit sih für die durhshnittlihe Anzhl n Zeihenvergleihen: (2 2 m )n + O(1) Algorithmus 4.1 ist niv im folgen Sinn: nh jedem Mismth n Stelle j von pt wird vergessen, dß pt is zur Position j 1 uf text pßt. Kommt es n Stelle j von pt zu einem Mismth, so gilt: pt[1... j 1] = text[i... i + j 2] Dies knn wie folgt usgenutzt werden: Angenommen, pt tritt in text n einer Position i + s mit i < i + s < i + j 1 uf. Dnn muß gelten: pt[1... j s 1] = pt[1 + s... j 1] Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
4 4. Textlgorithmen String Mthing: Morris und Prtt Vernshulihung: pt: pt: d text: i i + s i + j 1 s ist hier der Betrg, um den pt nh rehts vershoen wird. Nh einem Mismth n Position j von pt knn nur dnn n i + s ein Mth vorliegen, wenn pt[1... j s 1] ein Suffix von pt[1... j 1] ist. Mit k := j s folgt: pt[1... k 1] ist Suffix von pt[1... j 1]. 4. Textlgorithmen String Mthing: Morris und Prtt Mn ermittle in einer Preproessingphse zu jedem 1 j m ds größte k, so dß pt[1... k 1] ehter Suffix von pt[1... j 1] ist. Der entsprehe Betrg wird mit order[j] ezeihnet. order[j] := zw. order[j] := mx {k pt[1... k 1] = pt[j k j 1]} 1 k j 1 mx {k pt[1... k 1] ist ehter Suffix von pt[1... j 1]} 1 k j 1 Weiterhin gelte order[1] = 0 Im Algorithmus shiee mn ei einem Mismth n Position j des Pttern dieses um s = j order[j] Stellen nh rehts. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen String Mthing: Morris und Prtt Vernshulihung: Text Pttern s nehstmoegliher Mth Mismth 1 j Dmit mn keinen Mth verpßt, muß s möglihst klein und somit k möglihst groß gewählt werden. Konsequenzen für einen veresserten Algorithmus: 4. Textlgorithmen String Mthing: Morris und Prtt Durh die Mximlität ist s ein sfe shift. Algorithmus 4.2. [Morris und Prtt] i := 1; j := 1 while i n m + 1 do while j m nd pt[j] = text[i + j 1] do j := j + 1 if j = m + 1 then return true i := i + j order[j] j := mx(order[j], 1) return flse (A) (B) Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
5 4. Textlgorithmen String Mthing: Morris und Prtt Lemm 4.2. Wenn order[j] (für 1 j m) ereits vorliegt, löst Algorithmus 4.2 Prolem 4.1 in Zeit O(n). 4. Textlgorithmen String Mthing: Morris und Prtt Fioni-Strings Beweis. Es git höhstens n m + 1 niht erfolgreihe Vergleihe (nämlih höhstens einer für jedes i). Mn etrhte nun den Term i + j. Es gilt 2 i + j n + 1. Immer wenn der Vergleih pt[j] = text[i+j 1] erfolgreih wr, wird i + j um eins erhöht. Der n-te Fioni-String F n (n 0) ist wie folgt defi- Definition 4.1. niert: F 0 = ɛ F 1 = F 2 = Insgesmt wird i + j in (A) und (B) niht verringert. F n = F n 1 F n 2 für n > 2 Es git n erfolgreihe Vergleihe Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen String Mthing: Morris und Prtt und somit O(n) Vergleihe insgesmt. Es leit ds Prolem, order[j] erehnen zu müssen. Zunähst ein Beispiel für order[j]. 4. Textlgorithmen String Mthing: Morris und Prtt Beispiel 4.1. order[j] lutet für F 7 : j pt[j] order[j] Für ergit sih: j pt[j] order[j] Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
6 4. Textlgorithmen String Mthing: Morris und Prtt Berehnung von order[j] 4. Textlgorithmen String Mthing: Morris und Prtt Lemm 4.3. Algorithmus 4.3 enötigt zur Berehnung der Telle order höhstens O(m) Vergleihe. Beweis. Anlog zu Lemm 4.2. Zur Berehnung der Telle order wird eine spezielle Version von Algorithmus 4.2 enutzt. Mn nutzt dei die us dem Beweis von Lemm 4.2 eknnte Ttshe us, dß der Betrg i + j nie verringert wird. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen String Mthing: Morris und Prtt Algorithmus 4.3. order[1] := 0 for j := 2 to m do order[j] := 1 i := 2 j := 1 while i m do while i + j 1 m nd pt[j] = pt[i + j 1] do j := j + 1 order[i + j 1] := j i := i + j order[j] j := mx(order[j], 1) 4. Textlgorithmen String Mthing: Knuth, Morris und Prtt Knuth, Morris und Prtt Der Algorithmus von Morris und Prtt knn noh effizienter gemht werden. Mn etrhte folges Beispiel: pt: - - text: Es kommt für j = 6 zu einem Mismth. Wegen order[6] = 3 wird pt um drei Zeihen nh rehts geshoen. pt: - - text: Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
7 4. Textlgorithmen String Mthing: Knuth, Morris und Prtt Es kommt lso n der gleihen Stelle des Textes direkt wieder zu einem Mismth. Dies wr zusehen, denn für pt gilt: pt[6] = pt[order[6]] Vernshulihung: Pttern s Mismth 1 j zwngsleufiger Mismth!= notwig 4. Textlgorithmen String Mthing: Knuth, Morris und Prtt Beispiel 4.2. sorder[j] lutet für F 7 (vgl. Beispiel 1.1): j pt[j] sorder[j] order[j] Algorithmus 4.4. [Knuth, Morris und Prtt] Der Algorithmus von Knuth, Morris und Prtt ist identish zu Algorithmus 1.2 is uf die Ttshe, dß sttt order die strengere Vrinte sorder verwet wird. Zur Berehnung von sorder sind eenflls nur mrginle Änderungen gegenüer Algorithmus 1.3 notwig. Text Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen String Mthing: Knuth, Morris und Prtt Offensihtlih knn die isher genutzte Bedingung, dß pt[1... k 1] Suffix von pt[1... j 1] ist, um die Bedingung vershärft werden. pt[k] pt[j] Konsequenzen für eine Veresserung: mn enutze sttt order[j] die folge Vrinte sorder[j]: sorder[j] := mx {k pt[1... k 1] = pt[j k+1... j 1] und pt[k] pt[j]} 1 k j 1 Flls kein solhes k existiert, gelte sorder[j] = 0 4. Textlgorithmen String Mthing: Knuth, Morris und Prtt Algorithmus 4.5. [Berehnung von sorder] for j := 1 to m do sorder[j] := 0 i := 2 j := 1 while i m do while i + j 1 m nd pt[j] = pt[i + j 1] do j := j + 1 sorder[i + j 1] := sorder[j] sorder[i + j 1] := mx(j, sorder[i + j 1]) i := i + j sorder[j] j := mx(sorder[j], 1) Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
8 4. Textlgorithmen String Mthing: Knuth, Morris und Prtt Stz 4.4. Die Algorithmen 1.3 und 1.4 lösen Prolem 4.1 in Zeit O(n + m) und Pltz O(m). Beweis. sorder knn wie order in Zeit O(m) erehnet werden. Durh die Verwung von sorder sttt order finden in Algorithmus 1.4 niht mehr Vergleihe sttt ls in Algorithmus Textlgorithmen String Mthing: Knuth, Morris und Prtt Nun erhält mn i := sorder[12] = 6 und j := sorder[12] = 7. j i Es tritt wieder ein Mismth uf, deshl j := 4 und i := 9. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen String Mthing: Knuth, Morris und Prtt Beispiel 4.3. [Algorithmus von Knuth, Morris und Prtt] F 7 wird in dem String Der String gesuht. Nh dem Strt des Algorithmus ergit sih ein Mismth für j = 12 und i = 1. j 4. Textlgorithmen String Mthing: Knuth, Morris und Prtt Die Mismthes setzen sih fort is j = 1 und i = 13. j i A hier wird nun ein Mth ermittelt. i Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
9 4. Textlgorithmen String Mthing: Boyer und Moore Der Algorithmus von Boyer und Moore 4. Textlgorithmen String Mthing: Boyer und Moore Vernshulihung: nehstmoegliher Mth Der Algorithmus von Boyer und Moore knn ls eine veresserte Vrinte eines niven String-Mthing-Algorithmus ngesehen werden, ei dem pt mit text von rehts nh links verglihen wird. Mismth Vergleih Algorithmus 4.6. [nives String-Mthing von rehts nh links] i := 1 while i n m + 1 do j := m while j 1 nd pt[j] = text[i + j 1] do j := j 1 if j = 0 then return true i := i + 1 return flse Text Pttern 1???? j m Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen String Mthing: Boyer und Moore Der Algorithmus von Boyer und Moore siert uf der folgen Üerlegung: 4. Textlgorithmen String Mthing: Boyer und Moore Kommt es in Algorithmus 1.6 n der Stelle j von pt zu einem Mismth, so gilt Tritt in Algorithmus 1.6 n Stelle j ein Mismth uf und kommt pt[j m] niht ein weiteres ml in pt ls Sustring vor, so knn pt gleih um m Zeihen nh rehts vershoen werden. Vergleiht mn dgegen von links nh rehts, knn pt nh einem Mismth n Position j nie um mehr ls j Positionen nh rehts vershoen werden (vgl. Algorithmus 1.2). pt[j m] = text[i + j... i + m 1] und pt[j] text[i + j 1]. Dies knn wie folgt usgenutzt werden: Angenommen, pt tritt in text n einer Position i < i + s < i + m uf. Dnn müssen die eiden folgen Bedingungen gelten: (BM1) für lle j < k m : k s oder pt[k s] = pt[k] (BM2) s < j = pt[j s] pt[j] Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
10 4. Textlgorithmen String Mthing: Boyer und Moore Vernshulihung: pt: j s pt: j text: i i + j 1 4. Textlgorithmen String Mthing: Boyer und Moore Die entsprehen Werte werden in einer Preproessingphse ermittelt und in der Shift-Telle D gelegt. D[j] := min{s (BM1) und (BM2) gilt für j und s } s>0 Der Algorithmus von Boyer und Moore verwet nun im Flle eines Mismthes n Position j den in D[j] gelegten Wert, um pt nh rehts zu vershieen. Dmit mn keinen Mth verpßt, muß s wiederum möglihst klein gewählt werden. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen String Mthing: Boyer und Moore Vernshulihung: nehstmoegliher Mth fuer BM2!= Vergleih = fuer BM1 Mismth Pttern 1 j m 4. Textlgorithmen String Mthing: Boyer und Moore Algorithmus 4.7. [Algorithmus von Boyer und Moore] i := 1 while i n m + 1 do j := m while j 1 nd pt[j] = text[i + j 1] do j := j 1 if j = 0 then return true i := i + D[j] return flse Text???? Beispiel 4.4. D[j] lutet für F 7 : j pt[j] D[j] Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
11 4. Textlgorithmen String Mthing: Boyer und Moore Algorithmus 1.7 knn noh weiter veressert werden: Tritt n Stelle m von pt (lso ereits eim ersten Vergleih) ein Mismth uf, so wird pt nur um eine Stelle nh rehts vershoen. Es sei lst[] := mx {j pt[j] = } 1 j m und lst[] := 0 flls niht in pt uftritt. lst[] git für ein Σ die jeweils letzte Position von in pt n. Kommt es nun n Stelle j zu einem Mismth, knn sttt 4. Textlgorithmen String Mthing: Boyer und Moore Auf gewöhnlihen Texten verhält sih die vereinfhte Version i.d.r. nur mrginl shlehter ls die ursprünglihe Version. Bei kleinem Σ ist die Ourene-Heuristik i.d.r. nutzlos. nehstmoegliher Mth fuer Ourene Mismth Vergleih i := i + D[j] Pttern die Anweisung i := i + mx(d[j], j lst[text[i + j 1]]) Text 1???? j m Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen String Mthing: Boyer und Moore verwet werden. Dmit ergeen sih noh größere Vershieungen. Bemerkungen: Vershieungen der Länge j lst[text[i+j 1]] heißen Ourrene- Shift. Wird nur der Ourene-Shift verwet, d.h. die Vershieenweisung lutet i := i + mx(1, j lst[text[i + j 1]]) so spriht mn von einem vereinfhten Boyer-Moore-Algorithmus. Die Worst-Cse-Lufzeit des vereinfhten Boyer-Moore-Algorithmus eträgt O(nm). 4. Textlgorithmen String Mthing: Boyer und Moore Es leit ds Prolem, die Shift-Telle D zu erehnen. Dies geshieht in zwei Phsen. In der ersten Phse werden nur Vershieungen der Form D[j] < j etrhtet. Für solhe Vershieungen muß gelten: (BM1) pt[j m] = pt[j + 1 s... m s] (BM2) pt[j s] pt[j] Vernshulihung: pt: * * * * pt: * * * * s j s j Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
12 4. Textlgorithmen String Mthing: Boyer und Moore Die Sitution ist ähnlih wie eim Verfhren von Morris und Prtt. Sttt eines Präfixes muß hier er ein Suffix von pt mit einem inneren Teil von pt üereinstimmen. Vorgehensweise für die erste Phse: mn erehnet (für 0 j m) rorder[j] mit rorder[j] := zw. mx {k pt[j j + k 1] = pt[m k m]} 1 k m j 4. Textlgorithmen String Mthing: Boyer und Moore i := m 1 j := 1 while i >= 0 do while i j + 1 >= 1 nd pt[m j + 1] = pt[i j + 1] do j := j + 1 rorder[i j + 1] = j i := i j + rorder[m j + 1] j := mx(rorder[m j + 1], 1) rorder[j] := mx {k pt[j+1... j+k 1] ist ehter Suffix von pt[j+1... m]} 1 k m j Weiterhin gelte rorder[m] = 0. Wegen (BM2) treten relevnte Situtionen zur Berehnung von D[j] nur im Flle eines Mismth in der inneren While-Shleife uf. Dementspreh wird zur Berehnung von D[j] der Algorithmus hinter der inneren While-Shleife um die folgen Anweisungen erweitert: Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen String Mthing: Boyer und Moore Beispiel 4.5. rorder[j] lutet für F 7 : j pt[j] rorder[j] Mn ehte: rorder[j] entspriht order[j] für pt R. Dementspreh läßt sih rorder[j] nlog zu Algorithmus 1.3 erehnen, woei mn nun er von rehts nh links vorgeht. 4. Textlgorithmen String Mthing: Boyer und Moore if j > 1 then s := m i t := i j + 1 if t + s > s then D[t + s] = min(s, D[t + s]) if if Vernshulihung: pt: * * * * pt: * * * * s t = i j + 1 t + s i Dmit steht der Algorithmus für die erste Phse. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
13 4. Textlgorithmen String Mthing: Boyer und Moore Beispiel 4.6. D[j] nh der ersten Phse für den String F 7 : 4. Textlgorithmen String Mthing: Boyer und Moore nehstmoegliher Mth j pt[j] D[j] Mismth Vergleih = fuer BM1 Pttern 1 t j m Text???? Es werden nun in steiger Reihenfolge möglihe Werte für t etrhtet, und D[j] wird entspreh korrigiert. Der größte möglihe Wert für t ergit sih durh rorder[0] (Länge des längsten Sustrings, der sowohl ehter Präfix ls uh ehter Suffix ist). Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen String Mthing: Boyer und Moore In der zweiten Phse werden Vershieungen mit D[j] j etrhtet. Für solhe Vershieungen muß die Bedingung (BM1) pt[1... t 1] = pt[m t m] mit j m t + 1 gelten. (BM2) ist in dieser Phse stets whr und ruht niht weiter etrhtet zu werden. Vernshulihung: pt: pt: s = m t + 1 j t 1 m t Textlgorithmen String Mthing: Boyer und Moore Die weiteren möglihen Werte für t ergeen sih durh rorder[m t+1]. t := rorder[0] l := 1 while t > 0 do s = m t + 1 for j := l to s do D[j] := min(d[j], s) t := rorder[s] l := s + 1 Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
14 4. Textlgorithmen String Mthing: Boyer und Moore Algorithmus 4.8. [Berehnung der Shift-Telle für Boyer und Moore] /* Initilisierung */ rorder[m] := 0; D[m] := 1 for j := m 1 downto 0 do rorder[j] = 1; D[j] = m /* Phse 1 */ i := m 1 j := 1 while i >= 0 do while i j + 1 >= 1 nd pt[m j + 1] = pt[i j + 1] do j := j + 1 rorder[i j + 1] = j 4. Textlgorithmen String Mthing: Boyer und Moore D[j] := min(d[j], s) t := rorder[s] l := s + 1 Beispiel 4.7. [Algorithmus von Boyer und Moore] in dem String gesuht. Der String F 7 wird Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen String Mthing: Boyer und Moore if j > 1 then s := m i t := i j + 1 if t + s > s then D[t + s] = min(s, D[t + s]) if if i := i j + rorder[m j + 1] j := mx(rorder[m j + 1], 1) /* Phse 2 */ t := rorder[0] l := 1 while t > 0 do s = m t + 1 for j := l to s do 4. Textlgorithmen String Mthing: Boyer und Moore Beispiel 4.8. [Shift-Tellen für Boyer/Moore] dtennk retrievl ompiler kukuk rokoko pp rkdr Stz 4.5. Algorithmus 1.7 löst Prolem 4.1() in Zeit O(n + m) und Pltz O(m). Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
15 4. Textlgorithmen String Mthing: Boyer und Moore Bemerkungen: 4. Textlgorithmen Approximtives String-Mthing Anwungseispiele: Als shrfe oere Shrnke für die Anzhl n Zeihenvergleihen ergit sih 3n. Würde mn sttt (BM1) und (BM2) nur (BM1) verwen, so wäre keine linere Lufzeit mehr gewährleistet (O(mn)). Suht mn mit dem Algorithmus von Boyer und Moore nh llen Mthes für pt in text, so ist die Lufzeit eenflls O(mn). Molekulriologie (Erkennung von DNA-Sequenzen) Ausgleih vershiedener Shreiweisen (Grfik vs. Grphik) Ausgleih von Beugungen Tolernz gegenüer Tippfehlern Tolernz gegenüer OCR-Fehlern Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen Approximtives String-Mthing Approximtives String-Mthing 4. Textlgorithmen Approximtives String-Mthing String-Metriken Der Begriff nhezu wird dei durh eine Metrik uf Strings formlisiert. Bisher hen wir String-Mthing-Proleme etrhtet, ei denen ds Muster pt exkt mit einem Sustring von text üereinstimmen mußte. Beim Mthing von regulären Ausdrüken läßt mn zwr Vrinten zu, er eenflls keine Fehler. In vielen prktishen Fällen ist es wünshenswert, die Stellen von text zu finden, die mit pt nhezu üereinstimme, d.h. mn erlut Aweihungen zwishen pt und text. Zur Erinnerung: Sei M eine Menge. Eine Funktion d : M M IR heißt Metrik, wenn die folgen Bedingungen erfüllt sind: d(x, y) 0 für lle x, y M d(x, y) = 0 x = y für lle x, y M d(x, y) = d(y, x) für lle x, y M d(x, z) d(x, y) + d(y, z) für lle x, y, z M. (M, d) ist dnn ein metrisher Rum. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
16 4. Textlgorithmen Approximtives String-Mthing Prolem 4.2. Gegeen seien ein String pt, ein String text, eine Metrik d für Strings und ein gnze Zhl k 0. Mn finde lle Sustrings y von text mit d(pt, y) k. Bemerkungen: Für k = 0 erhält mn ds exkte String-Mthing Prolem Prolem 4.2 ist zunähst ein strktes Prolem, d nihts üer die Metrik d usgesgt wird. Zur Konkretisierung von Prolem 4.2 und zur Entwiklung von entsprehen Algorithmen müssen zunähst sinnvolle Metriken etrhtet werden. 4. Textlgorithmen Approximtives String-Mthing Editierdistnz, Levenstein-Metrik Definition 4.3. Für zwei Strings x und y ist die Editierdistnz (Edit Distne) edit(x, y) definiert ls die kleinste Anzhl n Einfüge- und Löshopertionen, die notwig sind, um x in y zu üerführen. Läßt mn zusätzlih uh die Ersetzung eines Symols zu, so spriht mn von einer Levenstein-Metrik (Levenshtein Distne) lev(x, y). Nimmt mn ls weitere Opertion die Trnsposition (Vertushung zweier enhrter Symole) hinzu, so erhält mn die Dmeru- Levenstein-Metrik dlev(x, y). Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen Approximtives String-Mthing Hmming-Distnz Definition 4.2. Für zwei Strings x und y mit x = y = m ergit sih die Hmming-Distnz (Hmming Distne) durh: Bemerkungen: d(x, y) = {1 i m x[i] y[i]} Die Hmming-Distnz ist die Anzhl der Positionen, n denen sih x und y untersheiden. Sie ist nur für Strings gleiher Länge definiert. 4. Textlgorithmen Approximtives String-Mthing Bemerkungen: Offensihtlih gilt stets dlev(x, y) lev(x, y) edit(x, y). Die Dmeru-Levenstein-Metrik wurde speziell zur Tippfehlerkorrektur entworfen. Wird in Prolem 4.2 für d eine der Metriken us Definition 3.2 verwet, dnn spriht mn uh von string mthing with k differenes zw. von string mthing with k errors. Wird in Prolem 4.2 für d die Hmming-Distnz verwet, so spriht mn uh von string mthing with k mismthes. Die Hmming-Distnz der Strings und e- Beispiel 4.9. trägt 4. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
17 4. Textlgorithmen Approximtives String-Mthing Beispiel Für x = und y = gilt: edit(x, y) = 5 dlev(x, y) = lev(x, y) = 4 4. Textlgorithmen Berehnung der Stringdistnz D die Metriken edit, lev und dlev sehr ähnlih sind, wird im folgen nur die Levenstein-Metrik etrhtet. Algorithmen für die nderen Metriken erhält mn durh einfhe Modifiktionen der folgen Verfhren. Im folgen sei m = x und n = y und es gelte m n. Lösungsnstz: dynmishe Progrmmierung genuer: erehne die Distnz der Teilstrings x[1... i] und y[1... j] uf der Bsis ereits erehneter Distnzen. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen Berehnung der Stringdistnz Berehnung der Stringdistnz 4. Textlgorithmen Berehnung der Stringdistnz Die Telle LEV sei definiert durh: LEV [i, j] := lev(x[1... i], y[1... j]) mit 0 i m, 0 j n Prolem 4.3. Gegeen seien zwei Strings x und y. Mn ermittle edit(x, y) zw. lev(x, y) zw. dlev(x, y) sowie die zugehörigen Opertionen zur Üerführung der Strings. Bemerkungen: Wenn x und y Dteien repräsentieren, woei x[i] zw. y[j] die i-te Zeile zw. j-te Zeile drstellt, dnn spriht mn uh vom File Differene Prolem. Unter UNIX steht ds Kommndo diff zur Lösung des File Differene Prolems zur Verfügung. Die Werte für LEV [i, j] können mit Hilfe der folgen Rekursionsformeln erehnet werden: LEV [0, j] = j für 0 j n, LEV [i, 0] = i für 0 i m LEV [i, j] = min{ LEV [i 1, j] + 1, LEV [i, j 1] + 1, LEV [i 1, j 1] + δ(x[i], y[j])} δ(, ) = { 0 flls = 1 sonst Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
18 4. Textlgorithmen Berehnung der Stringdistnz Bemerkungen: Die Rekursionsformel spiegelt die drei Opertion Löshen, Einfügen und Sustitution wider. Die Stringdistnz ergit sih ls LEV [m, n]. Möhte mn nur die Stringdistnz erehnen, so genügt es, sih uf Stufe i der Rekursion die Werte von LEV der Stufe i 1 zu merken. Benötigt mn die zugehörigen Opertionen, speihert mn LEV ls Mtrix und ermittelt die zugehörigen Opertionen in einer Rükwärtsrehnung. 4. Textlgorithmen Berehnung der Stringdistnz Beispiel Drstellung von LEV ls Mtrix für x = und y = : Die zugehörigen Umwndlungen luten: Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen Berehnung der Stringdistnz Algorithmus 4.9. [Berehnung der Stringdistnz] for i := 0 to m do LEV [i, 0] := i for j := 1 to n do LEV [0, j] := j for i := 1 to m do for j := 1 to n do LEV [i, j] := min{ LEV [i 1, j] + 1, LEV [i, j 1] + 1, LEV [i 1, j 1] + δ(x[i], y[j])} return LEV [m, n] 4. Textlgorithmen Berehnung der Stringdistnz Vernshulihung: Die Berehnung der Stringdistnz knn ls Pfd in einem Grphen vernshuliht werden. = = = = = Löshopertion Einfügeopertion Sustitution keine Änderung Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
19 4. Textlgorithmen Berehnung der Stringdistnz Der drgestellte Pfd entspriht der folgen (niht optimlen) Umwndlung: Aus der Rekursionsformel und den Bemerkungen folgt: Stz 4.6. Die Stringdistnz (für edit, lev und dlev) knn in Zeit O(mn) und Pltz O(m) erehnet werden. Prolem 4.3 knn mit Pltz O(mn) gelöst werden. 4. Textlgorithmen Berehnung der Stringdistnz Ansonsten erehnet sih MLEV [i, j] wie LEV [i, j], d.h.: MLEV [i, 0] = i für 0 i m MLEV [i, j] = min{ MLEV [i 1, j] + 1, MLEV [i, j 1] + 1, MLEV [i 1, j 1] + δ(x[i], y[j])} Gilt nun MLEV [m, j] k, so et in Position j ein Sustring y von text mit lev(pt, y) k (woei m die Ptternlänge ist). Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen Berehnung der Stringdistnz Mit einer kleinen Änderung knn die ngegeene Rekursionsformel uh zur Lösung von Prolem 4.2 eingesetzt werden. Es sei MLEV definiert durh: MLEV [i, j] := min {lev(pt[1... i], text[l... j])} 1 l j d.h., M LEV [i, j] ist die kleinste Distnz zwishen pt[1... i] und einem Suffix von text[1, j]. Es gilt nun: MLEV [0, j] = 0 für 0 j n, denn pt[1... 0] = ɛ und ɛ ist stets in text[1... j] ohne Fehler enthlten. 4. Textlgorithmen Berehnung der Stringdistnz Beispiel Die Telle M LEV für pt = ABCDE und text = ACEABP CQDEABCR. j i A C E A B P C Q D E A B C R A B C D E Für k = 2 ergeen sih die Positionen 3, 10, 13 und 14. Die zugehörigen Sustrings von text sind ACE, ABPCQDE, ABC und ABCR. Stz 4.7. Prolem 4.2 knn für die Metriken edit, lev und dlev in Zeit O(mn) gelöst werden. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
20 4. Textlgorithmen Trie Suffix-Bäume 4. Textlgorithmen Trie Trie In diesem Ashnitt sollen Dtenstrukturen zur Beshleunigung des exkten String-Mthings (Prolem 4.1) untersuht werden. Konkret liegt folge Sitution vor: Gegeen ist ein (evtl. sehr lnger) String text. Mn ht Anfrgen n text gemäß Prolem 4.1, d.h. es sind lle (oder ein) Vorkommen eines elieigen Strings pt in text ufzufinden. Gesuht ist eine Dtenstruktur D, mit der nh einer Preproessingphse für text solhe Anfrgen in sulinerer Zeit entwortet werden können. Definition 4.4. Es sei Σ ein lihes Alphet. Ein Trie (uh Σ- Bum gennnt) ist ein Wurzelum mit den folgen Eigenshften: (i) Die Knten des Bumes sind mit Zeihen us Σ mrkiert. (ii) Für jeden Knoten k des Bums und jedes Zeihen Σ git es höhstens eine Knte, die von k usgeht und mit mrkiert ist. Für einen Knoten k in einem Trie ezeihnet pth(k) den String, der sih us der Folge der Kntenmrkierungen uf dem Pfd von der Wurzel nh k ergit. Für eine Menge P von Strings ezeihnet T rie(p ) den kleinsten Trie Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen Trie Anforderungen n die Dtenstruktur D: 4. Textlgorithmen Trie mit der Eigenshft: Die Größe von D sollte liner in text sein. pt P k : pt = pth(k) D sollte effizient (möglihst in O( text )) ufgeut werden können. Prolem 4.1 (exktes String-Mthing) sollte mit Hilfe von D in sulinerer Zeit gelöst werden können. Grundidee: Mn finde eine geeignete Dtenstruktur zur Repräsenttion von Wortmengen. Beispiel [Trie] Für die Menge P = {,,, } von Strings ergit sih der Trie: Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
21 4. Textlgorithmen Trie Stringsuhe mit Hilfe eines Tries Es sei P eine Menge von Strings. Dnn gilt: T rie(p ) knn in linerer Zeit ezüglih der Gesmtlänge der in P enthltenen Strings ufgeut werden. Die Größe von T rie(p ) ist liner in der Gesmtlänge der Strings von P. 4. Textlgorithmen Trie Ein erster Lösungsnstz esteht drin, sämtlihe Suffixe eines Textes mit Hilfe eines Tries drzustellen. Allgemein knn ein Suffix von text Präfix eines nderen Suffixes von text sein. Dies würde dzu führen, dß niht jeder Suffix mit einem Bltt des Tries ssoziiert werden knn. Deshl wird die zusätzlihe Vorussetzung eingeführt, dß text mit einem Sonderzeihen geshlossen sein muß, ds nsonsten in text niht vorkommt. Es sei w ein elieiger String. Dnn knn mit Hilfe von T rie(p ) in O( w ) geprüft werden, o w P gilt. Für jeden Trie gilt: Ausgngsgrd Σ. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen Trie Beispiel Suhe des Strings in dem Trie für die Menge P = {,,, }. 4. Textlgorithmen Trie Suffix-Trie Mn folgt usgeh von der Wurzel sukzessive den Knten des Tries, die mit dem Symol pt[j] mrkiert sind. Definition 4.5. Es sei s = s[1]... s[n 1] ein String. Dnn ist der Suffix-Trie ST (s) der Bum ST (s) = T rie({s[1... n], s[2... n],..., s[n 1... n], }) Ist ds Pttern ershöpft und der ktuelle Knoten mrkiert einen String us P, so ist ds Suhpttern in P. woei die Blätter p von ST (s) zusätzlih eine Mrkierung lel(p) trgen, für die gilt: lel(p) = i pth(p) = s[i... n] Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
22 4. Textlgorithmen Trie 4. Textlgorithmen Positionsäume Positionsidentifiktor 7 Beispiel [Suffix-Trie] Der Suffix-Trie für den String sieht folgermßen us: Definition 4.6. Es seien Σ ein Alphet, s, u Zeihenreihen (Strings) Σ mit s ɛ und i IN mit 1 i s. Dnn heißt u Positionsidentifiktor für die Position i in s (Bezeihnung: u = pid s (i)) genu dnn, wenn die folgen Bedingungen gelten: (i) y, z mit s = yuz und y = i 1. 3 (ii) y, z : s = y uz y = y und z = z 2 (iii) u ist miniml unter den Bedingungen (i) und (ii). 1 Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen Trie Es esteht eine Eins-zu-eins-Beziehung zwishen den Knoten von ST (s) und den vershiedenen Sustrings von s. Die Anzhl der Knoten von ST (s) ist u.u. qudrtish in s. Dies ist z.b. für Strings der Form m m der Fll. Solhe Strings der Länge 2m + 1 hen m 2 + 4m + 2 vershiedene Sustrings. 4. Textlgorithmen Positionsäume Bemerkungen: u = ɛ erfüllt Bedingung (i) für jedes s Σ + und jedes i mit 1 i s. Für s 2 erfüllt u = ɛ Bedingung (ii) niht. Niht für lle s und lle i existiert ein Positionsidentifiktor. Sttt einen kompletten Suffix Position i in text nimmt mn nur einen String uf, der die Position i in text eindeutig eshreit. Flls für String s und Position i ein Positionsidentifiktor existiert, so ist er eindeutig estimmt. Lemm 4.8. Bei Ashluß von s mit einem Sonderzeihen, ds in s niht vorkommt, existiert für jede Position von s ein Positionsidentifiktor. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
23 4. Textlgorithmen Positionsäume Beispiel Der String s = ht die Positionsidentifiktoren: i pid s (i) Korollr 4.9. s 1... s n+1 esitzt je einen Positionsidentifiktor für i = 1,..., n + 1 s n+1 {s 1,..., s n } 4. Textlgorithmen Positionsäume Positionsum Definition 4.7. Es sei s = s[1]... s[n] ein String. Dnn ist der Positionsum P T (s) der Bum P T (s) = T rie({pid s (1), pid s (2),..., pid s (n + 1)}) woei die Blätter p von P T (s) zusätzlih eine Mrkierung lel(p) trgen, für die gilt: lel(p) = i pth(p) = pid s (i) Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen Positionsäume Lemm Kein Positionsidentifiktor ist Anfng (Präfix) eines Positionsidentifiktors für eine weitere Position in demselen String s. 4. Textlgorithmen Positionsäume Beispiel Der Positionsum für s = sieht wie folgt us: Beweis. Sei i j mit p(i) Anfng von p(j), 7 d.h. p(i)ω = p(j), p(i) kommt in s uh n Position j vor. 3 6 p(i) identifiziert die Position i niht eindeutig. Widerspruh Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
24 4. Textlgorithmen Positionsäume Lemm Jeder String s ht einen eindeutigen Positionsum. 4. Textlgorithmen String-Mthing mit Positionsäumen String-Mthing mit Hilfe von Positionsäumen Beweis. Für jede Position i git es einen eindeutigen Positionsidentifiktor p(i). Mn ruht nun nur den Trie zu p(1),..., p(n + 1) ufzuuen. Die Eindeutigkeit folgt us der Minimlität des Bumes. Korollr Ein Positionsum für s mit s = n ht n + 1 Blätter. Beweis. Folgt direkt us Lemm Gegeen sei der Positionsum für text. Es sei pt = p 1,..., p m. Steige im Positionsum gemäß pt, d.h. wähle zunähst die von der Wurzel usgehe und mit p 1 mrkierte Knte, dnn die mit p 2 mrkierte Knte, usw. Es treten nun vershiedene Fälle uf, die den Astieg een. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen Positionsäume Lemm Es sei s ɛ. Dnn ht jedes Bltt im Positionsum von s mindestens einen Bruder. Beweis. p(i) = y, y Σ, Σ Flls y = ɛ, so ht ds mit i mrkierte Bltt einen Bruder, weil es noh mindestens eine weitere Position im Bum git. Also sei y Textlgorithmen String-Mthing mit Positionsäumen Der Astieg terminiert, flls: (1) pt ershöpft und zwr (1.1) n einem inneren Knoten oder (1.2) n einem Bltt (2) pt niht ershöpft, er der Positionsum ist ershöpft und zwr (2.1) n einem inneren Knoten oder (2.2) n einem Bltt Dnn kommt y noh n nderer Stelle, etw j i, im String s vor (wegen der Minimlität von p(i)). Also muß es eine Bruderknte geen, die den Anfng des Weges zu dem mit j mrkierten Bltt ildet. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
25 4. Textlgorithmen String-Mthing mit Positionsäumen Aus diesen untershiedlihen Fällen der Terminierung ergeen sih folge Resultte: (1) pt kommt genu n den Positionen vor, die vom Aruhknoten us erreihr sind. Insesondere kommt im Fll (1.2) pt genu n der Position vor, mit der ds Bltt mrkiert ist. (2.1) pt kommt in text niht vor. (2.2) pt kommt höhstens n der Position vor, mit der ds erreihte Bltt mrkiert ist. 4. Textlgorithmen String-Mthing mit Positionsäumen Komplexität: Der Aufwnd für die Suhe eträgt O( pt ), mit Ausnhme von Fll 1.1, wo ein Unterum trversiert werden muß. Es liegt die Vermutung nhe, dß im Flle 1.1 der Aufwnd O( pt + k) eträgt, woei k die Anzhl der Vorkommen von pt ist. Alterntive: mn ermittelt für jeden Knoten (oder jeden einer gewissen Tiefe) die Mrken der von diesem Knoten us erreihren Blätter und legt diese ls Liste in dem Knoten. Nhteil: erhöhter Speiherpltzverruh Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen String-Mthing mit Positionsäumen Beispiel Es sei text =. pt = : Fll 1.1, pt kommt genu den Stellen 2 und 5 vor. pt = : Fll 1.2, pt kommt nur n der Stelle 3 vor. pt = : Fll 2.1, pt kommt in text niht vor. pt = : Fll 2.2, pt knn höhstens n Position 2 vorkommen. Prüfung ergit: pt kommt niht vor Textlgorithmen String-Mthing mit Positionsäumen Der Aufwnd für ds Preproessing (Konstruktion des Positionsums) wurde isher niht erüksihtigt. Selst ein hoher Preproessingufwnd würde sih er u.u. lohnen, wenn: genüg Anfrgen n text gestellt werden oder wenn der Aufwnd zu vershiedenen Zeiten vershieden teuer ist. pt = : Fll 2.2, pt knn höhstens n Position 3 vorkommen. Prüfung ergit: pt kommt vor Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
26 4. Textlgorithmen Konstruktion von Positionsäumen Ansätze zur Konstruktion von Positionsäumen Grundleger Anstz: Induktive Konstruktion, d.h. mn konstruiert sukzessive P T (s 1 ),..., P T (s 1,... s i ), P T (s 1... s i s i+1 ),..., P T (s 1... s n ). Prolem: Die Zwishenäume P T (s 1... s i ) ruhen niht zu existieren. Beispiel: s =. P T (s 1 s 2 s 3 ) existiert niht, d Position 3 keinen Pos.-Id. in ht. Wie knn mn diese Shwierigkeiten umgehen? 4. Textlgorithmen Konstruktion von Positionsäumen () Mn spiegelt den Text und die Definition des Begriffs Pos.-Id. und geht wie unter () vor. Nhteil: unntürlihe Umgehensweise (d) Mn verzihtet druf, dß die Zwishenäume Positionsäume sind. Wir untersuhen die Ansätze () und (d). () : Rehts-Links-Konstruktion () : Links-Rehts-Konstruktion () Mn konstruiert den Bum von rehts nh links (nsttt von links nh rehts), d.h. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen Konstruktion von Positionsäumen P T n+1 = P T () P T n = P T (s n ) P T n 1 = P T (s n 1 s n ). P T i = P T (s i... s n ). P T 1 = P T (s 1... s n ) () Mn hängt jeweils ein -Zeihen n, d.h. P T (s 1 ) P T (s 1 s 2 ). P T (s 1 s 2... s n ) Nhteil: sehr hoher Aufwnd 4. Textlgorithmen Konstruktion von Positionsäumen Rehts-Links-Konstruktion von Positionsäumen Bemerkung: Für jeden Teilstring s i... s n existiert der zugehörige Positionsum. Ausgeh von dem Positionsum für s i... s n konstruiert mn den Positionsum für s i 1 s i... s n wie folgt: Von der Wurzel us durhläuft mn einen Pfd mit den Mrkierungen s i 1, s i,..., is mn: () ein Bltt k erreiht. Ds Bltt k sei mit j mrkiert. Der isherige Positionsidentifiktor für j kommt lso uh n der Stelle i 1 vor. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
27 4. Textlgorithmen Konstruktion von Positionsäumen Sowohl p(j) ls uh p(i 1) sind zu verlängern, is sie sih untersheiden. Dementspreh wird der Pfd von dem erreihten Bltt us verlängert. Es entstehen zwei neue Blätter mit den Mrkierungen i 1 und j. 4. Textlgorithmen Konstruktion von Positionsäumen Vernshulihung für (): PT() PT() () einen inneren Knoten k erreiht, von dem us keine Knte mit der enötigten Mrkierung usgeht Es ist ein neues Bltt k n k nzuhängen. Dieses Bltt erhält die Mrkierung i 1. Die Kntenmrkierung zur Knte (k, k ) ist ds letzte Zeihen von p(i 1) Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen Konstruktion von Positionsäumen Vernshulihung für (): PT() PT() 4. Textlgorithmen Konstruktion von Positionsäumen Ein Positionsum wähst lso von einem Bltt us weiter nh unten, is sih eine Untersheidung der Positionsidentifiktoren ergit und der Pfd sih in zwei Blätter ufspltet, oder von einem Zwishenknoten wähst ein neues Bltt herus Aufwndsshätzung: Der Gesmtufwnd zur Konstruktion eines Positionsums für einen String der Länge n ist: O( n p(i) ) i=1 Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
28 4. Textlgorithmen Konstruktion von Positionsäumen Bemerkungen: 4. Textlgorithmen Konstruktion von Positionsäumen Beispiel Der prtielle Positionsum für sieht wie folgt us: Nhteil der Rehts-Links-Konstruktion: Die gesmte Zeihenreihe muß eknnt sein, evor sih der Positionsum konstruieren läßt. Beim Entwikeln von Text möhte mn er u.u. shon vorher Textstellen identifizieren und Korrekturen vornehmen. Einen Positionsum für den umgekehrten Text ufzuuen wäre unntürlih. Knn ein Positionsum uh effizient von links nh rehts konstruiert werden? Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen Konstruktion von Positionsäumen Links-Rehts-Konstruktion von Positionsäumen 4. Textlgorithmen Konstruktion von Positionsäumen Für Positionsäume gilt eine sehr einfhe und wihtige Vershhtelungseigenshft, die eshreit, wie sih Positionsidentifiktoren üerlppen können. Ziel ist es, ein sogennntes on-line Verfhren für die Konstruktion von Positionsäumen zu entwikeln. D für Teilstrings der Positionsum niht existiert, muß mn prtielle Positionsäume etrhten. Ein prtieller Positionsum enthält für genu diejenigen Positionen des Textes einen Positionsidentifiktor, für die es einen solhen Positionsidentifiktor git. Die wesentlihe Aussge hierzu liefert ds folge Monotonie- Lemm. Lemm [Monotonie-Lemm] Es sei e(i) die Position, ei der der Positionsidentifiktor p(i) et. Dnn gilt: i < j = e(i) e(j) Beweis. Annhme: Es git in einem String s Positionen i < j mit e(i) > e(j). Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
29 4. Textlgorithmen Konstruktion von Positionsäumen Vernshulihung: s i j e(j) e(i) p(i) = s i... s e(i) ist der kürzestmöglihe String, der die Position i eindeutig estimmt. 4. Textlgorithmen Konstruktion von Positionsäumen Prinzip der Links-Rehts-Konstruktion Mn nehme n, wir hen den prtiellen Positionsum für den String s 1... s i. k sei die erste Postion, für die kein Positionsidentifiktor existiert, d.h. s k s k+1... s i ist niht eindeutig in s 1... s i. Somit kommt s i+1... s e(i) 1 noh n nderer Stelle vor. s(1)s(2)... s(k 1) s(k)... s(i) s j... s e(j) ist Sustring von s i+1... s e(i) 1. Somit ist s j... s e(j) niht eindeutig in s. Widerspruh. Der Anfng von p(k) ist s k s k+1... s i. Diesem Anfng entspriht ein Knoten im prtiellen Positionsum. Dieser Knoten sei mit k mrkiert. Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen Konstruktion von Positionsäumen Wir fssen Intervlle von Positionen zusmmen, deren Pos.-Id. n derselen Stelle en. Dies deuten wir so n: text Intervlle von Positionen die hier en Grphish drgestellt ergit sih dnn die folge Vershhtelung für die Positionsidentifiktoren: text 4. Textlgorithmen Konstruktion von Positionsäumen Konstruktionsshritt: Bei der Hinzunhme von s i+1 wird nun versuht, die Mrkierung im prtiellen Positionsum weiter nh unten zu vershieen. Hierei können die folgen Fälle uftreten: (1) Der mit k mrkierte Knoten verfügt üer eine usgehe Knte für s i+1. Dnn ewegt mn k längs der mit s i+1 mrkierten Knte. Jetzt können die folgen Fälle uftreten: (1.1) Der jetzt mit k mrkierte Knoten ist ein innerer Knoten. Dnn ist nihts weiter zu tun. (1.2) Der jetzt mit k mrkierte Knoten ist ein Bltt mit Mrkierung l. k Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
30 4. Textlgorithmen Konstruktion von Positionsäumen Dnn ist p(l) um ein Zeihen zu verlängern, d.h. n ds isherige Bltt wird ein neuer Knoten ngehängt und die Mrkierung l wndert zu dem neuen Bltt. (2) Der mit k mrkierte Knoten ht keine usgehe Knte, die mit s i+1 mrkiert ist. Dnn wird ein neues Bltt und eine neue usgehe und mit s i+1 mrkierte Knte zu diesem Bltt ngelegt. Ds neue Bltt wird mit k mrkiert. Es gilt nun zu prüfen, o Positionsidentifiktoren für die Positionen k + 1, k + 2,... existieren. Hierzu sind neue Blätter in den Bum einzutrgen. Es sei k + m die erste Position für die nun kein Pos.-Id. existiert. Dnn ist noh k + m einzutrgen. 4. Textlgorithmen Konstruktion von Positionsäumen Fll 1.2: s(i) s(i) k s(i+1) s(i+1) l k s( e(l) ) l Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen Konstruktion von Positionsäumen Fll 1.1: 4. Textlgorithmen Konstruktion von Positionsäumen Fll 2: s(i) s(i) s(i) s(i) k k s(i+1) s(i+1) s(i+1) k k Informtion Retrievl FH Bonn-Rhein-Sieg, SS Informtion Retrievl FH Bonn-Rhein-Sieg, SS
31 4. Textlgorithmen Konstruktion von Positionsäumen Bemerkungen: Mn knn den Eingestring jederzeit mit einem shließen. Dnn wird mit dem ngegeenen Verfhren der zugehörige Positionsum fertig konstruiert. Folge Kosten treten ei der Konstruktion uf: (1.1) p(k) wird um ein Zeihen verlängert. Aufwnd: O(1) (1.2) p(k) und p(l) werden um je ein Zeihen verlängert. Aufwnd: O(1) (2) p(k) wird um ein Zeihen verlängert. Aufwnd: O(1) Ds Einfügen von k + 1, k + 2,... k + m 1 und ds Auffinden von k + m kostet proportionl zur Länge von p(k + 1)... p(k + m). Informtion Retrievl FH Bonn-Rhein-Sieg, SS Textlgorithmen Konstruktion von Positionsäumen Der Gesmtufwnd zum Aufu eines Positoinsums für einen String der Länge n ist lso: O( n p(i) ) i=1 Dmit ist die Links-Rehts-Konstruktion niht ufwiger ls die Rehts-Links-Konstruktion. Sprhlihe Texte s hen häufig die Eigenshft, dß p(i) log s gilt. Dnn ergit sih für den Gesmtufwnd: O( s log s ) Im Worst-Cse eträgt der Aufwnd O(n 2 ). Informtion Retrievl FH Bonn-Rhein-Sieg, SS
Übungen zur Vorlesung Modellierung WS 2003/2004 Blatt 11 Musterlösungen
Dr. Theo Lettmnn Pderorn, den 9. Jnur 24 Age 9. Jnur 24 A x, A 2 x, Üungen zur Vorlesung Modellierung WS 23/24 Bltt Musterlösungen AUFGABE 7 : Es sei der folgende prtielle deterministishe endlihe Automt
Mehrsolche mit Textzeichen (z.b. A, a, B, b,!) solche mit binären Zeichen (0, 1)
teilung Informtik, Fh Progrmmieren 1 Einführung Dten liegen oft ls niht einfh serier- und identifizierre Dtensätze vor. Stttdessen reräsentieren sie lnge Zeihenketten, z.b. Text-, Bild-, Tondten. Mn untersheidet
MehrWarum Bäume? Teil 1: Suchen. Bäume: Begriffe und Eigenschaften (2) Bäume: Begriffe und Eigenschaften (1)
Wrum Bäume? Teil : Suhen Prolemstellung Elementre Suhverfhren Hshverfhren Binäre Suhäume (Wiederholung us Prog ) Bäume: Begriffe, Eigenshften und Trversierung Binäre Suhäume Gefädelte Suhäume Ausgeglihene
MehrHausaufgabe 2 (Induktionsbeweis):
Prof. Dr. J. Giesl Formle Sprhen, Automten, Prozesse SS 2010 Üung 3 (Age is 12.05.2010) M. Brokshmidt, F. Emmes, C. Fuhs, C. Otto, T. Ströder Hinweise: Die Husufgen sollen in Gruppen von je 2 Studierenden
MehrVorlesung Diskrete Strukturen Transportnetze
Vorlesung Diskrete Strukturen Trnsportnetze Bernhr Gnter WS 2009/10 Gerihtete Grphen Ein shlingenloser gerihteter Grph ist ein Pr (V, A), woei V eine elieige Menge ist, eren Elemente wir Eken nennen un
MehrErkundungen. Terme vergleichen. Rechteck Fläche als Produkt der Seitenlängen Fläche als Summe der Teilflächen A B
Erkundungen Terme vergleihen Forshungsuftrg : Fläheninhlte von Rehteken uf vershiedene Arten erehnen Die Terme () is (6) eshreien jeweils den Fläheninhlt von einem der drei Rehteke. Ordnet die Terme den
MehrR. Brinkmann http://brinkmann-du.de Seite 1 17.11.2010
R. rinkmnn http://rinkmnn-du.de Seite 7..2 Grundegriffe der Vektorrehnung Vektor und Sklr Ein Teil der in Nturwissenshft und Tehnik uftretenden Größen ist ei festgelegter Mßeinheit durh die nge einer Mßzhl
MehrUmwandlung von endlichen Automaten in reguläre Ausdrücke
Umwndlung von endlichen Automten in reguläre Ausdrücke Wir werden sehen, wie mn us einem endlichen Automten M einen regulären Ausdruck γ konstruieren knn, der genu die von M kzeptierte Sprche erzeugt.
Mehr7.4. Teilverhältnisse
7... erehnung von Teilverhältnissen ufgen zu Teilverhältnissen Nr. 7.. Teilverhältnisse Die Shwerpunkte von Figuren und Körpern lssen sih mit Hilfe von Teilverhältnissen usdrüken und erehnen. Definition
MehrGrundwissen Mathematik 8.Klasse Gymnasium SOB. Darstellung im Koordinatensystem: Der Kreisumfang ist direkt proportional zu seinem Radius.
Gymso 1 Grundwissen Mthemtik 8.Klsse Gymnsium SOB 1.Funktionle Zusmmenhänge 1.1.Proportionlität Ändern sih ei einer Zuordnung die eiden Größen im gleihen Verhältnis, so spriht mn von einer direkten Proportionlität.
Mehr/LQHDUH*OHLFKXQJVV\VWHPH
/LQHDUH*OHLFKXQJVV\VWHPH (für Grund- und Leistungskurse Mthemtik) 6W55DLQHU0DUWLQ(KUHQE UJ*\PQDVLXP)RUFKKHLP Nch dem Studium dieses Skripts sollten folgende Begriffe eknnt sein: Linere Gleichung; homogene
MehrFunktionen und Mächtigkeiten
Vorlesung Funktionen und Mähtigkeiten. Etws Mengenlehre In der Folge reiten wir intuitiv mit Mengen. Eine Menge ist eine Zusmmenfssung von Elementen. Zum Beispiel ist A = {,,,,5} eine endlihe Menge mit
Mehr2. Landeswettbewerb Mathematik Bayern 2. Runde 1999/2000
Lndeswettewer Mthemtik Bern Runde 999/000 Aufge Ein Würfel wird durh je einen Shnitt rllel zur order-, Seiten und Dekflähe in ht Quder zerlegt (siehe Skizze) Können sih die Ruminhlte dieser Quder wie :
MehrWas nicht bewertet werden soll, streichen Sie bitte durch. Werden Täuschungsversuche beobachtet, so wird die Präsenzübung mit 0 Punkten bewertet.
Prof Dr Dr hc W Thoms Formle Systeme, Automten, Prozesse SS 2011 Musterlösung - Präsenzüung Dniel Neider, Crsten Otto Vornme: Nchnme: Mtrikelnummer: Studiengng (itte nkreuzen): Informtik Bchelor Informtik
MehrInformatik II SS Pumping Lemma für reguläre Sprachen (1/2) Pumping Lemma für reguläre Sprachen (2) Beweis
Pumping Lemm für reguläre Sprhen (1/2) Informtik II SS 2004 Teil 6: Sprhen, Compiler un Theorie 2 Ds Pumping Lemm ist eine Methoe, um herus zu finen, o eine Sprhe niht regulär. Prof. Dr. Dieter Hogrefe
MehrDurch die Umformung ergibt sich eine Schaltfunktion mit einer minimalen Anzahl von Verknüpfungsoperationen, nämlich 2.
2 Die shltlgerishe Umformung von Shltfunktionen in Normlform soll m Beispiel er Umformung einer Mxterm-Normlform in eine Minterm-Normlform gezeigt weren. Beispiel: y = ) ( ) ( ) ( Es ietet sih ie Anwenung
MehrLineare Gleichungssysteme mit 3 und mehr Variablen
Linere Gleihungssysteme mit un mehr rilen Beispiel 1 mit rilen: 11 Zunähst estimmt mn ie rile, ie mn ls Erste eliminieren will. In iesem Fll soll von hinten nh vorn vorgegngen weren,.h. zuerst soll rile
MehrKonstruktion des regulären Fünfecks mit dem rostigen Zirkel (rusty compass)
onstruktion des regulären Fünfeks mit dem rostigen Zirkel (rusty ompss) Vrinte 1 Oliver ieri ie hier vorliegende Methode zur onstruktion eines regulären Fünfeks unter Zuhilfenhme eines rostigen Zirkels
MehrHans U. Simon Bochum, den Annette Ilgen. Beispiele zur Vorlesung. Theoretische Informatik. WS 08/09
Hns U. Simon Bohum, den 7..28 Annette Ilgen Beispiele zur Vorlesung Theoretishe Informtik WS 8/9 Voremerkung: Hier findet sih eine Smmlung von Beispielen und Motivtionen zur Vorlesung Theoretishe Informtik.
Mehr10: Lineare Abbildungen
Chr.Nelius: Linere Alger SS 2008 1 10: Linere Aildungen 10.1 BEISPIEL: Die Vektorräume V 2 und Ê 2 hen diegleiche Struktur. Es git eine ijektive Aildung f : V 2 Ê 2, die durch die Vorschrift definiert
MehrTechnische Universität München Sommer 2016 Prof. J. Esparza / Dr. M. Luttenberger, S. Sickert 18. Juni HA-Lösung. TA-Lösung
ehnishe niversität Münhen ommer 2016 Prof. J. Esprz / Dr. M. Luttenerger,. ikert 18. Juni 2016 HA-Lösung A-Lösung Einführung in die theoretishe Informtik Aufgenltt 8 Behten ie: oweit niht explizit ngegeen,
MehrTheoretische Informatik ITI
Institut für Theoretishe Informtik ITI Dr. Jürgen Koslowski Theoretishe Informtik 2 Aufgenltt 6, 2015-06-11 Üungsufge 1 Weisen Sie die N P -Vollständigkeit des E-Prolem Clique nh (vergl. Bltt 5, Aufge
MehrMathematik Trigonometrie Einführung
Mthemtik Trigonometrie Einführung Ws edeutet ds Wort Trigonometrie und mit ws eshäftigt sih die Trigonometrie? Eine kleine Wortkunde: tri edeutet 'drei' Beispiel: Trithlon,... gon edeutet 'Winkel'/'Ek'
MehrSkript. 1. Allgemeine Einführung. zur Bestimmung ganzrationaler Funktionen mit vorgegebenen Eigenschaften (Steckbriefaufgaben)
Bestimmung gnzrtionler Funktionen Stekriefufgen Berufskolleg Mrienshule Lippstt Shule er Sekunrstufe II mit gymnsiler Oerstufe - sttlih nerknnt - Skript zur Bestimmung gnzrtionler Funktionen mit vorgegeenen
Mehrdem Verfahren aus dem Beweis zu Satz 2.20 erhalten wir zunächst die folgenden beiden ε-ndeas für die Sprachen {a} {b} und {ε} {a} +
Lösungen zu Üungsltt 3 Aufge 1. Es gilt L(( ) ) = ({} {}) {} = ({} {}) ({} {} + ). Mit dem Verfhren us dem Beweis zu Stz 2.20 erhlten wir zunächst die folgenden eiden -NDEAs für die Sprchen {} {} und {}
Mehr1 GeschäftsdiaGramme. Abbildung 1.1: Übersicht zu unterschiedlichen Grafi ktypen. 2.1.4 Unify objects: graphs e.g. org graphs, networks, and maps
1 GeshäftsdiGrmme Wenn mn eine deutshe Üersetzung des Begriffes usiness hrts suht, so ist mn mit dem Wort Geshäftsdigrmme gnz gut edient. Wir verstehen unter einem Geshäftsdigrmm die Visulisierung von
MehrMitschrift Repetitorium Theoretische Informatik und Logik
Mitschrift Repetitorium Theoretische Informtik und Logik Teil 1: Formle Sprchen, 15.01.2010, 1. Edit Allgemeine Hinweise für die Prüfung Ds Pumping-Lemm für kontextfreie Sprchen kommt nicht (sehr wohl
MehrAnfrage-Sprachen. Beispiel. Forts. Bayer-Moore-Algorithmus. Teil 2
Algorithmus 6.2 [Algorithmus von Boyer und Moore] Anfrage-Sprachen Teil 2 Viele Folien in diesem Abschnitt sind eine deutsche Übersetzung der Folien von Raymond J. Mooney (http://www.cs.utexas.edu/users/mooney/ir-course/).
MehrDie Näherung ist umso genauer, je kleiner die Zellen sind. Der Grenzwert ist
Höhere Mthemtik Mehrfhintegrle sind Integrle üer eiete R n Zweifhintegrle treten B ei der Berehnung des Fläheninhltes und von Flähenträgheitsmomenten uf Dreifhintegrle kommen ei der Berehnung des Volumeninhltes
MehrGeometrie. Inhaltsverzeichnis. 8.1 Der Satz von Ptolemäus und sein klassischer Beweis. Der Satz von Ptolemäus. 8 Der Satz von Ptolemäus
Der Stz von Ptolemäus 1 Geometrie Der Stz von Ptolemäus Autor: Peter Anree Inhltsverzeihnis 8 Der Stz von Ptolemäus 1 8.1 Der Stz von Ptolemäus un sein lssisher Beweis........... 1 8.2 Verhältnis er Digonlen
Mehr3 Punkte, Ortsvektoren und Verbindungsvektoren. Zunächst im 2-dimensionalen: A 4 1 , C 2 4. und D 3 1 Koordinatensystem. in einem kartesischen
Punkte Ortsvektoren und Verindungsvektoren Punkte Ortsvektoren und Verindungsvektoren Zunähst im -dimensionlen: A 4 Gegeen sind die Punkte B 5 C 4 und D Koordintensystem. in einem krtesishen AB CD d Zu
MehrEinführung in die theoretische Informatik Sommersemester 2017 Übungsblatt Lösungsskizze 2
Prof. J. Esprz Tehnishe Universität Münhen S. Sikert, J. Krämer KEINE ABGABE Einführung in die theoretishe Informtik Sommersemester 2017 Üungsltt 2 Üungsltt Wir untersheiden zishen Üungs- und Agelättern.
MehrVorname: Nachname: Matrikelnummer: Studiengang (bitte ankreuzen): Technik-Kommunikation M.A.
Formle Systeme, Automten, Prozesse SS 2010 Musterlösung - Klusur 23.09.2010 Prof. Dr. J. Giesl M. Brockschmidt, F. Emmes, C. Fuhs, C. Otto, T. Ströder Vornme: Nchnme: Mtrikelnummer: Studiengng (itte nkreuzen):
Mehr5.6 Gleichsetzungsverfahren
.6 Gleihsetzungsverfhren Verfhren: Beide Gleihungen des Gleihungssystems werden nh derselen Vrilen ufgelöst und die entsprehenden Terme werden einnder gleihgesetzt. Beispiele (G x ) ) () x + y () x - y
MehrDefinition Suffixbaum
Suffix-Bäume Definition Suche nch einer Menge von Mustern Längste gemeinsme Zeichenkette Pltzreduktion Suffixbäume für Muster Alle Pre Suffix-Präfix Übereinstimmung Sich wiederholende Strukturen Definition
MehrPräfixcodes und der Huffman Algorithmus
Präfixcodes und der Huffmn Algorithmus Präfixcodes und Codebäume Im Folgenden werden wir Codes untersuchen, die in der Regel keine Blockcodes sind. In diesem Fll können Codewörter verschiedene Länge hben
Mehr6 Tiefensuche in ungerichteten Graphen: Zweifache Zusammenhangskomponenten
66 6 ZWEIFACHE ZUSAMMENHANGSKOMPONENEN 6 iefenshe in ngerihteten Grphen: Zeifhe Zsmmenhngskomponenten Der Algorithms ist gnz gen ersele ie im gerihteten Fll! Ailng 1 zeigt noh einml en gerihtete Fll n
MehrName... Matrikel Nr... Studiengang...
Proeklusur zur Vorlesung Berechenrkeitstheorie WS 201/1 1. Jnur 201 Prof. Dr. André Schulz Bereitungszeit: 120 Minuten [So oder so ähnlich wird ds Deckltt der Klusur ussehen.] Nme... Mtrikel Nr.... Studiengng...
MehrVorlesung 24: Topological Sort 1: Hintergrund. Einführung in die Programmierung. Bertrand Meyer. Topological sort
Einführung in ie Progrmmierung Vorlesung 4: Topologil Sort : Hintergrun Bertrn Meer Letzte Üerreitung 3. Jnur 4 3 Topologil sort 4 Prouziere eine zu einer gegeenen Prtiellen Ornung komptile Vollstänige
MehrÜbungen zu CFGs (Daniel Siebert 2011, cc-by-nc-sa)
Üungen zu CFGs (niel ieert 2011, -y-n-s) nmerkungen: 1. Wenn niht explizit ngegeen gilt für lle CFGs s trtsymol. ie Terminl- un ihtterminlsymole ergeen sih us en Prouktionsregeln. 2. ufgentypen zur Einshätzung
MehrKAPITEL 1 EINFÜHRUNG: STABILE MATCHINGS
KPITEL 1 EINFÜHRUNG: STILE MTHINGS F. VLLENTIN,. GUNERT In iesem Kpitel weren wir ein erstes konkretes Prolem es Opertions Reserh kennenlernen. Es hnelt sih um s Prolem es stilen Mthings, ein wihtiges
Mehr( ) ( ) 4. Der Hauptsatz der Infinitesimalrechnung. Hauptsatz (1. Form) I. Newton ( ), G.F. Leibniz ( )
4. Der Huptstz der Infinitesimlrechnung Huptstz (. orm) I. Newton (64-77), G.. Leiniz (646-76) ür jede im Intervll [,] stetige unktion f sei ( ) = f ( t) dt sogennnte Integrlfunktion dnn gilt: Die Integrlfunktion
MehrBeispiellösungen zu Blatt 24
µthemtischer κorrespondenz- zirkel Mthemtisches Institut Georg-August-Universität Göttingen Aufge Beispiellösungen zu Bltt Mn eweise, dss mn ein Qudrt für jede Zhl n 6 in genu n kleinere Qudrte zerlegen
MehrGrundbegriffe der Informatik Aufgabenblatt 5
Grundegriffe der Informtik Aufgenltt 5 Mtr.nr.: Nchnme: Vornme: Tutorium: Nr. Nme des Tutors: Ausge: 20. Novemer 2013 Age: 29. Novemer 2013, 12:30 Uhr im GBI-Briefksten im Untergeschoss von Geäude 50.34
MehrAutomaten und Formale Sprachen alias Theoretische Informatik. Sommersemester 2012. Sprachen. Grammatiken (Einführung)
Wörter, Grmmtiken und die Chomsky-Hierrchie Sprchen und Grmmtiken Wörter Automten und Formle Sprchen lis Theoretische Informtik Sommersemester 2012 Dr. Snder Bruggink Üungsleitung: Jn Stückrth Alphet Ein
Mehrping karlsruhe Mining Software Call Graphs Frank Eichinger
ping krlsruhe Motivtion Softwre Mining Cll-Grphen Grph Mining Trnsformtionen Auslik Mining Softwre Cll Grphs Frnk Eihinger Lehrstuhl Prof. Böhm Institut für Progrmmstrukturen und Dtenorgnistion (IPD) Universität
MehrKlausur TheGI 2 Automaten und Komplexität (Niedermeier/Hartung/Nichterlein, Sommersemester 2013)
Berlin, 17.07.2013 Nme:... Mtr.-Nr.:... Klusur TheGI 2 Automten und Komplexität (Niedermeier/Hrtung/Nichterlein, Sommersemester 2013) 1 2 3 4 5 6 7 8 Σ Bereitungszeit: mx. Punktezhl: 60 min. 60 Punkte
MehrFrank Heitmann 2/71. 1 Betrachten wir Σ für ein Alphabet Σ, so ist Σ die Menge
Formle Grundlgen der Informtik Kpitel 2 und reguläre Sprchen Frnk Heitmnn heitmnn@informtik.uni-hmurg.de 7. April 24 Frnk Heitmnn heitmnn@informtik.uni-hmurg.de /7 Alphet und Wörter - Zusmmengefsst Die
MehrFragebogen 1 zur Arbeitsmappe Durch Zusatzempfehlung zu mehr Kundenzufriedenheit
Teilnehmer/Apotheke/Ort (Zus/1) Frgeogen 1 zur Areitsmppe Durh Zustzempfehlung zu mehr Kunenzufrieenheit Bitte kreuzen Sie jeweils ie rihtige(n) Antwort(en) in en Felern is n! 1. Worin esteht ie Beeutung
MehrPrüfungsteil Schriftliche Kommunikation (SK)
SK Üerlik und Anforderungen Üerlik und Anforderungen Prüfungsteil Shriftlihe Kommuniktion (SK) Üerlik und Anforderungen Worum geht es? In diesem Prüfungsteil sollst du einen Beitrg zu einem estimmten Them
Mehr10. Lineare Gleichungen mit zwei Variabeln Eine lineare Gleichung in 2 Variablen... 19
Alger Vorlesung (.Teil) Mg. Dniel Zeller INHALTSVERZEICHNIS 0. Linere Gleihungen mit zwei Vrieln... 9 Eine linere Gleihung in Vrilen... 9 Geometrishe Deutung einer lineren Gleihung in Vrilen... Gleihungssystem
MehrSkript für die Oberstufe und das Abitur 2015 Baden-Württemberg berufl. Gymnasium (AG, BTG, EG, SG, WG)
Sript für die Oerstufe und ds Aitur Bden-Württemerg erufl. Gymnsium (AG, BTG, EG, SG, WG) Mtrizenrechnung, wirtschftliche Anwendungen (Leontief, Mterilverflechtung) und Linere Optimierung Dipl.-Mth. Alexnder
Mehr7.9A. Nullstellensuche nach Newton
7.9A. Nullstellensuche nch Newton Wir hben früher bemerkt, dß zur Auffindung von Nullstellen einer gegebenen Funktion oft nur Näherungsverfhren helfen. Eine lte, ber wirkungsvolle Methode ist ds Newton-Verfhren
MehrKapitel 6 E-Mails schreiben und organisieren
Kpitel 6 E-Mils shreien und orgnisieren Die Kommuniktion vi E-Mil ist heute essenziell. Und Ihr M ist estens gerüstet für den Empfng, ds Verfssen und die Orgnistion von E-Mils. Wie Sie effektiv mit dem
Mehrvollständig (Vervollständigung) deterministisch, DFA (Potenzmengenkonstruktion) Minimalautomat: minimaler vollständiger DFA
Ws isher geschh NFA A = (X, Q, δ, I, F ) vollständig (Vervollständigung) deterministisch, DFA (Potenzmengenkonstruktion) Minimlutomt: minimler vollständiger DFA Für jede Sprche L X sind die folgenden Aussgen
Mehr2. Klausur zur Vorlesung Informatik III Wintersemester 2003/2004
Universität Krlsruhe Theoretische Informtik Fkultät für Informtik WS 2003/04 ILKD Prof. Dr. D. Wgner 14. April 2004 2. Klusur zur Vorlesung Informtik III Wintersemester 2003/2004 Lösung! Bechten Sie: Bringen
MehrDie Regelungen zu den Einsendeaufgaben (Einsendeschluss, Klausurzulassung) finden Sie in den Studien- und Prüfungsinformationen Heft Nr. 1.
Modul : Grundlgen der Wirtschftsmthemtik und Sttistik Kurs 46, Einheit, Einsendeufge Die Regelungen zu den Einsendeufgen (Einsendeschluss, Klusurzulssung) finden Sie in den Studien- und Prüfungsinformtionen
Mehra) Spezielle Winkel bei schneidenden Geraden und Parallelen α 3 β 4 Institut für Automatisierungstechnik Prof. Dr. Ch. Bold Vorsemester V.
0.05.0 Geometrie und Trigonometrie ) Spezielle Winkel ei shneidenden Gerden und Prllelen 4 4 Sheitelwinkel sind gleih (z.. zw. ) Neenwinkel ergänzen sih zu 80 0 (z.. + 80 0 ) Stufenwinkel sind gleih (z..
MehrTheoretische Informatik und Logik Übungsblatt 2 (2013S) Lösung
Theoretische Informtik und Logik Üungsltt 2 (2013S) en Aufge 2.1 Geen Sie jeweils eine kontextfreie Grmmtik n, welche die folgenden Sprchen erzeugt, sowie einen Aleitungsum für ein von Ihnen gewähltes
MehrFranz Binder. Vorlesung im 2006W
Formle Reguläre und Formle Institut für Alger Johnnes Kepler Universität Linz Vorlesung im 2006W http://www.lger.uni-linz.c.t/students/win/ml Formle Inhlt Reguläre Reguläre Formle Zustndsdigrmm δ: Σ (Q
MehrDer Vektor lebt unabhängig vom Koordinatensystem: Bei einer Drehung des Koordinatensystems ändern zwar die Komponenten, der Vektor v aber bleibt.
Vektorlger Vektorlger Vektoren sind Grössen, die einen Betrg sowie eine Rihtung im Rum hen. Im Gegenstz zu den Vektoren estehen Sklre nur us einer Grösse ls Zhl. In Bühern wird nsttt v oft v geshrieen.
MehrAutomaten, Spiele, und Logik
Automten, Spiele, und Logik Wohe 7 19. Mi 2014 Inhlt der heutigen Vorlesung Alternierende Automten Definition Verindung zu regulären Sprhen Komplementtion Engel und Teufel Ws ist eine nihtdeterministishe
Mehr1 Folgen von Funktionen
Folgen von Funktionen Wir etrchten Folgen von reell-wertigen Funktionen f n U R mit Definitionsereicht U R und interessieren uns für ntürliche Konvergenzegriffe. Genuer setzen wir uns mit folgenden Frgen
MehrMathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 5. Semester ARBEITSBLATT 3 PARAMETERDARSTELLUNG EINER GERADEN
Mthemtik: Mg. Schmid Wolfgng Areitsltt 3 5. Semester ARBEITSBLATT 3 PARAMETERDARSTELLUNG EINER GERADEN Wir wollen eine Gerde drstellen, welche durch die Punkte A(/) und B(5/) verläuft. Die Idee ist folgende:
MehrSpiele und logische Komplexitätsklassen
Spiele und logische Komplexitätsklssen Mrtin Horsch 26. Jnur 2006 Inhlt des Seminrvortrges Ehrenfeucht-Frïssé-Spiel mit k Mrken Formeln mit k Vrilen und logische Komplexitätsklssen k-vrileneigenschft logischer
MehrEhrenfeucht-Fraïssé-Spiele über Spuren
Ehrenfeuht-Frïssé-Spiele üer Spuren Mrtin Horsh 14. Juni 2006 Vortrgsinhlt Ehrenfeuht-Frïssé-Spiel mit n Runden und k Mrken Lokle Temporllogik üer Mzurkiewiz-Spuren (LoTL) LoTL und die Logik erster Stufe
MehrPythagoras. Suche ein rechtwinkliges Dreieck mit ganzzahligen Seitenlängen. ... c Roolfs
Pythgors Suhe ein rehtwinkliges Dreiek mit gnzzhligen Seitenlängen..... 1 Pythgors Für ein Dreiek mit den Seitenlängen = 3 und = 4 (in m) gilt vermutlih = 5. Weise diese Vermutung nh. Tipp: Bestimme den
MehrSie das Gerät aus und überprüfen Sie den Lieferumfang. Netzkabel. Trägerbogen/Plastikkarten-Trägerbogen DVD-ROM
Instlltionsnleitung Hier eginnen ADS-2100 Lesen Sie zuerst die Produkt-Siherheitshinweise, evor Sie ds Gerät einrihten. Lesen Sie dnn diese Instlltionsnleitung zur korrekten Einrihtung und Instlltion.
MehrKapitel IV Euklidische Vektorräume. γ b
Kpitel IV Euklidische Vektorräume 1 Elementrgeometrie in der Eene Sei E die Zeicheneene In der Schule lernt mn: (11) Stz des Pythgors: Sei E ein Dreieck mit den Seiten, und c, und sei γ der c gegenüerliegende
Mehr2.1 Motivation, Zurückführung auf ein Doppelintegral. Wir betrachten einen zylindrischen Körper K, der von der Fläche
Kpitel 2 Ds Flähenintegrl 2.1 Motivtion, Zurükführung uf ein Doppelintegrl Wir betrhten einen zylindrishen Körper K, der von der Flähe z f(x, y, seitlih von einer Zylinderflähe mit Erzeugenden prllel zur
MehrProtokoll zur Vorlesung Theoretische Informatik I
Protokoll zur Vorlesung Theoretishe Informtik I! " # $ % # & ' ( % ) * + & " & & &, " ' % + - + # + & '. / 0 1 # 0 & 2 & # & 3 4 & 5 # 0 + & 6 & ' + 7 7 3 8 4 & 7 + + + % ( % 6 # 9 & 5 # 0 + & 3 8. : &
MehrMit Würfeln Quader bauen 14
3 1 Quder uen Ein Spiel zu zweit Würfelt wehslungsweise mit einem Spielwürfel und fügt die gewürfelte Anzhl Holzwürfel den vorhndenen Würfeln hinzu. In jeder Spielrunde versuht ihr, us llen vorhndenen
MehrControlling als strategisches Mittel im Multiprojektmanagement von Rudolf Fiedler
von udolf Fiedler Zusmmenfssung: Der Beitrg eshreit die Aufgen des Projektontrollings, insesondere des strtegishen Projektontrollings. Für die wesentlihen Aufgenereihe werden prktikle Instrumente vorgestellt.
Mehr6. Übungsblatt. (i) Von welchem Typ ist die Grammatik G? Begründen Sie Ihre Antwort kurz.
Vorlesung Theoretische Informtik Sommersemester 2015 Prof. S. Lnge 6. Üungsltt 1. Aufge Es sei die folgende Grmmtik G = [Σ, V, S, R] gegeen. Dei seien Σ = {, } und V = {S, B}, woei S ds Strtsymol ist.
MehrUngleichungen. Jan Pöschko. 28. Mai Einführung
Ungleichungen Jn Pöschko 8. Mi 009 Inhltsverzeichnis Einführung. Ws sind Ungleichungen?................................. Äquivlenzumformungen..................................3 Rechnen mit Ungleichungen...............................
MehrEinige elementargeometrische Sätze über Dreiecke
Seite I Einige elementrgeometrische Sätze üer Dreiecke Durch drei nicht uf einer Gerden gelegene (d.h. nicht-kollinere) Punkte A, B, C in der euklidischen Eene ein Dreieck ABC mit Seiten,, c und (Innen-)Winkeln,,
MehrÜbung zur Vorlesung Formale Systeme, Automaten und Prozesse
RWTH Ahen Lehrgeiet Theoretishe Informtik Emmes Kneis Lnger Rossmnith SS 2009 Üungsltt 1 22.04.2009 Üung zur Vorlesung Formle Systeme, Automten und Prozesse Tutorufge T1 Es seien v, w Σ, so dß vw = wv.
MehrEine Relation R in einer Menge M ist transitiv, wenn für alle x, y, z M gilt: (x R y y R z) x R z
Reltionen, 11 Reltionen Reltion ist einfch gesgt eine Beziehung zwischen Elementen von Mengen. In der Geometrie sind z.b. die Reltionen "ist gleich", "ist senkrecht zu", "ist prllel zu" eknnt. Die letzten
MehrDr. Michael Gieding ph-heidelberg.de/wp/gieding. Skript zur gleichnamigen Vorlesung im Wintersemester 2006/2007
Dr. Mihel Gieding h-heidelerg.de/w/gieding Einführung in die Geometrie Skrit zur gleihnmigen Vorlesung im Wintersemester 2006/2007 Kitel 3: Prllelität Vo r l e s u n g 1 1 : D e r I n n e n w i n k e l
MehrLösung zur Klausur. Grundlagen der Theoretischen Informatik. 1. Zeigen Sie, dass die folgende Sprache regulär ist: w {a, b} w a w b 0 (mod 3) }.
Lösung zur Klusur Grundlgen der Theoretischen Informtik 1. Zeigen Sie, dss die folgende Sprche regulär ist: { w {, } w w 0 (mod 3) }. Lösung: Wir nennen die Sprche L. Eine Sprche ist genu dnn regulär,
Mehr13 Rekonfigurierende binäre Suchbäume
13 Rekonfigurierende inäre Suchäume U.-P. Schroeder, Uni Pderorn inäräume, die zufällig erzeugt wurden, weisen für die wesentlichen Opertionen Suchen, Einfügen und Löschen einen logrithmischen ufwnd uf.
MehrDEA1 Deterministische Version
Endliche Automten 4 Deterministische endliche Automten Zu dem nichtdeterministischen Automten EA git es eine deterministische Version. EA Akzeptor für Wörter üer X = { } mit mindestens einem führenden.
MehrDownload. Hausaufgaben: Trigonometrie. Üben in drei Differenzierungsstufen. Otto Mayr. Downloadauszug aus dem Originaltitel:
Downlod Otto Myr Husufgen: Üen in drei Differenzierungsstufen Downloduszug us dem Originltitel: Husufgen: Üen in drei Differenzierungsstufen Dieser Downlod ist ein uszug us dem Originltitel Husufgen Mthemtik
Mehr2 Kinobesuch GRAMMATIK. perfekt. Im September LEICHT. wann die Vorstellung beginnt. Schreiben Sie Sätze! Beginnen Sie mit den grün markierten Wörtern!
DEUTSCH GRAMMATIK VERBPOSITION S. 0 Im Septemer LEICHT Shreien Sie Sätze! Beginnen Sie mit den grün mrkierten Wörtern! der Herst / m. Septemer / eginnt ds Oktoerfest / in Münhen / findet sttt die Österreiher
MehrADSORPTIONS-ISOTHERME
Institut für Physiklishe Chemie Prktikum Teil und B 8. DSORPTIONS-ISOTHERME Stnd 30/0/008 DSORPTIONS-ISOTHERME. Versuhspltz Komponenten: - Büretten - Pipetten - Shütteltish - Wge - Filtriergestell - Behergläser.
MehrCheckliste Sinus, Kosinus, Tangens
Chekliste Sinus, Kosinus, Tngens Nr. K 1 K K 3 K 4 K 5 K 6 K 7 K 8 Kompetenz Ih knn... in einem rehtwinkligen Dreiek Kthete, Gegenkthete und Hypotenuse estimmen in einem rehtwinkligen Dreiek die Seitenverhältnisse
MehrBeispiele: cos(x) dx = sin(x) + c (1) e t dt = e t + c (2)
. Stmmfunktion Definition Stmmfunktion: Gegeen sei eine Funktion f(). Gesucht ist eine Funktion F (), so dss d = f(). Die Funktion F() heisst Stmmfunktion. Schreiweise: F () = f()d. Mn spricht uch vom
Mehr4. Modellierung mit Graphen
4. Moellierung mit Grphen Mo-5.1 Moellierung eshreit Ojekte un Beziehungen zwishen ihnen. Grphen eignen sih zur Moellierung für ein reites Aufgenspektrum. Ein Grph ist eine Astrktion us Knoten un Knten:
MehrGrundwissen 6. Klasse
Grundwissen Mthemtik Klsse / Grundwissen Klsse Positive Brühe ) Grundegriffe z Brühe hen die Form n mit z I N0, n I N z heißt der Zähler, n der Nenner des Bruhes Bezeihnung Bedingung Beispiele Ehter Bruh
MehrÄnderungen in Zweitauflagen von Buch, Arbeits- und Theorieheft und Begleitordner
Änderungen in Zweituflgen von uh, reits- und Theorieheft und egleitordner lle uflgen des Shüleruhes, des reits- und Theorieheftes und des egleitordners lssen sih prolemlos neeneinnder verwenden. Shüleruh
MehrWirtschaftsmathematik 00053: Mathematik für Wirtschaftswissenschaftler I Kurseinheit 2: Lineare Algebra II. Autor: Univ.-Prof. Dr.
Wirtschftsmthemtik 0005: Mthemtik für Wirtschftswissenschftler I Kurseinheit : Linere Alger II Leseproe Autor: Univ.-Prof. Dr. Wilhelm Rödder 5. Linere Gleichungssysteme und Mtrixgleichungen So verwundert
MehrDef.: Sei Σ eine Menge von Zeichen. Die Menge Σ* aller Zeichenketten (Wörter) über Σ ist die kleinste Menge, für die gilt:
8. Grundlgen der Informtionstheorie 8.1 Informtionsgehlt, Entropie, Redundnz Def.: Sei Σ eine Menge von Zeichen. Die Menge Σ* ller Zeichenketten (Wörter) über Σ ist die kleinste Menge, für die gilt: 1.
MehrShortest Path Algorithmus von Edsger Dijkstra
Shortest Pth Algorithmus von Esger Dijkstr Mihel Dienert 16. Dezemer 2010 Inhltsverzeihnis 1 Shortest Pth Algorithmus 1 1.1 Grphen................................. 1 1.2 Knoten..................................
MehrAlgorithmen auf Sequenzen
Algorithmen auf Sequenzen Vorlesung von Prof. Dr. Sven Rahmann im Sommersemester 2008 Kapitel 5 Approximative Textsuhe Weseite zur Vorlesung http://ls11-www.s.tu-dortmund.de/people/rahmann/teahing/ss2008/algorithmenaufsequenzen
MehrLÖSUNGSVORSCHLÄGE ZUM 7. ÜBUNGSBLATT IN LINEARER ALGEBRA II
LÖSUNGSVORSCHLÄGE ZUM 7. ÜBUNGSBLATT IN LINEARER ALGEBRA II Prof. Werner Bley, Frnz Gmeineder Deember 9, 211 Aufgbe 1 Obwohl ds Resultt dieser Aufgbe niht sehr tiefliegend ist, ht es doh eine gnz wihtige
MehrEffiziente Algorithmen und Komplexitätstheorie
Effiziente Algorithmen und Komplexitätstheorie Vorlesung Ingo Wegener Vertretung Thoms Jnsen 10042006 1 Ws letzten Donnerstg geschh Linere Optimierung Wiederholung der Grundbegriffe und Aussgen M konvex
Mehr1.1 Grundlagen: Reguläre Ausdrücke
11 Grundlgen: Reguläre Ausdrücke Progrmmtext enutzt ein endliches Alphet Σ von Einge-Zeichen, zb ASCII :-) Die Menge der Textschnitte einer Token-Klsse ist i regulär Reguläre Sprchen knn mn mithile regulärer
MehrMC-Serie 12 - Integrationstechniken
Anlysis D-BAUG Dr. Meike Akveld HS 15 MC-Serie 1 - Integrtionstechniken 1. Die Formel f(x) dx = xf(x) xf (x) dx i) ist im Allgemeinen flsch. ii) folgt us der Sustitutionsregel. iii) folgt us dem Huptstz
MehrZ R Z R Z R Z = 50. mit. aus a) Z L R. Wie groß ist der Leistungsfaktor cos der gesamten Schaltung?
Aufge F 99: Drehstromverruher Ein symmetrisher Verruher ist n ds Drehstromnetz ( 0 V, f 50 Hz) ngeshlossen. Die us dem Netz entnommene Wirkleistung eträgt,5 kw ei einem eistungsfktor os 0,7. ) Berehnen
Mehr