L17: Loopback Schemes, Backjumping Flashcards
What is a look-ahead scheme?
Invoked when an algorithm is preparing to extend the current partial assignment.
Include:
- Variable/value ordering heuristics.
- Propagation schemes, such as MAC, FC.
What is a look-back scheme?
Invoked when dead-end encountered, algorithm prepares for backtracking step.
There are 2 types of look-back schemes:
- Conflict-recording
- Backjumping
How do we classify backtrack?
Backtrack is both the simplest lookahead scheme:
- Just check against past assignments.
And the simplest look-back scheme:
- Backtrack chronologically to the previous variable.
Reminder: What is thrashing?
Repeated failure for the same reason.
We can reduce thrashing with variable ordering- but generally the ‘right’ ordering is unknown.
What is backjumping?
Replace chronological backtracking with a
jump back to the variable that is causing the dead-end.
How this variable is determined depends on the look-forward scheme (e.g. BT vs FC).
What is the limitation of backjumping?
After one jump, backjumping resorts to chronological backtracking.
This is because it jups back to the maximum level checked against. When an assignment to Xdepth is consistent, checks must have been made up to Xdepth - 1.
Why do we not jump back to the maximum level failed against?
This leads to incompleteness, meaning we may miss the solution.
What is conflict-directed backjumping?
When trying assignments to xk, maintain the set of assignments failed against.
When jumping back from xk to xi, combine their conflict sets.
- Avoids forgetting other assignments that were conflicting with xk.
- Allows multiple backward jumps.