agentes lógicos - fenix.tecnico.ulisboa.pt · sumário • agentes baseados em conhecimento • o...

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

Upload: vothuan

Post on 14-Oct-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Agentes Lógicos

Capítulo 7 (online)

Page 2: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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

Page 3: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Bases de conhecimento

• 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 conhecimentoi.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

Engenho de Inferência

Base de Conhecimento

Algoritmos independentes do domínio

Conteúdo específico ao domínio

Diz Pergunta

Page 4: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Agente baseado em conhecimento

• 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

Função AgenteBC (percepcao) devolve accaoestá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 +1devolve accao

Page 5: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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

Page 6: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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

Page 7: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Exploração do mundo do wumpus

A = Agente

OK = posição segura

Page 8: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Exploração do mundo do wumpus

B = cheira bem

Page 9: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Exploração do mundo do wumpus

P = pit

Page 10: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Exploração do mundo do wumpus

S = cheira mal

Page 11: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Exploração do mundo do wumpus

P = pit

W = wumpus

Page 12: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Exploração do mundo do wumpus

Page 13: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Exploração do mundo do wumpus

Page 14: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Exploração do mundo do wumpus

B = cheira bem

G = brilho

S = cheira mal

Page 15: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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

Page 16: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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

Page 17: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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 todosos modelos de α

• Então BC ╞ α sseM(BC) M(α)– E.g. BC = Sporting venceu e Benfica venceu, α = Sportingvenceu

Page 18: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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 BCconsiderando apenas pits

3 escolhas Booleanas 8 modelos possíveis

Page 19: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Modelos do wumpus

Page 20: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Modelos do wumpus

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

Page 21: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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

Page 22: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Modelos do wumpus

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

Page 23: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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

Page 24: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Lógica proposicional: sintaxe

• Lógica proposicional é uma lógica muito simples

• Os símbolos proposicionais P1, P2 etc são frases

– Se S é uma frase, S é uma frase (negação)– Se S1 e S2 são frases, S1 S2 é uma frase (conjunção)– Se S1 e S2 são frases, S1 S2 é uma frase (disjunção)– Se S1 e S2 são frases, S1 S2 é uma frase (implicação)– Se S1 e S2 são frases, S1 S2 é uma frase (equivalência)

Page 25: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Lógica proposicional: semânticaCada modelo atribui verdadeiro/falso a cada símbolo proposicional

E.g. P1,2 P2,2 P3,1falso 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 S1 S2 é verdadeiro sse S1 é verdadeiro e S2 é verdadeiroS1 S2 é verdadeiro sse S1 é verdadeiro ou S2 é verdadeiroS1 S2 é verdadeiro sse S1 é falso ou S2 é verdadeiroi.e., é falso sse S1 é verdadeiro e S2 é falso

S1 S2 é verdadeiro sse S1S2 é verdadeiro e S2S1 é verdadeiro

Processo recursivo simples é suficiente para avaliar qualquer frase, e.g.,

P1,2 (P2,2 P3,1) = v (v f) = v v = v

Page 26: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Tabelas de verdade para conectivas lógicas

Page 27: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Frases no mundo do Wumpus

Considerar Pi,j verdadeiro se existe um pit em [i, j].Considerar Bi,j verdadeiro se cheira bem em [i, j].

P1,1

B1,1

B2,1

• "Pits fazem com que cheire bem em posições adjacentes"B1,1 (P1,2 P2,1)B2,1 (P1,1 P2,2 P3,1)

Page 28: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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

Page 29: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Tabelas de verdade para inferência

Page 30: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalê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(2n) e a complexidade espacial é O(n)

Page 31: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Inferência por enumeraçãoFunçã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ãose Verdadeiro?(BC,modelo)então devolve Verdadeiro?(,modelo)senão devolve verdadeiro

senãoP 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))

Page 32: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Equivalência lógica

• Duas frases são logicamente equivalentes sse são verdadeiras para os mesmos modelos: α ≡ ß sse α╞ β e β╞ α

Page 33: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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 algummodelo– e.g., A B, C

• Uma frase é não satisfazível se não é verdadeira para nenhum modelo– e.g., AA

• 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

Page 34: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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

Page 35: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Regras de Inferência: exemplos

• Modus Ponens

• Eliminação do

• Eliminação/Introdução da

