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.)
( S, C)SCS f:2S→RS
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.