• Nenhum resultado encontrado

Problema do Planeamento

N/A
N/A
Protected

Academic year: 2021

Share "Problema do Planeamento"

Copied!
20
0
0

Texto

(1)

Metodologias de Inteligência Artificial 2005/2006

Geração Automática de Planos

Problema do Planeamento

Geração automática de Planos (“Planning”)

Estudo e uso dos métodos de decomposição de um problema original em partes elementares apropriadas, resolvendo-as atendendo às interacções entre elas. A computação dos vários passos antes da execução é também característica do

"Planning". O Plano resultante deve resolver a tarefa pedida.

– Problemas podem ser de tipo:

• decomponível: decomposição em subproblemas completamente separados • "quase decomponível”: subproblemas possuem interacção entre eles

– Deve-se evitar tratar todo o estado do problema quando se move de um estado para outro (considerar apenas a parte do estado que mudou)

– As regras usadas nestes algoritmos descrevem apenas as partes afectadas da descrição dos estados para evitar o problema do enquadramento ("frame problem").

(2)

3

MIA - 2005/06

resolução de problemas antes de executar qualquer destes passos.

– Planear é importante sobretudo quando os passos necessários à resolução de problemas não podem ser desfeitos ou ignorados (como no xadrez).

– Quando o universo não é totalmente predizível e o plano falha:

• Pode ter que se emendar uma parte do plano (e não o plano todo) o que é mais fácil se o problema tiver sido decomposto

• As interacções devem também ser consideradas. Usa-se retrocesso dirigido pelas dependências (dependency-directed backtracking).

– Os Geradores de Planos são normalmente dirigidos por objectivos, isto é, pesquisa “backward” a partir de um estado objectivo para um estado inicial

• é mais fácil determinar as dependências e o factor de ramificação é mais pequeno.

Gerador Automático de Planos

Exemplo:Mundo dos Blocos

– Acções típicas: • colocar(X,Y) , retirar(X,Y) • pegar(X), largar(X) – Situações típicas: • em(X,Y), na_mesa(X) • braco_vazio, segurar(X) • limpo(X)

Ciclo básico do Gerador Automático de Planos

1. escolher a melhor acção

2. aplicá-la e computar a nova situação 3. detectar a solução ou impossibilidade E FIM

SENÃO passar a 4

(detectar quando solução está próxima e aplicar técnicas específicas para lá chegar)

(3)

5

MIA - 2005/06

Algoritmos de Planeamento

Algoritmo de Planeamento é:

Correcto se todas as soluções forem planos legais.

Completo se, sempre que existam soluções, pelo menos uma é encontrada

Estritamente Completo se todas as soluções podem ser encontradas

Óptimo se a ordem em que as soluções são encontradas são consistentes com

uma medida de qualidade

Algoritmos de Planeamento

Quanto à direcção de pesquisa, um algoritmo de planeamento pode realizar: – Encadeamento Directo

1. Escolha da acção cujas pré-condições são satisfeitas 2. Aplicação e alteração do estado corrente

3. Até Objectivo estar satisfeito regressar a 1

– Encadeamento Inverso

1. Escolha da acção cujo efeito esteja de acordo com um (sub)objectivo

2. Junção de pré-condições do operador ao conjunto de sub-objectivos ainda não atingidos (se for o caso)

(4)

7 MIA - 2005/06 Encadeamento Directo – Vantagens • Simples – Desvantagens

• Factor de ramificação grande • Pesquisa não focalizada

Encadeamento Inverso

– Vantagens

• Focalizado na resolução de Objectivos • Geralmente, mais eficiente

– Desvantagens

• Necessidade de raciocinar sobre as acções • Geralmente o encadeamento inverso é incompleto

Algoritmos de Planeamento

O algoritmo de planeamento pode ser linear ou não-linear: – Planeamento Linear

• Pesquisa usando uma PILHA dos Objectivos ainda não atingidos • Resolução de um Objectivo de cada vez

