64
Planejamento em Inteligência Artificial Leliane Nunes de Barros

Planejamento em Inteligência Artificial

  • Upload
    marnie

  • View
    20

  • Download
    0

Embed Size (px)

DESCRIPTION

Planejamento em Inteligência Artificial. Leliane Nunes de Barros. Problema. Linguagem. Planejador. Solução. Motivação. Um dos principais objetivos da IA foi/é o desenvolvimento de um Solucionador Geral de Problemas (GPS) [Newell & Simon, 1961] - PowerPoint PPT Presentation

Citation preview

Page 1: Planejamento em  Inteligência Artificial

Planejamento em Inteligência Artificial

Leliane Nunes de Barros

Page 2: Planejamento em  Inteligência Artificial

LabIA 2003

2

Motivação

• Um dos principais objetivos da IA foi/é o desenvolvimento de um Solucionador Geral de Problemas (GPS) [Newell & Simon, 1961]

• Idéia: problemas são descritos numa linguagem de alto-nível de abstração e são resolvidos automaticamente

• Objetivo: facilitar a modelagem de problemas com um prejuízo mínimo em termos de desempenho.

Problema Linguagem Planejador Solução

Page 3: Planejamento em  Inteligência Artificial

LabIA 2003

3

Escopo do planejador

• Planejamento não é tão geral como GPS!– a solução do Cubo Mágico é uma sequência de

ações – a solução para um problema de diagnóstico é uma

estratégia de ações sendo a determinação precisa dos testes a serem realizados (ações), uma função das observações coletadas ==> técnica de planejamento condicional ou planejamento e execução

• Para definir uma linguagem e um algoritmo é preciso definir um escopo

Page 4: Planejamento em  Inteligência Artificial

LabIA 2003

4

Modelos Matemáticos

Modelos permitem definir o escopo de um planejador – o que é um problema de planejamento– o que é uma solução (plano) – o que é uma solução ótima

Page 5: Planejamento em  Inteligência Artificial

LabIA 2003

5

Componentes de Planejamento

• Modelos para compreender os algoritmos e estabelecer classes de problemas e tipos de solução

• Linguagens para representação de problemas

• Algoritmos para resolver esses problemas (usando informações disponíveis na linguagem de representação de problemas)

Page 6: Planejamento em  Inteligência Artificial

LabIA 2003

6

Planejamento Clássico

Pode ser caracterizado como um Modelo de Estados

– um espaço de estados S , finito e não-vazio

– um estado inicial s0S

– um conjunto de estados meta SGS

– um conjunto de ações aplicáveis A(s)A, para sS

– uma função de transição sf(a,s), para s,sS e

aA(s)

– uma função custo c(a,s)>0, para sS e aA(s)

Page 7: Planejamento em  Inteligência Artificial

LabIA 2003

7

Modelo de Estados

Uma solução é uma sequência de ações aplicáveis que

mapeiam s0 num estado meta SG .

Uma solução ótima minimiza a soma dos custos das ações.

planejamento com sensoriamentoplanejamento com incertezaplanejamento com recursosplanejamento temporal...

Modelos diferentes

Page 8: Planejamento em  Inteligência Artificial

LabIA 2003

8

• Domínio = Estados (posições dos blocos) + Ações (move)

• s0: (“red on table”, “blue on table”, “green on blue”)

• SG: (“red on table”, “green on blue”, “blue on green”)

• Plano: (“move green on red” “move blue on green”)

• Problema de Planejamento:

Dado um domínio (estados e ações), um estado inicial e o estado meta, o problema de planejamento é encontrar um plano de ações que transforma o estado inicial no estado meta

Um problema simples

Page 9: Planejamento em  Inteligência Artificial

LabIA 2003

9

• Domínio = Espaço de Busca

• Problema:

encontrar um caminho que ligue o estado inicial e o estado meta

Planejamento como busca progressiva

Page 10: Planejamento em  Inteligência Artificial

LabIA 2003

10

Espaço de estados

