Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Baumautomaten Christian Klein Betreuer : Tim Priesnitz SS 2003 Seminar Logische Aspekte von XML Gert Smolka Programming Systems Lab Universität des Saarlandes.

Ähnliche Präsentationen


Präsentation zum Thema: "Baumautomaten Christian Klein Betreuer : Tim Priesnitz SS 2003 Seminar Logische Aspekte von XML Gert Smolka Programming Systems Lab Universität des Saarlandes."—  Präsentation transkript:

1 Baumautomaten Christian Klein Betreuer : Tim Priesnitz SS 2003 Seminar Logische Aspekte von XML Gert Smolka Programming Systems Lab Universität des Saarlandes

2 Übersicht Wortautomaten Baumautomaten Bottom-up und Top-down Automaten Unranked Automaten Tupelautomaten

3 Motivation Endliche Automaten erkennen Bäume nur pfadweise. f ab nicht von DEA erkennbar => Baumautomaten a -> q a, b -> q b f(q a, q b ) -> q final, f(q b, q a ) -> q final f(q a, q a ) -> q falsch, f(q b, q b ) -> q falsch f ba

4 Äquivalente Definition von endlichen Automaten vorher : Δ Teilmenge von Q x Σ -> Q jetzt : Δ Teilmenge von Q x Σ -> 2 Q pr q a a Darstellung: regulärer Ausdruck auf rechter Seite : (q, a) -> p r Falls q Startzustand (q, a) -> p r ε -> Angabe der Startzustände nicht mehr benötigt wird zu : (q, a) -> {p, r}

5 Zwei Traversierungsstrategien klassisch : von vorne nach hinten; akzeptiere wenn am Wortende Endzustand weitere Strategie : von hinten nach vorne; starte mit Endzuständen und gehe Δ-Regeln rückwärts, akzeptiere wenn ε am Wortanfang q0 q2 q1 b a a b σabbaba q q0q1 q2q1q2 b a q2 (a)-> q1 (b)-> q0 q1 q2 (a)-> ε q0 q2 (b)-> ε q1 (b)-> q0 q1 q2 (a) -> ε q0 q2

6 Definition Baumautomat Ein endlicher Baumautomat ist ein Tupel (Q, Σ, F, Δ), mit Alphabet Σ, Zustandsmenge Q, eine Teilmenge F von Q, und Übergangsrelation Δ Die Regeln aus Δ sind von der Form (q 0, σ) -> (q 1 1,..., q 1 n )... (q m 1,..., q m n ) für arity(σ) = n Baumautomaten gehen zurück auf Doner (1965) und Thatcher & Wright (1965)

7 Lauf eines Automaten (Q, Σ, F, Δ) Lauf r auf Baum t ist Funktion Pos(t) -> Q, so dass für alle p aus Pos(t) gilt : Wenn n = arity( t(p) ), r(p) = q 0, r(pi) = q i ( i = 1,...,n ), dann (q 0, t(p) ) -> (q 1,...,q n ) matcht Regel in Δ. Ein Lauf heißt erfolgreich, wenn r(ε) in F. Sprache L(M) = { t | t ist Σ-Baum und es gibt erfolgreichen Lauf von M auf t}

8 Automat und Lauf Σ = {and/2, not/1, 0/0, 1/0} Q = {q0, q1} F={q1} Δ = { (q0, 0) -> ε, (q1,1) -> ε, (q0, not) -> q1, (q1, not) -> q0, (q0, and) -> (q0, q0) (q0, q1) (q1, q0) (q1, and) -> (q1, q1) } and and not not q1 q1 q0 q0 q0

9 Bottom-up vs. Top-down Zwei spezielle Strategien Lauf zu berechnen : von den Blättern zur Wurzel ( Bottom-up ) F beschreibt Endzustände von der Wurzel zu den Blättern ( Top-down ) F beschreibt Startzustände

10 Bottom-up Berechnung Δ = { (q0, 0) -> ε, (q1,1) -> ε, (q0, not) -> q1, (q1, not) -> q0, (q0, and) -> (q0, q0) (q0, q1) (q1, q0), (q1, and) -> (q1, q1) } Baum: erfolgreiche Berechnung : Σ = {and/2, not/1, 0/0, 1/0} Q = {q0, q1} F={q1} and not and 0 not 1 0 q0 q1

11 Alternative algebraische Charakterisierung Stelle Baum durch Term da (q0, σ) -> (p1,...,pn)... (q1,..., qn) wird interpretiert durch Termersetzungsregeln σ(p1,...,pn) -> q0... σ(q1,...,qn) -> q0

