Formalização do Problema em

Espaço de Estados

 

Nesta página é apresentada a representação de espaço de estados utilizada para a implementação do problema das 7 fichas.

 

O problema das 7 fichas foi definido da seguinte forma:

 

A seguir, de acordo com a sintaxe da linguagem prolog estão representados os estados de busca possíveis para o problema. Sendo definidos: o estado inicial, os estados intermediários e os estados finais. O estado final consiste em colocar todas as peças pretas antes de todas as peças brancas, sendo que o espaço em branco pode estar em qualquer posição, com isso tem-se 7 estados finais possíveis.

 

Estado inicial:

estado_inicial([*,*,*,o,o,o,i]).

 

Estados finais possíveis:

[o,o,o,*,*,*,i] e_uma_meta.

[o,o,o,*,*,i,*] e_uma_meta.

[o,o,o,*,i,*,*] e_uma_meta.

[o,o,o,i,*,*,*] e_uma_meta.

[o,o,i,o,*,*,*] e_uma_meta.

[o,i,o,o,*,*,*] e_uma_meta.

[i,o,o,o,*,*,*] e_uma_meta.

 

 

Declaração dos predicados que definem as ações de deslizar e saltar:

 

 

Estados intermediários:

operacao(desliza,1) transforma [A,B,C,D,E,F,i] em [A,B,C,D,E,i,F].

operacao(salta,1) transforma [A,B,C,D,E,F,i] em [A,B,C,D,i,F,E].

operacao(salta,2) transforma [A,B,C,D,E,F,i] em [A,B,C,i,E,F,D].

 

operacao(desliza,1) transforma [A,B,C,D,E,i,F] em [A,B,C,D,i,E,F].

operacao(desliza,1) transforma [A,B,C,D,E,i,F] em [A,B,C,D,E,F,i].

operacao(salta,1) transforma [A,B,C,D,E,i,F] em [A,B,C,i,E,D,F].

operacao(salta,2) transforma [A,B,C,D,E,i,F] em [A,B,i,D,E,C,F].

 

operacao(desliza,1) transforma [A,B,C,D,i,E,F] em [A,B,C,i,D,E,F].

operacao(desliza,1) transforma [A,B,C,D,i,E,F] em [A,B,C,D,E,i,F].

operacao(salta,1) transforma [A,B,C,D,i,E,F] em [A,B,i,D,C,E,F].

operacao(salta,1) transforma [A,B,C,D,i,E,F] em [A,B,C,D,F,E,i].

operacao(salta,2) transforma [A,B,C,D,i,E,F] em [A,i,C,D,B,E,F].

 

operacao(desliza,1) transforma [A,B,C,i,D,E,F] em [A,B,i,C,D,E,F].

operacao(desliza,1) transforma [A,B,C,i,D,E,F] em [A,B,C,D,i,E,F].

operacao(salta,1) transforma [A,B,C,i,D,E,F] em [A,i,C,B,D,E,F].

operacao(salta,1) transforma [A,B,C,i,D,E,F] em [A,B,C,E,D,i,F].

operacao(salta,2) transforma [A,B,C,i,D,E,F] em [i,B,C,A,D,E,F].

operacao(salta,2) transforma [A,B,C,i,D,E,F] em [A,B,C,F,D,E,i].

 

operacao(desliza,1) transforma [A,B,i,C,D,E,F] em [A,i,B,C,D,E,F].

operacao(desliza,1) transforma [A,B,i,C,D,E,F] em [A,B,C,i,D,E,F].

operacao(salta,1) transforma [A,B,i,C,D,E,F] em [i,B,A,C,D,E,F].

operacao(salta,1) transforma [A,B,i,C,D,E,F] em [A,B,D,C,i,E,F].

operacao(salta,2) transforma [A,B,i,C,D,E,F] em [A,B,E,C,D,i,F].

 

operacao(desliza,1) transforma [A,i,B,C,D,E,F] em [i,A,B,C,D,E,F].

operacao(desliza,1) transforma [A,i,B,C,D,E,F] em [A,B,i,C,D,E,F].

operacao(salta,1) transforma [A,i,B,C,D,E,F] em [A,C,B,i,D,E,F].

operacao(salta,2) transforma [A,i,B,C,D,E,F] em [A,D,B,C,i,E,F].

 

operacao(desliza,1) transforma [i,A,B,C,D,E,F] em [A,i,B,C,D,E,F].

operacao(salta,1) transforma [i,A,B,C,D,E,F] em [B,A,i,C,D,E,F].

operacao(salta,2) transforma [i,A,B,C,D,E,F] em [C,A,B,i,D,E,F].

 

 

 

Conteúdo