0% ont trouvé ce document utile (0 vote)
139 vues10 pages

Automates Finis

Ce document décrit les automates à états finis et les langages réguliers. Il présente la notion d'automate, les langages reconnus, les automates non déterministes, les expressions régulières et les limites des automates.

Transféré par

Sarah SH
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
139 vues10 pages

Automates Finis

Ce document décrit les automates à états finis et les langages réguliers. Il présente la notion d'automate, les langages reconnus, les automates non déterministes, les expressions régulières et les limites des automates.

Transféré par

Sarah SH
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Automates à états et langages

Notion d’automate
Langage reconnu par un automate
Automates non déterministes
Expressions régulières et automates
Limites des automates

Notion d’automate
Objectif : définir formellement (modéliser) un mécanisme qui peut prendre
une décision.
Quel type de décision ?
entrée : une séquence de symboles
sortie (réponse) : ”oui” ou ”non” (acceptation ou rejet)

Idée du fonctionnement
L’automate possède des états
Il ”lit” les symboles un à un (à partir de la gauche)
La lecture d’un symbole
* fait passer l’automate dans un autre état
* en fonction d’une ”table”
On regarde l’état atteint après lecture de tous les symboles

Un automate à états fini

symboles : b, o d(b, q1) = q2, d(b, q2) = q3


états : q1, q2, q3, q4 d(b, q3) = q4, d(b, q4) = q4
états finals : q3 d(o, q1) = q4, d(o, q2) = q2
état initial : q1 d(o, q3) = q4, d(o, q4) = q4

1
Automate - définition
Un AF est composé de
1. un alphabet de symboles reconnus A = s1, s2, ..., sn
2. un ensemble d’états Q = q1, q2, ..., qm (les ronds)
3. un état initial appartenant à Q
4. un ensemble F d’états finals inclus dans Q
5. une fonction de transition d de Q x A dans Q (les flèches)

Analyse d’une chaı̂ne

Analyse d’une chaı̂ne

2
Analyse d’une chaı̂ne

Analyse d’une chaı̂ne

3
Analyse d’une chaı̂ne

Analyse d’une chaı̂ne

4
Analyse d’une chaı̂ne

Acceptation d’une chaı̂ne


Le traitement d’une chaine de symbole u = [t1 t2 ...tk ] par un automate
consiste à faire
e := état initial ;
répéter pour i allant de 1 à k
{ e := d(e, ti ) } ;
si e appartient à F accepter u sinon rejeter u

5
Définition formelle de l’acceptation
Une chaine X = x0 x1 . . . xn est acceptée si et seulement si il existe une
séquence d’états r0 , r1 , . . . , rn telle que :
1. r0 est l’état initial
2. ri+1 = d(ri , xi ), pour i = 0, . . . n − 1
3. rn ∈ F (l’ensemble des états finals)

Langage accepté par un automate


Un vocabulaire A est un ensemble de symboles ([Link]. des lettres ou des
chiffres ou des noms ou ...)
Une chaı̂ne sur A est une suite finie de symboles de A
On note A∗ l’ensemble (en général infini) de toutes les chaı̂nes possibles sur
A
Un langage sur le vocabulaire A est un sous-ensemble de A∗
Le langage L(M ) accepté par un automate M est l’ensemble des chaı̂nes
acceptées par M

Exemple

Langage accepté

L(M ) = a, aba, ababa, abababa, . . .

Exemple - 2

6
Langage accepté
L(M) = ?

Langage régulier
On dit qu’un langage L est régulier s’il existe un automate M tel que L =
L(M ),
c-à-d un automate qui accepte les chaines de L et seulement celles-ci.

Exemles / exercices
Les langages suivants sont réguliers :

1. les chaines sur {a, b} qui commencent par aa et se terminent par bb ;


2. les chaines sur {a, b} qui se terminent par baba ;
3. les chaines sur {a, b} qui se terminent par bbab ;
4. les chaines sur{a} qui ont au plus 5 symboles ;
5. les chaines sur {a, b, c} où chaque c est précédé de deux a ;
6. les chaines sur {0, 1} qui, interprétées comme des nombres en base 2, sont
des multiples de 5 ;
7. les chaines formées de 6k + 1fois le symbole a (k entier positif quelconque).

Automates non déterministes


1) La fonction de transition est multivaluée ,
pour un état e et un symbole s il peut y avoir plusieurs états successeurs :

d(e, s) = {e1 , e2 , . . . , en }

2) L’automate peut avoir des transitions  qui mènent d’un état à un autre
sans consommer un seul symbole.
Par conséquent :
Il y a plusieurs manière d’analyser une chaine,
Si l’une d’elles conduit à un état final, la chaine est acceptée.

7
Exemple

Fonctionnement d’un AFND


Une description instantannée d’un automate est une paire
(<état>, <chaine restant à analyser>)
On définit ensuite la transition d’une description à une autre par les règles
suivantes :

(e, ax) → (f, x) si f ∈ d(e, a)

(e, x) → (f, x) si f ∈ d(e, )

Acceptation dans un AFND


Une chaine w est acceptée s’il existe une séquence de descriptions

s0 = (q0 , w) → s1 → s2 . . . → sf = (qf , <vide>)

où qf est un état final.


Autrement dit : s’il y a un moyen d’atteindre un état final en lisant toute la
chaı̂ne d’entrée.

Exemple
Automate non déterministe pour reconnaı̂tre les chaı̂nes de a et b se termi-
nant par bbab

8
Exemple : acceptation de babbab

s0 = (q1, babbab) → (q1, abbab) → (q1, bbab) → (q2, bab)


→ (q3, ab)| − (q4, b) → (q5, <vide>) accepte

Les non déterministes ne sont pas si forts


On peut toujours trouver un AFD équivalent à un AFND donné
Exemple

Construction d’un AFD équivalent à un AFND (I)


1. Construire un automate non déterministe sans transitions 
a) Ajouter des transitions pour remplacer toutes les chaines de 

b) Rendre final tout état qui atteint un final par des 


c) Eliminer les transitions 
d) Eliminer les états atteignable uniquement par des transitions 

Exemple

9
Construction (II)
Etats
Les états de l’automate déterministe sont des ensembles d’états de l’automate
non déterministe.
Si l’ensemble contient un état final il est lui-même final.
Transitions
S = s1 , . . . , sk un état de l’AD
a un symbole
d(S, a) = l’ensemble des états de l’AFND atteignable avec le symbole a
depuis l’un des si

Exemple

10

Vous aimerez peut-être aussi