Analyse d’Algorithmes 2001
Ch. 7 - DIVISER POUR RÉGNER 7
2. DÉTERMINATION DU SEUIL
Dans une implantation spécifique
À partir d’une implantation spécifique, on peut déterminer un
seuil
empiriquement
:
2 paramètres: le seuil et la taille d’un exemplaire.
⇓
Très coûteux en frais d’ordinateur!
Approche hybride
- Déterminer théoriquement la forme des équations de
récurrence.
- Trouver empiriquement la valeur des constantes
impliquées, pour l’implantation considérée.
- Trouver expérimentalement
n
, de manière telle que les
temps pris par l’algorithme de base et celui “Diviser pour
Régner” avec un appel récursif seulement soient égaux.
Note:
Si tA(n) ∈ O(n2), il se peut que
tA= a n2 + bn + c
où a, b, c dépendent de l’implantation.
Lorsque nous voulons déterminer le seuil, le terme bn+c ne
peut être considéré comme négligeable (nous ne sommes
pas dans les conditions asymptotiques).
8 Ch. 7 - DIVISER POUR RÉGNER ©2001
R. Lelouche
2. DÉTERMINATION DU SEUIL
Problème 7.8 (4.2.3 de l’ancien livre)
Soient a, b ∈ ℜ+. Soit s ∈ ℜ+. Soit fs: ℜ* → ℜ* définie par:
fs(x) = { a x2 si x ≤ s
3 fs(x
2) + b x sinon
Prouvez par induction mathématique que, si u = 4b
a et v est
un réel positif quelconque, alors fu(x) ≤ fv(x) ∀x réel positif.
Preuve
Soit v ≠ u = 4b
a.
1er cas:
x ≤ min (u, v) ⇒ fu(x) ≤ fv(x).
2me cas:
x > min (u, v).
Posons k = min {i | x
2i ≤ min (u, v)}. On va montrer par
induction sur j que: fu(x
2j) ≤ fv(x
2j) pour j = k, k–1, ..., 0.
i) j = k
C’est vrai car x
2k ≤ min (u, v).
ii) Supposons que c’est vrai pour j = i+1 ≤ k, c.-à-d. que:
fu(x
2i+1) ≤ fv(x
2i+1)
et montrons que c’est vrai pour j = i (attention: l’induction
fonctionne par j décroissant). Trois cas sont à distinguer,
selon les positions relatives de u et de v par rapport à x
2j.