Vous êtes sur la page 1sur 26

INF 232:

Langages et Automates

Travaux Dirigés

Université Joseph Fourier, Université Grenoble 1


Licence Sciences et Technologies

Année Académique 2013 - 2014


Année Académique 2013-2014

U NIVERSITÉ J OSEPH F OURIER 2 Licence Sciences et Technologies


Introduction

Ce livret contient les exercices de l’Unité d’Enseignement (UE) INF 232 enseignée à l’Université Joseph Fourier de
Grenoble, France.

Équipe Pédagogique
Responsable de cette UE : Yliès Falcone
Cours :
– Séance en Français, groupes MIN-S3-X, INF-S3-X : Yliès Falcone.
– Séance en Anglais, groupe MIN-S3-INT : Saddek Bensalem
Travaux Dirigés :
– Séances en Français :
– MIN-S3-01 : Michel Burlet
– MIN-S3-02 : Mickaël Perin
– INF-S3-01 : Jean-Claude Fernandez et Yassine Lakhnech
– INF-S3-02 : Yliès Falcone
– Séance en Anglais : Yliès Falcone

Information de Contact
Voici les informations de contact en cas de question ou pour tout problème lié à l’UE :
– Pour des questions générales liées au cours, merci de contacter votre enseignant de cours.
– Pour des question techniques liées aux exercices, merci de contacter vos enseignants responsables des travaux dirigés.
– Pour des questions concernant ce document, merci de contacter Yliès Falcone.

Emails Voici les emails de vos enseignants.


– Saddek Bensalem : Saddek.Bensalem@ujf-grenoble.fr
– Michel Burlet : Michel.Burlet@ujf-grenoble.fr
– Yliès Falcone : Ylies.Falcone@ujf-grenoble.fr
– Jean-Claude Fernandez : Jean-Claude.Fernandez@ujf-grenoble.fr
– Yassine Lakhnech : Yassine.Lakhnech@ujf-grenoble.fr
– Mickaël Perin : Mickael.Perin@ujf-grenoble.fr

Plan du cours et des travaux dirigés


– Notions mathématiques de base.
– Partie 1 : Langages Réguliers et Automates d’États Finis.
– Automates d’états-finis déterministes.
– Automates d’états-finis non-déterministes et minimisation.
– Automates d’états-finis non-déterministes avec -transitions.
– Modélisation et automates avancés,
– Expressions régulières et lemme de l’itération,
– Partie 2 : Automates étendus et méthode de vérification de Floyd.

3
Année Académique 2013-2014

Créneaux d’enseignement
– Cours :
– Cours en français (groupes MIN-S3-01, MIN-S3-02, INF-S3) :
– Cours 1 : lundi, de 13h30 à 15h :00 in DLST F
– Cours 2 : vendredi, de 9h45 à 11h15 en DLST A2
– Cours en anglais (groupe MIN-S3-INT) :
– Cours 1 : lundi, de 1h30 à 15h00 en DLST E2
– Cours 2 : vendredi, de 11h15 à 13h00 en DLST E2
– Sessions de Travaux Dirigés :
– MIN-S3-01
– Session 1 : lundi, de 8h00 à 9h30 en B216
– Session 2 : jeudi de 9h45 à 11h15 en B220
– MIN-S3-02
– Session 1 : mardi, de 13h30 à 15h00 en D104
– Session 2 : jeudi, de 15h00 à 16h30 en D104
– MIN-S3-INT
– Session 1 : mercredi, de 17h00 à 18h :00 en E-204
– Session 2 : vendredi, de 15h15 à 16h45 en B-006
– INF-S3-01
– Session 1 : jeudi de 8h00 à 9h45 en B114
– Session 2 : jeudi de 13h30 à 15h en B114
– INF-S3-02
– Session 1 : mardi de 13h30 à 15h00 en D104
– Session 2 : jeudi de 13h30 à 15h en E205

Quelques remarques
– Le livret de travaux dirigés contient plus d’exercices qu’il n’est possible de faire pendant les séances de travaux
dirigés du semestre. Pour l’examen final, vous êtes censés les avoir tous faits. Vos enseignants de travaux dirigés sont
là pour vous aider sur les exercices que vous n’arriveriez pas à faire tout seul.

