A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Blackbox, ACLP e ParcPlan Ferramentas de Planejamento em IA Jairson Vitorino, 26 de novembro

Apresentações semelhantes


Apresentação em tema: "Blackbox, ACLP e ParcPlan Ferramentas de Planejamento em IA Jairson Vitorino, 26 de novembro"— Transcrição da apresentação:

1 Blackbox, ACLP e ParcPlan Ferramentas de Planejamento em IA Jairson Vitorino, 26 de novembro jv@cin.ufpe.br

2 Roteiro Blackbox –SATPLAN versus Graphplan –Blackbox –Blackbox : Funcionamento –Prática ACLP –ACLP: Definições –Exemplos do Blocks world –ACLP: Prática PARCPLAN –Sintaxe básica –Exemplo do Mundo dos blocos –Algoritmo de planejamento ParcPlan –ParcPlan: Prática Referências

3 Blackbox Satplan + Graphplan

4 Satplan versus Graphplan De acordo com [Kautz e Selman], comparações entre o SATPLAN e o Graphplan mostram que nenhum deles é estritamente superior. SATPLAN é mais rápido no domínio de logística complexa, os dois algoritmos têm desempenho igual no problema do mundo dos blocos. Graphplan é mais rápido em outros domínios.

5 Arquitetura Blackbox PDDL Camada STRIPS Construtor do Grafo Tradutor Fórmula Lógica WalkSATSATzRelSATCompact Plano PDDL

6 Satplan versus Graphplan Os dois algoritmos possuem uma importante semelhança Ambos trabalham em duas fases: Primeiro criam um estrutura proposicional (no Graphplan um grafo de planejamento, no SATPLAN uma fórmula bem formada CNF) Em seguida fazem uma busca sobre essa estrutura, instanciando as variáveis da formulação do problema de planejamento

7 Funcionamento PDDL Camada STRIPS Construtor do Grafo Tradutor Fórmula Lógica WalkSATSATzRelSATCompact Plano PDDL ?

8 Blackbox Converte problemas especificados usando a camada básica de PDDL correspondendo a STRIPS para problemas de satisfatibilidade. O front-end usa graphplan. Flexibilidade no uso de vários algoritmos (WalkSAT, SATz e o algoritmo original de Graphplan) Linguagem STRIPS-style em PDDL (Planning Domain Definition Language)

9 Blackbox Com o Blackbox é possível usar o algoritmo walksat (Selman, Kautz, and Cohen 1994) por 60 segundos, e se isso falhar, o algoritmo satz (Li and Anbulagan 1997) for 1000 segundo. O nome Blackbox refere-se ao fato de que o gerador de planos não “sabe” nada sobre os resolvedores SAT, e vice versa. Cada um é uma “caixa preta" para o outro.

10 Blackbox: Funcionamento Um problema de planejamento especificado em STRIPS é convertido em grafo de planejamento O grafo de planejamento é convertido em uma CNF bem formada A CNF bem formada é resolvida por um das SAT engines disponíveis.

11 Blackbox: Funcionamento A sentença bem formada CNF gerada pelo grafo de planejamento pode ser bem menor do que a gerada diretamente a partir de sentenças em STRIPS Os relacionamentos mutex do grafo podem ser traduzidas diretamente em cláusulas negativas binárias (facilitando o trabalho das SAT engines) Introduz o uso do "randomized complete search methods" (adicionando um fator aleatório na busca heurística e reiniciando o algoritmo após um determinado número de backtrackings)

12 Prática Copie para o mesmo diretório os seguintes arquivos: –www.cin.ufpe.br/~jv/blackbox.exe –www.cin.ufpe.br/~jv/cygwin1.dll –www.cin.ufpe.br/~jv/domain.pddl –www.cin.ufpe.br/~jv/prob004-log-a.pddl

13 Prática O Blackbox trabalha com um arquivo de operações e um arquivo de fatos. –Abra o arquivo domain.pddl (Este é o arquivo de definição de domínio e operações)

