planejamento clássico – parte 1

22
1 Planejamento Clássico – Parte 1 Sergio Queiroz * *Baseado nos slides de Alan Fern (Oregon State University), que por sua vez foram parcialmente baseados em slides por Daniel Weld.

Upload: kalona

Post on 27-Jan-2016

35 views

Category:

Documents


5 download

DESCRIPTION

Planejamento Clássico – Parte 1. Sergio Queiroz *. *Baseado nos slides de Alan Fern ( Oregon State University ), que por sua vez foram parcialmente baseados em slides por Daniel Weld. Alguns problemas de planejamento em IA. Paciência. Planejamento para resposta a Incêndio , Resgate. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Planejamento Clássico  – Parte 1

1

Planejamento Clássico – Parte 1

Sergio Queiroz *

*Baseado nos slides de Alan Fern (Oregon State University), que por sua vez foram parcialmente baseados em slides por Daniel Weld.

Page 2: Planejamento Clássico  – Parte 1

Alguns problemas de planejamento em IA

Planejamento para resposta a Incêndio, Resgate

Paciência Jogos de Estratégia

Controle de Helicóptero Controle de robôs Segurança/Controle de Redes

Page 3: Planejamento Clássico  – Parte 1

3

Elementos comunsh Nós temos um sistema controlável que muda de

estado com o tempo (de alguma forma previsível)5 O estado descreve informações essenciais sobre o

sistema (as informações visíveis sobre as cartas no jogo de paciência…)

h Nós temos um objetivo que especifica quais estados, ou sequências de estados, são mais/menos desejados

h Pode-se (parcialmente) controlar a transição dos estados do sistema através da tomada de ações

h Problema: A cada momento deve-se selecionar uma ação que otimiza o objetivo geral5 Produzir as sequências de estados mais desejáveis

Page 4: Planejamento Clássico  – Parte 1

4

Percepções Ações

????

Mundo

perfeito

totalmenteobservável

instantâneo

determinístico

Premissas do Planejamento Clássico

única fonte demudança

Objetivoalcançar as condiçõesdo objetivo

Page 5: Planejamento Clássico  – Parte 1

5

Percepções Ações

????

Mundo

perfeito

totalmenteobservável

instantâneo

determinístico

Premissas do Planejamento Clássico

única fonte demudança

Objetivoalcançar as condiçõesdo objetivo Principais limitantes para

muitas aplicações práticas

Page 6: Planejamento Clássico  – Parte 1

6

Por que se importar com planejamento clássico?

h Ênfase em analisar a estrutura combinatória de problemas5 Desenvolveu muitas ideias poderosas nesta direção5 Pesquisas “modernas” em planejamento, como Markov Decision

Processes (MDP), praticamente ignoraram este tipo de análise (embora também enfrentem este tipo de problema)

h Planejadores clássicos costumam ser capazes de escalar melhor para espaços de estados grandes graças à utilização dessas ideias.

h Replanejamento: muitos ambiente estáveis satisfazem aproximadamente essas premissas (e.g. robô para mover caixas)5 É possível tratar violações pequenas das premissas através de

replanejamento e monitoramento da execução5 O mundo frequentemente não é tão aleatório e pode ser pensado

de forma efetivamente de forma determinística

Page 7: Planejamento Clássico  – Parte 1

7

Por que se importar com planejamento clássico?

h Ideias oriundas de técnicas de planejamento clássico frequentemente são a base para desenvolver técnicas de planejamento não-clássicas5 Uso de planejadores clássicos como um componente de

planejamento probabilístico [Yoon et. al. 2008](i.e. redução de planejamento probabilístico para planejamento clássico)

5 Técnicas poderosas de análise de domínio do planejamento clássico foram integradas em planejadores MDP

Page 8: Planejamento Clássico  – Parte 1

8

Representando Estados

holding(A)clear(B)on(B,C)onTable(C)

State 1

handEmptyclear(A)on(A,B)on(B,C)onTable(C)

State 2

C

A

BC

AB

Estados do mundo são representados como conjuntos de fatos

Fatos também serão chamados de proposições.

Closed World Assumption (CWA): Fatos não listados em um estado são considerados falsos. Sob CWA estamos assumindo que o mundo é totalmente observável.

Page 9: Planejamento Clássico  – Parte 1

9

Representando Estados

Objetivos também são representados como conjuntos de fatos.

Por exemplo, { on(A,B) }, é um objetivo no mundo dos blocos.

Um estado objetivo é qualquer estado que contenha todos osestados objetivo

handEmptyclear(A)on(A,B)on(B,C)onTable(C)

Estado 1

C

AB

holding(A)clear(B)on(B,C)onTable(C)

