Frage

Was ist der Unterschied zwischen einem heuristischen und einem Algorithmus?

War es hilfreich?

Lösung

Ein Algorithmus ist die Beschreibung einer automatisierte Lösung für ein Problem . Was der Algorithmus tut, ist genau definiert. Die Lösung könnte oder könnte nicht die beste sein, aber Sie wissen von Anfang an, welche Art von Ergebnis Sie erhalten. Sie implementieren die Algorithmus eine Programmiersprache zu bekommen (einen Teil) ein Programm .

Nun sind einige Probleme hart, und Sie können nicht in der Lage sein, eine akzeptable Lösung in akzeptabler Zeit zu bekommen. In solchen Fällen kann man oft eine nicht allzu schlecht Lösung viel schneller, indem sie einige willkürliche Entscheidungen Anwendung (Vermutungen). Das ist ein Heuristik

Eine Heuristik ist immer noch eine Art eines Algorithmus, aber eine, die nicht alle möglichen Zustände des Problems erkunden, oder wird damit beginnen, die am ehesten diejenigen zu entdecken.

Typische Beispiele sind von den Spielen. Wenn ein Schachspiel Programm schreiben könnte man sich vorstellen, jede mögliche Bewegung in einiger Tiefen Ebene versuchen und eine Bewertungsfunktion in den Vorstand der Anwendung. Eine Heuristik würde ausschließen voll Zweige, die mit offensichtlich schlecht bewegt beginnen.

In einigen Fällen Sie suchen, nicht für die beste Lösung, aber für jede Lösung eine gewisse Einschränkung passt. Eine gute Heuristik würde helfen, eine Lösung in kurzer Zeit zu finden, kann aber auch jeder finden scheitern, wenn die einzigen Lösungen in den Staaten sind wählt es nicht zu versuchen.

Andere Tipps

  • Ein Algorithmus ist in der Regel deterministisch und bewies ein optimales Ergebnis zu erzielen
  • Eine Heuristik hat keinen Beweis für die Richtigkeit, beinhaltet oft zufällige Elemente und nicht optimale Ergebnisse erzielen.

, für die viele Probleme kein effizienter Algorithmus eine optimale Lösung zu finden, ist bekannt, haben heuristische Ansätze, die Ausbeute nahezu optimale Ergebnisse sehr schnell.

Es gibt einige Überschneidungen: „genetische Algorithmen“ ist ein akzeptierter Begriff, aber streng genommen, das sind Heuristiken, nicht Algorithmen

.

Heuristic, kurz gesagt eine „Vermutung“. Wikipedia erklärt es schön. Am Ende wird eine „allgemeine Akzeptanz“ Methode als eine optimale Lösung für das angegebene Problem gemacht.

  

Heuristik ist ein Adjektiv für   erfahrungsbasierte Techniken, die helfen,   bei der Problemlösung, Lernen und   Entdeckung. Ein heuristisches Verfahren wird verwendet,   um schnell zu einer Lösung zu kommen, die sind   nahe zu sein bestmöglichen hoffte   Antwort oder ‚optimale Lösung‘.   Heuristiken sind „Faustregeln“,   Vermutungen, intuitive Urteile   oder einfach gesunder Menschenverstand. Eine Heuristik ist   ein allgemeiner Weg, um ein Problem zu lösen.   Heuristik als Substantiv ist ein anderer Name   für heuristische Methoden.

     

In Genauer gesagt, Heuristik   Verwendung für Strategien stehen leicht   zugänglich, wenn auch lose anwendbar,   Informationen zur Steuerung der Problemlösung   in Menschen und Maschinen.

Während ein Algorithmus ist ein Verfahren enthält, endliche Menge von Anweisungen zur Lösung eines Problems verwendet. Das Verfahren wurde für das Problem mathematisch oder wissenschaftlich zu arbeiten bewährt. Es gibt formale Methoden und Beweise.

  

Heuristic Algorithmus ist ein Algorithmus, der Lage ist, ein zu produzieren   akzeptable Lösung für ein Problem in   viele praktische Szenarien, in der   Art eines allgemeinen heuristischen, sondern   für die es keinen formalen Beweis   seine Richtigkeit.

Eigentlich glaube ich nicht, dass es eine Menge gemeinsam zwischen ihnen. Einige Algorithmus Verwendung Heuristik in ihrer Logik (oft weniger Berechnungen zu machen oder schneller Ergebnisse erzielen). Normalerweise Heuristiken sind in dem so genannten Greedy-Algorithmus verwendet.

Heuristik ist einig „Wissen“, dass wir gut ist, um den Einsatz übernehmen die beste Wahl in unserem Algorithmus zu erhalten (wenn eine Wahl getroffen werden soll). Zum Beispiel ... eine Heuristik in Schach sein könnte (nehmen Sie immer die Königin Gegner, wenn Sie können, da Sie wissen, ist dies die stärkere Figur). Heuristiken Sie nicht garantieren, dass Sie auf die richtige Antwort führen wird, aber oft Antwort (wenn die Annahmen korrekt sind) erhalten, die in vielen kürzeren Zeit nahe am besten ist.