A

BC

AB

C

A B C ABC

AB C

ABCA

BC

A BC

A BC

ABC

AB

CAB C A

BC

Page 11: Planejamento em  Inteligência Artificial

LabIA 2003

11

Depots: Logística + Mundo dos Blocos

5 localizações, 3 pilhas, 100 containers 10277 estados

Page 12: Planejamento em  Inteligência Artificial

LabIA 2003

12

Outras áreas e modelos

• Modelos para PO, controle, combinatória, ...– programação linear– programação inteira– SAT– CSP ...

• Planejamento em IA difere de 2 maneiras:– trata uma classe diferente de modelos – modelos são representados implicitamente na

linguagem

Essas áreas começam a fazer a distinção entre

modelos e linguagens

Page 13: Planejamento em  Inteligência Artificial

LabIA 2003

13

Modelos Matemáticos em Planejamento

• Modelo de Estados: tipo mais simples• Modelo de Estados Probabilístico e Não-

determinístico: dinâmica mais complexa• Modelo de Estados Probabilístico e Não-

determinístico com informação parcial do mundo: percepção mais complexa (realimentação)

• modelos ainda mais complexos envolvem aspectos de escalonamento: recursos, tempo, ações durativas, concorrência, etc

Page 14: Planejamento em  Inteligência Artificial

LabIA 2003

14

Modelos Lógicos em Planejamento

Modelos lógicos além de definerem o escopo de planejamento também definem a linguagem e o tipo de raciocínio– Cálculo de Situações com raciocínio dedutivo

(originalmente proposto em 63)• tipo de raciocínio natural para planejamento: dedução

– Cálculo de Eventos com raciocínio abdutivo• tipo de raciocínio natural para planejamento: abdução

– outras lógicas

A grande maioria das lógicas de ações não “deliberam” planos (planejam) mas só permitem o raciocínio sobre ações e planos (dados).

Page 15: Planejamento em  Inteligência Artificial

LabIA 2003

15

Ingredientes de Planejamento

Modelos

Linguagens

Algoritmos

Page 16: Planejamento em  Inteligência Artificial

LabIA 2003

16

Linguagens de Planejamento

Linguagens de planejamento servem para:– descrever problemas – descrever estados– descrever ações

Ocupam dois papéis:– especificação: descrição precisa do problema– computação: revelam informações heurísticas

Page 17: Planejamento em  Inteligência Artificial

LabIA 2003

17

Linguagem dos Modelos Lógicos

• Adota-se uma linguagem lógica para descrever estados, ações e problemas

• Vantagem: pode-se utilizar um mecanismo de inferência lógica como algoritmo

Robótica Cognitiva: A melhor maneira de se explicar o

comportamento inteligente é interpretando-o como produto de um raciocínio correto sobre uma representação correta.

Page 18: Planejamento em  Inteligência Artificial

LabIA 2003

18

Cálculo de situações

• Ontologia: situações, fluentes e ações

• Linguagem– s0

– do( , s)– poss( ,s)– holds(f , s)

Page 19: Planejamento em  Inteligência Artificial

LabIA 2003

19

Mundo dos Blocos

BA

C

s0

• fluentes:clear(X)ontable(X)on(X,Y)

• ações:stack(X,Y)unstack(X,Y)move(X,Y,Z)

Page 20: Planejamento em  Inteligência Artificial

LabIA 2003

20

• axiomas de observação:

holds(clear(c),s0)holds(on(c,a),s0)...

• axiomas de efeito:

holds(clear(Y), do(move(X,Y,Z),S))holds(on(X,Z), do(move(X,Y,Z),S))...

• axiomas de precondições:

poss(move(X,Y,Z),S) holds(clear(X),S) holds(clear(Z),S) holds(on(X,Y),S)…

• axioma de persistência (frame axiom):holds(F,do(A,S)) :- poss(A,S), holds(F,S), not

affects(A,F).

Especificação lógica do domínio

BAC

s0

Page 21: Planejamento em  Inteligência Artificial

LabIA 2003

21

O problema da persistência

move(c,a,b)

BA

s1 do(move(c,a,b),s0)

C

s0

BA

C

holds( clear(b), s0)holds( clear(c), s0)holds( ontable(a), s0)holds( ontable(b), s0)holds( on(c,a), s0)

axiomas de persistência

holds( clear(c), s1)holds( ontable(a),

s1)holds( ontable(b),

s1)

axiomas de efeitoholds( clear(a), s1)holds( on(c,b), s1)

Page 22: Planejamento em  Inteligência Artificial

LabIA 2003

22

Dados:

A : axiomatização do domínioI : situação inicialG : meta de planejamento

O planejamento consiste em provar que

A I | S[exec(S) G(S)],

sendo executabilidade definida indutivamente por:

exec(s0)exec(do(A,S)) poss(A,S) exec(S)

Planejamento dedutivo

Page 23: Planejamento em  Inteligência Artificial

LabIA 2003

23

Um planejador em PROLOG

holds(clear(b),s0).holds(clear(c),s0).holds(ontable(a),s0).holds(ontable(b),s0).holds(on(c,a),s0).

holds(on(X,Y),do(stack(X,Y),S)).holds(clear(Y),do(unstack(X,Y),S)).holds(ontable(X),do(unstack(X,Y),S)).

poss(stack(X,Y),S) :- holds(ontable(X),S), holds(clear(X),S), holds(clear(Y),S), X\=Y.poss(unstack(X,Y),S) :- holds(clear(X),S), holds(on(X,Y),S).

holds(F,do(A,S)) :- poss(A,S), holds(F,S), not affects(A,F).

affects(stack(X,Y),clear(Y)).affects(stack(X,Y),ontable(X)).affects(unstack(X,Y),on(X,Y)).

exec(s0).exec(do(A,S)) :- poss(A,S), exec(S).

plan(s0).plan(do(A,S)) :- plan(S).

BAC

s0

Page 24: Planejamento em  Inteligência Artificial

LabIA 2003

24

Consultando o planejador

?- plan(S), exec(S), holds(on(a,c),S).

S = do(stack(a,c),do(unstack(c,a),s0))yes

?- plan(S), exec(S), holds(on(a,b),S), holds(on(b,c),S).

S = do(stack(a,b),do(stack(b,c),do(unstack(c,a),s0)))yes

?- holds(F, do(stack(a,b),do(stack(b,c),do(unstack(c,a),s0)))).

F = on(a,b) ;

F = on(b,c) ;

F = clear(a) ;

F = ontable(c) ;no

BAC

s0

Page 25: Planejamento em  Inteligência Artificial

LabIA 2003

25

A linguagem Strips (Fikes e Nilsson, 1971)

• Strips (Stanford Research Institute Problem-Solving) é a mais antiga, simples e usada linguagem de planejamento (sistema Strips)

• Evolução: Strips ADL PDDL2.1 PDDL+• Um problema em Strips é uma tupla <A, O, I, G>

- A é o conjunto de todos os átomos (variáveis booleanas descritores de estados),

- O é um conjunto de todos os operadores (ações proposicionais), e

- I A representa a situação inicial (descrição completa de estado)

- G A representa as situações meta (descrição parcial de estados)

Page 26: Planejamento em  Inteligência Artificial

LabIA 2003

26

A linguagem Strips

• Os operadores oO são representados por três listas:– lista Pre, Pre A

– lista Add, Add(o) A

– lista Del, Del A

Intuitivamente: Pre(o) especifica os átomos que devem ser verdadeiros para o ser aplicável, Add(o) especifica os átomos que passam a ser verdadeiros após a execução de o e Del(o) especifica os átomos que passam a ser falsos após a execução de o

Qual é a solução para o problema do quadro?

Page 27: Planejamento em  Inteligência Artificial

LabIA 2003

27

Strips: da linguagem aos modelos

Um problema Strips, P = <A, O, I, G> determina um modelo de estados S(P) em que:

