Vous êtes sur la page 1sur 103

Chapitre 1: Langage formel et automates à états

finis

Samuel BOWONG

Université de Douala, Cameroun

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 1 / 103
PLAN

1 Introduction
2 Langage formel
3 Automates à états finis
4 Exercices

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 2 / 103
Introduction

Un des moyens formels pour étudier le comportement logique des


SED est basé sur la théorie des langages et des automates.
L’aspect temporel du système est ignoré, seuls l’ordre et l’identité des
événements générés par le système sont pris en compte.
Par conséquent, un modèle logique où seulement les séquences
d’événements sont manipulées est parfaitement adapté à ce type de
problème.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 3 / 103
Langage formel

Chaque SED a un ensemble d’événements E qui lui est associé, ces


événements font évoluer le SED.
L’ensemble E peut être vu comme un alphabet d’un langage et les
séquences d’événements sont des mots dans ce langage.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 4 / 103
Langage formel
Pour motiver la discussion des langages considérons un exemple simple :
On veut concevoir un système simple pour un photocopieur.
Quand le photocopieur est mis en marche, le système indiquerait ”en
marche”, puis reporterait ” pas de problème” ou ”manque papier” ou
”manque toner”, et conclurait avec ”rapport terminé” . Chaque
message définit un événement, et tous les messages possibles
définissent un alphabet.
Le système est un SED.
Ce SED doit reconnaı̂tre des événements et interpréter correctement
chaque séquence d’événements reçue.
La séquence d’événements (”en marche”, ” pas de problème”, ”rapport
terminé”) est interprétée comme normale. De même pour la séquence
(”en marche”, ” manque papier”, ”rapport terminé”).
Par contre la séquence (”en marche”, ”apport terminé”) n’est pas
normale ; la procédure de rapport sur l’état du photocopieur n’a pas
fonctionné normalement.
Samuel BOWONG ( Samuel BOWONG)
Chapitre 1: Langage formel et automates à états finis 5 / 103
Langage formel

Les combinaisons normales de messages du photocopieur


(événements) sont des mots appartenant au langage du SED.
Le langage contient seulement des mots de trois événements, tous
commençant par ”en marche” et se terminant par ”rapport terminé”.
Quand le SED voit un tel mot, il sait que la tâche est accomplie.
Quand il voit un autre mot, il sait que quelque chose est anormal.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 6 / 103
Langage formel

Ces langages permettent de traiter mathématiquement les problèmes


relatifs aux SED, essentiellement d’un point de vue logique.
Les événements sont désignés par des symboles.
L’ensemble de ces symboles constitue un alphabet fini, à partir duquel
sont formés les séquences d’événements appelés mots.
L’ensemble de ces mots constitue le langage du système L.

Définition
Un alphabet E est un ensemble fini non vide de symboles (ou lettres). Le
nombre de symboles qu’il contient est appelé sa cardinalité et dénoté par
|E |.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 7 / 103
Langage formel

Exemple
On considère les alphabets

E1 = {0, 1}, E2 = {a, b, c, . . . , x, y , z} E3 = {♣, ♢, ♡, ♠}

Le premier alphabet E1 a cardinalité |E1 | = 2. Il est composé des


symboles 0 et 1, qu’on utilise pour écrire les nombres binaire.
Le deuxième alphabet E2 a cardinalité |E2 | = 26. Il est composé des
lettres minuscules latines.
Le troisième alphabet E3 a cardinalité |E3 | = 4. Il est composé des
enseignes (ou couleurs) du jeu de cartes.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 8 / 103
Langage formel

Définition
Un mot w défini sur un alphabet E est une suite de symboles de E . Le
nombre de symboles qui compose la suite est appelé longueur du mot w et
dénoté par |w |. On dénote par |w |e le nombre de fois que le symbole e est
présent dans w .

Exemple
On considère les trois alphabets définis dans l’exemple précédent.
Le mot w1 = 00110 défini sur E1 a longueur |w1 | = 5.
Le mot w2 = mucem défini sur E2 a longueur |w2 | = 5. Dans ce mot :
|w2 |m = 2, parce que le symbole m y apparaı̂t deux fois ; |w2 |c = 1,
parce que le symbole c y apparaı̂t une fois.
Le mot w3 = ♠♠♠ défini sur E3 a longueur |w3 | = 3.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 9 / 103
Langage formel

Définition
Le mot vide, de longueur 0, est noté ε et est défini sur n’importe quel
alphabet.

Définition
On dénote E ∗ l’ensemble de tous les mots définis sur un alphabet E .

On remarquera que, bien que E ait cardinalité finie, l’ensemble E ∗ a


toujours a cardinalité infinie.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 10 / 103
Langage formel

Exemple
On considère l’alphabet E = {a, b, c}. Pour déterminer l’ensemble E ∗ on
peut énumèrer tous les mots sur E , inclus le mot vide, dans un ordre
croissant :
ε : mot de longueur zéro ;
a, b, c : mots de longueur 1 (à noter : un symbole est aussi un mot) ;
aa, ab, ac, ba, bb, bc, ca, cb, cc : les mots de longueur 2 ;
aaa, aab, ...,ccb, ccc : les mots de longueur de 3 ;
etc.,...

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 11 / 103
Langage formel
Les opérations sur les mots
La première opération qu’on considéré sur les mots est une loi de
composition binaire qu’on appelle concaténation.
Définition
La concaténation de deux mots w1 ∈ E ∗ et w2 ∈ E ∗ est un nouveau
w = w1 .w2 ∈ E ∗ par la suite des symboles de w1 suivie par la suite des
symboles de w2 .

Exemple
La concaténation du mot w1 = a avec le mot w2 = bba donnera
w = w1 .w2 = abba. Le symbole . utilisé pour dénoter la concaténation est
souvent omis, et on écrit w1 w2 au lieu de of w1 .w2 . La longueur du mot
obtenue par concaténation est égale à la somme des longueurs des deux
mots qui la composent, c.à.d., |w1 w2 | = |w1 | + |w2 |.
Samuel BOWONG ( Samuel BOWONG)
Chapitre 1: Langage formel et automates à états finis 12 / 103
Langage formel

Les opérations sur les mots


- La concaténation est une opération associative, c.à.d.,
(w1 w2 )w3 = w1 (w2 w3 ) = w1 w2 w3 . Par exemple, si w1 = he, w2 = ll
et w3 = o, leur concaténation est w = w1 w2 w3 = hello .
- A l’opposé, la concaténation n’est pas une opération commutative,
c.à.d., généralement w1 w2 ̸= w2 w1 . Par exemple, si w1 = ab et
w2 = cd, clairement abcd ̸= cdab.
- L’élément neutre de cette opération est le mot vide ε, c.à.d. : pour
tout w ∈ E ∗ on a w ε = εw = w .

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 13 / 103
Langage formel

