Documente Academic
Documente Profesional
Documente Cultură
Mod
elisation de syst`
emes par automates finis
Table des mati`
eres
1 Introduction : mod
elisation par automates finis
2 Syst`
emes de transitions et automates finis
2.1 Definitions generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Equivalence de langages et determinisation . . . . . . . . . . . . . . . . . . .
2.3 Mod`eles de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2
2
3
3 Op
erations sur les automates finis
3.1 Union, intersection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Produit synchronise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
4
5
4 Exemples de mod
elisation
Introduction : mod
elisation par automates finis
Exemple de probl`emes pour lesquels on cherche `a construire un mod`ele :
1. Comportement dun digicode comportant 3 touches A, B, C, et qui ouvre la porte d`es
que lutilisateur a tape le code ABA.
2. Traversee dune rivi`ere pour un loup, une ch`evre et une salade, qui disposent dun
passeur avec une barque, avec les contraintes suivantes :
- le passeur ne peut prendre quun passager dans sa barque,
- pour des raisons de survie, le loup ne peut pas rester seul avec la ch`evre, et la ch`evre
ne peut pas rester seule avec la salade.
3. Strategie gagnante dun barman aveugle (avec des gants de boxe) pour retourner des
verres sur un plateau et reussir `a ce que les 4 verres soient dans le meme sens.
4. Comportement dun couple producteur/consommateur (a) avec tampon quelconque, ou
(b) avec tampon borne.
5. Dominos de Wang : pavage dun plan (a), ou dun carre 5 5 (b), avec des dominos `
a
4 couleurs, de facon que deux couleurs adjacentes soient les memes.
Exercice 1.
Dessiner :
un mod`ele de comportement du digicode,
un mod`ele pour la traversee,
des mod`eles pour les probl`emes de producteur/consommateur.
2
2.1
Syst`
emes de transitions et automates finis
D
efinitions g
en
erales
Etant donne un alphabet , on rappelle que lensemble des mots sur cet alphabet est note
et quun langage est un sous-ensemble de . Par exemple, si = {a, b} contient deux
lettres, = {, a, b, a2 , b2 , ab, ba, . . .}.
Loperation de concatenation de deux mots, notee w1 w2 ou simplement w1 w2 pour deux
mots w1 et w2 consiste `
a mettre w2 tout de suite apr`es w1 . Par exemple, la concatenation des
deux mots ab et ba produit le mot abba. Le mot vide na aucune lettre et verifie w = w = w
pour tout mot w de .
Exercice 2. Decrire le langage du producteur/consommateur avec tampon non borne sur
lalphabet = {a, b}, la lettre a representant une operation de production et la lettre b une
operation de consommation.
D
efinition 2.1.
Un syst`eme de transitions sur lalphabet (dactions) est un triplet T = (S, S0 , T ) o`
u S
est lensemble des configurations, S0 est le sous-ensemble de S des configurations initiales et
T S ( {}) S est lensemble des transitions.
a
On note generalement s
s une transition (s, a, s ) de T . Une transition etiquetee par
le mot vide correspond `
a lexecution dune action non observable, dite action interne.
Une execution de T est un chemin dans ce graphe, cest-`
a-dire une sequence de trana1
a2
sitions (s0 , a1 , s1 )(s1 , a2 , s2 ) . . . qui secrit aussi s
s1
s2 . . ., commencant dans une
configuration initiale. Le mot w = a1 a2 . . . est letiquette du chemin (ou de lexecution).
D
efinition 2.2. Un automate fini est un syst`eme de transitions
dont lensemble des configurations est fini (les elements sont alors appeles des etats),
auquel on adjoint un sous-ensemble F de S correspondant `
a des etats finals.
Si A = (Q, Q0 , T, F ) est un automate fini sur , on peut lui associer le langage des mots
acceptes, note L(A) et defini par :
a1
a2
an
un mot w de appartient `
a L(A) sil existe une execution finie q0
q1
q2 . . .
qn
commencant dans un etat initial (q0 Q0 ), se terminant dans un etat final (qn F ) et ayant
w comme etiquette.
2.2
Equivalence de langages et d
eterminisation
2.3
Mod`
eles de calcul
Les machines `
a registres sont des mod`eles de calcul qui comportent un ensemble fini de
registres manipules par des operations. Un compteur est un registre particulier qui peut contenir seulement une valeur enti`ere et, `a part linitialisation, admet comme seules operations :
lincrementation et la decrementation avec test `a 0.
D
efinition 2.5.
Une machine M `
a deux compteurs C et D est une suite finie dinstructions etiquetees. Chaque
instruction peut etre soit linstruction particuli`ere ST OP , soit une operation sur un des deux
compteurs X {C, D} :
1. : X := X + 1; goto ;
2. : si X > 0 alors X := X 1; goto ;
sinon goto ;
La semantique dune machine `
a deux compteurs M est definie par un syst`eme de transitions T = (S, S0 , T ) o`
u:
une configuration s S est de la forme (, n, m) o`
u est une etiquette, et n et m sont
les valeurs respectives des compteurs C et D juste avant linstruction .
Il y a une seule configuration initiale : S0 = {s0 } avec s0 = (0 , 0, 0), o`
u 0 est letiquette
de la premi`ere instruction.
3
3
3.1
Op
erations sur les automates finis
Union, intersection
q1 est dans T1 et
une transition (q1 , q2 )
(q1 , q2 ) est dans T si et seulement si q1
a
q2
q2 est dans T2 .
Exercice 9. Sur lalphabet {0, 1}, construire un automate A1 qui accepte les multiples de
3 (ecrits en binaire) et un automate A2 qui accepte les multiples de 4 (egalement ecrits en
binaire).
En deduire un automate qui accepte les multiples de 12.
Exercice 10. Dans le cas general, donner la construction dun automate fini qui accepte le
produit L1 L2 . On rappelle que ce produit qui etend la concatenation contient les mots de la
forme w1 w2 , o`
u w1 appartient `
a L1 et w2 appartient `a L2 .
Donner aussi la construction dun automate fini qui accepte le produit L1 . On rappelle
que ce langage contient les produits dun nombre quelconque de mots de L1 .
Exercice 11. Montrer que le langage du producteur/consommateur avec tampon non borne
ne peut pas etre accepte par un automate fini.
3.2
Produit synchronis
e
q1
q1 est dans T1 et q2
q2 est dans T2 , si a 6= et b 6= ,
b
q2 est dans T2 , si a = et b 6= ,
q1 = q1 et q2
a
q1
q1 est dans T1 et q2 = q2 si a 6= et b = .
Exercice 12 (Examen novembre 2011). Dans le but dexploiter leur mine de mithril, les
nains doivent matriser le niveau deau qui ruisselle dans les profondeurs de la montagne. Ils
utilisent pour cela un syst`eme de pompage. Les trois composants du syst`eme sont : le niveau
deau, la pompe et le contr
oleur, donnes par les automates finis ci-dessous, WaterLevel, Pump
et Cont respectivement.
WaterLevel :
Pump :
!wh
?poff
?pon
!wl
M
OFF
ON
?poff
?wh
Cont :
?pon
WH
?wl
Idle
!pon
WL
!poff
!wh
?wh
wh
!wl
?wl
wl
?pon !pon
pon
?poff !poff
poff
1. Dessiner lautomate fini S = (Cont k W aterLevel k P ump)f correspondant au produit
synchronise par f .
2. Determiniser cet automate.
Exemples de mod
elisation
Voici une liste dexemples pour lesquels on peut obtenir une modelisation `a laide dautomates finis.
1. Comportement dune memoire : bascule RS avec portes NON-OU.
2. Dictionnaires electroniques.
3. Digicode avec compteur derreurs : construire une machine `a un compteur conduisant
`a un etat derreur lorsque lutilisateur sest trompe 3 fois de suite dans la composition
du code. En deduire un automate fini par depliage.
4. Exclusion mutuelle pour deux processus qui partagent une variable enti`ere T (valant 1
ou 2) : representer dabord le comportement dun processus P1 qui execute
Tant que vrai faire
SR1
Tant que T = 2 faire rien;
SC1
T := 2;
puis le comportement de P2 et celui de la variable T . En deduire le comportement de
lensemble avec une synchronisation sur T .
5. Comportement dun syst`eme reparti.