• Aucun résultat trouvé

1.2 Arbres d’arité bornée

1.2.2 Automates d’arbres

Avant de nous intéresser aux transducteurs, centraux dans cette thèse, il est important de prendre le temps de poser de bonnes bases sur la notion d’automates. Possédant une structure souvent proche de celles des transduc- teurs, mais ne devant pas gérer de productions, les automates peuvent être vus comme une simplification des transducteurs. Comprendre les problèmes ren- contrés par ces machines et les complexités associées sont donc indispensables avant d’ajouter les opérations liées à la production telles que les copies, les réordonnancement, que l’on rencontre dans certaines classes de transduction (Lemay et al., 2010; Alur et D’Antoni, 2012).

Il existe deux types d’automates d’arbres d’arité bornée qui se distinguent par le sens dans lequel ils parcourent l’arbre. Les automates dit descendants parcourent l’arbre de la racine jusqu’à ses feuilles alors que les automates as- cendants remontent des feuilles jusqu’à la racine d’un arbre. Nous verrons que

même s’ils partagent une syntaxe très proche, en imposant le déterminisme, les modèles n’ont pas la même expressivité.

1.2.2.1 Automates ascendants

Définition 7. Un automate d’arbres ascendant de TΣ est un triplet A =

(Q, fin, rul) composé d’un ensemble fini d’états Q, d’un ensemble d’états fi- naux fin ⊆ Q, et d’un ensemble fini de règles rul ⊆(⋃k≤0{f(k)}×Qk+1)∪(Q2).

Ces règles sont représentées par f(q1, . . . , qk) → q pour (f(k), q, q1, . . . , qk),et

qÐ→ qε ′ pour (q, q′) ∈ rul.

Les ε-transitions restent identiques à celle des automates de mots, parta- geant une même clôture transitive représentée par qÐ→ε ∗p.

A l’instar des automates de mots, une fonction d’évaluation evalApeut être

définie pour ces automates. Un automate ascendant peut être vu comme une machine associant un ensemble d’états aux feuilles d’un arbre, puis progres- sivement aux noeuds internes en tenant compte des états de ses fils, jusqu’à atteindre la racine. L’intégralité d’un sous arbre est parcourue par l’auto- mate avant d’associer un état à sa racine. Ainsi pour un automate ascendant A =(Q, fin, rul), evalA∶ TΣ→ (Q)∗ tel que :

evalA(f(t1, . . . , tk)) = {q ∣ qi∈ evalA(ti) pour 1 ≤ i ≤ k,

f(p1, . . . , pk) → q′ et q′ εÐ→ ∗

q ∈ rul} Un arbre t est accepté par un automate ascendant A si evalA(t) ∩ fin ≠ ∅.

Le langage L(A) des arbres reconnus par un automate A est composé de l’ensemble des arbres acceptés par cet automate.

Définition 8. Un automate d’arbres est déterministe ascendant, noté dta

, s’il n’accepte aucune ε-règle et s’il existe au plus une règle pour une partie

gauche donnée.

L’évaluation d’un sous arbre est maintenant au plus un singleton.

Il est complet si chaque partie gauche possible se retrouve dans une de ces règles. L’expressivité reste la même puisque tout automate d’arbres non déterministe peut être rendu déterministe ascendant en temps exponentiel (Thatcher, 1973).

L’ensemble des langages d’arbres reconnaissables par un automate défini la classe des langages réguliers d’arbres, résultat que nous pouvons retrouver, parmis les autres résultats principaux sur les automates, dans le livre « Tree Automata Techniques and Applications » (Comon et al., 2007b).

Exemple 5. Prenons l’automate A5 reconnaissant le langageL(A5) = {f(a, a), f(b, b)}

droit, pour une même racine binaire f. Il est composé de trois états QA5 =

{qa, qb, qf} dont uniquement qf est final. En regardant ces règles, présentées

dans la figure 1.3, nous pouvons voir qu’il est déterministe (aucune ne parta- geant une même partie droite) mais pas complet. A5 étant déterministe, son

exécution sur un arbre peut être représentée, comme l’illustre la figure 1.3, par une annotation de ses noeuds, chaque état correspondant à l’évaluation du sous arbre dont il annote la racine.

f a a qf qa qa a→ qa b→ qb f(qa, qa) → qf f(qb, qb) → qf

Figure 1.3 – Automate A5 ascendant déterministe et son exécution repré- sentée en bleu.

L’exécution d’un automate ascendant déterministe peut être représentée, d’une manière similaire aux mots, par une paire t∗ β, β associant à chaque noeud au plus un état. Nous pouvons nous baser sur la définition globale d’évaluation pour définir cette fonction, de sorte que pour tout noeud π ∈ noeuds(t), β(π) = q ssi evalA(π−1t) = {q}.

1.2.2.2 Automates descendants