Les opérations sur les mots


La deuxième opération sur les mots qu’on va considérer, est une loi de
composition unaire : la projection.
Définition
Soit le mot w ∈ E ∗ et un alphabet Ê ⊆ E . La projection de w sur Ê ,
notée w ↑ Ê , est la suite obtenue de w en gardant les symboles qui
appartiennent à Ê et effaçant les autres symboles.

Exemple
Soit E = {a, b, c} et Ê = {a, b}. On considère le mot w = cabccb, : sa
projection sur Ê est obtenue en gardant les a et b et en effaçant tous les c
et donc w ↑ Ê = abb.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 14 / 103
Langage formel

Les opérations sur les mots

Définition
Si le mot w ∈ E ∗ peut s’écrire w = uvz où u, v , z ∈ E ∗ , alors le mot u
est appelé préfixe de w , le mot v est appelé sous-chaine de w et le mot z
est appelé suffixe de w . Si u est un préfixe de w on écrit u ⪯ w .

Exemple
Soit le mot w = abcd. Ses préfixes sont ε, a, ab, abc et abcd. Ses suffixes
sont ε, d, cd, bcd et abcd. Ses sous-chaines sont : tous ses préfixes, tous
ses suffixes et les chaines b, c et bc.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 15 / 103
Langages

Un langage est un ensemble de mots.


Définition
Un langage L défini sur un alphabet E est un ensemble de mots sur cet
alphabet. Sa cardinalité, à savoir le nombre de mots qu’il contient, est
notée |L|.

Exemple
Soit l’alphabet E = {a, b}, on considère les langages suivants :

L1 = {aab, aa, bbba}, L2 = {a, b} = E , L3 = {ε, , a}, L4 = {ε},

L5 = {w ∈ E ∗ , | |w | = 5}, L6 = {w ∈ E ∗ , | |w | > 3}, L7 = ∅, L8 = E ∗ .

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 16 / 103
Langages

Le langage L1 se compose de trois mots, donc sa cardinalité est


|L1 | = 3.
Le langage L2 se compose de deux mots, de longueur 1 et coı̈ncide
avec l’alphabet.
Le langage L3 se compose de deux mots, y compris le mot vide.
Le langage L4 ne se compose que du mot vide.
Le langage L5 se compose de tous les mots de longueur cinq.
Le langage L6 se compose de tous les mots de longueur supérieure à 3.
Le langage L7 est l’ensemble vide et ne contient pas de mots.
Le langage L8 se compose de tous les mots définis sur E .

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 17 / 103
Langages

Etant donné que les langages sont des ensembles de mots, il est possible
de comparer deux langages à travers les relations d’inclusion ⊆ et inclusion
stricte ⊋
Exemple
Le langage L1 = {a} est strictement inclus dans le langage L2 = {a, aa}.
Aucun de ces deux langages est inclus dans le langage L3 = {aaa}.

Si L est un langage sur l’alphabet E cela implique ∅ ⊆ L ⊆ E ∗ .

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 18 / 103
Les opérations sur les langages
Les opérations binaires usuelles, telles que l’union et de l’intersection,
peuvent être appliquées aux langages.
Définition
Soit L1 ⊆ E1∗ et L2 ⊆ E2∗ deux langages. On admet que Ē = E1 ∩ E2 et
E = E1 ∪ E2 sont l’intersection et l’union de leurs alphabets
respectivement. Nous définissons les langages suivantes :
- l’intersection de L1 et L2 notée
L1 ∩ L2 = {w ∈ Ē ∗ , | w ∈ L1 , w ∈ L2 } ;
- l’union de L1 et L2 notée L1 ∪ L2 = {w ∈ E ∗ , | w ∈ L1 ∨ ∈ L2 }.

Exemple
Si L1 = {ε, a} et L2 = {a, b, ab}, donc L1 ∩ L2 = {a} et
L1 ∪ L2 = {ε, a, b, ab}.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 19 / 103
Les opérations sur les langages
L’opération de concaténation, définie sur les mots, peut être redéfinie en
tant qu’opération sur les langages.
Définition
Étant donnés deux langages L1 , L2 ⊆ E ∗ nous définissons la concaténation
de L1 et L2 comme le langage

L1 L2 = {w = w1 w2 ∈ E ∗ , | w1 ∈ L1 , w2 ∈ L2 },

composé de tous les mots qui sont la concaténation d’un mot en L1 avec
un mot en L2 .

Exemple
Si L1 = {ε, a} et L2 = {a, b, ab} donc
L1 L2 = {ε.a} ∪ {ε.b} ∪ {ε.ab} ∪ {a.a} ∪ {a.b} ∪ {a.ab} = {a, b, aa, ab, aab}.
Le mot ab peut être obtenu de deux manières différentes : soit
concaténation ε avec ab ou concaténation a avec b.
Samuel BOWONG ( Samuel BOWONG)
Chapitre 1: Langage formel et automates à états finis 20 / 103
Les opérations sur les langages
Une opération unaire sur les langages est l’étoile de Kleene.
Définition
Étant donné un langage L ⊆ E ∗ , son étoile de Kleene (parfois appelée
fermeture de Kleene ou encore fermeture itérative) est le langage