• Vantagens: Pesquisa simples e eficiente, se objectivos independentes • Desvantagens: Planos podem ser sub-óptimos. Incompleto.

Planeamento Não-Linear

• Pesquisa usando um conjunto de Objectivos • Resolução concorrente de sub-objectivos

• Vantagens: Completo e pode produzir planos mais curtos

(5)

9

MIA - 2005/06

Algoritmos de Planeamento

• Algorítmos e Técnicas para geração Automática de Planos

– Análise Meios-Fins

• GPS (“General Problem Solver”) • Operadores

• Tabela das Diferenças

– Planeadores usando “Pilhas de Objectivos”

• “tipo - STRIPS”

• Descrição dos Operadores e Listas

– Planeadores “Não-Lineares”

• Uso de “Conjuntos de Objectivos”

– Planeadore Hierárquicos

• “Tipo-NOAH”

• Ciclo “expansão e crítica”

– Planeadores envolvendo restrições Geométricas

• CIARC

• Generalização de Planos

Análise Meios-Fins

• Técnica da "Análise Meios Fins" (usada no GPS)

– Computa as diferenças entre estados Actual e Final – Procura operações que reduzam essas diferenças – Atender às Pré-condições dos operadores e – Aplicar recursivamente outros operadores

– Considerar sempre a resolução das diferenças grandes primeiro.

Ex: efeito do operador retirar(X,Y)

i.e., se limpo(X) E em(X,Y) no estado E1

então fazendo retirar (X, Y) resulta

suspenso (X) E limpo (Y) no estado E2 limpo(X,E1) em(X,Y,E1)

(6)

11

MIA - 2005/06

E o resto do estado?

Usar Axiomas de Enquadramento. Indicam o que deve ser assumido, mesmo se não explicitamente declarado.

Por exemplo, o que não muda:

• em(X,Y,Est) E Accao!==pegar(X) -> em(X,Y,fazer(Accao,Est)) • ~em(X,Y,Est) E Accao!==colocar(X,Y) -> ~em(X,Y,fazer(Accao,Est)) • segurar(X,Est) E Accao!==colocar(X,Y) E Accao!==largar(X)->

segurar(X,fazer(Accao,Est))

– Se o estado é complexo --> Muitos axiomas

Análise Meios-Fins

• Programar todos os Axiomas de Enquadramento pode ser entediante e ineficaz • As representações usadas nos planeadores habituais resolvem implicitamente o

Problema do Enquadramento.

– Estado é representado por um conjunto de factos (BD). – Usa-se AMF (Assumpção Mundo Fechado)

– Cada operação é descrita por uma lista de novos predicados que o operador torna verdadeiros (Junte) e uma lista de antigos predicados que o operador torna falsos

(Apague). Efeitos das acções garantidos por listas (Junte e Apague) de operações sobre

a BD.

– Não há representação explícita do tempo – Não há regras de Inferência

(7)

13

MIA - 2005/06

Análise Meios-Fins

Consideremos o seguinte exemplo:

junto(Obj, Loc) E junto(Robot, Loc) junto(Robot, Obj) E grande(Obj) E limpo(Obj) E braço_vazio EMPURRAR(Obj, Loc) junto(Robot, Loc) -IR(Loc) junto(Obj, Loc) E junto(Robot, Loc) junto(Robot, Obj) E pequeno(Obj) E limpo(Obj) E braço_vazio LEVAR(Obj, Loc) RESULTADOS PRÉ-CONDIÇÕES OPERADORES

Análise Meios-Fins

segurar(Obj, Loc) junto(Robot, Obj) E braço_vazio PEGAR(Obj) em(Obj1,Obj2) junto(Robot, Obj2) E segurar(Obj1) COLOCAR(Obj1, Obj2) ~segurar(Obj) E na_mesa(Obj) segurar(Obj) LARGAR(Obj) RESULTADOS PRÉ-CONDIÇÕES OPERADORES

(8)

15

MIA - 2005/06

Tabela das diferenças