Estado 2

C

A

B

Estado 1 é um estado objetivo para o objetivo { on(A,B) }. Estado 2 não é um estado objetivo para { on(A,B) }.

Page 10: Planejamento Clássico  – Parte 1

10

Representando uma Ação em STRIPS

holding(A)clear(B)on(B,C)onTable(C)

Estado 1

handEmptyclear(A)on(A,B)on(B,C)onTable(C)

Estado 2

PutDown(A,B)

C

A

B

C

AB

Uma definição STRIPS de ação especifica: 1) um conjunto PRE de fatos que são pré-condições 2) um conjunto ADD de fatos-efeito que são adicionados 3) um conjunto DEL de fatos-efeito que são apagados

PutDown(A,B):

PRE: { holding(A), clear(B) } ADD: { on(A,B), handEmpty, clear(A) } DEL: { holding(A), clear(B) }

STRIPS = Stanford Research Institute Problem Solver

Page 11: Planejamento Clássico  – Parte 1

11

Semântica de Ações STRIPS

holding(A)clear(B)on(B,C)onTable(C)

S

handEmptyclear(A)on(A,B)on(B,C)onTable(C)

S ADD – DEL

PutDown(A,B)

C

A

BC

AB

• Uma ação STRIPS é aplicável (ou permitida) em um estado quando suas pré-condições estão contidas no estado.

• Tomar uma ação em um estado S resulta em um novo estado:

• S ADD – DEL (i.e. adicionar os efeitos ADD e remover os efeitos DEL)

PutDown(A,B):

PRE: { holding(A), clear(B) } ADD: { on(A,B), handEmpty, clear(A)} DEL: { holding(A), clear(B) }

Page 12: Planejamento Clássico  – Parte 1

12

Problema de Planejamento STRIPS

PutDown(A,B):

PRE: { holding(A), clear(B) } ADD: { on(A,B), handEmpty, clear(A)} DEL: { holding(A), clear(B) }

Um problema de planejamento STRIPS especifica: 1) um estado inicial S 2) um objetivo G 3) um conjunto de ações STRIPS

holding(A)clear(B)onTable(B)

Estado Inicial

A

B on(A,B)

Objetivo

PutDown(B,A):

PRE: { holding(B), clear(A) } ADD: { on(B,A), handEmpty, clear(B) } DEL: { holding(B), clear(A) }

Ações STRIPS

Problema-Exemplo :

Objetivo: encontrar uma sequência de ações que chegue a um estado objetivo, ou retornar que o objetivo é inalcançável.

Solução: (PutDown(A,B))

Page 13: Planejamento Clássico  – Parte 1

13

Planejadores Proposicionaish Por razões de clareza escrevemos proposições tais como on(A,B) em

função de objetos (e.g. A e B) e predicados (e.g. on).

h No entanto, os planejadores que iremos considerar ignoram a estrutura interna de proposições tais como on(A,B).

h Tais planejadores são chamados planejadores proposicionais em oposição a planejadores de primeira ordem, ou relacionais

h Portanto não fará diferença para o planejador se nós substituíssemos toda ocorrência de “on(A,B)” em um problema por “prop1” (e assim por diante para outras proposições)

h Parece errado ignorar a existência de objetos. Mas atualmente planejadores proposicionais são o estado-da-arte.

holding(A)clear(B)onTable(B)

Estado Inicial

on(A,B)

Objetivo

prop2prop3prop4

Estado Inicial

prop1

Objetivo

Page 14: Planejamento Clássico  – Parte 1

14

Esquemas de ações STRIPS

PutDown(x,y):

PRE: { holding(x), clear(y) } ADD: { on(x,y), handEmpty, clear(x) } DEL: { holding(x), clear(y) }

Por conveniência nós tipicamente especificamos problemas via esquemas de ações ao invés de escrever ações STRIPS individuais.

Esquema de Ações: (x e y são variáveis)

PutDown(A,B):

PRE: { holding(A), clear(B) } ADD: { on(A,B), handEmpty, clear(A) } DEL: { holding(A), clear(B) }

PutDown(B,A):

PRE: { holding(B), clear(A) } ADD: { on(B,A), handEmpty, clear(B) } DEL: { holding(B), clear(A) }

h Cada forma de substituir variáveis por objetos a partir do estado inicial e objetivo gera uma ação STRIPS “ground” (instanciada – sem variáveis livres).

h Dado um conjunto de esquemas, um estado inicial, e um objetivo, planejadores proposicionais compilam esquemas em ações ground e então ignoram a existência de objetos deste ponto em diante.

. . . .

Page 15: Planejamento Clássico  – Parte 1

15

