Planejamento
AutomáticoBreve Histórico, Strips, GraphPlan e SATPlan
Jhonatan Alves
Universidade Federal de Santa Catarina
Sequência da Apresentação
● Histórico
● O problema do planejamento
● Busca no espaço de estados
● Representação do conheci...
Histórico
● Nos anos 60 as principais pesquisas em IA
estavam focadas no desenvoltimento de
solucionadores gerais: GPS e Q...
Histórico
● Novos sistemas de planejamento como
ABSTRIPS, NOAH e NONLIN foram
apresentados para contornar as restrições
de...
Histórico
● A década de 90 foi marcada por grandes
avanços na área de planejamento
automático com o surgimento dos
planeja...
Histórico
● A partir de 1998 várias competições
internacionais surgiram com o intuito de
premiar os melhores sistema de
pl...
Histórico
● A última edição da IPC ocorreu este ano em
Atibaia, São Paulo.
● Atualmente as pesquisas em planejamento
autom...
Histórico
● Planejamento automático tem sido estudado
em diversos centros de ensino e pesquisa:
○ Nasa: desenvolveu um amb...
O problema do Planejamento
● Planejamento é o processo de escolher um
conjunto de ações que quando executadas
em uma deter...
O problema do Planejamento
● Planejamento Automático agrega
conhecimento de outras áreas da IA e
Computação:
○ Engenharia ...
O problema do Planejamento
● A modelagem do domínio abstrai um
conjunto de fatores, tais como: tempo,
custo, recursos e pe...
O problema do Planejamento
● Formalmente, um problema de
planejamento clássico é a tripla:
P = <T,s0,G>
onde:
○ T = sistem...
O problema do Planejamento
● T, por sua vez é a seguinte tripla:
T = <S,A,y>
onde:
○ S = {s0,s1,...,sn} é o conjunto de es...
O problema do Planejamento
● Instância do mundo de blocos:
O problema do Planejamento
● Possível solução:
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çõe...
Busca no Espaço de Estados
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...
Representação do Conhecimento
● Quesito de grande importância no
desenvolvimento de um plano.
● Técnicas de representação ...
Representação do Conhecimento
● A modelagem do domínio pode ser realizada
através da Teoria de conjuntos, Variáveis de
Est...
STRIPS
● STRIPS é uma linguagem formal derivada
da lógica de primeira ordem usada para
decompor problemas de planejamento
...
STRIPS
● Um operador O possui a seguinte estrutura:
O: nome((a0,a1,...an),PRE,ADD,DEL)
● Um estado si é representado por u...
STRIPS
● Como exemplo, considere a seguinte
instância do mundo de blocos:
Literais:
○ Sobre(x,y): x está sobre y
○ Livre(x...
STRIPS
Operadores:
○ Empilhar((x,y),
PRE: livre(y) ^ Segurando(x)
ADD: Mão-vazia ^ Sobre(x,y)
DEL: Livre(y) ^ Segurando(x)...
STRIPS
Operadores:
○ Pegar((x),
PRE: livre(x) ^ Sobre-a-mesa(x) ^ Mão-vazia
ADD: Segurando(x)
DEL: Sobre-a-mesa(x) ^ Mão-v...
Representação do Conhecimento
Estado inicial:
○ Sobre(A,B) ^ Sobre-a-mesa(B) ^ Mão-vazia ^ Livre
(A)
Objetivo:
○ Sobre(B,A...
STRIPS: Busca pelo Plano
○ s_0: Sobre(A,B) ^ Sobre-a-mesa(B) ^ Mão-vazia ^
Livre(A)
○ Empilhar((A,B),PRE: livre(B) ^ Segur...
STRIPS: Busca pelo Plano
● A aplicação do operador:
○ Desempilhar((A,B),
PRE: Sobre(A,B) ^ livre(A) ^ Mão-vazia
ADD: Segur...
STRIPS: Busca pelo Plano
● Sobre o estado s1 aplica-se o operador
Largar(A) que gera o estado s3:
s3: Sobre-a-mesa(A) ^ Li...
STRIPS: Busca pelo Plano
● Sobre o estado s4 aplica-se o operador
Empilhar(B,A) que gera o estado s4:
○ s4: Sobre(B,A) ^ L...
STRIPS: Busca pelo Plano
● O Plano gerado é a seguinte sequência de
operadores:
○ Desempilhar(A,B) -> Largar(A) -> Pegar(B...
GRAPHPLAN
● É uma técnica que busca por um plano
através de uma estrutura de grafo chamada
de grafo de planejamento.
● O g...
GRAPHPLAN
● Uma camada de literais é formada por
todos os literais que poderiam ser
verdadeiros nesse passo.
● Uma camada ...
GRAPHPLAN
GRAPHPLAN
○ Empilhar((A,B),
PRE: livre(B) ^ Segurando(A)
ADD: Mão-vazia ^ Sobre(A,B)
DEL: Livre(B) ^ Segurando(A)
GRAPHPLAN
● As linhas em vermelho indicam vínculos de exclusão
mútua.
GRAPHPLAN
● Duas ações são mutuamente exclusivas se
uma ou mais condições forem satisfeitas:
○ Uma ação nega o efeito da o...
GRAPHPLAN
● Dois literais são mutuamente exclusivas se
uma ou mais condições forem satisfeitas:
○ Um litral é a negação do...
GRAPHPLAN
● Busca pelo plano:
O algoritmo do GRAPH PLAN funciona em
duas fases:
■ 1ª: expandir o grafo de planejamento.
■ ...
GRAPHPLAN
● A fase de extração é realizada somente
quando todos os literais do objetivo estão
presente na atual camada e s...
GRAPHPLAN
● A prova de que um plano não poderá ser
extraído é verificado quando:
○ Literais aumentam monotonicamente.
○ Aç...
GRAPHPLAN
● Extração do plano:
○ Busca inicia a partir da camada final.
○ A cada camada k selecionar um conjunto de ações
...
GRAPHPLAN
● Extração do plano:
G:{¬garb, dinner, present}
GRAPHPLAN
● Extração do plano:
GRAPH PLAN
● Extração do plano:
Solução: cook -> wrap
SATPLAN
● É uma técnica de planejamento que consiste
em reduzir uma instância de planejamento
automático ao problema da sa...
SATPLAN
● O problema da satisfazibilidade booleana
consiste em testar se uma senteça lógica F
em sua forma normal conjunti...
SATPLAN
● A redução segue os seguintes passos:
○ para i=0 até Tmax
○ F = reduzir a instância de planejamento a SAT
○ Se F ...
SATPLAN
● Caso a fórmula lógica F correspondente a
instância de planejamento seja satisfazível
então um plano poderá ser e...
SATPLAN
● Estrutura de um planejador SAT:
SATPLAN
● A redução de uma instância de
planejamento consiste no seguinte conjunto
de axiomas:
Onde:
AES é o conjunto de a...
SATPLAN
● Considere o seguinte problema:
Um robô precisa se movimentar da célula A
para a célula B.
Literais:
○ EM(x): o r...
SATPLAN
● A codificação do estado inicial:
Esta(A,0) ^ ¬Esta(B,0)
● Codificação de G:
Esta(B,n) ^ ¬Esta(A,n)
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...
SATPLAN
● Axiomas de precondições:
Mover(A,B,0)-> Esta(A,0)
Mover(B,A,0) -> Esta(B,0)
SATPLAN
● Axiomas de exclusão:
(¬Mover(A,B,0) V ¬Mover(B,A,0))
SATPLAN
● Extraindo a solução: Tmax = 1
ESTA(A,0) ^ ¬ESTA(B,0) ^
Esta(A,1) <-> Mover(B,A,0) v ( Esta(A,0) ^ ¬Mover(A,B,0))...
Conclusões
● Problemas de planejamento são complexos.
● A complexidade está tanto na representação
do conhecimento quando ...
Conclusões
● SATPLAN e GRAPHPLAN foram os grandes
responsáveis pelo sucesso nas pesquisas
em planejamento automático.
● An...
Conclusões
● GRAPHPLAN vs SATPLAN
○ Não existe nenhuma prova formal de que um seja
melhor do que o outro.
○ Ambos são velo...
Contato
jhonatan.alves@posgrad.ufsc.br
Perguntas?
Obrigado!
Próximos SlideShares
Carregando em…5
×

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

484 visualizações

Publicada em

Publicada em: Ciências
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
484
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
11
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

  1. 1. Planejamento AutomáticoBreve Histórico, Strips, GraphPlan e SATPlan Jhonatan Alves Universidade Federal de Santa Catarina
  2. 2. 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?
  3. 3. 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.
  4. 4. 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.
  5. 5. 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.
  6. 6. 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)
  7. 7. 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.
  8. 8. 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
  9. 9. 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.
  10. 10. O problema do Planejamento ● Planejamento Automático agrega conhecimento de outras áreas da IA e Computação: ○ Engenharia do conhecimento ○ Lógica ○ Busca
  11. 11. 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.
  12. 12. 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
  13. 13. 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
  14. 14. O problema do Planejamento ● Instância do mundo de blocos:
  15. 15. O problema do Planejamento ● Possível solução:
  16. 16. 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.
  17. 17. Busca no Espaço de Estados
  18. 18. 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.
  19. 19. 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.
  20. 20. 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
  21. 21. 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
  22. 22. 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:
  23. 23. 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
  24. 24. STRIPS Operadores: ○ 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-vazia ADD: Segurando(x) ^ Livre(y) DEL: Sobre(x,y) ^ Mão-vazia
  25. 25. STRIPS Operadores: ○ Pegar((x), PRE: livre(x) ^ Sobre-a-mesa(x) ^ Mão-vazia ADD: 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)
  26. 26. Representação do Conhecimento Estado 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)
  27. 27. 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), ...)
  28. 28. STRIPS: Busca pelo Plano ● A aplicação do operador: ○ Desempilhar((A,B), PRE: Sobre(A,B) ^ livre(A) ^ Mão-vazia ADD: 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)
  29. 29. 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)
  30. 30. 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)
  31. 31. STRIPS: Busca pelo Plano ● O Plano gerado é a seguinte sequência de operadores: ○ Desempilhar(A,B) -> Largar(A) -> Pegar(B) -> Empilhar(B,A)
  32. 32. 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.
  33. 33. 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.
  34. 34. GRAPHPLAN
  35. 35. GRAPHPLAN ○ Empilhar((A,B), PRE: livre(B) ^ Segurando(A) ADD: Mão-vazia ^ Sobre(A,B) DEL: Livre(B) ^ Segurando(A)
  36. 36. GRAPHPLAN ● As linhas em vermelho indicam vínculos de exclusão mútua.
  37. 37. 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.
  38. 38. 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.
  39. 39. 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.
  40. 40. 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.
  41. 41. 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.
  42. 42. 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.
  43. 43. GRAPHPLAN ● Extração do plano: G:{¬garb, dinner, present}
  44. 44. GRAPHPLAN ● Extração do plano:
  45. 45. GRAPH PLAN ● Extração do plano: Solução: cook -> wrap
  46. 46. SATPLAN ● É uma técnica de planejamento que consiste em reduzir uma instância de planejamento automático ao problema da satisfazitilidade booleana (SAT).
  47. 47. 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}
  48. 48. 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.
  49. 49. 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.
  50. 50. SATPLAN ● Estrutura de um planejador SAT:
  51. 51. 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.
  52. 52. 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))
  53. 53. SATPLAN ● A codificação do estado inicial: Esta(A,0) ^ ¬Esta(B,0) ● Codificação de G: Esta(B,n) ^ ¬Esta(A,n)
  54. 54. 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))
  55. 55. SATPLAN ● Axiomas de precondições: Mover(A,B,0)-> Esta(A,0) Mover(B,A,0) -> Esta(B,0)
  56. 56. SATPLAN ● Axiomas de exclusão: (¬Mover(A,B,0) V ¬Mover(B,A,0))
  57. 57. SATPLAN ● Extraindo a solução: Tmax = 1 ESTA(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)
  58. 58. 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.
  59. 59. 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
  60. 60. 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.
  61. 61. Contato jhonatan.alves@posgrad.ufsc.br
  62. 62. Perguntas? Obrigado!

×