segurar objecto ter braço vazio empilhar objecto limpar objecto mover robot mover objecto largar pegar ir levar empurrar colocar OPERADORES ACÇÕES

Análise Meios-Fins

Exemplo: MOVER Mesa com 2 Livros de X para Y – Acção a efectuar:

• Mover Objecto

– Operadores aplicáveis:

• EMPURRAR(Objecto) ou • LEVAR(Objecto)

Consideremos primeiro o operador LEVAR(Objecto) :

– PRÉ_CONDIÇÕES: junto(Robot, Objecto) E pequeno(Objecto)

A última pré-condição não se verifica pois o objecto Mesa deverá estar caracterizado na Base de Conhecimento do Planeador como objecto grande.

(9)

17

MIA - 2005/06

Análise Meios-Fins

Dado que as pré-condições do operador EMPURRAR(Obj) estão reunidas então devemos considerá-lo para o Plano de acções em construção.

A situação é neste momento:

Ou seja, anulou-se a diferença entre os pontos B e C que foi considerada uma diferença importante

Há ainda a anular as diferenças entre os pontos A e B e entre os pontos C e D.

inícioA B EMPURRARC objectivoD

Análise Meios-Fins

Continuando a estabelecer as pré-condições para a aplicação do operador já considerado teremos :

Sendo Obj=mesa, local(mesa,lx), e os dois livros o1 e o2: – junto (Robot,mesa) implica o uso de IR(lx)

– limpo(mesa) implica PEGAR(o1), LARGAR(o1), PEGAR(o2), LARGAR(o2).

– O algoritmo continuaria até que todas as diferenças fossem anuladas.

objectivo EMPURRAR D C início A B

(10)

19

MIA - 2005/06

• Vantagens deste algoritmo:

– Espaço de pesquisa reduzido, pois resolve um objectivo de cada vez – Bom só quando os objectivos são totalmente independentes

• Dificuldades deste algoritmo:

– Ordenação das diferenças a ser reduzidas – Uso de tabelas extensas

– Estratégias de inferência para ordenar os operadores aplicáveis

Por estas razões, o algoritmo de “Análise Meios-Fins” só é utilizado na sua forma mais pura, tal como foi descrito no “General Problem Solver” de A. Newell.

Mas está na base de muitos outros algoritmos que descrevemos

Análise Meios-Fins

Algoritmo “Análise MEIOS-FINS”

AMF(EC,EO) % EC: estado corrente ; EO: estado objectivo % 1. SE EC=EO RETORNAR

2. SENÃO

a. Seleccionar a Diferença mais importante e reduzi-la ou verificar impossibilidade

b. SE Lista de Operadores Lop=[] FALHAR c. SENÃO

Seleccionar novo Operador aplicável, O Aplicar O a EC:

Gerar descrição de O-start e O-result % Pré e pós-condições de aplicação de O %

SE Anterior AMF(EC,O-start) E Posterior AMF(O-result,EO) ENTÃO RETORNAR ([Anterior, O, Posterior])

(11)

21

MIA - 2005/06

Planeador tipo STRIPS

STRIPS é um Planeador Linear que usa:

– PILHA de Objectivos

– Usa uma única PILHA, quer para Objectivos, quer para Operadores usados para os satisfazer

– É necessário:

• Base de Factos, que descreve a situação corrente • Conjunto de Operadores com as respectivas Listas:

– Pré-condições (necessário verificar-se para aplicar o operador) – Junte e Apague (efeitos do operador)

Planeador tipo STRIPS

Técnicas para tornar mais eficiente o algoritmo:

– Detecção de "folhas mortas“. Chegados a estados dos quais não se pode atingir o objectivo, retrocede-se.

– Cortar passos que se afastam da solução (isto em encadeamento directo). Por ex:

• Se se juntar sub-objectivos incompatíveis com outros

• Se para resolver A é preciso resolver B, C, e de novo A (ciclos)

– Se os problemas são "quase decomponíveis", podemos assumir a decomponibilidade e resolver. Comparar a solução encontrada com o objectivo. Anular a diferença se ela for menor que a inicial.

