Agentes Lógicos. Capítulo 7 (online)

Documentos relacionados
Agentes Lógicos. Os agentes baseados no conhecimento:

Conhecimento e Raciocínio Lógica Proposicional

Conhecimento e Raciocínio Agente Lógicos Capítulo 7. Leliane Nunes de Barros

INF 1771 Inteligência Artificial

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 15 Agentes que Raciocinam Logicamente

Linguagem com sintaxe e semântica precisas: lógica. Mecanismo de inferência: derivado da sintaxe e da

Capítulo 7 - Agentes lógicos (Agentes baseados em Conhecimento)

Lógica Proposicional. LEIC - Tagus Park 2 o Semestre, Ano Lectivo 2007/08. c Inês Lynce c Luísa Coheur

Lógica Computacional

Lógica de Primeira Ordem. Capítulo 9

2.6 O ALGORITMO DPLL. Preliminares

2.3.4 Algoritmos de SAT

Fórmulas da lógica proposicional

Dedução Natural e Sistema Axiomático Pa(Capítulo 6)

Lógica Proposicional

Lógica Proposicional

Lógica Proposicional. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

LÓGICA I ANDRÉ PONTES

Lógica Computacional

DIM Resolução e método tableaux DIM / 37

Lógica. Cálculo Proposicional. Introdução

Alfabeto da Lógica Proposicional

Lógica Computacional

Fundamentos de Lógica Matemática

INTELIGÊNCIA ARTIFICIAL

SCC Capítulo 2 Lógica de Predicados

NHI Lógica Básica (Lógica Clássica de Primeira Ordem)

PCC104 - Projeto e Análise de Algoritmos

Lógica Proposicional Parte II. Raquel de Souza Francisco Bravo 25 de outubro de 2016

Lógica Computacional

Lógica Computacional DCC/FCUP 2017/18

Matemática para Ciência de Computadores

Inteligência Artificial IA II. LÓGICA DE PREDICADOS PARA REPRESENTAÇÃO DO CONHECIMENTO

Lógica Proposicional (Consequência lógica / Dedução formal)

Descrição do Mundo de Wumpus. Inteligência Artificial

Lógica para Computação

PCS 2428 / PCS 2059 lnteligência Artificial. Lógica Proposicional. Agentes Baseados em Conhecimento. Agentes Baseados em Conhecimento

Vimos que a todo o argumento corresponde uma estrutura. Por exemplo ao argumento. Se a Lua é cúbica, então os humanos voam.

LÓGICA PROPOSICIONAL

Lógica para Computação Primeiro Semestre, Aula 10: Resolução. Prof. Ricardo Dutra da Silva

Lógica e Metodologia Jurídica

Lógica Computacional. Normalização e Formas Normais. Literais, Cláusulas e Monómios; Formas Normais NNF, CNF e DNF. Algoritmos de Conversão

Lógica. Fernando Fontes. Universidade do Minho. Fernando Fontes (Universidade do Minho) Lógica 1 / 65

Matemática para Ciência de Computadores

Métodos para determinação de propriedades semânticas de fórmulas da Lógica Proposicional(Capítulo 4)

Dedução Natural para Lógica Proposicional

Lógica para Computação

Lógica. Professor Mauro Cesar Scheer

Lógica Formal. Matemática Discreta. Prof Marcelo Maraschin de Souza

Lógica Computacional

Lógica Proposicional

Dedução Natural LÓGICA APLICADA A COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto

(Model Checking) Estes slides são baseados nas notas de aula da Profa. Corina

Complexidade de Algoritmos. Edson Prestes

01/09/2014. Capítulo 3. Propriedades semânticas da Lógica Proposicional

Satisfação de Restrições. Capítulo 5 (disponível online)

Lógica Proposicional Parte 2

Lógica para Computação

Aula 7: Dedução Natural 2

Cálculo proposicional