An Algorithmus ist eine in sich geschlossene Schritt-für-Schritt-Satz von Operationen durchgeführt 4 , typischerweise als eine endliche Folge von (Computern oder Menschen) interpretierten Anweisungen, um eine Lösung für ein Problem zu ermitteln, wie beispielsweise: ist es ein Weg von A nach B, oder, was der kleinste Pfad zwischen A und B. im letzteren Fall könnten Sie auch mit einer ‚ziemlich nahe‘ alternativen Lösung erfüllt werden.

Es gibt bestimmte Kategorien von Algorithmen, von denen der heuristischen Algorithmus ist. In Abhängigkeit von den (bewährten) Eigenschaften des Algorithmus in diesem Fall fällt er in eine dieser drei Kategorien (Anmerkung 1):

  • Exact : Die Lösung erwiesen ist ein optimal sein ( oder genau Lösung) mit dem Eingang Problem
  • Angleichung : die Abweichung der Lösung Wert nachgewiesen seine nie weiter weg von dem optimalen Wert als einige vordefinierte gebunden (zum Beispiel nie mehr als 50% größer als der optimalen Wert)
  • Heuristic : der Algorithmus ist nicht als optimal erwiesen, noch innerhalb einer vordefinierten der optimalen Lösung gebunden

Beachten Sie, dass eine Annäherung Algorithmus ist auch eine heuristische, aber mit der stärkeren Eigenschaft, dass es eine auf die Lösung (Wert) gebunden bewährt es gibt.

Für einige Probleme hat niemand jemals einen ‚effizient‘ Algorithmus zur Berechnung der optimalen Lösungen (Anmerkung 2). Eines dieser Probleme ist die bekannte Reisen Salesman Problem. Christophides' Algorithmus für das Reisen Salesman Problem, zum Beispiel verwendet, um ein Heuristik genannt werden, da sie nicht, dass es innerhalb von 50% der optimalen Lösung war bewiesen. Da es sich bewährt hat, jedoch Christophides' Algorithmus ist genauer als Annäherung Algorithmus bezeichnet.

Aufgrund von Einschränkungen auf, was Computer tun kann, ist es nicht immer möglich, effizient finden Sie die am besten Lösung möglich. Wenn es genug Struktur in einem Problem ist, kann es eine effiziente Möglichkeit, den Lösungsraum zu überqueren, obwohl der Lösungsraum ist riesig (das heißt in dem kürzesten Weg Problem).

Heuristiken sind in der Regel angewendet, um die Laufzeit von Algorithmen zu verbessern, durch Hinzufügen von ‚Fachinformationen‘ oder ‚Vermutungen‘ die Suchrichtung zu führen. In der Praxis kann auch eine Unterroutine für einen optimalen Algorithmus eine heuristische sein, um zu bestimmen, wo sie suchen müssen zuerst .

(Anmerkung 1) : Zusätzlich sind Algorithmen gekennzeichnet durch, ob sie schließen statistische oder nicht-deterministische Elemente. Ein Algorithmus, der die gleiche Art und Weise immer ausführt und erzeugt die gleiche Antwort, heißt deterministisch.

(Anmerkung 2) : Dies ist die P vs NP-Problem genannt, und Probleme, die klassifiziert werden als NP-vollständig und NP-hart sind unwahrscheinlich, dass ein 'effizient' Algorithmus haben. Hinweis; wie @Kriss in den Kommentaren erwähnt, gibt es sogar ‚schlechter‘ Arten von Problemen, die zu berechnen exponentielle Zeit oder Raum benötigen.

Es gibt mehrere Antworten, die Antwort Teil der Frage. Ich hielt sie weniger vollständig und nicht genau genug, und beschlossen, nicht die akzeptierte Antwort gemacht durch @Kriss zu bearbeiten

Heuristiken sind Algorithmen, also in diesem Sinne gibt es keine ist jedoch Heuristik nimmt einen ‚Vermutung‘ Ansatz zur Problemlösung, wodurch man eine ‚gut genug‘ Antwort, anstatt eine ‚bestmögliche‘ Lösung zu finden.

Ein gutes Beispiel ist, wo man eine sehr harte haben (lesen NP-vollständig) Problem, das Sie eine Lösung wollen, aber nicht über die Zeit, um es zu erreichen, so eine gute genug Lösung zu verwenden, haben auf der Grundlage eines heuristischen Algorithmus wie eine Lösung für ein Handlungsreisende Problem mit einem genetischen Algorithmus zu finden.

Algorithmus ist eine Sequenz von einigen Operationen, die einen Eingang berechnet etwas (eine Funktion) gegeben, und gibt ein Ergebnis aus.

