• Aucun résultat trouvé

3.2 Automates finis

3.2.3 Automates finis pond´er´es

Les automates finis, comme les expressions rationnelles, permettent de mod´eliser des langages ration-nels. Afin de mod´eliser des langages plus complexes, dans le sens plus haut dans la hi´erarchie de Chomsky, il existe d’autres formes de grammaires, repr´esent´ees par d’autres types d’automates ou de machines. Il existe ´egalement une extension des automates finis o`u les transitions sont associ´ees `a un poids. Un mot du langage est alors une s´equence de symboles et de poids.

Nous introduisons ici les automates pond´er´es qui d´ecrivent une classe de langage strictement sup´erieure aux langages rationnels [60, 84].

La d´efinition formelle d’un automate pond´er´e propos´ee par Kuich et Salomaa [60] est bas´ee sur la notion de semi-anneau.

1Les ǫ-AFN sont une forme d’AFN poss´edant des transitions dites spontan´ees : facultatives et ne consommant pas de symbole. Nous n’utilisons pas directement ces automates.

3.2. Automates finis 21 D´efinition 14 (Automate pond´er´e) Un automate pond´er´e est un quintuplet (Q, Σ, E, I, T ), similaire `

a un automate fini o`u E, l’ensemble des transitions, est un sous-ensemble de Q × Σ × Q × K tel que :

• (K, ⊕, ⊗) est un semi-anneau ;

• pour tout triplet (q, σ, q) ∈ Q × Σ × Q, il existe un et un seul ´el´ement k ∈ K tel que (q, σ, q, k) ∈ E. D´efinition 15 (Fonction de poids) La fonction de poids est l’application w qui associe `a toute paire (q, σ) ∈ Q × Σ un ´el´ement k ∈ K.

D´efinition 16 (Poids d’un chemin) Soit un chemin π = e1e2. . . en, le poids du chemin w(π) dans

l’automate pond´er´e A = (Q, Σ, E, I, T ) dans le semi-anneau (K, ⊕, ⊗), et le ⊗-produit des poids de toutes les transitions. On note :

w(π) = w(orig(e1), symb(e1)) ⊗ w(orig(e2), symb(e2)) ⊗ . . . ⊗ w(orig(en), symb(en)).

D´efinition 17 (Poids d’un mot) Le poids d’un mot m pour un automate pond´er´e A dans le

semi-anneau (K, ⊕, ⊗) est la ⊕-somme de tous les poids des chemins correspondant `a m dans l’automate. On

note :

w(m) = M

π∈Π(m)

w(π).

Notons que si l’automate est d´eterministe, alors il n’existera qu’un seul chemin pour un mot donn´e, alors la premi`ere op´eration du semi-anneau ne sera jamais utilis´ee et le poids d’un mot m sera exactement le poids de son unique chemin.

L’acceptation d’un mot par un automate pond´er´e se fait par deux crit`eres :

• Le mot est-il dans le langage d´efini par l’automate fini simple (i.e. un chemin de I vers T ) ? • Le poids du mot a-t-il une valeur donn´ee ?

Concernant la valeur admissible d’un mot, on d´efinit souvent un sous-ensemble J ∈ K, valeurs du poids pour lesquelles un mot est admissible. Ainsi, un mot m est accept´e dans un automate pond´er´e A dans le semi-anneau (K, ⊕, ⊗) si et seulement si :

• m ∈ L(A) ; • w(m) ∈ J.

Exemple 9 (Un automate pond´er´e comptant une s´equence) Soit le semi-anneau (N, min, +) et

l’automate A = (Q, Σ, E, I, T ) avec : • Q = {q0, q1, q2} ; • Σ = {0, 1} ; • E = {(q0, 1, q1, 0), (q0, 0, q2, 0), (q1, 1, q1, 0), (q1, 0, q2, 0), (q2, 0, q2, 0), (q2, 1, q0, 1)} ; • I = {q0} ; • T = {q0}.

q0 q1 1[0] 1[0] q2 0[0] 0[0] 0[0] 1[1]