Page 36: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

• 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):li … lk, m1 … mn

li … li-1 li+1 … lk m1 … mj-1 mj+1 ... mn

onde li e mj são literais com sinais opostos.

E.g., P1,3 P2,2, P2,2

P1,3

• Resolução é sólida e completa paralógica proposicional

Resolução

Page 37: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Resolução

Solidez:

(li … li-1 li+1 … lk) limj (m1 … mj-1 mj+1 ... mn)

(li … li-1 li+1 … lk) (m1 … mj-1 mj+1 ... mn)

Page 38: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Algoritmo de Resolução

• Prova por contradição, i.e., provar que BCα é não satisfazível

Função Resolucao (BC,) devolve verdadeiro ou falsocláusulas conjº de cláusulas na representação CNF de BCαnovas { }ciclo

para cada Ci,Cj em cláusulasresolventes Resolucao(Ci,Cj)se cláusula vazia resolventes então devolve verdadeironovas novas resolventes

se novas cláusulas então devolve falsocláusulas cláusulas novas

Page 39: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Exemplo de Resolução

• BC = (B1,1 (P1,2 P2,1)) B1,1

• α = P1,2

Page 40: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Conversão para CNF

B1,1 (P1,2 P2,1)

1. Eliminar , substituindo α β por (α β)(β α).(B1,1 (P1,2 P2,1)) ((P1,2 P2,1) B1,1)

2. Eliminar , substituindo α β por α β.(B1,1 P1,2 P2,1) ((P1,2 P2,1) B1,1)

3. Mover para dentro usando as regras de De Morgan e da dupla negação:(B1,1 P1,2 P2,1) ((P1,2 P2,1) B1,1)

4. Aplicar regra da distributividade ( sobre ):(B1,1 P1,2 P2,1) (P1,2 B1,1) (P2,1 B1,1)

Page 41: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Sudoku em CNF• Matriz 9x9 com sub-matrizes

3x3• Algumas entradas com

valores de 1 a 9

• 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

• Existe apenas uma solução

6

82

354

3

46

17

7

23

781

Page 42: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Formulação CNF: Variáveis

• Cada entrada corresponde a 9 variáveis

• 9x9x9 = 729 variáveis Booleanas

2

variável x812 = V e variáveis x81i = F com 1≤ i ≤ 9 e i ≠ 2

Page 43: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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

• Cada número aparece no máximo uma vez em cada sub-matriz 3x3

6

82

354

3

46

17

7

23

781

Page 44: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Sudoku em CNF: exº 4x4

• Entradas: x111 V x112 V x113 V x114, … x16• Linhas: x111 V x211, x111 V x311, x111 V x411, x211 V x311 ,x211 V x411, x311 V x411, … x4 x4

• Colunas: x111 V x121, x111 V x131, x111 V x141, x121 V x131 ,x121 V x141, x131 V x141, … x4 x4

• Sub-matriz 2x2: x111 V x121, x111 V x211, x111 V x221, x121 V x211 ,x121 V x221, x211 V x221, … x4 x4

Page 45: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para a frente e para trás

• Forma de HornCaso 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

Page 46: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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

Page 47: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para a frente: algoritmo

• Encadeamento para a frente é sólido e completo para BC de Horn

Função EF (BC,q) devolve verdadeiro ou falsoVariáveis locais: contador, tabela indexada por cláus., inicialmente nº de premissas

inferido, tabela indexada por símbolos, inicialmente a falsoagenda, lista de símbolos, inicialmente com símbolos verdadeiros

enquanto agenda não está vaziaP Pop(agenda)resto Rest(símbolos)a não ser que inferido[p]

inferido[p] verdadeiropor 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 verdadeiroPush(cabeca[c],agenda)

devolve falso

Page 48: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para a frente: exemplo

Page 49: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para a frente: exemplo

Page 50: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para a frente: exemplo

Page 51: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para a frente: exemplo

Page 52: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para a frente: exemplo

Page 53: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para a frente: exemplo

Page 54: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para a frente: exemplo

Page 55: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para a frente: exemplo

Page 56: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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 ma1 … ak b

4. Logo m é um modelo da BC5. Se BC╞ q, q é verdadeiro em todos os modelos da

BC, incluindo m

