1 / 64

Planejamento em Inteligência Artificial

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]

marnie
Download Presentation

Planejamento em Inteligência Artificial

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Planejamento em Inteligência Artificial Leliane Nunes de Barros

  2. 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] • 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.

  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

  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

  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)

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

  7. Modelo de Estados Uma solução é uma sequência de ações aplicáveis que mapeiam s0num 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

  8. 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

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

  10. C A B B C B A A B A C C B C A B A A B C A C B C A B B C C C C A B A A B A C B Espaço de estados

  11. Depots: Logística + Mundo dos Blocos 5 localizações, 3 pilhas, 100 containers  10277 estados

  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

  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

  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).

  15. Ingredientes de Planejamento Modelos Linguagens Algoritmos

  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

  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.

  18. Cálculo de situações • Ontologia: situações, fluentes e ações • Linguagem • s0 • do( , s) • poss( ,s) • holds(f , s)

  19. s0 C A B Mundo dos Blocos • fluentes: clear(X) ontable(X) on(X,Y) • ações: stack(X,Y) unstack(X,Y) move(X,Y,Z)

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

  21. s0 s1 do(move(c,a,b),s0) move(c,a,b) C C A B A B axiomas de efeito holds(clear(a), s1) holds(on(c,b), s1) holds(clear(c), s1) holds(ontable(a), s1) holds(ontable(b), s1) axiomas de persistência O problema da persistência holds( clear(b), s0) holds(clear(c), s0) holds(ontable(a), s0) holds(ontable(b), s0) holds(on(c,a), s0)

  22. 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)

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

  24. s0 C A B 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

  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)

  26. 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?

  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 sS são coleções de átomos; • o estado inicial s0 é I • os estados meta sSGsã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)

  28. move(c,a,b) C C 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) A B A B 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) })

  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

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

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

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

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

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

  35. Ingredientes de Planejamento Modelos Linguagens Algoritmos

  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

  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

  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

  39. stack(a,b) stack(b,c) stack(b,c) unstack(c,a) stack(b,c) stack(a,b) stack(b,c) stack(a,b) unstack(c,a) stack(a,b) stack(a,b) Busca no espaço de planos

  40. a3 a3   a1 a3 a1 a1     a2 a2 a2 ameaça antecipar postergar Ordem parcial, vínculos e ameaças

  41. a0 clear(b) clear(c) ontable(a) ontable(b) on(c,a) clear(a) clear(b) ontable(a) stack(a,b) clear(b) ontable(a) on(a,b) clear(b) clear(c) ontable(b) stack(b,c) on(b,c) clear(c) ontable(b) on(a,b) on(b,c) a Ordem parcial, vínculos e ameaças  S = {a0, a} O = {a0a} L = {} 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 = {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(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}

  42. Algoritmo POP function POP(initial, goal, operators) returns plan plan ¬ Make-Minimal-Plan(initial, goal) loop do ifSolution? (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

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

  44. POP algorithm (cont.) procedure Resolve-Threats(plan) foreach Sthreat that threatens a link Si c Sj in Links(plan) do chooseeither Demotion: Add Sthreat < Si to Orderings(plan) Promotion: Add Si < Sthreat to Orderings(plan) if notconsistent(plan) then fail end POP é correto, completo e sistemático (busca sem repetição)

  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

  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

  47. Grafo de Planejamento • Grafo de Planejamento • Relações de Mutex Interferência Necessidades conflitantes Suporte Inconsistente Efeitos Inconsistentes

  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)

  49. Grafo de Planejamento

  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

More Related