Najah.
Mon plan de révision⚡ Défi flash

Algorithmique · Écoles d'ingénieurs — ENSIAS

Algorithmes gloutons

Le cours expliqué simplement, les questions que tous les élèves se posent et des exercices type examen national. Programme marocain, gratuit.

📘 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

  1. 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).
  2. Vérifier la faisabilité : À chaque étape, s'assurer que le choix respecte les contraintes du problème.
  3. 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.

🌉 Jisr : les mots du chapitre FR ⇄ AR

Tu as appris les sciences en arabe ? Touche un mot pour voir sa traduction et une explication en darija.

La question que tu n'oses pas poser en classe ? Pose-la à UstadZéro jugement, même en darija, même à minuit. Il t'explique pas à pas et corrige ta démarche. Gratuit.

Défi flash : 4 questions

Sans compte

🎯 Algorithmes gloutons

1/4

Quelle est la caractéristique principale d'un algorithme glouton ?

❓ Questions fréquentes

Quelle est la différence entre glouton et programmation dynamique ?
  1. Glouton : Fait un choix définitif à chaque étape sans retour en arrière.
  2. Programmation dynamique : Explore plusieurs sous-problèmes et stocke les résultats pour éviter les calculs redondants, garantissant l'optimum.

💡 À retenir : Glouton = choix immédiat ; Dynamique = choix réfléchi avec mémoire.

Est-ce qu'un algorithme glouton est toujours le plus rapide ?

Oui, en général, les algorithmes gloutons sont très rapides car ils ne font qu'un seul passage sur les données sans explorer toutes les combinaisons possibles. Cependant, leur rapidité ne garantit pas l'exactitude de la solution.

💡 À retenir : La rapidité est l'atout majeur, mais la précision dépend de la structure du problème.

Kifach n3ref wach l'algorithme glouton ghadi y3tini l'7al l'mouthal ?

Il n'y a pas de règle magique. Il faut prouver mathématiquement que le choix local optimal conduit toujours à l'optimum global. Si le problème est "matroïde", alors le glouton marche à 100%.

💡 À retenir : Si le problème est complexe, testez avec des contre-exemples.

Chno hiya l'khadma dyal l'algorithme de Kruskal ?

Kruskal sert à trouver l'arbre couvrant minimal d'un graphe. 1. On trie les arêtes par poids croissant. 2. On ajoute l'arête si elle ne forme pas de cycle.

💡 À retenir : Kruskal = tri des arêtes + Union-Find pour éviter les cycles.

Est-ce que l'algorithme glouton peut échouer ?

Oui, il peut échouer à trouver la solution optimale, par exemple dans le problème du sac à dos 0/1 (où on ne peut pas couper les objets).

💡 À retenir : Le glouton donne souvent une solution "acceptable" mais pas forcément la meilleure.

Kifach n7seb l'complexité d'un algorithme glouton ?

La complexité dépend principalement de deux phases : 1. Le tri des éléments (souvent $O(n \log n)$). 2. La boucle de sélection des éléments ($O(n)$). La complexité totale est donc dominée par le tri.

💡 À retenir : $T(n) = O(\text{Tri}) + O(\text{Boucle})$.

Pourquoi on utilise le tri dans les algorithmes gloutons ?

Le tri permet de mettre en évidence l'élément qui respecte le mieux le critère glouton (le plus grand, le plus petit, le meilleur ratio).

💡 À retenir : Sans tri, on ne peut pas identifier efficacement le meilleur candidat local.

Est-ce que le problème du voyageur de commerce peut être résolu par un glouton ?

Oui, on peut utiliser une approche gloutonne (toujours aller vers la ville la plus proche), mais cela ne garantit pas le chemin le plus court global.

💡 À retenir : C'est une heuristique, pas une solution optimale.

Est-ce que les graphes sont obligatoires pour les algorithmes gloutons ?

Non, les algorithmes gloutons s'appliquent à divers problèmes : ordonnancement, rendu de monnaie, compression de données (Huffman), etc.

💡 À retenir : Le glouton est une méthode de conception, pas une structure de données.

Chno hiya l'fayda dyal l'algorithme de Huffman ?

Huffman utilise une approche gloutonne pour créer un arbre binaire de codage optimal, minimisant la taille totale du message compressé.

💡 À retenir : Huffman = compression optimale par fréquence.

Le glouton est-il toujours linéaire ?

Non, si le tri est nécessaire, il est au minimum $O(n \log n)$. S'il n'y a pas de tri, il peut être $O(n)$.

💡 À retenir : La complexité dépend de la structure initiale des données.

Est-ce qu'on peut combiner glouton et récursivité ?

Oui, mais attention : si la récursivité sert à explorer plusieurs branches, ce n'est plus un algorithme glouton pur. Le glouton est par nature itératif.

💡 À retenir : Le glouton est une stratégie de décision, pas une technique d'implémentation.

✍️ Exercices type examen national

Exercice 1

Soit un système de monnaie avec les pièces {1, 3, 4}. On veut rendre la somme S = 6.

  1. Appliquer l'algorithme glouton pour rendre la somme S.
  2. Donner la solution optimale.
  3. Conclure sur la validité de l'approche gloutonne pour ce système.
Voir la correction détaillée : inscription gratuite

Exercice 2

On dispose de 4 objets avec les poids et valeurs suivants :

  • Objet A : (p=2, v=10)
  • Objet B : (p=3, v=15)
  • Objet C : (p=5, v=20)
  • Objet D : (p=7, v=30) Capacité du sac : 10. Résoudre le problème du sac à dos fractionnaire par l'approche gloutonne.
Voir la correction détaillée : inscription gratuite

Exercice 3

Expliquer brièvement l'algorithme de Prim pour trouver un arbre couvrant minimal.

Voir la correction détaillée : inscription gratuite

Un prof de Algorithmique pour aller plus loin

Les cours du soir avec des profs vérifiés arrivent : inscris-toi pour être prévenu(e) en premier.

Être prévenu(e) gratuitement

Autres chapitres de Algorithmique