📘 Fiche de cours
L'essentiel du cours
Un algorithme glouton construit une solution étape par étape en faisant à chaque étape le choix qui semble le meilleur sur le moment (optimum local), dans l'espoir d'atteindre l'optimum global. Contrairement à la programmation dynamique, il ne revient jamais sur ses choix.
- Condition de validité : Il ne fonctionne que si le problème possède la propriété du choix glouton et une sous-structure optimale.
- Complexité : Généralement très efficace, souvent $O(n \log n)$ ou $O(n)$.
Méthodes à maîtriser
- Identifier le critère glouton : Définir la règle de sélection (ex: prendre la valeur la plus grande, le poids le plus faible).
- Vérifier la faisabilité : À chaque étape, s'assurer que le choix respecte les contraintes du problème.
- Preuve de validité : Savoir justifier si l'algorithme donne l'optimum ou seulement une approximation.
Exemples corrigés
- Rendu de monnaie : Pour un système monétaire canonique (ex: 1, 2, 5, 10), l'algorithme glouton donne toujours le nombre minimal de pièces.
- Problème du sac à dos fractionnaire : Trier les objets par rapport valeur/poids décroissant et remplir le sac.
Erreurs fréquentes
- Croire qu'un algorithme glouton donne toujours l'optimum global (faux pour le sac à dos 0/1).
- Oublier de trier les données avant de commencer le traitement glouton.
- Confondre l'optimum local avec l'optimum global.