Planejamento em Inteligência Artificial

Slides:



Advertisements
Apresentações semelhantes
IA Importância da IA em jogos Aplicações.
Advertisements

Sistemas especialistas
Construção de Aplicativos Computacionais METEOROLOGIA
Métodos para representação de estruturas hierárquicas
Processo de Planejamento Andrew Diniz da Costa. © LES/PUC-Rio Agenda Processo de planejamento Exemplo The Blocks World Reconhecimento de planos Considerações.
Busca em Profundidade Para encontrar um caminho de solução Sol, de um dado nó para algum nó objetivo Se N é um nó objetivo, então Sol=[N] Se há um nó N1.
GRASP Greedy Randomized Adaptative Search Procedure
Metaheurísticas Prof. Aurora Pozo Departamento de Informática Universidade Federal do Paraná
1 Busca Heurística - Informada Estratégias de Busca Exaustiva (Cega) encontram soluções para problemas pela geração sistemática de novos estados, que são.
Sistemas Baseados em Conhecimento
Agentes Baseados em Conhecimento
Busca Online Alexandra Barros Geber Ramalho. Busca Offine x Busca Online Busca Offline (ou planejamento clássico) –Computa a solução (do estado inicial.
Busca Heurística - Informada
PLANEJADORES PRÁTICOS Jacques Robin DI-UFPE Planejamento de Ordem Parcial (POP) com linguagem STRIPS * mais expressivo que resolução de problema * porque.
Planejamento (Cap. 11 do Russell)
Universidade Federal do Espírito Santo
Capítulo 4 - Russell e Norvig
Capítulo 3 - Russell e Norvig
Luiz A M Palazzo Abril de 2010
SIMULAÇÃO EM COMPUTADOR: O PENSAMENTO COMO PROCESSAMENTO DE INFORMÇÕES
Exame de Qualificação Silvio do Lago Pereira
Capítulo 2 Representação de Problemas em Planejamento Clássico
Jacques Robin CIn-UFPE
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
Inteligência Artificial
Conceitos Básicos.
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
T ÓPICOS DE I.A. Métodos de Busca Busca em Espaços de Estado Prof. Mário Dantas.
INF 1771 – Inteligência Artificial
FACENS – Engenharia da Computação Inteligência Artificial Busca.
1 Introdução aos Agentes Inteligentes Flávia Barros.
Exercícios PAA- Grafos
Aluno: Lucas Bucci da Silveira Orientador: Carlos Roberto Lopes
INF 1771 – Inteligência Artificial Aula 12 – Planejamento Edirlei Soares de Lima.
Introdução a Programação
Sistemas Especialistas
Blackbox Ferramenta de Planejamento em IA Jairson Vitorino, 06 de maio de 2005
Inteligência Artificial
Algoritmos de Busca Local
Tópicos Avançados em Inteligência Artificial
Busca Combinatorial e Métodos de Heurística
Métodos Formais.
INF 1771 – Inteligência Artificial
1 Introdução aos Agentes Inteligentes Inventando Funções Heurísticas Flávia Barros.
Aprendizagem por Reforço Alexandre Luiz G. Damasceno.
Resolução de Problemas de Busca
1 Introdução aos Agentes Inteligentes Resolução de Problemas de Busca Flávia Barros.
A Linguagem Formal de Especificação VDM-SL
Ferramentas de Planejamento em IA Blackbox Planner.
REVISÃO Prof. Mário Dantas
PDDL: uma linguagem padrão para especificação de problemas e heurísticas de planejamento Jacques Robin CIn-UFPE.
Geração de Código Fase final do compilador
José de J. Pérez-Alcázar. Adaptado de Lectures Slides of Automated Planning: theory and practice ( Licensed under the Creative.
On The Complexity of Determining Autonomic Policy Constrained Behaviour Sobre a Complexidade de Determinação de Política Autônoma de Comportamento Restrito.
Representação de Conhecimento e Sistemas de Raciocínio
Analise de Algoritmos e Notação Assintótica
Métodos Formais Juan Andrés Mussini.
Busca Competitiva Disciplina: Inteligência Artificial
Principais Tópicos Introdução Métodos de busca Busca cega
1 Planejamento Clássico – Parte 1 Sergio Queiroz * *Baseado nos slides de Alan Fern (Oregon State University), que por sua vez foram parcialmente baseados.
PROCESSOS DECISÓRIOS PD MODELOS DE TOMADA DE DECISÃO – MODELO RACIONAL
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
Busca Heurística Prof. Valmir Macário Filho. 2 Busca com informação e exploração Capítulo 4 – Russell & Norvig Seção 4.1 Estratégias de Busca Exaustiva.
Planejamento Baseado em Lógica – André Novaes – CIn UFPE 1 Planejamento Baseado em Lógica André Novaes CIn - UFPE.
1 Planejamento Clássico (Planning) Russel, S. Norvig, P.: Inteligência Artificial (segunda edição) 28 SET 09 Igor R M Menezes.
Transcrição da apresentação:

Planejamento em Inteligência Artificial Leliane Nunes de Barros

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 Embora as soluções encontradas possam ser não tão boas ou rápidas como aquelas obtidas por métodos especializados, essa abordagem tem alto interesse se o desempenho dos 2 métodos for semelahante ou se for muito complicado implementar o método especializado. LabIA 2003

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

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 Planejamento fornece uma linguagem de representação conveniente e solução de uma classe de modelos matemáticos. LabIA 2003

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

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 s0S um conjunto de estados meta SGS um conjunto de ações aplicáveis A(s)A, para sS uma função de transição sf(a,s), para s,sS e aA(s) uma função custo c(a,s)>0, para sS e aA(s) LabIA 2003

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 sensoriamento planejamento com incerteza planejamento com recursos planejamento temporal ... Modelos diferentes LabIA 2003

Um problema simples 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 LabIA 2003

Planejamento como busca progressiva Domínio = Espaço de Busca Problema: encontrar um caminho que ligue o estado inicial e o estado meta LabIA 2003

Espaço de estados A B C A B C A B C A B C A B C A B C A B C A B C A B LabIA 2003

Depots: Logística + Mundo dos Blocos This domain was devised in order to see what would happen if two previously well-researched domains were joined together. These were the logistics and blocks domains. They are combined to form a domain in which trucks can transport crates around and then the crates must be stacked onto pallets at their destinations. The stacking is achieved using hoists, so the stacking problem is like a blocks-world problem with hands. Trucks can behave like "tables", since the pallets on which crates are stacked are limited. Strips: This is the basic combined domain. Numeric: Trucks are equipped with load capacities and consume fuel as they move. Crates have weights and hoists consume fuel as they lift packages. The task is always to achieve the goals at least fuel cost. Simple-time: durations vary from 10 for driving to 1 for dropping a crate onto a stack. There is considerable scope for concurrency in the use of trucks and hoists. Time: Durations now depend on distances between locations and the speeds of different trucks. Hoists take different times to load or unload according to their power and the weights of the crates. This makes the concurrency issue more subtle, since faster trucks might be available, but somewhere other than the location they are needed, so a better plan might involve coordinating concurrent positioning of trucks and use of hoists. 5 localizações, 3 pilhas, 100 containers  10277 estados LabIA 2003

a fazer a distinção entre 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

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

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

Ingredientes de Planejamento Modelos Linguagens Algoritmos LabIA 2003

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

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

Cálculo de situações Ontologia: situações, fluentes e ações Linguagem do( , s) poss( ,s) holds(f , s) LabIA 2003

Mundo dos Blocos s0 fluentes: clear(X) ontable(X) on(X,Y) ações: stack(X,Y) unstack(X,Y) move(X,Y,Z) LabIA 2003

Especificação lógica do domínio 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). B A C s0 LabIA 2003

O problema da persistência move(c,a,b) B A s1  do(move(c,a,b),s0) C axiomas de efeito holds( clear(a), s1) holds( on(c,b), s1) 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) LabIA 2003

