62
Planejamento Automático Breve Histórico, Strips, GraphPlan e SATPlan Jhonatan Alves Universidade Federal de Santa Catarina

Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Embed Size (px)

Citation preview

Page 1: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Planejamento AutomáticoBreve Histórico, Strips, GraphPlan e SATPlan

Jhonatan AlvesUniversidade Federal de Santa Catarina

Page 2: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Sequência da Apresentação

● Histórico● O problema do planejamento● Busca no espaço de estados● Representação do conhecimento● GraphPlan● SatPlan● Conclusão● Perguntas?

Page 3: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Histórico

● Nos anos 60 as principais pesquisas em IA estavam focadas no desenvoltimento de solucionadores gerais: GPS e QA3.

● Nos anos 70, Filkes e Nilson apresentaram o sistema STRIPS que deu origem Éra

Classica do Planejamento Automático.

Page 4: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Histórico

● Novos sistemas de planejamento como ABSTRIPS, NOAH e NONLIN foram apresentados para contornar as restrições de STRIPS.

● Durante os anos 80 a área de planejamento automático progrediu pouco.

Page 5: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Histórico

● A década de 90 foi marcada por grandes avanços na área de planejamento automático com o surgimento dos planejadores GRAPHPLAN e SATPLAN.

● Em 1998 foi criada a linguagem de definição de domínios de problemas - PDDL.

Page 6: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Histórico

● A partir de 1998 várias competições internacionais surgiram com o intuito de premiar os melhores sistema de planejamento automático, tais como:○ Competição Internacional de Planejamento (IPC)○ Conferência Européia de Planejamento (ECP)○ Conferência Internacional de Planejamento e

Escalonamento (ICAPS)

Page 7: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Histórico

● A última edição da IPC ocorreu este ano em Atibaia, São Paulo.

● Atualmente as pesquisas em planejamento automático estão voltadas sobre o conceito de escalonamento automático.

Page 8: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Histórico

● Planejamento automático tem sido estudado em diversos centros de ensino e pesquisa:○ Nasa: desenvolveu um ambiente de planejamento

automático voltado para missões espaciais - ASPEN○ INPE: junto com institutos europeus vem estudando

planejamento automático para testes espaciais - SPAAS

○ UFC: Planejamento automático voltada a administração de recursos hídricos no Estado do Ceará

○ Petrobras: em parceria com a USP está estudando como usar planejamento automático para otimizar problemas que exijam tempo e recursos.

Page 9: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

O problema do Planejamento

● Planejamento é o processo de escolher um conjunto de ações que quando executadas em uma determinada sequência satisfazem um conjunto de objetivos.

● Planejamento automático é a área da IA responsável por estudar este processo através do uso do computador.

Page 10: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

O problema do Planejamento

● Planejamento Automático agrega conhecimento de outras áreas da IA e Computação:○ Engenharia do conhecimento○ Lógica○ Busca

Page 11: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

O problema do Planejamento

● A modelagem do domínio abstrai um conjunto de fatores, tais como: tempo, custo, recursos e pessoas envolvidas.

● Problemas de Planejamento Automático pertencem a classe NP-Completo.

Page 12: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

O problema do Planejamento

● Formalmente, um problema de planejamento clássico é a tripla:

P = <T,s0,G>

onde:○ T = sistema de transição de estados○ s0 = estado inicial○ G = conjunto de metas

Page 13: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

O problema do Planejamento

● T, por sua vez é a seguinte tripla:T = <S,A,y>

onde:○ S = {s0,s1,...,sn} é o conjunto de estados○ A = {a0,a1,...,am} é o conjunto de ações○ y = S x A -> S é a função de transição de estados

Um plano P é formado por uma sequência linear de ações que satisfaz G, tal que:○ s1 = y(s0,ai), s2 = y(s1,aj), ..., sn = y(sn-1,ak)○ P = {ai,aj,...,ak} e sn pertence a G

Page 14: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

O problema do Planejamento

● Instância do mundo de blocos:

Page 15: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

O problema do Planejamento

● Possível solução:

Page 16: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Busca no Espaço de Estados

