Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
CSI 3505 Algorithmes Voraces
Faire de la monnaie, canadienne. Nous voulons rendre la monnaie à un client en lui donnant le moins de pièces possibles. Exemple 1: Rendre 87c en utilisant des pièces de: 25c c c c 3 x 25c x 10c x 1c Est-ce que l'algorithme donne toujours la solution optimale ? OUI 2/23/2019 Dr. Nejib Zaguia
2
CSI 3505 Algorithmes Voraces
Algorithme vorace: à chaque étape, choisir la plus grande pièce possible. Exemple 2: Rendre 16c en utilisant des pièces de: 25c c c 5c c 1 x 12c x 1c La solution optimale: 1x 10c x 5c + 1x 1c 2/23/2019 Dr. Nejib Zaguia
3
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/23/2019 Dr. Nejib Zaguia
4
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/23/2019 Dr. Nejib Zaguia
5
CSI 3505 Algorithmes Voraces
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/23/2019 Dr. Nejib Zaguia
6
CSI 3505 Algorithmes Voraces
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/23/2019 Dr. Nejib Zaguia
7
CSI 3505 Algorithmes Voraces
Principales composantes d'une approche vorace : 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 : Une procédure de sélection, qui choisit le prochain item à inclure dans l'ensemble. 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. Une vérification de la solution, qui détermine si le nouvel ensemble constitue une solution à l'instance du problème. 2/23/2019 Dr. Nejib Zaguia
8
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/23/2019 Dr. Nejib Zaguia
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.