La Complexité Algorithmique:
–Série d’exercices–
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
¯ }
V = {(Uj , i )|Uj une variable de la classe Ci , i = 1.m