Page 57: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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, ouProvar 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-objectivo1. Se já foi provado como verdadeiro, ou2. Se já foi provado como falso.

Page 58: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para trás: exemplo

Page 59: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para trás: exemplo

Page 60: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para trás: exemplo

Page 61: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para trás: exemplo

Page 62: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para trás: exemplo

Page 63: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para trás: exemplo

Page 64: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para trás: exemplo

Page 65: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para trás: exemplo

Page 66: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para trás: exemplo

Page 67: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Encadeamento para trás: exemplo

Page 68: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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

Page 69: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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

Page 70: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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 purosLiteral 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áriaCláusula unitária: tem apenas um literal (não atribuído)O único literal da cláusula tem de ser verdadeiro.

Page 71: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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)

Page 72: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Retrocesso + Cláusula Unitária

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

1

2

3

4

5

6

7

8

a(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

b

c

d d

b

c

d d

c

d(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

(¬b + ¬c + ¬d)

(a + b + c)

(a + b + ¬c)

(¬a + b + ¬c)

(a + c + d)

(¬a + c + d)

(¬a + c + ¬d)

(¬b + ¬c + d)

Page 73: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Algoritmo DPLLFunção DPLL-SAT? (formula) devolve verdadeiro ou falso

clausulas cláusulas na fórmulasimbolos variáveis na fórmuladevolve DPLL(clausulas,simbolos,[ ])

Função DPLL(clausulas,simbolos,modelo) devolve verdadeiro ou falsose todas as cláusulas em clausulas são verdadeiras então devolve verdadeirose alguma cláusula em clausulas é falsa então devolve falsoP,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])

Page 74: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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

Page 75: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Algoritmo WalkSATFunção WalkSAT (clausulas,p,max-flips) devolve modelo ou falha

modelo atribuição aleatória aos símbolos das clausulassimbolos variáveis na fórmulafor i: 1 max-flips

se modelo satisfaz cláusulas então devolve modeloclausula cláusula seleccionada aleatoriamente das

clausulas que são não satisfeitas no modelocom probabilidade p

fazer o flip de um valor do modelo, escolhidoaleatoriamente entre as variáveis da clausula

senão fazer o flip de qualquer símbolo na clausula de modoa 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)

Page 76: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Agente baseado em inferência no mundo do wumpus

Agente no mundo do wumpus usando lógica proposicional:

P1,1

W1,1

Bx,y (Px,y+1 Px,y-1 Px+1,y Px-1,y) Mx,y (Wx,y+1 Wx,y-1 Wx+1,y Wx-1,y)W1,1 W1,2 … W4,4

W1,1 W1,2

W1,1 W1,3

64 variáveis proposicionais, 155 cláusulas

Page 77: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

Função AgenteWumpus (percepcao) devolve accaoinput: percepcao (lista cheiramal, cheirabem, brillho)estatico: BC, inicialmente com posicao do agente

x,y,orient, posição do agente[x,y] e respectiva orientaçãovisitadas, registo das posições já visitas (inicialmente nada)accao, acção mais recente do agenteplano, sequência de acções, inicialmente vazio

actualiza x,y,orient,visitadas em função de accaose cheiramal entao DIZ(BC,Mx,y) senao DIZ(BC,Mx,y)se cheirabem entao DIZ(BC,Bx,y) senao DIZ(BC,Bx,y)se brilho então accao agarrarsenão se plano não vazio então accao Pop(plano)senão se para posição adjacente [i,j], PERGUNTA(BC,(Pi,jWi,j)) é

verdadeiro ou para posição adjacente [i,j], PERGUNTA(BC,(Pi,jWi,j)) é falso então

plano A*-Grafo(Problema([x,y],orient,[i,j],visitadas))accao Pop(plano)

senão accao movimento escolhido aleatoriamentedevolve accao

Page 78: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

• BC contém frases lógicas para cada posição

• Para cada instante de tempo t e cada posição [x,y],

Lx,yt OlhaParaDireitat Avançat Lx+1,y

t+1

• Aumento muito rápido do número de cláusulas!

Lógica proposicional: limite de expressividade

Page 79: Agentes Lógicos - fenix.tecnico.ulisboa.pt · Sumário • Agentes baseados em conhecimento • O mundo do Wumpus • Lógica em geral • Lógica proposicional (Booleana) – Equivalência,

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