Académique Documents
Professionnel Documents
Culture Documents
2
Qu’est-ce qu’un calcul?
Machine
Entrée Sortie
Effectuant une tâche
(Données) de calcul
(algorithmme)
3
Un autre point de vue
• On s’intéressera aussi aux systèmes
permettant de spécifier de façon
automatique certaines chaînes de
caractères.
4
Alphabet
• Définition : Un alphabet est un ensemble
fini non vide de symboles. Souvent dénoté
par Σ.
• Exemple : Σ = {a, b, c}.
• Un caractère et un symbole sont des
synonymes.
• Une chaîne, une séquence ou une suite de
caractères sont des synonymes. On peut
aussi utiliser le terme « mot ».
5
Exemples
10
• Les exposants permettent de décrire certains
ensembles de manière concise.
Exemple
L’ensemble {amban : m∈N∧ n∈N} est l’ensemble des
séquences ayant un seul b, précédé et suivi d’un nombre
quelconque de a. Le nombre de a qui précède ce b n’est pas
nécessairement le même que celui qui suit.
11
Définition
• La longueur d’une séquence finie w, notée |
w|, est le nombre de symboles qu’elle
contient.
• Exemple: Soit Σ = {a, b, c}.
– |a| = 1,
– |abc| = 3,
– |aaa| = 3.
12
Similarité entre Σ* et ℘(Σ)
• Il y a une certaine similarité entre Σ* et
℘(Σ) mais ces ensembles sont bien
différents.
• Par exemple:
– ℘({a}) = {∅, {a}} est fini.
– {a}* = { λ,a, aa, aaa, aaaa, aaaaa, ... } est infini.
13
Langages
• Un langage sur un alphabet Σ est un sous-
ensemble de l ’ensemble Σ*.
• Exemple: Soit l ’alphabet Σ = {a, b, c}. Les
ensembles suivants sont des langages sur Σ:
– L = {a, b, aa, abc, abbc }.
– P = { λ, a, aa, aaa, ...}.
14
Remarques sur les langages
• Un langage peut être fini ou infini.
• Un langage peut contenir la séquence vide
ou ne pas la contenir.
• Les séquences d’un langage sont toujours
finies (par définition de Σ*).
15
Remarque sur les langages
• L’ensemble de tous les langages sur un
alphabet Σ est ℘(Σ*).
• Comme Σ* est infini et que
• |Σ*| < |℘(Σ*)|, on voit que l’ensemble des
langages sur un alphabet donné est non
dénombrable.
16
Pourquoi s’intéresser aux langages
• Considérons des machines M dont les entrées
sont un mot d’un alphabet Σ et dont la sortie
est toujours 0 ou 1. On peut aussi dire que la
machine accepte ou rejette son entrée.
• L’ensemble des mots acceptés par M est un
langage que l’on notera L(M).
• En quelque sorte, c’est l’objet fondamental
d’étude en informatique.
17
Diagrammes de transitions
• Un diagramme de transitions est une
collection finie d’états (cercles) et de
transitions (arcs orientés) telle que:
– Chaque état peut être étiqueté.
– Il y a un seul état initial (une petite flèche le
pointe).
– Les cercles doubles sont les états finaux
(accepteurs). Il peut y en avoir plusieurs.
18
– Chaque transition relie deux états, pas
obligatoirement différents.
– Chaque transition est étiquetée par un symbole
d’un alphabet associé au diagramme.
19
Exemple
• Diagramme de transitions dont l’alphabet
est Σ = {a, b}.
• Ensemble des états = {1, 2, 3, 4}.
a
3
a b
a
1 2 État initial: 1
b b
État final: 4
4
20
Notation
• On peut utiliser certaines abréviations pour
ne pas surcharger inutilement un
diagramme.
– Au lieu d’utiliser plusieurs arcs entre deux
états, on en utilise un seul et on empile les
étiquettes l’une au-dessus de l’autre.
a
a b
b
21
– L’étiquette abc est la séquence des transitions
a, b et c.
a b c
1 2 3 4
devient
abc
1 4
22
– Le diagramme de transitions suivant est associé
à l’alphabet Σ = ensemble des caractères
ASCII.
Ses transitions sont étiquetées par des symboles
spéciaux (lettre, chiffre) qui représentent des
sous-ensembles de Σ:
• lettre = {a, …, z, A, …,Z}
• chiffre = {0, …, 9}
lettre
chiffre lettre
2 1 3
chiffre
Il représente un identificateur dans plusieurs langages
de programmation.
23
Exercice
– La figure ci-dessous est un diagramme de
transitions associé à l’alphabet Σ = {a, b}, et
n’ayant pas toutes les caractéristiques exigées.
Énumérer celles qui ne sont pas respectées.
b
2
abb
1 2
25
Remarque
• Le diagramme suivant ne respecte pas la
condition mentionnée auparavant puisque
deux transitions étiquetées b quittent
l’état 2: a
3
a b
a
1 2
b b
4
26
Définition
• Une table de transitions associée à un
diagramme de transitions est une matrice à
deux dimensions telle que:
– La matrice a une ligne pour chaque état du
diagramme.
– Elle a une colonne pour chaque symbole utilisé
comme étiquette d’un arc du diagramme.
27
Définition(suite)
– L’entrée de la nième ligne et de la mième colonne
est l’état atteint dans le diagramme de
transitions en quittant l’état n par l’arc dont
l’étiquette est celle de la colonne m. Si un tel
état n’existe pas, l’entrée contient le mot
ERREUR.
– On ajoute une colonne indicée par le caractère
spécial de fin de séquence FIN. Une entrée de
cette colonne est le mot ACCEPTE si
l’état(ligne) est final ou ERREUR sinon.
28
Exemple
• Voici un diagramme de transitions et la
table de transitions qui lui est associée:
lettre
chiffre lettre
2 1 3
chiffre
Lettre Chiffre FIN
1 3 2 ERREUR
2 ERREUR ERREUR ERREUR
3 3 3 ACCEPTE
29
Exercice
• D’après la table de transitions suivante,
quelle transition doit être effectuée à
l’obtention d’un chiffre dans l’état 2?
Lettre Chiffre FIN
1 3 2 ERREUR
31
Remarque
• Cet algorithme peut facilement se généraliser à
des diagrammes de transitions plus complexes.
• Lorsqu’il termine dans l’état ACCEPTE, on dit
que la séquence d’entrée est acceptée ou
reconnue.
• Une séquence acceptée correspond à une suite
d’étiquettes menant de l’état initial à un état final.
32
Automates finis déterministes
• Premier modèle de calcul que nous allons
étudier.
• Simple (voire primitif)
• Facile à comprendre et à étudier
• Permet de modéliser un grand nombre de
systèmes.
33
Définition
• Un diagramme de transitions avec un
alphabet Σ est dit complètement défini si,
pour chaque symbole s ∈ Σ et chaque état e,
il y a au moins une transition étiquetée s qui
quitte e.
34
Exemple
• Diagramme complètement défini, sur l’alphabet Σ =
{a,b} :
a
a
2 3 b
a b
b
1
35
Définition
• Un diagramme de transitions avec un
alphabet Σ est dit non ambigu si, pour
chaque état et chaque symbole s ∈ Σ, il
existe au plus une transition quittant e et
étiquetée s.
36
Définition
• Un diagramme de transitions déterministe
par rapport à un alphabet donné est un
diagramme complètement défini et non
ambigu.
37
Exemple
• Le diagramme ci-dessous, dont l’alphabet
est Σ = {a, b}, n’est pas déterministe car il
n’est pas complètement défini.
b
a
a
1 3
38
Remarque
• Pour rendre déterministe un diagramme de
transitions non ambigu, on peut procéder
comme suit:
– On ajoute un état non final (état poubelle) au
diagramme.
– Pour chaque symbole de l’alphabet, on ajoute
un arc qui part de l’état poubelle et qui se rend
à ce même état.
– On ajoute des arcs qui partent des autres états et
qui se rendent à l’état poubelle, si nécessaire,
jusqu’à ce que le diagramme de transitions soit
complètement défini.
39
Exemple
Alphabet Σ = {1, 0}
0
1
2 0
2 4
1 1 1 1
0 0
0 0
1 3 1 3
40
Exercice
• Rendre déterministe le diagramme suivant.
L’alphabet est Σ = {a,b}.
a
b
s4
s0 b a
a
s0 s1 a
a a b b
s2 s3
b a
b s2 s3
s1 b
41
Définition
• Un automate fini déterministe consiste en
un quintuple de la forme (S, Σ, δ, ι, F) où:
– S est un ensemble fini d’états.
– Σ est l’alphabet de l’automate.
– δ est une fonction (appelée fonction de
transition) de S× Σ dans S.
– ι ∈ S est l’état initial.
– F ⊆ S est l’ensemble des états finaux (ou
accepteurs ou acceptants).
42
Exemple
est un automate.
43
• Cet automate a:
– un ensemble d’états {A, B, C},
– un alphabet {a, b, c},
– une fonction de transtion δ,
– un état initial A,
– un ensemble d’états finaux {A, B}.
44
• Diagramme de transitions de l’automate.
c
C
a
c b b c
b
a
A a B
f
g
3
f h
R: h
g g
0 h 1 h
g
f
f 2
46
Exercice
– Soit Σ = {a, b}. Donner l’automate correspondant
au diagramme de transition ci-dessous. a
b
a
2 4
b
b b
a
a
1 3
48
Automate fini déterministe
• Un automate fini déterministe possède les
caractéristiques suivantes:
– Pour chaque couple (p, x) ∈ S×Σ, il existe un et un seul
q tel que δ(p, x) = q. (déf. d ’une fonction)
– À tout automate fini déterministe correspond un
diagramme de transitions déterministe
(parce que δ est totale et non ambiguë).
– Le qualificatif “fini” signifie que l’automate possède
un nombre fini d’états, que son alphabet et que son
ensemble de transitions sont finis.
49
Machine à ruban
• On peut voir un automate comme une
machine avec un ruban contenant une
séquence de symboles à analyser, une tête
de lecture et un mécanisme de contrôle qui
peut changer d’état.
x1 x2 ... xn Ruban
...
51
• Le mécanisme de contrôle choisit un nouvel
état à partir de l’état actuel et du symbole
lu.
• L’automate accepte la séquence d’entrée si
et seulement si la transition effectuée lors de
la lecture du dernier symbole l’amène dans
un état final (accepteur).
52
Définition
54
Définition
• Soit M un automate fini déterministe qui a
pour alphabet Σ. L(M) est l’ensemble de
toutes les séquences de symboles reconnues
par l’automate M. Nous dirons que L(M)
est le langage reconnu (ou accepté) par
l’automate fini M.
55
Définition
• Un langage est dit régulier s’il existe un
automate fini déterministe qui le reconnaît.
• Une façon de montrer qu’un langage est
régulier est de construire un automate qui
reconnaît ce langage. Il existe d’autres
méthodes que nous verrons plus tard.
56
Exemple
• Soit M l’automate déterministe décrit par le
diagramme de transitions suivant. Son
alphabet est {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, .}. Le
symbole C remplace n’importe quel chiffre:
C ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.
.
4 C
.
. .
C .
0 1 2 3
C
C C
57
• Voici une suite de configurations et d’états
de l’automate décrivant l’acceptation de la
séquence 123.45. La tête de lecture est sur
le symbole souligné.
ruban état
123.45 0 .
4 C
123.45 1
. . .
123.45 1
C .
123.45 1 0 1 2 3
C
123.45 2 C C
123.45 3
123.45_ 3 58
• Le même automate rejette la séquence 88.0.
car il termine à l’état 4 qui n’est pas final.
ruban état .
88.0. 0 4 C
88.0. 1 . . .
88.0. 1 C .
0 1 2 3
88.0. 2 C
C C
88.0. 3
88.0._ 4
59
Exercice
• Donner les configurations du ruban et les états de
l’automate lors de la lecture des séquences a, b,
aab et aaababb. Dites si les séquences sont
acceptées.
ruban état
a a A a b a
a_ C b b
B D a E
b b A
b_ B b
b
aab aab A a
a
aab C A C
aab C
aab_ D 60
Exercice(suite)
ruban état
a b a
aaababb aaababb A
b b
aaababb C B D E
a
aaababb C
b
aaababb C b
aaababb D a
a
aaababb E A C
aaababb E
aaababb_ E
61
Séquence vide
• Les conditions d’acceptation d’une
séquence par un automate données
auparavant permettent de dire aussi
comment la séquence vide peut être
acceptée.
• Si on prend n=0 dans la définition, alors la
séquence d’entrée est la séquence vide et
elle est acceptée si l’état initial est aussi un
état final. Aucune transition n’est faite.
62