12 Lauf durch Termersetzung and( not( and( 1, 1 ) ), and( not( 0 ), 1 ) ) Δ = { (q0, 0), (q1,1), (q0, not)-> q1, (q1, not)-> q0, (q0, and)-> (q0, q0) (q0, q1) (q1, q0), (q1, and)-> (q1, q1) }

13 Lauf durch Termersetzung and( not( and( 1, 1 ) ), and( not( 0 ), 1 ) ) -> and( not( and( q1, q1 ) ), and( not( q0 ), q1 ) ) Δ = { (q0, 0), (q1,1), (q0, not)-> q1, (q1, not)-> q0, (q0, and)-> (q0, q0) (q0, q1) (q1, q0), (q1, and)-> (q1, q1) }

14 Lauf durch Termersetzung and( not( and( 1, 1 ) ), and( not( 0 ), 1 ) ) -> and( not( and( q1, q1 ) ), and( not( q0 ), q1 ) ) -> and( not( q1 ), and( q1, q1) ) Δ = { (q0, 0), (q1,1), (q0, not)-> q1, (q1, not)-> q0, (q0, and)-> (q0, q0) (q0, q1) (q1, q0), (q1, and)-> (q1, q1) }

15 Lauf durch Termersetzung and( not( and( 1, 1 ) ), and( not( 0 ), 1 ) ) -> and( not( and( q1, q1 ) ), and( not( q0 ), q1 ) ) -> and( not( q1 ), and( q1, q1) ) -> and ( q0, q1) Δ = { (q0, 0), (q1,1), (q0, not)-> q1, (q1, not)-> q0, (q0, and)-> (q0, q0) (q0, q1) (q1, q0), (q1, and)-> (q1, q1) }

16 Lauf durch Termersetzung and( not( and( 1, 1 ) ), and( not( 0 ), 1 ) ) -> and( not( and( q1, q1 ) ), and( not( q0 ), q1 ) ) -> and( not( q1 ), and( q1, q1) ) -> and ( q0, q1) -> q0 wird also nicht akzeptiert Δ = { (q0, 0), (q1,1), (q0, not)-> q1, (q1, not)-> q0, (q0, and)-> (q0, q0) (q0, q1) (q1, q0), (q1, and)-> (q1, q1) }

17 Deterministische Bottom-up Baumautomaten Definition: Ein Bottom-up Baumautomat heißt deterministisch, wenn es in Δ keine zwei Regeln (qo, σ) -> REGEXP1 (q1,..., qn) und(p0, σ) -> REGEXP2 (q1,..., qn) gibt. Satz : Für jede Sprache L, die von einem nichtdeterministischen Bottom-up Automaten erkannt wird, gibt es einen deterministischen Bottom-up Automaten M, so dass L = L(M). (Beweisidee : Teilmengenkonstruktion)

18 Berechnung bei Top-down Automaten and and not q1 not q0 q0 q0 q1 q0 q1 ok ok X q0 q1 q1 q0 q0 ok ok ok det. Bottom-up kann Top-down nichtdet. sein (und umgekehrt!) Top-down werden genau dieselben Bäume erkannt

19 Deterministische Top-down Automaten Definition: Ein Top-down Automat heißt deterministisch, wenn es in Δ keine Regel gibt, bei der die rechte Seite mehr als eine Zustandsmenge hat und |F| < 2. Satz : Es existieren erkennbare Sprachen, die nicht von einem deterministischen Top-down Automat erkannt werden können.

20 Sprache, die det. Top-down nicht erkannt werden kann not and 01 not and 10 not and 11 a b cd a b cd a b cd ist in Sprache ist NICHT in Sprache (0,c) -> ε (1,d) -> ε (1,c) -> ε (0,d) -> ε wird akzeptiert

21 DEA -> det. Top-down Automaten Aus DEA M=(Q, Σ, Δ, S, F) (klassische Darstellung) konstruiere Baumautomaten (Q, Σ, Δ, F) mit : Buchstaben aus Σ -> unäre Funktionssymbole zusätzliche Konstante # (symbolisiert Wortende) F = S Δ = Δ plus Regeln (q, #) für alle q aus F a b a # aba

22 DEA -> det. Top-down Automaten q0 q2 q1 b a a bb a a b b a b a # q0 q1 q2 q1 q2

