Arbres Alphabet Σ = Σ 0 Σ k Σ i : alphabet fini de symboles de rang i (Σ i Σ j possible). Un arbre t de rang k est défini par un ensemble (fini) dom(t) {1,..., k} clos par préfixe (domaine de t) : si v, vi dom(t), alors vi est le i-ème enfant de v. Un arbre t étiqueté dans Σ est une fonction l(t) : dom(t) Σ telle que si v a i enfants, alors l(v) Σ i. On écrit aussi t à la place de l(t). T(Σ) : ensemble des arbres étiquetés dans Σ. Racine, feuilles, nœuds internes, hauteur, prédécesseur, descendant, sous-arbre. Frontière fr(t) : séquence des étiquettes des feuilles de t, lues de gauche à droite. Exemples Arbres binaires : Σ = Σ 0 Σ 2. Termes LISP. Arbres des expressions arithmétiques (rang 2). Arbres de codes préfixe. 1/9
Automates d arbre Automates d arbre montants (angl. bottom-up NTA - non-deterministic tree automaton) Un automate d arbre A = Q, Σ, δ, F sur l alphabet Σ = k i=0 Σ i est composé d un ensemble fini d états Q, de relations de transitions δ 0,..., δ k, δ i Q i Σ i Q, et d un ensemble F Q d états finaux (ou terminaux). Si tous les δ i : Q i Σ i Q sont des fonctions (partielles), on parle d un automate déterministe (bottom-up DTA). 1 Contrairement aux NFA, on ne peut pas représenter les NTA par des graphes étiquetés... 2 Un calcul du NTA A sur un arbre t représente un étiquetage ρ : dom(t) Q de t par des états (définition inductive) : (Base : arbre réduit à une feuille a) Si t = a Σ 0 et (a, q) δ 0, alors ρ(ɛ) = q. (Induction) Supposons que t = a(t 1,..., t j) et (q 1,..., q j, a, q) δ j. Pour chaque 1 i j, on considère un calcul ρ i : dom(t i) Q sur t i, qui étiquete la racine de t i par q i. Alors la fonction ρ : dom(t) Q définie par ρ(ɛ) = q et ρ(iv) = ρ i(v) pour chaque 1 i j, est un calcul de A sur t. 2/9
Definition, notations 1 Calcul acceptant : ρ(ɛ) F. Langage reconnu L(A) : ensemble des arbres ayant un calcul acceptant. 2 Rec(T(Σ)) ensemble des langages reconnaissables d arbre. 3 NTA complet : pour tout a Σ i et q 1,..., q i Q il existe un q Q tel que (q 1,..., q i, a, q) δ i. 4 Soit t un arbre, q un état. On note par t q l existence d un calcul ρ sur t tel que ρ(ɛ) = q. 5 NTA réduit : pour tout état q il existe un arbre t tel que t q. Proposition Tout NTA A peut être transformé en un NTA équivalent, qui est complet et réduit. La construction préserve le déterminisme. Proposition Tout NTA peut être transformé en un DTA équivalent (déterminisation). 3/9
Automates Automates d arbre descendants (angl. top-down NTA) Un automate d arbre descendant A = Q, Σ, δ, I sur l alphabet Σ = k i=0 Σ i est composé d un ensemble fini d états Q, de relations de transitions δ 0,..., δ k, δ i Q Σ i Q i, et d un ensemble I d états initiaux. Si tous les δ i : Q Σ i Q i sont des fonctions (partielles) et I = 1, on parle d un automate déterministe (top-down DTA). Calcul Un calcul de A sur t est un étiquetage ρ : dom(t) Q tel que : ρ(ɛ) I Soit v dom(t) un nœud d étiquette a Σ j et enfants v1,..., vj. Alors ρ(v) = q et ρ(vi) = q i, pour q, q i Q (1 i j) tels que (q, a, q 1,..., q j ) δ. Un calcul ρ est acceptant, si pour toute feuille v dom(t) d étiquette a, on a (ρ(v), a) δ 0. 4/9
Proposition Les DTA descendants sont strictement plus faibles que les NTA descendants. Tout NTA descendant peut être transformé en un NTA montant équivalent. Exemple Le langage d arbres (fini!) {c(a, b), c(b, a)} est reconnu par un NTA descendant, mais pas par un DTA descendant. Proposition Rec(T(Σ)) est fermé par les opérations booléennes et contient les singletons {t}, t T(Σ). 5/9
Expressions rationnelles Produit, itération Soient L, K T(Σ) et a Σ 0. On définit L a K comme l ensemble des arbres t L, dans lesquels on remplace chaque feuille d étiquette a par un arbre de K. Soit L T(Σ), a Σ 0. On définit inductivement (pour k 0) : L,a = k 0 L k,a L 0,a = {ɛ} (ɛ = arbre vide), L k+1,a = L k,a a L Definition L ensemble Rat(T(Σ)) des expressions rationnelles sur T(Σ) est défini par : et t (pour tout t T(Σ)) appartiennent à Rat(T(Σ)) Si E, F sont dans Rat(T(Σ)) et a Σ 0, alors (E + F), (E a F) et E,a aussi. On identifie une expression rationnelle E et le langage L(E) décrit par E. 6/9
Kleene Proposition Pour tout alphabet Σ = Σ 0 Σ k, on a Rec(T(Σ)) = Rat(T(Σ)). Remarque Une expression rationelle E peut utiliser plus de symboles que l ensemble des étiquettes des arbres de L(E). Exemple : Soit L = {f (a, f (a,... (f (a, a )...) n pair}. } {{ } n On utilise l alphabet Σ = Σ 0 Σ 2, où Σ 0 = {a, c, d}, Σ 2 = {f }. Expression rationnelle pour L : f (a, f (d, c)),c c a d a. NB : f (a, f (d, c)),c peut se réecrire sans étoile (comme (ab) sur les mots!) 7/9
Logique Syntaxe Soit Var 1 = {x, y, z,...}, Var 2 = {X, Y, Z,...} les ensembles de variables du premier et du second ordre, et Σ = Σ 0 S k l alphabet. Les formules de MSOL sur les arbres de T(Σ) sont définies inductivement : (Base) a(x), y = S i (x) (1 i k), x y, x X sont des formules. (Ind.) Si ϕ 1, ϕ 2, ϕ sont des formules, alors sont des formules aussi. ϕ 1 ϕ 2, ϕ, x. ϕ, X. ϕ Sémantique Les variables de Var 1 sont interprétées par des nœuds, celles de Var 2 par des ensembles de nœuds. La formule y = S i (x) est interprétée par y est le i-ème enfant de x. La formule x y est interprétée par y est descendant de x. 8/9
Logique et automates Théorème de Thatcher/Wright Pour tout NTA montant A il existe une formule MSOL ψ A telle que L(A) = L(ψ A ), et réciproquement. Algorithmes 1 Il existe un algorithme polynomial qui, étant donné un NTA A, vérifie si L(A). 2 Il existe un algorithme polynomial qui, étant donné un NTA A, vérifie si l ensemble L(A) est infini. 9/9