STRIPS Versus PDDLh O AIMA faz referência à PDDL para definição de problemas de

planejamento ao invés de STRIPS

h A Planning Domain Description Language (PDDL) foi definida por pesquisadores em planejamento como uma linguagem padrão para definir problemas de planejamento5 Inclui STRIPS como caso especial juntamente com características mais

avançadas5 Algumas características adicionais simples incluem: especificação de tipo

para objetos, pré-condições negadas, efeitos add/del condicionais5 Algumas características mais avançadas incluem a introdução de variáveis

numéricas e ações duráveis

h A maioria dos planejadores que você pode baixar recebe PDDL como entrada (veja http://fai.cs.uni-saarland.de/hoffmann/ff.html )5 A maioria suporta apenas as características mais simples de PDDL

(essencialmente STRIPS)5 A sintaxe PDDL é fácil de aprender a partir dos exemplos que acompanham

os planejadores, mas uma definição formal pode ser encontrada:

http://www.informatik.uni-ulm.de/ki/Edu/Vorlesungen/GdKI/WS0203/pddl.pdf

Page 16: Planejamento Clássico  – Parte 1

16

Propriedades de Planejadores

h Um planejador é correto (sound) se toda sequência de ações que ele retorna é de fato uma solução verdadeira

h Um planejador é completo (complete) se ele retorna uma sequência de ações ou “não existe solução” para qualquer problema de entrada

h Um planejador é ótimo (optimal) se ele sempre retorna a solução menor possível

O ótimo é um requisito importante?

É um requisito razoável?

Page 17: Planejamento Clássico  – Parte 1

17

Planejamento como Busca em Grafos

h É fácil ver planejamento como um problema de busca em grafos

h Nós/vértices = estados possíveis

h Arestas direcionadas = ações STRIPS

h Solução: caminho de um estado inicial (i.e. vértice) para um estado/vértice que satisfaz o objetivo

Page 18: Planejamento Clássico  – Parte 1

18

Espaço de Busca: Mundo dos Blocos

Grafo é finito

Estado Inicial Estado Objetivo

Page 19: Planejamento Clássico  – Parte 1

19

Planejamento como Busca em Grafos

h Planejamento é simplesmente encontrar um caminho em um grafo5 Por que não simplesmente usar algoritmos padrão de

grafos para encontrar caminhos?

h Resposta: grafos são exponencialmente grandes no tamanho de codificação dos problemas (i.e. tamanho dos problemas STRIPS). 5 Mas, algoritmos padrão são polinomiais no tamanho do

grafo5 Então algoritmos padrão necessitariam de tempo

exponencial

h É possível fazer melhor do que isso?

Page 20: Planejamento Clássico  – Parte 1

20

Complexidade de Planejamento STRIPS

h PlanSAT é decidível.5 Por que? (o número de estados é finito)

h Em geral PlanSAT é PSPACE-completo! Simplesmente encontrar um plano é difícil no pior caso.5 Mesmo com ações limitadas para 2 pré-condições e 2 efeitos

PlanSAT Entrada: um problema de planejamento STRIPS Saída: “sim” se o problema tem solução, caso contrário “não”

NOTA: PSPACE é o conjunto de todos os problemas que são decidíveis em espaço polinomial. Acredita-se que PSPACE-completo contém estritamente NP.

Isso significa que deve-se desistir de planejamento em IA?

Page 21: Planejamento Clássico  – Parte 1

21

Satisficing vs. Optimality

?

h Enquanto simplesmente encontrar um plano é difícil no pior caso, para muitos domínios de planejamento, encontrar um plano é fácil.

h No entanto, encontrar soluções ótimas pode ainda ser difícil nesses domínios. 5 Por exemplo, planejamento ótimo no mundo dos blocos é NP-completo.

h Na prática, é frequentemente suficiente encontrar “boas” soluções “rapidamente”, mesmo que elas não sejam ótimas. 5 Isso é frequentemente chamado de um objetivo do tipo “satisficing”.5 Por exemplo, no mundo dos blocos é possível produzir soluções

aproximadamente ótimas em tempo linear. Como?

Page 22: Planejamento Clássico  – Parte 1

22

Satisficing

h Mesmo assim, encontrar planos satisficing para problemas STRIPS arbitrários não é fácil.5 Ainda é preciso lidar com o tamanho esponencial do

espaço de estados5 Por que é possível fazer melhor do que algoritmos

genéricos de grafos?

h Resposta: nós temos uma descrição STRIPS compacta e estruturada dos problemas5 Tentar tomar proveito da estrutura presente nessas

descrições para procurar por soluções de forma inteligente

5 A seguir veremos exemplo de como isso pode ser feito.