Quelques conseils
Les conseils suivants peuvent sembler cliché et/ou naifs mais les suivre peut être un sérieux atout pour la réussite de
votre UE.
Soyez attentifs durant les cours. Votre objectif est de ne jamais sortir d’un amphitéatre sans avoir tout compris.
Contrairement à une croyance dûrement établie, les séances de travaux dirigés ne sont pas faites pour comprendre le
cours mais pour s’entrainer à faire les exercices mieux et plus rapidement.
Posez des questions durant les cours si vous avez le moindre doute sur une notion abordée. Si vous vous posez une
question, au moins deux de vos camarades ont la même question.
Travaillez dur et régulièrement Penser qu’il est possible d’assimiler le contenu de l’UE une semaine avant l’examen
est illusoire.
Ne vous perdez pas au milieu du semestre. Discuter avec vos camarades des concepts que vous ne comprenez pas
et/ou contactez vos enseignants.
Contactez nous. N’hésitez pas ! Nous sommes généralement disponible et souhaitons aider. Pour la résolution d’un
exercice, un bon algorithme est d’abord d’essayer (sérieusement) de résoudre l’exercice seul. Si vous n’y arrivez pas,
esssayez de la résoudre avec un camarade. En dernier recours, faites appel à la solution ou à vos enseignants.
Ne jamais abandonner. Assez évident, mais c’est mieux quand on le dit.

U NIVERSITÉ J OSEPH F OURIER 4 Licence Sciences et Technologies


C HAPITRE

1 Notions Mathématiques de Base

Ensembles, Relations

Exercice 1
1. Étant donné un ensemble E de cardinal fini. Rappeler la définition formelle de P(E), c’est-à-dire l’ensemble
des parties de E ou l’ensemble des sous-ensembles de E.
2. Pour E = {1, 2, 3}, donner P(E).

Exercice 2
Prouver les propositions suivantes :
1. P(A) = P(B) ssi A = B.
2. P(A ∪ B) = {X ∪ Y | X ∈ P(A) ∧ Y ∈ P(B)}.
3. P(A ∩ B) = P(A) ∩ P(B).
4. En général, P(A ∪ B) = P(A) ∪ P(B) n’est pas vrai.

Exercice 3
1. Rappeler les définitions formelles mathématiques des éléments suivants : relation, fonction, application, rela-
tion réflexive, relation anti-réflexive, relation symétrique, relation antisymétrique, relation transitive, relation
d’équivalence, classe d’équivalence.
2. Donner un exemple pour chacun des éléments mentionnés dans la question précédente.

Exercice 4
Considérons la relation R ⊆ Z × (Z \ {0}) définie comme suit :

∀(a, b), (c, d) ∈ Z × (Z \ {0}) : (a, b)R(c, d) ⇔ ad − bc = 0.

1. Prouver que R est une relation d’équivalence.


2. Donner ses classes d’équivalence.

Preuves par induction

Exercice 5
Prouver que pour chaque entier naturel n > 1 :
1. n a un diviseur premier ;

2. si n n’est pas premier, il a un diviseur premier p tel que p ≤ n ;
3. il existe un nombre premier strictement plus grand que n.

5
CHAPITRE 1. NOTIONS MATHÉMATIQUES DE BASE Année Académique 2013-2014

Exercice 6
1. Prouver la proposition suivante :
n
X n(n + 1)
∀n ∈ N : i= .
i=0
2

2. Déduire que 1 + 3 + 5 + ... + (2n − 1) = n2 .


3. Prouver la proposition suivante :
n
X n(n + 1)(2n + 1)
∀n ∈ N : i2 = .
i=0
6

Exercice 7
1. Prouver la proposition suivante :

∀n ∈ N, ∀i ∈ N : (n ≥ 1 ∧ 1 ≤ i ≤ n) ⇒ n ≤ i(n − i + 1)

2. Déduire que ∀n ∈ N : n ≥ 1 ⇒ log n! ≤ n. log n ≤ 2(log n!).

Définitions Inductives

Exercice 8
Soit E un ensemble inductivement défini par les règles suivantes :
– Règle de Base : 0 ∈ E
– Règle d’Induction : si x ∈ E, alors s(x) ∈ E
1. Proposer une définition d’une fonction + qui se comporte comme l’addition sur les entiers (où s(x) est l’entier
après x). La fonction doit travailler par induction sur son premier argument.
2. Proposer une définition d’une fonction ∗ qui se comporte comme la multiplication sur les entiers. La fonction
doit travailler par induction sur son premier argument.
3. Prouver les propriétés suivantes :
– ∀x ∈ E : x ∗ 0 = 0 = 0 ∗ x,
– ∀x, y ∈ E : x ∗ y = y ∗ x,
– ∀x, y, z : (x ∗ y) ∗ z = x ∗ (y ∗ z),
– ∀x, y, z : (x + y) ∗ z = x ∗ z + y ∗ z.