23 Übersicht Sprachenklassen Sprachen von deterministischen Top-down Automaten erkennbar = von Bottom-up- oder nicht- deterministischen Top-down Automaten akzeptierte Sprachen DEA/NEA- Sprachen erkennbare Sprachen

24 Abschlusseigenschaften Satz: Erkennbare Sprachen sind abgeschlossen unter Schnitt, Vereinigung und Komplementbildung. Satz: Die Menge der Sprachen von det. Top-down Automaten ist abgeschlossen unter Schnitt und Vereinigung.

25 Entscheidungsprobleme MembershipLOGTIME-complete Uniform Membership linear für det., polynomiell für nichtdet. Automaten Emptinesslinear Intersection non-emptiness EXPTIME-complete Finitenesspolynomiell Emptiness of the complement EXPTIME-complete EquivalenceEXPTIME-complete Singletonpolynomiell

26 Unranked Automaten [Thatcher, 1967] jedes σ aus Σ kann beliebig viele Nachfolger haben Regeln in Δ beliebige reguläre Ausdrücke (mit Zeichenmenge Q) Automat für boolesche Ausdrücke mit, mit beliebig vielen Kindern : Σ ={,,0,1} Q={q0, q1}, F={q1} Δ= { (q0,0) -> ε; (q1,1) -> ε; (q0, ) -> (01)*0(01)*; (q1, ) -> 1*; (q0, ) -> 0*; (q1, ) -> (01)*1(01)* } q1 q1 q0 q0 q0 q1 q0 q1 q0

27 XPATH -> Unranked Automat Baue Automat für Anfrage /a//b[/a]//b (/a//b[/a]//b, a) -> Q*(// b[/a]//b)Q* (//b[/a]//b, b) -> Q*(//b[/a]//b)Q* Q* /a Q* //b Q* Q* //b Q* /a Q* Q*(/a//b)Q* (/a//b,a) -> Q* //b Q* (//b,a) -> Q* //b Q* (//b,b) -> Q* (/a,a) -> Q* a a b b a b a /a//b[/a]//b //b[/a]//b /a //b //b[/a]//b /a //b /a

28 Unranked Baum -> Binärer Baum alle Symbole zweistellige Prädikate # neue Konstante für Blätter links Unterbäume, rechts nächstes Kind des Vaters a abb aba a a# ab # b# b# a# ## Kodierung Dekodierung

29 Automaten auf Baumtupeln f f g b f a b a f f a g b a ff ff ga bg fg a# ## #b ## ba a# ## ## ## ## ## Tupel von Zeichen -> binäre Funktionssymbole ## einzige Konstante

30 Zylindrifikation (an Stelle i) Tupel um eins erweitern vor i-ter Stelle Aus (q, s 1...s i-1 s i...s k ) -> REGEXP1 für jedes σ aus Σ eine Regel (q, s 1...s i-1 σs i...s k ) -> REGEXP1 erzeugt evtl. nichtdet. Automaten (nur bei Bottom-up) Regelmenge wird größer um Faktor | Σ |

31 Projektion (an Stelle i) Tupel um eins verkleinern an i-ter Stelle Aus Regeln (q, s 1...s i-1 σ 1 s i+1...s k ) -> REGEXP1... (q, s 1...s i-1 σ m s i+1...s k ) -> REGEXPm wird eine Regel (q, s 1...s i-1 s i+1...s k ) -> REGEXP1... REGEXPm erzeugt evtl. nichtdet. Automaten (nur bei Top- down) Regelmenge wird kleiner

32 Einfaches Beispiel für Tupelautomaten Automat, der { [t,t] | t ist Σ-Baum } erkennt mit Σ = {f/2, g/1, a/1} Q = {q} F = {q} (q, ##) -> ε (q, aa) -> q (q, gg) -> q (q, ff) -> q

33 Referenzen H.Comon, M.Dauchet, R.Gilleron, F.Jacquemard, D.Lugiez, S.Tison and M.Tommasi : Tree Automata and its Applications Kap. 1, 3 Online Version: www. grappa. univ-lille3. fr/ tata (1997, überarbeitete Fassung 2002) Frank Neven : Automata Theory for XML researchers, University of Limburg, 2002 R.Wilhelm, D.Maurer : Übersetzerbau, Springer 1992(2.Version 1997)

34 ENDE Danke fürs Zuhören!


Herunterladen ppt "Baumautomaten Christian Klein Betreuer : Tim Priesnitz SS 2003 Seminar Logische Aspekte von XML Gert Smolka Programming Systems Lab Universität des Saarlandes."

Ähnliche Präsentationen


Google-Anzeigen