Algorithmus kann eine genaue oder ungefähre Werte ergeben.

Es kann auch einen Zufallswert berechnen, die mit hohen Wahrscheinlichkeit nahe den genauen Wert ist.

Ein heuristischer Algorithmus verwendet einen kleinen Einblick auf Eingabewerte und berechnet keinen genauen Wert (kann aber nahezu optimal sein). In einigen Sonderfällen können heuristische exakte Lösung finden.

Ein Algorithmus ist eine klar definierte Menge von Anweisungen, um ein Problem zu lösen, Heuristiken beinhalten einen Ansatz des Lernens und der Entdeckung unter Verwendung einer Lösung zu gelangen.

Also, wenn Sie wissen, wie ein Problem zu lösen dann einen Algorithmus verwenden. Wenn Sie benötigen eine Lösung, dann Heuristik ist es zu entwickeln.

Eine Heuristik ist in der Regel eine Optimierung oder eine Strategie, die in der Regel gut genug Antwort liefert, aber nicht immer und nur selten die beste Antwort. Zum Beispiel, wenn Sie das Handlungsreisende Problem mit brutaler Gewalt zu lösen waren, eine Teillösung zu verwerfen, sobald seine Kosten übersteigt, dass der aktuell beste Lösung ist eine heuristische: manchmal hilft es, ein anderes Mal dies nicht der Fall, und es ist definitiv doesn‘ t Verbesserung der theoretischen (big-o-Notation) Laufzeit des Algorithmus

Ich denke, Heuristic eher eine Einschränkung in Learning Based Modell in Artificial verwendet wird, Intelligent, da die zukünftige Lösung Staaten schwer vorhersagbar sind.

Aber dann meine Zweifel nach oben Antworten zu lesen ist „Wie würde Heuristik erfolgreich sein kann mit Stochastische Optimierungstechniken angewandt? Oder sie fungieren als vollwertiges Algorithmen, wenn sie mit stochastischer Optimierung verwendet?“

http://en.wikipedia.org/wiki/Stochastic_optimization

Eines der besten Erklärungen ich gelesen habe kommt aus dem großen Buch Code Complete , die ich jetzt zitieren:

  

Eine Heuristik ist eine Technik, die Sie nach einer Antwort suchen können. Es ist   Ergebnisse unterliegen Chance, weil eine heuristische Sie sagt nur, wie   zu sehen, nicht was zu finden. Es ist Ihnen nicht sagen, wie direkt erhalten   von Punkt A zu Punkt B; ist es vielleicht nicht einmal wissen, wo Punkt A und   Punkt B sind. In der Tat ist ein heuristisches ein Algorithmus in einem Clown-Anzug.   Es ist weniger vorhersehbaren, es mehr Spaß macht, und es kommt ohne eine 30-tägige,   Geld-zurück-Garantie.

     

Dies ist ein Algorithmus für das Fahren zu einem Haus: Nehmen Sie den Highway 167   Süden nach Puy-allup. Nehmen Sie die South Hill Mall Ausfahrt und fahren 4,5 Meilen   den Hügel hinauf. Biegen Sie an dem Licht durch das Lebensmittelgeschäft, und dann   Nimm die erste links. Biegen Sie in die Einfahrt des großen tan Haus auf   die linke, bei 714 Nordzeder.

     

Hier ist eine Heuristik für jemandes Haus bekommen: Hier finden Sie die letzte   Schreiben wir geschickt Ihnen. Fahren Sie in die Stadt in der Absenderadresse. Wann   Sie erhalten von der Stadt, fragen Sie jemanden, wo unser Haus ist. Jeder weiß   us-jemand wird sich freuen, Ihnen zu helfen. Wenn Sie niemanden finden können, rufen Sie uns   von einem öffentlichen Telefon, und wir werden Sie kommen bekommen.

     

Der Unterschied zwischen einem Algorithmus und einer Heuristik ist subtil, und die   zwei Begriffe überlappen etwas. Für die Zwecke dieses Buches, der Haupt   Unterschied zwischen den beiden ist die Dereferenzierungsebene aus dem   Lösung. Ein Algorithmus gibt Ihnen die Anweisungen direkt. EIN   heuristische erfahren Sie, wie Sie die Anweisungen für sich selbst entdecken, oder   zumindest, wo sie suchen.

Sie eine Lösung suboptimal ohne Garantie für die Qualität der Lösung finden gefunden wird, ist es offensichtlich, dass es sinnvoll, die Entwicklung von Heuristiken nur Polynom macht. Die Anwendung dieser Verfahren geeignet ist, Probleme der realen Welt oder große Probleme so umständlich aus dem Rechen Sicht zu lösen, dass für sich gibt es nicht einmal ein Algorithmus, der eine annähernde Lösung in Polynomialzeit zu finden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top