Vous êtes sur la page 1sur 11

UNIVERSITE DE BLIDA 1 Master 2 – Automatique

et Informatique Industrielle
Faculté de Technologie
Département d’Electronique Module : Systèmes à
Evénements Discrets
Responsable du module : Mme AIT ABDESSLAM S3 -AU : 17/18

Chapitre II Modélisation des SED


II.1 Langage et Machines à états finis

II.1.1 Concepts fondamentaux de la théorie des automates

a) Alphabet : un alphabet est un ensemble quelconque. Ses éléments sont appelés lettres ou symboles. Les lettres
n’ont pas de propriétés particulières. On demande seulement de savoir tester si deux lettres sont égales ou différentes.

Parmi les exemples d'alphabets, il y a bien sûr l’alphabet latin, et tous les alphabets des langues naturelles. Il y a aussi
l’alphabet binaire, composé des symboles 0 et 1, l’alphabet hexadécimal, l’alphabet des acides aminés, etc. En
informatique, on rencontre l’alphabet des lexèmes, c’est-à-dire des unités syntaxiques résultant de l’analyse lexicale
d’un programme.

b) Mots ou chaînes : un mot ou une chaîne sur un alphabet A est une suite finie d'éléments de A. On note :

ou

L'entier n est la longueur du mot. Il existe un seul mot de longueur 0, appelé le mot vide, et noté souvent ε. Le produit
de concaténation de deux mots

est le mot :

obtenu par juxtaposition des deux mots. Le produit de concaténation est associatif, le mot vide est l'élément neutre
pour cette opération, ce qui fait de l'ensemble des mots sur l'alphabet A un monoïde (En mathématiques, un monoïde
est une des structures algébriques utilisées en algèbre générale. C'est un ensemble muni d'une loi de composition
interne associative et d'un élément neutre). Ce monoïde est libre, et est noté A*.

c) Langage formel : Un langage formel sur un alphabet A est un ensemble de mots sur A, donc un sous-ensemble
de A* . Les opérations ensemblistes (union, intersection, complément) s'étendent bien entendu aux langages.

d) Objectifs

 La théorie des automates est l'étude des machines abstraites qui permettent de formaliser les méthodes de calcul.
L'objet traité par un automate est un mot d'un langage. Pour arriver à la généralité souhaitée, on convertit un «
problème » en un langage, et la résolution du problème, en l'analyse d'un élément de ce langage.

1
 On représente chaque instance d'un « problème » par un mot. Savoir si l'instance du problème a une solution se
ramène à tester si ce mot appartient au langage des mots représentant les instances de ce problème et qui ont une
solution. Un automate qui résout le problème prend en entrée un mot et décide s'il est accepté ou non.
 Par exemple, le problème de savoir si un entier N est premier (test de primalité) peut se traduire comme suit : on
représente tous les entiers naturels par des chaînes binaires (écriture en base 2). Dans ce langage, les mots
représentant des nombres premiers forment un sous-ensemble. Le problème du test de primalité consiste alors à
savoir si la chaîne binaire représentant un nombre N appartient à ce sous-ensemble ou non. Un automate approprié
prend en entrée une chaîne binaire et l'accepte précisément lorsqu'elle représente un nombre premier.

e) Caractéristiques communes des automates

Il existe de très nombreux modèles d'automates. Les caractéristiques communes aux automates sont les suivantes (avec
des variantes possibles) :

 Un automate prend en entrée des données discrètes (même si certains automates, appelés automates
temporisés, ont des paramètres qui peuvent être des nombres réels). Ces entrées sont généralement des mots
finis sur un alphabet fini, mais ce sont aussi des mots infinis, des arbres, des graphes, ou des structures encore
plus compliquées.
 Un automate possède un nombre fini de configurations internes, appelées états. Là aussi, on peut considérer
des automates ayant un nombre infini d'états : par exemple, dans la théorie générale des automates, tout
langage formel possède un automate minimal unique, qui n'est fini que si le langage est rationnel.
 Un automate peut disposer, par ailleurs, d'une mémoire auxiliaire externe, structurée d'une certaine façon selon
le type d'automate. Un automate fini n'a pas de mémoire auxiliaire, un automate à pile a une mémoire en pile ;
il existe des automates à mémoire en structure de file, des automates à plusieurs piles, des automates à piles de
pile, etc. Les machines de Turing ont une mémoire auxiliaire en forme de bande infinie sur laquelle elles peuvent
se déplacer, lire et écrire.
 Un automate évolue selon des règles. Ces règles sont en nombre fini. Chaque règle décrit, en fonction des