• os estados sS são coleções de átomos;

• o estado inicial s0 é I

• os estados meta sSG são aqueles em que G s

• as ações aA(s) são operadores oO tal que Prec(o) s• a função de transição f mapeia estados s em estados

s' = f(s, a), tal que s' = s - Del(a) + Add(a) para a A(s)• os custos das ações são iguais a 1

• a solução (ótima) de um problema de planejamento é a solução (ótima) do Modelo de Estados S(P)

Page 28: Planejamento em  Inteligência Artificial

LabIA 2003

28

STRIPS: sintaxe e semântica

BACmove(c,a,b)

BAC

clear(b)clear(c)ontable(a)ontable(b)on(c,a)

clear(b)clear(c)ontable(a)ontable(b)on(c,a)clear(a)on(c,b)

clear(b)clear(c)ontable(a)ontable(b)on(c,a)clear(a)on(c,b)

clear(b)clear(c)ontable(a)ontable(b)on(c,a)

oper(act: move(c,a,b), pre: { clear(c), clear(b), on(c,a) }, add: { clear(a), on(c,b) }, del: { clear(b), on(c,a) })

Page 29: Planejamento em  Inteligência Artificial

LabIA 2003

29

ADL e PDDL

• Inclui: tipos, funções, variáveis numéricas, ações durativas, funções de otimização ==>

planejamento/escalonamento• AIPS 2002 Planning Competition

http://www.dur.ac.uk/d.p.long/competition.htm

Page 30: Planejamento em  Inteligência Artificial

LabIA 2003

30

PDDL - ação Strips

(:action turn_to

:parameters (?s - satellite ?d_new - direction ?d_prev - direction)

:precondition (and (pointing ?s ?d_prev)

(not (= ?d_new ?d_prev))

)

:effect (and (pointing ?s ?d_new)

(not (pointing ?s ?d_prev))

)

)

Page 31: Planejamento em  Inteligência Artificial

LabIA 2003

31

PDDL - ação Strips-numérico

(:action turn_to

:parameters (?s - satellite ?d_new - direction ?d_prev - direction)

:precondition (and (pointing ?s ?d_prev)

(not (= ?d_new ?d_prev))

(>= (fuel ?s) (slew_time ?d_new ?d_prev))

)

:effect (and (pointing ?s ?d_new)

(not (pointing ?s ?d_prev))

(decrease (fuel ?s) (slew_time ?d_new ?d_prev))

(increase (fuel-used) (slew_time ?d_new ?d_prev))

)

)

Page 32: Planejamento em  Inteligência Artificial

LabIA 2003

32

PDDL - ação Strips-temporal

(:durative-action turn_to

:parameters (?s - satellite ?d_new - direction ?d_prev - direction)

:duration (= ?duration 5)

:condition (and (at start (pointing ?s ?d_prev))

(over all (not (= ?d_new ?d_prev)))

)

:effect (and (at end (pointing ?s ?d_new))

(at start (not (pointing ?s ?d_prev)))

)

)

Page 33: Planejamento em  Inteligência Artificial

LabIA 2003

33

PDDL - ação Strips-temporal*

(:durative-action turn_to

:parameters (?s - satellite ?d_new - direction ?d_prev - direction)

:duration (= ?duration (slew_time ?d_prev ?d_new))

:condition (and (at start (pointing ?s ?d_prev))

(over all (not (= ?d_new ?d_prev)))

)

:effect (and (at end (pointing ?s ?d_new))

(at start (not (pointing ?s ?d_prev)))

)

)

Page 34: Planejamento em  Inteligência Artificial

LabIA 2003

34

PDDL - ação Strips-temporal*