Exercice 9
Soit E(Σ) l’ensemble des listes dont les éléments sont dans l’ensemble Σ et qui est inductivement défini comme suit :
– Règle de Base : nil ∈ E(Σ),
– Règle d’Induction : si l ∈ E(Σ), cons(a, l) ∈ E(Σ), pour chaque a ∈ Σ, où cons est l’opérateur de concaténation
d’un élément à une liste.
Soit Σ = {a, b}
1. Rappeler la définition de l’opérateur cons.
2. Donner une définition inductive de l’ensemble des listes qui contiennent le même nombre de a’s que de b’s.
3. Donner une définition inductive de l’ensemble des listes qui contiennent le même nombre de a’s que de b’s et
qui commencent par des a’s suivis par des b’s. Entre les a’s, il ne doit pas y avoir de b’s.

U NIVERSITÉ J OSEPH F OURIER 6 Licence Sciences et Technologies


Première partie

Langages réguliers
et
Automates d’États-Finis

7
C HAPITRE

2 Automates d’États-Finis Déterministes

Rappel : AEFD : Automates d’États-Finis Déterministe.

Exercice 10
Considérons Σ un alphabet et a un symbole de Σ.
1. Donner une condition nécessaire et suffisante telle que la proposition suivante soit vraie (si cela est possible) :
a · Σ∗ = Σ∗ .
2. Donner une condition nécessaire et suffisante telle que pour n’importequel langage, L ⊆ Σ∗ défini sur Σ la
proposition suivante soit vraie : L · Σ∗ = Σ∗ L = L.

Exercice 11
Considérons Σ = {a, b}.
1. Donner un AEFD qui reconnaît l’ensemble des mots qui contiennent un nombre de a multiple de 3.
2. Donner un AEFD qui reconnaît l’ensemble des mots qui contiennent un nombre de a multiple de 2.
3. Donner un AEFD qui reconnaît l’ensemble des mots qui contiennent un nombre de a multiple de 3 et multiple
de 2 en calculant le produit des deux automates précédents.
4. Donner un AEFD qui reconnaît l’ensemble des mots qui contiennent un nombre de a multiple de 2 et non
multiple de 3.
5. Pour chacun des langages précédents, donner un AEFD qui reconnaît le langage complémentaire du langage
reconnu dans Σ∗ .

Exercice 12
Considérons Σ = {a, b, c}. Pour chacun des langages suivants, donner un automate qui le reconnaît (si un tel automate
existe).
1. L’ensemble des mots qui commencent par a · b ou b · c et qui ne terminent pas par a · b · c. Utiliser la construction
de l’automate produit.
2. L’ensemble des mots qui contiennent un nombre pair de c et qui ne contiennent pas a · b.
3. L’ensemble des mots tels que a est toujours suivi de b.
4. L’ensemble des mots qui contiennent autant de a’s que de b’s.
5. Pour chacun des langages précédents, donner un AEFD qui reconnaît sont complémentaire dans Σ∗ (si possible).

Exercice 13
Considérons Σ = {0, 1}. Pour les langages suivants, donner un automate reconnaisseur.
1. Tous les mots qui terminent par 00.
2. Tous les mots qui contiennent 000.
3. Tous les mots tels que chaque bloc de 3 symboles consécutifs contienne (exactement) 2 occurrences du symbole
0.
4. Tous les mots de longueur supérieure ou égale à 2 et tels que l’avant-dernier symbole est 1.
5. Pour chacun des lngages précédents, donner un AEFD qui reconnait son langage complémentaire dans Σ∗ .

9
CHAPITRE 2. AEFD Année Académique 2013-2014

Exercice 14
Considérons l’alphabet Σ = {1, 2, . . . , 9, 0}.
1. Donner un AEFD qui reconnaît les entiers inférieurs à 245.
2. Donner des AEFDs qui reconnaissent les entiers multiples de 6, 9, 10, 25, 50, 100, 250, 1000.
3. Donner des AEFDs qui reconnaissent un horaire donné sous la forme HHhMMm.
4. Donner un AEFD qui reconnait la date dans l’année donnée sous la forme JJ/MM.

Exercice 15
b
0 1
a, b
a
a, b
2
Nous considérons l’alphabet Σ = {a, b}.
1. Calculer un automate qui reconnait le complémentaire du langage reconnu par l’automate ci-dessus.