symboles d'entrée, de l'état, et d'une information sur la mémoire auxiliaire, l'évolution de l'automate. Cette
évolution peut être déterministe ou non. Elle est déterministe si une seule règle est applicable dans une
configuration donnée, elle est non déterministe sinon.
 Un automate possède un certain nombre de configurations d'acceptation. Si l'automate se trouve dans une telle
configuration, la donnée lue est acceptée. Dans un automate fini, ces configurations sont des états distingués,
dans un automate à pile, on peut accepter si la pile est vide, dans une machine de Turing, on accepte si l'état est
acceptant.

II.1.2 Automate à états finis

a) Définition

 Un automate fini est une construction abstraite, susceptible d'être dans un nombre fini d'états, un seul état à la fois
; l'état où il se trouve est appelé l'« état courant ». Le passage d'un état à un autre est dirigé par un événement ou
une condition ; ce passage est appelé une « transition ». Un automate particulier est défini par la liste de ses états et
par les conditions des transitions. La machine abstraite est issue des travaux de A. Turing.
 Les automates finis peuvent modéliser un grand nombre de problèmes, parmi lesquels la conception assistée par
ordinateur pour l'électronique, la conception de protocoles de communication, l'analyse syntaxique de langages et
autres applications d’ingénierie.

2
 Dans la recherche en biologie et en intelligence artificielle, les automates finis ou des hiérarchies de telles machines
ont été employés pour décrire des systèmes neurologiques. En linguistique, ils sont utilisés pour décrire les parties
simples de grammaires de langues naturelles.

b) Eléments de l’automate

 Un ensemble fni d'états possibles


 Un ensemble fni de symboles en entrées
 Une fonction de transition entre états

II.1.3 Représentations des automates à états finis

a) Diagrammes de transition : représentation « graphique ». Le graphe est orienté et étiqueté. Il comprend :

 Nœuds : états de l'automate étiquetés par les noms des états. L’état final : double cercle
 Arcs orientés : transitions de l'automate étiquetés par les symboles. L’état initial est marqué par un arc
sans nœud d'origine

Figure II.1 : Diagramme de transition

 Pour la lisibilité, lorsque deux arcs de même orientation sont possibles entre deux nœuds, ils sont fusionnés
(disjonction)

 Un arc peut « boucler » un état sur lui-même

 Des transitions peuvent partir de l'état final

 Les transitions correspondent à la concaténation. On « suit » les arcs pour voir quel langage est accepté :

3
 Le langage n'est pas forcément fini :

 Peuvent être mis intuitivement (formellement aussi) en correspondance avec des expressions régulières

b) Tables de transition
 Équivalente à la représentation par diagramme de transitions
 États en lignes, symboles en colonnes
- Ligne de l'état initial marqué par une flèche →
- Ligne de l'état final marqué par une étoile *
 Contenu décrit les transitions depuis un état / symbole

Figure II.2 : Diagramme de transition et sa table de transition correspondante

4
c) Notations formelles
 Notations pour un automate « déterministe » (DFA)
 Un ensemble fini d'états noté : Q = {q1, q2, q3...}
 Un ensemble fini de symboles (alphabet) noté : S = {a, b, c, d...}
 Une fonction de transition qui prend en paramètre un état et un symbole et qui renvoie un état notée : δ(qi,
a) = qj ; (« signature » δ: Q × S → Q)
 Un état initial noté : q0 ∈ Q
 Un ensemble d'états finaux noté : F ⊆ Q (éventuellement vide)

 Un automate à états finis est ainsi défini comme le quintuplé : A = (Q, S, d, q0, F)
 Cette définition est équivalente aux diagrammes et tables de transition, elle repose sur la définition de la fonction
de transition δ, souvent définie par extension (en listant les cas possibles). La fonction peut renvoyer Ø (par ex. δ
(q1, d) = Ø)

Théorème de Kleene : par définition, le langage reconnu par un automate à états finis est régulier (ou rationnel).

d) Exemples

Un premier exemple : un portillon

Un exemple très simple d'un mécanisme que l'on peut modéliser par un automate fini est un Portillon d'accès. Un
portillon, utilisé dans certains métros ou dans d'autres établissements à accès contrôlés est une barrière avec trois bras
rotatifs à hauteur de la taille. Au début, les bras sont verrouillés et bloquent l'entrée, et empêchent les usagers de
passer. L'introduction d'une pièce de monnaie ou d'un jeton dans une fente du portillon (ou la présentation d'un ticket
ou d'une carte) débloque les bras et permet le passage d'un et un seul usager à la fois. Une fois l'usager entré, les bras
sont à nouveaux bloqués jusqu'à ce qu'un nouveau jeton soit inséré.