– Adiar as possíveis incompatibilidades não as especificando senão no fim (técnica do “least commitment”)

(12)

23

MIA - 2005/06

STRIPS(eInicial,objectivos)

estado=eInicial ; plano=[] ; pilha=[] Colocar objectivos na pilha Repetir até pilha vazia

SE topo_da_pilha=objectivo unificável com estado ENTÃO retirar da pilha

SENÃO SE topo_da_pilha é objectivo composto

ENTÃO ordenar sub-objectivos e colocá-los na pilha SENÃO SE topo_da_pilha é objectivo simples

ENTÃO escolher operador op cuja lista junte unifica com objectivo substituir objectivo pelo operador op

coloque pré-condições de op na pilha SENÃO SE topo_da_pilha é operador

retire operador

estado = aplicar(operador,estado) plano = [plano,op]

Planeador tipo STRIPS

Ex: mundo dos blocos

Esquemas de Operadores – PEGAR_da_mesa(Obj)

• Pré-Condições: bloco(Obj), braco_vazio, limpo(Obj), em(Obj,mesa) • Junte: segura(Obj)

• Apague: braco_vazio, em(Obj,mesa)

– RETIRAR_de_outro_bloco(Obj)

• Pré-Condições: bloco(Obj), braco_vazio, limpo(Obj), em(Obj,Obj2), bloco(Obj2) • Junte: segura(Obj), limpo(Obj2)

(13)

25

MIA - 2005/06

Planeador tipo STRIPS

Ex: mundo dos blocos

Esquemas de Operadores – LARGAR_na_mesa(Obj)

• Pré-Condições: bloco(Obj), segura(Obj) • Junte: braco_vazio, em(Obj,mesa) • Apague: segura(Obj)

– EMPILHAR(Obj,Obj2)

• Pré-Condições: bloco(Obj), segura(Obj), bloco(Obj2), limpo(Obj2) • Junte: braco_vazio, em(Obj,Obj2)

• Apague: segura(Obj), limpo(Obj2)

Planeador tipo STRIPS

B A C D C A B D Início Objectivo Modelo do Mundo: em(B,A) E na_mesa(C) E na_mesa(D) E na_mesa(A) E braco_vazio

Pilha dos Objectivos:

em(C,A) E em (B,D) E na_mesa(A) E na_mesa(D) em(C,A) E em(B,D) E na_mesa(A) E na_mesa(D) em(B,D) em(C,A) em(C,A) E em(B,D) E na_mesa(A) E na_mesa(D) em(C,A) em(B,D)

(14)

27 MIA - 2005/06 em(C,A) -> EMPILHAR(C,A) em(C,A) E em(B,D) E na_mesa(A) E na_mesa(D) em(B,D) EMPILHAR(C,A) segura(C) limpo(A) E segura(C) limpo(A) em(C,A) E em(B,D) E na_mesa(A) E na_mesa(D) em(B,D) EMPILHAR(C,A) segura(C) limpo(A) E segura(C) RETIRAR(x,A)

em(X,A) E limpo(X) E braco_vazio braco_vazio

limpo(x) em(x,A)

limpo(A) é verdadeiro? Não! Operador a usar: RETIRAR(x,A) • em(X,A) é em(B,A) na BD

• limpo(B)? Axioma de Enquadramento, se nada em B então limpo(B) • braco_vazio é verdade

Planeador tipo STRIPS

– A consideração de uma posição na PILHA com a conjunção de todas as condições que depois aparecem isoladamente noutras posições não é supérflua. – Devemos testar as combinações dos sub-objectivos como precaução.

– Poderia acontecer que ao satisfazer um sub-objectivo se tivesse desfeito outro. – No caso que estamos a ilustrar não é o que se passa.

(15)

29

MIA - 2005/06

Planeador tipo STRIPS

em(C,A) E em(B,D) E na_mesa(A) E na_mesa(D) em(B,D) EMPILHAR(C,A) retirar(B,A) limpo(A) E segura(C)

Estado actual: As pré-condições do operador são aplicáveis, logo

cria-se novo Modelo do Mundo com as listas Junte e Apague do operador RETIRAR(B,A)

Modelo do Mundo:

segura(B) E limpo(A) E

na_mesa(A) E na_mesa(D) E na_mesa(C)

em(C,A) E em(B,D) E na_mesa(A) E na_mesa(D) em(B,D) EMPILHAR(C,A) segura(C) limpo(A) E segura(C)

para resolver segura(C), duas hipóteses: 1ª : PEGAR(C)

2ª : RETIRAR(C,x)

Planeador tipo STRIPS

Sem olhar à frente (“look ahead”) criamos duas possíveis pilhas:

em(C,A) E em(B,D) E na_mesa(A) E na_mesa(D) em(B,D) EMPILHAR(C,A) braco_vazio E limpo(C) E na_mesa(C) limpo(A) E segura(C) PEGAR(C) limpo(C) braco_vazio na_mesa(C) em(C,A) E em(B,D) E na_mesa(A) E na_mesa(D) em(B,D) EMPILHAR(C,A) braco_vazio E em(C,x) E limpo(C) limpo(A) E segura(C) RETIRAR(C,x) limpo(C) braco_vazio em(C,x) 1ª hipótese 2ª hipótese

(16)

31

MIA - 2005/06

– Comparando os Objectivos com a Base de Factos, é preferível a 1ª hipótese porque: na_mesa(C) é verdade

– Optando pela 2ª hipótese teríamos que garantir em(C,X), o que implicava

EMPILHAR(C,x)

– Nas pré-condições deste operador existe segura(C) que é precisamente o que estamos a tentar resolver (ciclo)

Na 1ª hipótese:

– na_mesa(C) E limpo(C) são verdadeiros

– braco_vazio não é verdadeiro porque é verdadeiro seguro(B). – Podemos então usar 2 operadores cujo resultado é braco_vazio:

EMPILHAR(Y, X) ou POUSAR(Y).

Planeador tipo STRIPS

– Olhando “à frente" queremos em(B,D), logo é mais eficiente seleccionar: EMPILHAR(X,Y) com X=B e Y=D

– Como poderá o algoritmo descobrir qual seleccionar?

• Compara as listas Junte dos dois operadores com os objectivos na PILHA, e escolhe o que resolvia um deles.

(17)

33

MIA - 2005/06

Planeador tipo STRIPS

em(C,A) E em(B,D) E na_mesa(A) E na_mesa(D) em(B,D) EMPILHAR(C,A) braco_vazio E limpo(C) E na_mesa(C) limpo(A) E segura(C) PEGAR(C) limpo(D) E segura(B) EMPILHAR(B,D) segura(B) Nova situação da PILHA:

limpo(D) limpo(D) E segura(B) verdadeirosimplica 2ºoperador : EMPILHAR(B,D)

Novo Modelo do Mundo: na_mesa(A) E na_mesa(C) E na_mesa(D) E em(B,D) E braco_vazio

Planeador tipo STRIPS

Todas as pré-condições de PEGAR(C) são verdadeiras, então 3ºOperador: PEGAR(C)

Todas as pré-condições de EMPILHAR(C, A) são verdadeiras, então 4ºOperador : EMPILHAR(C, A)

O 2ºObjectivo: em(B, D) já tinha sido satisfeito. Finamente testar o objectivo conjunto.

O Gerador Automático de Planos retorna então: RETIRAR(B,A)

EMPILHAR(B,D) PEGAR(C) EMPILHAR(C,A)

Usaram-se heurísticas para detectar passos incorrectos e interacção entre objectivos. Mas infelizmente esta técnica não é eficaz em muitos casos...

(18)

35

MIA - 2005/06

Planeador STRIPS

– Vantagens:

• Espaço de pesquisa reduzido (um objectivo de cada vez) • Bom se os objectivos são independentes

• Planeamento Linear é um algoritmo Correcto

