Основные стратегии решения задач, страница 2

final_state([k(2,2),k(1,3),k(2,3),k(3,3),k(3,2),k(3,1),k(2,1),k(1,1),k(1,2)]).

evalute([Move|Moves],State,MVs,OrderedMVs):value(Move,Value),

insert(c(Move,Value),MVs,MVs1),

evalute(Moves,State,MVs1,OrderedMVs).

evalute([],State,MVs,MVs).

insert(c(M,V),[],[c(M,V)]).

insert(c(M,V),[c(M1,V1)|MVs],[c(M,V),c(M1,V1)|MVs]):V<=V1.

insert(c(M,V),[c(M1,V1)|MVs],[c(M1,V1)|MVs1]):V>V1, insert(c(M,V),MVs,MVs1).

start1(State, Move):sp(State,Moves),

evalute(Moves,State,[],MVs),

memb(c(Move,Value),MVs).

start(State,History,[]):final_state(State).

start(State,History,[Move|Moves]):start1(State,Move),

not (member(Move,History)),

start(Move,[Move|History],Moves).

goal

%1        start([k(2,2),k(1,3),k(3,2),k(2,3),k(3,3),k(3,1),k(2,1),k(1,1),k(1,2)],[],R),

%2        start([k(2,1),k(1,2),k(1,3),k(3,3),k(3,2),k(3,1),k(2,2),k(1,1),k(2,3)], [],R),

%3        start([k(3,2),k(1,2),k(1,3),k(2,3),k(2,1),k(3,3),k(3,1),k(1,1),k(2,2)], [],R),

openwrite(fi,"res.txt"),

writedevice(fi),

%1         presh([[k(2,2),k(1,3),k(3,2),k(2,3),k(3,3),k(3,1),k(2,1),k(1,1),k(1,2)]]),

%2         presh([[k(2,1),k(1,2),k(1,3),k(3,3),k(3,2),k(3,1),k(2,2),k(1,1),k(2,3)]]),

%3         presh([[k(3,2),k(1,2),k(1,3),k(2,3),k(2,1),k(3,3),k(3,1),k(1,1),k(2,2)]]),

presh(R),

closefile(fi).

Результаты:

1)

4 шага:

-------------      -------------      -------------      -------------      ------------| 1 | 3 | 4 |        | 1 | 3 | 4 |        | 1 | 3 |    |        | 1 |    | 3 |         | 1 | 2 | 3 |

-------------     -------------      -------------      -------------       -------------  

| 8 |    | 2 |        | 8 | 2 |    |        | 8 | 2 | 4 |        | 8 | 2 | 4 |         | 8 |    | 4 |

-------------     --------------     -------------      -------------      ------------| 7 | 6 | 5 |        | 7 | 6 | 5 |        | 7 | 6 | 5 |        | 7 | 6 | 5 |         | 7 | 6 | 5 |

-------------     -------------      -------------      -------------       ------------2)

5 шагов:

-------------     -------------     -------------     -------------    -------------     ------------| 2 | 8 | 3 |        | 2 | 8 | 3 |       | 2 |    | 3 |       |    | 2 | 3 |      | 1 | 2 | 3 |       | 1 | 2 | 3 |

-------------     -------------     -------------     -------------    -------------     ------------| 1 | 6 | 4 |        | 1 |    | 4 |       | 1 | 8 | 4 |      | 1 | 8 | 4 |       |    | 8 | 4 |       | 8 |    | 4 |

-------------     -------------     -------------    -------------     -------------     ------------| 7 |    | 5 |        | 7 | 6 | 5 |       | 7 | 6 | 5 |      | 7 | 6 | 5 |       | 7 | 6 | 5 |       | 7 | 6 | 5 |

-------------     -------------     -------------    -------------     -------------     ------------3)

9 шагов:

-------------     -------------     -------------     -------------    -------------     ------------| 2 | 3 | 5 |        | 2 | 3 |    |       | 2 |    | 3 |      |    | 2 | 3 |       | 1 | 2 | 3 |       | 1 | 2 | 3 |

-------------     -------------     -------------     -------------    -------------     ------------| 1 | 8 |    |        | 1 | 8 | 5 |       | 1 | 8 | 5 |      | 1 | 8 | 5 |       |    | 8 | 5 |       | 8 |    | 5 |

-------------     -------------     -------------    -------------     -------------     ------------| 7 | 4 | 6 |        | 7 | 4 | 6 |       | 7 | 4 | 6 |      | 7 | 3 | 6 |       | 7 | 4 | 6 |       | 7 | 4 | 6 |

-------------     -------------     -------------    -------------     -------------     -------------------------      -------------      -------------      -------------   

| 1 | 2 | 3 |        | 1 | 2 | 3 |        | 1 | 2 | 3 |        | 1 | 2 | 3 |        

-------------     -------------      -------------      -------------       

| 8 | 4 | 5 |        | 8 | 4 | 5 |        | 8 | 4 |    |        | 8 |    | 4 |        

-------------     --------------     -------------      -------------     

| 7 |    | 6 |        | 7 | 6 |    |        | 7 | 6 | 5 |        | 7 | 6 | 5 |        

-------------     -------------      -------------      -------------