Exercice 16
Considérons l’AEFD (Q, q0 , Σ, δ, F ) et q ∈ Q un état particulier de cet automate tel que ∀s ∈ Σ : δ(q, s) = q.
1. Prouver par induction sur la longueur de la séquence d’entrée w que :

∀w ∈ Σ∗ : δ ∗ (q, w) = q.

Exercice 17
Considérons un AEFD (Q, q0 , Σ, δ, F ) et a ∈ Σ un symbole particulier tel que ∀q ∈ Q : δ(q, a) = q.
1. Prouver que : ∀n ∈ N : δ ∗ (q, an ) = q où an est le mot formé en concaténant n a’s.
2. Prouver que soit {a}∗ ⊆ L(A) soit {a}∗ ∩ L(A) = ∅.

Exercice 18
À partir de la fonction de transition δ (opérant sur un état et un symbole), nous avons défini la fonction de transition
étendue δ ∗ (son extension aux mots) comme la fermeture réflexive et transitive de δ.
1. Rappeler/proposer une définition inductive de cette fonction. Justifier pourquoi votre définition est bien formée.
2. Prouver que : ∀x, y ∈ Σ∗ , ∀q ∈ Q : δ ∗ (q, xy) = δ ∗ (δ ∗ (q, x), y).

Exercice 19
Considérons un AEFD A = (Q, q0 , Σ, δ, {qf }), et, supposons que pour chaque symbole s ∈ Σ nous avons δ(q0 , s) =
δ(qf , s).
1. Prouver que, pour n’importe quel mot w 6= , nous avons δ ∗ (q0 , w) = δ ∗ (qf , w).
2. Prouver que, si un mot non-vide w est reconnu parA, alors wk (le mot formé par k concaténations de w) est
aussi dans L(A) pour chaque entier strictement positif k :

∀w ∈ Σ∗ \ {} : w ∈ L(A) ⇒ ∀k ∈ N \ {0} : wk ∈ L(A) .




U NIVERSITÉ J OSEPH F OURIER 10 Licence Sciences et Technologies


C HAPITRE

3 Automates d’États-Finis Non-Déterministes et Minimisation

Rappel :
– AEFD : Automate d’États Finis Déterministes ;
– AEFND : Automates d’États Finis Non-Déterministes.
Remarques :
– Dans ce chapitre, la numérotation des états commence à 0.
– Lorsqu’on représentera un automate par sa table de transitions, nous utiliserons les conventions suivantes :
– l’état initial sera indiqué par une flèche sur la droite de l’état,
– les états étoilés sont accepteurs.

Exercice 20
Donner un AEFND qui reconnait tous les mots de longueur supérieure ou égale à 2 et tels que l’avant-dernier symbole
est 1.

Exercice 21
Soit Σ = {a, b}. Donner un AEFD minimal qui reconnait le langage des mots qui ne contiennent pas aba.

Exercice 22
Soit Σ = {0, 1}.
1. Soit L1 le langage des mots qui ne contiennent pas 0100 et qui contiennent un nombre pair de 0’s. Donner un
AEFD complet qui reconnaît L1 .
2. Soit L2 le langage des mots qui ne contiennent pas 010 et qui contiennent un nombre de 0’s multiple de 4. Donner
un AEFD qui reconnait L2 .
3. Prouver que L2 ⊆ L1 .

Exercice 23
Soit A l’AEFND défini par ({1, 2, 3, 4, 5, 6}, {a, b}, 1, ∆, {2}) t.q.

∆ = {(1, a, 2), (2, a, 3), (3, a, 2), (2, a, 4), (4, b, 2), (2, b, 5), (5, a, 2), (2, b, 6), (6, b, 2)}.

Déterminiser A et minimiser l’AEFD obtenu.

Exercice 24
Soit A l’AEFND défini par ({0, 1, 2, 3, 4, 5}, {a, b}, 0, ∆, {4}) où la relation de transitions est définie par la table
suivante :

0 1 2 3 4 5
a 1,2,3,4,5 2,3 0,1,4 0 1 2
b 4 1,2,3 1,2,5 2,3,5

Determiniser A et minimiser l’AEFD obtenu.

11
CHAPITRE 3. AEFND ET MINIMISATION Année Académique 2013-2014

Exercice 25
Soit A l’AEFND donné par ({0, 1, 2, 3, 4, 5}, {a, b}, 0, ∆, {0, 3, 4}) où la relation de transition est définie par la table
suivante :

0 1 2 3 4 5
a 1,2 5
b 3 4 0

Déterminiser A et minimiser l’AEFD obtenu.

