Académique Documents
Professionnel Documents
Culture Documents
Outline
Introduction
Principe général
Exemple 1: Monnayeur
Schéma général
Exemple 2: Ordonnancement des tâches
1
Algorithme de Glouton Introduction
Un algorithme de Glouton est un algorithme qui résout des problèmes
d’optimisation.
Il cherche à construire au fur et à mesure une solution en faisant les choix qui
paraissent optimaux localement.
2
Algorithme de Glouton : le monnayeur
Problème:
On dispose des pièces de monnaie correspondant aux valeurs E ={e1,…, en}
Pour chaque valeur ei, le nombre de pièces de monnaie (nbi) est non borné
Etant donnée une somme s entière, on veut trouver une façon de rendre la somme
s avec un nombre de pièces minimum.
Prendre E= {1,10, 2, 5} et s=28, Quelle est la solution optimale?
Une solution S=(nb1, …, nbn) présente le nombre de pièces (nbi) pour chaque
valeur (ei ):
Approche gloutonne: Trier les valeurs de pièces de monnaie par ordre décroissant.
Pour chaque valeur de pièce, maximiser le nombre de pièces choisies.
1ère version:
3
Algorithme de Glouton: Schéma général:
Schéma général:
Il est basé sur un critère local de sélection des éléments de E pour construire une
solution optimale S.
On travaille sur ‘’solution partielle’’ et on doit disposer des modules suivants:
Init : qui initialise la solution de début
Select: qui choisit à chaque pas le meilleur élément restant selon le critère
glouton. Souvent on trie tout simplement la liste des éléments selon le critère
glouton au départ et on balaye ensuite cette liste dans l’ordre.
Complete?: qui teste si une solution partielle est une solution complète.
Ajout possible?: qui teste si un élément peut être ajouté à une solution
partielle. Dans certain cas c’est toujours vrai.
Trier (E)
Init (S)
Tant que (Non Complete (S)) faire
Select (x, E)
Si AjoutPossible (x) Alors
Ajout (S, x)
finsi
Fintantque
4
Algorithme de Glouton : le monnayeur
Algorithme de Glouton:
Algorithme Glouton:
Approche gloutonne: On considère les tâches dans un certain ordre (Trier les tâches
selon leurs date fin) . On retient chaque tâche à condition qu’elle soit compatible
avec les tâches retenues (sélectionner une tâche compatible par ordre croissant).
10
5
Algorithme de Glouton : Ordonnancement des tâches
Solution:
11
12