Vous êtes sur la page 1sur 4

UMBB

La Complexité Algorithmique:
–Série d’exercices–

Enseignant : Dr. Wassila DRICI

2019/2020
Last Updated: June 29, 2020
Exercice 1. Donner l’ordre de rapidité√ des fonctions en n suivantes
√ (n ∈ N? ):
3 n n 1 n 2 2
( 2 ) ; log n ; log n; 17; ( 3 ) ; n; log n; n log n; log(log n); n.
Exercice 2. 1. Étant donné un problème de taille n. L’application d’un algorithme A diminue la
taille du problème à (n-1) en o(n). On continue à appliquer l’algorithme A aux problèmes
résultants jusqu’à obtention de la solution.
2. Étant donné un problème de taille n. L’application d’un algorithme B devise le problème en
deux sous problèmes de taille n2 en o(n). On continue à appliquer l’algorithme B aux sous
problèmes résultants jusqu’à obtention de la solution.
Le quel des algorithmes est meilleur?
Exercice 3. 1. Donner un algorithme qui calcul le produit scalaire de deux vecteurs. Dire s’il est
polynomial.
2. Donner un algorithme qui calcul le produit de deux matrices. Est-il polynomial ?
Exercice 4. Considérons le programme linéaire suivant :

 max Z ( x ) = c1 x1 + c2 x2 + ... + cn xn
(K 0 ) a x + a2 x2 + ... + an xn ≤ b
 1 1 ¯
p j ≤ x j ≤ q j ∀ j = 1.n
¯ a j > 0 et c j > 0 ∀ j = 1.n.
On suppose que p j = 0 ∀ j = 1.n. ¯

1. Montrer qu’on ne peut se ramener toujours à la même formulation que (k’) avec les supposi-
tions suivantes:
• 3 j0 ∈ {1, ..., n} tel que p j0 6= 0.
• 3 j0 ∈ {1, ..., n} tel que a j0 ≤ 0.
• 3 j0 ∈ {1, ..., n} tel que c j0 ≤ 0

2. Écrire un algorithme A résolvant le problème (K 0 ).


3. Étudier sa complexité.
4. Soit (K ) le problème linéaire suivant :

 max Z ( x ) = c1 x1 + c2 x2 + ... + cn xn
(K ) a x + a2 x2 + ... + an xn ≤ b
 1 1 ¯ x j entier
0 ≤ x j ≤ q j ∀ j = 1.n,
Montrer qu’on ne peut résoudre (K ) avec l’algorithme A.
¯ et c ∈ N.
5. On suppose que c j = c ∀ j = 1.n
Quelle est la solution optimale du problème (K ).
Exercice 5. Soient ( P) et Q deux programmes définis comme suit :

 max Z ( X ) = CX
( P) AX ≤ b
X≥0


Trouver X ≥ 0
( Q)
DX = e
Montrer que ( P) se réduit polynomialement à ( Q) et que ( Q) se réduit polynomialement à ( P).
3
Exercice 6. On considère le problème P suivant:
P : "Étant donné un graphe G = (V, E), trouver, dans G une clique de cardinalité maximum".

1. Donner une formulation de ce problème en un programme linéaire en 0-1.

• Définir le problème de reconnaissance associé au problème P, on l’appellera P1 .


• Montrer que le problème P1 appartient à la classe NP. Pour cela, on décidera soigneuse-
ment un codage du problème, on évaluera la taille de ce codage et on exhibera un
algorithme non déterministe polynomial pour le résoudre.
• À partir d’une instance du problème de satisfiabilité défini à partir des variables
{ x1 , x2 , ..., xn } par une expression E = C1 ∧ C2 ∧ ... ∧ Cm , on définit une instance du
problème de reconnaissance associé au problème de la clique dans le graphe G = (V, E)
et le scalaire m de la manière suivante :

¯ }
V = {(Uj , i )|Uj une variable de la classe Ci , i = 1.m

E = {((Uj , i ), (Uj0 i0 ))|i 6= i0 et Uj 6= U¯j0 , i = 1.m,


¯ j = 1.n
¯ }

– Construire le graphe associé à la formule booléenne:

E = ( x¯1 ∨ x2 ∨ x3 ) ∧ ( x1 ∨ x3 ∨ x¯4 ) ∧ ( x¯2 ∨ x3 ∨ x4 )

– Montrer que cette transformation est polynomiale.


– Que peut-on déduire ?

Vous aimerez peut-être aussi