14 Domain.pddl Tipado: (:types PACKAGE TRUCK LOCATION AIRPLANE CITY AIRPORT) Predicados e Variáveis: –(:predicates (at ?obj ?loc)... Ações com parâmetros, pré-condições e efeitos: (:action LOAD-TRUCK :parameters(?obj – PACKAGE...

15 Domain.pddl Ações: –LOAD-TRUCK ; LOAD-AIRPLANE ; UNLOAD-TRUCK ; UNLOAD-AIRPLANE ; DRIVE-TRUCK ; FLY- AIRPLANE ; Exemplo completo: (:action FLY-AIRPLANE :parameters (?airplane - AIRPLANE ?loc-from - AIRPORT ?loc-to - AIRPORT) :precondition (at ?airplane ?loc-from) :effect (and (not (at ?airplane ?loc-from)) (at ?airplane ?loc-to)))

16 O arquivo de fatos O Blackbox trabalha com um arquivo de operações e um arquivo de fatos. –Abra no word o arquivo prob004-log-a.pddl (Este é o arquivo de fatos)

17 Prob004-log-a.pddl Define a situação inicial –8 objetos do tipo PACKAGE –2 aeroportos –3 cidades –3 caminhões –3 locais –3 aeroportos/locais  (either LOCATION AIRPORT)

18 Prob004-log-a.pddl Define a situação inicial: – (:init (in-city pgh-po pgh)... Define o objetivo (:goal (and (at package1 bos-po) (at package2 bos-airport)...

19 Algumas opções do Blackbox  -t especifica um número fixo de unidades de tempo  -step incrementa grafo de planejamento para tamanho  -noskip não pula o graphplan solver  -noopt pára assim que uma solução é encontrada

20 Opções avançadas do Blackbox –BLACKBOX -solver { -then }* sequência de resolvedores, onde: – { -maxit N } { -maxsec F } {solver specific options}, onde – == graphplan || satz || walksat || relsat || compact –maxsec F == executa o resolvedor por F segundos – maxit N = = executa o resolvedor N iterações

21 Executando o planejador O Blackbox trabalha com um arquivo de operações e um arquivo de fatos. –Digite na linha de comando: – blackbox -o domain.pddl -f prob004-log-a.pddl –A opção -o indica o arquivo de operações e a opção -f o arquivo de fatos. –Lembre-se! Todos os arquivos que você copiou devem estar em um mesmo diretório.

22 Executando o Blackbox Examinando o arquivo de saída: –blackbox -o domain.pddl -f prob004-log-a.pddl > out.txt –Ou: –blackbox -o domain.pddl -f prob004-log-a.pddl –g saida.txt

23 ACLP Abductive Contraint Logic Programming

24 ACLP Combina raciocínio abdutivo com resolução de restrições Raciocínio abdutivo: redução automática da representação abstrata do problema e objetivos para um linguagem de tarefas de mais baixo nível (CLP). Implementado em Eclipse

25 ACLP: Definições Um programa abdutivo: uma tripla –Onde P é um programa lógico normal –A é um conjunto de predicados abdutíveis –IC é um conjunto de restrições de integridade.

26 Planejamento Abdutivo em ACLP: exemplo do blocks world P (programa lógico normal) planning([]). planning([on(X,Y,T)|Rest]):- on(X,Y,T), planning(Rest). on(X,Y,T) :- initially(X,Y,T0), T0 #<= T, not moved(X,T0,T). on(X,Y,T) :- T1 #>0, T1 #<= T, not moved(X,T1,T), move(X,Y,T1). moved*(X,T1,T2) :- Y::1..22, Y ## X, T1 #< T2, between1(T9,T1,T2), move(X,Y,T9). * Equivalente ao clipped do event calculus

27 Planejamento Abdutivo em ACLP: exemplo do blocks world A (predicados abdutíveis): {move(-,-,-)} IC Restrições de integridade: ic:- move(X,Y,T), initially(Z,X,T1), not moved(Z,T1,T). ic:- move(X,Y,T), move(Z, X1, T1), T \== T1, not moved(Z,T1,T), T#>=T1 #/\ X #= X1. ic:- move(X,Y,T), number(Y), initially(Z,Y,T1), not moved(Z,T1,T). ic:- move(X,Y,T), move(Z,Y1,T1), T \== T1, not moved(Z,T1,T), T #>= T1 #/\ Y #= Y1. ic:- move(X,Y,T), initially(Z,Y1,T1), not moved(Z,T1,T), Y#=Y1. Mais exemplos em : http://www.cs.ucy.ac.cy/aclp/examples.html

28 ACLP: Prática Copie os seguintes arquivos: http://www.cin.ufpe.br/~jv/aclp/aclp_16May00.pl http://www.cin.ufpe.br/~jv/aclp/plan_main.pl http://www.cin.ufpe.br/~jv/aclp/initial15blocks.pl No mesmo diretório que você copiou estes arquivos execute o Eclipse (versão 4.1) /home/robocup/program_files/linux/eclipse/bin/i386_linux/eclipse No prompt do Eclipse digite: [aclp_16May00].

29 ACLP: Prática Abra os arquivos: http://www.cin.ufpe.br/~jv/aclp/plan_main.pl http://www.cin.ufpe.br/~jv/aclp/initial15blocks.pl Observe o estado inicial do mundo do blocos no arquivo initial15blocks.pl No prompt do Eclipse digite: compile (plan_main). compile (initial15blocks).

30 ACLP: Prática Para executar um programa em ACLP pode se usar o predicado aclp_solve (+Goal) Copie a seguinte linha (query 1 do arquivo initial15block.pl): cputime(X), T :: 1..50, aclp_solve(planning([on(6, 11, T), on(7, 3, T), on(3, 6, T)])), cputime(Y), CPUTIME is Y - X. Observe o resultado e compare com o resultado previsto no arquivo initial15block.pl

31 Trying abducible: move(6, 11, T1) Trying abducible: move(7, Y, T9) Trying abducible: move(8, Y, T9) Trying abducible: move(9, Y, T9) Accepted abducible: move(9, Y, T9) Accepted abducible: move(8, Y, T9) Accepted abducible: move(7, Y, T9) Accepted abducible: move(6, 11, T1) Move 6 to 11 done. Trying abducible: not_moved(7, T1, T) Accepted abducible: not_moved(7, T1, T) Move 7 to 3 done. Trying abducible: not_moved(3, T1, T) Accepted abducible: not_moved(3, T1, T) Trying abducible: move(3, 6, T1) Trying abducible: move(3, Y, T9) Trying abducible: move(7, Y, T9) Trying abducible: move(7, 3, T1) Accepted abducible: move(7, 3, T1) Move 7 to 3 done. Trying abducible: not_moved(3, T1, T) Accepted abducible: not_moved(3, T1, T) Trying abducible: move(3, 6, T1) Accepted abducible: move(3, 6, T1) Move 3 to 6 done. Solution = move(3, 6, 5) not_moved(3, 5, 6) move(7, 3, 6) not_moved(7, 6, 6) move(9, 19, 1) move(8, 9, 2) move(7, 8, 3) move(6, 11, 4) not_moved(6, 4, 6) T = 6 CPUTIME = 0.62 Y = 1.01 X = 0.39 More? (;) yes.

32 ParcPlan

33 Planejador Temporal Sobre Restrições de Recursos Ações, propriedades e objetivos são indexadas a intervalos de tempo Execução de ações em paralelo Estratégia de busca: baseada em resolução de restrição e least commitment Soluções geradas usam o menor número de ações para atingir os seus objetivos

34 Lembrete Q@[start,end)  propriedade (ação) Q ocorre durante o intervalo de tempo: [start,end) Q@[start,end

35 Exemplo do mundo dos blocos

36 move é uma relação de quatro argumentos, especificada em termos de condições, efeitos, e restrições.

37 ParcPlan: Prática Copie os seguintes arquivos: http://www.cin.ufpe.br/~jv/parcplan/parcplan.tar.gz Extraia os arquivos No diretório que bw_demo execute o Eclipse (versão 4.1) /home/robocup/program_files/linux/eclipse/bin/i386_linux/eclipse No prompt do Eclipse digite: [parcplan].

38 ParcPlan: Prática Abra o arquivo block101047.pl: Um problema é definido por um predicado problem/3, cujo formato é: problem(ProblemNo,InitialState,GoalState). InitialState e GoalState são listas de propriedades on/2 e clear/1. Os números 1..99 definem blocos. Os números 100..999 definem posições da mesa.

39 ParcPlan: Prática Ainda no arquivo block101047.pl Examine o problema 1: –problem(1, [clear(110), clear(109), clear(108), clear(3), clear(106), clear(6), clear(104), clear(103), clear(102), clear(101), on(3, 4), on(4, 9), on(9, 8), on(8, 2), on(2, 1), on(1, 107), on(6, 5), on(5, 7), on(7, 10), on(10, 105)], [on(6, 8), on(8, 9), on(9, 3), on(3, 109), on(2, 10), on(10, 1), on(1, 5), on(5, 4), on(4, 7), on(7, 102)]).

40 ParcPlan: Prática PROBLEMA 1 Parte 1 (Initialstate) do predicado Problem [clear(110), clear(109), clear(108), clear(3), clear(106), clear(6), clear(104), clear(103), clear(102), clear(101), on(3, 4), on(4, 9), on(9, 8), on(8, 2), on(2, 1), on(1, 107), on(6, 5), on(5, 7), on(7, 10), on(10, 105)],

41 ParcPlan: Prática PROBLEMA 1 Parte 2 (GoalState) do predicado Problem [on(6, 8), on(8, 9), on(9, 3), on(3, 109), on(2, 10), on(10, 1), on(1, 5), on(5, 4), on(4, 7), on(7, 102)]

42 ParcPlan: Prática No prompt do Eclipse digite: [block101047]. Para resolver um problema determinado problema é necessário dar o número do problema e número de braços disponíveis: plan(ProblemNumber,ArmsAvailable), Para resolver o problema 1 usando 10 braços digite no prompt do Eclipse: plan (1,10).

43 Referências [Kautz e Selman], Unifying STRIPS and SAT with BLACKBOX. Disponível para download em: http://citeseer.nj.nec.com/38115.html AIMA capítulos 11 e 12 (livro texto da disciplina) Site do Blackbox http://www.cs.washington.edu/homes/kautz/blackbox/ Site do ACLP http://www.cs.ucy.ac.cy/aclp/index.html [Liatsos V., Richards B.] Least Commitment An optimal planning strategy (1997) Site do O-Plan http://www.aiai.ed.ac.uk/~oplan/release/index.html#doc [Tate, Dabble and Dalton] O-Plan: a Knowledge Based Planner and its Application to Logistics. (disponível para download no site do O-Plan)


Carregar ppt "Blackbox, ACLP e ParcPlan Ferramentas de Planejamento em IA Jairson Vitorino, 26 de novembro"

Apresentações semelhantes


Anúncios Google