Was ist der Unterschied zwischen Backtracking und Branch and Bound?

Inhaltsverzeichnis:

Anonim

Der Hauptunterschied zwischen Backtracking und Branch and Bound besteht darin, dass das Backtracking ist ein Algorithmus zum Erfassen einiger oder aller Lösungen für gegebene Rechenprobleme, insbesondere für Beschränkungserfüllungsprobleme, während Branch and Bound ein Algorithmus ist, um die optimale Lösung für viele Optimierungsprobleme zu finden, insbesondere in der diskreten und kombinatorischen Optimierung.

Ein Algorithmus ist eine methodische Abfolge von Schritten zur Lösung eines bestimmten Problems. Es gibt verschiedene Algorithmen, und zwei davon sind Backtracking und Branch and Bound.

Backtracking, Branch and Bound

Was ist Backtracking?

Backtracking ist ein Algorithmus, der das Problem rekursiv löst. Es ist eine systematische Methode, verschiedene Entscheidungsfolgen auszuprobieren, um die richtige Entscheidung zu finden. Es ermittelt die Lösung, indem es den Lösungsraum des gegebenen Problems methodisch durchsucht.

Alle Lösungen für das Backtracking müssen einen komplexen Satz expliziter und impliziter Einschränkungen erfüllen. Die explizite Einschränkung begrenzt jedes zu wählende Vektorelement aus der gegebenen Menge. Darüber hinaus findet die implizite Einschränkung die Tupel im Lösungsraum, die die Kriteriumsfunktion erfüllen können.

Was ist Branch and Bound

Branch and Bound ist besser geeignet für Situationen, in denen wir die gierige Methode und die dynamische Programmierung nicht anwenden können. Normalerweise ist dieser Algorithmus langsam, da er im schlimmsten Fall eine exponentielle Zeitkomplexität erfordert, aber manchmal arbeitet er mit angemessener Effizienz. Diese Methode hilft jedoch, die globale Optimierung in nichtkonvexen Problemen zu bestimmen.

Um ein Problem zu lösen, teilt dieses Verfahren außerdem das gegebene Teilproblem in mindestens zwei neue eingeschränkte Teilprobleme auf.

Unterschied zwischen Backtracking und Branch and Bound

Definition

Backtracking ist ein Algorithmus zum Auffinden aller Lösungen für einige Rechenprobleme, insbesondere bei Problemen der Zufriedenheit mit Einschränkungen, der inkrementell Kandidaten für die Lösungen erstellt. Branch and Bound ist ein Algorithmus für diskrete und kombinatorische Optimierungsprobleme und mathematische Optimierung. Dies ist also der Hauptunterschied zwischen Backtracking und Branch and Bound.

Verfahren

Darüber hinaus findet das Backtracking die Lösung des Gesamtproblems, indem es eine Lösung für das erste Teilproblem findet und rekursiv andere Teilprobleme basierend auf der Lösung des ersten Problems löst. Branch and Bound löst jedoch ein gegebenes Problem, indem es in mindestens zwei neue eingeschränkte Teilprobleme unterteilt wird. Daher ist dies ein weiterer Unterschied zwischen Backtracking und Branch and Bound.

Effizienz

Abschluss

Backtracking ist ein Algorithmus zum Erfassen einiger oder aller Lösungen für bestimmte Rechenprobleme, insbesondere für Probleme mit der Erfüllung von Einschränkungen. Branch and Bound hingegen ist ein Algorithmus, um optimale Lösungen für viele Optimierungsprobleme zu finden, insbesondere in der diskreten und kombinatorischen Optimierung. Das ist der Hauptunterschied zwischen Backtracking und Branch and Bound.

Referenz:

1. „DAA-Algorithmus-Entwurfstechniken – Javatpoint.“ www.javatpoint.com, hier verfügbar.2. „Einführung zum Backtracking – Javatpoint.“ www.javatpoint.com, hier verfügbar.3. "Rückverfolgung." Wikipedia, Wikimedia Foundation, 7. Dezember 2018, hier verfügbar.4. "Zweig und gebunden." Wikipedia, Wikimedia Foundation, 8. Oktober 2018, hier verfügbar.5. „Was ist Rückverfolgung? – Definition von Techopedia.“ Techopedia.com, hier verfügbar.

Bild mit freundlicher Genehmigung:

1. „Algorithmen vs. Programmiersprachen” Von Lubaochuan – Eigene Arbeit (CC BY-SA 4.0) über Commons Wikimedia

Was ist der Unterschied zwischen Backtracking und Branch and Bound?