Exercice 26
A
Soit A = (Q , Σ, q0A , δ A , F A )
et B = (Q B
, Σ, q0B , δ B , F B )
deux AEFDs. L’objectif de cet exercice est de prouver
que L(A) ∩ L(B) ⊆ L(A × B).
1. Prouver que pour chaque n ∈ N, pour chaque exécution (q0A , u0 ) · · · (qnA , un ) de A et (q0B , u0 ) · · · (qnB , un ) de
B sur un mot commun u de longueur plus grande ou égale à n :

((q0A , q0B ), u0 ) · · · ((qnA , qnB ), un ) est une exécution de A × B.

2. Utiliser le résultat précédent pour prouver L(A) ∩ L(B) ⊆ L(A × B).

Exercice 27
Soit Σ = {0, 1}. Considérons les deux AEFND suivants :
Σ 1
1
0 Σ 0 1
0 1 2 0 1 2

0 1
1. Quels sont les langages reconnus par ces automates ?
2. Montrer que ces deux automates sont équivalents.

Exercice 28
0 1
0 1
0 1 2
Considérons l’AEFND suivant :
1. Construire un AEFD équivalent par déterminisation.

U NIVERSITÉ J OSEPH F OURIER 12 Licence Sciences et Technologies


C HAPITRE

4 Automates d’États-Finis Non-Déterministes avec -transitions

Rappel : -AEFND : Automates d’États-Finis Non-Déterministes avec  transitions.

Exercice 29
Soit A l’-AEFND défini par ({0, 1, 2, 3, 4}, {a, b}, 0, ∆, {4}) où la relation de transition ∆ est définie par la table
suivante :

0 1 2 3 4
 1, 3 4
a 2 4
b 1 3

1. Éliminer les -transitions.


2. Déterminiser l’automate obtenu.
3. Déterminiser en utilisant la méthode directe (combinaison de l’élimination des -transitions et déterminisation).

Exercice 30
Soit A l’-AEFND défini par ({0, 1, 2, 3, 4}, {a, b}, 0, ∆, {4}) où la relation de transition ∆ est définie par la table
suivante :

0 1 2 3 4
 1, 3 3 1 3
a 2
b 4

1. Éliminer les -transitions.


2. Déterminiser l’automate obtenu.
3. Déterminiser en utilisant la méthode directe (combinaison de l’élimination des -transitions et déterminisation).

Exercice 31
Soit Σ = {a, b} et A l’-AEFND suivant défini sur Σ :
a
3 4

b

a a
0 1 2
b
b

13
CHAPITRE 4. AEFND AVEC -TRANSITIONS Année Académique 2013-2014

1. Donner un mot accepté et un mot non-accepté.


2. Éliminer les -transitions et déterminiser l’automate obtenu.
3. Minimiser l’automate obtenu.

Exercice 32
Dans cet exercice, nous nous intérressons à une propriété importante en sécurité des systèmes informatiques : l’opacité.
Le contexte est le suivant. Nous supposons qu’un attaquant observe un système dont le comportement est modélisé
par un AEFND avec -transitions. Les états accepteurs de l’automate représentent le “secret" : lors d’une exécution
du système, l’attaquant ne doit pas être en mesure de savoir avec certitude que le système est dans un état secret.
Si lors d’une exécution du système, l’attaquant est en mesure de déterminer que le système est dans un état secret,
alors on dit que cette exécution révèle le secret. Un système est dit opaque s’il n’existe pas d’exécution qui révèle le
secret. L’attaquant observe le système à travers une “fenetre d’observation" qui lui permet de voir toutes les transitions
exceptées les -transitions. L’attaquant connait la structure de l’automate parfaitement.
a
q4 q5 b q
6 a,b q4 q5 a q3
b b
b a a,b a b b
 a b a  a
q0 q00 q1 q2 q3 q0 q1 q2

1. Nous considérons le système représenté par l’automate de gauche ci-dessus. Lorsque l’attaquant observe a, b,
ab, quels sont les états courants possibles du système ?
2. Dire si ce système est opaque.
3. Même questions avec le système modélisé par l’automate de droite ci-dessus.
4. Est-il possible à partir de l’automate modélisant le système, de construire un automate qui indique la connaissance
de l’attaquant en fonction de son observation ?

U NIVERSITÉ J OSEPH F OURIER 14 Licence Sciences et Technologies


C HAPITRE

5 Modélisation et Automates Avancés

Exercice 33
Monsieur Berger B emmène un Loup L, une chèvre C, et un choux X près d’une rivière et souhaite traverser avec un
petit bateau. Le bateau est tellement petit que B peut entrer dans le bateau avec au plus un passager. Sans surveillance
de B, L mange C and C mange X.
Comment B peut faire traverser la rivière à la compagnie ?
1. Construire un automate qui modélise la situation.
2. Utiliser un automate pour trouver comment le problème peut être résolu.

Exercice 34
Soit Σ un alphabet. L’image miroir R(u) d’un mot u est le mot que l’on obtient en lisant le mot u de droite à gauche
(comme en Arabe ou en Hébreu). Plus précisément :
– R() = ,
– R(u · a) = a · R(u), pour tout u ∈ Σ∗ , a ∈ Σ.
Soit L un langage d’états finis.
1. Prouver que R(L) = {R(u) | u ∈ L} est un langage d’états finis.

Exercice 35
Soit A un AEFND reconnaissant un langage L. Pour chacun des langages suivants, donner un AEFND qui le reconnaît :

1. longueur(L) = {u ∈ Σ∗ | ∃v ∈ L : |u| = |v|}.


2. L1/2 = {u ∈ Σ∗ | ∃v ∈ Σ∗ : |u| = |v| ∧ u · v ∈ L}.

Exercice 36
Pour n ∈ N, soit n b l’ensemble des encodages en binaire de n où le bit le moins significatif est à gauche.
Par exemple :
– Pour 6 ∈ N : 011 ∈ b 6 et 0110 ∈ b 6.
– Pour 2 ∈ N : 010 ∈ b 6 et 01 ∈ b 2.
1. Donner un AEFND qui reconnaît les solutions de y = 2x dans N. Plus précisément, soit Σ = {0, 1} × {0, 1},
nous cherchons un AEFND qui reconnaît L ⊆ Σ∗ tel que u ∈ L si et seulement s’ils existent x, y ∈ N tels que :
– u = (x1 , y1 ) · · · (xk , yk ),
– x1 · · · xk ∈ xb,
– y1 · · · yk ∈ yb, et
– y = 2 ∗ x.

15
CHAPITRE 5. MODÉLISATION ET AUTOMATES AVANCÉS Année Académique 2013-2014

U NIVERSITÉ J OSEPH F OURIER 16 Licence Sciences et Technologies


C HAPITRE

6 Expressions Régulières et Lemme de l’Itération

Exercice 37
Pour chacun des automates minimaux du Chapitre 3, donner une expression régulière spécifiant l’automate.

Exercice 38
1. Rapeller le lemme d’Arden.
2. Prouver le lemme d’Arden.

Exercice 39
L’ensemble des expression régulières étendues est obtenu en ajoutant les constructions suivantes aux expressions
régulières :
– Si e est une expression régulière sur Σ alors ¬e est une expression régulière sur Σ.
– Si e et e0 sont des des expressions régulières sur Σ, alors e ∩ e0 est une expression régulière sur Σ.
+
– Si e est une expression régulière sur Σ alors e− est une expression régulière sur Σ.
La sémantique de ces opérateurs est comme suit :
– L(¬e) = Σ∗ \ L(e).
– L(e ∩ e0 ) = L(e) ∩ L(e0 ).
+
– L(e− ) = L(e) · L(e)∗ .
1. Prouver qu’il existe un algorithme qui transforme toute expression régulière étendue vers une expression
régulière.

Exercice 40
Donner une preuve ou un contre-exemple pour les lois algébriques suivantes sur les expressions régulières :
1. ( + R)∗ = R∗ .
2. ( + R) · R∗ = R∗ .
3. ∅ · R = R · ∅ = ∅.
4. ∅ + R = R + ∅ = R.
5. (R + S)∗ = R∗ + S ∗ .
6. (RS + R)∗ R = R(SR + R)∗ .
7. (RS + R)∗ RS = (RR∗ S)∗ .
8. (R + S)∗ S = (R∗ S)∗ .
9. S(RS + S)∗ R = RR∗ S(RR∗ S)∗ .

Exercice 41
1. Construire l’expression régulière associée à l’automate suivant, en suivant les deux méthodes vues en cours :
– Méthode associant des expressions régulières aux chemins.
– Méthode associant des équations linéaires aux états.

17
CHAPITRE 6. EXPRESSIONS RÉGULIÈRES ET LEMME DE L’ITÉRATION Année Académique 2013-2014

1 0
0 0
1 2 3
1 1
2. Même question avec l’automate suivant :

1
1 0
3 1 2
1 0
0

