Planejamento

7
Objetivo Raciocinar sobre: os efeitos de ações; o seqüenciamento de ações para atingir um efeito cumulativo desejado. Exemplo de uma Tarefa no Mundo dos Blocos Planejamento A C B 1 2 3 4 A C B 1 2 3 4 As ações alteram o estado corrente do “mundo” localmente. Uma boa representação deve levar em conta esta “localidade” do efeito das ações. Est ado Lista de relacionamentos correntemente verdadeiros

description

Planejamento. A. C. B. B. C. A. 2 3 4. 2 3 4. Objetivo Raciocinar sobre: os efeitos de ações; o seqüenciamento de ações para atingir um efeito cumulativo desejado. Exemplo de uma Tarefa no Mundo dos Blocos. As ações alteram o estado corrente do “mundo” localmente. - PowerPoint PPT Presentation

Transcript of Planejamento

Page 1: Planejamento

Objetivo Raciocinar sobre:

os efeitos de ações; o seqüenciamento de ações para atingir um efeito cumulativo desejado.

Exemplo de uma Tarefa no Mundo dos Blocos

Planejamento

AC

B

1 2 3 4

A

CB

1 2 3 4

As ações alteram o estado corrente do “mundo” localmente.

Uma boa representação deve levar em conta esta “localidade” do efeito das ações.

Estado

Lista de relacionamentos correntemente verdadeiros

Page 2: Planejamento

Sintaxe da descrição de um estado: [ <relacionamento 1>, <relacionamento 2>, . . . , <relacionamento n> ]

Relações para o mundo dos blocos: sobre(Bloco, Objeto) Objeto: bloco ou lugar

livre(Objeto)

Descrição do Estado Inicial: [ sobre(a,1), sobre(c,a), livre(c), livre(2), sobre(b,3), livre(b), livre(4) ]

Definição das Ações: mova(Bloco, De, Para)1. Pré-condição - condição que deve ser satisfeita para aplicar a

ação

pode(Ação, Condição)

2. Lista de adições - relacionamentos que a ação estabelece

adições(Ação, ListaAdições)

3. Lista de remoções - relacionamentos que a ação destrói

remoções(Ação, ListaRemoções)

Planejamento: Representação dos Estados e Ações

Page 3: Planejamento

pode( mova( Bloco, De, Para), [ livre( Bloco), livre( Para), sobre( Bloco, De)] ) :-

é_bloco( Bloco), % Bloco a ser movido

objeto( Para), % "Para" é um Bloco ou um lugar

Para \== Bloco, % Bloco não pode ser movido para si próprio

objeto( De), % "De" é um Bloco ou um lugar

De \== Para, % O movimento deve ser feito para uma nova posição

Bloco \== De. % Bloco não pode ser movido de si próprio

 

adições( mova(X,De,Para), [ sobre(X,Para), livre(De)]).

 

remoções( mova(X,De,Para), [ sobre(X,De), livre(Para)]).

 

objeto( X) :- % X é um objeto se

lugar( X) % X é um lugar

; % ou

é_bloco( X). % X é um bloco

 

 

Definição do Espaço de Planejamento em Prolog

Page 4: Planejamento

Definição do Espaço de Planej. em Prolog – Cont.

é_bloco( a).

é_bloco( b).

é_bloco( c).

 

lugar( 1).

lugar( 2).

lugar( 3).

lugar( 4).

 

% Um estado no mundo dos blocos

%

% c

% a b

% = = = =

% lugar 1 2 3 4

 

estado1( [ livre(2), livre(4), livre(b), livre(c), sobre(a,1), sobre(b,3), sobre(c,a) ] ).

Page 5: Planejamento

Análise Meios-Fins: Implementação em Prolog 1

% planeja( Estado, Objetivos, Plano, EstadoFinal)

 

planeja( Estado, Objetivos, [], Estado) :- % Plano está vazio

satisfeito( Estado, Objetivos). % Objetivos satisfeitos em Estado

 

planeja( Estado, Objetivos, Plano, EstadoFinal) :-

conc( PréPlano, [Ação | PostPlano], Plano), % Divide plano

seleciona( Estado, Objetivos, Objetivo), % Seleciona um Objetivo

atinge( Ação, Objetivo), % Ação relevante

pode( Ação, Condição),

planeja( Estado, Condição, PréPlano, EstadoIntermediário1), % Permite Ação

aplica( EstadoIntermediário1, Ação, EstadoIntermediário2), % Aplica Ação

planeja( EstadoIntermediário2, Objetivos, PostPlano, EstadoFinal). % Atinge %

objetivos % restantes

Page 6: Planejamento

Análise Meios-Fins: Implementação em Prolog 2

% satisfeito( Estado, Objetivos): Objetivos são válidos no Estado

satisfeito( Estado, []).

 

satisfeito( Estado, [Objetivo | Objetivos]) :-

member( Objetivo, Estado),

satisfeito( Estado, Objetivos).

 

seleciona( Estado, Objetivos, Objetivo) :-

member( Objetivo, Objetivos),

not member( Objetivo, Estado). % Objetivo ainda não satisfeito

 

% atinge( Ação, Objetivo): Objetivo são as adições da Ação

 atinge( Ação, Objetivo) :-

adições( Ação, Objetivos),

member( Objetivo, Objetivos).

 

Page 7: Planejamento

Análise Meios-Fins: Implementação em Prolog 3

% aplica( Estado, Ação, NovoEstado): Ação executada em Estado produz NovoEstado

 aplica( Estado, Ação, NovoEstado) :-

remoções( Ação, ListaRemoções),

removeTodas( Estado, ListaRemoções, Estado1), !,

adições( Ação, ListaAdições),

conc( ListaAdições, Estado1, NovoEstado).

 

% removeTodas( L1, L2, Diferenças) se Diferenças são as diferenças de L1 e L2

 

removeTodas( [], _, []).

 

removeTodas( [X | L1], L2, Diferenças) :-

member( X, L2), !,

removeTodas( L1, L2, Diferenças).

 

removeTodas( [X | L1], L2, [X | Diferenças]) :-

removeTodas( L1, L2, Diferenças).