[

L = {ε} ∪ L ∪ LL ∪ . . . = Lk ,
k=0

constitué de tous les mots obtenus par la concaténation de mots à L un


nombre quelconque de fois, y compris zéro.

Exemple
Soit L = {bb} un langage sur E = {b}. Son étoile de Kleene est
L∗ = {ε} ∪ {bb} ∪ {bbb} ∪ . . . = {(bb)n , | n ≥ 2}

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 21 / 103
Les opérations sur les langages
D’autres opérations unaires sur les langages sont la clôture préfixe et le
complément.
Définition
Étant donné un langage L ⊆ E ∗ , sa clôture préfixe (ou fermeture préfixe)
est le langage

L̄ = {u ∈ E ∗ , | il existe w ∈ L : u ⪯ w }

composé de tous les préfixes de mots dans L.


Normalement L ⊆ L̄. Un langage L est appelé clos par préfixe si L = L̄.

Exemple
Soit L1 = {ε, a, aa} et L2 = {a, b, ab}. On a L1 = L̄1 et donc L1 est clos
par préfixe. Au contraire, on a L2 ⊊ L̄2 = {ε, a, b, ab} et donc L2 n’est pas
clos par préfixe.
Samuel BOWONG ( Samuel BOWONG)
Chapitre 1: Langage formel et automates à états finis 22 / 103
Les opérations sur les langages

Définition
Étant donné un langage L ⊆ E ∗ , son complément est le langage

∁L = {w ∈ E ∗ , | w ∈
/ L}

composé de tous les mots qui ne font pas partie de L. Nous pouvons
également écrire ∁ = E ∗ ⧹L.

Exemple
Considérons le langage L1 = {ε, a, aa} sur E = {a} : son complément est
∁L1 = {an , n ≥ 3}.

La dernière opération que nous considérons, appelée produit synchrone,


joue, comme nous le verrons, un rôle important lors de la description du
comportement d’un système composé de plusieurs sous-systèmes.
Samuel BOWONG ( Samuel BOWONG)
Chapitre 1: Langage formel et automates à états finis 23 / 103
Les opérations sur les langages
Définition
Étant donnés deux langages L1 ⊆ E1∗ et L2 ⊆ E2∗ soit E = E1 ∪ E2 l’union
de leurs alphabets. Le produit synchrone de L1 et L2 est le langage

L1 ∥ L2 = {w ∈ E ∗ | w ↑ E1 ∈ L1 , w ↑ E2 ∈ L2 },

composé de tous les mots sur E dont la projection sur E1 est un mot de L1
et dont la projection sur E2 est un mot de L2 .

Exemple
Considérons E1 = {a, b}, E2 = {b, c}, L1 = {ab n | n ≥ 0} et
L2 = {cbc n b | n ≥ 0}. Le produit synchrone de L1 et L2 est
L = {acbc n b | n ≥ 0} ∪ {cabc n b | n ≥ 0}. A noter que la projection de L
sur E1 est le langage {abb} ⊊ L1 , tandis que la projection de L sur E2 est
le langage {cbc n b | n ≥ 0} = L2 .
Samuel BOWONG ( Samuel BOWONG)
Chapitre 1: Langage formel et automates à états finis 24 / 103
Les opérations sur les langages

Le comportement d’un SED peut donc être modélisé par un langage


préfixe-clos sur un alphabet E .
Cette modélisation par des langages du comportement du SED est
indépendante du modèle utilisé pour le SED lui-même.
Celui-ci devrait être représenté simplement par un générateur de
langage. Les automates sont les générateurs de langages utilisés par
Ramadge et Wonham dans leurs travaux (Ramadge & Wonham,
1987- a), (Ramadge & Wonham, 1987-b) et (Ramadge & Wonham,
1989) qui ont posé les bases de la théorie du superviseur des systèmes
à événements discrets.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 25 / 103
Automates

Un automate est une machine qui a des entrées et des sorties


discrètes, et qui réagit à une modification de ses entrées en changeant
ses sorties. Cette machine est constituée d’états et de transitions
associées à des événements. Le changement de sortie (passer d’un
état à un autre état) dépend du mot (séquence) fourni en entrée.
Les automates à états finis sont des automates dont le nombre d’états
est fini. Il est dit déterministe dans le sens où depuis tout état, il
n’existe pas plusieurs arcs de sortie qui soient associées à un même
symbole et qui conduisent à des états différents.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 26 / 103
Automates (à (nombre d’)états) finis

Un automate est capable de reconnaı̂tre un langage selon des règles


bien définies. Il est utilisé pour observer des séquences d’événements
formées selon un alphabet E .
Il est doté d’un ensemble d’états X , un état étant désigné comme
état initial x0 .
L’état courant xk résume l’information sur le passé. Cette information
est suffisante pour déterminer l’évolution future, connaissant les
entrées appliquées appartenant à l’ensemble E

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 27 / 103
Automates (à (nombre d’)états) finis

Définition
un automate fini est un quintuplet (E , X , f , x0 , F ) où
- E est un alphabet fini,
- X est un ensemble fini d’états, c’est l’espace des états, il est discret,
- f est une fonction de transition (partielle si non définie pour certaines
valeurs) d’état X × E → X ,
- x0 est un état initial, x0 ∈ X
- F est un ensemble d’états finaux, F ⊆ X .

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 28 / 103
Automates (à (nombre d’)états) finis
Diagramme des (transitions d’) états
- Graphe orienté, nœuds = états, arcs = événements.
- Un arc étiqueté e reliant le nœud x au nœud x ′ représente la
transition de l’état courant x au nouvel état x ′ lorsque l’événement e
se produit.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 29 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 30 / 103
Automates (à (nombre d’)états) finis

Exemple 1
On veut détecter tous les passages de 0 à 1 et de 1 à 0 dans une
séquence de 1 et de 0.
Le système à concevoir possède donc une entrée e (qui commence toujours
par 0) et une sortie s qui prend la valeur 1 après tout passage de e de 0 à
1 ou de 1 à 0.
e=00110111001000
s= 0101100101100
Donner l’automate d’états finis qui modélise ce système (définition
formelle + graphe).

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 31 / 103
Automates (à (nombre d’)états) finis
Exemple 2
L’automate d’états finis A = (E , X , f , x0 ) avec
E = {0, 1} : Ensemble des états qui représente les chiffres de e.
X = {0, 1} : Ensemble des symboles (alphabet) qui représente les
chiffres de la sortie s.
x0 = 0 : L’état initial
F = {0, 1} : Ensemble des états finaux
f : E × X → F : Fonction de transition telle que
f (0, 0) = 0, f (0, 1) = 1, f (1, 1) = 0, f (1, 0) = 1

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 32 / 103
Automates (à (nombre d’)états) finis

Exemple 2
Le graphe de transition d’états d’un automate fini A est donné sur la
figure suivante :

Figure – Exemple d’automate fini déterministe

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 33 / 103
Automates (à (nombre d’)états) finis

Dans la figure ci-dessus, les états de A sont représentés par des cercles.
Nous avons : X = {q0 , q1 , q2 , q3 }. L’ état initial q0 , est repéré par une
flèche entrante. Les états finaux sont représentés par des doubles cercles,
ainsi : Xm = {q3 }. La fonction f de transition d’états est représentée par
des arcs associés à des symboles de l’alphabet E . Dans notre exemple,
l’alphabet E correspond à l’ensemble {a, b}. Il existe une transition d’états
associée au symbole ”a” entre q0 et q1 . Cela signifie : f (q0 , a) = q1 .

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 34 / 103
Automates (à (nombre d’)états) finis

Exemple 3
Considèrons l’exemple d’automate fini déterministe de la figure suivante :

Figure – Exemple d’automate fini déterministe

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 35 / 103
Automates (à (nombre d’)états) finis
Exemple 3
La figure ci-dessus montre la structure graphique d’un automate avec ensemble
d’états X = {x0 , x1 , x2 }, alphabet E = {a, b, c, d}, état initial x0 et un ensemble
d’états finaux Xm = {x0 }. La fonction de transition est donnée par le tableau
suivant :

Dans ce tableau, par exemple, la valeur x1 à l’intersection entre la ligne x0 et la


colonne a indique que f (x0 , a) = x1 . Une case vide, comme celle à l’intersection
entre la ligne x0 et la colonne b, indique que la transition correspondante n’est
pas définie. La c-transition du noeud x2 vers lui-même est appelé une boucle.
Samuel BOWONG ( Samuel BOWONG) Chapitre 1: Langage formel et automates à états finis 36 / 103
Automates (à (nombre d’)états) finis

Exemple 3
- L’automate dans cette figure décrit le comportement d’un utilisateur d’une
base de données en ligne.
- Quand l’utilisateur n’est pas connecté à la base de donnée (état x0 ) il peut
se connecter (évènement a).
- Une fois la communication établie (état x1 ) il doit s’identifier avec ID et mot
de passe (évènement b).
- Quand il a bien été identifié (état x2 ) il peut à plusieurs reprises interroger la
base de donnée pour obtenir des informations (évènement c).
- A chaque moment l’utilisateur peut interrompre la communication
(évènement d). Il y a un seul état final x0 , pour montrer que l’utilisateur ne
dois pas être connecté à la fin d’une période de travail.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 37 / 103
Automates (à (nombre d’)états) finis

Exemple 3
L’interprétation de chaque état et transition de l’automate à états finis est
aussi montrée dans la Table suivante

Dans un automate à états finis, chaque transition est associée à un


évènement. Ainsi, les étiquettes des transitions sortantes d’un état donné x
spécifient quels évènements peuvent se produire dans cet état.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 38 / 103
Automates (à (nombre d’)états) finis
Exemple 4 : Générateur d’événements
Considérons un procédé G qui peut être représenté par l’automate de la
figure ci-dessous qui décrit une machine à trois états : ”repos”, ”occupé”
et ”panne”. Les transitions d’un état à un autre sont supposées
instantanées, spontanées et asynchrones.

Formellement, l’automate de cette figure est décrit par un quadruplet


G = (E , X , f , x0 ) avec E = {α, β, λ, γ}, X = {panne, repose, occupé},
x0 = {repos} et f (x, e)) la fonction de transition entre chaque état x ∈ X
et e ∈ E .
Samuel BOWONG ( Samuel BOWONG)
Chapitre 1: Langage formel et automates à états finis 39 / 103
Automates (à (nombre d’)états) finis