Figure II.3 : Portillon et son diagramme d'état

Un portillon, vu comme un automate fini, a deux états : verrouillé (« locked » en anglais) et déverrouillé (« unlocked » en
anglais) . Deux « entrées » peuvent modifier l'état : la première si l'on insère un jeton dans la fente (entrée jeton) et la
deuxième si l'on pousse le bras (entrée pousser). Dans l'état verrouillé, l'action de pousser n'a aucun effet : quel que soit
le nombre de fois que l'on pousse, l'automate reste verrouillé. Si l'on insère un jeton, c'est-à-dire si l'on effectue une «
entrée » jeton, on passe de l'état verrouillé à l'état déverrouillé. Dans l'état déverrouillé, ajouter des jetons
supplémentaires n'a pas d'effet, et ne change pas l'état. Mais dès qu'un usager tourne le bras du portillon, donc fournit
un pousser, la machine retourne à l'état verrouillé.

5
L'automate d'un portillon peut être représenté par une table de transition d'états qui montre, pour chaque état, le
nouvel état et la sortie (l'action) pour une entrée donnée.

Figure II.4 : Table de transition d’états du portillon

On peut aussi représenter l'automate par un graphe orienté appelé un diagramme états-transitions, comme donné ci-
dessus. Chaque état est représenté par un sommet (visualisé par un cercle). Les arcs (représentés par des flèches)
montrent les transitions d'un état à un autre. Chaque flèche porte une entrée qui déclenche la transition. Les données
qui ne provoquent pas de changement d'état, comme un jeton pour l'état déverrouillé, sont représentées par des arcs
circulaires (des boucles) qui tournent autour de l’état. La flèche qui entre dans l'état verrouillé depuis le point noir sert à
indiquer que cet état est l'état initial, au début de la modélisation.

Un second exemple : le loup, la chèvre et le chou

L'exemple que voici illustre les possibilités qui s'offrent à un passeur qui doit faire traverser, d'une rive à l'autre, un
loup, une chèvre et un chou (c'est une variante des nombreux problèmes de passage de rivière). Sa barque ne lui permet
que d'emporter un seul des trois objets à la fois et, bien entendu, il ne peut laisser ensemble loup et chèvre ni chèvre et
chou. Dans le diagramme ci-contre, un état représente ce que le passeur a déjà pu transporter sur l’autre rive (on a noté
le chou par « S ») : au début rien, à la fin tout. Sur les flèches les objets transportés (et lui-même). Une des deux
séquences de transport les plus courtes est CPLCSPC, l'autre est CPSCLPC.

Figure II.5 : Diagramme de transition l’exemple loup, chèvre et chou

II.1.4 Concepts et terminologie

Etat : un état est la description de la configuration d'un système en attente d'exécuter une transition. Transition :une
transition est un ensemble d'actions à exécuter lorsqu'une condition est remplie ou lorsqu'un événement est reçu. Par
exemple, une chaîne audio peut être dans un état « radio » et, quand elle reçoit un stimulus du genre « suivant », passe
6
à la station radio suivante. Si le système est dans l'état « CD » et reçoit le stimulus « suivant », il passe à la piste suivante
du CD en cours. Les mêmes stimuli peuvent donc déclencher des actions différentes, si l'état courant n'est pas le même.

Dans certaines représentations de machines finies, il est possible d'associer des actions à un état :

 action d'entrée : réalisée lorsque l'on « entre » dans l'état,


 action de sortie : réalisée lorsque l’on « quitte » l'état.
 action de transition : réalisée lors d'une transition

II.1.5 Classification

Les automates finis peuvent être classés principalement en deux catégories, les accepteurs et les transducteurs. Les
accepteurs analysent la structure de la donnée fournie, et l'acceptent si elle est conforme à la spécification décrite par
l'automate. Les transducteurs au contraire traduisent une chaîne de symboles en une autre, là encore selon l'algorithme
codé dans l'automate. Dans certains cas, on peut rencontrer des variantes appelées classificateurs et séquenceur.

 États d'acceptation, finaux, ou terminaux

Un état d'acceptation (aussi appelé état acceptant, final ou terminal) est un état dans lequel la machine déclare que la
chaîne d'entrée traitée jusqu'alors appartient au langage qu'elle reconnaît. Graphiquement les états d'acceptation sont
fréquemment représentés par des cercles doublés. Une autre façon, symétrique à celle adoptée pour l'état initial,
consiste à faire sortir une flèche « pointant vers nulle part » d'un tel état.

L'état initial peut aussi être un état final ; dans ce cas, l'automate accepte la chaîne vide. Si l'état initial n'est pas un état
d'acceptation, et s'il n'existe pas d'arc vers un état final, l'automate n'accepte aucun mot.

Les transducteurs finis génèrent en sortie des mots en fonction d'un mot d'entrée donné et d'actions associées aux
états. Ils sont utilisés par exemple dans des applications de contrôle et dans le domaine de la linguistique informatique.
On distingue deux types de transducteurs, les machines de Moore et les machines de Mealy.

Figure II.6 : Représentation d'un automate fini qui


détermine si une suite binaire contient un nombre pair
de 0. L'état S1 est final. Figure II.7 : Automate transducteur : modèle de
Moore.

II.1.6 Types d’automates

Une distinction supplémentaire importante est celle entre automates finis déterministes et non déterministes. Dans un
automate déterministe, chaque état possède au plus une transition pour chaque symbole d'entrée (et même

7
exactement une dans le cas où l'automate est complet). Dans un automate non déterministe, un symbole d'entrée peut
étiqueter une, plusieurs ou aucune transition pour un état donné.

Cette distinction est importante en pratique, mais moins en théorie parce qu'il existe un algorithme (la construction par
sous-ensembles) qui permet de transformer un automate fini non déterministe en un automate fini déterministe avec la
même fonctionnalité. Toutefois, et c'est là un biais qui peut entraver l'efficacité, l'algorithme de construction par sous-
ensembles peut produire un automate dont la taille est exponentielle par rapport à la taille de l'automate de départ.

Notation :

 Automates à états finis FSA : Finite State Automata


 Automates à états finis déterministes DFA : Determinist Finite state Automata
 Automates à états finis non-déterministes NFA : Non-determinist Finite state Automata
 Automates à états fnis non-déterministes avec possiblité de transitions ε (mot vide) ε-NFA : Non-determinist
Finite state Automata with ε transitions

Tous peuvent être représentés à l'aide des diagrammes de transition, tables de transition, notations formelles.

a) Déterminisme : requiert que l'automate soit dans un état unique (« déterminé ») après avoir lu n symboles
b) Non-déterminisme : l'automate peut-être dans plusieurs états, « simultanément » après avoir lu n symboles

