look back search - ai.dmi.unibas.ch · backtracking is a basic algorithm used to solve a csp...
TRANSCRIPT
![Page 1: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/1.jpg)
Look Back Search
Cedric Geissmann
University Basel
October 31, 2014
![Page 2: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/2.jpg)
Outline
1 Backtracking
2 BackjumpingGaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
3 LearningGraph-Based LearningConflict-Directed Learning
![Page 3: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/3.jpg)
BacktrackingBackjumping
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
![Page 4: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/4.jpg)
BacktrackingBackjumping
Learning
Motivation Example
Cedric Geissmann Look Back Search
![Page 5: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/5.jpg)
BacktrackingBackjumping
Learning
Motivation Example
Cedric Geissmann Look Back Search
![Page 6: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/6.jpg)
BacktrackingBackjumping
Learning
Motivation Example
Cedric Geissmann Look Back Search
![Page 7: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/7.jpg)
BacktrackingBackjumping
Learning
Motivation Example
Cedric Geissmann Look Back Search
![Page 8: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/8.jpg)
BacktrackingBackjumping
Learning
Motivation Example
Cedric Geissmann Look Back Search
![Page 9: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/9.jpg)
BacktrackingBackjumping
Learning
Motivation Example
Cedric Geissmann Look Back Search
![Page 10: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/10.jpg)
BacktrackingBackjumping
Learning
Motivation Example
Cedric Geissmann Look Back Search
![Page 11: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/11.jpg)
BacktrackingBackjumping
Learning
Motivation Example
Cedric Geissmann Look Back Search
![Page 12: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/12.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Gaschnig’s Backjumping
Cedric Geissmann Look Back Search
![Page 13: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/13.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Dead-End
Definition (Dead-End)
A dead-end state at level i indicates that a current partialinstantiation ~ai = (a1, . . . , ai ) conflicts with every possiblevalue of xi+1.
(a1, . . . , ai ) is called a dead-end state, and xi+1 is called adead-end variable.
Cedric Geissmann Look Back Search
![Page 14: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/14.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Dead-End Example
Cedric Geissmann Look Back Search
![Page 15: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/15.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Dead-End Example
Cedric Geissmann Look Back Search
![Page 16: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/16.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Leaf Dead-End
Definition (Leaf Dead-End)
Let ~ai = (a1, . . . , ai ) be a consistent tuple. If ~ai is in conflict withxi+1, it is called a leaf dead-end and xi+1 is a leaf dead-endvariable.
Cedric Geissmann Look Back Search
![Page 17: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/17.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Culprit Variable
Definition (Culprit Variable)
Let ~ai = (a1, . . . , ai ) be a leaf dead-end.
The culprit index relative to ~ai is defined byb = min{j ≤ i | ~aj conflicts with xi+1}.We define the culprit variable of ~ai to be xb.
Cedric Geissmann Look Back Search
![Page 18: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/18.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Culprit Variable Example
Cedric Geissmann Look Back Search
![Page 19: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/19.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Culprit Variable Example
Cedric Geissmann Look Back Search
![Page 20: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/20.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
No-Good
Definition (No-Good)
Given a network R = (X ,D,C )
Any partial instantiation a that does not appear in anysolution of R is called a no-good.
Minimal no-goods have no no-good subtuples.
Cedric Geissmann Look Back Search
![Page 21: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/21.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Safe Jump
Definition (Safe Jump)
Let ~ai = (a1, . . . , ai ) be a leaf dead-end. xj is save when
j ≤ i and
~aj = (ai , . . . , aj) is a no-good
Cedric Geissmann Look Back Search
![Page 22: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/22.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Safe Jump Example
Cedric Geissmann Look Back Search
![Page 23: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/23.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Gaschnig’s Backjumping Algorithm
Gaschnig’s Backjumping Algorithm
Cedric Geissmann Look Back Search
![Page 24: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/24.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Gaschnig’s Backjumping Algorithm
i ← 1; D ′i ← Di ; latesti ← 0;
while 1 ≤ i ≤ n doinstantiate xi ← SELECT-VALUE-GBJ;if xi is null then
i ← latesti ;else
i ← i + 1; D ′i ← Di ; latesti ← 0;end
endif i = 0 then
return ”inconsistent”else
return instantiated values of {x1, . . . , xn}end
Cedric Geissmann Look Back Search
![Page 25: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/25.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Gaschnig’s Backjumping Algorithm
i ← 1; D ′i ← Di ; latesti ← 0;
while 1 ≤ i ≤ n do
instantiate xi ← SELECT-VALUE-GBJ;if xi is null then
i ← latesti ;else
i ← i + 1; D ′i ← Di ; latesti ← 0;end
endif i = 0 then
return ”inconsistent”else
return instantiated values of {x1, . . . , xn}end
Cedric Geissmann Look Back Search
![Page 26: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/26.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Gaschnig’s Backjumping Algorithm
i ← 1; D ′i ← Di ; latesti ← 0;while 1 ≤ i ≤ n do
instantiate xi ← SELECT-VALUE-GBJ;
if xi is null theni ← latesti ;
elsei ← i + 1; D ′i ← Di ; latesti ← 0;
end
endif i = 0 then
return ”inconsistent”else
return instantiated values of {x1, . . . , xn}end
Cedric Geissmann Look Back Search
![Page 27: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/27.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Gaschnig’s Backjumping Algorithm
i ← 1; D ′i ← Di ; latesti ← 0;while 1 ≤ i ≤ n do
instantiate xi ← SELECT-VALUE-GBJ;if xi is null then
i ← latesti ;
elsei ← i + 1; D ′i ← Di ; latesti ← 0;
end
endif i = 0 then
return ”inconsistent”else
return instantiated values of {x1, . . . , xn}end
Cedric Geissmann Look Back Search
![Page 28: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/28.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Gaschnig’s Backjumping Algorithm
i ← 1; D ′i ← Di ; latesti ← 0;while 1 ≤ i ≤ n do
instantiate xi ← SELECT-VALUE-GBJ;if xi is null then
i ← latesti ;else
i ← i + 1; D ′i ← Di ; latesti ← 0;
end
endif i = 0 then
return ”inconsistent”else
return instantiated values of {x1, . . . , xn}end
Cedric Geissmann Look Back Search
![Page 29: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/29.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Gaschnig’s Backjumping Algorithm
i ← 1; D ′i ← Di ; latesti ← 0;while 1 ≤ i ≤ n do
instantiate xi ← SELECT-VALUE-GBJ;if xi is null then
i ← latesti ;else
i ← i + 1; D ′i ← Di ; latesti ← 0;end
endif i = 0 then
return ”inconsistent”else
return instantiated values of {x1, . . . , xn}end
Cedric Geissmann Look Back Search
![Page 30: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/30.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Gaschnig’s Backjumping Algorithm
i ← 1; D ′i ← Di ; latesti ← 0;while 1 ≤ i ≤ n do
instantiate xi ← SELECT-VALUE-GBJ;if xi is null then
i ← latesti ;else
i ← i + 1; D ′i ← Di ; latesti ← 0;end
endif i = 0 then
return ”inconsistent”else
return instantiated values of {x1, . . . , xn}end
Cedric Geissmann Look Back Search
![Page 31: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/31.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
SELECT-VALUE-GBJ
SELECT-VALUE-GBJ
Cedric Geissmann Look Back Search
![Page 32: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/32.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-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 > latesti then latesti ← k ;if not consistent(~ak , xi = a) then
consistent ← falseelse
k ← k + 1end
endif consistent then return a ;
endreturn null
Cedric Geissmann Look Back Search
![Page 33: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/33.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-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 > latesti then latesti ← k ;if not consistent(~ak , xi = a) then
consistent ← falseelse
k ← k + 1end
endif consistent then return a ;
endreturn null
Cedric Geissmann Look Back Search
![Page 34: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/34.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
SELECT-VALUE-GBJ
while D ′i is not empty doselect an arbitrary element a ∈ D ′i , and remove a from D ′i ;
consistent ← true; k ← 1;
while k < i and consistent doif k > latesti then latesti ← k ;if not consistent(~ak , xi = a) then
consistent ← falseelse
k ← k + 1end
endif consistent then return a ;
endreturn null
Cedric Geissmann Look Back Search
![Page 35: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/35.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
SELECT-VALUE-GBJ
while D ′i is not empty doselect an arbitrary element a ∈ D ′i , and remove a from D ′i ;consistent ← true;k ← 1;
while k < i and consistent doif k > latesti then latesti ← k ;if not consistent(~ak , xi = a) then
consistent ← falseelse
k ← k + 1end
endif consistent then return a ;
endreturn null
Cedric Geissmann Look Back Search
![Page 36: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/36.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
SELECT-VALUE-GBJ
while D ′i is not empty doselect an arbitrary element a ∈ D ′i , and remove a from D ′i ;consistent ← true;k ← 1;while k < i and consistent do
if k > latesti then latesti ← k ;
if not consistent(~ak , xi = a) thenconsistent ← false
elsek ← k + 1
end
endif consistent then return a ;
endreturn null
Cedric Geissmann Look Back Search
![Page 37: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/37.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
SELECT-VALUE-GBJ
while D ′i is not empty doselect an arbitrary element a ∈ D ′i , and remove a from D ′i ;consistent ← true;k ← 1;while k < i and consistent do
if k > latesti then latesti ← k ;if not consistent(~ak , xi = a) then
consistent ← false;
elsek ← k + 1;
end
endif consistent then return a ;
endreturn null
Cedric Geissmann Look Back Search
![Page 38: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/38.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
SELECT-VALUE-GBJ
while D ′i is not empty doselect an arbitrary element a ∈ D ′i , and remove a from D ′i ;consistent ← true;k ← 1;while k < i and consistent do
if k > latesti then latesti ← k ;if not consistent(~ak , xi = a) then
consistent ← false;else
k ← k + 1;
end
endif consistent then return a ;
endreturn null
Cedric Geissmann Look Back Search
![Page 39: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/39.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
SELECT-VALUE-GBJ
while D ′i is not empty doselect an arbitrary element a ∈ D ′i , and remove a from D ′i ;consistent ← true;k ← 1;while k < i and consistent do
if k > latesti then latesti ← k ;if not consistent(~ak , xi = a) then
consistent ← false;else
k ← k + 1;end
end
if consistent then return a ;
endreturn null
Cedric Geissmann Look Back Search
![Page 40: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/40.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
SELECT-VALUE-GBJ
while D ′i is not empty doselect an arbitrary element a ∈ D ′i , and remove a from D ′i ;consistent ← true;k ← 1;while k < i and consistent do
if k > latesti then latesti ← k ;if not consistent(~ak , xi = a) then
consistent ← false;else
k ← k + 1;end
endif consistent then return a ;
end
return null
Cedric Geissmann Look Back Search
![Page 41: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/41.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Gaschnig’s Backjumping
Jumps back to its culprit variable at leaf dead-ends.
Only performs safe jumps.
Performs a maximal jump but only in leaf dead-ends.
Uses simple backtracking on internal dead-ends.
Cedric Geissmann Look Back Search
![Page 42: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/42.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Graph-Based Backjumping
Cedric Geissmann Look Back Search
![Page 43: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/43.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Ancestor, Parent
Definition (Ancestor, Parent)
Ancestor set of a variable x
all variables that precede x
and are connected to x
The parent of a variable x
is the most recent variable in the ancestor set of x
Cedric Geissmann Look Back Search
![Page 44: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/44.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Ancestor Example
Cedric Geissmann Look Back Search
![Page 45: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/45.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Invistit, Session
Definition (Invisit, Session)
Invisit of xi
Processing a variable coming from an earlier variable.
Session of xi
starts on invisit of xi
ends when at least as high as xi
holds all variables processed since invisit of xi
xi is included in its session
See example on whiteboard.
Cedric Geissmann Look Back Search
![Page 46: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/46.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Relevant Dead-Ends
Definition (Relevant Dead-Ends)
The relevant dead-ends of xi ’s session are
just xi if xi is a leaf dead-end.
the union of its current relevant dead-ends and the onesencountered in the session.
See example on whiteboard.
Cedric Geissmann Look Back Search
![Page 47: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/47.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Induced Ancestors, Graph-Based Culprit
Definition (Induced Ancestors, Graph-Based Culprit)
The induced ancestor set of xi
is the union of all ancestors for every relevant dead-end in xi ’ssession.
The graph-based culprit
is the induced parent of xi
or the latest variable in xi ’s induced ancestor set.
Cedric Geissmann Look Back Search
![Page 48: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/48.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Induced Ancestors, Graph-Based Culprit Examples
Example
I4({x4}) = {x1, x2}I4({x4, x6}) = {x1, x2, x3}
Cedric Geissmann Look Back Search
![Page 49: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/49.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Induced Ancestors, Graph-Based Culprit Examples
Example
I4({x4})
= {x1, x2}I4({x4, x6}) = {x1, x2, x3}
Cedric Geissmann Look Back Search
![Page 50: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/50.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Induced Ancestors, Graph-Based Culprit Examples
Example
I4({x4}) = {x1, x2}
I4({x4, x6}) = {x1, x2, x3}
Cedric Geissmann Look Back Search
![Page 51: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/51.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Induced Ancestors, Graph-Based Culprit Examples
Example
I4({x4}) = {x1, x2}I4({x4, x6})
= {x1, x2, x3}
Cedric Geissmann Look Back Search
![Page 52: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/52.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Induced Ancestors, Graph-Based Culprit Examples
Example
I4({x4}) = {x1, x2}I4({x4, x6}) = {x1, x2, x3}
Cedric Geissmann Look Back Search
![Page 53: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/53.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Graph-Based Backjumping Algorithm
Graph-Based Backjumping Algorithm
Cedric Geissmann Look Back Search
![Page 54: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/54.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Graph-Based Backjumping Algorithm
compute anc(xi ) for each xi ;
i ← 1; D ′i ← Di ; Ii ← anc(xi );while 1 ≤ i ≤ n do
instantiate xi ← SELECT-VALUE;if xi is null then
iprev ← i ; i ← latest index in Ii ; Ii ← Ii ∪ Iiprev − {xi};else
i ← i + 1; D ′i ← Di ; Ii ← anc(xi );end
endif i = 0 then
return ”inconsistent”else
return instantiated values of {x1, . . . , xn}end
Cedric Geissmann Look Back Search
![Page 55: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/55.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Graph-Based Backjumping Algorithm
compute anc(xi ) for each xi ;
i ← 1; D ′i ← Di ; Ii ← anc(xi );
while 1 ≤ i ≤ n doinstantiate xi ← SELECT-VALUE;if xi is null then
iprev ← i ; i ← latest index in Ii ; Ii ← Ii ∪ Iiprev − {xi};else
i ← i + 1; D ′i ← Di ; Ii ← anc(xi );end
endif i = 0 then
return ”inconsistent”else
return instantiated values of {x1, . . . , xn}end
Cedric Geissmann Look Back Search
![Page 56: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/56.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Graph-Based Backjumping Algorithm
compute anc(xi ) for each xi ;i ← 1; D ′i ← Di ; Ii ← anc(xi );
while 1 ≤ i ≤ n do
instantiate xi ← SELECT-VALUE;if xi is null then
iprev ← i ; i ← latest index in Ii ; Ii ← Ii ∪ Iiprev − {xi};else
i ← i + 1; D ′i ← Di ; Ii ← anc(xi );end
endif i = 0 then
return ”inconsistent”else
return instantiated values of {x1, . . . , xn}end
Cedric Geissmann Look Back Search
![Page 57: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/57.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Graph-Based Backjumping Algorithm
compute anc(xi ) for each xi ;i ← 1; D ′i ← Di ; Ii ← anc(xi );while 1 ≤ i ≤ n do
instantiate xi ← SELECT-VALUE;
if xi is null theniprev ← i ; i ← latest index in Ii ; Ii ← Ii ∪ Iiprev − {xi};
elsei ← i + 1; D ′i ← Di ; Ii ← anc(xi );
end
endif i = 0 then
return ”inconsistent”else
return instantiated values of {x1, . . . , xn}end
Cedric Geissmann Look Back Search
![Page 58: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/58.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Graph-Based Backjumping Algorithm
compute anc(xi ) for each xi ;i ← 1; D ′i ← Di ; Ii ← anc(xi );while 1 ≤ i ≤ n do
instantiate xi ← SELECT-VALUE;if xi is null then
iprev ← i ; i ← latest index in Ii ; Ii ← Ii ∪ Iiprev − {xi};else
i ← i + 1; D ′i ← Di ; Ii ← anc(xi );end
endif i = 0 then
return ”inconsistent”else
return instantiated values of {x1, . . . , xn}end
Cedric Geissmann Look Back Search
![Page 59: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/59.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Graph-Based Backjumping Algorithm
compute anc(xi ) for each xi ;i ← 1; D ′i ← Di ; Ii ← anc(xi );while 1 ≤ i ≤ n do
instantiate xi ← SELECT-VALUE;if xi is null then
iprev ← i ; i ← latest index in Ii ; Ii ← Ii ∪ Iiprev − {xi};else
i ← i + 1; D ′i ← Di ; Ii ← anc(xi );
end
endif i = 0 then
return ”inconsistent”else
return instantiated values of {x1, . . . , xn}end
Cedric Geissmann Look Back Search
![Page 60: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/60.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Graph-Based Backjumping Algorithm
compute anc(xi ) for each xi ;i ← 1; D ′i ← Di ; Ii ← anc(xi );while 1 ≤ i ≤ n do
instantiate xi ← SELECT-VALUE;if xi is null then
iprev ← i ; i ← latest index in Ii ; Ii ← Ii ∪ Iiprev − {xi};else
i ← i + 1; D ′i ← Di ; Ii ← anc(xi );end
endif i = 0 then
return ”inconsistent”else
return instantiated values of {x1, . . . , xn}end
Cedric Geissmann Look Back Search
![Page 61: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/61.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Graph-Based Backjumping Algorithm
compute anc(xi ) for each xi ;i ← 1; D ′i ← Di ; Ii ← anc(xi );while 1 ≤ i ≤ n do
instantiate xi ← SELECT-VALUE;if xi is null then
iprev ← i ; i ← latest index in Ii ; Ii ← Ii ∪ Iiprev − {xi};else
i ← i + 1; D ′i ← Di ; Ii ← anc(xi );end
endif i = 0 then
return ”inconsistent”else
return instantiated values of {x1, . . . , xn}end
Cedric Geissmann Look Back Search
![Page 62: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/62.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
SELECT-VALUE
SELECT-VALUE
Cedric Geissmann Look Back Search
![Page 63: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/63.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
SELECT-VALUE
while D ′i is not empty do
select an arbitrary element a ∈ D ′i , and remove a from D ′i ;if consistent(~ai−1, xi = a) then
return aend
endreturn null
Cedric Geissmann Look Back Search
![Page 64: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/64.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
SELECT-VALUE
while D ′i is not empty do
select an arbitrary element a ∈ D ′i , and remove a from D ′i ;
if consistent(~ai−1, xi = a) thenreturn a
end
endreturn null
Cedric Geissmann Look Back Search
![Page 65: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/65.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
SELECT-VALUE
while D ′i is not empty doselect an arbitrary element a ∈ D ′i , and remove a from D ′i ;if consistent(~ai−1, xi = a) then
return aend
endreturn null
Cedric Geissmann Look Back Search
![Page 66: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/66.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
SELECT-VALUE
while D ′i is not empty doselect an arbitrary element a ∈ D ′i , and remove a from D ′i ;if consistent(~ai−1, xi = a) then
return aend
end
return null
Cedric Geissmann Look Back Search
![Page 67: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/67.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Graph-Based Backjumping
Can also jump on internal dead-ends.
Only relies on information from the constraint graph.
Cedric Geissmann Look Back Search
![Page 68: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/68.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Conflict-Directed Backjumping
Cedric Geissmann Look Back Search
![Page 69: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/69.jpg)
BacktrackingBackjumping
Learning
Gaschnig’s BackjumpingGraph-Based BackjumpingConflict-Directed Backjumping
Conflict-Directed Backjumping
Combines the ideas of Gaschnig’s and Graph-BasedBackjumping.
When detecting a dead-end xi+1, jump back to the latestvariable in its jumpback set.
Cedric Geissmann Look Back Search
![Page 70: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/70.jpg)
BacktrackingBackjumping
Learning
Graph-Based LearningConflict-Directed Learning
Learning
Cedric Geissmann Look Back Search
![Page 71: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/71.jpg)
BacktrackingBackjumping
Learning
Graph-Based LearningConflict-Directed Learning
Learning
Learn from dead-ends to exclude further occur of the samedead-ends.
Add no-goods to the constraints.
Better than backjumping, leads to a smaller tree.
Cedric Geissmann Look Back Search
![Page 72: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/72.jpg)
BacktrackingBackjumping
Learning
Graph-Based LearningConflict-Directed Learning
Graph-Based Learning
Uses graph information collected during the search
Learn the no-good from a dead-end, that the previousconflicting variables may not be instantiated like this.
Small overhead, information does not need to be computed.
Disadvantage: No-goods can be very long and appear late inthe search tree.
Cedric Geissmann Look Back Search
![Page 73: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/73.jpg)
BacktrackingBackjumping
Learning
Graph-Based LearningConflict-Directed Learning
Conflict-Directed Learning
Uses information gathered during the search.
Learn the no-good from a dead-end, that the previousconflicting variables may not be instantiated like this.
Small overhead, information are already computed.
Better than Graph-Based Learning, no-goods occur earlier inthe search.
Cedric Geissmann Look Back Search
![Page 74: Look Back Search - ai.dmi.unibas.ch · 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](https://reader031.vdocuments.mx/reader031/viewer/2022041916/5e69d2854ae3983c1d375308/html5/thumbnails/74.jpg)
Questions?