• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Anomalia de “Sussman” não resolúvel por Planeadores Lineares:
Planeador tipo- “STRIPS”
C A B CB A 1ª hipótese 2ªhipótese Em(A,B) Em(B,C) Em(B,C) Em(A,B)
Em(A,B) Λ Em(B,C) Em(B,C) Λ Em(A,B)
Início Fim Modelos do Mundo: Em(C,A) Λ Em(A,B) Λ Na_mesa(A) Λ Em(B,C) Λ Na_mesa(B) Λ Na_mesa(C) Manip_livre
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeadores Não-lineares (“interleaved”): • VANTAGENS:
• Permitem concorrência na resolução dos sub-objectivos “interleaving” • Correctos (“sound”)
• Completos
• Podem ser Óptimos relativamente ao comprimento do Plano (depende da estratégia de pesquisa)
Planeador Não-Linear
•DESVANTAGENS
• Maior Espaço de Pesquisa porque várias hipóteses de ordenação dos sub- objectivos
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-Linear
Planeamento Não-Linear usando Conjunto de Objectivos Para certos problemas é preferível executar tarefas para realizar um objectivo e, antes de o terminar, passar a outro Sub-objectivo, e assim sucessivamente, interligando sub-planos (planos parciais).
É o Planeamento Não-Linear.
Exemplo de tarefa no mundo dos blocos:
B C A A C B Início Fim
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-Linear
• Usamos um algoritmo de “encadeamento inverso” começando pelo operador a ser aplicado em último lugar.
• Uma árvore de pesquisa vai sendo gerada mas, felizmente, muitos ramos podem ser “podados” cedo.
• A Árvore de pesquisa é gerada considerando-se as possíveis escolhas sobre os operadores a serem aplicados para se obter os Estados considerados, começando no estado Objectivo.
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-Linear
Planeamento NÃO-LINEAR EM (A, B) EM (B, C) colocar (A, B) LIMPO (B) SEGURO (A) EM (B, C) pegar (A) retirar (A,x) colocar (B, C) LIMPO (C) SEGURO (B) EM (A, B) retirar (x, B ) EM (x, B) LIMPO (x) BRAÇO_VAZIO SEGURO (A) EM (B, C) BRAÇO_VAZIO LIMPO (A) NA_MESA (A) LIMPO (B) EM (B, C) EM (A, x) LIMPO (A) BRAÇO_VAZIO LIMPO (B) EM (B, C) LIMPO (C) SEGURO (B) LIMPO (B) SEGURO (A) colocar (B, C) colocar (B, C) retirar (x,B) pousar (A) retirar (x, A) pousar (x) colocar (x, y) SEGURO (x) LIMPO (A) LIMPO (B) EM (B, C) SEGURO (x) LIMPO (y) LIMPO (A) LIMPO (B) EM (B, C) False EM (x, A) LIMPO (x) NA_MESA (A) LIMPO (B) EM (B, C) SEGURO (A) True LIMPO (A) LIMPO (B) EM (B, C) False EM (x, B) LIMPO (x) NA_MESA (A) LIMPO (A) EM (B, C) SEGURO (B) LIMPO (C) LIMPO (A) NA_MESA (A) LIMPO (B) 13 11 8 7 6 5 4 3 2 1 NA_MESA (A) NA_MESA (A)• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-Linear
Nó 1: se escolher como último operador em(B, C) é necessário seguro(B) que contradiz o
objectivo dado como atingido em(A, B). Logo corta o nodo 3.
Nó 2: escolhi em(A, B). Precisa de limpo(B), seguro(A).
3 hipóteses: em último limpo(B), seguro(A) ou emB, C)
Nó 4: para limpo(B) --> retirar(x, B) --> em(x, B), limpo(x), braço_vazio + as outras
seguro(A), em(B, C).
Contradição em braço_vazio e seguro(A)
Nó 5: se seguro(A) --> pegar(A) --> limpo(A), braço_vazio, na_mesa (A) etc. É Possível! Nó 6: se seguro(A) --> retirar(A, x) --> limpo(A), em(A,x), braço_vazio etc.
Inconsistência pois não instancia, já que acerca de B sabese limpo(B) e acerca de C sabe -se em(B, C).
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-Linear
Partindo do nó 5 e expandindo, há 5 hipóteses para último operador.
Nó 8: braço_vazio --> colocar(x) --> seguro(x) etc. Mas nem A nem B nem C
podem estar seguros. (Contradição)
Nó 9: braço_vazio --> colocar(x, y) --> seguro(x), limpo(y). IDEM.
Nó 10: limpo(A) --> retirar(x, A) --> Mas como no nó 5 existe braço_vazio e a
regressão de braço_vazio através do operador retirar dá FALSEporque na lista "apague" de retirar está braço_vazio este ramo corta-se.
Isto é: Não se deve copiar os objectivos não seleccionados quando se aplica um operador e acrescentar só as pré-condições desse operador.
Deve testar-se se interfere ou não com os outros. Para isso aplica-se a Regressão de um Objectivoatravés de um OPERADOR.
ex: regressão (em(A, B), pegar(C))= em(A, B) regressão (em(A, B), colocar(A, B))= true regressão(braço_vazio, pegar(A))=false
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-Linear
Se um objectivo regressa true, pode ser eliminado do conjunto de objectivos.
Se regressão (braço_vazio, pegar(A))=False corta-se o ramo.
Nó 11: conseguir na_mesa(A)?
Mas, já é verdade no estado inicial.
Deve haver uma heurística dizendo que se no objectivo final A deve permanecer na mesa então ele não deve saír daí. Logo já está alcançado.
Nó 12: limpo (B) --> retirar(x, B) --> regressão dá false sobre
braço_vazio então Cortar o ramo.
Nó 13: em(B, C) --> colocar(B, C) --> seguro(B), limpo(C), limpo(A),
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-Linear
•A Árvore de pesquisa é larga mas os ramos podem ser aparados cedo! •Não existe PILHA mas um CONJUNTO de objectivos
•O Plano é pesquisado de forma Não-Linear
• Começou por se pesquisar como obter Em(A,B) e, antes de terminar, passou-se para o objectivo Em(B,C), nos nodos 5 e 13
• No entanto, se não houver interacção entre vários sub-objectivos e se não se podarem os ramos da árvore de pesquisa cedo, esta fica demasiado grande
• Outro problema é não se distinguir entre sub-objectivos muito importantes e objectivos triviais.
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-Linear
PNL(e_inicial, objectivos)estado=estado_inicial; plano=[ ]; conj_obj=objectivos; pilha_ops=[ ]
Repetir até conj_obj=[ ]
Escolher objectivo ob do conj_obj
Se ob unifica estado retira ob do conjunto Senão (ob não unifica com estado corrente)
Escolher operador op cuja lista-junta unifica com ob Colocar op na pilha_ops
Junte pré-condições de op ao conj_obj
Enquanto todas as pré-condições de op no topo da pilha_ops pertencerem
ao estado
Retirar op do topo de pilha_ops estado=aplicar(op,estado)
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-Linear Hierárquico
• Planeadores baseados na Linguagem tipo-STRIPS estendida •Algoritmos de Planeamento Parcialmente Ordenados
• Pesquisa no Espaço dos Planos
• Espaço de Planos é conjunto de Planos parciais • Plano: <Acções,Ordenações,Ligações>
•Não Lineares •Hierárquicos
•Usam “compromissos retardados” (“least commitment”) •Escolhas no adiamento de compromissos em:
• Ordenamento de acções até que seja obrigatório sequenciar
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-LinearHierárquico
• Decomposição Hierárquica:• Operador abstracto decompõe em sub-planos parciais
• Exemplo: Ir (Rob,loc)
Orientar(Rob,ang) mover(Rob,dir)
• Abordagens:
• Inclusão de Operadores não primitivos • Decomposição progressiva
•Abstracção Hierárquica:
• Operador abstracto é refinado pelo acrescento de detalhes
• Operadores não-primitivos (Macro-operadores)
• Hierarquia das pré-condições (só considera as pré-condições que ultrapassam um limiar. Esse limiar vai sucessivamente baixando)
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-LinearHierárquico
• Planos Abstractos:• Operadores Primitivos tipo Strips. São executáveis • Operadores Compostos:
• Pré-condições e Efeitos
• Métodos para decompor Operador em sub-planos mais detalhados • detalha a estrutura interna
• parametriza
• similar a macros (ou sub-rotinas)
•Um Plano Abstrato contém Operadores Compostos
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-LinearHierárquico
• Espaço de Pesquisa:• Redução do espaço de pesquisa:
• O Estado Objectivo é uma Tarefa (abstracta) que tem de ser executada (não um Estado do Mundo) • Operadores no Espaço de estados:
• Decompõe tarefas em sub-tarefas • Parametriza tarefas
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-LinearHierárquico
• Espaço de Pesquisa:•Algoritmo geral para Rede Hierárquica:
• iniciar com descrição de alto-nível da Tarefa (não objectivos)
• criar rede de tarefas pela expansão de sub-planos até o Plano ser completamente instanciado
• seleccionar Métodos cujas condições de aplicabilidade sejam válidas
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-LinearHierárquico
• Exemplo de Operador para planeamento abstracto
Operador pousar(Bloco)
Lista-apagar: segurar(Bloco) Lista-juntar: na_mesa(Bloco).
braço_livre. método(limpar(X))
efeito da aplicabilidade: ( limpo(X), nil)
condição de aplicabilidade: ( em(Y,X),
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-LinearHierárquico
• Exemplo: Robô passar de uma sala para outra • Operador: atravessar_porta:
•Pré-condições: dimensão(porta,D), D>X, aberta(porta)
•Podemos considerar a 1ª pré-condição mais crítica que a 2ª •Um primeiro plano poderia reconhecer o sucesso da 1ª
pré-condição e incluir o operador atravessar_porta.
• Só numa segunda iteracção de detalhar o plano é que se verificaria a pré-condição porta_aberta.
• Caso fosse falsa, incluiria um novo operador “abrir_porta” •Este Planeamento usou Operador Abstracto
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-Linear Hierárquico
• Planeamento Hierárquico:
• Um exemplo de Planeamento hierárquico usando a estratégia de planeamento Não-Linear e usando “least commitment”, é o algoritmo NOAH (Net of Actions Hierarchized, Sacerdoti, Stanford)
• Aplica encadeamento inverso para escolher quais operadores aplicar para mudar de estado.
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-Linear Hierárquico
• FUNÇÃO Planeador(EC, EO) RETORNA Plano Plano ß Criar_Plano_mínimo(EC, EO)
ENQUANTO EC=/=EO FAZER
Expandir(Plano, Plano2); Criticar_efeitos(Plano2);
Sequenciar(Plano2, Novo_Plano); Plano ß Novo_Plano
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-LinearHierárquicoSeja de novo o seguinte problema: C
A B A B C sobre(A,B) ∩ sobre(B,C) colocar A sobre B colocar B sobre C Expansão : 3 6 1 livre(A) livre(B) 2 4 livre(B) livre(C) 5 Pegar(A) Pegar(B)
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-LinearHierárquico
APLICA TAMBÉM CRITÉRIOS CRÍTICOS A CADA NÍVEL DO PLANO. TIPOS DE CRÍTICA SÃO:
1) INTERACÇÃO e 2) REDUNDÂNCIA.
1) na lista "Junte" do operador colocar(A, B) encontra-se a negação de uma pré -condição do operador colocar(B, C). Logo este deve ser executado primeiro que aquele. 2) repetição de libertar(B). Elimina-se do ramo de cima.
O tipo de planeamento é o hierárquico.
Segue-se uma nova expansão do plano para libertar A deve colocar C sobre a mesa e para isso C deve estar livre.
Agora actua a crítica da interacção (crítica 1): interacção entre colocar(B, C) e libertar(C).
Logo 1º faz-se aquilo para o qual é necessário libertar C e só depois colocar (B, C). Como na BD inicial libertar (C) e libertar (B) são verdadeiros resulta o plano final
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-LinearHierárquico
colocar A sobre B colocar B sobre CCrítica dos Efeitos: 3--> ~4 Sequenciação
1 livre(A) 4 Pegar(A) livre(B) livre(C) 5 Pegar(B)
Expandindo para outro nível (para assegurar 1):
colocar C sobre mesa
colocar B sobre C colocar A sobre B
livre(B) livre(C) 5 Pegar(B) livre(C) Retirar(C,A) 1 Pegar(A) Há conflitos a resolver?
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador NÃO-LinearHierárquico
De novo há conflito entre 1 e 5. Fase de crítica e sequenciação:
colocar C sobre mesa
livre(B)
5
livre(C) Retirar(C,A)
1
Pegar(B) colocar B sobre C Pegar(A) colocar A sobre B
Retirar(C,A)
Como livre(B) e livre(C) são verdadeiros, resulta o plano final.
colocar B sobre C colocar A sobre B
Pegar(B) Pegar(A)
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador Heurístico
Planeamento Heurístico:Ideia básica: Análise automática do domínio de aplicação do planeamento para extraír heurísticas para
calcular valores estimativos que guiem a pesquisa dos operadores a aplicar
Leituras:
The FF Planning System: Fast Plan Generation Through Heuristic Search, J. Hoffmann, B. Nebel. Journal of Artificial Intelligence Research, vol 14, pp. 253-302, 2001
VHPOP: Versatile Heuristic Partial Order Planner, H.L.S. Younes and R.G. Simmons. Journal of Artificial Intelligence Research, vol 20, pp. 405-430, December 2003.
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador Prodigy
Outros Planeadores: PRODIGY (Veloso et al)(FLECS a continuação de Prodigy) Integra vários paradigmas:
• Análise-Meios-Fins • Não-Linearidade • Aprendizagem
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador Prodigy
1. Termina Setodos os objectivos satisfeitos no estado corrente C 2. Computar o Conjunto de objectivos pendentes CObp e o
Conjunto de Operadores Copa aplicáveis
• Um objectivo pendente é uma pré-condição não satisfeita no estado corrente, de um operador existente no Plano • Um operador é aplicável quando:
- nenhum operador antes dele e
-suas pré-condições estão satisfeitas no estado corrente C 3. Escolher um objectivo Ob em CObp OU
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador Prodigy
4. Se Ob foi escolhidoEntão Expandir Objectivo Ob (“sub-goaling”) (isto é, compute o conjunto de operadores COp
relevantes que podem realizar o objectivo Ob) Escolher operador Op de COp
Voltar a 1.
5. Se um operador Op foi seleccionado para aplicação directa (“applying”)
Então Aplicar Op
retira operador da cauda do plano e coloca-o no
fim da frente do plano e modifica o estado corrente C (C’).
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador Prodigy-representação da pesquisa I s C y x z O I s C t y x z O C I Ofrente_plano lacuna cauda_plano
Aplicar operador (mover para a frente) “sub-goaling” Juntar operador t realiza sub-obj
“applying” Nó de pesquisa: Cabeça: Ops de I para C Nó de pesquisa: Cauda: Ops seleccionados Para levar ao Objectivo I s x C’ y z O Compromisso de ordem
• Body Text
• Second Level
• Third Level
• Fourth Level
• Fifth Level
Planeador Prodigy-representação da pesquisa Estudar artigo:“Integrating planning and learning: The Prodigy architecture, (Secções 1 e 2)
Manuela M. Veloso, Jaime Carbonell, M. Alicia Perez, Daniel Borrajo, Eugene Fink, and Jim Blythe.
Journal of Experimental and Theoretical Artificial Intelligence, 7(1):81--120, 1995.