0% ont trouvé ce document utile (0 vote)
79 vues4 pages

TD Calculabilité Et Complexité Des Algorithmes

Le document présente un TD sur la calculabilité et la complexité des algorithmes, abordant des concepts tels que les machines de Turing, la décidabilité, les fonctions récursives, la non-calculabilité et la complexité. Il inclut des exercices pratiques sur la construction et l'analyse de machines de Turing, ainsi que des démonstrations de théorèmes et de lemmes. Les étudiants sont invités à explorer divers langages et problèmes liés à la théorie des automates et à la complexité algorithmique.

Transféré par

essombasimotr
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)
79 vues4 pages

TD Calculabilité Et Complexité Des Algorithmes

Le document présente un TD sur la calculabilité et la complexité des algorithmes, abordant des concepts tels que les machines de Turing, la décidabilité, les fonctions récursives, la non-calculabilité et la complexité. Il inclut des exercices pratiques sur la construction et l'analyse de machines de Turing, ainsi que des démonstrations de théorèmes et de lemmes. Les étudiants sont invités à explorer divers langages et problèmes liés à la théorie des automates et à la complexité algorithmique.

Transféré par

essombasimotr
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

Université de Garoua Année académique 2024/2025

Faculté des sciences Master / Semestre 1


Département de Mathématiques et Informatique Parcours Informatique

TD Calculabilité et complexité des algorithmes

I. LES MACHINES DE TURING


1. Décrire des machines de Turing qui acceptent les langages suivants :
 anbncn
 Les mots de la forme wwn construits sur l’alphabet {a, b}
 Les mots de l’alphabet {a, b} dont la longueur est une puissance de 2.
2. Construire des machines de Turing qui décident les langages décrits en 1).
3. Construire une machine de Turing dont l’alphabet d’entrée est {0, 1} et qui
calcule la représentation unaire de son mot d’entrée (une séquence de 1 dont la
longueur est égale à la valeur du mot d’entrée).
4. Construire une machine de Turing qui calcule la somme de deux nombres
représentés en notation binaire.
5. Soit M = ( K , , ,  , q0 , F ) la machine de Turing d'état initial q0, avec
acceptation par état final (unique état acceptant q7), d'alphabet  = a, b,
d'alphabet de ruban  = a, b, X , Y , # avec la fonction de transition  donné
par le tableau ci-dessous :
a b X Y #
q0 (q1, #, D)
q1 (q2, X, D)
q2 (q3, X, D) (q6, Y, D)
q3 (q3, a, D) (q4, Y, D) (q3, Y, D)
q4 (q5, Y, G)
q5 (q5, a, G) (q2, X, D) (q5, Y, G)
q6 (q6, Y, D) (q7, #, --)
q7
a) Dessiner l’automate.
b) Le mot a3b4 est-il accepté par M ? Donner les configurations successives.
c) Donner les configurations successives, dire si les mots a3b3 et a3b5 sont
acceptés par M.
d) Quel langage est reconnu par cette machine de Turing ? On justifiera.
e) Modifier cette machine pour reconnaître le langage {anb2n, n1}.
Justifier.

6. Soit le langage w  a, b / w a = w b
*

a) Donner la description d’une machine de Turing acceptant le langage.
b) Construire la machine de Turing.

Page 1
Université de Garoua Année académique 2024/2025
Faculté des sciences Master / Semestre 1
Département de Mathématiques et Informatique Parcours Informatique

TD Calculabilité et complexité des algorithmes


7. Soit M = (Q, , ,  , q0 , B, qF ) la machine de Turing où Q = ( q0 , qa , qb );
 = a,b;  = a, b, B; δ est donnée par (q0 , a )  (qa , a, R ) ;
(q0 , b)  (qb , b, R ); (q , a )  (q , a, R ) ;
a a
(qa , b)  (qa , b, R ) ;
(qb , a )  (qb , a, R ); (q , b)  (q , b, R );
b b
(qa , B )  (qF , a, R ) ;
(qb , B )  (qF , b, R ) .
a. Dessiner cette machine sous la forme d’un automate.
b. Donner la configuration à la fin de l’exécution de M sur le mot d’entrée
abab ?
c. Quelle fonction est calculée par cette machine ?

8. Soit la machine de Turing sur l’alphabet {a, b, ♡} donnée par le diagramme de


transitions suivant. Les x représentent soit a, soit b, soit ♡, c’est-à-dire que
chaque transition étiquetée par x correspond en fait à trois transitions similaires,
l’une étiquetée par a la deuxième par b et la dernière par ♡.

a. Simuler l’exécution de cette machine sur l’entrée aab (donner la suite des
configurations).
b. A votre avis, quelle est la fonction calculée par cette machine ?

