web-dev-qa-db-fra.com

Quelle est la différence entre un algorithme glouton et heuristique?

Quelle est la différence entre un algorithme glouton et heuristique?

J'ai lu des articles sur l'argument et il me semble qu'il s'agit plus ou moins du même type d'algorithme, car leur caractéristique principale est de choisir la meilleure option (locale) à chaque itération pour résoudre un problème.

16
Giuseppe Pes

La façon dont les heuristiques m'ont été décrites est qu'elles sont des "règles empiriques". Leur capacité à produire une solution globale optimale n’est peut-être pas directement prouvable, mais en général, ils font du bon travail. Ils sont souvent utilisés lorsque le coût de la détermination d'une solution optimale est trop élevé. De plus, les heuristiques codent souvent un degré d'expérience sur la manière dont le problème a été résolu par le passé. Une meilleure façon de décrire une heuristique est une "stratégie de résolution".

Un algorithme Greedy est un algorithme qui fait des choix en fonction de ce qui est le mieux pour le moment. En d'autres termes, les choix sont localement optimaux mais pas nécessairement globalement optimaux (ce pourrait être si vous avez de la chance mais vous ne pouvez pas le prouver). De plus, un algorithme de Greedy n’affine généralement pas sa solution en fonction de nouvelles informations. Ce n’est qu’une stratégie de résolution (par exemple, une heuristique).

Pour donner un exemple de la façon dont un algorithme glouton pourrait fonctionner, si vous en utilisiez un pour vous aider à planifier un itinéraire pour circuler d'un bout à l'autre du pays sur la distance la plus courte, il choisirait probablement les routes courtes et lentes. Il ne comprendrait pas nécessairement qu'une autoroute, bien que plus longue et peut-être plus directe, serait la meilleure option.

Une stratégie alternative (heuristique) pourrait viser à couvrir une grande partie du trajet en utilisant les autoroutes (car pour la plupart des destinations, elles tendent à être plus directes), puis à recourir à des routes normales pour faire la transition. Dans certaines circonstances, la performance serait probablement assez moche, mais dans la plupart des cas, elle ferait très bien et, pour être honnête, il s'agit probablement d'une heuristique similaire que nous utilisons tous lors des déplacements (si vous n'utilisez pas de satnav).

Emballer...

  • Sont toutes des heuristiques, des algorithmes gloutons - Non

  • Sont tous des algorithmes gloutons, heuristiques - En général, oui.

Pour vous aider à vous situer un peu en arrière-plan, l’un des premiers problèmes que j’avais appris dans mon cours d’algorithmique à l’université était le problème du vendeur itinérant . Il appartient à la classe de problèmes NP-complète, ce qui signifie qu’il n’existe aucun moyen efficace de le résoudre. Autrement dit, à mesure que le problème s'agrandit, le temps nécessaire pour trouver une solution augmente considérablement. Il existe un certain nombre d'algorithmes prouvables mais leurs performances sont médiocres et dans les applications du monde réel, nous avons tendance à privilégier les heuristiques (qui incluent les algorithmes Greedy - voir le lien).

15
Sam Delaney

leur caractéristique principale est de choisir la meilleure option (locale) à chaque itération

Pas du tout vrai pour les heuristiques. Les algorithmes heuristiques font des choix dont on sait qu’ils sont théoriquement sous-optimaux, mais dont il a été prouvé qu’ils produisaient des résultats raisonnables. Heuristique trouve généralement un approximatif solution:

En informatique, en intelligence artificielle et en optimisation mathématique, une heuristique est une technique conçue pour résoudre un problème plus rapidement lorsque les méthodes classiques sont trop lentes, ou pour trouver une solution approchée lorsque les méthodes classiques ne parviennent pas à trouver une solution exacte. Ceci est obtenu en optimisant, en complétant, en précision ou en précision la rapidité de négociation.

Greedy est un exemple d'heuristique (faire le meilleur choix local et espérer un résultat global optimal), mais cela ne signifie pas que les heuristiques sont gourmandes. Il existe de nombreuses heuristiques sans aucun rapport avec les gourmands, par exemple. les algorithmes génétiques sont considérés comme heuristiques :

Dans le domaine informatique de l'intelligence artificielle, un algorithme génétique (GA) est une heuristique de recherche imitant le processus de sélection naturelle. 

4
Remus Rusanu

On dit gourmand quand on regroupe des éléments un par un à la solution (en suivant une stratégie de choix) et/ ne jamais revenir en arrière . Exemple: le tri par sélection directe peut être considéré comme une procédure gourmande.

Heuristique est un terme générique qui désigne toute règle ad-hoc/intuitive utilisée dans l'espoir d'améliorer le comportement d'un algorithme, mais sans garantie. Exemple: la règle de la médiane de trois utilisée pour choisir le pivot dans Quicksort.

3
Yves Daoust

Ce sont deux choses différentes: les algorithmes gloutons essaient de choisir "le meilleur choix" à chaque itération (par exemple, si vous choisissez des arêtes dans un graphique en fonction de leur longueur, cela sélectionnera l'arête la plus longue/la plus courte possible à chaque itération). Les algorithmes gloutons fournissent une solution exacte!

Les algorithmes heuristiques utilisent des probabilités et des statistiques afin d’éviter toutes les possibilités et fournissent une "meilleure solution estimée" (ce qui signifie que si une meilleure solution existe, elle ne sera que légèrement meilleure). 

1
alfasin

Avis: / Je ne suis pas sûr que ce qui suit s'applique à moi et à mon "cercle social" ou constitue un concept standard - global.

Dans mon esprit, un algorithme heuristique est, comme le dit Wikipedia:

une heuristique est une technique conçue pour résoudre un problème plus rapidement lorsque les méthodes classiques sont trop lentes, ou pour trouver une solution approchée lorsque les méthodes classiques ne parviennent pas à trouver une solution exacte. Ceci est obtenu en optimisant, en complétant, en précision ou en précision la rapidité de négociation.

Vous avez par contre décrit un algorithme glouton: un algorithme qui tente de trouver la meilleure solution en sélectionnant la meilleure option à chaque étape. C'est à peu près tout. Cela n'implique rien sur la solution: un algorithme glouton fournit parfois la solution parfaite et optimale, alors que d'autres fois, il peut s'agir d'une solution heuristique -> approximative (pas parfaite) mais plus rapide.

0
LeartS