Download presentation
Presentation is loading. Please wait.
Published byKaren Patterson Modified over 9 years ago
2
8puzzle in CP
3
1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 initial state goal state A trivial example
4
1 4 6 2 7 3 5 8 1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 1 4 2 7 6 3 5 8
5
1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 1 4 7 2 5 8 3 6 9 Representation 147258369
6
1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 14627358146273581427635814276358
7
1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 of states To get from initial state to a goal state we make a number of moves and moves take us to new states If we have a plan that takes us from I to G in n steps we will have n-1 states between I and G Represent a state as 9 constrained integer variables S[i] has a value [0..8], the tile in position i the value 0 corresponds to the blank tile Therefore for a plan, let’s say of 3 steps from I to G we will have states S[1..4][1..9] S[1][5] is the tile in the 5th position of the 1st state (and is 0 in our example)
8
1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 Representation of moves There are 24 possible moves from a state position of blank (zero) possible moves (swaps) move numbers 1 (1,2),(1,4) 1,2 2 (2,1),(2,3),(2,5) 3,4,5 3 (3,2),(3,6) 6,7 4 (4,1),(4,5),(4,7) 8,9,10 5 (5,2),(5,4),(5,6),(5,8) 11,12,13,14, 6 (6,3),(6,5),(6,9) 15,16,17 7 (7,4),(7,8) 18,19 8 (8,5),(8,7),(8,9) 20,21,22 9 (9,6),(9,8) 23,24 1 4 7 2 5 8 3 6 9 We have n-1 move variables, where move[i] has a domain [1..24]
9
1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 Representation of moves & states 14627358146273581427635814276358 move[1] = 14 move[2] = 21 move[1] = 18 position of blank (zero) possible moves (swaps) move numbers 1 (1,2),(1,4) 1,2 2 (2,1),(2,3),(2,5) 3,4,5 3 (3,2),(3,6) 6,7 4 (4,1),(4,5),(4,7) 8,9,10 5 (5,2),(5,4),(5,6),(5,8) 11,12,13,14, 6 (6,3),(6,5),(6,9) 15,16,17 7 (7,4),(7,8) 18,19 8 (8,5),(8,7),(8,9) 20,21,22 9 (9,6),(9,8) 23,24
10
1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 Constraints on a move If we are in state 1 and the blank tile is in position 1 and we make move 1 (swap(1,2)) then in state 2 the blank is in position 2 and what is in position 2 of in state 1 is now in position 1 in state 2
11
1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 Constraints on a move
12
1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 But … when we make a move, only the things that we move change! This is the frame problem (GOF AI) … and so on
15
1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 Constraints on a move We also need to say that if the blank tile (zero) is not in a specific position we cannot make a specified move … and so on This is one of our propagation steps!
16
1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 Solving The move variables are our decision variables Find values for the move variables that satisfy the constraints This will find a plan of n-1 steps if one exists
17
1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 Bi-directional search Search from I to G and from G to I simultaneously Replace the variables move[i] introduce fmove[i] the forwards move from state i to state i+1 introduce bmove[i] the backward move from state i + 1 to I post all the constraints we had before in both directions! add the following constriants I call this a bridge between backward & forward moves We can now search in the following order fmove[1],bmove[n-1],fmove[2],bmove[n-2]...
18
1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 Propagation through plans There is little if any propagation through plans
19
1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 Propagation through plans There is little if any propagation through plans If in state i I cannot move the blank tile into position x then in state i+1 I cannot make a move out of position x! Example: If at time I cannot put the bunch of flowers on the table then at time +1 I cannot move the bunch of flowers from the table
20
1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 Propagation through plans If in state i I cannot move the blank tile into position x then in state i+1 I cannot make a move out of position x! position of blank (zero) possible moves (swaps) move numbers 1 (1,2),(1,4) 1,2 2 (2,1),(2,3),(2,5) 3,4,5 3 (3,2),(3,6) 6,7 4 (4,1),(4,5),(4,7) 8,9,10 5 (5,2),(5,4),(5,6),(5,8) 11,12,13,14, 6 (6,3),(6,5),(6,9) 15,16,17 7 (7,4),(7,8) 18,19 8 (8,5),(8,7),(8,9) 20,21,22 9 (9,6),(9,8) 23,24 I call this a rippling constraint
21
1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 My problems with planning what happens if we cannot find a plan in n-1 steps? Build a bigger model … or add another layer to the model like iterative dfs could we have a null move, i.e. a move[i] = 0 yes, but we have to condition the rippling constraint our rippling constraint can generate a contradiction otherwise! the model is BIG I’m working on something neater
22
That’s all for now folks
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.