Page 2
Université de Garoua Année académique 2024/2025
Faculté des sciences Master / Semestre 1
Département de Mathématiques et Informatique Parcours Informatique

TD Calculabilité et complexité des algorithmes

II. DECIDABILITE
1. Supposons que A ⊆ B ⊆ N.
 Si B est décidable, peut-on conclure que A est décidable ?
 Si A est décidable, peut-on conclure que B est décidable ?
2. Soit f : IN → IN totale calculable. Montrer que l’image f (IN) (c’est-à-
dire  f (i) : i  INest semi-décidable.
3. Soit f : IN → IN totale calculable et strictement croissante. Montrer que
l’image f (IN) (c’est-à-dire  f (i) : i  IN est décidable
III. LES FONCTIONS RECURSIVES
1. Démontrer les lemmes et théorèmes suivants :
 Lemme 1 : Il existe une représentation effective des nombres naturels par
de chaines de caractères.
 Lemme 2 : Il existe une représentation effective des chaines de caractères
par les naturels.
 Théorème 1 : Toute fonction -récursive est calculable par une machine
de Turing.
 Théorème 2 : Toute fonction calculable par une machine de Turing est -
récursive.
2. Montrer que le prédicat divise(m, n), qui est vrai si m divise n, est primitive
récursif.
3. La fonction SommeDiviseurs est définie de la facon suivante : si n  IN , alors
SommeDiviseurs(n) renvoie la somme des diviseurs entiers positifs de n (n non
compris). Par exemple SommeDiviseurs(6) = 1 + 2 + 3 = 6. Montrez que
SommeDiviseurs est primitive récursive. On pourra définir une fonction
auxiliaire avec un argument de plus. On pourra également utiliser la
fonction modulo(n, m)  n[m] (ou n mod m) supposée primitive
récursive, et une définition par cas ite(x, y, b) = if (b > 0) then x else y
supposée aussi primitive récursive.
4. Soit g une fonction récursive primitive. Soit f la fonction définie par f(0, x) =
g(x) et f(n + 1, x) = f(n, f(n, x)). Montrez que f est récursive primitive. On
commencera par prouver proprement que f : (n, x)  g2n (x), et on
pourra utiliser sans preuve le fait que la fonction 2_puis : n  2n, est
récursive primitive.

Page 3
Université de Garoua Année académique 2024/2025
Faculté des sciences Master / Semestre 1
Département de Mathématiques et Informatique Parcours Informatique

TD Calculabilité et complexité des algorithmes

5. Montrer que la fonction max n : IN n → IN qui à (x , x ,...,x )


1 2 n
associe le
maximum des n entiers x1 , x2 ,...,x n est primitive récursive. On peut considérer
acquis que le prédicat  est primitif récursif.
6. Montrer que la fonction pgcd(m, n), donnant le plus grand commun diviseur de
m et n est primitive récursif.
7. Montrer qu'une fonction totale f : N → N est calculable si et seulement si son
graphe : G = {(x, f (x)) | x appartient à N} est décidable.

IV. LA NON-CALCULABILITE
1. Les langages réguliers sont-ils décidables ? Justifier. Qu’en est-il des langages
hors contextes ?
2. Démonter que le problème de déterminer si deux grammaires G1 et G2 génèrent
le même langage est indécidable.
3. Démontrer que déterminer si deux machines de Turing acceptent le même
langage est un problème indécidable.
4. Démontrer que déterminer si l’intersection des langages acceptés par deux
machines de Turing est le langage vide est un problème indécidable.
5. Démontrer que déterminer l’égalité de deux langages hors-contexte est un
problème indécidable.
6. Montrez, par réduction à partir du problème de l’arrêt, que le problème suivant
est indécidable :
 Entrée : une machine de Turing M qui s’arrête sur toutes les données.
 Sortie : L(M) est-il infini ?
V. LA COMPLEXITE
1. Est-ce que les langages réguliers sont dans la classe P ? Justifier Qu’en est-il
des langages hors-contexte ?
2. Donner des algorithmes déterministes résolvant chacun des problèmes
suivants : Le problème du Circuit Hamiltonien ; le problème SAT ; le problème
du Voyageur de Commerce. Estimer la complexité de ces algorithmes.
3. Démontrer que, pour tout k4, le problème k-SAT (satisfaisabilité d’un
ensemble de clauses de k éléments) est NP-complet.
4. Le problème du chemin le plus long (longest path, abbréviation LP) est décrit
comme suit. Les données sont un graphe G=(V, E) et un entier J  V . La
question à résoudre est de déterminer si le graphe contient un chemin simple (ne
comportant pas deux fois le même sommet) contenant au moins J arcs.
Démontrer que LP est NP-complet.

Page 4

Vous aimerez peut-être aussi