look back search
play

Look Back Search Cedric Geissmann University Basel October 31, - PowerPoint PPT Presentation

Look Back Search Cedric Geissmann University Basel October 31, 2014 Outline Backtracking 1 Backjumping 2 Gaschnigs Backjumping Graph-Based Backjumping Conflict-Directed Backjumping Learning 3 Graph-Based Learning Conflict-Directed


  1. Look Back Search Cedric Geissmann University Basel October 31, 2014

  2. Outline Backtracking 1 Backjumping 2 Gaschnig’s Backjumping Graph-Based Backjumping Conflict-Directed Backjumping Learning 3 Graph-Based Learning Conflict-Directed Learning

  3. Backtracking Backjumping Learning Backtracking Backtracking is a basic algorithm used to solve a CSP Backtracking has to explore every node in a search tree Search space can be reduced by Look-ahead Cedric Geissmann Look Back Search

  4. Backtracking Backjumping Learning Motivation Example Cedric Geissmann Look Back Search

  5. Backtracking Backjumping Learning Motivation Example Cedric Geissmann Look Back Search

  6. Backtracking Backjumping Learning Motivation Example Cedric Geissmann Look Back Search

  7. Backtracking Backjumping Learning Motivation Example Cedric Geissmann Look Back Search

  8. Backtracking Backjumping Learning Motivation Example Cedric Geissmann Look Back Search

  9. Backtracking Backjumping Learning Motivation Example Cedric Geissmann Look Back Search

  10. Backtracking Backjumping Learning Motivation Example Cedric Geissmann Look Back Search

  11. Backtracking Backjumping Learning Motivation Example Cedric Geissmann Look Back Search

  12. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Gaschnig’s Backjumping Cedric Geissmann Look Back Search

  13. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Dead-End Definition (Dead-End) A dead-end state at level i indicates that a current partial instantiation � a i = ( a 1 , . . . , a i ) conflicts with every possible value of x i +1 . ( a 1 , . . . , a i ) is called a dead-end state, and x i +1 is called a dead-end variable. Cedric Geissmann Look Back Search

  14. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Dead-End Example Cedric Geissmann Look Back Search

  15. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Dead-End Example Cedric Geissmann Look Back Search

  16. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Leaf Dead-End Definition (Leaf Dead-End) a i = ( a 1 , . . . , a i ) be a consistent tuple. If � Let � a i is in conflict with x i +1 , it is called a leaf dead-end and x i +1 is a leaf dead-end variable. Cedric Geissmann Look Back Search

  17. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Culprit Variable Definition (Culprit Variable) Let � a i = ( a 1 , . . . , a i ) be a leaf dead-end. The culprit index relative to � a i is defined by b = min { j ≤ i | � a j conflicts with x i +1 } . We define the culprit variable of � a i to be x b . Cedric Geissmann Look Back Search

  18. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Culprit Variable Example Cedric Geissmann Look Back Search

  19. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Culprit Variable Example Cedric Geissmann Look Back Search

  20. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping No-Good Definition (No-Good) Given a network R = ( X , D , C ) Any partial instantiation ¯ a that does not appear in any solution of R is called a no-good. Minimal no-goods have no no-good subtuples. Cedric Geissmann Look Back Search

  21. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Safe Jump Definition (Safe Jump) Let � a i = ( a 1 , . . . , a i ) be a leaf dead-end. x j is save when j ≤ i and � a j = ( a i , . . . , a j ) is a no-good Cedric Geissmann Look Back Search

  22. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Safe Jump Example Cedric Geissmann Look Back Search

  23. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Gaschnig’s Backjumping Algorithm Gaschnig’s Backjumping Algorithm Cedric Geissmann Look Back Search

  24. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Gaschnig’s Backjumping Algorithm i ← 1; D ′ i ← D i ; latest i ← 0; while 1 ≤ i ≤ n do instantiate x i ← SELECT-VALUE-GBJ; if x i is null then i ← latest i ; else i ← i + 1; D ′ i ← D i ; latest i ← 0; end end if i = 0 then return ”inconsistent” else return instantiated values of { x 1 , . . . , x n } end Cedric Geissmann Look Back Search

  25. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Gaschnig’s Backjumping Algorithm i ← 1; D ′ i ← D i ; latest i ← 0; while 1 ≤ i ≤ n do instantiate x i ← SELECT-VALUE-GBJ; if x i is null then i ← latest i ; else i ← i + 1; D ′ i ← D i ; latest i ← 0; end end if i = 0 then return ”inconsistent” else return instantiated values of { x 1 , . . . , x n } end Cedric Geissmann Look Back Search

  26. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Gaschnig’s Backjumping Algorithm i ← 1; D ′ i ← D i ; latest i ← 0; while 1 ≤ i ≤ n do instantiate x i ← SELECT-VALUE-GBJ; if x i is null then i ← latest i ; else i ← i + 1; D ′ i ← D i ; latest i ← 0; end end if i = 0 then return ”inconsistent” else return instantiated values of { x 1 , . . . , x n } end Cedric Geissmann Look Back Search

  27. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Gaschnig’s Backjumping Algorithm i ← 1; D ′ i ← D i ; latest i ← 0; while 1 ≤ i ≤ n do instantiate x i ← SELECT-VALUE-GBJ; if x i is null then i ← latest i ; else i ← i + 1; D ′ i ← D i ; latest i ← 0; end end if i = 0 then return ”inconsistent” else return instantiated values of { x 1 , . . . , x n } end Cedric Geissmann Look Back Search

  28. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Gaschnig’s Backjumping Algorithm i ← 1; D ′ i ← D i ; latest i ← 0; while 1 ≤ i ≤ n do instantiate x i ← SELECT-VALUE-GBJ; if x i is null then i ← latest i ; else i ← i + 1; D ′ i ← D i ; latest i ← 0; end end if i = 0 then return ”inconsistent” else return instantiated values of { x 1 , . . . , x n } end Cedric Geissmann Look Back Search

  29. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Gaschnig’s Backjumping Algorithm i ← 1; D ′ i ← D i ; latest i ← 0; while 1 ≤ i ≤ n do instantiate x i ← SELECT-VALUE-GBJ; if x i is null then i ← latest i ; else i ← i + 1; D ′ i ← D i ; latest i ← 0; end end if i = 0 then return ”inconsistent” else return instantiated values of { x 1 , . . . , x n } end Cedric Geissmann Look Back Search

  30. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping Gaschnig’s Backjumping Algorithm i ← 1; D ′ i ← D i ; latest i ← 0; while 1 ≤ i ≤ n do instantiate x i ← SELECT-VALUE-GBJ; if x i is null then i ← latest i ; else i ← i + 1; D ′ i ← D i ; latest i ← 0; end end if i = 0 then return ”inconsistent” else return instantiated values of { x 1 , . . . , x n } end Cedric Geissmann Look Back Search

  31. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping SELECT-VALUE-GBJ SELECT-VALUE-GBJ Cedric Geissmann Look Back Search

  32. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping SELECT-VALUE-GBJ while D ′ i is not empty do select an arbitrary element a ∈ D ′ i , and remove a from D ′ i ; consistent ← true ; k ← 1; while k < i and consistent do if k > latest i then latest i ← k ; if not consistent ( � a k , x i = a ) then consistent ← false else k ← k + 1 end end if consistent then return a ; end return null Cedric Geissmann Look Back Search

  33. Backtracking Gaschnig’s Backjumping Backjumping Graph-Based Backjumping Learning Conflict-Directed Backjumping SELECT-VALUE-GBJ while D ′ i is not empty do select an arbitrary element a ∈ D ′ i , and remove a from D ′ i ; consistent ← true ; k ← 1; while k < i and consistent do if k > latest i then latest i ← k ; if not consistent ( � a k , x i = a ) then consistent ← false else k ← k + 1 end end if consistent then return a ; end return null Cedric Geissmann Look Back Search

Recommend


More recommend