Figure 3.5 – Automate comptant les occurrences du motif 01

Cet automate est pr´esent´e figure 3.5. Tel quel, il accepte tous les mots de Σsuffix´es par 01 et compte le nombre de fois o`u le motif 01 apparaˆıt dans un mot. Si on pose J = ({2, 3, 4}, min, +) ⊂ (N, min, +), alors l’automate pond´er´e figure 3.5 accepte tous les mots de Σ∗ suffix´es par 01 et tel que ce motif apparaisse entre 2 et 4 fois inclus.

Pour en savoir plus sur les automates pond´er´es, nous invitons le lecteur `a se tourner vers l’ouvrage Handbook of weighted Automata de Droste et al. [45] ou `a lire le chapitre consacr´e aux K-automates du livre ´El´ements de th´eorie des automates de Jacques Sakarovitch [84]. Mohri et al. [68] pr´esentent une application des automates pond´er´es dans le cadre de la reconnaissance vocale. Jiang et al. [55] quant `a eux utilisent les automates pond´er´es pour la compression d’images. Ils utilisent un semi-anneau et un

automate pour associer chaque s´equence reconnaissable `a un nombre unique.

3.3 Conclusion

Nous avons pr´esent´e dans ce chapitre une petite partie de la th´eorie des langages et des automates. Afin d’introduire les langages rationnels et leurs repr´esentations sous forme d’automates finis ou d’expressions rationnelles, nous avons introduit les grammaires formelles pr´esent´ees originellement par Chomsky. Dans le prochain chapitre, nous vous pr´esenterons les origines et les utilisations des automates en programmation par contraintes de la litt´erature.

Chapitre 4

Automates en programmation par

contraintes

Sommaire

4.1 Origines . . . 24 4.1.1 Contrainte stretch . . . 24 4.1.2 Contrainte pattern . . . 24 4.2 Contrainte automate . . . 25 4.2.1 D´efinition . . . 25 4.2.2 Algorithmes de filtrage . . . 25 4.3 Extension des contraintes automates . . . 26 4.3.1 Automates pond´er´es . . . 26 4.3.2 Relaxation de regular . . . 27 4.3.3 Grammaires hors contexte . . . 27 4.4 Travaux connexes . . . 28 4.4.1 Contraintes among et sequence . . . 28 4.4.2 Contrainte slide . . . 29 4.4.3 Lin´earisation de la contrainte . . . 29 4.5 Applications . . . 29 4.5.1 Reformulation automatique de contraintes globales . . . 29 4.5.2 Propagation de contraintes en extension . . . 30 4.5.3 Mod´elisation des r`egles de s´equencement . . . 30 4.6 Conclusion . . . 30

D

ansformels. Dans ce chapitre, nous d´ecrirons le lien qui existe entre ces deux disciplines. Nous pr´esente-les chapitres pr´ec´edents, nous avons introduit la programmation par contraintes et les langages rons l’origine de l’utilisation des automates en programmation par contraintes jusqu’aux derniers travaux sur le sujet. Les contraintes connexes aux contraintes automates seront ´egalement pr´esent´ees.

4.1 Origines

L’origine de l’utilisation des automates en programmation par contraintes est multiple. Une des pre-mi`eres apparitions de l’utilisation d’automates dans un syst`eme de contraintes est propos´ee par Schulz et al. [85]. Dans le cadre de la reconnaissance de phrases dans des corpus de grande taille, ils proposent d’utiliser la structure compacte des automates pour repr´esenter des structures grammaticales complexes. Ils utilisent ensuite la propagation de contraintes pour s’assurer de certaines propri´et´es morphologiques. Si la combinaison des automates et des contraintes est pr´esente dans cet article, il n’apparaˆıt pas

encore de contrainte automate `a proprement parler. Le cheminement vers un algorithme de filtrage pour

une contrainte portant sur une s´equence de variables, se devant de respecter un motif donn´e, s’est fait au travers d’applications de planification de personnel. Ces derni`eres ont conduit Pesant `a d´evelopper la contrainte stretch [71], puis la contrainte pattern [23].