ALGORITHMES GLOUTONS TP
Algorithmes gloutons – TP
13Introduction à la stratégie gloutonne
Lesalgorithmes gloutonspermettent de résoudre un problème d’optimisation qui vise à maximiser/minimiser une quantité (remplir une valise, rendu de monnaie, plus court chemin (GPS) meilleure organisation d’un emploi du temps, attribution de salles de cours etc.)
Principe: Un algorithme glouton est un algorithme qui effectue à chaque instant, le meilleur choix possible sur le moment, sans retour en arrière ni anticipation des étapes suivantes, dans l’objectif d’atteindre au final un résultat optimal.
Exemple du rendu de monnaie
L’objectif de l’activité est de déterminer une méthode permettant d’optimiser un rendu de monnaie en minimisant le nombre de pièces et de billets rendus.
Ï On suppose qu’on ne travaille qu’avec des sommes entières (pas de centimes).
Ï On suppose qu’on dispose d’un nombre illimité de chaque pièce ou billet.
Ï Dans le suite, on ne distinguera pas les pièces et les billets et on utilisera le terme « billet » pour les désigner.
Stratégie gloutonne
Ï On commence par rendre un nombre maximal de billets de plus grande valeur.
Ï On calcule le reste à rendre, puis on passe au billet de valeur inférieure en appliquant la même méthode.
Ï On s’arrête quand le reste à rendre est nul.
Premier exemple : le système de billets en euros
Dans ce paragraphe, on suppose que les valeurs des billets disponibles sont : 500, 200, 100, 50, 20, 10, 5, 2, 1.
1. SoitSune somme à rendre. Déterminer l’instruction à utiliser pour connaître le nombre de billets de 500 euros à rendre. Déterminer l’instruction à utiliser pour connaître la sommeR restante à rendre.
2. Donner un type de la variable permettant de stocker les différentes valeurs de billets disponibles et le nombre de billets à rendre.
3. Écrire une fonctionrendu(S,L)qui prend en entrée la sommeSà rendre et la listeLdes billets disponibles et qui renvoie la liste des pièces à rendre.
Par exemple, quandS=47, la fonction renvoie la liste suivante :[0, 0, 0, 0, 2, 0, 1, 1, 0]. On rend 2 billets de 20, 1 billet de 5, 1 billet de 2.
G. BOUTARD 1 Lycée GAY-LUSSAC
TP ALGORITHMES GLOUTONS
Deuxième exemple : Étude de l’optimisation
Dans ce paragraphe, on suppose que les valeurs des billets disponibles sont : 6, 4 et 1.
4. Tester la fonction précédente lorsqueS=8.
5. On rappelle qu’on cherche minimiser le nombres de billets rendus. Commenter.
Troisième exemple : La stratégie gloutonne donne-t-elle toujours une solution ?
Dans ce paragraphe, on suppose que les valeurs des billets disponibles sont : 5 et 2.
6. Tester la fonction précédente lorsqueS=8. Commenter.
7. Proposer une modification de la fonctionrendu(S,L)pour qu’elle renvoieFalselorsqu’il n’est pas possible de rendre la monnaie.
PCSI 2021 – 2022 2 G. BOUTARD