Exemple 5 : Un entrepôt contenant deux caisses au maximum.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 40 / 103
Automates (à (nombre d’)états) finis

Exemple 6 : Entrepôt

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 41 / 103
Automates (à (nombre d’)états) finis
Exemple 7 : Distributeur de friandises

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 42 / 103
Automates (à (nombre d’)états) finis
Exemple 7 : Distributeur de friandises
Cet automate fini modélise le comportement d’un distributeur automatique de
confiseries. Les différents produits disponibles sont identifiés par un numéro à
deux chiffres. L’automate fait intervenir des évènements venant des dispositifs
mécaniques de l’appareil :
- fausse piece : les capteurs ont détecté l’insertion d’une pièce dans le
monayeur, mais cette pièce ne respecte pas les conditions de poids et de
diamètre. Elle est donc rejetée immédiatement.
- pièce OK : une pièce correcte a été introduite. Sa valeur s’ajoute à la somme
disponible.
- chiffre 1 : l’utilisateur a tapé une touche du clavier et aucun chiffre n’a été
mémorisé auparavant.
- chiffre 2 : l’utilisateur a tapé une touche du clavier et un chiffre a été
mémorisé auparavant.
- livraison : une trappe a été ouverte pour faire tomber un produit.
- retour monnaie : la monnaie due à l’utilisateur (somme introduite -prix du
Samuel BOWONG ( Samuel BOWONG) Chapitre 1: Langage formel et automates à états finis 43 / 103
Automates (à (nombre d’)états) finis
Propriété d’un automate fini déterministe

Définition
Soit G = (X , E , f , x0 , Xm ) un automate à d’états finis. Un état x ∈ X est
dit :
- accessible depuis un état x ′ ∈ X si il existe un mot w ∈ E ∗ tel que
f (x ′ , w ) = x. Un état x accessible depuis l’état initial x0 est appelé
tout simplement accessible (ou réalisable) ;
- co-accessible vers un état x ′ ∈ X si il existe un mot w ∈ E ∗ tel que
f (x, w ) = x ′ . Un état x co-accessible vers un état final x ′ ∈ Xm , x est
tout simplement appelé co-accessible (ou co-réalisable) ;
- bloquant si il est accessible mais pas co-accessible ;
- mort si A(x)) = ∅, c’est à dire il n’existe aucune transition possible à
partir de l’état x.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 44 / 103
Automates (à (nombre d’)états) finis

Propriété d’un automate fini déterministe


Il faut noter que les états bloquants et morts ont différentes propriétés à
ne pas confondre. Un état mort peut ne pas être bloquant, si il est final .
Un état bloquant peut ne pas être mort..
En regardant le graphe d’un automate on peut dire qu’un état x est :
- accessible depuis un état x ′ : si il existe un chemin direct de x ′ vers x.
- co-accessible vers un état x ′ si il existe un chemin direct de x vers x ′ .
- mort si il n’y a aucune transition qui sort depuis celui-ci.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 45 / 103
Automates (à (nombre d’)états) finis

Propriété d’un automate fini déterministe


On définit les propriétés suivantes pour un automate.
Définition
Un automate à état fini est dit :
- accessible (ou réalisable) si tous ses états sont accessibles ;
- co-accessible (ou co-réalisable) si tous ses états sont co-accessibles ;
- non-bloquant si tous ses états sont non bloquants ;
- émondé s’il est accessible et co-accessible ;
- réversible si tout état accessible est aussi co-accessible vers l’état
initial.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 46 / 103
Automates (à (nombre d’)états) finis

Figure – (a) Un automate accessible, non co-accessible et bloquant ; (b) un


automate non-accessible, co-accessible et non-bloquant ; (c) un automate
émondé.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 47 / 103
Automates (à (nombre d’)états) finis