2 Lógica Fuzzy. 2 Lógica Fuzzy. Sintaxe da linguagem

Lógica Computacional Aulas 8 e 9

Lógica de primeira ordem First Order Logic (FOL)

Lógica Computacional

Lógica e Metodologia Jurídica

Lógica e Metodologia Jurídica

Transcrição:

Agentes Lógicos Capítulo 7 (online)

Sumário Agentes baseados em conhecimento O mundo do Wumpus Lógica em geral Lógica proposicional (Booleana) Equivalência, validade, satisfação Regras de inferência e prova de teoremas

Bases de conhecimento Diz Engenho de Inferência Base de Conhecimento Pergunta Algoritmos independentes do domínio Conteúdo específico ao domínio Base de Conhecimento (BC ou KB, do Inglês Knowledge Base) = conjunto de frases numa linguagem formal Abordagem declarativa para construir um agente (ou outro sistema): BC Diz o que é necessário o agente saber O agente Pergunta a si próprio o que fazer respostas são obtidas a partir da BC Agentes podem ser considerados ao nível de conhecimento i.e., importa o que eles sabem, independentemente de como são implementados Ou ao nível da implementação i.e., estruturas de dados na BC e algoritmos que a manipulam

Agente baseado em conhecimento Função AgenteBC (percepcao) devolve accao estático: BC, uma base de conhecimento t, um contador, inicialmente a 0, que indica o tempo Diz(BC,cria-precepcao-frase(percepcao,t)) accao Pergunta(BC,cria-accao-pergunta(t)) Diz(BC,cria-accao-frase(accao,t)) t t +1 devolve accao O agente deve ser capaz de: Representar estados, acções, etc. Incorporar novas percepções Actualizar representação interna do mundo Deduzir propriedades implícitas no mundo Deduzir acções mais apropriadas

Mundo do Wumpus: descrição Medida de desempenho ouro +1000, morte -1000-1 por movimento, -10 por usar a seta Ambiente Posições adjacentes a pit cheiram bem Posições adjacentes ao wumpus cheiram mal Brilho sse ouro está na mesma posição Disparar gasta a única seta Disparar mata o wumpus se estamos de frente para ele Agarrar apanha o ouro que está na mesma posição Largar liberta o ouro na posição Agente morre na posição com wumpus (vivo) ou com pit Sensores: CheirarMal, CheirarBem, Brilhar, Chocar, Gritar Actuadores: virar esquerda, virar direita, frente, agarrar, largar, disparar

Caracterização do mundo do Wumpus Completamente observável? Não só percepções locais Determinístico? Sim acção resultante especificada com exactidão Episódico? Não sequencial a nível das acções Estático? Sim Wumpus e Pits não se movem Discreto? Sim Agente único? Sim Wumpus é essencialmente uma característica natural

Exploração do mundo do wumpus A = Agente OK = posição segura

Exploração do mundo do wumpus B = cheira bem

Exploração do mundo do wumpus P = pit

Exploração do mundo do wumpus S = cheira mal

Exploração do mundo do wumpus P = pit W = wumpus

Exploração do mundo do wumpus

Exploração do mundo do wumpus

Exploração do mundo do wumpus B = cheira bem G = brilho S = cheira mal

Lógica em geral Lógicas são linguagens formais para representar informação de tal modo que podem ser tiradas conclusões Sintaxe define as frases da linguagem Semântica define o significado" das frases; i.e., define se uma frase no mundo é verdadeira ou falsa E.g., linguagem aritmética x+2 y é uma frase; x2+y > {} não é uma frase x+2 y é verdadeiro sse o número x+2 não é inferior ao número y x+2 y é verdadeiro num mundo em que x = 7 e y = 1 x+2 y é falso num mundo em que x = 0 e y = 6

Consequência Lógica Consequência lógica (ou consequência semântica) significa que uma coisa resulta de outra: BC α Frase α é uma consequência lógica da base de conhecimento BC se e só se α é verdadeiro em todos os mundos em que BC é verdadeiro E.g., a BC que contém o Sporting venceu e o Benfica venceu tem como consequência lógica o Sporting venceu ou o Benfica venceu E.g., 4 = x+y é consequência lógica de x+y = 4 Consequência lógica é uma relação entre frases (i.e., sintaxe) que está baseada na semântica

Modelos Em lógica tipicamente pensamos em termos de modelos, que são mundos formalmente estruturados e em relação aos quais se pode determinar se são verdadeiros ou falsos Dizemos que m é modelo de uma frase α se α é verdadeiro em m M(α) é o conjunto de todos os modelos de α Então BC α sse M(BC) M(α) E.g. BC = Sporting venceu e Benfica venceu, α = Sporting venceu

Consequências lógicas no mundo do wumpus Situação depois de não detectar nada em [1,1], mover-se para a direita, bom cheiro em [2,1] Considerar modelos possíveis para BC considerando apenas pits 3 escolhas Booleanas 8 modelos possíveis

Modelos do wumpus

Modelos do wumpus BC = regras do mundo do wumpus + observações

Modelos do wumpus BC = regras do mundo do wumpus + observações α 1 = "[1,2] é seguro", BC α 1, pode ser provado por verificação de modelos

Modelos do wumpus BC = regras do mundo do wumpus + observações α 2 = "[2,2] é posição segura", BC α 2

Inferência Inferência ou consequência sintáctica BC i α = frase α pode ser derivada a partir da BC usando o procedimento i Solidez: i é sólido se sempre que BC i α também é verdade que BC α Completude: i é completo se sempre que BC α também é verdade que BC i α Objectivo: definir uma lógica que é suficientemente expressiva para expressar quase toda a realidade, e para a qual existe um mecanismo de inferência que é sólido e completo. Ou seja, o procedimento responderá a qualquer questão cuja resposta seja obtida a partir do que é conhecido pela BC

Lógica proposicional: sintaxe Lógica proposicional é uma lógica muito simples Os símbolos proposicionais P 1, P 2 etc são frases Se S é uma frase, S é uma frase (negação) Se S 1 e S 2 são frases, S 1 S 2 é uma frase (conjunção) Se S 1 e S 2 são frases, S 1 S 2 é uma frase (disjunção) Se S 1 e S 2 são frases, S 1 S 2 é uma frase (implicação) Se S 1 e S 2 são frases, S 1 S 2 é uma frase (equivalência)

Lógica proposicional: semântica Cada modelo atribui verdadeiro/falso a cada símbolo proposicional E.g. P 1,2 P 2,2 P 3,1 falso verdadeiro falso Com estes símbolos podem ser enumerados 8 modelos possíveis. Regras para avaliar se um modelo m é verdadeiro ou falso: S é verdadeiro sse S é falso S 1 S 2 é verdadeiro sse S 1 é verdadeiro e S 2 é verdadeiro S 1 S 2 é verdadeiro sse S 1 é verdadeiro ou S 2 é verdadeiro S 1 S 2 é verdadeiro sse S 1 é falso ou S 2 é verdadeiro i.e., é falso sse S 1 é verdadeiro e S 2 é falso S 1 S 2 é verdadeiro sse S 1 S 2 é verdadeiro e S 2 S 1 é verdadeiro Processo recursivo simples é suficiente para avaliar qualquer frase, e.g., P 1,2 (P 2,2 P 3,1 ) = v (v f) = v v = v

Tabelas de verdade para conectivas lógicas

Frases no mundo do Wumpus Considerar P i,j verdadeiro se existe um pit em [i, j]. Considerar B i,j verdadeiro se cheira bem em [i, j]. P 1,1 B 1,1 B 2,1 "Pits fazem com que cheire bem em posições adjacentes" B 1,1 (P 1,2 P 2,1 ) B 2,1 (P 1,1 P 2,2 P 3,1 )

Tabelas de verdade para inferência α1 = "[1,2] é seguro", BC α1, pode ser provado por verificação de modelos Significa que α1 é verdade sempre que BC é verdade

Tabelas de verdade para inferência

Inferência por enumeração Construção implícita de uma tabela de verdade Enumeração em profundidade primeiro de todos os modelos é sólida e completa Para n símbolos, a complexidade temporal é O(2 n ) e a complexidade espacial é O(n)

Inferência por enumeração Função TabVerdade-infere? (BC, ) devolve verdadeiro ou falso símbolos lista de símbolos proposicionais em BC e devolve TabVerdade-verifica-todos(BC,,símbolos,[ ]) Função TabVerdade-verifica-todos (BC,,símbolos,modelo) devolve verdadeiro ou falso se vazio?(símbolos) então se Verdadeiro?(BC,modelo) então devolve Verdadeiro?(,modelo) senão devolve verdadeiro senão P First(símbolos); resto Rest(símbolos) devolve TabVerdade-verifica-todos(BC,,resto, Extende(P,verdade,modelo)) e TabVerdade-verifica-todos(BC,,resto,Extende(P,falso,modelo))

Equivalência lógica Duas frases são logicamente equivalentes sse são verdadeiras para os mesmos modelos: α ß sse α β e β α

Validade e satisfação Uma frase é válida se é verdadeira para todos os modelos, e.g., Verdade, A A, A A, (A (A B)) B Uma frase é satisfazível se é verdadeira para algum modelo e.g., A B, C Uma frase é não satisfazível se não é verdadeira para nenhum modelo e.g., A A Validade está relacionada com inferência BC α se e só se (BC α) é válido (Teorema da Dedução) Satisfação está relacionada com inferência BC α se e só se (BC α) é não satisfazível

Métodos de prova Métodos de prova podem ser divididos em dois tipos: Aplicação de regras de inferência Geração (sólida) de novas frases a partir das já existentes Prova = aplicação de uma sequência de regras de inferência; regras de inferência usadas como operadores um algoritmo de procura Tipicamente requer a transformação das frases numa forma normal Verificação de modelos Tabela de verdade (sempre exponencial em n) Procura com retrocesso optimizada, e.g., procura DPLL Procura heurística no espaço de modelos (sólida mas incompleta) e.g., procura local com aleatorização e heurística do menor número de conflitos

Regras de Inferência: exemplos Modus Ponens Eliminação do Eliminação/Introdução da

Resolução Forma conjuntiva normal (CNF, do Inglês Conjunctive Normal Form) conjunção de disjunções de literais, i.e. conjunção de claúsulas E.g., (A B) (B C D) Resolução (para CNF): l i l k, m 1 m n l i l i-1 l i+1 l k m 1 m j-1 m j+1... m n onde l i e m j são literais com sinais opostos. E.g., P 1,3 P 2,2, P 2,2 P 1,3 Resolução é sólida e completa para lógica proposicional

Resolução Solidez: (l i l i-1 l i+1 l k ) l i m j (m 1 m j-1 m j+1... m n ) (l i l i-1 l i+1 l k ) (m 1 m j-1 m j+1... m n )

Algoritmo de Resolução Prova por contradição, i.e., provar que BC α é não satisfazível Função Resolucao (BC, ) devolve verdadeiro ou falso cláusulas conjº de cláusulas na representação CNF de BC α novas { } ciclo para cada C i,c j em cláusulas resolventes Resolucao(C i,c j ) se cláusula vazia resolventes então devolve verdadeiro novas novas resolventes se novas cláusulas então devolve falso cláusulas cláusulas novas

Exemplo de Resolução BC = (B 1,1 (P 1,2 P 2,1 )) B 1,1 α = P 1,2

Conversão para CNF B 1,1 (P 1,2 P 2,1 ) 1. Eliminar, substituindo α β por (α β) (β α). (B 1,1 (P 1,2 P 2,1 )) ((P 1,2 P 2,1 ) B 1,1 ) 2. Eliminar, substituindo α β por α β. ( B 1,1 P 1,2 P 2,1 ) ( (P 1,2 P 2,1 ) B 1,1 ) 3. Mover para dentro usando as regras de De Morgan e da dupla negação: ( B 1,1 P 1,2 P 2,1 ) (( P 1,2 P 2,1 ) B 1,1 ) 4. Aplicar regra da distributividade ( sobre ): ( B 1,1 P 1,2 P 2,1 ) ( P 1,2 B 1,1 ) ( P 2,1 B 1,1 )

Sudoku em CNF Matriz 9x9 com sub-matrizes 3x3 Algumas entradas com valores de 1 a 9 1 7 8 3 7 2 Objectivo: atribuir números de 1 a 9 às entradas em branco Garantir que cada número ocorre exactamente uma vez por linha, por coluna e por sub-matriz 3x3 6 3 4 2 5 7 8 1 4 6 3 Existe apenas uma solução

Formulação CNF: Variáveis Cada entrada corresponde a 9 variáveis 9x9x9 = 729 variáveis Booleanas variável x 812 = V e variáveis x 81i = F com 1 i 9 e i 2 2

Formulação CNF: cláusulas Pelo menos um número em cada entrada Cada número aparece no máximo uma vez em cada linha Cada número aparece no máximo uma vez em cada coluna 6 3 4 1 7 8 3 5 7 1 7 2 4 3 Cada número aparece no máximo uma vez em cada sub-matriz 3x3 2 8 6

Sudoku em CNF: exº 4x4 Entradas: x 111 V x 112 V x 113 V x 114, x16 Linhas: x 111 V x 211, x 111 V x 311, x 111 V x 411, x 211 V x 311, x 211 V x 411, x 311 V x 411, x4 x4 Colunas: x 111 V x 121, x 111 V x 131, x 111 V x 141, x 121 V x 131, x 121 V x 141, x 131 V x 141, x4 x4 Sub-matriz 2x2: x 111 V x 121, x 111 V x 211, x 111 V x 221, x 121 V x 211, x 121 V x 221, x 211 V x 221, x4 x4

Encadeamento para a frente e para trás Forma de Horn Caso particular: BC = conjunção de cláusulas de Horn Cláusula de Horn = Símbolo proposicional; ou (conjunção de símbolos) símbolo E.g., C (B A) (C D B) Modus Ponens (para Forma de Horn): completo para BCs de Horn α 1,,α n, α 1 α n β β Pode ser usado com encadeamento para a frente ou encadeamento para trás. Estes algoritmos são executados em tempo linear

Encadeamento para a frente Ideia: usar qualquer regra cujas premissas sejam satisfeitas na BC, Adicionar as conclusões da regra à BC, até que o objectivo seja encontrado

Encadeamento para a frente: algoritmo Função EF (BC,q) devolve verdadeiro ou falso Variáveis locais: contador, tabela indexada por cláus., inicialmente nº de premissas inferido, tabela indexada por símbolos, inicialmente a falso agenda, lista de símbolos, inicialmente com símbolos verdadeiros enquanto agenda não está vazia P Pop(agenda) resto Rest(símbolos) a não ser que inferido[p] inferido[p] verdadeiro por cada cláusula de Horn c onde a premissa p aparece decrementar contador[c] se contador[c]=0 então se cabeca[c]=q então devolve verdadeiro Push(cabeca[c],agenda) devolve falso Encadeamento para a frente é sólido e completo para BC de Horn

Encadeamento para a frente: exemplo

Encadeamento para a frente: exemplo

Encadeamento para a frente: exemplo

Encadeamento para a frente: exemplo

Encadeamento para a frente: exemplo

Encadeamento para a frente: exemplo

Encadeamento para a frente: exemplo

Encadeamento para a frente: exemplo

Prova de completude EF deriva novas frases atómicas que são consequências lógicas da BC 1. EF atinge um ponto fixo quando não são derivadas novas frases atómicas 2. Considerar o estado final como um modelo m, que atribui verdadeiro/falso aos símbolos lógicos 3. Cada cláusulas na BC original é verdadeira em m a 1 a k b 4. Logo m é um modelo da BC 5. Se BC q, q é verdadeiro em todos os modelos da BC, incluindo m

Encadeamento para trás Ideia: fazer o encadeamento para trás a partir da questão q: Para provar q pela BC, Verificar se q já é conhecido, ou Provar pela BC todas as premissas de alguma regra que permite concluir q Evitar ciclos: verificar se novo sub-objectivo já está no conjunto existente de objectivos Evitar trabalho repetido: verificar se existe novo sub-objectivo 1. Se já foi provado como verdadeiro, ou 2. Se já foi provado como falso.

Encadeamento para trás: exemplo

Encadeamento para trás: exemplo

Encadeamento para trás: exemplo

Encadeamento para trás: exemplo

Encadeamento para trás: exemplo

Encadeamento para trás: exemplo

Encadeamento para trás: exemplo

Encadeamento para trás: exemplo

Encadeamento para trás: exemplo

Encadeamento para trás: exemplo

Encadeamento para a frente vs. para trás EF é guiado por dados, automático, faz um processamento inconsciente e.g., Reconhecimento de objectos Pode ter muito trabalho que é irrelevante para o objectivo ET é guiado por objectivos, apropriado para a resolução de problemas e.g., Onde estão as minhas chaves? Complexidade de ET pode ser muito menor do que linear na dimensão da BC

Inferência eficiente para lógica proposicional Duas famílias de algoritmos eficientes para inferência em lógica proposicional: Algoritmos de procura com retrocesso (completos) Algoritmo DPLL (Davis, Putnam, Logemann, Loveland) Algoritmos de procura local (incompletos) Algoritmo WalkSAT

Algoritmo DPLL Determina se uma dada fórmula proposicional (em CNF) é satisfazível Melhoramentos vs. tabela de verdade: 1. Pode terminar um caminho ao longo da árvore antes de ter todas as variáveis atribuídas Uma cláusula é verdadeira se existe pelo menos um literal verdadeiro. Uma fórmula é falsa se existe pelo menos uma cláusula não satisfeita. Uma cláusula é não satisfeita se todos os literais são falsos. 2. Eliminação de literais puros Literal puro: aparece sempre com o mesmo sinal em todas as cláusulas. e.g., Na fórmula (A B), ( B C), (C A), A e B são literais puros. Literais puros são atribuídos valor verdadeiro não afecta validade da fórmula. 3. Regra da cláusula unitária Cláusula unitária: tem apenas um literal (não atribuído) O único literal da cláusula tem de ser verdadeiro.

Classificação de literais e cláusulas Atribuições {a=f,b=v}, c e d não atribuídas = (a b)( a b c)(a c d)( a b c) Cláusulas satisfeitas: ( a b c) ( a b c) Cláusula não satisfeita: (a b) Outras cláusulas: (a c d)

Retrocesso + Cláusula Unitária 1 (a + b + c) a 2 3 (a + b + c) ( a + b + c) b b 4 5 (a + c + d) ( a + c + d) c c c 6 7 ( a + c + d) ( b + c + d) d d d d d 8 ( b + c + d)

Algoritmo DPLL Função DPLL-SAT? (formula) devolve verdadeiro ou falso clausulas cláusulas na fórmula simbolos variáveis na fórmula devolve DPLL(clausulas,simbolos,[ ]) Função DPLL(clausulas,simbolos,modelo) devolve verdadeiro ou falso se todas as cláusulas em clausulas são verdadeiras então devolve verdadeiro se alguma cláusula em clausulas é falsa então devolve falso P,valor EncontraLiteralPuro(clausulas,simbolos,modelo) se P não vazio então devolve DPLL(clausulas,simbolos-P,[P=valor modelo]) P,valor EncontraClausulaUnitaria(clausulas,modelo) se P não vazio então devolve DPLL(clausulas,simbolos-P,[P=valor modelo]) P,valor First(simbolos); resto Rest(simbolos) devolve DPLL(clausulas,resto,[P=verdadeiro modelo]) ou DPLL(clausulas,resto,[P=falso modelo])

Algoritmo WalkSAT Incompleto, algoritmo de procura local Função de avaliação: heurística procura minimizar o número de cláusulas não satisfeitas Equilíbrio entre ganância e aleatorização

Algoritmo WalkSAT Função WalkSAT (clausulas,p,max-flips) devolve modelo ou falha modelo atribuição aleatória aos símbolos das clausulas simbolos variáveis na fórmula for i: 1 max-flips se modelo satisfaz cláusulas então devolve modelo clausula cláusula seleccionada aleatoriamente das clausulas que são não satisfeitas no modelo com probabilidade p fazer o flip de um valor do modelo, escolhido aleatoriamente entre as variáveis da clausula senão fazer o flip de qualquer símbolo na clausula de modo a maximizar o número de clausulas satisfeitas devolve falha flip = troca do valor de uma variável (de V para F ou de F para V)

Agente baseado em inferência no mundo do wumpus Agente no mundo do wumpus usando lógica proposicional: P 1,1 W 1,1 B x,y (P x,y+1 P x,y-1 P x+1,y P x-1,y ) M x,y (W x,y+1 W x,y-1 W x+1,y W x-1,y ) W 1,1 W 1,2 W 4,4 W 1,1 W 1,2 W 1,1 W 1,3 64 variáveis proposicionais, 155 cláusulas

Função AgenteWumpus (percepcao) devolve accao input: percepcao (lista cheiramal, cheirabem, brillho) estatico: BC, inicialmente com posicao do agente x,y,orient, posição do agente[x,y] e respectiva orientação visitadas, registo das posições já visitas (inicialmente nada) accao, acção mais recente do agente plano, sequência de acções, inicialmente vazio actualiza x,y,orient,visitadas em função de accao se cheiramal entao DIZ(BC,M x,y ) senao DIZ(BC, M x,y ) se cheirabem entao DIZ(BC,B x,y ) senao DIZ(BC, B x,y ) se brilho então accao agarrar senão se plano não vazio então accao Pop(plano) senão se para posição adjacente [i,j], PERGUNTA(BC,( P i,j W i,j )) é verdadeiro ou para posição adjacente [i,j], PERGUNTA(BC, (P i,j W i,j )) é falso então plano A*-Grafo(Problema([x,y],orient,[i,j],visitadas)) accao Pop(plano) senão accao movimento escolhido aleatoriamente devolve accao

Lógica proposicional: limite de expressividade BC contém frases lógicas para cada posição Para cada instante de tempo t e cada posição [x,y], L x,yt OlhaParaDireita t Avança t L x+1,y t+1 Aumento muito rápido do número de cláusulas!

Sumário Agentes lógicos aplicam inferência a bases de conhecimento para derivar nova informação e tomar decisões Conceitos básicos de lógica: sintaxe: estrutura das frases semântica: validade das frases de acordo com modelos consequência lógica: verdade de uma frase dada outra frase inferência: derivação de frases a partir de outras frases solidez: derivações só produzem consequências lógicas completude: derivações podem produzir todas as consequências lógicas Mundo do wumpus requer a possibilidade de representar informação parcial e negada, raciocinar a partir de hipóteses, etc. Resolução é completa para lógica proposicional Encadeamento para a frente e para trás requer tempo polinomial e é completo para cláusulas de Horn Lógica proposicional tem falta de expressividade