Planejamento dedutivo Dados: A : axiomatização do domínio I : situação inicial G : 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) LabIA 2003

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). B A C s0 LabIA 2003

Consultando o planejador B A C s0 ?- 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))) ?- 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 LabIA 2003

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) STRIPS (Fikes e Nilsson, 1971) é uma das mais antigas, simples e mais usadas linguagens de planejamento … mesmo não sendo muito flexível LabIA 2003

A linguagem Strips Os operadores oO 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

Strips: da linguagem aos modelos Um problema Strips, P = <A, O, I, G> determina um modelo de estados S(P) em que: os estados sS são coleções de átomos; o estado inicial s0 é I os estados meta sSG são aqueles em que G  s as ações aA(s) são operadores oO 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) Semântica de Strips: from strips to state models LabIA 2003

STRIPS: sintaxe e semântica 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) }) B A C B A C move(c,a,b) clear(b) clear(c) ontable(a) ontable(b) on(c,a) 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) LabIA 2003

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

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

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

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

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

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

Ingredientes de Planejamento Modelos Linguagens Algoritmos LabIA 2003

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

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

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

Busca no espaço de planos stack(a,b) unstack(c,a) stack(b,c) stack(a,b) unstack(c,a) stack(b,c) stack(a,b) stack(b,c) stack(a,b) stack(b,c) stack(a,b) LabIA 2003