- Dans l’automate à états finis dans la figure ci-dessus (a) tous les états
sont accessibles, seuls les états x0 et x1 sont co-accessibles et x3 est
mort. C’est pourquoi cet automate et accessible, non co-accessible et
bloquant.
- Dans l’automate à états finis dans la figure (b) tous les états sont
co-accessibles mais juste x0 et x1 sont accessibles ; donc cet automate
est non-accessible, co-accessible et non-bloquant.
- Dans l’automate à états finis. de la figure (c) tous les états sont
accessibles et co-accessibles.
- Cet automate est donc émondé. Aucun des automates à états finis de
la figure ci-dessus n’est réversible. Un exemple de l’automate à états
finis réversible est donné dans la figure de l’automate de l’exemple
d’automate fini déterministe.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 48 / 103
Automates (à (nombre d’)états) finis
Automates pour la reconnaissance de langages
- Un automate peut être vu comme un procédé permettant de
reconnaı̂tre un langage.
- Que signifie reconnaı̂tre, ou accepter, une chaı̂ne ?
On généralise la fonction de transition f pour l’appliquer à une chaı̂ne
u. On a alors f : X × E ∗ → X et x ′ = f (x, u) est l’état atteint à
partir de l’état x quand la chaı̂ne u est appliquée en entrée.
Plus précisément, pour toute chaı̂ne u et tout événement e,
f (x, ue) = f (f (x, u), e)

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 49 / 103
Automates (à (nombre d’)états) finis

Définition
une chaı̂ne u est reconnue par un automate fini (E , X , f , x0 , F ) si
f (x0 , u) = x où x ∈ F .

Définition
Le langage reconnu par un automate fini (E , X , f , x0 , F ) est l’ensemble des
chaı̂nes {u : f (x0 , u) ∈ F }.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 50 / 103
Automates (à (nombre d’)états) finis

Le langage reconnu par un automate A est noté L(A).


Comment utiliser les langages et les automates en pratique ?
Un problème fondamental pour les SED est, étant donné un ensemble
d’événements, de concevoir un SED qui implémente certaines tâches,
définies par certaines séquences d’événements, dans le sens où il détecte
chacune de ces séquences d’événements.
On peut procéder en deux étapes, d’abord traduire les tâches en un
langage et ensuite construire un automate fini qui reconnaisse le langage.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 51 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 52 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 53 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 54 / 103
Automates (à (nombre d’)états) finis
Comportement d’un automate fini déterministe
Le comportement d’un automate est donné par toutes ses évolutions
possibles, caractérisé par ses calculs.
Définition
Soit un automate à états finis G = (X , E , f , x0 , Xm ), on définit calcul de
longueur k une séquence d’états et de transitions

où pour tout i = 0, . . . , k on a xj ∈ X et pour tout i = 1, . . . , k on a


xji = f (xj−1 , ei ), à savoir, l’occurence de l’évènement ei à partir de l’état xj−1
amène l’état xji .
Un tel calcul départ de l’état xj0 produit un mot w = e1 e2 . . . ek et conduit l’état
xji .

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 55 / 103
Automates (à (nombre d’)états) finis
Comportement d’un automate fini déterministe
Exemple
Un calcul possible pour l’automate dans la suivante

est le suivant :

Ce calcul, qui départ de l’état x0 , produit un mot w = abcc et conduit à


l’état x2 . Il décrit une évolution dans laquelle l’utilisateur établie une
connexion avec la base de donnée (a) et, après Ítre identifié (b), interroge
la base de donnée pour obtenir deux records (cc).
Samuel BOWONG ( Samuel BOWONG)
Chapitre 1: Langage formel et automates à états finis 56 / 103
Automates (à (nombre d’)états) finis

Langages d’un automate fini déterministe


A chaque calcul d’un automate est associé un mot de l’alphabet E . Par
conséquent, si l’on considère l’ensemble des calculs qui départent de l’état
initial, l’ensemble des mots correspondant définit un langage L ⊆ E ∗ ?.
Définition
Soit G = (X , E , f , x0 , Xm ) un automate à états finis. On dit qu’un mot
w ∈ E ∗ est :
- généré par G si f ∗ (x0 , w ) est defini, à savoir, il existe un calcul qui
produit w à partir de l’état initial ;
- accepté par G si f ∗ (x0 , w ) = x ∈ Xm , à savoir, il existe un calcul qui
produit w à partir de l’état initial et conduit à un état final.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 57 / 103
Automates (à (nombre d’)états) finis
Langages d’un automate fini déterministe
Exemple
On considère l’automate dans la figure

Figure – Exemple d’automate fini déterministe

Le mot abcc est généré parce que f ∗ (x0 , abcc) = x2 , mais il n’est pas accepté
parce que l’état x2 n’est pas un état final. Le mot ad est accepté (et donc aussi
généré) parce que f ∗ (x0 , ad) = x0 et que x0 est un état final. Enfin, le mot ac
n’est pas généré (et donc pas acceptée) parce que f ∗ (x0 , ac) n’est pas définit : à
partir de l’état initial l’occurrence de l’évènement a conduit à l’état x1 , dans
lequel BOWONG
Samuel l’évènement( Samuel
c n’est pas actif.
BOWONG)
Chapitre 1: Langage formel et automates à états finis 58 / 103
Automates (à (nombre d’)états) finis

Equivalence entre automates finis et expressions régulières


Peut-on toujours construire un automate fini pour reconnaı̂tre un langage
donné ? La réponse est ≪ oui è pour tous les langages réguliers, c.-à-d.
ceux décrits par des expressions régulières.
Théorème
(Kleene) : Si un langage est régulier, alors il peut être reconnu par un
automate fini ; réciproquement, si un langage est reconnu par un automate
fini, alors il est régulier.

Comment savoir si un langage donné peut être représenté par une


expression régulière ?

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 59 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 60 / 103
Automates (à (nombre d’)états) finis

Fusion d’états dans les automates


Problème : Construire un modèle sous forme d’automate à états d’un
SED peut devenir très lourd : explosion combinatoire du nombre d’états.
Solution : repérer les groupes d’états redondants, chaque groupe pouvant
être fusionné en un seul état, afin de réduire la taille de l’espace d’état.
Formellement : notion d’états équivalents.
Définition
Soit (E , X , f , x0 , F ) un automate fini et R ⊆ X . L’ensemble R consiste en
des états équivalents par rapport à F si pour toute paire x, y ∈ R, x ̸= y ,
et pour toute chaı̂ne u, f (x, u) ∈ F si et seulement si f (y , u) ∈ F .