● Busca para frente inicia-se pelo estado inicial do problema e traça por uma sequência de ações que alcance o objetivo do problema.

Page 17: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Busca no Espaço de Estados

Page 18: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Busca no Espaço de Estados

● Busca para trás inicia-se pelo conjunto G e traça uma sequência de ações que alcance o estado inicial do problema.

Page 19: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Representação do Conhecimento

● Quesito de grande importância no desenvolvimento de um plano.

● Técnicas de representação do conhecimento são empregadas na modelagem do domínio de problemas.

Page 20: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Representação do Conhecimento

● A modelagem do domínio pode ser realizada através da Teoria de conjuntos, Variáveis de Estado e pela Representação clássica.

● As principais linguagens de descrição de domínios da Representação clássica são:○ Cálculo Situacional○ STRIPS○ PDDL

Page 21: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

STRIPS● STRIPS é uma linguagem formal derivada

da lógica de primeira ordem usada para decompor problemas de planejamento automático em condições lógicas.

● Em STRIPS um problema é a tripla: <s0,L,O,G>

Onde:○ L é o conjunto de literais○ O é o conjunto de operadores○ G conjunto de objetivos

Page 22: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

STRIPS● Um operador O possui a seguinte estrutura:

O: nome((a0,a1,...an),PRE,ADD,DEL)

● Um estado si é representado por uma conjunção de n literais verdadeiros:

Page 23: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

STRIPS● Como exemplo, considere a seguinte

instância do mundo de blocos:

Literais:○ Sobre(x,y): x está sobre y○ Livre(x): não há outro bloco sobre x○ Segurando(x): o robô está segurando x○ Mão-livre: o robô não está segurando algum bloco○ Sobre-a-mesa(x): o bloco x está sobre a mesa

Page 24: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

