Planejamento em Inteligência Artificial
description
Transcript of Planejamento em Inteligência Artificial
Planejamento em Inteligência Artificial
Leliane Nunes de Barros
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
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
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
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)
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)
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
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
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
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
LabIA 2003
11
Depots: Logística + Mundo dos Blocos
5 localizações, 3 pilhas, 100 containers 10277 estados
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
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
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).
LabIA 2003
15
Ingredientes de Planejamento
Modelos
Linguagens
Algoritmos
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
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.
LabIA 2003
18
Cálculo de situações
• Ontologia: situações, fluentes e ações
• Linguagem– s0
– do( , s)– poss( ,s)– holds(f , s)
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)
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
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)
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
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
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
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)
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?
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)
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) })
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
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))
)
)
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))
)
)
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)))
)
)
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)))
)
)
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))) )
LabIA 2003
35
Ingredientes de Planejamento
Modelos
Linguagens
Algoritmos
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
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
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
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)
LabIA 2003
40
Ordem parcial, vínculos e ameaças
a1
a2
a3
antecipar
a1
a2
a3
postergar
a1
a3
a2
ameaça
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}
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
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)
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)
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
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
LabIA 2003
47
Grafo de Planejamento
• Grafo de Planejamento– Relações de Mutex
Efeitos Inconsistentes
Interferência Necessidadesconflitantes
SuporteInconsistente
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)
LabIA 2003
49
Grafo de Planejamento
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
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
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 )
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
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 )
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 )
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)
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 )
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 )
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 )
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 )
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• ...
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
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
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):