Numérique et Sciences Informatiques • 1ère

Algorithmes dits gloutons

Algorithmes Gloutons
Solution = \sum_{i=1}^{n} choix_{local}(i)
Optimisation locale à chaque étape
Définition :
Algorithme glouton : stratégie algorithmique qui consiste à prendre la meilleure décision locale à chaque étape dans l'espoir d'obtenir une solution globale optimale.
Principe :
🎯 Choix local optimal
🔄 Pas de retour en arrière
⚡ Décision irréversible
📊 Optimisation séquentielle
Caractéristiques :
✅ Simple à implémenter
❌ Pas toujours optimal
⚡ Efficace en temps
📋 Difficile à justifier
Exemples classiques
💰
Monnaie : rendu optimal
📦
Sac à dos : version fractionnaire
📊
Intervalle : couverture optimale
🔗
Arbre : arbre couvrant minimal
Problèmes typiques
1️⃣
Rendu de monnaie
2️⃣
Sac à dos fractionnaire
3️⃣
Sélection d'activités
Implémentation
🔄
Étape de choix
🎯
Critère de sélection
Mise à jour de l'état
💡
Condition d'arrêt
Exemple : Rendu de monnaie
def rendu_monnaie_glouton(somme, systeme): """ Rendu de monnaie avec algorithme glouton """ systeme = sorted(systeme, reverse=True) # Tri décroissant pieces = [] for piece in systeme: while somme >= piece: pieces.append(piece) somme -= piece return pieces # Exemple pieces_disponibles = [1, 2, 5, 10, 20] rendu = rendu_monnaie_glouton(37, pieces_disponibles) # [20, 10, 5, 2] (optimal pour ce système)
Avantages et limites
Avantages : simplicité
Performance : temps linéaire
Limites : pas toujours optimal
Erreurs fréquentes
Erreur 1 :
Confusion avec méthode optimale
Glouton ≠ Optimal
Besoin de preuve mathématique
Erreur 2 :
Critère de choix inadéquat
Tri incorrect
Priorité mal choisie
Erreur 3 :
Oubli de la vérification de la solution
Algorithme ≠ preuve
Tester les cas limites
Algorithmes classiques Algorithmique et programmation