Exercice 42
Soit Σ = {a, b}. Écrire les automates finis non-déterministes avec -transitions associés aux expressions régulières
suivantes :
1. a · b,
2. a∗ · b,
3. (a + b)∗ · a∗ · b∗ · a,
∗ ∗
4. a∗ · b + d · c · b∗ · d + a · d ,
∗
5. a · b + a∗ · b + c · d · (c · a∗ + b · d) · (a · b∗ + a · b · d) .


Exercice 43
Considérons Σ = {0} et Σ0 deux alphabets.
1. Prouver que {0i | i est premier} n’est pas un langage régulier.

2. Prouver que {u ∈ Σ0 | |u| est premier} n’est pas un langage régulier.
3. Prouver que {0i | i est un carre} n’est pas un langage régulier.

4. Prouver que {u ∈ Σ0 | |u| est un carre} n’est pas un langage régulier.
5. Prouver que {0i 1j 2i+j | i, j ∈ N} n’est pas un langage régulier.
6. Prouver que {0i 1j | i and j sont premiers entre eux} n’est pas un langage régulier.

U NIVERSITÉ J OSEPH F OURIER 18 Licence Sciences et Technologies


Deuxième partie

Automates Étendus
et
la Méthode de Vérification de Floyd

19
C HAPITRE

7 Automates Étendus et Méthode de Floyd

Exercice 44
Nous considérons l’automate étendu suivant :
z 6= y → z := z + 1
u := x z := 0
q0 q1 q2 q3

u := u + 1
z=y

qt

L’état q0 est l’unique état initial et qt est l’unique état final.


1. Calculer les exécutions de cet automate sur les états initiaux suivants :
1. σ(x) = 2, σ(y) = 3, and σ(v) = 0 pour toute variable v différente de x et y,
2. σ(x) = 2, σ(y) = 0 et σ(v) = 0 pour toute variable v différente de x et y,
3. σ(x) = 2, σ(y) = −3 et σ(v) = 0, pour toute variable v différente de x et y.
2. Déterminer la relation entre états induite par cet automate.
3. Donner une spécification (P, Q) satisfaite par cet automate (sans preuve pour le moment).

Exercice 45
1. Déterminer l’ensemble des automates étendus partiellement corrects par rapport à (T, F).
2. Déterminer l’ensemble des automates étendus partiellement corrects par rapport à (T, T).
3. Déterminer l’ensemble des automates étendus partiellement corrects par rapport à (F, F).
4. Déterminer l’ensemble des automates étendus partiellement corrects par rapport à (F, T).

Exercice 46
Nous considérons l’automate défini par le 5-tuple dont les éléments sont les suivants :
1. y : Z , z : Z
2. Q = {q0 , q1 , q2 }
3. Q0 = {q0 }
4. T = {(q0 , z := 0, q1 ), (q1 , z < y − 1 → z := z + 1, q1 ), (q1 , ¬z < y − 1, q2 )}
5. Qt = {q2 }
1. Dessiner cet automate.
2. Calculer les exécutions de cet automate sur les états initiaux suivants :
1. σ(y) = 3 et σ(v) = 0, pour toute variable v différente de y.

21
CHAPITRE 7. AUTOMATES ÉTENDUS ET MÉTHODE DE FLOYD Année Académique 2013-2014

2. σ(y) = 1 et σ(v) = 0, pour toute variable v différente de y.


3. σ(x) = 2, σ(y) = −3 et σ(v) = 0, pour toute variable v différent de y.
3. Déterminer la relation entre états induite par cet automate.
4. Donner une spécification (P, Q) satisfaite par cet automate (sans preuve pour le moment).

Exercice 47
Donner un automate qui satisfait la spécification suivante :

(x = x0 ∧ y = y0 ∧ x0 ≥ 0 ∧ y0 ≥ 0, z = x0 ∗ y0 )

et utilise seulement l’opération d’addition.


u 6= y → u := u + 1
z := 0 u := 0
q0 q1 q2 q3

z := z + x
u=y

qt

Exercice 48
Nous considérons l’automate étendu représenté ci-dessous :
q3

x > 1 ∧ even(x) → x := x/2 y := 2 ∗ y

u := 0 x > 1 ∧ odd(x) → x := (x − 1)/2


q1 q2 q4

x ≤ 1 → y := y + u y := 2 ∗ y u := y + u

q5

qt

L’état q0 est l’unique état initial et qt est l’unique état final.


