it-swarm.com.de

Was ist der Unterschied zwischen gierigem und heuristischem Algorithmus?

Was ist der Unterschied zwischen gierigem und heuristischem Algorithmus?

Ich habe einige Artikel über das Argument gelesen und es scheint mir, dass sie mehr oder weniger die gleiche Art von Algorithmus sind, da ihr Hauptmerkmal darin besteht, bei jeder Iteration die beste (lokale) Option zu wählen, um ein Problem zu lösen.

16
Giuseppe Pes

Die Heuristik wurde mir so beschrieben, dass es "Faustregeln" sind. Ihre Fähigkeit, eine global optimale Lösung zu erstellen, ist möglicherweise nicht direkt nachweisbar, aber in der Regel leisten sie gute Arbeit. Sie werden häufig verwendet, wenn die Kosten für die Ermittlung einer optimalen Lösung zu hoch sind. Darüber hinaus kodieren die Heuristiken oft eine Erfahrung darüber, wie das Problem in der Vergangenheit gelöst wurde. Eine bessere Art, eine Heuristik zu beschreiben, ist eine "Lösungsstrategie".

Ein gieriger Algorithmus ist einer, der Entscheidungen auf der Grundlage dessen trifft, was im Moment am besten aussieht. Mit anderen Worten, Entscheidungen sind lokal optimal, aber nicht unbedingt global optimal (es könnte sein, dass Sie Glück haben, aber Sie können es nicht beweisen). Darüber hinaus verfeinert ein Greedy-Algorithmus seine Lösung normalerweise nicht auf der Grundlage neuer Informationen. Dies ist nur eine Lösungsstrategie (auch eine Heuristik).

Um ein Beispiel für die Funktionsweise eines gierigen Algorithmus zu geben: Wenn Sie einen Algorithmus verwenden, der Sie beim Planen einer Route für die Fahrt von einer Seite des Landes zur anderen in kürzester Entfernung unterstützt, würden Sie wahrscheinlich die kurzen, langsamen Straßen wählen. Es würde nicht unbedingt verstehen, dass eine Autobahn, obwohl länger und vielleicht direkter, die bessere Option wäre.

Eine alternative Strategie (Heuristik) könnte versuchen, einen möglichst großen Teil der Fahrt über Autobahnen abzudecken (da diese für die meisten Ziele eher direkter sind), und dann normale Straßen für den Übergang nutzen. Unter bestimmten Umständen würde es wahrscheinlich ziemlich mies sein, aber in den meisten Fällen würde es gut funktionieren, und um ehrlich zu sein, ist es wahrscheinlich eine ähnliche Heuristik, die wir alle beim Pendeln verwenden (wenn Sie kein Navigationsgerät verwenden).

Einpacken ...

  • Sind alle Heuristiken, gierige Algorithmen - Nein

  • Sind alle gierige Algorithmen, Heuristiken - Im Allgemeinen ja.

Um etwas Hintergrundwissen zu vermitteln, war eines der ersten Probleme, das mir in meiner Algorithmusklasse an der Universität beigebracht wurde, das Traveling Salesman Problem . Es gehört zu der NP-vollständigen Klasse von Problemen, was bedeutet, dass es keine effizienten Lösungsmöglichkeiten gibt. Das heißt, wenn die Größe des Problems zunimmt, wächst die Zeit, die benötigt wird, um eine Lösung zu finden, erheblich. Es gibt eine Reihe von nachweisbaren Algorithmen, deren Leistung jedoch nicht großartig ist. In realen Anwendungen tendieren wir dazu, Heuristiken zu bevorzugen (dazu gehören Greedy-Algorithmen - siehe Link).

15
Sam Delaney

ihr Hauptmerkmal ist die Wahl der besten (lokalen) Option bei jeder Iteration

Für Heuristiken überhaupt nicht zutreffend. Heuristische Algorithmen treffen Entscheidungen, von denen bekannt ist, dass sie theoretisch suboptimal sind, sich aber in der Praxis bewährt haben, um vernünftige Ergebnisse zu erzielen. Heuristiken finde normalerweise eine ungefähre Lösung:

In der Informatik, der künstlichen Intelligenz und der mathematischen Optimierung ist eine Heuristik eine Technik, mit der ein Problem schneller zu lösen ist, wenn klassische Methoden zu langsam sind, oder um eine ungefähre Lösung zu finden, wenn klassische Methoden keine exakte Lösung finden. Dies wird durch den Handel mit Optimalität, Vollständigkeit, Genauigkeit oder Geschwindigkeit erreicht.

Gierig ist ein Beispiel für Heuristik (die beste lokale Wahl treffen und auf das optimale globale Ergebnis hoffen), aber das bedeutet nicht, dass Heuristiken gierig sind. Es gibt viele Heuristiken, die völlig unabhängig von gierig sind, z. genetische Algorithmen gelten als heuristisch :

Im Informatikbereich der künstlichen Intelligenz ist ein genetischer Algorithmus (GA) eine Suchheuristik, die den Prozess der natürlichen Selektion nachahmt. 

4
Remus Rusanu

Gierig wird gesagt, wenn Sie Elemente nacheinander zur Lösung zusammenfassen (einer Wahlstrategie folgen) und niemals zurückverfolgen . Beispiel: Die direkte Auswahl kann als gierige Prozedur betrachtet werden.

Heuristik ist ein Oberbegriff, der jede ad-hoc/intuitive Regel bezeichnet, die verwendet wird, um das Verhalten eines Algorithmus zu verbessern, jedoch ohne Gewähr. Beispiel: Die Median-of-Three-Regel zur Auswahl des Pivots in Quicksort.

3
Yves Daoust

Dies sind zwei verschiedene Dinge: Gierige Algorithmen versuchen, bei jeder Iteration "die beste Wahl" zu treffen (wenn Sie beispielsweise Kanten in einem Diagramm nach ihrer Länge auswählen, wird dies die längste/kürzeste Kante sein, die in jeder Iteration möglich ist). Gierige Algorithmen liefern eine exakte Lösung!

Heuristische Algorithmen verwenden Wahrscheinlichkeit und Statistik, um zu vermeiden, dass alle Möglichkeiten durchlaufen werden und eine "geschätzte beste Lösung" bereitgestellt wird (was bedeutet, dass eine bessere Lösung nur geringfügig besser ist). 

1
alfasin

Hinweis: Ich bin mir nicht sicher, was folgt für mich und meinen "sozialen Kreis" oder ist ein Standard - globales Konzept.

In meinen Augen ist ein heuristischer Algorithmus, wie Wikipedia sagt:

eine Heuristik ist eine Technik, mit der ein Problem schneller zu lösen ist, wenn klassische Methoden zu langsam sind, oder um eine ungefähre Lösung zu finden, wenn klassische Methoden keine exakte Lösung finden. Dies wird durch den Handel mit Optimalität, Vollständigkeit, Genauigkeit oder Geschwindigkeit erreicht.

Ein gieriger Algorithmus dagegen ist das, was Sie beschrieben haben: Ein Algorithmus, der versucht, die beste Lösung zu finden, indem er bei jedem Schritt die beste Option auswählt. Das wars so ziemlich. Dies bedeutet nichts über die Lösung: Manchmal bietet ein gieriger Algorithmus die perfekte und optimale Lösung, während es manchmal eine Heuristik ist -> ungefähre (nicht perfekte), aber schnellere Lösung.

0
LeartS