O documento descreve o mundo de Wumpus, um ambiente de jogo comum em Inteligência Artificial. Ele apresenta as regras do mundo de Wumpus, como a detecção de fedor indica a presença do monstro Wumpus, e descreve como um agente pode explorar logicamente o ambiente com base em percepções.
3. 3
Roteiro
! Agentes Baseados em Conhecimento
! O mundo de Wumpus
! Lógica em Geral – Modelos e implicações
! Lógica proposicional (booleana).
! Equivalência, validade e satisfatibilidade
! Regras de Inferência e prova de teoremas
! Encadeamento para frente
! Encadeamento para trás
! Resolução
4. 4
Bases de conhecimento.
Máquina de Inferência
Base de conhecimento
(KB)
Algoritmo independente de
domínio
Conteúdo dependente do
domínio
! Base de conhecimento = conjunto de sentenças em uma
linguagem formal.
! Abordagem declarativa para construção de agentes (ou outra
coisa)
! Informar ao mesmo apenas o que ele precisa saber
! Então ele pode perguntar sozinho o que ele fazer. As respostas
virão da base de conhecimento
! Agentes podem ser visualizados ao nível do conhecimento i. e.,
o que eles sabem não importando como foram implementados,
ou ao nivel de implementação, i. e., estruturas de dados na KB
e os algoritmos que os manipulam.
5. 5
Um agente baseado em conhecimento
função KB-AGENT (percepção) retorna uma ação
variáveis estáticas: KB, a base de conhecimento
t, um contador inicialmente 0 indicando tempo
TELL(KB,CRIAR-SENTENÇA-DE-PERCEPÇÃO(percepção,t))
ação <-- ASK(KB, CRIAR-CONSULTA-DE-AÇÃO(t))
TELL(KB,CRIAR-SENTENÇA-DE-AÇÃO(ação,t))
t <-- t + 1
retorna ação
! O agente deve ser capaz de:
! Representar estados, ações, etc
! Incorporar novas percepções
! Atualizar a representação interna do mundo
! Deduzir propriedades ocultas do mundo
! Deduzir ações apropriadas.
6. 6
Mundo de Wumpus - Descrição PEAS
! Medida de desempenho
! +1000 se pegar ouro, -1000 se cair no poço ou for devorado pelo
wumpus
! -1 ação executada, -10 uso da flecha
! Ambiente
! Malha de 4 x 4 o começa em 1,1
! Quadrados adjacentes ao wumpus
fedem
! Quadrados adjacentes a um poço têm
brisa
! Brilho sse tem o ouro
! Um tiro pode matar o wumpus se vc está lutando com ele.
! O agente só possui uma flecha
! Agente pode AGARRAR o ouro se estiver no mesmo quadrado
! Agente pode SOLTAR o ouro no quadrado atual
! Sensores: Fedor, Brisa, Brilho, Impacto, Grito de Morte
! Efetuadores: Esquerda, Direita, Em frente, Baixo, Agarra,
Solta, Atira
7. 7
Caracterização do mundo
! Completamente observável: Não – somente
percepção local.
! Determinístico: Sim – As conseqüências são
perfeitamente especificadas.
! Episódico: Não – Seqüencial ao nível das
ações.
! Estático: Sim – Wumpus e os poços não
movem.
! Discreto: Sim
! Único Agente: Sim – Wumpus é
essencialmente uma criatura natural
16. 16
Lógica em geral
! Lógica é uma linguagem formal para representar informações a
partir das quais podem ser retiradas conclusões.
! Regras de sintaxe definem as sentenças na linguagem
! A Semântica define o significado das sentenças
! i. e., define a verdade de uma sentença em um mundo.
! E.g., a linguagem da aritmética
! x+2 ≥ y é uma sentença; x2+y > {} não é uma sentença
! x+2 ≥ y é verdade sse o número x+2 não é menor que o número y
! x+2 ≥ y é verdade em um mundo onde x = 7, y = 1
! x+2 ≥ y é falso em um mundo onde x = 0, y = 6
17. 17
Consequência Lógica
! Consequência lógica significa que uma coisa segue,
decorre logicamente de outra.
KB ╞ α
! Uma base de conhecimento KB tem como
consequência lógica uma sentença α sse α é
verdade em todos os mundos onde KB é verdade
! E.g., A base de conhecimento KB contendo “Os gigantes
ganharam” e “Os Vermelhos Ganharam” tem como
conseqüência lógica “Ou os gigantes ganharam ou os
Vermelhos Ganharam”
! E.g., x+y = 4 tem como conseqüência 4 = x+y
! Conseqüência lógica é um relacionamento entre sentenças
(sintaxe) baseada na semântica.
18. Modelos
! Lógicos normalmente raciocinam em termos de modelos, os
quais são mundos formalmente estruturados com relação a qual
verdade pode ser avaliada.
! Dizemos que m é um modelo de α se α é verdade em m
18
! M(α) é o conjunto de todos os modelos de α
! Consequentemente KB ╞ α
sse M(KB) ⊆ M(α)
! E.g. KB = Gigantes ganharam
e Vermelhos ganharam
α = Gigantes ganharam
19. 19
Conseqüência lógica no mundo de wumpus
Situação depois de detectar
nada em [1,1], mover para
direita, brisa em [2,1]
Considerar possíveis modelos
para a KB assumindo
somente a existência de
poços.
3 escolhas booleanas ⇒ 8
modelos possíveis
24. 24
Modelos Wumpus
! KB = Regras do Mundo Wumpus +
observações
! α2 = "[2,2] é seguro", KB ╞ α2
25. 25
Inferência
! KB ├i α = Sentença α pode ser derivada de KB pelo
procedimento i
! Consistência: i é consistente se sempre que KB ├i α,
é também verdade que KB╞ α
! Completeza: i é completo se sempre que KB╞ α,
também é verdade que KB ├i α
! A “Lógica de Primeira Ordem” é expressiva o
suficiente para expressar o que for de interesse e
para isto sempre existe um procedimento consistente
e completo.
! Ou seja, o procedimento reponderá qualquer questão
cuja resposta decorre do que é conhecido pela KB.
26. Lógica proposicional : Sintaxe
! A lógica proposicional é a “lógica” mais simples – Ilustra idéias
básicas
26
! Símbolos proposicionais P1, P2 etc são sentenças
! Se S é uma setença , ¬S é uma sentença (negação)
! Se S1 e S2 são sentenças, S1 ∧ S2 é uma sentença(conjunção)
! Se S1 e S2 são sentenças, S1 ∨ S2 é uma sentença(disjunção)
! Se S1 e S2 são sentenças, S1 ⇒ S2 é uma sentença(implicação)
! Se S1 e S2 são sentenças, S1 ⇔ S2 é uma sentença(bicondicional)
27. 27
Lógica Proposicional: Semântica
Cada modelo especifica a verdade ou falsidade para cada proposição.
Ex. P1,2 P2,2 P3,1
falso verdade falso
Com estes símbolos podem ser enumerados automaticamente 8 modelos
possíveis.
Regras para a avaliação de verdade com relação a um modelo m:
¬S é verdade sse S is falso
S1 ∧ S2 é verdade sse S1 é verdade e S2 é verdade
S1 ∨ S2 é verdade sse S1 é verdade ou S2 é verdade
S1 ⇒ S2 é verdade sse S1 é falso ou S2 é verdade
i.e., é falso sse S1 is verdade e S2 is falso
S1 ⇔ S2 é verdade sse S1⇒S2 é verdade e S2⇒S1 é verdade
Um processo recursivo simples avalia uma sentença:
¬P1,2 ∧ (P2,2 ∨ P3,1) = verdade ∧ (verdade ∨ falso) = verdade ∧ verdade = verdade
28. Tabela de Verdade para Conectivos
P Q ~P P ^ Q P v Q P" Q P#Q
Falso Falso Verdade Falso Falso Verdade Verdade
Falso Verdade Verdade Falso Verdade Verdade Falso
Verdade Falso Falso Falso Verdade Falso Falso
Verdade Verdade Falso Verdade Verdade Verdade Verdade
28
29. 29
Sentenças no mundo Wumpus
Seja Pi,j verdade se existir um poço em [i, j].
Seja Bi,j verdade se existir uma brisa em [i, j].
- Não existe poço em [1,1]
R1: ¬ P1,1
- Poços ocasionam brisa em quadros adjacentes
R2: B1,1 ⇔ (P1,2 ∨ P2,1)
R3: B2,1 ⇔ (P1,1 ∨ P2,2 ∨ P3,1)
- Não existe brisa em [1,1] porém existe em [2,1]
R4: ¬B1,1
R5: B2,1
30. 30
Tabela de Verdade p/ Inferência
B1,1 B2,1 P1,1 P1,2 P2,1 P2,2 P3,1 KB α1
F F F F F F F F V
F F F F F F V F V
... ... ... ... ... ... ... ... ...
F V F F F F F F V
F V F F F F V V V
F V F F F V F V V
F V F F F V V V V
F V F F V F F F V
... ... ... ... ... ... ... ... ...
V V V V F V V F F
Lembrete: KB = R1 ^ R2 ^ R3 ^ R4 ^ R5
31. 31
Inferência por enumeração
! Enumeração em profundidade preserva verdade e é completa
Função CONSEQUENCIA-LOGICA-TV?(KB,A) retorna V ou F
entradas : KB, a base de conhecimento, sentença em lógica proposicional
α, a consulta, uma sentença em lógica proposicional
simbolos <- uma lista de simbolos em Logica Proposicional
retornar VERIFICAR-TODOS-TV(KB,α,simbolos,[])
---------------------------------------------------------------------------------
Função VERIFICAR-TODOS-TV(KB, α,simbolos, modelo) retorna V ou F
se VAZIO(simbolos) então
se VERDADE-LP(BC,modelo) então retornar VERDADEIRO-LP(α,modelo)
senão retornar V
senão faça
P <- PRIMEIRO(simbolos); restante <- RESTO(simbolos)
retornar VERIFICAR-TODOS-TV(KB,α,restante,ESTENDER(P,V,modelo)) e
VERIFICAR-TODOS-TV(KB,α,restante,ESTENDER(P,F,modelo))
! Para n símbolos, complexidade de tempo é O(2n),
complexidade de espaço O(n)
32. 32
Equivalência Lógica
• Duas sentenças são logicamente equivalentes sse elas são
verdade nos mesmos modelos α ≡ ß sse α╞ β e β╞ α
33. 33
Validade e satisfatibilidade
Uma senteça é válida se ela é verdade em todos os modelos,
ex., Verdade, A ∨¬A, A ⇒ A, (A ∧ (A ⇒ B)) ⇒ B
Validade é ligada a inferência via Teorema da dedução:
KB ╞ α sse (KB ⇒ α) é válida
Uma sentença é satisfatível se ela é verdade em algum modelo
ex, A ∨ B, C
Uma sentença é não satisfatível se ela não é verdade em nenhum
modelo
e.g., A∧¬A
Satisfatibilidade é conectada a inferência pelo seguinte:
KB ╞ α sse (KB ∧¬α) é não satisfatível
34. 34
Métodos de prova
! Grosso modo, métodos de prova são divididos em
dois tipos:
! Aplicação de regras de inferência
! Legitimar a geração de novas sentenças a partir das velhas
! Prova = uma sequência de aplicações de regras de inferência.
Pode usar regras de inferência como operadores em um
algoritmo padrão de busca
! Normalmente requer a transformação de sentenças em uma
forma normal
! Checagem de modelo
! Enumeração de tabelas de Verdade (exponencial em n)
! Backtraking aperfeiçoado
! Busca heurística no espaço de modelos (Preserva a verdade
porém é incompleto)
35. 35
Resolução
Forma Normal Conjuntiva (FNC)
Conjunção de Disjunções de cláusulas literais
Ex (A ∨ ¬B) ∧ (B ∨ ¬C ∨ ¬D)
! Regra de Inferência da Resolução(para FNC):
li ∨… ∨ lk, m1 ∨ … ∨ mn
li ∨ … ∨ li-1 ∨ li+1 ∨ … ∨ lk ∨ m1 ∨ … ∨ mj-1 ∨ mj+1 ∨... ∨ mn
onde li e mj são literais complementares.
Ex., P1,1 ∨ P3,1, ¬P1,1 ∨ P2,2
P3,1 ∨ P2,2
! A resolução preserva a verdade (consistente) e é completa para lógica proposicional
36. 36
Conversão para FNC
(Forma normal conjuntiva)
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 a lei De Morgan:
(¬B1,1 ∨ P1,2 ∨ P2,1) ∧ ((¬P1,2 ∧ ¬P2,1) ∨ B1,1)
4. Aplicando a regra da distributividade de ∧ sobre ∨:
(¬B1,1 ∨ P1,2 ∨ P2,1) ∧ (¬P1,2 ∨ B1,1) ∧ (¬P2,1 ∨ B1,1)
37. 37
Algoritmo de Resolução
! Prova por contradição, i.e., mostra-se que KB∧¬α é não-satisfatível
Função Resolução-LP(KB,α) retorna V ou F
entradas: KB, a base de conhecimento (setença LP)
α, a consulta, uma consulta em LP
cláusulas <- conjunto de cláusulas FNC (KB ^ ~α)
nova <- {}
repita
para cada ci,cj em cláusulas faça
resolventes <- RESOLVER-LP(ci,cj)
se resolventes contém cláusula vazia então retornar V
nova <- nova U resolventes
se nova ⊆ cláusulas então retornar F
clausulas <- cláusulas U nova
39. 39
Encadeamento pra frente e pra trás
(Forward and backward chaining)
! Forma de Horn (restrita)
KB = conjunção de cláusulas de Horn
! Cláusula de Horn =
! Símbolo de proposição; ou
! (conjunção de simbolos ⇒ simbolo)
! De outra forma seria uma disjunção onde um dos disjuntos é
positivo(cabeça)
! Ex., C ∧ (B ⇒ A) ∧ (C ∧ D ⇒ B)
! Modus Ponens (para Forma de Horn): completo para Horn KBs
α1, … ,αn, α1 ∧ … ∧ αn ⇒ β
β
! Pode ser utilizada com encadeamento pra frente ou prá trás.
! Algoritmos naturais e rodam em tempo linear
40. 40
Encadeamento pra frente
! Idéia básica: executar todas as regras cujas
premissas são satisfeitas pela KB,
! Adicionar as conclusões à KB, até que a questão
seja encontrada
41. função PL-FC-CONSEQUENCIA-LOG(KB,q) retornar V ou F
variáveis locais: cont, tabela, indexada por cláusula, inicialmente o número de premissas
inferido, tabela, indexada por simbolo, todos inicialmente falsos
agenda, lista de simbolos, inicialmente todos verdade
41
Algoritmo de encadeamento pra frente
Enquanto agenda é não vazia faça
p $ POP(agenda)
a menos que inferido[p] faça
inferido[p] $ V
para cada cláusula c em cuja premisa p aparece faça
decremente cont[c]
se cont[c] == 0 então faça
se cabeça[c] == q então retornar V
push(cabeça[c],agenda)
retornar F
! Encadeamento pra frente é consistente e completo
para bases de conhecimento de Horn
51. 51
Encadeamento pra Trás(ET) (Backward chaining)
Idéia: como a análise a partir de uma questão
(q) colocada sobre a KB a fim de prová-la.
! Checa se q ja é conhecida, ou
! Prova por ET todas as premissas de qualquer regra
concluindo q
Para Evitar Loops: Checar se a nova sub-meta
já se encontra na pilha de metas
Evitar Trabalho Repetido: checa se cada nova sub-meta
1. Já foi provada verdadeira, ou
2. Já foi provada falsa (sem sucesso)
62. 62
Comparação Inicial
! EF é orientado a dados, automático e “cego”.
! e.g., reconhecimento de objetos, decisões de rotina
! Pode acabar fazendo muito processamento
irrelevante para os objetivos.
! ET é orientado a meta, mais apropriado para solução
de problemas.
! e.g., Onde estão as chaves? Como se tornar um PhD?
! Complexidade da ET pode ser bem menor que linear
em relação ao tamanho da base de conhecimento
63. 63
Inferência proposicional efetiva
- Duas famílias de algoritmos para inferência
proposicional
! Algoritmos completo com retrocesso
! Algoritmo DPLL (Davis, Putnam, Logemann, Loveland)
! Algoritmo de busca local incompleta
! WalkSAT algorithm
OBS: Usam checagem de modelo
64. O algoritmo DPLL
Determina se uma sentença em lógica proposicional (FNC) é satisfatível.
Melhorias em relação à enumeração de tabelas de verdade.
64
1. Termino Prematuro
Uma cláusula é V se algum literal é V.
Uma senteça é F se alguma cláusula é F.
2. Heurística do Símbolo Puro
Símbolo Puro: Aparece sempre com o mesmo sinal em todas as cláusulas.
ex. Nas seguintes cláusulas (A ∨ ¬B), (¬B ∨ ¬C), (C ∨ A), A e B são puros, C é
impuro.
Fazer um símbolo literal puro V.
3. Cláusula Heurística Unitária
1. Apenas um literal na cláusula
2. Este literal deve ser verdadeiro
65. 65
O Algoritmo DPLL
função DPLL-Satisfatível?(s) retorna V ou F
entrada: s, uma sentença em LP
clausulas $ o conjunto de cláusulas na FNC de s
símbolos $ lista dos símbolos proposicionais em s
retornar DPLL(clausulas,símbolos,[])
------------------------------------------------------------------------
função DPLL(clausulas, simbolos, modelo) retorna V ou F
se toda cláusula em cláusulas é V no modelo então retornar V
se alguma cláusula em cláusulas é F no modelo então retornar F
P,valor $SIMBOLO-PURO(símbolos,cláusulas,modelo)
se P é não nulo então retorne DPLL(cláusulas,simbolos-P,[P=valor|modelo])
P,valor $ CLÁUSULA-UNITÁRIA(cláusula,modelo)
se P é não nulo então retorne DPLL(cláusulas, símbolos-P,[P=valor|modelo])
P $ PRIMEIRO(símbolos); resto $ RESTO(símbolos)
retornar DPLL(clásulas, resto, [P= V|modelo] ou
DPLL(cláusulas, resto, [P= falso|modelo]
66. O Algoritmo WalkSAT
! Algoritmo de busca local incompleto. Subida da
encosta no espaço de atribuições completas
! Em cada iteração o o algoritmo escolhe uma cláusula
não satisfeita e um símbolo dessa cláusula para
trocar. A forma de escolha do símbolo a trocar de
valor é ela própria aleatória, podendo ser:
! ⇒ Utilizando a heurística “min-conflitos”
minimizando o número de cláusulas insatisfeitas no
passo seguinte
! ⇒Escolha aleatória do símbolo a trocar na cláusula
66
67. 67
O algortimo WalkSAT
função WALKSAT( cláusulas,p,inversoes_max) retorna modelo ou falha ....
entradas: cláusulas, um conjunto de cláusulas
p, probabilidade de optar por realizar um movimento aleatório
inversoes_max, número máximo de inversões permitidos antes de desistir
modelo $ atribuição aleatória de V/F aos símbolos nas cláusulas
para i= 1 to inversoes_max do
se modelo satisfaz cláusulas então retornar modelo
cláusula $ a uma cláusula falsa no modelo selecionada aleatoriamente
com probabilidade p inverter o valor de um símbolo selecionado
aleatoriamente da cláusula
senão inverter qualquer símbolo que maximize o número de cláusulas
satisfeitas
retornar falha
68. 68
Propriedades do WalkSAT
♦ Incompleto
♦ Se uma proposição é insatisfazível então o algoritmo
não termina: limita-se max flips...
♦ Algoritmos locais como o WalkSAT são mais eficazes
quando se espera que uma solução exista
♦ Logo, pesquisa local não serve em geral para resolver o
problema da conseqüência lógica
♦ Muito eficiente na prática...
69. 69
Problema de difícil satisfatibilidade
! Considere as seguintes sentenças aleatórias
na 3a FNC:
(¬D ∨ ¬B ∨ C) ∧ (B ∨ ¬A ∨ ¬C) ∧ (¬C ∨ ¬B
∨ E) ∧ (E ∨ ¬D ∨ B) ∧ (B ∨ E ∨ ¬C)
m = número de cláusulas
n = número de símbolos
! Problemas difíceis a partir de m/n = 4.3 (ponto
crítico)
71. 71
Problemas de difícil satisfazibilidade
! Tempo mediano para 100 sentenças
satisfatíveis aleatórias na 3a FNC, n = 50
72. 72
Agentes de inferência no mundo Wumpus
Usando a lógica proposicional
¬P1,1
¬W1,1
Bx,y ⇔ (Px,y+1 ∨ Px,y-1 ∨ Px+1,y ∨ Px-1,y)
Sx,y ⇔ (Wx,y+1 ∨ Wx,y-1 ∨ Wx+1,y ∨ Wx-1,y)
W1,1 ∨ W1,2 ∨ … ∨ W4,4
¬W1,1 ∨ ¬W1,2 // o Wumpus não pode estar em dois quadrados ao mesmo
tempo
¬W1,1 ∨ ¬W1,3
…
⇒ 64 símbolos distintos % 155 sentenças
73. 73
Inferência usando LP no mundo de Wumpus
função LP-Wumpus-Agent(percepções) retorna ação
entradas: percepções, uma lista, [fedor, brisa, resplendor]
variáveis estáticas :
BC, base de conhecimento contendo a física do mundo de Wumpus
x,y,orientação, posição do agente (inic [1,1] e orient (direita))
visitado, uma matriz indicando que quadrados foram visitados, inicialmente falso
ação, a ação mais recente do agente, inicialmente nula
plano, uma seqüência de ações, inicialmente vazia
atualizar x, y orientação, visitado com base em ação
se fedor então TELL(BC, Sx,y) senão TELL(BC, ¬Sx,y)
se brisa então TELL(BC, Bx,y) senão TELL(BC, ¬Bx,y)
se resplendor então ação $ agarrar
senão se plano é não-vazio então ação $ DESEMPILHA(plano)
senão se para algum quadrado de borda[i,j], ASK(BC,(¬PIJ ٧۷ ¬WIJ)) é V ou
para algum quadrado de borda[i,j], ASK(BC,(Pij٧۷Wij)) é falsa então faça
plano $ BUSCA-GRAFO-A*(PROB-ROTEAMENTO[x,y], orientação, [i,j],visitados))
ação $ DESEMPILHA(plano)
senão ação $ um movimento escolhido aleatoriamente
retornar ação
74. 74
Limitações da Lógica Proposicional
! KB deve conter sentenças sobre a situação
física de todas as posições.
! Para cada tempo t e cada posição [x,y],
Lx,t
y ∧ OlhandoDireitat ∧ PraFrentet ⇒ Lx+1,y
! Proliferação de cláusulas
t
t + 1
75. 75
Sumário
! Agentes Lógicos realizam inferência em uma base de conhecimento
para derivar novas sentenças e tomar decisões.
! Conceitos básicos de lógica:
! sintaxe: estrutura formal das sentenças declarativas
! semântica: valor de verdade relativamente aos modelos
! Conclusão: verdade necessária de uma sentença dado outra
! inferência: derivação de sentenças a partir de outras sentenças
! Consistência: derivações produzem apenas frases que são consequência
lógica
! completude/completeza: derivações conseguem produzir todas as frases
que são consequências lógicas da KB
! O mundo do Wumpus requer a capacidade de lidar com informação
parcial e negativa, raciocínio por casos, etc.
! Encadeamento para a frente e para trás têm complexidade temporal
linear na dimensão da KB, são completos para cláusulas de Horn.
! Resolução é completa para a lógica proposicional
77. 77
Roteiro
! Porque LPO?
! Sintaxe e semântica
! Usando LPO
! O mundo de Wumpus em LPO
! Engenharia do Conhecimento em LPO
78. 78
Pros e cons da lógica proposicional
☺ Lógica Propositional é declarativa
☺ Lógica Proposicional permite informação parcial/disjuntiva/negada
! (contrariamente as bases de dados e estruturas de dados)
☺ Lógica Proposicional é composicional:
! Significado de B1,1 ∧ P1,2 é derivado do significado de B1,1 e deP1,2
☺ Significado em LP é independente de contexto
! (Na linguagem natural o significado depende do contexto)
' A lógica proposicional tem poder de expressão muito limitado
! (contrariamente à linguagem natural)
! Ex.., Não se pode dizer “Poços ocasionam brisas em quadrados
adjacentes” sem ter que escrever uma setença pra cada quadrado.
79. 79
Lógica de primeira ordem
! Enquanto a lógica proposicional assume que
o mundo contém apenas fatos,
! a lógica de primeira ordem (como a
linguagem natural) assume que o mundo
contém:
! Objetos: pessoa, casa, números, cores, jogos,
guerras, …
! Relações: vermelho, redondo, primo, irmão de ,
maior do que, parte de , vem entre ….
! Funções: Pai de , melhor amigo , um mais que,
mais, …
82. 82
Sentenças atômicas
Sentença atômica = predicado (termo1,...,termon)
ou termo1 = termo2
Termo = função (termo1,...,termon)
ou constante ou variável
! Ex., Brother(KingJohn,RichardTheLionheart)
! >(Length(LeftLegOf(Richard)),
Length(LeftLegOf(KingJohn)))
( A perna esquerda de Richard é maior do que a de King John)
84. Verdade em Lógica de 1a Ordem
84
! Setenças são verdadeiras em relação a um modelo e uma
interpretação.
! Modelos contêm objetos (elementos do domínio) e relações
entre eles
! Uma interpretação especifica referentes para:
Símbolos de constantes → objetos
Símbolo de Predicados → relações
Símbolos de funções → relações funcionais
! Uma sentença atômica predicate(termo1,...,termon) é verdade
sse os objetos referenciados por termo1,...,termon
estão na relação referenciada por predicate
85. 85
Modelos para a LPO: Exemplo
Como representar esse modelo em sentenças???
86. 86
Modelos para a LPO: Exemplo
Para alguns casos restritos, podemos tentar enumerar os modelos para um
dado vocabulário de uma KB:
Para cada número de elementos no domínio n de 1 até ∞
Para cada predicado k-ário Pk no vocabulário
Para cada relação k-ária possível com n objetos
Para cada símbolo de constante C no vocabulário
Para cada escolha de referente para C em n objetos
A obtenção das conclusões lógicas por enumeração não vai ser nada fácil!
87. 87
Quantificação Universal
! ∀<variáveis> <sentenças>
Todo mundo no CEFET é inteligente
∀x Em(x,CEFET) ⇒ Inteligente(x)
! ∀x P é verdade em um modelo m sse P é verdade com x sendo
cada possível objeto no modelo
! Grosso modo, equivale a uma conjunção de instanciações de P
Em(Petrônio,CEFET) ⇒ Inteligente(Petrônio)
∧ Em(Marcília, CEFET) ⇒ Inteligente(Marcília)
∧ Em(Assunção, CEFET) ⇒ Inteligente(Assunção)
∧ ...
88. 88
Um erro comum a evitar
! Normalmente, ⇒ é o principal conectivo com ∀
! Erro comum: usar ∧ como o principal conectivo com ∀:
∀x Em(x,CEFET) ∧ Inteligente(x) significa:
“Todo mundo está no CEFET e todo mundo é inteligente”
89. 89
Quantificação Existencial
! ∃<variáveis> <sentenças>
! Alguém no CEFET é inteligente:
! ∃x Em(x,CEFET) ∧ Inteligente(x)
! ∃x P é verdade em um modelo m sse P é verdade sendo x
algum objeto possível no modelo
! Grosso modo, equivale a uma disjunção de instanciações de P
Em(Petrônio, CEFET) ∧ Inteligente(Petrônio)
∨ Em(Marcília, CEFET) ∧ Inteligente(Marcília)
∨ Em(Assunção, CEFET) ∧ Inteligente(Assunção)
∨ ...
90. 90
Outro erro comum a evitar
! Normalmente, ∧ é o principal conectivo com ∃
! Erro comum: usar ⇒ como o principal conectivo
com ∃:
∃x Em(x,CEFET) ⇒ Inteligente(x)
é verdade se existe alguém que não está no
CEFET.
91. 91
Propriedades dos Quantificadores
! ∀x ∀y é o mesmo que ∀y ∀x
! ∃x ∃y é o mesmo que ∃y ∃x
! ∃x ∀y não é o mesmo que ∀y ∃x
! ∃x ∀y Ama(x,y)
! “Existe uma pessoa que ama todo mundo”
! ∀y ∃x Ama(x,y)
! “Todo mundo é amado por pelo menos uma pessoa”
! Dualidade dos quantificadores: cada um pode ser expressado
usando o outro
! ∀x Gosta(x,IceCream) ¬∃x ¬Gosta(x,IceCream)
(Τοdos gostam de sorvete) (não existe ninguém que não goste de sorvete)
! ∃x Gosta(x,Brócolis) ¬∀x ¬Gosta(x,Brócolis)
(Alguém gosta de brócolis) (Não é o caso que ninguém goste de brócolis)
92. 92
Igualdade
! termo1 = termo2 é verdade sob uma dada interpretação sse
termo1 and termo2 referem-se ao mesmo objeto
! Ex., irmão a partir de Progenitor:
∀x,y Irmão(x,y) ⇔ [¬(x = y) ∧ ∃m Progenitor(m,x) ∧
Progenitor(m,y) ]
93. 93
Alguns exemplos
! Irmãos são amigos
∀ x,y Irmão(x,y) "Amigo(x,y).
! A Amizade é simétrica
! ∀ x,y Amigo(x,y) ↔ Amigo(y,x).
! A mãe de alguém é o seu progenitor feminino
! ∀ x,y Mãe(x,y) ↔ (Feminino(x) ^ Progenitor(x,y)).
! Um primo é um filho de um dos irmãos dos pais
! ∀ x,y Primo(x,y) ↔ ∃ p,ps Progenitor(p,x) ^ Irmão(ps,p)^ Progenitor(ps,y)
94. 94
Usando a LPO
Domínio dos conjuntos:
! ∀s Conjunto(s) ⇔ (s = {} ) ∨ (∃x,s2 Conjunto(s2) ∧ s = {x|s2})
! ¬∃x,s {x|s} = {}
! ∀x,s x ∈ s ⇔ s = {x|s}
! ∀x,s x ∈ s ⇔ [ ∃y,s2} (s = {y|s2} ∧ (x = y ∨ x ∈ s2))]
! ∀s1,s2 s1 ⊆ s2 ⇔ (∀x x ∈ s1 ⇒ x ∈ s2)
! ∀s1,s2 (s1 = s2) ⇔ (s1 ⊆ s2 ∧ s2 ⊆ s1)
! ∀x,s1,s2 x ∈ (s1 ∩ s2) ⇔ (x ∈ s1 ∧ x ∈ s2)
! ∀x,s1,s2 x ∈ (s1 ∪ s2) ⇔ (x ∈ s1 ∨ x ∈ s2)
95. 95
Interagindo com KBs em LPO
! Suponhamos um agente no mundo de Wumpus usando uma KB em LPO que
percebe um cheiro e uma brisa mas não cintilação em t=5
Tell(KB,Percepção([Cheiro, Brisa,Nada],5))
Ask(KB,∃a MelhorAção(a,5))
! I.e., a KB conclui a melhor ação particular para t=5?
Resposta: Sim, {a/Atirar} ← substituição (binding list)
! Dada uma sentença S e uma substituição σ
! Given a sentence S and a substitution σ,
! Sσ denota o resultado da substituição de σ em S. Ex.
S = MaisInteligente(x,y)
σ = {x/Marcília,y/Petrônio}
Sσ = MaisInteligente(Marcília,Petrônio)
! Ask(KB,S) retorna algum ou todas σ tais que KB╞ Sσ
96. 96
Base de Conhecimento para o Mundo Wumpus
! Percepção
! ∀t,s,b Percebe([s,b,Cintilação],t) ⇒ Cintilação(t)
! Reflexo
! ∀t Cintilação(t) ⇒ MelhorAção(Segurar,t)
! Reflexo com estado interno
! ∀t EmOuro(t) ^ ~Segurando(Ouro,t) " MelhorAção(Segurar,t)
97. 97
Deduzindo propriedades Ocultas
! ∀x,y,a,b Adjacente([x,y],[a,b]) ⇔
[a,b] ∈ {[x+1,y], [x-1,y],[x,y+1],[x,y-1]}
Propriedades dos Quadrados:
! ∀s,t At(Agente,s,t) ∧ Brisa(t) ⇒ Brisa(s)
Quadrados próximos a poços possuem brisa:
! Regra de Diagnóstico --- infere causa a partir de efeito
∀s Brisa(s) ⇒ ∃{r} Adjacente(r,s) ∧ Poço(r)
! Regra Causal --- infere efeito a partir da causa
∀r Poço(r) ⇒ [∀s Adjacente(r,s) ⇒ Brisa(s) ]
98. 98
Engenharia do conhecimento
1. Identifique a tarefa
2. Reuna o conhecimento relevante
3. Decida sobre o vocabulário dos predicados
funções e constantes
4. Codifique o conhecimento geral sobre o
domínio
5. Codifique a descrição de uma instância
específica do problema
6. Coloque algumas questões para a máquina
de inferência e pegue as respostas
7. Debug a base de conhecimento
102. 102
Domínio dos circuitos eletrônicos
1. Codificar uma instância específica do problema
Tipo(X1) = XOR Tipo(X2) = XOR
Tipo(A1) = AND Tipo(A2) = AND
Tipo(O1) = OR
Conectados(Saída(1,X1),Entrada(1,X2)) Conectados(Entrada(1,C1), Entrada(1,X1))
Conectados(Saída(1,X1), Entrada(2,A2)) Conectados(Entrada(1,C1), Entrada(1,A1))
Conectados(Saída(1,A2), Entrada(1,O1)) Conectados(Entrada(2,C1), Entrada(2,X1))
Conectados(Saída(1,A1), Entrada(2,O1)) Conectados(Entrada(2,C1), Entrada(2,A1))
Conectados(Saída(1,X2),Saída(1,C1)) Conectados(Entrada(3,C1), Entrada(2,X2))
Conectados(Saída(1,O1),Saída(2,C1)) Conectados(Entrada(3,C1),Entrada(1,A2))
103. 103
Domínio dos circuitos eletrônicos
1. Coloque questões para o procedimento de
inferência
Quais são os possíveis conjuntos de valores para
todos os terminais no circuito somador?
∃i1,i2,i3,o1,o2 Sinal(Entrada(1,C1)) = i1 ∧ Sinal(Entrada(2,C1)) =
i2 ∧ Sinal(Entrada(3,C1)) = i3 ∧ Sinal(Saída(1,C1)) = o1 ∧
Sinal(Saída(2,C1)) = o2
1. Debug a base de conhecimento
Poderíamos ter omitido assertivas como 1 ≠ 0
104. 104
Sumário
! Lógica de Primeira Ordem
! Objetos e relação são primitivos semânticos
! syntaxe: constantes, funções, predicados,
igualdade, quantificadores
! Aumenta o poder de expressão:
suficiente para definir o mundo wumpus
106. 106
Roteiro
! Reduzindo inferência em LPO para
inferência em LP
! Unificação
! Modus Ponens Generalizado
! Encadeamento Pra Frente
! Encadeamento pra Trás
! Resolução
107. 107
Instanciação Universal (UI)
! Toda instância de uma senteça universalmente quantificada é
consequência lógica da mesma.
∀v α
Subst({v/g}, α)
Para toda variável v e termo básico g
! Ex., ∀x Rei(x) ∧ Guloso(x) ⇒ Mau(x) leva a:
Rei(John) ∧ Guloso(John) ⇒ Mau(John)
Rei(Richard) ∧ Guloso(Richard) ⇒ Mau(Richard)
Rei(Pai(John)) ∧ Guloso(Pai(John)) ⇒ Mau(Pai(John))
.
108. 108
Instanciação Existencial
! Para toda senteça α, variável v e símbolo de
constante k que não apareça em outro lugar na
based de conhecimento:
∃v α
Subst({v/k}, α)
! Ex., ∃x Coroa(x) ∧ NaCabeça(x,John) leva a:
Coroa(C1) ∧ NaCabeça(C1,John)
C1 is uma nova constante chamada constante de
Skolem
109. 109
Redução à inferência Proposicional
Suponha que a KB contenha o seguinte:
∀x Rei(x) ∧ Guloso(x) ⇒ Mau(x)
Rei(John)
Guloso(John)
Irmao(Richard,John)
! Instanciando a setença universal em todas as formas possíveis
teremos:
Rei(John) ∧ Guloso(John) ⇒ Mau(John)
Rei(Richard) ∧ Guloso(Richard) ⇒ Mau(Richard)
Rei(John)
Guloso(John)
Irmao(Richard,John)
! A nova base de conhecimento “proposicionalizada” será:
Rei(John), Guloso(John), Mau(John), etc.
110. 110
Redução cont.
! Toda KB em LPO pode ser “proposicionalizada” de
forma a preservar a conseqüência lógica.
! (Uma sentença básica (ground) é conseqüência
lógica da nova KB sse ela é conseqüência da KB
original)
! Idéia: “proposicionalizar” a KB e aplicar as
perguntas, aplicar a resolução e retornar os
resultados
! Problema: com funções existem infinitos termos
básicos.
! Ex., Father(Father(Father(John)))
111. 111
Redução cont.
Teorema de Herbrand (1930). Se uma setença α é conseqüência
de uma KB em LPO, ela é conseqüência de um subconjunto
finito da KB proposicionalizada.
Idéia: For n = 0 to ∞ do
Criar uma KB proposicional instanciando com profundidade de “n”
termos
verificar se α is conseqüência desta KB
Problema: Funciona se α is conseqüência, fica em loop se α não é
conseqüência
Teorema de Turing (1936), Church (1936) Conseqüência lógica
para a LPO é semidecidível (Existem algoritmos que
dizem sim para toda sentença dedutível, mas
nenhum algoritmo existe que diga não para toda
sentença não dedutível)
112. 112
Problemas com proposicionalização
! Geração de sentenças irrelevantes
! Ex. A partir de :
∀x Rei(x) ∧ Guloso(x) ⇒ Mau(x)
Rei(John)
∀y Guloso(y)
Irmao(Richard,John)
! É óbvio que Mau(john), mas proposicionalização produz fatos como
Guloso(Ricardo) que são irrelevantes
! Com p predicados de aridade k e n constants, teremos p·nk
instâncias.
113. 113
Unificação
! Podemos obter uma inferência imediata se podemos encontrar uma
substituição θ tal que Rei(x) e Guloso(x) casa com Rei(John) e
Guloso(y)
θ = {x/John,y/John} funciona
! Unifica(α,β) = θ if αθ = βθ
p q θ
Conhece(John,x) Conhece(John,Jane) {x/jane}
Conhece(John,x) Conhece(y,Bill) {x/Bill, y/John}
Conhece(John,x) Conhece(y,Mae(y)) {y/John,x/Mae(John)}
Conhece(John,x) Conhece(x,OJ) = falha
! Padronização separada elimina sobreposição de variáveis, e.g.,
Conhece(z17,Bill)
114. Unificação
! Para unificar Conhece(John,x) e Conhece(y,z),
114
θ = {y/John, x/z } or θ = {y/John, x/John, z/John}
! O primeiro unificador é mais geral que o
segundo.
! Existe um único Unificador Mais Geral (UMG)
que é exclusivo para renomear variáveis.
UMG = { y/John, x/z }
117. 117
Modus Ponens Generalizado(GMP)
p1', p2', … , pn', ( p1 ∧ p2 ∧ … ∧ pn ⇒q)
qθ
p1' é Rei(John) p1 é Rei(x)
p2' é Guloso(y) p2 é Guloso(x)
θ é {x/John,y/John} q é Mau(x)
q θ é Mau(John)
where pi'θ = pi θ for all i
! GMP é utilizado com KB de cláusulas definidas (exatamente um
literal positivo)
! Todas as variáveis são universalmente quantificadas
118. 118
Exemplo de base de conhecimento
! A lei americana estabelece que é crime um
americano vender armas para nações hostis. O país
Nono, um inimigo dos EUA, tem alguns mísseis, e
todos estes mísseis foram vendidos pelo coronel
West, que é americano.
! Prove que o coronel West é um criminoso.
119. 119
Exemplo de base de conhecimento. Cont.
... é um crime para um americano vender armar a nações hostis:
Americano(x) ∧ Arma(y) ∧ Vendeu(x,y,z) ∧ Hostil(z) ⇒ Criminoso(x)
Nono … tem alguns mísseis, i.e., ∃x Possui(Nono,x) ∧ Missil(x):
Possui(Nono,M1) ^ Missil(M1)
… todos os mísseis foram vendidos pelo coronel West
Missil(x) ∧ Possui(Nono,x) ⇒ Vendeu(West,x,Nono)
Misseis são armas:
Missil(x) ⇒ Arma(x)
Um inimigo dos EUA é "hostil“:
Inimigo(x,EUA) ⇒ Hostil(x)
West, que é um americano …
Americano(West)
O país Nono, um inimigo da America …
Inimigo(Nono,EUA)
124. 124
Propriedades do EF
! Consistente e completo para LPO com cláusulas
definidas
! Datalog = Cláusulas definidas em LPO + nenhuma
função
! EF conclui um Datalog em um número finito de
iterações
! Em geral não termina se α não é conseqüência
lógica
! Isto é inevitável : conseqüência lógica com cláusulas
definidas é semidecidível
125. 125
Eficiência do EF
EF Incremental: não há necessidade de “casar” uma
regra na iteração k se uma premissa não foi
adicionada na iteração k-1
⇒ Casa-se cada regra cuja premissa contém um
literal positivo recentemente adicionado.
Casamento próprio pode ser expressivo:
Indexação de bases de dados permite O(1)
recuperação de fatos conhecidos
! e.x., a questão Missil(x) retorna Missil(M1)
EF é amplamente utilizada em bancos de dados
dedutivos.
126. Dif(wa,nt) ∧ Dif(wa,sa) ∧ Dif(nt,q) ∧
Dif(nt,sa) ∧ Dif(q,nsw) ∧ Dif(q,sa) ∧
Dif(nsw,v) ∧ Dif(nsw,sa) ∧ Dif(v,sa) ⇒
Coloravel()
Dif(Red,Blue) Dif (Red,Green)
Dif(Green,Red) Dif(Green,Blue)
Dif(Blue,Red) Dif(Blue,Green)
126
Exemplo de casamento difícil
! Coloravel() é inferido sse o PSR tem uma
solução
! O casamento é NP-Difícil
127. 127
Algoritmo com encadeamento pra trás
SUBST(COMPOSE(θ1, θ2), p) = SUBST(θ2,
SUBST(θ1, p))
136. 136
Propriedade do ET
! Busca recursiva em profundidade: espaço
linear no tamanho da prova
! Incompleta (loops infinitos)
! ⇒ corrige-se checando a meta atual em relação
com todas as metas na pilha
! Ineficiente devido a sub metas repetidas
! ⇒ Corrige-se colocando os resultados prévios em
uma cache (espaço extra)
! Muito usada em programação lógica
137. 137
Programação Lógica: Prolog
! Algoritmo = Lógica + Controle
! Base: backward chaining (ET) com cláusulas de Horn
Muito usado na Europe e no japão (base do project 5ª geração)
! Programa = conjunto de cláusulas = head (cabeça) :- literal1, …
literaln.
Criminoso(X) :- americano(X), arma(Y), vendeu(X,Y,Z), hostil(Z).
! Busca em profundidade ET esquerda pra direita
! Predicados pre-prontos para aritmética:, ex, X is Y*Z+3
! Predicados pré-prontos possuem efeitos colaterais (ex. Entradas e saidas)
! Predicados do tipo assert/retract
! Pressuposto de um mundo fechado (negação como falha)
! ex., dada alive(X) :- not dead(X).
! alive(joe) obtém sucesso se dead(joe) falha
138. 138
Prolog
! Acrescentando uma lista à outra
append([],Y,Y).
append([X|L],Y,[X|Z]) :- append(L,Y,Z).
! Pergunta (meta): append(A,B,[1,2]) ?
! resposta: A=[] B=[1,2]
A=[1] B=[2]
A=[1,2] B=[]
139. 139
Resolução: breve sumário
! Versão em primeira ordem
l1 ∨ ··· ∨ lk, m1 ∨ ··· ∨ mn
(l1 ∨ ··· ∨ li-1 ∨ li+1 ∨ ··· ∨ lk ∨ m1 ∨ ··· ∨ mj-1 ∨ mj+1 ∨ ··· ∨ mn)θ
onde Unificar (li, ¬mj) = θ.
! Considera-se que as duas cláusulas foram padronizadas em separado
de forma que elas não compartilham variáveis
! Por exemplo,
¬Rico(x) ∨ Infeliz(x)
Rico(Ken)
Unhappy(Ken)
with θ = {x/Ken}
! Aplicar passos de resolução a FNC(KB ∧ ¬α); completo para LPO
140. Conversão para FNC
! Todo mundo que ama todos os animais é amado por
alguém:
140
∀x [∀y Animal(y) ⇒ Loves(x,y)] ⇒ [∃y Loves(y,x)]
! 1.Elimina-se bicondicionais e implicações
∀x [¬∀y ¬Animal(y) ∨ Loves(x,y)] ∨ [∃y Loves(y,x)]
! 2. Mover ¬ pra dentro: ¬∀x p ≡ ∃x ¬p, ¬ ∃x p ≡ ∀x
¬p
∀x [∃y ¬(¬Animal(y) ∨ Loves(x,y))] ∨ [∃y Loves(y,x)]
∀x [∃y ¬¬Animal(y) ∧ ¬Loves(x,y)] ∨ [∃y Loves(y,x)]
∀x [∃y Animal(y) ∧ ¬Loves(x,y)] ∨ [∃y Loves(y,x)]
141. 141
Conversão para FNC cont.
1. Padronização de variáveis : cada quantificador usa uma
diferente
∀x [∃y Animal(y) ∧ ¬Loves(x,y)] ∨ [∃z Loves(z,x)]
2. Skolemizar: uma forma mais geral de instanciação
existencial.
Cada variável existential é substituída por uma função de Skolem of
das variáveis quantificadas universalmente.
∀x [Animal(F(x)) ∧ ¬Loves(x,F(x))] ∨ Loves(G(x),x)
3. Desprezar quantificadores Universais:
[Animal(F(x)) ∧ ¬Loves(x,F(x))] ∨ Loves(G(x),x)
4. Distribuir ∨ sobre ∧ :
[Animal(F(x)) ∨ Loves(G(x),x)] ∧ [¬Loves(x,F(x)) ∨ Loves(G(x),x)]