Les automates descendants partagent une signature identique à celles des automates ascendants, et diffèrent dans leur sémantique et leur représenta- tion. L’ensemble fin des états sur lesquels nous terminions dans l’approche ascendante est remplacé par un ensemble init d’états initiaux.

Définition 9. Un automate d’arbres descendant de TΣ est un triplet A =

(Q, init, rul) composé d’un ensemble fini d’états Q, d’un semble d’états ini- tiaux init ⊆ Q, et d’un ensemble fini de règles rul ⊆(⋃k≤0{f(k)}×Qk+1)∪(Q2).

Ses règles sont représentés par q Ð→ (qf 1, . . . , qk) pour (f(k), q, q1, . . . , qk),et

q Ð→ qε ′ pour (q, q′) ∈ rul. Pour les constantes, symboles d’arité 0, on repré-

sente la règle par qÐ→ pour (a, q) ∈ rul.a

Les automates ascendants et descendant partagent une même expressivité et de mêmes propriétés, le non déterminisme permettant de passer de l’un à l’autre. La différence sémantique se fait ressentir lors du passage à un modèle déterministe.

Définition 10. Un automate d’arbres descendant est déterministe, noté dta↓,

s’il n’accepte aucune ε-règle, s’il n’a qu’un état initial, et s’il existe au plus une règle pour une partie gauche donnée.

Comme vu précédemment, les automates ascendants tiennent compte, pour choisir l’état associé à un noeud, de l’intégralité du sous arbre dont il est la racine. Les automates descendants déterministes, quant à eux, ne tiennent compte que des ancêtres de ce noeud. L’état ne dépend que du che- min qui relie ce noeud à la racine de l’arbre. Cette restriction d’informations aux chemins rend les automates descendants strictement moins expressifs que les automates ascendants (déterministes ou non).

Pour illustrer cette perte d’expressivité il suffit de regarder l’exemple 5 qui ne peut pas être exprimé par un automate déterministe descendant. En effet, l’automate ne pourrait pas tenir compte du sous arbre droit pour décider de l’annotation du sous arbre gauche, et inversement.

Pour les dta↓s, l’ensemble des règles peut être vu comme une fonction

partielle ˆrul ∶ Q × Σ → Q∗ associant à un état et un symbole un ensemble

d’états. Cette fonction peut être étendue aux chemins étiquetés. Connaître le chemin reliant tout noeud de l’arbre à la racine suffit à décider de l’état à lui associer. Cela peut se définir de manière récursive par :

ˆ

rul(q, ε) = q, rulˆ (q, (f, i) ⋅ p) = qi pour ˆrul(q, f) = q1⋅ . . . ⋅ qi⋅ . . . ⋅ qk.

La classe des langages reconnus par les automates d’arbres descendants déterministes correspond à la classe des langages clos par chemins (Virágh, 1980; Comon et al., 2007b).

Une solution pour décider de l’équivalence est le passage par le représentant minimal unique reposant une fois de plus sur les classes d’équivalences, ou classes de Myhill-Nerode, liant les états, ou résiduels de chemins pour les langages reconnus. Par la suite on nommera indice de Myhill-Nerode le nombre de classes d’équivalences distinctes.

La relation d’équivalence de Myhill-Nerode ≡L se définit sur les chemins

annotés, de sorte que p1 ≡L p2 ssi p−11 L = p−12 L. La classe d’équivalence d’un

chemin p est l’ensemble des chemins [p]L={p′∈ chemins(L) ∣ p′≡Lp} et l’in-

dice de Myhill-Nerode de L est le nombre de classes d’équivalences différentes (possiblement infinies).

Théorème 1. (Myhill-Nerode pour les dta↓s) Un ensemble d’arbres L est

clos par chemins et un indice de Myhill-Nerode fini si et seulement s’il est reconnu par un automate d’arbres déterministe descendant.

Cette notion de résiduels et de classes d’équivalences sur les chemins nous permet de définir un dta↓ minimal canonique reconnaissant un langageL clos

Définition 11. Le dta↓ minimal canonique A

L représentant un langage L,

clos par chemins, et d’indice de Myhill-Nerode fini, est défini par un quadru- plet AL = (Σ, Q, [ε]L, rul), pour lequel l’ensemble des états Q correspond à

l’ensemble des classes d’équivalences {[p]L ∣ p ∈ chemins(L)} de L et dont

chaque transition est de la forme : [p]L

f

Ð→ ([p ⋅ (f, 1)]L, . . . ,[p ⋅ (f, 1)]L)

pour tout chemin p ∈ chemins(L), L ayant un arbre t avec le symbole f d’arité k en p.

Naturellement JALK = L, et AL est minimal, le nombre d’états ne pou-

vant pas être réduit. Réduire sa taille reviendrait à fusionner deux classes d’équivalences différentes.