– Desvantagens:

• Pode produzir soluções sub-óptimas • Planeamento Linear é não Completo

Planeador tipo STRIPS

Modelo do Mundo: em(C,A) E na_mesa(A) E na_mesa(B) E braco_vazio 1ª hipótese: em(B,C) em(A,B) em(A,B) E em(B,C) 2ª hipótese: em(A,B) em(B,C) em(B,C) E em(A,B)

Problema mal resolvido por Planeadores Lineares:

B Início A C Objectivo C B A

(19)

37

MIA - 2005/06

Planeador tipo STRIPS

em(B,C) EMPILHAR(A,B) limpo(B) E segura(A) PEGAR(A) em(A,B) E em(B,C) braco_vazio limpo(x) E braco_vazio E em(X,A) braco_vazio limpo(x), x=C RETIRAR(x,A) limpo(A) E braco_vazio em(x,A), x=C limpo(x), x=C verdade verdade verdade executa verdade 1ºOPERADOR: RETIRAR(C,A)

optando pela 1ª hipótese

B A

C

verdade

Planeador tipo STRIPS

Para tornar verdadeiro braco_vazio é necessário executar POUSAR(C) Então retira da pilha braco_vazio até em(B,C) 2ºOPERADOR: POUSAR(C) 3ºOPERADOR: PEGAR(A) 4ºOPERADOR: EMPILHAR(A,B) B A C Modelo do mundo: na_mesa(B) E em(A,B) E na_mesa(C) E braco_vazio

(20)

39

MIA - 2005/06

EMPILHAR(B,C), o que implica:

5ºOPERADOR: RETIRAR(A,B) 6ºOPERADOR: POUSAR(A) 7ºOPERADOR: PEGAR(B) 8ºOPERADOR: EMPILHAR(B,C) e finalmente: 9ºOPERADOR: PEGAR(A) 10ºOPERADOR: EMPILHAR(A,B)

Resolveu... mas é muito ineficiente. O mesmo se verificaria se a ordem dos sub-objectivos fosse alterada.

B A C

Planeador tipo STRIPS

Como resolver esta ineficiência?

Há duas hipóteses de solução:

– Obter um plano (como anteriormente) e depois retirar todas as acções do plano que imediatamente a seguir são desfeitas.

Para o exemplo anterior, deve cortar-se o operador 4 com 5, e depois o 3 com 6. Mas em tarefas complexas pode ser difícil e perde-se tempo a computar um plano complexo que depois se desperdiça, pois se deve simplificar.

– Construir directamente um plano mais eficiente.

Seguem-se agoras algumas técnicas de planeamento que tentam responder a estes problemas

Referências

Documentos relacionados

Sendo assim, o objetivo deste estudo foi baseado no acompanhamento de próteses parciais fixas instalados sobre implantes com o protocolo de carga imediata através da mensuração

O terceiro evento é observado para temperaturas de 435°C para a composição CS/PVA (1:1) e 277°C para a composição CS/PVA (2:1) referentes à decomposição de resíduos de

Soluções mais novas desenvolvidas para a plataforma, que não precisam de visualizações materializadas ou duplicação de dados associados ao desempenho, estão atingindo índices de

Como aplicações futuras para o trabalho está a implementação de um painel aprimorado, com mais detalhes permitindo maior interação do usuário, modelagem de mais partes da

Este manual fornece informações de instalação e operação bem como de precauções para o uso desta câmera dome.. A instalação incorreta poderia provocar

(1999) defenderam a educação em saúde como a melhor forma de prevenção para a toxoplasmose congênita, listando, em seguida, medidas específicas de cuidado que as gestantes

Você está inserido em um curso desenvolvido na modalidade à distância, no qual a relação de ensino e de aprendizagem ocorrem de maneira particular, pois,

Ortogeriatria do Hospital São Francisco Xavier, Centro Hospitalar de Lisboa Ocidental, E.P.E.; Assistente convidada de “Introdução às Doenças do Envelhecimento” - Faculdade