Formelsammlung für Mathematik, Physik, Astronomie, Chemie, Biologie und Informatik
Goldbarren kaufen
  Startseite Formelsammlung bookmarken Bookmark setzen Sitemap anzeigen Sitemap Impressum anzeigen Impressum
 
» Formelsammlung:
» Startseite
» Astronomie
» Biologie
» BWL
» Chemie
» Informatik
» Mathematik
» Physik

» Interaktiv:
» Forum
» Lexikon
» Mitmachen
» Links zu Uns
» Surftipps

» Informationen:
» Kontakt
» Impressum
» Über Formel-Sammlung.de

» Partnerseiten:
  www.schuelerlexikon.de

» Partner:
  Etiketten
Kostenlose Kochrezepte
Künstler Verzeichnis
Schilder
Spieleforum
Witze & SMS Sprüche

Backtracking



Sie befinden Sie in: Formelsammlung Lexikon > b > Backtracking
Backtracking
Backtracking arbeitet nach dem Prinzip der Tiefensuche
vergrößern
Backtracking arbeitet nach dem Prinzip der Tiefensuche

Das Backtracking bezeichnet einen englischen Begriff als "Rückverfolgung" für eine Problemlösungsmethode innerhalb der Algorithmik.

Backtracking ist eine Programmierstrategie, die nach dem Prinzip "Trial and Error" (Versuch und Irrtum) vorgeht. Unterschiedliche Algorithmen (je nach Problemstellung) wählen einen von mehreren Lösungswegen aus und verfolgen ihn über seine Entscheidungsknoten so lange, bis die Lösung gefunden worden ist, oder der Weg sich als definitiv falsch herausgestellt hat.

Ist dies der Fall, kehrt man zum letzten Entscheidungsknoten zurück und wählt einen anderen Weg. Auf diese Weise werden von Entscheidungsknoten zu Entscheidungsknoten so viele Wege ausprobiert, bis einer ans Ziel führt.


Inhaltsverzeichnis
1 Allgemeiner Algorithmus
2 Zeitkomplexität
3 Beispiele

3.1 acht-Damenproblem
3.2 Springerproblem
3.3 Rucksackproblem
3.4 Färbeproblem
3.5 Problem des Handlungsreisenden

4 Bedeutung

 

Allgemeiner Algorithmus

 Funktion FindeLoesung (Stufe, Vektor)
 1. wiederhole solange es noch neue Teil-Lösungsschritte gibt:
     a) wähle einen neuen Teil-Lösungsschritt schritt;
     b) falls Wahl gültig ist:
            I) erweitere Vektor um Wahl;
           II) falls Vektor vollständig ist, return true, // Lösung gefunden!
        sonst: 
           falls (FindeLoesung(Stufe+1, Vektor)) return true; // Lösung!
           sonst mache Wahl rückgängig; // Sackgasse (Backtracking)!
 2. Gibt es keinen neuen Teil-Lösungsschritt: return false // Keine Lösung!

Zeitkomplexität

Bei der Tiefensuche werden bei maximal z möglichen Verzweigungen von jeder Teillösung aus und einem Lösungsbaum mit maximaler Tiefe von N im schlechtesten Fall 1 + z + z2 + z3 + ... + zN Knoten erweitert.

Die Tiefensuche und somit auch Backtracking haben im schlechtesten Fall mit O(zN) eine exponentielle Laufzeit. Bei großer Suchtiefe n und Verzweigungsgrad z > 1 dauert die Suche somit oft sehr lange. Daher ist das Backtracking primär für Probleme mit einem kleinen Lösungsbaum geeignet.

Es gibt jedoch Methoden, mit welchen die Zeitkomplexität eines Backtrackingalgorithmus verringert werden kann. Diese sind u.a.:

  • Heuristiken
  • Akzeptanz von Näherungslösungen & Fehlertoleranz
  • Durchschnittliche Eingabemenge

 

Beispiele

Bekannte Probleme, die sich mit Backtracking lösen lassen, sind u.a.:

 

acht-Damenproblem

(verallgemeinert: n-Damenproblem)

Gegeben ist ein Schachbrett mit 64 Feldern (= acht Spalten bzw. Reihen). Man positioniere nun acht Damen so, dass sie sich nicht gegenseitig schlagen können.

 

Springerproblem

Gegeben ist ein Schachbrett mit B Feldern. Ein Springer kann N = 8 verschiedene Sprünge ausführen. Gesucht ist ein Weg, bei welchem alle Felder genau einmal besucht werden (Springerweg). Mit Hilfe von Backtracking können alle möglichen Wege systematisch "abgesprungen" werden. Ein Zug ist dabei gültig, wenn das neue Feld innerhalb des Spielfeldes liegt und unbesucht ist.

 

Rucksackproblem

Gegeben ist ein Rucksack mit der Tragfähigkeit B. Weiterhin sind N Gegenstände mit Werten und Gewichten gegeben. Nun sollen Gegenstände ausgewählt werden, die in der Summe einen maximalen Wert ergeben, aber deren Gesamtgewicht die Tragfähigkeit des Rucksacks nicht überschreitet.

 

Färbeproblem

Gegeben sind B Länder, welche mit N verschiedenen Farben eingefärbt werden sollen. Gesucht ist eine Farbkombination, bei welcher alle Länder, die eine gemeinsame Grenze besitzen, unterschiedlich eingefärbt sind.

 

 

Problem des Handlungsreisenden

Gegeben sind N Orte und die Entfernungen zwischen ihnen. Gesucht ist nun eine Rundreise, die alle Orte besucht, zum Ausgangspunkt zurückkehrt und dabei die eine minimale Gesamtlänge hat.

 

Bedeutung

Das Backtracking-Verfahren hat besonders auf die Programmiersprache PROLOG großen Einfluss. Backtracking ist in PROLOG schon 'eingebaut'.


Lexikon Eintrag Drucken | Dokument als PDF downloaden
Dieser Artikel stammt aus Wikipedia, der freien Enzyklopädie
und steht unter der GNU Free Documentation Licence. 

zum Seitenanfang

» Formel Suche:
  Gebe einfach den Gesuchten Begriff ein.
 
 
» Unterstüzt von:
Duden Paetec Schulbuchverlage

zum Formelsammlung Forum

» Anzeigen:
 
 
       
Diese Seite wurde in 0.007 Sekunden erstellt - 51 Besucher Online.
© 2004 by Formel-Sammlung.de & DUDEN PAETEC GmbH Alle Rechte vorbehalten