Sokoban:( Enhancing(general(single2agent( search(methods(using(domain( knowledge8
Andreas Junghanns – Jonathan Schaeffer presented by Pascal Düblin
Sokoban:( Enhancing(general(single2agent( - - PowerPoint PPT Presentation
Sokoban:( Enhancing(general(single2agent( search(methods(using(domain( knowledge8 Andreas Junghanns Jonathan Schaeffer presented by Pascal Dblin What(is(Sokoban?8 Computer game Example: Goal: o Push stones with the man
Andreas Junghanns – Jonathan Schaeffer presented by Pascal Düblin
(smiley) on goal squares (red shaded squares)
and isn‘t on a goal square, the game is lost
Property( Specifics( 240Puzzle( Rubik‘s8Cube( Sokoban( Branching(factor8 Average8 Range8 2.378 1238 13.358 122158 128 021368 Solution(length8 Average8 Range8 100+8 12unkown8 188 12208 2608 9726748 Search2space(size8 Upper(bound8 10358 10198 10988 Calculation(of8 Lower(bound8 Full8 Incremental8 O(n)8 O(1)8 O(n)8 O(1)8 O(n3)8 O(n2)8 Underlying(graph8 Undirected8 Undirected8 Directed8
search
search
nearest goal square
IDA*
stone
nearest and reachable goal squares
1 A B8 C 2 3
the goal square of a stone is not always the nearest
18 A 28 B8 38 C 28 68 98 ∞ ∞ ∞ 68 28 18 1 A B8 C 2 3
the goal square of a stone is not always the nearest
18 A 28 B8 38 C 28 68 98 ∞ ∞ ∞ 68 28 18 Goals:( A( B( C( 1( 28 6( 98 2( 6( 28 28 3( 28 18 2( 1 A B8 C 2 3
closer at h*
enormous reduction of the search space
Goals:( A( B( C( 1( 28 6( 98 2( 6( 28 28 3( 28 18 2( 1 A B8 C 2 3
actions first.
above
stones, wall squares and the man
check state against the deadlock table
Combine a group of moves
made all at once
Combine a group of moves
made all at once
Combine a group of moves
made all at once
Combine a group of moves
made all at once
Combine a group of moves
made all at once
squares are often grouped in a gaol area
can be split in two subproblems:
squares are often grouped in a gaol area
can be split in two subproblems:
square
squares are often grouped in a gaol area
can be split in two subproblems:
square
square
problem and room, in which specified order the man has to push the stones on their goal squares.
entrance square, the goal macro will be executed
grouped to one
moves are ignored
macro (stone reaches a entrance square), all childs of the parent of „b“ will be pruned
b
a8 b8 Goal( macro8 c8 (d8
macro (stone reaches a entrance square), all childs of the parent of „b“ will be pruned
with move „c“ and „d“ is pruned after the goal macro is reached
a8 b8 Goal( macro8 c8 (d8
macro (stone reaches a entrance square), all childs of the parent of „b“ will be pruned
with move „c“ and „d“ is pruned after the goal macro is reached
estimation (Slide: Overestimation)
deadlock pattern
pattern table
pattern search table
independent subproblems
number of moves influence it
relevance:
1. Alternatives 2. Goal-Skew 3. Connection 4. Tunnel
reach goal from n
but no longer optimal
(penalties calculated from pattern search)
(less strictness)
#8 solved( In8prop.8 to890( In8prop.8 to857( #8less8 solved8 without8this8 approach( In8prop.8 to890( In8prop.8 To857(
Transposition(table8 58 5.6%8 8.8%8 198 21.1%8 33.3%8 Move(ordering8 48 4.4%8 7.0%8 0218 021.1%8 021.8%8 Deadlock(table8 58 5.6%8 8.8%8 0218 021.1%8 021.8%8 Tunnel(macros8 68 6.7%8 10.5%8 0218 021.1%8 021.8%8 Goal(macros8 178 18.9%8 29.8%8 338 36.7%8 57.9%8 Goal(cuts8 248 26.7%8 42.1%8 0218 021.1%8 021.8%8 Pa_ern(search8 488 53.3%8 84.2%8 228 24.4%8 38.6%8 Relevance(cuts8 508 55.6%8 87.7%8 0218 021.1%8 021.8%8 Overestimation8 548 60%8 94.7%8 0218 021.1%8 021.8%8 RR(Restart8 578 63.3%8 100%8 0218 021.1%8 021.8%8
#8 solved( In8prop.8 to890( In8prop.8 to857( #8less8 solved8 without8this8 approach( In8prop.8 to890( In8prop.8 To857(
Minimum(matching8 08 0%8 0%8 0218 021.1%8 021.8%8 Transposition(table8 58 5.6%8 8.8%8 198 21.1%8 33.3%8 Move(ordering8 48 4.4%8 7.0%8 0218 021.1%8 021.8%8 Deadlock(table8 58 5.6%8 8.8%8 0218 021.1%8 021.8%8 Tunnel(macros8 68 6.7%8 10.5%8 0218 021.1%8 021.8%8 Goal(macros8 178 18.9%8 29.8%8 338 36.7%8 57.9%8 Goal(cuts8 248 26.7%8 42.1%8 0218 021.1%8 021.8%8 Pa_ern(search8 488 53.3%8 84.2%8 228 24.4%8 38.6%8 Relevance(cuts8 508 55.6%8 87.7%8 0218 021.1%8 021.8%8 Overestimation8 548 60%8 94.7%8 0218 021.1%8 021.8%8 RR(Restart8 578 63.3%8 100%8 0218 021.1%8 021.8%8
#8 solved( In8prop.8 to890( In8prop.8 to857( #8less8 solved8 without8this8 approach( In8prop.8 to890( In8prop.8 To857(
Minimum(matching8 08 0%8 0%8 0218 021.1%8 021.8%8 Transposition(table8 58 5.6%8 8.8%8 198 21.1%8 33.3%8 Move(ordering8 48 4.4%8 7.0%8 0218 021.1%8 021.8%8 Deadlock(table8 58 5.6%8 8.8%8 0218 021.1%8 021.8%8 Tunnel(macros8 68 6.7%8 10.5%8 0218 021.1%8 021.8%8 Goal(macros8 178 18.9%8 29.8%8 338 36.7%8 57.9%8 Goal(cuts8 248 26.7%8 42.1%8 0218 021.1%8 021.8%8 Pa_ern(search8 488 53.3%8 84.2%8 228 24.4%8 38.6%8 Relevance(cuts8 508 55.6%8 87.7%8 0218 021.1%8 021.8%8 Overestimation8 548 60%8 94.7%8 0218 021.1%8 021.8%8 RR(Restart8 578 63.3%8 100%8 0218 021.1%8 021.8%8
#8 solved( In8prop.8 to890( In8prop.8 to857( #8less8 solved8 without8this8 approach( In8prop.8 to890( In8prop.8 To857(
Minimum(matching8 08 0%8 0%8 0218 021.1%8 021.8%8 Transposition(table8 58 5.6%8 8.8%8 198 21.1%8 33.3%8 Move(ordering8 48 4.4%8 7.0%8 0218 021.1%8 021.8%8 Deadlock(table8 58 5.6%8 8.8%8 0218 021.1%8 021.8%8 Tunnel(macros8 68 6.7%8 10.5%8 0218 021.1%8 021.8%8 Goal(macros8 178 18.9%8 29.8%8 338 36.7%8 57.9%8 Goal(cuts8 248 26.7%8 42.1%8 0218 021.1%8 021.8%8 Pa_ern(search8 488 53.3%8 84.2%8 228 24.4%8 38.6%8 Relevance(cuts8 508 55.6%8 87.7%8 0218 021.1%8 021.8%8 Overestimation8 548 60%8 94.7%8 0218 021.1%8 021.8%8 RR(Restart8 578 63.3%8 100%8 0218 021.1%8 021.8%8
08 108 208 308 408 508 608 Minimum(matching( Transposition(table8 Move(ordering8 Deadlock(table8 Tunnel(macros8 Goal(macros8 Goal(cuts8 Pa_ern(search8 Relevance(cuts8 Overestimation8 RRR8 #(of(solved(without( enhancement8 #(of(lost(solved( problems8
space like sokoban problems, domain- dependent approaches can help solving them
to find domain- dependent knowledge is to study the problem solutions
implement and solve domain-independent problems
domain-dependent knowledge can result in a greatly improved search performance