Attention : un automate non-déterministe n'implique pas que l'on ne « sache » pas dans quels états il est (au contraire).

- Particulièrement utile lorsque l'on ne sait pas « à l'avance » quel état final l'automate atteindra (hypothèses)
- Facilité de représentation / programmation

Exp : GPS : une voiture se dirige vers Paris, mais on ne connaît pas la destination finale (Orléans, Strasbourg)

Prédiction SMS : un utilisateur tape le début d'un mot, mais plusieurs hypothèses sont possibles pour le mot qu'il veut
écrire

c) Équivalence DFA / NFA / e-NFA


 Tout DFA peut être considéré comme un NFA
 Tout NFA peut être considéré comme un ε-NFA

II.1.7 Optimisation

L'optimisation d'un automate fini signifie ici la recherche d'un automate fini déterministe avec le moins d'états réalisant
la même fonction. L'algorithme le plus rapide est l'algorithme de Hopcroft datant de 1971. D'autres techniques sont
l'algorithme de Moore et un algorithme de Brzozowski. Les automates finis acycliques, qui reconnaissent des ensembles
finis de mots comme des dictionnaires peuvent être minimisés en temps linéaire.

II.1.7.1 Minimisation d'un automate fini déterministe

a) États accessibles

On considère un automate fini déterministe complet

𝐴 = (𝑄, 𝑖, 𝑇)

8
sur un alphabet A. Ici Q est l'ensemble des états, i est l'état initial, T est l'ensemble des états terminaux. La fonction de
transition est notée par un simple point. Un état q est accessible s'il existe un mot w tel que :

𝑞 = 𝑖. 𝑤

il est inaccessible sinon. Les états inaccessibles peuvent être supprimés sans modifier le langage reconnu par l'automate,
et l'automate minimal ne possède que des états accessibles. Un automate est accessible si tous ses états sont
accessibles.

