Adloun

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 .

Exemple 1.1un ruban de 7 cases

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.

Définition 1.2Stratégie gloutonne

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 cours

En accès libre, sans inscription.

Exercices corrigés de ce chapitre

Lire la suite du cours →