CSP - Backtracking Flashcards

1
Q

Wie ist der Pseudoalgorithmus vom Backtracking?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist der wesentliche Vorteil des Backtracking-Algorithmus gegenüber der normalen Tiefensuche bei CSPs?

A

Der Backtracking-Algorithmus prüft während der Suche aktiv die Constraints und verwirft frühzeitig ungültige Teilzuweisungen. Dadurch vermeidet er unnötige Berechnungen und reduziert den Suchraum, während die normale Tiefensuche alle möglichen Zuweisungen prüft, auch wenn sie von Anfang an inkonsistent sind.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist das First-Fail-Prinzip?

A

Das First-Fail-Prinzip ist eine Strategie bei der Lösung von CSPs, die zuerst die Variable auswählt, die am schwierigsten zuzuweisen ist (z. B. mit der kleinsten Domäne). Ziel ist es Konflikte frühzeitig erkennen, um unnötige Berechnungen zu vermeiden und den Suchprozess effizienter zu machen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was sind typische First-Fail-Heuristiken?

A
  • Belege die Variable mit den meisten Constraints zu den bisher belegten Variablen.
  • Belege die Variable mit den meisten starken Constraints zu den bisher belegten Variablen.
  • Belege die Variable mit dem kleinsten Wertebereich.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was macht Forward Checking?

A

Forward Checking überprüft nach jeder Variablenzuweisung, wie sich diese auf die Domänen der noch unbelegten Variablen auswirkt. Falls eine Domäne leer wird (keine gültigen Werte mehr), wird der aktuelle Pfad abgebrochen.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Welche Schwächen von Backtracking werden durch Forward Checking minimiert?

A
  1. Spätes Erkennen von Konflikten: Backtracking erkennt Konflikte oft erst nach vollständiger Belegung, während Forward Checking diese frühzeitig erkennt.
  2. Unnötige Berechnungen: Backtracking prüft viele inkonsistente Pfade, die Forward Checking frühzeitig ausschließt.
  3. Ineffizienz bei großen CSPs: Backtracking durchsucht oft große Teilräume, die Forward Checking durch Domänenreduktion vermeidet.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist der Pseudocode für Forward Checking?

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wie unterscheiden sich der Zeit- und Speicheraufwand von Forward Checking und Backtracking?

A

Forward Checking hat einen Quadratischen Rechenaufwand was im Vergleich zum exponentiellen Rechenaufwand für Backtracking billig ist. Der Speicheraufwand ist jedoch erheblich höher.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Welche First-Fail-Heuristiken werden häufig bei Constraintpropagierungstechniken verwendet?

A
  1. MRV (Minimum Remaining Values): Wähle die Variable mit der kleinsten Domäne (wenigste verbleibende Werte).
  2. Wähle die Variable, die mit den meisten Constraints verbunden ist.

Hinweis: MRV wird häufig in Kombination mit der Gradheuristik als Tiebreaker verwendet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Warum ist Forward Checking bei n-stelligen Constraints mit n>2 wenig effektiv?

A

Bei n-stelligen Constraints mit n>2:
Es müssen n−1 Variablen belegt sein, bevor das Constraint überprüft werden kann. Dadurch bleibt der Suchbaum auf den ersten n−1 Ebenen breit und hat einen hohen Verzweigungsgrad.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wann funktioniert Forward Checking besonders gut und wann weniger effektiv?

A
  • Besonders gut: Bei restriktiven Constraints, z. B. Gleichheitsconstraints, da diese die Domänen der Variablen stark einschränken.
  • Wenig effektiv: Bei schwachen Constraints, z. B. Ungleichheitsconstraints, da diese nur minimale Einschränkungen der Domänen bewirken.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly