L'algorithme Greedy Search est une approche de résolution de problèmes qui choisit toujours la meilleure option disponible à chaque étape sans tenir compte de l'impact à long terme de la décision. Bien qu'elle ne garantisse pas de trouver la solution globalement optimale, cette méthode fonctionne souvent rapidement et est simple à mettre en œuvre.
Comment ça fonctionne
- Initialisation: Commencez avec une solution vide ou initiale.
- Choix optimal local : à chaque étape, choisissez le choix optimal local en fonction de la fonction objectif ou des critères définis.
- Appliquer le choix : appliquez le choix optimal à la solution actuelle.
- Répétez : Répétez les étapes 2 à 4 jusqu'à ce qu'aucun meilleur choix local ne puisse être fait.
Exemple: Knapsack Problem
Considérez le Knapsack Problem, où nous avons un sac à dos avec un poids maximum et une liste d'articles avec des poids et des valeurs. L'objectif est de sélectionner des éléments pour maximiser la valeur totale dans le sac à dos. Une approche de recherche gourmande pour ce problème consiste à sélectionner les éléments en fonction du rapport valeur/poids le plus élevé.
Exemple de code en C++
Dans cet exemple, nous utilisons l'approche Greedy Search pour résoudre le problème Knapsack Problem. Nous trions les articles en fonction du rapport valeur/poids décroissant et sélectionnons les articles avec le rapport le plus élevé qui correspondent toujours à la limite de poids du sac à dos.