CSI 3505 Algorithmes Voraces n Faire de la

  • Slides: 8
Download presentation
CSI 3505 Algorithmes Voraces n Faire de la monnaie, canadienne. n Nous voulons rendre

CSI 3505 Algorithmes Voraces n Faire de la monnaie, canadienne. n Nous voulons rendre la monnaie à un client en lui donnant le moins de pièces possibles. Exemple 1: Rendre 87 c en utilisant des pièces de: 25 c 10 c 5 c 1 c 3 x 25 c + 1 x 10 c + 2 x 1 c Est-ce que l'algorithme donne toujours la solution optimale ? OUI 2/21/2021 Dr. Nejib Zaguia 1

CSI 3505 Algorithmes Voraces Algorithme vorace: à chaque étape, choisir la plus grande pièce

CSI 3505 Algorithmes Voraces Algorithme vorace: à chaque étape, choisir la plus grande pièce possible. Exemple 2: Rendre 16 c en utilisant des pièces de: 25 c 12 c 10 c 5 c 1 c 1 x 12 c + 4 x 1 c La solution optimale: 1 x 10 c + 1 x 5 c + 1 x 1 c 2/21/2021 Dr. Nejib Zaguia 2

CSI 3505 Algorithmes Voraces C'est un algorithme qui prends un meilleur choix possible à

CSI 3505 Algorithmes Voraces C'est un algorithme qui prends un meilleur choix possible à chaque étape de la construction de la solution. Ce sont des algorithmes généralement assez simple. Ils servent typiquement à résoudre des problèmes d'optimisation. 2/21/2021 Dr. Nejib Zaguia 3

CSI 3505 Algorithmes Voraces fonction monnaie(P: ensemble {pièces}; s: entier {somme a rendre}): ensemble

CSI 3505 Algorithmes Voraces fonction monnaie(P: ensemble {pièces}; s: entier {somme a rendre}): ensemble avec répétitions S : = {solution} tantque s > 0 faire p : = plus grande pièce de P dont la valeur ne dépasse pas s; S : = S {p} s : = s-p retourner S 2/21/2021 Dr. Nejib Zaguia 4

CSI 3505 Algorithmes Voraces n L'approche vorace Note : On utilise aussi le terme

CSI 3505 Algorithmes Voraces n L'approche vorace Note : On utilise aussi le terme « glouton » plutôt que vorace. Intuition : dans l'approche vorace, une solution est obtenue en effectuant une séquence de choix, chaque choix se faisant sur la base d'information locale, en choisissant ce qui semble le mieux au moment ou le choix s'effectue (et en espérant que cela mène a la solution optimale globale). 2/21/2021 Dr. Nejib Zaguia 5

CSI 3505 Algorithmes Voraces n n Les algorithmes voraces sont souvent utilisés, comme les

CSI 3505 Algorithmes Voraces n n Les algorithmes voraces sont souvent utilisés, comme les algorithmes de programmation dynamique, pour résoudre des problèmes d'optimisation. Ils produisent un résultat optimal si le problème satisfait la propriété de choix vorace (greedy choice) = la solution globale peut être obtenue par une série de choix optimums locaux. Mais, . . . , ce ne sont pas tous les problèmes qui satisfont cette propriété. 2/21/2021 Dr. Nejib Zaguia 6

CSI 3505 Algorithmes Voraces Principales composantes d'une approche vorace : n L'algorithme débute avec

CSI 3505 Algorithmes Voraces Principales composantes d'une approche vorace : n L'algorithme débute avec un ensemble vide d'items et ajoute, de façon répétitive, des items dans l'ensemble jusqu'a ce qu'une solution optimale soit obtenue. Chaque itération consiste dans les composantes suivantes : n Une procédure de sélection, qui choisit le prochain item à inclure dans l'ensemble. n Un test de faisabilité, qui détermine si le nouvel ensemble conduit a une solution faisable, c'est-à-dire, pouvant être étendu en complétant cet ensemble par d'autres éléments. n Une vérification de la solution, qui détermine si le nouvel ensemble constitue une solution à l'instance du problème. 2/21/2021 Dr. Nejib Zaguia 7

CSI 3505 Algorithmes Voraces Schéma général: C: ensemble de candidats S : = tantque

CSI 3505 Algorithmes Voraces Schéma général: C: ensemble de candidats S : = tantque S n'est pas une solution et C x : = élément de C qui maximise un critère de sélection C : = C - x si (S {x}) est réalisable alors S : = S {x} si S est une solution alors retourner S sinon retourner pas-de-solution 2/21/2021 Dr. Nejib Zaguia 8