COMPLEX – Complexit´e, algorithmes randomis´es et approch´es
´
Enonc´es de TD (1 `a 6)
Ann´ee 2015–2016
Equipe enseignante :
Bruno Escoffier
Fanny Pascual
Ludovic Perret
COMPLEX – Complexit´e, algorithmes randomis´es et approch´es version du 8/9/2015
Table des mati`eres
1 Machines de Turing et complexit´e de probl`emes . . . . . . . . . . . . . . . . . . . . . . 2
2 Algorithmes d’approximation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 M´ethodes arborescentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Algorithmes exponentiels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5 Projet : ordonnancement de aches sur des machines en erie . . . . . . . . . . . . . . 15
page 2 1. Machines de Turing et complexit´e de probl`emes
1 Machines de Turing et complexit´e de probl`emes
Exercice 1 Complexit´e d’algorithmes - Rappels
Q 1.1 Evaluer la complexit´e d’un algorithme qui `a partir de deux listes tri´ees A et B construit une
liste unique contenant les ´el´ements des deux listes A et B.
Q 1.2 Etant donn´e npoints dans un plan, ´evaluer la complexit´e d’un algorithme qui calcule la paire
de points les plus proches.
Q 1.3 Etant donn´e un tableau tri´e d’entiers, ´evaluer la complexit´e d’un algorithme qui teste si l’entier
xest contenu dans le tableau.
Q 1.4 Etant donn´e nsous-ensembles de {1,2,··· , n}, ´evaluer la complexit´e d’un algorithme qui teste
l’existence d’une paire de sous-ensembles disjoints.
Q 1.5 Etant donn´e un graphe Get une constante k, ´evaluer la complexit´e d’un algorithme qui teste
l’existence de ksommets deux `a deux non adjacents (non reli´es par une arˆete) dans G.
Q 1.6 Etant donn´e un graphe G, ´evaluer la complexit´e d’un algorithme qui retourne un sous-ensemble
de cardinalit´e maximale de sommets deux `a deux non adjacents dans G.
Q 1.7 Etant donn´e un ensemble Sde nentiers et un entier x, ´evaluer la complexit´e d’un algorithme
qui d´etermine s’il existe deux ´el´ements de Sdont la somme vaut exactement x.
Exercice 2 Tir´e de l’examen r´eparti 1 2014-2015
Q 2.1 On consid`ere la machine de Turing suivante, o`u q0est l’´etat initial, qal’´etat d’acceptation et
qrl’´etat de rejet. Quel est le langage reconnu (l’alphabet ´etant {a, b}pour les mots) ?
a, b D
a, b D
a, b D
q0
q1
q2
qa
qr
DD
D
Figure 1 – Machine de Turing
COMPLEX – Complexit´e, algorithmes randomis´es et approch´es page 3
Exercice 3 Machines de Turing
Pour chacun des probl`emes suivants, donner une description haut-niveau d’une machine de Turing le
r´esolvant. Pour le probl`eme de votre choix parmi ces probl`emes, d´ecrire formellement une machine de
Turing le r´esolvant.
Q 3.1 Etant donn´e un mot wconstitu´e de 0 et de 1, la question est de savoir si wcontient au moins
un 0.
Q 3.2 Etant donn´e un mot wconstitu´e de 0 et de 1, la question est de savoir si wcontient autant de
0 que de 1.
Q 3.3 On consid`ere le probl`eme suivant : ´etant donn´e un mot wconstitu´e de 0 et de 1, la question
est de savoir si west un palindrome ou non.
Rappel : un palindrome est un mot dans lequel l’ordre des lettres reste le mˆeme qu’on le lise de gauche
`a droite ou de droite `a gauche (par exemple kayak et010010 sont des palindromes).
Q 3.4 Etant donn´e un mot wconstitu´e de 0, la question est de savoir si la longueur de west une
puissance de 2 (i.e. la machine de Turing reconnaˆıt le langage {02n|n0}).
Exercice 4 Le probl`eme de l’arrˆet
Une machine de Turing prend en entr´ee une chaˆıne (finie) de caract`eres x=x0x1. . . xn1. A l’ex´ecution,
trois comportements sont possibles :
La machine s’arrˆete dans l’´etat d’acceptation ;
La machine s’arrˆete dans un autre ´etat ;
La machine de s’arrˆete pas (boucle infinie).
Notons qu’une machine de Turing ALGO est ´egalement une chaˆıne de caract`eres, qui repr´esente le
codage de ALGO, et qui sera not´ee algo.
On consid`ere le probl`eme suivant, consistant `a d´eterminer si une machine de Turing s’arrˆete sur un
mot donn´e ou pas. Plus pr´ecis´ement :
L’entr´ee est constitu´ee d’un couple (algo, x), o`u algo est un mot codant une machine de Turing
ALGO, et xun mot.
L’entr´ee doit ˆetre accept´ee si et seulement si ALGO s’arrˆete sur x.
Supposons qu’il existe une machine de Turing ARRET (un algorithme) qui d´ecide ce probl`eme.
Consid´erons maintenant la machine de Turing suivante, appel´ee P ARADOXE, et qui prend en entr´ee
le codage algo d’une machine de Turing ALGO. La machine P ARADOXE est d´efinie de la fa¸con
suivante :
1. Si ARRET (algo, algo) est accept´e, alors boucler ind´efiniment ;
2. Sinon accepter.
Q 4.1 Appliquer P ARADOXE sur l’entr´ee paradoxe. Que se passe-t-il ? Qu’en eduisez-vous ?
Exercice 5 2-Sat
Un litt´eral est une variable bool´eenne, ou la n´egation d’une variable bool´eeenne (par exemple xou
x). Une clause est compos´ee de plusieurs litt´eraux li´es par des (par exemple x1x2x3). Une
1 / 21 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !