[figure]

Cap. 13 – Geração de Planos e Ações

• No mundo real, info pode ser incorreta ou incompleta.

• Incompleta: o agente pode não saber onde está o leite.

• Incorreta: preço do leite pode ter subido, agente pode ter sido roubado.

• Duas abordagens:

– Geração de planos condicionais (planejamento de contigências). Inclui ações sensoriais no plano para testar condições apropriadas.

– Monitoração da Execução: monitora a execução do plano e,

se necessário, gera outro plano – replanning.

• Combinação possível.

[figure]

Cap. 13 – Geração de Planos Condicionais

Op(ACAO: Remover(x), PRECOND: Colocado(x), EFEITO: Removido(x) ∧ RodaVazia(x) ∧ ¬ Colocado(x))

Op(ACAO: Colocar(x), PRECOND: Removido(x) ∧ RodaVazia(x), EFEITO: Colocado(x) ∧ ¬ RodaVazia(x) ∧ ¬ Removido(x))

Op(ACAO: Encher(x), PRECOND: Novo(x) ∧ Vazio(x), Cheio(x) ∧ ¬ Vazio(x))

• Objetivo: Colocado(x) ∧ Cheio(x)

• Cond iniciais: Cheio(Estepe) ∧ Novo(Estepe) ∧ Removido(Estepe) ∧ Colocado(Pneu1) ∧ Vazio(Pneu1)

• Solução assumindo que nada acontece de imprevisto: [Remover(Pneu1),Colocar(Estepe)]

[figure]

Cap. 13 – Geração de Planos Condicionais • Plano gerado vai sempre trocar Pneu1 mesmo q ele não esteja

furado.

• Cond: if Pneu1 não furado então encher, senão remover e colocar o estepe.

• Plano gerado: if(NaoFurado(Pneu1),[Encher(Pneu1)], [Remover(Pneu1),Colocar(Estepe)])

• Plano condicional pode ser melhor do que plano sem condições, mais geral.

• Pode ser necessário: se o agente não souber se o estepe está cheio ou vazio.

• Se o pneu a ser trocado e o estepe estiverem furados, nenhum gerador de planos vai gerar um plano que seja solução.

Cap. 13 – Geração de Planos Condicionais

• Gerador de Planos condicionais gera todos os planos possíveis de sucesso e Falhas nos caminhos onde não há solução possível.

• Execução de planos condicionais:

– Se for um passo condicional, testar condição contra o banco de dados.

– Se condição for falsa, executar plano do ramo ’then’.

– senão, executar plano do ramo ’else’.

[figure]

Cap. 13 – Geração de Planos Condicionais • Durante a execução do plano, agentes têm que ser capazes de

decidir se uma condição é verdadeira ou falsa.

• Para garantir que um plano condicional é executável, o agente deve inserir novas ações ao plano.

• Gerador de Planos condicionais deve gerar ações que o agente possa executar para obter mais informações sobre o mundo. Ex: Op(ACAO: VerificarPneu(x),

PRECOND: Pneu(x),

EFEITO: SabeSe(“NaoFurado(x)”))

• Algoritmo: CPOP, como POP, mas utiliza estrutura contexto associada a cada passo (lista de condições que devem ser atendidas para que o passo seja executado).

• Passos subsequentes no plano herdam o contexto anterior.

Cap. 13 – Geração de Planos Condicionais Cap. 13 – Geração de Planos Condicionais Cap. 13 – Geração de Planos Condicionais Cap. 13 – Geração de Planos Condicionais