Académique Documents
Professionnel Documents
Culture Documents
Le choix effectué par un algorithme vorace peut dépendre d’un quelconque choix
effectué jusque là, mais ne peut pas dépendre d’un quelconque choix futur, ni des
solutions aux sous-problèmes. Ainsi, une stratégie vorace progresse en général de
manière descendante, en faisant se succéder les choix voraces, pour ramener
itérativement chaque instance du problème à une instance plus petite. Soulignons enfin
que montrer qu’un choix vorace aboutit à un problème similaire mais plus petit, se
ramène à prouver qu’une solution optimale doit faire apparaître une sous-structure
optimale.
5.1.3.1) Constituants
a) Un ensemble de candidats disponibles
b) Un ensemble de candidats déjà choisis
c) Un test de solution
d) Un test de réalisabilité
e) Une fonction de sélection
f) Une fonction objective (fonction à optimiser)
L’intérêt de cette approche repose sur la facilité avec laquelle on peut résoudre chaque
sous-exemplaire et recombiner les solutions obtenues.
Fonction DPR(x)
SI x est «assez petit» (seuil) ALORS
RETOURNER ADHOC(x)
SINON
DÉCOMPOSER x en sous-exemplaires x1, x2 ,…,xk
POUR i = 1 à k FAIRE yi = DPR(xi)
COMBINER les yi afin d’obtenir solution y de x
RETOURNER y
Afin que cette approche soit efficace, les conditions suivantes sont nécessaires :
1) Sous-structure optimale
2) Des sous-problèmes superposés
Quand un algorithme récursif repasse sur le même problème constamment, on dit que le
problème d’optimisation contient des sous-problèmes superposés.
Ainsi, la programmation dynamique est une méthode ascendante qui est privilégiée
lorsque le problème satisfait le principe d’optimalité ainsi que la propriété des sous-
problèmes superposés.