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

Slides:



Advertisements
Apresentações semelhantes
Funções em C Prof. Fabiano Utiyama.
Advertisements

gerador de código intermediário
Algoritmo I Aula 05 Pseudo-Linguagem.
Operadores e Funções do LINGO
Métodos para representação de estruturas hierárquicas
SISTEMAS DE INFORMAÇÃO
1 Domínios Finitos A eficiência das programas em domínios finitos (incluindo booleanos) podem ainda ser melhoradas pelo uso de Algoritmos de Propagação.
Shell Script Professor: João Paulo
Inteligência Artificial I
Metaheurísticas Prof. Aurora Pozo Departamento de Informática Universidade Federal do Paraná
Lógica de Programação Módulo II
PLANEJADORES PRÁTICOS Jacques Robin DI-UFPE Planejamento de Ordem Parcial (POP) com linguagem STRIPS * mais expressivo que resolução de problema * porque.
INTRODUÇÃO À PROGRAMAÇÃO
Solução de problemas por meio de busca
Planejamento (Cap. 11 do Russell)
Capítulo 3 - Russell e Norvig
7 Abstração Genérica Unidades genéricas e instanciação.
Exame de Qualificação Silvio do Lago Pereira
Jacques Robin CIn-UFPE
Inteligência Artificial
Folha de Cálculo TIC 10.
INF 1771 – Inteligência Artificial
Técnicas de Programação I
INF 1771 – Inteligência Artificial
Folha de cálculo Conceitos básicos Criação de uma folha de cálculo
INF 1771 – Inteligência Artificial
Prolog Programação Lógica Ícaro A. Souza.
INF 1771 – Inteligência Artificial
PROGRAMAÇÃO I UNIDADE 1.
CIn-UFPE 1 Estendendo o Planejamento Clássico para Aplicações do Mundo Real Tempo, prazos e recursos.
Conceitos básicos de orientação a objetos
FOLHA DE CÁLCULO.
Aluno: Lucas Bucci da Silveira Orientador: Carlos Roberto Lopes
Treinamento do Microsoft® Access® 2010
INF 1771 – Inteligência Artificial Aula 12 – Planejamento Edirlei Soares de Lima.
Algoritmos 1º Semestre Materia: Informática Profº: Cristiano.
Introdução a aplicativos Java
Planejamento Rodrigo Barros de Vasconcelos Lima
Sistemas Especialistas
Geração de planos alto nível em tempo de execução. Tácio Silva Diogo.
Blackbox Ferramenta de Planejamento em IA Jairson Vitorino, 06 de maio de 2005
Algoritmos de Busca Local
Linguagem e Ambiente Scratch
Geração de Código aula-12-geração-de-código.pdf.
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Algoritmos - Profa. Alciléia1 Profa. Maria Alciléia Alves Rocha Funções em C 2011.
Unified Modeling Language Professor Mário Dantas A NÁLISE O RIENTADA A O BJETOS Nov/2010.
Torre de  Hanói.
William Ivanski Curso de Programação C#. Sumário  Exercícios para Fixação  Utilizando uma IDE  Elementos da Linguagem C#  Valores  Variáveis  Tipos.
Back-End Compilação aula-11-back-end.pdf.
INF 1771 – Inteligência Artificial
Resolução de Problemas de Busca
A Linguagem Formal de Especificação VDM-SL
Ferramentas de Planejamento em IA Blackbox Planner.
Recursividade Profs. De Prog2 e Lab2.
PDDL: uma linguagem padrão para especificação de problemas e heurísticas de planejamento Jacques Robin CIn-UFPE.
Introdução à NP-completude
Modelação Aula T15 Modelação Conceptual de Sistemas Revisão do Comportamento OCL – Object Constraint Language José Borbinha.
1 Planejamento Clássico – Parte 1 Sergio Queiroz * *Baseado nos slides de Alan Fern (Oregon State University), que por sua vez foram parcialmente baseados.
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Shell Script Parte 2.
FOLHA DE CÁLCULO.
LÓGICA DE PROGRAMAÇÃO Curso: Técnico em Informática Professor: Ronaldo Disciplina: Lógica de Programação.
Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em.
Busca Heurística Prof. Valmir Macário Filho. 2 Busca com informação e exploração Capítulo 4 – Russell & Norvig Seção 4.1 Estratégias de Busca Exaustiva.
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 1 Planejamento Baseado em Lógica André Novaes CIn - UFPE.
18/09/ /12/20082 Testes Baseados Em Modelo Diana Rúbia Paulo César Qualidade, Processos e Gestão de Software Alexandre Vasconcelos {drrr, pco,
1 Planejamento Clássico (Planning) Russel, S. Norvig, P.: Inteligência Artificial (segunda edição) 28 SET 09 Igor R M Menezes.
O Processo Unificado (PU). 2 O que é o Processo Unificado (PU)? É um modelo de processo de software baseado no modelo incremental, visando a construção.
Disciplina: Estrutura de dados e Algoritmos Docentes: MSc. Manuel Zunguze.
Transcrição da apresentação:

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

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

Blackbox Satplan + Graphplan

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.

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

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

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

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)

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.

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.

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)

Prática Copie para o mesmo diretório os seguintes arquivos: – – – –

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)

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...

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)))

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)

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)

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)...

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

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

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.

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

ACLP Abductive Contraint Logic Programming

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

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.

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

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 :

ACLP: Prática Copie os seguintes arquivos: 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].

ACLP: Prática Abra os arquivos: Observe o estado inicial do mundo do blocos no arquivo initial15blocks.pl No prompt do Eclipse digite: compile (plan_main). compile (initial15blocks).

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

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.

ParcPlan

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

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

Exemplo do mundo dos blocos

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

ParcPlan: Prática Copie os seguintes arquivos: 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].

ParcPlan: Prática Abra o arquivo block 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 definem blocos. Os números definem posições da mesa.

ParcPlan: Prática Ainda no arquivo block 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)]).

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)],

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)]

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).

Referências [Kautz e Selman], Unifying STRIPS and SAT with BLACKBOX. Disponível para download em: AIMA capítulos 11 e 12 (livro texto da disciplina) Site do Blackbox Site do ACLP [Liatsos V., Richards B.] Least Commitment An optimal planning strategy (1997) Site do O-Plan [Tate, Dabble and Dalton] O-Plan: a Knowledge Based Planner and its Application to Logistics. (disponível para download no site do O-Plan)