Adloun

Glouton ou table ? Le discernement final

Exercice · informatique (tronc commun des prépas scientifiques), chapitre 18 — La programmation dynamique

Énoncé

Indiquer pour chacun des problèmes suivants si l'approche gloutonne est applicable ou si la programmation dynamique est indispensable, et justifier en quelques phrases : (a) Rendu de monnaie dans le système de pièces canonique de l'Euro ; (b) Rendu de monnaie dans un système de pièces quelconque ; (c) Sélection d'un nombre maximal de tâches compatibles ; (d) Sélection d'un ensemble de tâches incompatibles maximisant le gain cumulé (tâches pondérées) ; (e) Recherche de plus courts chemins dans un graphe à poids positifs ; (f) Recherche de plus courts chemins dans un graphe contenant des poids négatifs.

Corrigé

(a) Glouton : Le système de l'Euro est canonique. On peut prouver par argument d'échange que le choix systématique de la plus grande pièce disponible mène à l'optimum. (b) Programmation dynamique : Le choix glouton peut s'enfermer dans des solutions sous-optimales ou échouer à trouver un rendu (ex : pour ). Il est nécessaire d'essayer tous les choix possibles via une table. (c) Glouton : Le choix systématique de la tâche compatible qui se termine le plus tôt laisse le maximum d'espace pour les tâches suivantes, ce qui est optimal pour maximiser le nombre total de tâches. (d) Programmation dynamique : L'introduction de gains arbitraires invalide l'argument d'échange glouton. Il faut utiliser la récurrence . (e) Glouton : L'algorithme de Dijkstra est fondamentalement glouton. Il effectue un choix local sûr en figeant à chaque étape le sommet possédant la distance provisoire minimale. (f) Programmation dynamique : La présence de poids négatifs invalide le choix local de Dijkstra. L'algorithme de Floyd-Warshall (ou de Bellman-Ford) utilise une récurrence systématique sur les chemins pour garantir l'optimalité globale.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.