STRIPSOperadores:○ Empilhar((x,y),

PRE: livre(y) ^ Segurando(x)ADD: Mão-vazia ^ Sobre(x,y) DEL: Livre(y) ^ Segurando(x)

○ Desempilhar((x,y),PRE: Sobre(x,y) ^ livre(x) ^ Mão-vaziaADD: Segurando(x) ^ Livre(y) DEL: Sobre(x,y) ^ Mão-vazia

Page 25: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

STRIPSOperadores:○ Pegar((x),

PRE: livre(x) ^ Sobre-a-mesa(x) ^ Mão-vaziaADD: Segurando(x) DEL: Sobre-a-mesa(x) ^ Mão-vazia

○ Largar((x),PRE: Segurando(x)ADD: Sobre-a-mesa(x) ^ Mão-vazia DEL: Segurando(x)

Page 26: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Representação do ConhecimentoEstado inicial:○ Sobre(A,B) ^ Sobre-a-mesa(B) ^ Mão-vazia ^ Livre

(A)

Objetivo:○ Sobre(B,A) ^ Sobre-a-mesa(A) ^ Mão-vazia ^ Livre

(B)

Page 27: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

STRIPS: Busca pelo Plano

○ s_0: Sobre(A,B) ^ Sobre-a-mesa(B) ^ Mão-vazia ^ Livre(A)

○ Empilhar((A,B),PRE: livre(B) ^ Segurando(A), ....)

○ Desempilhar((A,B), PRE: Sobre(A,B) ^ livre(A) ^ Mão-vazia, ...)

○ Pegar((A),PRE: livre(A) ^ Sobre-a-mesa(A) ^ Mão-vazia, ...)

○ Largar((A),PRE: Segurando(A), ...)

Page 28: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

STRIPS: Busca pelo Plano

● A aplicação do operador:○ Desempilhar((A,B),

PRE: Sobre(A,B) ^ livre(A) ^ Mão-vaziaADD: Segurando(A) ^ Livre(B) DEL: Sobre(A,B) ^ Mão-vazia

sobre o estado:s0: Sobre(A,B) ^ Sobre-a-mesa(B) ^ Mão-vazia ^ Livre(A)gera o novo estado:○ s1: Segurando(A) ^ Livre(B) ^ Sobre-a-mesa(B) ^

Livre(A)

Page 29: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

STRIPS: Busca pelo Plano

● Sobre o estado s1 aplica-se o operador Largar(A) que gera o estado s3:s3: Sobre-a-mesa(A) ^ Livre(A) ^ Mão-vazia ^ Livre(B) ^ Sobre-a-mesa(B)

● Sobre o estado s3 aplica o operador Pegar

(B) que gera o estado s4:○ S4: Sobre-a-mesa(A) ^ Livre(A) ^ Segurando(B) ^

Livre(B)

Page 30: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

STRIPS: Busca pelo Plano

● Sobre o estado s4 aplica-se o operador Empilhar(B,A) que gera o estado s4:

○ s4: Sobre(B,A) ^ Livre(B) ^ Mão-vazia ^ Sobre-a-mesa(A)

Page 31: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

STRIPS: Busca pelo Plano

● O Plano gerado é a seguinte sequência de operadores:

○ Desempilhar(A,B) -> Largar(A) -> Pegar(B) -> Empilhar(B,A)

Page 32: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

GRAPHPLAN

● É uma técnica que busca por um plano através de uma estrutura de grafo chamada de grafo de planejamento.

● O grafo de planejamento consiste em uma sequência de camadas onde cada camada corresponde a um passo na busca do plano.

Page 33: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

GRAPHPLAN

● Uma camada de literais é formada por todos os literais que poderiam ser verdadeiros nesse passo.

● Uma camada de ações é formada por todas as ações que poderiam ter suas precondições satisfeitas nesse passo.

Page 34: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

GRAPHPLAN

Page 35: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

GRAPHPLAN

○ Empilhar((A,B),PRE: livre(B) ^ Segurando(A)ADD: Mão-vazia ^ Sobre(A,B) DEL: Livre(B) ^ Segurando(A)

Page 36: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

GRAPHPLAN

● As linhas em vermelho indicam vínculos de exclusão mútua.

Page 37: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

GRAPHPLAN

● Duas ações são mutuamente exclusivas se uma ou mais condições forem satisfeitas:○ Uma ação nega o efeito da outra.○ Um dos efeitos de uma ação é a negação de uma

precondição de uma outra ação.

Page 38: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

GRAPHPLAN

● Dois literais são mutuamente exclusivas se uma ou mais condições forem satisfeitas:○ Um litral é a negação do outro.○ Ações que alcaçam um par de literais são

mutuamente exclusivas.

Page 39: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

GRAPHPLAN

● Busca pelo plano:O algoritmo do GRAPH PLAN funciona em duas fases:

■ 1ª: expandir o grafo de planejamento.■ 2ª: tentar extrair um plano do grafo de

planejamento expandido.

Page 40: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

GRAPHPLAN

● A fase de extração é realizada somente quando todos os literais do objetivo estão presente na atual camada e se não existem vínculos de exclusão mútua entre qualquer par de literais.

● O processo de expansão pára somente se uma solução seja encontrada ou que se verifique que não é possível extraír um plano do grafo.

Page 41: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

GRAPHPLAN

● A prova de que um plano não poderá ser extraído é verificado quando:○ Literais aumentam monotonicamente.○ Ações aumentam monotonicamente.○ Número de exclusões mútuas diminuem

monotonicamente.

Page 42: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

GRAPHPLAN

● Extração do plano:○ Busca inicia a partir da camada final.○ A cada camada k selecionar um conjunto de ações

que não possuem relação de exclusão mútua.○ As precondições das ações selecionadas na

camada k se tornam o objetivos a serem alcançados pelas ações da camada k-1.

○ Se a camada inicial é alcançada então existe um plano.

Page 43: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

GRAPHPLAN

● Extração do plano:G:{¬garb, dinner, present}

Page 44: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

GRAPHPLAN

● Extração do plano:

Page 45: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

GRAPH PLAN

● Extração do plano:

Solução: cook -> wrap

Page 46: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

SATPLAN

● É uma técnica de planejamento que consiste em reduzir uma instância de planejamento automático ao problema da satisfazitilidade booleana (SAT).

Page 47: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

SATPLAN

● O problema da satisfazibilidade booleana consiste em testar se uma senteça lógica F em sua forma normal conjuntiva (CNF) é satisfazível, por exemplo:○ F = (p v q v r) ^ (¬p v ¬ r)○ p = 0, q = 1 e r = 0 então F = 1.

● Ou seja, consiste em encontrar um conjunto C de valores verdade que satisfaça F:○ C = {p=0, q=1, r=0}

Page 48: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

SATPLAN

● A redução segue os seguintes passos:○ para i=0 até Tmax○ F = reduzir a instância de planejamento a SAT○ Se F é satisfazível ○ Então extraír um plano P do conjunto de ○ valores verdade que satisfaz F○ Retorne P○ Fim Se

Onde Tmax é um valor que delimita o comprimento do plano.

Page 49: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

SATPLAN

● Caso a fórmula lógica F correspondente a instância de planejamento seja satisfazível então um plano poderá ser extraído desta fórmula.

● O plano é formado pelas proposições, correspondentes as ações, assinadas como verdadeiras.

Page 50: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

SATPLAN

● Estrutura de um planejador SAT:

Page 51: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

SATPLAN

● A redução de uma instância de planejamento consiste no seguinte conjunto de axiomas:

Onde: AES é o conjunto de axiomas de estados sucessores. AP é o conjunto de axiomas de precondições. AE e o conjunto de axiomas de exclusão.

Page 52: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

SATPLAN

● Considere o seguinte problema:Um robô precisa se movimentar da célula A para a célula B.Literais:○ EM(x): o robô está na célula x.

Ações:○ Mover((x,y), PRE: EM(x), ADD: EM(y), DEL: EM(x))

Page 53: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

SATPLAN

● A codificação do estado inicial:

Esta(A,0) ^ ¬Esta(B,0)

● Codificação de G:

Esta(B,n) ^ ¬Esta(A,n)

Page 54: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

SATPLAN

● Axiomas de Estados Sucessores:

Esta(A,1) <--> Mover(B,A,0) v ( Esta(A,0) ¬Mover(A,B,0))

Esta(B,1) <--> Mover(A,B,0) v ( Esta(B,0) ¬Mover(B,A,0))

Page 55: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

SATPLAN

● Axiomas de precondições:

Mover(A,B,0)-> Esta(A,0)Mover(B,A,0) -> Esta(B,0)

Page 56: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

SATPLAN

● Axiomas de exclusão:

(¬Mover(A,B,0) V ¬Mover(B,A,0))

Page 57: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

SATPLAN

● Extraindo a solução: Tmax = 1ESTA(A,0) ^ ¬ESTA(B,0) ^

Esta(A,1) <-> Mover(B,A,0) v ( Esta(A,0) ^ ¬Mover(A,B,0)) ^Esta(B,1) <-> Mover(A,B,0) v ( Esta(B,0) ^ ¬Mover(B,A,0)) ^

Mover(A,B,0) -> Esta(A,0) ^Mover(B,A,0) -> Esta(B,0) ^(¬Mover(A,B,0) V ¬Mover(B,A,0)) ^

Esta(B,1) ^ ¬Esta(A,1)

Page 58: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Conclusões

● Problemas de planejamento são complexos.

● A complexidade está tanto na representação do conhecimento quando no desenvolvimento de algoritmos.

● A complexidade aumenta conforme o número de literais e ações.

Page 59: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Conclusões

● SATPLAN e GRAPHPLAN foram os grandes responsáveis pelo sucesso nas pesquisas em planejamento automático.

● Anos depois outros planejadores foram propostos tendo como base as técnicas do SATPLAN e GRAPHPLAN○ MEDIC○ BLACKBOX

Page 60: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Conclusões

● GRAPHPLAN vs SATPLAN○ Não existe nenhuma prova formal de que um seja

melhor do que o outro.○ Ambos são velozes.○ Resolvem problemas complexos.

Page 61: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Contato

[email protected]

Page 62: Planejamento Automático: Breve Histórico, Strips, GraphPlan e SATPlan

Perguntas?Obrigado!