![Page 1: Planejamento em Inteligência Artificial Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/1.jpg)
Planejamento em Inteligência Artificial
Leliane Nunes de Barros
![Page 2: Planejamento em Inteligência Artificial Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/2.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/3.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/4.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/5.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/6.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/7.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/8.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/9.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/10.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/11.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/12.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/13.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/14.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/15.jpg)
LabIA 2003
15
Ingredientes de Planejamento
ModelosLinguagensAlgoritmos
![Page 16: Planejamento em Inteligência Artificial Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/16.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/17.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/18.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/19.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/20.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/21.jpg)
LabIA 2003
21
O problema da persistência
move(c,a,b)BA
s1 do(move(c,a,b),s0)
C
s0
BAC
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/22.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/23.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/24.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/25.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/26.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/27.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/28.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/29.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/30.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/31.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/32.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/33.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/34.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/35.jpg)
LabIA 2003
35
Ingredientes de Planejamento
ModelosLinguagensAlgoritmos
![Page 36: Planejamento em Inteligência Artificial Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/36.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/37.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/38.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/39.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/40.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/41.jpg)
LabIA 2003
41
Ordem parcial, vínculos e ameaçasa0
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/42.jpg)
LabIA 2003
42
Algoritmo POP
function POP(initial, goal, operators) returns planplan Make-Minimal-Plan(initial, goal)loop do
if Solution? (plan) then return planSneed , c Select-Subgoal(plan)
Choose-Operator(plan, operators, Sneed, c)
Resolve-Threats(plan) endfunction 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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/43.jpg)
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 failadd 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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/44.jpg)
LabIA 2003
44
POP algorithm (cont.)
procedure Resolve-Threats(plan)for each Sthreat that threatens a link Si
c Sj in Links(plan) dochoose either
Demotion: Add Sthreat < Si to Orderings(plan)
Promotion: Add Si < Sthreat to Orderings(plan)
if not consistent(plan) then failend
POP é correto, completo e sistemático (busca sem repetição)
![Page 45: Planejamento em Inteligência Artificial Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/45.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/46.jpg)
LabIA 2003
46
Grafo de Planejamento
• Planning Graph [Blum&Furst 1997]– expansão do grafo
0 i-1 i i+1
proposições proposiçõesações
![Page 47: Planejamento em Inteligência Artificial Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/47.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/48.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/49.jpg)
LabIA 2003
49
Grafo de Planejamento
![Page 50: Planejamento em Inteligência Artificial Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/50.jpg)
LabIA 2003
50
SATPLAN
História: Kautz and Selman, 1992 • Inspiração nos avanços dos algoritmos de
satisfazibilidadeIdé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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/51.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/52.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/53.jpg)
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 )…32TOTAL: cnf 32 143
![Page 54: Planejamento em Inteligência Artificial Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/54.jpg)
LabIA 2003
54
SATPLAN: Axiomas de Efeito
• Ações implicam seus efeitos – 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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/55.jpg)
LabIA 2003
55
SATPLAN: Axiomas de Precondições
• Ações implicam em suas pré-condições – Schemas de Axiomas de pré-condições
cozinhar( I ) -> maos_limpas ( I ) embrulhar( I ) -> silencio( I )
![Page 56: Planejamento em Inteligência Artificial Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/56.jpg)
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) ^ B(I) -> A(I+1) – que correspondem a cláusula:
~A(I) v ~B(I) v A(I+1)
![Page 57: Planejamento em Inteligência Artificial Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/57.jpg)
LabIA 2003
57
SATPLAN: Axiomas de Persistência [ lixo( I ) ^ cozinhar( I ) ] -> lixo( I + 1 )
[ ~lixo( I ) ^ cozinhar( I ) ] -> ~lixo( I + 1 )c [ lixo( I ) ^ embrulhar( I ) ] -> lixo( I + 1 )
c [ ~lixo( I ) ^ embrulhar( I ) ] -> ~lixo( I + 1 )c [ maos_limpas( I ) ^ cozinhar( I ) ] -> maos_limpas( I + 1 )
c [ ~maos_limpas( I ) ^ cozinhar( I ) ] -> ~maos_limpas( I + 1 )c [ maos_limpas( I ) ^ embrulhar( I ) ] -> maos_limpas( I + 1 )
c [ ~maos_limpas( I ) ^ embrulhar( I ) ] -> ~maos_limpas( I + 1 )c [ maos_limpas( I ) ^ triturar_lixo( I ) ] -> maos_limpas( I + 1 )
c [ ~maos_limpas( I ) ^ triturar_lixo( I ) ] -> ~maos_limpas( I + 1 )c [ silencio( I ) ^ cozinhar( I ) ] -> silencio( I + 1 )
c [ ~silencio( I ) ^ cozinhar( I ) ] -> ~silencio( I + 1 )c [ silencio( I ) ^ embrulhar( I ) ] -> silencio( I + 1 )
c [ ~silencio( I ) ^ embrulhar( I ) ] -> ~silencio( I + 1 )c [ silencio( I ) ^ carregar_lixo( I ) ] -> silencio( I + 1 )
c [ ~silencio( I ) ^ carregar_lixo( I ) ] -> ~silencio( I + 1 )
![Page 58: Planejamento em Inteligência Artificial Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/58.jpg)
LabIA 2003
58
SATPLAN: Axiomas de Persistênciac [ jantar( I ) ^ embrulhar( I ) ] -> jantar( I + 1 )
c [ ~jantar( I ) ^ embrulhar( I ) ] -> ~jantar( I + 1 )c [ jantar( I ) ^ carregar_lixo( I ) ] -> jantar( I + 1 )
c [ ~jantar( I ) ^ carregar_lixo( I ) ] -> ~jantar( I + 1 )c [ jantar( I ) ^ triturar_lixo( I ) ] -> jantar( I + 1 )
c [ ~jantar( I ) ^ triturar_lixo( I ) ] -> ~jantar( I + 1 )c [ presente( I ) ^ cozinhar( I ) ] -> presente( I + 1 )
c [ ~presente( I ) ^ cozinhar( I ) ] -> ~presente( I + 1 )c [ presente( I ) ^ carregar_lixo( I ) ] -> presente( I + 1 )
c [ ~presente( I ) ^ carregar_lixo( I ) ] -> ~presente( I + 1 )c [ presente( I ) ^ triturar_lixo( I ) ] -> presente( I + 1 )
c [ ~presente( I ) ^ triturar_lixo( I ) ] -> ~presente( I + 1 )
![Page 59: Planejamento em Inteligência Artificial Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/59.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/60.jpg)
LabIA 2003
60
SATPLAN: plano totalmente ordenado• Apenas uma ação em cada instante
– Schemas de axiomas de não paralelismo de açõescozinhar( 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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/61.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/62.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/63.jpg)
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 Leliane Nunes de Barros](https://reader036.vdocuments.com.br/reader036/viewer/2022062411/5706384c1a28abb8238f62ae/html5/thumbnails/64.jpg)
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 scaso contrário{
Gp
s pcsh )()(Heurística do HSP (não-admissível):