Les états accessibles d'un automate peuvent être calculés au moyen d'un parcours du graphe qui représente l'automate.
Ce sont les états qui sont atteints par un chemin depuis l'état initial.

b) États indistinguables

Deux états p et q sont indistinguables ou inséparables si tout mot w reconnu par A à partir de p est aussi reconnu à
partir de q et réciproquement, formellement si pour tout mot w :

𝒑. 𝒘 ∈ 𝑻 ⇔ 𝒒. 𝒘 ∈ 𝑻

c) Critère de minimalité — Un automate fini déterministe complet et accessible est minimal si et seulement ses
états sont deux-à-deux séparables.

II.1.7.2 L'algorithme de minimisation (Algorithme de Moore)

Soit M un automate déterministe reconnaissant L. On définit donc sur les états de M une relation d'équivalence,
l'indistingabilité en disant que :

Donc, qi et qj sont distingables s'il existe z tel que des deux états δ(qi, z) et δ(qj, z), l'un est terminal et pas l'autre.
On peut définir la distingabilité de manière récursive :
Les états qi et qj sont distingables
- si l'un est terminal et pas l'autre
ou
- s'il existe une lettre a telle que δ(qi, a) et δ(qj, a) sont distingables.

Les états indistingables sont ceux qui fusionnnent en un unique état de l'automate minimal ML
On construit donc les paires d'états dinstingables à partir des états terminaux et non terminaux :
Au départ, les paires {terminal, non terminal} sont marquées D. Les paires marquées D sont placées dans un tas (ou une
file). On dépile la première paire. S'il existe une lettre a et une paire d'états non encore marquée qui devient distingable
par a, on marque cette paire et on l'empile.
On itère jusqu'à ce que la pile soit vide. Les paires marquées sont exactement les paires distingables.
Cet algorithme est celui de Moore. La complexité de l'algorithme de Moore est O(kn), où k est le cardinal de l'alphabet
et n le nombre d'états de M. On peut descendre à une complexité en O(kn log n) en gérant plus astucieusement
l'examen des transitions.

9
II.1.8 Implémentation

a) Applications matérielles : En électronique numérique, un automate fini peut être construit comme circuit logique
programmable, ou un automate programmable industriel, avec des fonctions logiques réalisées par bascules ou relais.
Une implémentation matérielle demande en général un registre pour stocker les variables d'état, un circuit de logique
combinatoire qui détermine les transitions d'états, et un deuxième bloc de logique combinatoire qui détermine les sorties
de l'automate.

b) Applications logicielles : Les concepts suivants sont fréquemment employés dans la construction d'applications
utilisant des automates finis :
 Programmation fondée sur des automates
 Automate fini dirigé par événements
 Automate fini virtuel
Les automates finis sont souvent utilisés au début du processus de compilation dans les compilateurs de langages de
programmation.
Une telle entité peut comporter plusieurs automates finis, qui implémentent l'analyse lexicale. Partant d'une séquence de
caractères, un analyseur lexical construit une suite de lexèmes, tels que les mots réservés, les identificateurs, les littéraux
; à partir de cette suite, l'analyseur syntaxique construit l'arbre syntaxique. L'analyseur lexical et l'analyseur syntaxique
gèrent la partie régulière et algébrique de la grammaire d'un langage de programmation.

10
Bibliographie

[1] M. Delosme, Systèmes dynamiques à événements discrets https://www.ibisc.univ-


evry.fr/~delosme/M1_SED/cours/Chapitre1.pdf
[2] H. Harrouche, mémoire de Magister, Synthèse des systèmes basée sur les réseaux de Pétri , 2012,
www.ummto.dz/IMG/pdf/memoire_PDF-2.pdf
[3] K.Godary, cours "Automatismes et SED ", Polytech' Montpellier, www.polytech.univ-
montp2.fr/~karen.godary/Info_Indus/.../CoursRdP_1_Intro.pdf
[4] J. Malenfant, Cours 4 Modélisation du comportement des systèmes autonomiques, université Pierre et
Marie Curie, 2014-2015
[5]G. Cohen, cours Théorie algébrique des systèmes à événements discrets, Centre Automatique et Systèmes,
Ecole des Mines de Paris, Fontainebleau & INRIA, Rocquencourt, 1995
[6] D. Nouvel , cours « Automates à états finis », université François Rabelais, Tours
[7] F. Lemieux, cours « Théorie des langages et des automates », Département d’informatique et de
mathématique, Université du Québec à Chicoutimi.

11