Presentation is loading. Please wait.

Presentation is loading. Please wait.

8puzzle in CP 1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 initial state goal state A trivial example.

Similar presentations


Presentation on theme: "8puzzle in CP 1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 initial state goal state A trivial example."— Presentation transcript:

1

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

13

14

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


Download ppt "8puzzle in CP 1 4 6 2 7 3 5 8 1 4 2 7 6 3 5 8 initial state goal state A trivial example."

Similar presentations


Ads by Google