1. Calculer les exécutions de cet automate sur les états initiaux suivants :
1. σ(x) = 4, σ(y) = 3 et σ(v) = 0, pour toute variable v différente de x et y,
2. σ(x) = 5, σ(y) = 0 et σ(v) = 0, pour toute variable v différente de x et y,
3. σ(x) = 2, σ(y) = −3 et σ(v) = 0, pour toute variable v différente de x et y,
4. σ(x) = −2, σ(y) = 3 et σ(v) = 0, pour toute variable v différente de x et y.
2. Déterminer la relation entre états induite par cet automate.
3. Donner une spécification (P, Q) satisfaite par cet automate (sans preuve pour le moment).

U NIVERSITÉ J OSEPH F OURIER 22 Licence Sciences et Technologies


C HAPITRE

8 Automates Étendus Méthode de Floyd (suite)

Exercice 49
Nous considérons l’automate étendu représenté sur la Figure 8.1a. L’état q0 est l’unique état initial et qt est l’unique
état final.
Démontrer que cet automate étendu satisfait la spécification (y = y0 ∧ y0 ≥ 1, u = x + y).

Exercice 50
Nous considérons l’automate étendu A donné par le 5-tuple dont les éléments sont les suivants :
1. y : Z , z : Z
2. Q = {q0 , q1 , q2 }
3. Q0 = {q0 }
4. T = {(q0 , z := 0, q1 ), (q1 , z < y − 1 → z := z + 1, q1 ), (q1 , ¬z < y − 1, q2 )}
5. Qt = {q2 }
Prouver que A satisfait la spécification (y = y0 ∧ y ≥ 1, z = y0 − 1).

Exercice 51
Nous considérons l’automate étendu A représenté sur la Figure 8.1b. L’état q0 est l’unique état initial et l’état qt est
l’unique état final. On considère les prédicats suivants pour les états :
– Pq1 : x = x0 ∧ y = y0 ∧ x0 > 0.
– Pq2 : x > 0 ∧ y ∗ x + u = y0 ∗ x0
– Pq3 : x > 0 ∧ · · · ∗ y ∗ x + u = y0 ∗ x0
– Pq4 : x > 0 ∧ y ∗ (2x + · · · ) + u = y0 ∗ x0
– Pq5 : x > 0 ∧ 2 ∗ x ∗ y + u = y0 ∗ x0
– Pqt : y = x0 ∗ y0
Prouver que A satisfait la spécification (x = x0 ∧ y = y0 ∧ x0 > 0, y = x0 ∗ y0 )

Exercice 52
Prouver que l’automate représenté sur la Figure 8.1c satisfait la spécification suivante :

(a > 0 ∧ b ≥ 0, x = ab )

Exercice 53
Nous définissons inductivement la fonction de Fibonacci : fib : N −→ N :
– fib(0) = 0, fib(1) = 1, et
– fib(n + 2) = fib(n) + fib(n + 1).
Prouver que l’automate représenté sur la Figure 8.1d satisfait la spécification :

(x = x0 ∧ x ≥ 0, z = f ib(x))

23
CHAPITRE 8. AUTOMATES ÉTENDUS MÉTHODE DE FLOYD (SUITE) Année Académique 2013-2014

z 6= y → z := z + 1
u := x z := 0
q0 q1 q2 q3

u := u + 1
z=y

qt
(a) Un automate étendu pour l’addition

q3

x > 0 ∧ pair(x) → x := x/2 y := 2 ∗ y

u := 0 x > 1 ∧ impair(x) → x := (x − 1)/2


q1 q2 q4

x ≤ 1 → y := y + u y := 2 ∗ y u := y + u

q5

qt

(b) Un automate étendu pour la multiplication

y := 1
q1 q2
qt
u := a v := b
q0 q1 q2
z := 0
x := 1 x≤0
q3
v > 0 ∧ pair(v) → u := u ∗ u
v=0 x := x − 1 x > 0 → u := z
qt q3 q4

v := v − 1 v := v/2
q6 q4
v > 0 ∧ impair(v) → x := x ∗ u y := u q5 z := z + y
q5

(c) Un automate étendu pour la puissance (d) Un automate étendu pour Fibonacci

F IGURE 8.1 – Quelques automates étendus

U NIVERSITÉ J OSEPH F OURIER 24 Licence Sciences et Technologies


CHAPITRE 8. AUTOMATES ÉTENDUS MÉTHODE DE FLOYD (SUITE) Année Académique 2013-2014

Travaux Dirigés 25 INF 232: L ANGAGES ET AUTOMATES


INF232 : L ANGAGES ET AUTOMATES

Université Grenoble 1, Université Joseph Fourier - Licence Sciences et Technologies

Vous aimerez peut-être aussi