Il est bien établi que , pour chaque matroïde et toute fonction de pondération , il sort un algorithme qui renvoie une base pondérale maximale de . Alors, la direction inverse est-elle également vraie? Autrement dit, s'il existe un algorithme gourmand, il doit également y avoir une structure matroïde.
ds.algorithms
greedy-algorithms
Jan Johannsen
la source
la source
Réponses:
En fait, la description complète et générale d'un problème pouvant être résolu par un algorithme gourmand est une intégration matroïde , qui généralise à la fois le concept de matroïde et celui de greedoïde . La réponse est non - un problème résolu par un algorithme gourmand n'a pas besoin d'avoir une structure matroïde, mais il aura la structure d'une intégration matroïde (ce qui est, hélas, beaucoup plus compliqué).
Un modèle mental pour une partie de ceci pourrait être de trouver des arbres couvrant minimum. La structure utilisée par l'algorithme de Kruskal est un matroïde, mais celle utilisée par l'algorithme de Prim (qui nécessite un nœud de départ) ne l'est pas. (Il s'agit cependant d'un greedoid — et d'un matroïde.)
L'algorithme gourmand, défini en fonction de ce formalisme, est assez simple: vous commencez avec l'ensemble vide et ajoutez successivement un seul élément jusqu'à ce que vous atteigniez une base, en vous assurant toujours que (i) votre ensemble est faisable à chaque étape, et ( ii) l'élément que vous ajoutez maximise la fonction objective du résultat résultant, wrt. tous les éléments alternatifs que vous auriez pu ajouter. (C'est-à-dire, conceptuellement, vous essayez d'ajouter toutes les alternatives possibles et choisissez celle qui donne la valeur objective la plus élevée.)
Vous pourriez peut-être affirmer qu'il pourrait y avoir d'autres formes d'algorithme gourmand, mais il existe plusieurs manuels sur les algorithmes et l'optimisation combinatoire qui décrivent cet algorithme basé sur le système de jeu comme l' algorithme gourmand. Cela ne vous empêche pas de décrire quelque chose qui ne vous convient pas, mais qui pourrait tout de même être qualifié de gourmand, je suppose. (Pourtant, cela ne rien de couverture qui pourrait avoir une structure matroıde, par exemple, mais il est beaucoup plus général.)
Ce que Helman et al. faire, c'est qu'ils décrivent quand cet algorithme fonctionnera. Plus précisement:
Ils montrent que pour les fonctions objectives linéaires (où la valeur objective est la somme des poids des éléments), l'algorithme gourmand travaillera exactement sur la structure qu'ils définissent comme une intégration matroïde;
Ils donnent une caractérisation similaire pour les objectifs dits goulots d'étranglement (où la valeur objective d'un ensemble est égale au minimum sur les poids des éléments individuels); et
Ils donnent une caractérisation exacte des fonctions objectives (au-delà des fonctions linéaires) optimisées par l'algorithme gourmand sur les plongements matroïdes.
la source
L'algorithme gourmand n'est pas un concept formellement défini. Il existe différents modèles essayant de capturer cette notion intuitive mais il n'y a pas de consensus sur ce qu'est un algorithme gourmand. À moins que vous ne spécifiiez une définition formelle de ce que vous entendez par un algorithme gourmand, la question ne peut être répondue par oui ou par non.
Il existe une généralisation des matroïdes appelés greedoid qui s'inspire des algorithmes gourmands que vous voudrez peut-être regarder.
la source
Considérez les problèmes suivants: EURO CHAINING-CHAINING: Étant donné un nombre infini de billets de 1,2,5,10 euros, payez X euros en utilisant le moins de billets possible. Cela peut être résolu en utilisant un algorithme gourmand, qui prend la plus grande note possible. Mais il n'y a pas de structure matroïde dans ce problème.
COUVERTURE DES TROUS: Il y a des trous dans les positions x_1, x_2, ..., x_n. Vous avez un patch de longueur 10 cm. Patcher les trous en utilisant le moins de patchs possible. Encore une fois, cela peut être résolu de manière gourmande (il suffit de mettre le patch le plus à droite possible), mais il n'y a pas de structure matroïde.
la source