Académique Documents
Professionnel Documents
Culture Documents
deterministe
2 W.SAADI
Introduction
Une première famille de langages est introduite, la famille des
langages rationnels (réguliers). Cette famille contient en
particulier tous les langages finis, mais également de nombreux
langages infinis
infinis. La caractéristique de tous ces langages est la
possibilité de les décrire par des formules (on dit aussi motifs,
en anglais patterns) très simples. L’utilisation de ces formules,
connues sous le nom d’expressions régulières (rationnelles),
s’est imposée sous de multiples formes comme la « bonne »
manière de décrire des motifs représentant des langages.
3 W.SAADI
Grammaire (rappel)
Les grammaires sont des systèmes de génération de
langages. Elles représentent un moyen qui permet de
décrire un langage d’une manière inductive. Elles
montrent comment les mots du langage sont
construits.
4 W.SAADI
Grammaire régulière
On rappelle qu’une grammaire G = (V, N, S, R) est régulière:
5 W.SAADI
Exemple de grammaire régulière à droite
V1 = { a, b }
N1 = { S1, U1 }
U1 → bU1 | b }
6 W.SAADI
Exemple de grammaire régulière à gauche
V2 = { a, b }
N2 = { S2, U2 }
U2 → U2 a | a }
7 W.SAADI
Langage régulier ou rationnel (définition 1)
8 W.SAADI
Expression régulière (1)
Une expression régulière est, littéralement, une
présentation formelle d’un langage régulier : elle
définit la forme (ou le motif) qui sert de modèle aux
mots du langage en question.
9 W.SAADI
Expression régulière (1)
Soit Σ un alphabet quelconque ne contenant pas les
symboles {∗,+, |, ., (, )}. Une expression régulière est un
mot défini sur l’alphabet Σ ∪ {∗,+,
∗ |, ., (, )} permettant de
représenter un langage régulier de la façon suivante :
∅ est une expression régulière qui dénote (représente) le
langage vide
L’expression régulière ε dénote le langage L = {ε}
L’expression régulière a (a ∈ Σ) dénote le langage L = {a}
10 W.SAADI
Expression régulière (2)
Si r est une expression régulière qui dénote L alors (r)∗
(respectivement (r)+) est l’expression régulière qui dénote L∗
(respectivement L+)
Si r est une expression régulière dénotant L et s une
expression régulière dénotant L′ alors (r)|(s) est une
expression régulière dénotant L + L′
L’expression régulière (r).(s) (ou simplement (r)(s)) dénote le
langage L.L′
11 W.SAADI
Exemple 1
a∗ : dénote le langage régulier an (n ≥ 0) ;
12 W.SAADI
Priorité des operateurs
Afin d’alléger les expressions régulières, on introduit les priorités
associative a gauche.
13 W.SAADI
Exemple 2
(a) a| ((b)*(c)) equivalent à : a | b*c
(0+(1(0)*)).
14 W.SAADI
Expressions régulières ambiguës
Une expression régulière est dite ambiguë s’il existe au
moins un mot pouvant être mis en correspondance avec
l’expression régulière de plusieurs façons. Cette définition
fait appel à la correspondance entre un mot et une
expression régulière. Il s’agit, en fait, de l’opération qui
permet de dire si le mot appartient au langage décrit par
l’expression régulière.
15 W.SAADI
Exemple 3
prenons l’expression régulière a∗b∗. Soit à décider si le mot
aab est décrit ou non par cette expression. On peut
écrire :
16 W.SAADI
Exemple 4
Considérons l’expression (a|b)∗a(a|b)∗ décrivant tous les
mots sur {a, b} contenant le facteur a. Soit à faire
correspondre le mot aab, on a :
17 W.SAADI
Propriétés sur les expressions régulières
Si p, q et r sont trois expressions régulières alors :
18 W.SAADI
Langage régulier ou rationnel (définition 2)
Un langage est dit régulier si et seulement s’il est dénoté
(représenté) par une expression régulière.
La correspondance entre expression et langage n’est pas
biunivoque : chaque expression dénote un unique langage,
mais à un langage donné peuvent correspondre plusieurs
expressions différentes.
Ainsi, les deux expressions suivantes : a*(a*ba*ba*)* et
a*(ba*ba*)* sont deux variantes notationnelles du même
langage sur l’alphabet {a, b}.
19 W.SAADI
Expressions équivalentes
20 W.SAADI
Exercice
Soit A={a1,a2,….ap} un vocabulaire.
21 W.SAADI
Solution
AA est le langage des mots de longueur 2.
(ε+A) (ε+A) est le langage des mots de longueur au plus 2.
(AA)* est le langage des mots de longueur paire.
A* a A* est le langage des mots ayant au moins une
occurrence de a.
A*abA* est le langage des mots ayant au moins une
occurrence du facteur ab.
A* a A* b A* est le langage des mots ayant au moins une
occurrence de a puis ensuite une occurrence d’un b.
(ab)* est le langage des mots commençant par a, finissant par
b et n’ayant pas deux a ou deux b consécutifs.
22 W.SAADI
Reconnaisseurs de langages (1)
24 W.SAADI
Automate
Les automates (machines) sont des modèles mathématiques
qui prennent en entrée une chaîne de symboles et qui
effectuent un algorithme de reconnaissance de la chaîne. Si
l'algorithme se termine dans certaines conditions, l'automate
est dit accepter la chaîne correspondante. Le langage
reconnu par un automate est l'ensemble des chaînes qu'il
accepte.
26 W.SAADI
Définition formelle
Un automate à états finis est une machine abstraite définie
par le quintuplés A=(Σ ,Q, q0, F, δ) tel que :
28 W.SAADI
Représentation d’un AEF
Il existe trois principales représentations pour les AEF, à
savoir :
29 W.SAADI
Représentation sous forme de relation (1)
La fonction δ est vue comme une relation binaire entre
deux ensembles, le premier contient toutes les
combinaisons possibles de couples (état, lettre de
l’alphabet), le second ensemble contient les états de
l’automate, les flèches reliant des éléments du premier
ensemble aux éléments du deuxième représentent les
transitions. Notons que l’état initial et les états finaux
doivent être définis sous forme d’ensembles.
30 W.SAADI
Représentation sous forme de relation (2)
La relation δ dans Q×Σ×Q, appelée relation de transition
(autrement dit, δ est un ensemble de triplets de la forme
(qi ,a, qj) où qi et qj sont des états de Q et a est un
symbole du vocabulaire terminal Σ). Intuitivement, un
triplet (qi ,a, qj) ∈ δ signifie que si l’automate se trouve
dans l’état qi et le mot à analyser commence par le
symbole a, alors l’automate peut aller dans l’état qj .
31 W.SAADI
Représentation graphique
On représente généralement un automate fini par un
graphe orienté dont les arcs sont étiquetés. Chaque
état de l’automate est représenté par un sommet du
graphe (un cercle). A chaque transition (qi ,a, qj) ∈ δ
on associe un arc du sommet qi vers le sommet qj
étiqueté par a.
32 W.SAADI
État initial et état finaux
Les sommets du graphe correspondant à des états
initiaux de l’automate sont repérés par une pointe de
flèche. Les sommets du graphe correspondant à des
états finaux sont entourés de deux cercles.
33 W.SAADI
Exemple 5
34 W.SAADI
Représentation matricielle (sous forme de
table) (1)
La table possède autant de lignes qu’il y a d’états dans
l’automate de telle sorte que chaque ligne correspond à un
état. Les colonnes correspondent aux différents symboles de
l’alphabet.
36 W.SAADI
Exemple 6
Soit le langage (fini) L={aa, ab, abb, acba, accb}.
38 W.SAADI
Représentation matricielle correspondante
39 W.SAADI
Fonctionnement d’un AEF
De façon informelle, un mot w est accepté par un AEF s’il
existe un chemin d’un sommet (état) initial vers un sommet
(état) final tel sorte que la concaténation des étiquettes des
arcs empruntés par le chemin soit égale à w.
40 W.SAADI
Configuration
La configuration de l’AEF A, à un certain instant, est
donnée par l’état courant de l’AEF et du mot qui reste à
lire (état courant, mot qui reste à lire).
La configuration initiale est (q0, w) où q0 est l’état initial de
l’AEF et w le mot soumis à A (à reconnaître).
La configuration finale est donnée par (qf , ε) où qf est un
état final et le mot vide indique qu’il ne reste rien à lire (le
mot appartient au langage).
41 W.SAADI
Définition d’une dérivation directe
On dit qu’une configuration δ(q1, aw) dérive
directement la configuration (q2, w) si et seulement si
(q1, a) = q2 où δ est la fonction de transition, a∈Σ et
w ∈Σ*.
42 W.SAADI
Définition d’une dérivation indirecte
On dit qu’une configuration (q, w1) dérive indirectement
une autre configuration (p,w2), si et seulement s’il existe
0,1 ou plusieurs dérivations directes qui, à partir de (q,w1),
mènent à la configuration (p, w2).
43 W.SAADI
Acceptation d’un mot par un automate
Un mot est accepté par un AEF si, après avoir lu tout le mot,
l’automate se trouve dans un état final (qf ∈ F). En d’autres
termes, un mot est rejeté par un AEF dans deux cas :
configurations intermédiaires .
45 W.SAADI
Langage reconnu par un AEF (Définition
formelle)
46 W.SAADI
Langage régulier ou rationnel (définition 3)
47 W.SAADI
Remarque
Un AEF A est donc un séparateur (ou classifieur) des
mots de Σ∗ en deux parties :
48 W.SAADI
Équivalence des AEF
L(A1) = L(A2)
49 W.SAADI
AEF déterministe (AFD)
Un AEF A= (Σ ,Q, q0, F, δ) est dit déterministe si et
seulement si la fonction de transition associe à chaque
couple (q, a) au plus un état p, on note :
avec a∈ Σ et p, q ∈ Q.
50 W.SAADI
Exemple 7
L’ AEF déterministe (AFD) suivant reconnait le langage
des mots qui finissent par b, défini sur l’alphabet Σ ={a, b}
51 W.SAADI
AEF déterministe complet
Un automate déterministe A=(Σ ,Q, q0, F, δ) est complet si
et seulement si à chaque paire (q, a)∈ Q×Σ, la fonction
associe exactement un état.
Exemple :
52 W.SAADI
AEF Non déterministe (AFN)
Les automates finis non déterministes sont des
automates finis où l'on permet :
53 W.SAADI
Exemple 8
L’AFN suivant reconnait le langage des mots qui
finissent par 01, défini sur l’alphabet Σ ={0, 1}
54 W.SAADI
Equivalence entre AFI et AFD (1)
Pour déterminer si un mot u de longueur n est accepté, un
AFD effectue exactement n transitions, tandis qu’un AFN
en effectue de l’ordre de 2n. L’exécution d’un AFD est donc
nettement plus efficace que celle d’un AFN.
56 W.SAADI
Suite…
Ce théorème conduit a dire que si l’on veut construire
l’automate à états fini déterministe qui reconnaît les
mots d’un certain langage, alors on peut commencer
par trouver un AEF non déterministe (ce qui est plus
facile). Il suffit de le transformer, après, pour obtenir un
automate à états finis déterministe.
57 W.SAADI
Remarque
A noter que la seul différence entre un AFD (automate
d’états finis non déterministe ) et un AFN (automate
d’états finis non déterministe) est dans le type
retourné par la fonction δ :
Un ensemble d’états dans le cas d’un AFN.
Un seul état dans le cas d’un AFD.
58 W.SAADI
Déterminisation d’un automate à états fini
59 W.SAADI
Algorithme : Déterminiser un AEF sans les
ε-transitions
Principe : considérer des ensembles d’états plutôt que des
états (dans l’algorithme suivant, chaque ensemble d’états
représente un état du futur automate).
E(i) = ∪q′∈E(i-1)
∈ δ(q′, a)
61 W.SAADI
Exemple 9
62 W.SAADI
Déterminisation avec les ε-transitions
La déterminisation d’un AEF contenant au moins une ε-
transition fait appel à la notion de l’ ε-fermeture d’un
ensemble d’états.
Définition
Soit E un ensemble d’états. On appelle ε-fermeture de E
l’ensemble des états incluant, en plus de ceux de E, tous
les états accessibles depuis les états de E par un chemin
étiqueté par le mot ε.
63 W.SAADI
ε-fermeture
L' ε-fermeture d'un état q est l'ensemble des états obtenus en
suivant des ε-transitions a partir de q.
Règles d'appartenance :
q ∈ ε-fermeture(q)
si p ∈ ε-fermeture(q) et s'il existe une ε-transition entre p et
un état r alors r ∈ ε-fermeture(q).
L'ε-fermeture d'un ensemble d‘états Q est l'ensemble des
états obtenus en suivant des ε-transitions a partir de tout
état de Q.
64 W.SAADI
Algorithme
1. Partir de H, l' ε-fermeture de l‘état initial.
2. Construire E(1), l'ensemble des états obtenus a partir de
H par la transition a.
Déterminer l' ε-fermeture de E(1) et la réunir avec E(1).
H(1) = E(1) ∪ ε-fermeture(E(1)).
3. Recommencer l‘étape 2 avec les autres transitions et tant
qu'il y a de nouveaux états crées.
4. Tous les nouveaux états contenant au moins un état final
sont des états finals.
5. Renommer les états obtenus.
65 W.SAADI
Exemple 10
Soit l’AFN suivant qui reconnait le langage des mots contenant le facteur ab
66 W.SAADI