(:durative-action take_image

:parameters (?s - satellite ?d - direction ?i - instrument ?m - mode)

:duration (= ?duration 7)

:condition (and (over all (calibrated ?i))

(over all (on_board ?i ?s))

(over all (supports ?i ?m) )

(over all (power_on ?i))

(over all (pointing ?s ?d))

(at end (power_on ?i))

(at start (>= (data_capacity ?s) (data ?d ?m)))

)

:effect (and (at start (decrease (data_capacity ?s) (data ?d ?m)))

(at end (have_image ?d ?m))

(at end (increase (data-stored) (data ?d ?m))) )

Page 35: Planejamento em  Inteligência Artificial

LabIA 2003

35

Ingredientes de Planejamento

Modelos

Linguagens

Algoritmos

Page 36: Planejamento em  Inteligência Artificial

LabIA 2003

36

Algoritmos para resolver probelmas em ME

• Problemas de planejamento podem ser resolvidos por algoritmos de busca no espaço de estados S(P) ==> técnica considerada ineficiente até recentemente …

• Espaço de busca: – Planejador progressivo (forward planning)– Planejador regressivo (backward planning)

• Algoritmos de busca exaustiva– Os estados meta não são levados em conta:

DFS, BFS, Custo Uniforme, ID

Page 37: Planejamento em  Inteligência Artificial

LabIA 2003

37

Algoritmos para resolver Modelos de Estado

• Algoritmos de busca informada– Para controlar o processo, a busca usa uma

função h(s) que estima a distância (custo) do estado s aos estados SG: A*, IDA*, Best First Search, Hill Climbing, Branch & Bound

Page 38: Planejamento em  Inteligência Artificial

LabIA 2003

38

Planejadores conhecidos

• Algoritmo Strips (71): planejamento totalmente ordenado: – Análise means-ends (50): adicione ações no plano

que sejam aplicáveis e que atinjam sub-metas de G– Dificuldade: em geral, para problemas interessantes

não existem ações que sejam aplicáveis e relevantes para satisfazer a meta, ao mesmo tempo.

– Solução Strips: construir estados da busca mais complicados mantendo uma hierarquia de sub-metas (pilha de sub-metas) e planos incompletos ==> Busca num Espaço de Planos

Page 39: Planejamento em  Inteligência Artificial

LabIA 2003

39

Busca no espaço de planos

stack(a,b)

stack(b,c)stack(a,b) stack(b,c)

stack(a,b)

unstack(c,a)

stack(b,c)

stack(a,b)

unstack(c,a)

stack(b,c)

stack(a,b)

Page 40: Planejamento em  Inteligência Artificial

LabIA 2003

40

Ordem parcial, vínculos e ameaças

a1

a2

a3

antecipar

a1

a2

a3

postergar

a1

a3

a2

ameaça

Page 41: Planejamento em  Inteligência Artificial

LabIA 2003

41

Ordem parcial, vínculos e ameaças

a0

clear(b) clear(c) ontable(a) ontable(b) on(c,a)

a

on(a,b) on(b,c)

S = {a0, a}O = {a0a}L = {}

on(b,c) clear(c) ontable(b)

clear(b) clear(c) ontable(b)

stack(b,c)

clear(b) ontable(a) on(a,b)

clear(a) clear(b) ontable(a)

stack(a,b)

S = {stack(a,b), a0, a}O = {a0stack(a,b)a, a0a}L = {stack(a,b)on(a,b)@a}

S = {stack(b,c), stack(a,b), a0, a}O = {a0stack(b,c)a, a0stack(a,b)a, a0a}L = {stack(b,c)on(b,c)@a, stack(a,b)on(a,b)@a}

S = {stack(b,c), stack(a,b), a0, a}O = {a0stack(b,c)a, a0stack(a,b)a, a0a}L = {a0clear(b)@stack(b,c), stack(b,c)on(b,c)@a, stack(a,b)on(a,b)@a}

S = {stack(b,c), stack(a,b), a0, a}O = {stack(b,c)stack(a,b) , a0stack(b,c)a, a0stack(a,b)a, a0a}L = {a0clear(b)@stack(b,c), stack(b,c)on(b,c)@a, stack(a,b)on(a,b)@a}

Page 42: Planejamento em  Inteligência Artificial

LabIA 2003

42

Algoritmo POP

function POP(initial, goal, operators) returns plan

plan Make-Minimal-Plan(initial, goal)

loop do

if Solution? (plan) then return plan

Sneed , c Select-Subgoal(plan)

Choose-Operator(plan, operators, Sneed, c)

Resolve-Threats(plan)

end

function Select-Subgoal(plan) returns Sneed , c

pick a plan step Sneed from Steps(plan)with a precondition c that has not been achieved

return Sneed , c

Page 43: Planejamento em  Inteligência Artificial

LabIA 2003

43

POP algorithm (cont.)

procedure Chose-Operator(plan,operators, Sneed , c )

choose a step Sadd from operators or Steps(plan) that has c as an effectif there is no such step then fail

add the causal link Sadd c Sneed to Links(plan)

add the ordering constraint Sadd < Sneed to Orderings(plan)

if Sadd is a newly added step from operators then

add Sadd to Steps(plan)

add Start < Sadd < Finish to Orderings(plan)

Page 44: Planejamento em  Inteligência Artificial

LabIA 2003

44

POP algorithm (cont.)

procedure Resolve-Threats(plan)

for each Sthreat that threatens a link Si c Sj in Links(plan) do

choose either

Demotion: Add Sthreat < Si to Orderings(plan)

Promotion: Add Si < Sthreat to Orderings(plan)

if not consistent(plan) then fail

end

POP é correto, completo e sistemático (busca sem repetição)

Page 45: Planejamento em  Inteligência Artificial

LabIA 2003

45

Planejadores modernos

• Graphplan (1995 - …) – constrói um grafo de planejamento contendo todos os

planos possíveis de um determinado comprimento para então extrair um plano por meio de uma busca regressiva no grafo

• SatPlan (1996 - …) mapeia problemas de planejamentp em um problema SAT e usa um SATsolver eficiente* .

• Blackbox: = Satplan + Graphplan• Planejamento como Busca Local com uso de

Heurísticas … algoritmos de maior sucesso nas últimas competições de planejamento

Page 46: Planejamento em  Inteligência Artificial

LabIA 2003

46

Grafo de Planejamento

• Planning Graph [Blum&Furst 1997]– expansão do grafo

0 i-1 i i+1

proposições proposições

ações

Page 47: Planejamento em  Inteligência Artificial

LabIA 2003

47

Grafo de Planejamento

• Grafo de Planejamento– Relações de Mutex

Efeitos Inconsistentes

Interferência Necessidadesconflitantes

SuporteInconsistente

Page 48: Planejamento em  Inteligência Artificial

LabIA 2003

48

Domínio Jantar

cozinhar :prec (mãos_limpas)

:efeito (jantar)

embrulhar :prec (silêncio)

:efeito (presente)

carregar_lixo :prec (lixo)

:efeito ( ¬lixo, ¬mãos_limpas)

triturar_lixo :prec (lixo)

:efeito (¬lixo, ¬silêncio)

Page 49: Planejamento em  Inteligência Artificial

LabIA 2003

49

Grafo de Planejamento

Page 50: Planejamento em  Inteligência Artificial

LabIA 2003

50

SATPLAN

História: Kautz and Selman, 1992 • Inspiração nos avanços dos algoritmos de

satisfazibilidade

Idéia • Codificar o problema de planejamento como

uma grande fórmula lógica do tipo:

Initial- state & all- possible- actions & goal • encontrar uma valoração qua satisfaça a

fórmula que resulte no plano

Page 51: Planejamento em  Inteligência Artificial

LabIA 2003

51

SATPLAN

• Codificação baseada no Cálculo de Situações

• Tempo: assume valores inteiros• Estado Inicial: Lixo MaosLimpas Silencio• Meta: Jantar Presente Lixo

Page 52: Planejamento em  Inteligência Artificial

LabIA 2003

52

SATPLAN: Jantar Surpresa

• Símbolos Proposicionais (schemas de fluentes)lixo(I)

maos_limpas(I)

silencio(I)

jantar(I)

presente(I)

Schemas de açõescozinhar( I )

embrulhar( I )

carregar_lixo( I )

triturar_lixo( I )

Page 53: Planejamento em  Inteligência Artificial

LabIA 2003

53

SATPLAN: Jantar Surpresa

• Símbolos Proposicionais1 lixo( 1 )

2 maos_limpas( 1 )

3 silencio( 1 )

4 jantar( 1 )

5 presente( 1 )

6 lixo( 2 )

7 maos_limpas( 2 )

8 silencio( 2 )

9 jantar( 2 )

10 presente( 2 )

11 lixo( 3 )

32

TOTAL: cnf 32 143

Page 54: Planejamento em  Inteligência Artificial

LabIA 2003

54

SATPLAN: Axiomas de Efeito

• Ações em i implicam seus efeitos em i+1– Schemas de Axiomas de efeitos

cozinhar( I ) -> jantar( I + 1 )

embrulhar( I ) -> presente( I + 1 )– Efeitos conjuntivos devem ser descritos por uma

cláusula para cada efeito

carregar_lixo( I ) -> ~lixo( I + 1 )

carregar_lixo( I ) -> ~maos_limpas( I + 1 )

triturar_lixo( I ) -> ~lixo( I + 1 )

triturar_lixo( I ) -> ~silencio( I + 1 )

Page 55: Planejamento em  Inteligência Artificial

LabIA 2003

55

SATPLAN: Axiomas de Precondições

• Ações em i implicam em suas pré-condições também em i– Schemas de Axiomas de pré-condições

cozinhar( I ) -> maos_limpas ( I )

embrulhar( I ) -> silencio( I )

Page 56: Planejamento em  Inteligência Artificial

LabIA 2003

56

SATPLAN: Axiomas de Persistência

Ações implicam em fluentes que não são afetados por ela – aparecem sentenças do tipo:

A(I) ^ Fluente(I) -> Fluente(I+1) – que correspondem à cláusula:

~A(I) v ~Fluente(I) v Fluente(I+1)

Page 57: Planejamento em  Inteligência Artificial

LabIA 2003

57

SATPLAN: Axiomas de Persistência [ lixo( I ) ^ cozinhar( I ) ] -> lixo( I + 1 )

[ ~lixo( I ) ^ cozinhar( I ) ] -> ~lixo( I + 1 )

[ lixo( I ) ^ embrulhar( I ) ] -> lixo( I + 1 )

[ ~lixo( I ) ^ embrulhar( I ) ] -> ~lixo( I + 1 )

[ maos_limpas( I ) ^ cozinhar( I ) ] -> maos_limpas( I + 1 )

[ ~maos_limpas( I ) ^ cozinhar( I ) ] -> ~maos_limpas( I + 1 )

[ maos_limpas( I ) ^ embrulhar( I ) ] -> maos_limpas( I + 1 )

[ ~maos_limpas( I ) ^ embrulhar( I ) ] -> ~maos_limpas( I + 1 )

[ maos_limpas( I ) ^ triturar_lixo( I ) ] -> maos_limpas( I + 1 )

[ ~maos_limpas( I ) ^ triturar_lixo( I ) ] -> ~maos_limpas( I + 1 )

[ silencio( I ) ^ cozinhar( I ) ] -> silencio( I + 1 )

[ ~silencio( I ) ^ cozinhar( I ) ] -> ~silencio( I + 1 )

[ silencio( I ) ^ embrulhar( I ) ] -> silencio( I + 1 )

[ ~silencio( I ) ^ embrulhar( I ) ] -> ~silencio( I + 1 )

[ silencio( I ) ^ carregar_lixo( I ) ] -> silencio( I + 1 )

[ ~silencio( I ) ^ carregar_lixo( I ) ] -> ~silencio( I + 1 )

Page 58: Planejamento em  Inteligência Artificial

LabIA 2003

58

SATPLAN: Axiomas de Persistência [ jantar( I ) ^ embrulhar( I ) ] -> jantar( I + 1 )

[ ~jantar( I ) ^ embrulhar( I ) ] -> ~jantar( I + 1 )

[ jantar( I ) ^ carregar_lixo( I ) ] -> jantar( I + 1 )

[ ~jantar( I ) ^ carregar_lixo( I ) ] -> ~jantar( I + 1 )

[ jantar( I ) ^ triturar_lixo( I ) ] -> jantar( I + 1 )

[ ~jantar( I ) ^ triturar_lixo( I ) ] -> ~jantar( I + 1 )

[ presente( I ) ^ cozinhar( I ) ] -> presente( I + 1 )

[ ~presente( I ) ^ cozinhar( I ) ] -> ~presente( I + 1 )

[ presente( I ) ^ carregar_lixo( I ) ] -> presente( I + 1 )

[ ~presente( I ) ^ carregar_lixo( I ) ] -> ~presente( I + 1 )

[ presente( I ) ^ triturar_lixo( I ) ] -> presente( I + 1 )

[ ~presente( I ) ^ triturar_lixo( I ) ] -> ~presente( I + 1 )

Page 59: Planejamento em  Inteligência Artificial

LabIA 2003

59

SATPLAN: continuidade no plano

• Deve ser escolhida uma ação em cada instante– Schemas de axiomas de continuidade no plano

cozinhar( I ) v embrulhar( I ) v carregar_lixo( I ) v triturar_lixo( I )

Page 60: Planejamento em  Inteligência Artificial

LabIA 2003

60

SATPLAN: plano totalmente ordenado

• Apenas uma ação em cada instante– Schemas de axiomas de não paralelismo de ações

cozinhar( I ) -> ~embrulhar( I )

cozinhar( I ) -> ~carregar_lixo( I )

cozinhar( I ) -> ~triturar_lixo( I )

embrulhar( I ) -> ~cozinhar( I )

embrulhar( I ) -> ~carregar_lixo( I )

embrulhar( I ) -> ~triturar_lixo( I )

carregar_lixo( I ) -> ~cozinhar( I )

carregar_lixo( I ) -> ~embrulhar( I )

carregar_lixo( I ) -> ~triturar_lixo( I )

triturar_lixo( I ) -> ~cozinhar( I )

triturar_lixo( I ) -> ~embrulhar( I )

triturar_lixo( I ) -> ~carregar_lixo( I )

Page 61: Planejamento em  Inteligência Artificial

LabIA 2003

61

Planejamento como busca heurística

• UNPOP [Drew McDermott, 96] Greedy Regression-Match Graphs

• HSP [Geffner, 97] Heuristic Search Planner• FF [Hoffmann, 2000] Fast Forward• ...

Page 62: Planejamento em  Inteligência Artificial

LabIA 2003

62

Planejamento Heurístico

• Heurística h(s) é computada resolvendo um problema relaxado. Exemplo:

– distância de Manhattan – comprimento do plano solução de um problema relaxado em

que são removidas todas as listas de eliminação das ações

• Heurística informativa e admissível … mas ainda recai num problema intratável

Page 63: Planejamento em  Inteligência Artificial

LabIA 2003

63

HSP

• Forward planning• algoritmos de busca: Hill-Climbing ou A* com

uso de uma função heurística derivada de uma descrição de alto-nível de ações

Page 64: Planejamento em  Inteligência Artificial

LabIA 2003

64

Planejamento Heurístico: HSPFunção heurística aditiva• heurística h(s) é uma estimativa do número de passos necessários para

resolver o problema relaxado, ou seja, ações sem listas de eliminação. • s: estado, p: proposição,

• cs(p): estimativa do custo para atingir p apartir de s

• cs(Prec(op): custo estimado para se atingir as precondições da ação op de s

)(pcs0

))((1min )( opPreccspOop

se p s

caso contrário{

Gp

s pcsh )()(Heurística do HSP (não-admissível):