DM : Automates pondérés
DM de Langages Formels 2 : Automates pondérés
Younesse Kaddar
I.
Quelques exemples
1.
En posant :
on vérifie de manière immédiate que :
2.
Soit
En s’inspirant de l’exemple vu en TD sur le demi-anneau
alors
⇓
Donc avec le demi-anneau
Mais on veut l’égalité : on va donc modifier le demi-anneau, tout en restant aussi proche que possible de l’exemple précédent.
On introduit deux nouveaux symboles
où
-
est définie, pour tous , de la manière suivante : -
est la concaténation des mots, prolongée par :
On vérifie que
-
est bien un monoïde commutatif-
est associative : pour tous :-
Si
ou ou : -
Sinon si
: -
Sinon si
: -
Sinon si
: -
Sinon si
: -
Sinon :
-
-
est commutative (le tableau est symétrique) et d’élément neutre
-
-
est un monoïde :-
est associative : pour tous :-
Si
ou ou : -
Sinon si
ou ou : -
Sinon (associativité de la concaténation pour les mots) :
-
-
a pour élément neutre
-
-
est distributive par rapport à : pour tous :-
Si
: -
Sinon si
: -
Sinon si
:car l’un des deux derniers termes (à droite) vaut
-
Sinon si
ou : -
Sinon si
: -
Sinon (
et ) :
-
-
est absorbant pour
Il s’ensuit qu’en posant :
alors
(la démonstration est analogue à ce qu’on a vu en TD : on le vérifie de manière immédiate, puisque
⇓
3.
⇓
En posant :
alors
4.
On note
définies composante par composante, où :
sera interprété comme “la variable est vivante” sera interprété comme “la variable est morte” sera interprété comme “la variable est dans un état indéterminé” est un élément neutre (pour ) absorbant rajouté artificiellement
NB : Par abus de notation, on notera de la même manière les lois définies sur
On vérifie bien que
-
est un monoïde commutatif d’élément neutre -
est un monoïde d’élément neutre -
est distributive par rapport à :-
il suffit de le vérifier composante par composante : pour tous
:-
Si
: -
Sinon si
: -
Sinon si
: -
Sinon :
-
-
-
est absorbant -
est borné idempotent :-
est idempotent -
Comme
, ne contient aucune chaîne infinie décroissante non stationnaire.
-
Donc
est un demi-anneau borné idempotent.
On pose
- L’ensemble des états
est l’ensemble des sommets de
Dans la suite, on notera
Pour tous
Pour tout chemin
montrons que la projection sur la
-ème composante de permet de déterminer l’état de la variable
-
Cas 1 : Si pour tout
, n’apparaît pas dans :alors
est morte dans , et :donc on a bien
-
Cas 2 : Sinon, on note
le plus entier de tel que apparaît dans : autrement dit, est la première instruction du chemin où apparaît-
Sous-Cas 1 : si
est de la forme ou , avec : alors est vivante dans , et : -
Sous-Cas 2 : si
est de la forme , avec : alors est morte dans , et :
-
Dans tous les cas, le résultat est acquis.
Pour tout sommet
, montrons que la projection sur la -ème composante de permet de déterminer l’état de la variable
Supposons qu’il existe un chemin
Alors par commutativité de
et le résultat est acquis.
Réciproquement, s’il n’existe aucun chemin de
Il vient donc que, pour tout sommet
et chemin , les variables vivantes de et de sont celles dont la coordonnée vaut .
5.
En se basant pour les observations faites précédemment, il apparaît que pour toute variable
-
est vivante dans si et seulement si il existe un chemintel qu’en notant
le plus entier de tel que apparaît dans (i.e. est la première instruction du chemin où apparaît ), est de la formeavec
-
est morte dans si et seulement si elle n’est pas vivante dans et-
il existe un chemin
tel que la première instruction du chemin où apparaît
est de la formeavec
ou
n’apparaît dans aucun chemin de à
-
Si on veut que
: si
et est de la forme avec
, alors
: si
et est de la forme avec
, alors
: si
ou et n’apparaît pas dans , alors
On vérifie aussi que ces conditions sont suffisantes, d’après les observations précédentes.
De fait, la correction de l’algorithme suivant s’ensuit :
Initialiser tous les ||q||_i à ☠
Pour chaque x_i:
Tant qu'il existe un transition t ≝ (q1 ⟶^e q') qui ne vérifie pas P_❓(t,i) ou P_☥(t,i):
mettre ||q||_i ou ||q'||_i à ☥ pour vérifier la condition
NB : comme, à chaque étape de l’algorithme, les
Terminaison
L’algorithme termine clairement, car
- toute transition
telle que vérifie - toute transition
telle que vérifie
et chaque
Complexité
Dans le pire des cas, il faudra modifier chacun des
la complexité de l’algorithme est en
où
est l’ensemble des états est l’ensemble des transitions est la taille maximale d’une instruction de
NB : en fait, on ne modifiera jamais les
Exemple :
x := 0
y := x+1
if x == 0:
x := x+y
goto line 2
On pose
-
Initialisation :
-
:-
La transition
ne vérifie pas la propriété : -
La transition
ne vérifie pas la propriété : -
La transition
ne vérifie pas la propriété :
-
-
:-
La transition
ne vérifie pas la propriété : -
La transition
ne vérifie pas la propriété : -
La transition
ne vérifie pas la propriété :
-
Sortie :
Propriétés de clôture
6.
Soient
Alors en posant :
il vient immédiatement (avec la notation matricielle) que pour tout mot
Donc
si
est reconnaissable et si est un morphisme, est reconnaissable.
5.
Soient
Alors l’automate union
En effet, pour tout mot
et d’après la sémantique des automates pondérés,
Donc
si
et sont reconnaissables, l’est aussi.
6.
Soient
Rappels sur le produit de Kronecker :
Si
On a montré en prépa (il suffit de faire le calcul) que :
Propriété du produit mixte :
Si
sont des matrices à coefficients dans un demi-anneau commutatif, sous réserve de compatibilité des tailles :
Montrons que
On note
Avec la notation matricielle (et des notations évidentes), pour tout mot
en posant
où
Donc
si
et sont reconnaissables et si est commutatif, est reconnaissable.
8.
L’hypothèse de commutativité de
Contre-exemple
On se place sur le demi-anneau non commutatif
La fonction
est clairement reconnaissable.
Mais ce n’est pas le cas de
Par l’absurde, si
En effet : le chemin
- le même chemin où on a bouclé
fois sur serait étiqueté par
Or :
-
-
- où
- où
on obtient une contradiction pour
-
soit à cause du nombre de
si contient la lettre -
soit, si
ne contient pas la lettre , en considérant les facteurs à gauche et à droite du central (qui doivent être égaux dans , mais qui ne peuvent pas l’être dans si ne contient pas la lettre )
On a donc montré que :
Si
n’est pas commutatif, et et sont reconnaissables, n’est pas nécessairement reconnaissable.
Leave a comment