Glouton ou dynamique ?
Cours · algorithmique (école d'ingénieur), chapitre 1 · école d'ingénieur, informatique · le début du chapitre, la suite sur Adloun
Objectifs du chapitre
- Distinguer une stratégie gloutonne d'une résolution optimale, et savoir exhiber un contre-exemple.
- Comprendre pourquoi l'énumération exhaustive est hors de portée.
- Connaître les six étapes de la programmation dynamique et les appliquer à un premier problème.
1.1 Un premier problème : Zébulon sur son ruban
Un ruban est divisé en cases numérotées ; la case porte une valeur entière , positive ou négative. Zébulon, petit personnage monté sur ressort, se trouve sur la case . Depuis la case , il peut sauter sur la case ou sur la case (jamais en arrière, jamais d'une seule case). Un chemin est la suite des cases sur lesquelles il se pose ; sa valeur est la somme des valeurs de ces cases.
Problème
Calculer un chemin de valeur maximum de la case à la case .
Ici . On remarque que la case est inaccessible : sa valeur ne pourra jamais être ramassée.
1.1.1 La tentation gloutonne
L'idée la plus naturelle est de faire, à chaque saut, le meilleur choix immédiat : sauter sur celle des deux cases accessibles qui a la plus grande valeur.
Une stratégie est gloutonne lorsqu'elle construit une solution par une suite de décisions, chacune prise au vu du seul gain immédiat, et jamais remise en cause.
Sur notre ruban, depuis la case le glouton choisit la case (valeur ) plutôt que la case (valeur ) ; puis la case () plutôt que la case () ; puis la case . Le chemin glouton a pour valeur .
Or le chemin vaut . En acceptant une petite perte au premier saut, on évite la case . La stratégie gloutonne ne résout pas le problème posé.
La suite du cours est sur Adloun
Le chapitre en entier, formules et figures comprises, avec le tuteur, les fiches, les QCM et les exercices.
Lire la suite du coursEn accès libre, sans inscription.