Ordem parcial, vínculos e ameaças  a3  antecipar postergar a1 a3 a2   ameaça Uma precondição c de um passo S2 é satisfeita sse ela é efeito de um passo S1 e não existir um passo S3 , que ocorra possívelmente no intervalo do vínculo causal S1 c S2 , “ameaçando” a satisfação de c . LabIA 2003

Ordem parcial, vínculos e ameaças clear(b) clear(c) ontable(a) ontable(b) on(c,a) a on(a,b) on(b,c) clear(b) ontable(a) on(a,b) clear(a) clear(b) ontable(a) stack(a,b) on(b,c) clear(c) ontable(b) clear(b) clear(c) ontable(b) stack(b,c)  Antes disso falar sobre representação de planos S = {stack(b,c), stack(a,b), a0, a} O = {stack(b,c)stack(a,b) , a0stack(b,c)a, a0stack(a,b)a, a0a} L = {a0clear(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 = {a0stack(b,c)a, a0stack(a,b)a, a0a} L = {a0clear(b)@stack(b,c), stack(b,c)on(b,c)@a, stack(a,b)on(a,b)@a} S = {stack(a,b), a0, a} O = {a0stack(a,b)a, a0a} L = {stack(a,b)on(a,b)@a} S = {stack(b,c), stack(a,b), a0, a} O = {a0stack(b,c)a, a0stack(a,b)a, a0a} L = {stack(b,c)on(b,c)@a, stack(a,b)on(a,b)@a} S = {a0, a} O = {a0a} L = {} LabIA 2003

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

POP algorithm (cont.) procedure Chose-Operator(plan,operators, Sneed , c ) choose a step Sadd from operators or Steps(plan) that has c as an effect if 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

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

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

Grafo de Planejamento Planning Graph [Blum&Furst 1997] expansão do grafo i-1 i i+1 proposições proposições ações LabIA 2003

Grafo de Planejamento Grafo de Planejamento Relações de Mutex Interferência Necessidades conflitantes Suporte Inconsistente Efeitos Inconsistentes LabIA 2003

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

Grafo de Planejamento LabIA 2003

Initial- state & all- possible- actions & goal 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 Inserir a seguir uma figura com o sistema (módulos) completo do SatPlan LabIA 2003

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

SATPLAN: Jantar Surpresa Símbolos Proposicionais (schemas de fluentes) lixo(I) maos_limpas(I) silencio(I) jantar(I) presente(I) Schemas de ações cozinhar( I ) embrulhar( I ) carregar_lixo( I ) triturar_lixo( I ) LabIA 2003

SATPLAN: Jantar Surpresa Símbolos Proposicionais 1 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

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 ) LabIA 2003

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 ) LabIA 2003

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) LabIA 2003

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 ) LabIA 2003

SATPLAN: Axiomas de Persistência c [ 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 ) LabIA 2003

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

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

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

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

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

Planejamento Heurístico: HSP Funçã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 { se p s c ( p ) = s [ ] min 1 + c ( Prec ( op )) caso contrário op Î O ( p ) s Heurística do HSP (não-admissível): å Î = G p s c h ) ( LabIA 2003