Deux états peuvent être fusionnés en un seul état si, lorsqu’une chaı̂ne
appliquée à l’un des états mène à un état final, elle le fait aussi lorsqu’elle
est appliquée à l’autre état.
Samuel BOWONG ( Samuel BOWONG)
Chapitre 1: Langage formel et automates à états finis 61 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 62 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 63 / 103
Automates (à (nombre d’)états) finis
Observations au sujet de l’équivalence entre états
- Deux états x, y tels que x ∈ F et y ∈/ F ne peuvent pas être équivalents par
rapport à F Ainsi f (x, ε ∈ F alors que f (y , ε) ∈
/ F.
- Si deux états x, y sont tous deux soit dans F soit en dehors de F , il est
possible qu’ils soient équivalents par rapport à F . Si f (x, e) = f (y , e) pour
tout événement e ∈ E (excepté ε), les états x et y sont équivalents par
rapport à F car ils traversent la même séquence d’états pour toute chaı̂ne
qui leur est appliquée.
- Cette propriété est encore vraie si f (x, e) = y et f (y , e) = x pour au moins
un événement e - puisque les rôles de x et y sont échangés après e - et si
pour tous les autres événements f (x, e) = f (y , e).
- Plus généralement, soit R un ensemble d’états tels que R ⊆ F ou
R ∩ F = ∅, R regroupe des états équivalents si, pour toute paire x, y ∈ R,
f (x, e) = z ∈/ R implique f (x, e) = z , c.-à-d. toutes les transitions des états
dans R vers les états hors de R doivent être causées par le même événement
et amener au même état.
- Si
Samuel F = X , tous
BOWONG les BOWONG)
( Samuel états sont
Chapitre équivalents
1: Langage par rapport
formel et automates à états à F , ce qui n’est pas
finis 64 / 103
Automates (à (nombre d’)états) finis
Observations au sujet de l’équivalence entre états
Le processus de remplacement de plusieurs états par un seul, appelé fusion
d’états, est important en théorie des systèmes car il réduit l’espace d’états et
donc la complexité des calculs.
Étant donné un automate fini (E , X , f , x0 , F ), l’algorithme d’identification des
ensembles d’états équivalents permet de fusionner les états de chacun de ces
ensembles en un seul état et de simplifier le modèle original autant que possible.
On suppose que F ̸= X . L’idée de départ de l’algorithme est de marquer toutes
les paires d’états (x, y ) telles que x est un état final et y ne l’est pas. Les états
dans ces paires ne peuvent pas être équivalents.
Ensuite on considère chaque paire (x, y ) non marquée et on recherche s’il existe
un événement e ∈ E conduisant à une paire d’états (f (x, e), f (y , e)) qui est déjà
marquée. Si tel n’est pas le cas, et f (x, e) ̸= f (y , e), alors on crée une liste d’états
associés à (f (x, e), f (y , e)) et on place (x, y ) dans cette liste. La poursuite du
processus permet de déterminer si (f (x, e), f (y , e)) doit être marquée ; si oui alors
le marquage se propage à (x, y ) et à toutes les paires de sa liste. À la fin de la
procédure, chaque paire qui n’est pas marquée définit une classe d’équivalence.
Samuel BOWONG ( Samuel BOWONG) Chapitre 1: Langage formel et automates à états finis 65 / 103
Automates (à (nombre d’)états) finis
Algorithme pour l’identification d’états équivalents

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 66 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 67 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 68 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 69 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 70 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 71 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 72 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 73 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 74 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 75 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 76 / 103
Automates (à (nombre d’)états) finis

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 77 / 103
Automates (à (nombre d’)états) finis
Systèmes à événements discrets comme automates à états
On veut utiliser les automates comme modèles non temporisés de SED.
Notre motivation est qu’un automate fini a déjà l’avantage d’être assez
proche d’un système dynamique si l’on
• assimile X à l’espace d’états,
• convient que les entrées sont des chaı̂nes construites à partir d’un
alphabet E ,
• définit la transition d’un état x à un état x’ selon x ′ = f (x, e).
Pour se rapprocher encore d’un système dynamique, on va apporter
quelques modifications à la définition d’automate fini.
• On permet à X et E d’être dénombrables.
• On reconnait que certains événements ne peuvent pas se produire
dans certains états et on associe un ensemble d’événements possibles
à chaque état.
• On ne distingue pas d’ensemble d’états finaux.
Samuel BOWONG ( Samuel BOWONG)
Chapitre 1: Langage formel et automates à états finis 78 / 103
Automates (à (nombre d’)états) finis

Systèmes à événements discrets comme automates à états


Le modèle résultant est un automate à états modifié. L’essentiel
demeure et nous continuerons de le qualifier automate à états.
Définition
Un automate à états est un quintuplet (E , X , Γ, f , x0 ) où
E est un ensemble dénombrable d’événements,
X est un espace d’états dénombrable,
Γ(x) est un ensemble d’événements possibles ou permis, défini pour
tout x ∈ X avec Γ ⊆ E
f est une fonction de transition d’état, f : X × E → X , définie
seulement pour e ∈ Γ(x) quand l’état est x, f (x, e) n’est pas définie
pour e ∈
/ Γ(x), x0 est un état initial, x0 ∈ X ..

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 79 / 103
Automates (à (nombre d’)états) finis

Systèmes à événements discrets comme automates à états


L’état initial est essentiel dans la définition d’un SED. Cependant on est
parfois intéressé par la description d’un système où tout état peut être pris
comme point de départ. Ainsi on peut aussi définir un SED comme un
quadruplet (E , X , Γ, f ) , omettant l’état initial.
Dans le diagramme des transitions d’états, Γ(x) est représenté
implicitement en incluant seulement les arcs émanant de x correspondant
aux éléments de Γ(x).

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 80 / 103
Automates (à (nombre d’)états) finis
Modèles d’automates à états pour les systèmes de files
d’attente
Les systèmes de files d’attentes sont une classe importante de SED.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 81 / 103
Automates (à (nombre d’)états) finis
Modèles d’automates à états pour les systèmes de files
d’attente

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 82 / 103
Automates (à (nombre d’)états) finis
Modèles d’automates à états pour les systèmes de files
d’attente

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 83 / 103
Automates (à (nombre d’)états) finis
Automates à états avec sortie
On est prêts à établir un modèle pour les SED analogue à celui utilisé pour
les systèmes dynamiques à variables (d’état) continues.
Pour ce faire, on inclut dans le modèle d’automate un ensemble de sortie
Y , et une fonction de. sortie g : X × Y → Y
L’ensemble Y , comme l’ensemble des événements E , est un alphabet dans
lequel des événements sont sélectionnés pour former une séquence, ou
chaı̂ne, de sortie.
Définition
Un automate à états avec sortie est un septuplet (E , X , Γ, f , x0 , Y , g ) où
- (E , X , Γ, f , x0 ) est un automate à états,
- Y est un espace de sortie dénombrable,
- g est une fonction de sortie, g : X × E → Y définie seulement pour
e ∈ Γ(x) quand l’état est x, g (x, e) n’est pas définie pour e ∈
/ Γ(x)
Samuel BOWONG ( Samuel BOWONG)
Chapitre 1: Langage formel et automates à états finis 84 / 103
Automates (à (nombre d’)états) finis

Modélisation d’un SED par un automate à états avec sortie

L’entrée est une chaı̂ne d’événements (..., e, ...) sélectionnés dans E .


La dynamique du système est capturée par l’équation de transition d’état
x ′ = f (x, e) où x ′ est le nouvel état résultant de l’occurrence de
l’événement e. Si un événement e se produit en entrée alors que l’état et x
et e n’est pas dans l’ensemble Γ(x) l’événement est ignoré par l’automate
et l’état reste x. La sortie est une séquence dont les éléments sont
déterminés par y = g (x, e)

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 85 / 103
Automates (à (nombre d’)états) finis

Modélisation d’un SED par un automate à états avec sortie

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 86 / 103
Automates (à (nombre d’)états) finis
Modélisation d’un SED par un automate à états avec sortie

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 87 / 103
Automates (à (nombre d’)états) finis
Modélisation d’un SED par un automate à états avec sortie

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 88 / 103
Exercice (digicode)

Comportement d’un digicode comportant 3 touches A, B, C , et qui ouvre


la porte dès que l’utilisateur a tapéle code ABA.
Dessiner un automate fini décrivant le comportement du digicode,

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 89 / 103
Exercice (traversée)

Traversée d’une rivière pour un loup, une chèvre et une salade, qui
disposent d’un passeur avec une barque, avec les contraintes suivantes :
- le passeur ne peut prendre qu’un passager dans sa barque,
- pour des raisons de survie, le loup ne peut pas rester seul avec la
chèvre, et la chèvre ne peut pas rester seule avec la salade.
Dessiner un automate fini décrivant le problème de la traversée,

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 90 / 103
Exercice (barman aveugle)

Stratégie gagnante d’un barman aveugle (avec des gants de boxe) pour
retourner des verres sur un plateau et réussir à ce que les 4 verres soient
dans le même sens.
Dessiner un automate fini décrivant le problème du barman aveugle,

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 91 / 103
Exercice

1 Dessiner un automate fini acceptant les mots sur l’alphabet {a, b}


commençant par a et se terminant par a.
2 Montrer qu’il n’existe pas d’automate fini acceptant le langage
{an b p , n ≥ p}.
3 On note A et B les automates suivants :

Quel est le langage accepté par B ?

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 92 / 103
Exercice (Producteur/consommateur)

Comportement d’un couple producteur/consommateur (a) avec tampon


quelconque, ou (b) avec tampon borné.
1 Décrire le langage Lpc du producteur/consommateur avec tampon
non borné sur l’alphabet E = {a, b}, la lettre a représentant une
opération de production et la lettre b une opération de consommation.
2 Décrire des systèmes de transitions pour ce problème, d’abord en
supposant le tampon quelconque, puis en supposant le tampon borné.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 93 / 103
Exercice (asenceur)

Exemple
Le système de contrôle d’un ascenceur (pour 3 étages) est défini par :
- le contrôleur garde en mémoire l’étage courant et l’étage cible.
- en mode actif, quand l’étage cible est atteint, les portes s’ouvrent et
le contrôleur passe en mode attente.
- en mode actif, quand l’étage cible est plus élevé que l’étage courant,
le contrôleur fait s’élever l’ascenceur.
- en mode actif, quand l’étage cible est moins élevé que l’étage
courant, le contrôleur fait descendre l’ascenceur.
- en mode attente, il se peut que quelqu’un entre dans l’ascenceur et
choisisse un nouvel étage cible. L’ascenceur ferme alors les portes et
redevient actif.
- initialement, l’ascenceur est à l’étage 0 et en mode attente.

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 94 / 103
Exercice (asenceur)

Questions :
1 Proposez une machine à états modélisant le contrôle de l’ascenceur
(définition formelle et dessin).
2 Définissez et dessinez le système de transitions correspondant (en
vous limitant aux configurations accessibles depuis état initial).
3 Est-ce que les portes peuvent s’ouvrir quand l’ascenceur est actif ?

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 95 / 103
Exercice (distributeur)

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 96 / 103
Exercice (distributeur)
Cet automate fini modélise le comportement d’un distributeur automatique de confiseries. Les différents produits disponibles
sont identifiés par un numéro àdeux chiffres. L’automate fait intervenir des évènements venant des dispositifs mécaniques de
l’appareil :
- fausse piece : les capteurs ont détecté l’insertion d’une pièce dans le monayeur, mais cette pièce ne respecte pas les
conditions de poids et de diamètre. Elle est donc rejetée immédiatement.
- pièce OK : une pièce correcte a été introduite. Sa valeur s’ajoute à la somme disponible.
- chiffre 1 : l’utilisateur a tapé une touche du clavier et aucun chiffre n’a été mémorisé auparavant.
- chiffre 2 : l’utilisateur a tapé une touche du clavier et un chiffre a été mémorisé auparavant.
- livraison : une trappe a été ouverte pour faire tomber un produit.
- retour monnaie : la monnaie due à l’utilisateur (somme introduite - prix du produit) est restituée.
En vous référant à l’automate donné, répondez aux questions suivantes :
peut-on introduire une somme d’argent et acheter deux produits sans réintroduire d’argent entre les deux ?
peut-on obtenir un produit sans introduire d’argent ?
Pourquoi ya-t-il trois transitions avec chiffre 2 depuis l’état3 choix partiel ?
Pourquoi y a-t-il deux états avec le nom choix partiel ?
Cet automate est-il déterministe ? Un distributeur de friandises est-il déterministe (c’est à dire qu’une séquence donnée
d’action obtient toujours le même effet) ?
Donnez une chaı̂ne appartenant au langage de cet automate (c’est à dire la suite des étiquettes d’un chemin succès de
l’automate).
pour ne pas alourdir le graphique, on n’a pas représenté l’annulation. En appuyant sur le bouton d’annulation,
l’utilisateur renonce à acheter et la somme qu’il a introduite lui est restituée. De quels états de l’automate peut-on
annuler ? Dans quel état se trouve-t-on après annulation ?
Quelles informations importantes pour décrire le fonctionnement du distributeur n’apparaissent pas dans l’automate ?
L’automate prend-t-il en compte le cas d’un produit indisponible ?
Le distributeur a un écran permettant d’afficher un cours message. Associez les messages suivants à des états de
l’automate :
- Faites votre choix
- Introduisez + somme
- choix + chiffre 1
- choix + chiffre 1 + chiffre 2 - reste + somme
Samuel BOWONG - choix invalide
( Samuel BOWONG)
Chapitre 1: Langage formel et automates à états finis 97 / 103
Exercice (le chou, la chèvre et le loup)

Un berger a un loup, une chèvre et un chou. Il doit leur faire traverser la rivière au moyen d’une barque. Cette barque est si
petite qu’elle ne peut emporter qu’un passager (loup, chèvre ou chou) en plus du berger. La barque ne peut pas traverser sans le
berger, qui est le seul à savoir ramer. Le berger peut traverser tout seul. L’automate donné au verso décrit l’ensemble des états
possibles pour ce système. La lettre L représente le loup, B la chèvre (B pour bique), C le chou et b le berger. Chaque transition
est étiquetée par une ou deux lettres représentant les personnages qui traversent la rivière sur la barque. Dans un état, on
représente la rivière par deux signes moins. Les lettres sont placée à gauche ou à droite de ce signe pour signifier que le
personnage correspondant est sur la rive gauche ou la rive droite. L’état initial est un état ou‘ les quatre personnages sont à
gauche de la rivière. On met donc les quatre lettres à gauche du – et cela donne l’étiquette LBCb–.
1 quelles sont les étiquettes des états 8 et 11, qui ont été oubliées sur le schéma ?
2 dans cet automate qui est censé représenter l’ensemble des états possibles, on a oublié un état. Quelle est son étiquette
et comment se relie-t-il au schéma proposé ?
3 dans cet automate, les étiquettes des transitions ne précisent pas dans quel sens se fait la traversée. Par exemple, Bb
précise que la chèvre et le berger traversent, mais ne précise pas si c’est de la gauche vers la droite ou de la droite vers
la gauche. Est-ce gênant ? Aurait-il été possible de faire autrement ?
4 y a-t-il plusieurs solutions pour faire passer tout le monde de la rive gauche (état initial) à la rive droite ?
5 cet automate est-il déterministe ?
On prend maintenant en compte de nouvelles contraintes, à savoir que le loup et la chèvre ne doivent pas être laissés sans la
surveillance du berger sur une rive parce qu’alors le loup mange la chèvre. Même chose pour la chèvre et le chou.
1 quelles sont les conséquences de ces nouvelles contraintes sur l’automate ? Comment peut-on le modifier pour les
prendre en compte ?
2 donnez un chemin succès dans cet automate modifié.
3 le langage de cet automate est-il fini ?

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 98 / 103
Exercice (prison
Le plan d’un couloir d’une prison de haute sécurité :

Le couloir dessert trois cellules c1, c2 et c3. Chacune a une porte. Il y a


également une porte en bout de couloir. L’ouverture et la fermeture des portes est
commandé à distance depuis un PC de sécurité qui dispose en plus de caméras
vidéo pour les différents lieux. La fermeture d’une cellule se fait en deux temps :
l’actionnement de la serrure, puis un contrôle visuel par la vidéo que la cellule
contient bien le détenu ou qu’elle est bien vide si elle doit l’être. La logique du
mécanisme est décrite par l’automate est donné ci-dessous. Les noms d’état sont
composés avec d’abord l’état de la porte du couloir, deux points, puis les états
des trois cellules et enfin la présence ou absence d’un gardien dans le couloir. Les
états sont : f pour fermé et contrôlé, o pour ouvert, x pour fermé non contrôlé, g
pour la présence et v pour l’absence du gardien.
Samuel BOWONG ( Samuel BOWONG) Chapitre 1: Langage formel et automates à états finis 99 / 103
Exercice (prison

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 100 / 103
Exercice (prison)

1 Peut-on ouvrir une porte s’il n’y a pas de gardien dans le couloir ?
2 Peut-on ouvrir plusieurs cellules en même temps ?
3 Décrivez l’arrivée d’un nouveau détenu dans la cellule 2, en supposant
qu’elle est vide initialement. Précisez les états successifs.
4 A quoi sert l’état o : fff-v (en trois lignes) ?
5 En cas d’incendie, il faut changer les procédures de sécurité pour
évacuer au plus vite le gardien et les détenus. Comment peut-on
modifier l’automate pour prendre cela en compte ?
6 Lors de la fermeture d’une cellule, le comportement du système n’est
pas satisfaisant pour ce qui est du contrôle visuel. Expliquez pourquoi
et proposez une solution.
7 Cet automate est-il déterministe ?
8 Quel est le langage reconnu par cet automate ?

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 101 / 103
Exercice (file d’attente)
On va modéliser une file d’attente à nombre de places limité (tampon ou
buffer). Les évènements qui modifient le système sont l’arrivée d’un nouvel
objet qui occupe une place de plus (s’il y en a !) et le retrait de la file de
l’objet le plus ancien (s’il existe !).
1 Modélisez une file d’attente à deux places au moyen d’un automate
fini.
2 Modélisez une file d’attente à trois places au moyen d’un automate
fini.
3 Modélisez une file d’attente à quatre places au moyen d’un automate
fini.
4 Pourquoi n’est-il pas possible de modéliser une file d’attente à n
places, avec un n non précisé, au moyen d’un automate fini ?
5 Modélisez une file d’attente àn places avec un n non précisé au moyen
d’un schéma états-transitions.
Samuel BOWONG ( Samuel BOWONG)
Chapitre 1: Langage formel et automates à états finis 102 / 103
Exercice (carte nationale d’identité)

En France, pour obtenir une carte nationale d’identité, il faut faire une demande comportant un certain nombre de documents.
Dans tous les cas, il faut un formulaire de demande, deux photos et un justificatif de domicile. Ensuite, pour prouver son
identité, si la personne a une carte d’identité sécurisée périmée depuis moins de deux ans ou un passeport sécurisé, il faut
présenter cette carte ou ce passeport. Si la personne n’en a pas, il faut un acte de naissance de moins de trois mois. Dans le cas
d’un renouvellement de carte, il faut donner l’ancienne carte, sauf cas de perte ou de vol. Si la personne n’est pas née en France,
et si elle n’a pas un passeport sécurisé ou une carte d’identité sécurisée, il faut un certificat de nationalité. Si la demande fait
suite à une perte ou un vol, il faut une déclaration de perte ou une déclaration de vol et un timbre fiscal à25 euros. S’il s’agit
d’une première demande ou d’un renouvellement, la carte est délivrée gratuitement. On va essayer de modéliser la démarche au
moyen d’une expression régulière et d’un automate fini.
1 Donner un alphabet ou ensemble de symboles permettant de couvrir l’ensemble des documents et conditions en jeu dans
une demande.
2 Dans une chaı̂ne de symboles il y a une notion d’ordre qui n’est pas utile ici : il n’y a pas vraiment d’ordre à respecter
dans la présentation des documents à fournir. Comment va-t-on constituer des chaı̂nes pour que les différences d’ordre
ne viennent pas perturber la description et notamment que l’on ne considère pas comme différentes des solutions
comportant les mêmes documents ?
3 Donner une description des demandes recevables au moyen d’un automate fini représenté sous forme graphique (graphe).
4 Donnez toutes les chaı̂nes appartenant au langage de cet automate. Aucune justification n’est demandée.
5 Cet automate est-il déterministe ?
6 le langage de cet automate est-il fini ?

Samuel BOWONG ( Samuel BOWONG)


Chapitre 1: Langage formel et automates à états finis 103 / 103

Vous aimerez peut-être aussi