SlideShare uma empresa Scribd logo
1 de 142
Baixar para ler offline
1 
Inteligência Artificial 
(parte II) 
Ronaldo F. Ramos, Dr 
ronaldo@cefet-ce.br 
Adaptado de : aima.cs.berkeley.edu
Agentes Lógicos
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 
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 
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 
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 
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
8 
Explorando o mundo de Wumpus
9 
Explorando o mundo de Wumpus
10 
Explorando o mundo de Wumpus
11 
Explorando o mundo de Wumpus
12 
Explorando o mundo de Wumpus
13 
Explorando o mundo de Wumpus
14 
Explorando o mundo de Wumpus
15 
Explorando o mundo de Wumpus
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 
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.
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 
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
20 
Modelos Wumpus
21 
Modelos Wumpus 
! KB = Regras do mundo wumpus + 
observações
22 
Modelos Wumpus 
! KB = Regras do Mundo Wumpus + observações 
! α1 = "[1,2] é seguro", KB ╞ α1, provado por checagem do 
modelo
23 
Modelos Wumpus 
! KB = Regras do Mundo Wumpus + 
observações
24 
Modelos Wumpus 
! KB = Regras do Mundo Wumpus + 
observações 
! α2 = "[2,2] é seguro", KB ╞ α2
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.
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 
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
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 
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 
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 
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 
Equivalência Lógica 
• Duas sentenças são logicamente equivalentes sse elas são 
verdade nos mesmos modelos α ≡ ß sse α╞ β e β╞ α
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 
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 
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 
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 
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
38 
Exemplo 
KB = (B1,1 ⇔ (P1,2∨ P2,1)) ∧¬ B1,1 α = ¬P1,2
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 
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
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
42 
Exemplo
43 
Exemplo
44 
Exemplo
45 
Exemplo
46 
Exemplo
47 
Exemplo
48 
Exemplo
49 
Exemplo
50 
Encadeamento pra frente 
Completo e consistente
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)
52 
Exemplo
53 
Exemplo
54 
Exemplo
55 
Exemplo
56 
Exemplo
57 
Exemplo
58 
Exemplo
59 
Exemplo
60 
Exemplo
61 
Exemplo
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 
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
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 
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]
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 
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 
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 
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)
70 
Problemas de difícil satisfazibilidade
71 
Problemas de difícil satisfazibilidade 
! Tempo mediano para 100 sentenças 
satisfatíveis aleatórias na 3a FNC, n = 50
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 
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 
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 
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
Lógica de Primeira Ordem
77 
Roteiro 
! Porque LPO? 
! Sintaxe e semântica 
! Usando LPO 
! O mundo de Wumpus em LPO 
! Engenharia do Conhecimento em LPO
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 
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, …
80 
Lógicas em geral
81 
Sintaxe da LPO 
! Constantes KingJohn, 2, NUS,... 
! Predicados Brother, >,... 
! Funções Sqrt, LeftLegOf,... 
! Variáveis x, y, a, b,... 
! Conectivos ¬, ⇒, ∧, ∨, ⇔ 
! Igualdade = 
! Quantificadores ∀, ∃
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)
83 
Sentenças complexas 
! Sentenças complexas são feitas a partir de 
sentenças atômicas usando conectivos 
¬S, S1 ∧ S2, S1 ∨ S2, S1 ⇒ S2, S1 ⇔ S2, 
Ex. Irmão(KingJohn,Richard) ⇒ Irmão(Richard,KingJohn) 
>(1,2) ∨ ≤ (1,2) 
>(1,2) ∧ ¬ >(1,2)
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 
Modelos para a LPO: Exemplo 
Como representar esse modelo em sentenças???
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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
99 
Domínio dos circuitos eletrônicos 
Somador de 1 bit
100 
Domínio dos circuitos eletrônicos 
1. Identifique a tarefa 
! O circuito soma corretamente? (verificação do circuito) 
2. Reunir o conhecimento relevante 
! Composto de fios e portas; Tipos de portas(AND, OR, 
XOR, NOT) 
! Irrelevante: tamanho, desenho, cor e custo das portas 
3. Definir o vocabulário 
! Alternativas: 
Type(X1) = XOR 
Type(X1, XOR) 
XOR(X1)
101 
Domínio dos circuitos eletrônicos 
1. Codificar o conhecimento geral do problema 
! ∀t1,t2 Connectados(t1, t2) ⇒ Sinal(t1) = Sinal(t2) 
! ∀t Sinal(t) = 1 ∨ Sinal(t) = 0 
! 1 ≠ 0 
! ∀t1,t2 Conectados(t1, t2) ⇒ Conectados(t2, t1) 
! ∀g Tipo(g) = OR ⇒ Sinal(Saida(1,g)) = 1 ⇔ ∃n 
Sinal(Entrada(n,g)) = 1 
! ∀g Tipo(g) = AND ⇒ Sinal(Saida(1,g)) = 0 ⇔ ∃n 
Sinal(Entrada(n,g)) = 0 
! ∀g Tipo(g) = XOR ⇒ Sinal(Saida(1,g)) = 1 ⇔ 
Sinal(Entrada(1,g)) ≠ Sinal(Entrada(2,g)) 
! ∀g Tipo(g) = NOT ⇒ Sinal(Saida(1,g)) ≠ 
Sinal(Entrada(1,g))
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 
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 
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
Inferência em LPO 
Chapter 9
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 
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 
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 
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 
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 
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 
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 
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)
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 }
115 
O algoritmo de unificação
116 
O algoritmo de unificação
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 
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 
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)
120 
Algoritmo de encadeamento pra frente
121 
Prova de encadeamento pra frente
122 
Prova de encadeamento pra frente
123 
Prova de encadeamento pra frente
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 
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.
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 
Algoritmo com encadeamento pra trás 
SUBST(COMPOSE(θ1, θ2), p) = SUBST(θ2, 
SUBST(θ1, p))
128 
Exemplo de ET
129 
Exemplo de ET
130 
Exemplo de ET
131 
Exemplo de ET
132 
Exemplo de ET
133 
Exemplo de ET
134 
Exemplo de ET
135 
Exemplo de ET
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 
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 
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 
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
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 
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)]
142 
Prova por resolução de cláusulas definidas

Mais conteúdo relacionado

Mais procurados

Arquitetura de Computadores: Álgebra Booleana
Arquitetura de Computadores: Álgebra BooleanaArquitetura de Computadores: Álgebra Booleana
Arquitetura de Computadores: Álgebra BooleanaAlex Camargo
 
Sistema Gerenciador Para um Salão de Beleza
Sistema Gerenciador Para um Salão de BelezaSistema Gerenciador Para um Salão de Beleza
Sistema Gerenciador Para um Salão de BelezaDaiana de Ávila
 
Raciocínio Lógico Aplicado a Resolução de Problemas Matemáticos
Raciocínio Lógico Aplicado a Resolução de Problemas MatemáticosRaciocínio Lógico Aplicado a Resolução de Problemas Matemáticos
Raciocínio Lógico Aplicado a Resolução de Problemas MatemáticosAndré Constantino da Silva
 
Introdução à Lógica de Programação
Introdução à Lógica de ProgramaçãoIntrodução à Lógica de Programação
Introdução à Lógica de ProgramaçãoAndré Agostinho
 
Apostila de portugol
Apostila de portugolApostila de portugol
Apostila de portugolSandra Rocha
 
Eletrônica digital (introdução aos sistemas digitais)
Eletrônica digital (introdução aos sistemas digitais)Eletrônica digital (introdução aos sistemas digitais)
Eletrônica digital (introdução aos sistemas digitais)val10z
 
Tautologias, contradições, contigências e equivalências
Tautologias, contradições, contigências e equivalênciasTautologias, contradições, contigências e equivalências
Tautologias, contradições, contigências e equivalênciasAristóteles Meneses
 
A Unified Framework for Computer Vision Tasks: (Conditional) Generative Model...
A Unified Framework for Computer Vision Tasks: (Conditional) Generative Model...A Unified Framework for Computer Vision Tasks: (Conditional) Generative Model...
A Unified Framework for Computer Vision Tasks: (Conditional) Generative Model...Sangwoo Mo
 
Raciocínio lógico aula 6-6 - diagramas lógicos
Raciocínio lógico   aula 6-6 - diagramas lógicosRaciocínio lógico   aula 6-6 - diagramas lógicos
Raciocínio lógico aula 6-6 - diagramas lógicosJ M
 
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)Leinylson Fontinele
 
Introdução à Computação Aula 01 - Apresentação
Introdução à Computação  Aula 01 - ApresentaçãoIntrodução à Computação  Aula 01 - Apresentação
Introdução à Computação Aula 01 - ApresentaçãoLeinylson Fontinele
 
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...Leinylson Fontinele
 
Perfil do usuário, Personas, Cenários, Storyboard em IHC
Perfil do usuário, Personas, Cenários, Storyboard em IHCPerfil do usuário, Personas, Cenários, Storyboard em IHC
Perfil do usuário, Personas, Cenários, Storyboard em IHCRos Galabo, PhD
 
Trabalho de geometria analítica
Trabalho de geometria analíticaTrabalho de geometria analítica
Trabalho de geometria analíticaDaniel Castro
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação12anogolega
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de UsoNatanael Simões
 

Mais procurados (20)

Arquitetura de Computadores: Álgebra Booleana
Arquitetura de Computadores: Álgebra BooleanaArquitetura de Computadores: Álgebra Booleana
Arquitetura de Computadores: Álgebra Booleana
 
Raciocinio logico-parte 01-aep-trf5
Raciocinio logico-parte 01-aep-trf5Raciocinio logico-parte 01-aep-trf5
Raciocinio logico-parte 01-aep-trf5
 
Sistema Gerenciador Para um Salão de Beleza
Sistema Gerenciador Para um Salão de BelezaSistema Gerenciador Para um Salão de Beleza
Sistema Gerenciador Para um Salão de Beleza
 
Raciocínio Lógico Aplicado a Resolução de Problemas Matemáticos
Raciocínio Lógico Aplicado a Resolução de Problemas MatemáticosRaciocínio Lógico Aplicado a Resolução de Problemas Matemáticos
Raciocínio Lógico Aplicado a Resolução de Problemas Matemáticos
 
Engenharia Web
Engenharia WebEngenharia Web
Engenharia Web
 
Introdução à Lógica de Programação
Introdução à Lógica de ProgramaçãoIntrodução à Lógica de Programação
Introdução à Lógica de Programação
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
 
Apostila de portugol
Apostila de portugolApostila de portugol
Apostila de portugol
 
Eletrônica digital (introdução aos sistemas digitais)
Eletrônica digital (introdução aos sistemas digitais)Eletrônica digital (introdução aos sistemas digitais)
Eletrônica digital (introdução aos sistemas digitais)
 
Tautologias, contradições, contigências e equivalências
Tautologias, contradições, contigências e equivalênciasTautologias, contradições, contigências e equivalências
Tautologias, contradições, contigências e equivalências
 
A Unified Framework for Computer Vision Tasks: (Conditional) Generative Model...
A Unified Framework for Computer Vision Tasks: (Conditional) Generative Model...A Unified Framework for Computer Vision Tasks: (Conditional) Generative Model...
A Unified Framework for Computer Vision Tasks: (Conditional) Generative Model...
 
Raciocínio lógico aula 6-6 - diagramas lógicos
Raciocínio lógico   aula 6-6 - diagramas lógicosRaciocínio lógico   aula 6-6 - diagramas lógicos
Raciocínio lógico aula 6-6 - diagramas lógicos
 
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
Banco de Dados II Aula 03 - Modelagem de Dados (Modelo Lógico)
 
Introdução à Computação Aula 01 - Apresentação
Introdução à Computação  Aula 01 - ApresentaçãoIntrodução à Computação  Aula 01 - Apresentação
Introdução à Computação Aula 01 - Apresentação
 
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
 
Perfil do usuário, Personas, Cenários, Storyboard em IHC
Perfil do usuário, Personas, Cenários, Storyboard em IHCPerfil do usuário, Personas, Cenários, Storyboard em IHC
Perfil do usuário, Personas, Cenários, Storyboard em IHC
 
Trabalho de geometria analítica
Trabalho de geometria analíticaTrabalho de geometria analítica
Trabalho de geometria analítica
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Descrição formal de Casos de Uso
Descrição formal de Casos de UsoDescrição formal de Casos de Uso
Descrição formal de Casos de Uso
 
Integridade De Dados
Integridade De DadosIntegridade De Dados
Integridade De Dados
 

Destaque

Curso de IA - Parte 4 -
Curso de IA - Parte 4 -Curso de IA - Parte 4 -
Curso de IA - Parte 4 -ronaldo ramos
 
Curso de Inteligência Artificial - Parte 3 -
Curso de Inteligência Artificial - Parte 3 -Curso de Inteligência Artificial - Parte 3 -
Curso de Inteligência Artificial - Parte 3 -ronaldo ramos
 
Inteligência Artificial - Parte 5 -
Inteligência Artificial - Parte 5 - Inteligência Artificial - Parte 5 -
Inteligência Artificial - Parte 5 - ronaldo ramos
 
Inteligência Artificial - Data Mining
Inteligência Artificial - Data MiningInteligência Artificial - Data Mining
Inteligência Artificial - Data Miningronaldo ramos
 
Apresentação para Candidatos do MPCOMP Turma Aracati
Apresentação para Candidatos do MPCOMP Turma AracatiApresentação para Candidatos do MPCOMP Turma Aracati
Apresentação para Candidatos do MPCOMP Turma Aracatironaldo ramos
 
Inteligência Artificial Parte 6 [IA]
Inteligência Artificial Parte 6 [IA]Inteligência Artificial Parte 6 [IA]
Inteligência Artificial Parte 6 [IA]ronaldo ramos
 
Logica programacao python-slides
Logica programacao python-slidesLogica programacao python-slides
Logica programacao python-slidesronaldo ramos
 
Planejamento, Execução e Controle de Projetos (19/05/2015)
Planejamento, Execução e Controle de Projetos (19/05/2015)Planejamento, Execução e Controle de Projetos (19/05/2015)
Planejamento, Execução e Controle de Projetos (19/05/2015)Alessandro Almeida
 
Sentenças abertas, implicações e equivalências lógicas
Sentenças abertas, implicações e equivalências lógicasSentenças abertas, implicações e equivalências lógicas
Sentenças abertas, implicações e equivalências lógicasSérgio de Castro
 
Creando Aplicaciones para Android con Kivy
Creando Aplicaciones para Android con KivyCreando Aplicaciones para Android con Kivy
Creando Aplicaciones para Android con KivyNahuel Defossé
 
Gerador de Código-Objeto - Compiladores
Gerador de Código-Objeto - CompiladoresGerador de Código-Objeto - Compiladores
Gerador de Código-Objeto - CompiladoresAnderson Favaro
 

Destaque (20)

Curso de IA - Parte 4 -
Curso de IA - Parte 4 -Curso de IA - Parte 4 -
Curso de IA - Parte 4 -
 
Curso de Inteligência Artificial - Parte 3 -
Curso de Inteligência Artificial - Parte 3 -Curso de Inteligência Artificial - Parte 3 -
Curso de Inteligência Artificial - Parte 3 -
 
Inteligência Artificial - Parte 5 -
Inteligência Artificial - Parte 5 - Inteligência Artificial - Parte 5 -
Inteligência Artificial - Parte 5 -
 
Inteligência Artificial - Data Mining
Inteligência Artificial - Data MiningInteligência Artificial - Data Mining
Inteligência Artificial - Data Mining
 
Apresentação para Candidatos do MPCOMP Turma Aracati
Apresentação para Candidatos do MPCOMP Turma AracatiApresentação para Candidatos do MPCOMP Turma Aracati
Apresentação para Candidatos do MPCOMP Turma Aracati
 
Inteligência Artificial Parte 6 [IA]
Inteligência Artificial Parte 6 [IA]Inteligência Artificial Parte 6 [IA]
Inteligência Artificial Parte 6 [IA]
 
Lógica Proposicional
Lógica ProposicionalLógica Proposicional
Lógica Proposicional
 
Contrução da tabela verdade
Contrução da tabela verdadeContrução da tabela verdade
Contrução da tabela verdade
 
Logica programacao python-slides
Logica programacao python-slidesLogica programacao python-slides
Logica programacao python-slides
 
Planejamento, Execução e Controle de Projetos (19/05/2015)
Planejamento, Execução e Controle de Projetos (19/05/2015)Planejamento, Execução e Controle de Projetos (19/05/2015)
Planejamento, Execução e Controle de Projetos (19/05/2015)
 
Sentenças abertas, implicações e equivalências lógicas
Sentenças abertas, implicações e equivalências lógicasSentenças abertas, implicações e equivalências lógicas
Sentenças abertas, implicações e equivalências lógicas
 
Lógica
LógicaLógica
Lógica
 
Compiladores 5
Compiladores 5Compiladores 5
Compiladores 5
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Compiladores-aula01
Compiladores-aula01Compiladores-aula01
Compiladores-aula01
 
Creando Aplicaciones para Android con Kivy
Creando Aplicaciones para Android con KivyCreando Aplicaciones para Android con Kivy
Creando Aplicaciones para Android con Kivy
 
Lógica inss gabaritado
Lógica inss gabaritadoLógica inss gabaritado
Lógica inss gabaritado
 
Gerador de Código-Objeto - Compiladores
Gerador de Código-Objeto - CompiladoresGerador de Código-Objeto - Compiladores
Gerador de Código-Objeto - Compiladores
 
Árvore B
Árvore BÁrvore B
Árvore B
 
Árvores Rubro Negras
Árvores Rubro NegrasÁrvores Rubro Negras
Árvores Rubro Negras
 

Semelhante a Curso Inteligência Artificial - Parte 2 -

Semelhante a Curso Inteligência Artificial - Parte 2 - (10)

Rlm
RlmRlm
Rlm
 
Raciocínio lógico argumentativo
Raciocínio lógico argumentativoRaciocínio lógico argumentativo
Raciocínio lógico argumentativo
 
m60
m60m60
m60
 
Bizu Concurso
Bizu ConcursoBizu Concurso
Bizu Concurso
 
Cadernodequestes ano2004
Cadernodequestes ano2004Cadernodequestes ano2004
Cadernodequestes ano2004
 
Apostila raciocicnio-logico-para-concursos
Apostila raciocicnio-logico-para-concursosApostila raciocicnio-logico-para-concursos
Apostila raciocicnio-logico-para-concursos
 
Apostila raciocicnio-logico-para-concursos
Apostila raciocicnio-logico-para-concursosApostila raciocicnio-logico-para-concursos
Apostila raciocicnio-logico-para-concursos
 
Apostila raciocicnio-logico-para-concursos
Apostila raciocicnio-logico-para-concursosApostila raciocicnio-logico-para-concursos
Apostila raciocicnio-logico-para-concursos
 
trabalho2 (Logica Computacao).ppt
trabalho2 (Logica Computacao).ppttrabalho2 (Logica Computacao).ppt
trabalho2 (Logica Computacao).ppt
 
Apostila logica equivalencias-logicas
Apostila logica equivalencias-logicasApostila logica equivalencias-logicas
Apostila logica equivalencias-logicas
 

Mais de ronaldo ramos

javascript_funcional.pdf
javascript_funcional.pdfjavascript_funcional.pdf
javascript_funcional.pdfronaldo ramos
 
python_funcional.pdf
python_funcional.pdfpython_funcional.pdf
python_funcional.pdfronaldo ramos
 
paradigmas_de_programacao_2_X.pdf
paradigmas_de_programacao_2_X.pdfparadigmas_de_programacao_2_X.pdf
paradigmas_de_programacao_2_X.pdfronaldo ramos
 
paradigmas_de_programacao_1_X.pdf
paradigmas_de_programacao_1_X.pdfparadigmas_de_programacao_1_X.pdf
paradigmas_de_programacao_1_X.pdfronaldo ramos
 
paradigmas_de_programacao.pdf
paradigmas_de_programacao.pdfparadigmas_de_programacao.pdf
paradigmas_de_programacao.pdfronaldo ramos
 
paradigmas_de_programacao_3_X.pdf
paradigmas_de_programacao_3_X.pdfparadigmas_de_programacao_3_X.pdf
paradigmas_de_programacao_3_X.pdfronaldo ramos
 
python_funcional.pdf
python_funcional.pdfpython_funcional.pdf
python_funcional.pdfronaldo ramos
 
48-aula48-modelosTemporais.pdf
48-aula48-modelosTemporais.pdf48-aula48-modelosTemporais.pdf
48-aula48-modelosTemporais.pdfronaldo ramos
 
47-aula47-fuzzy-aplicacao.pdf
47-aula47-fuzzy-aplicacao.pdf47-aula47-fuzzy-aplicacao.pdf
47-aula47-fuzzy-aplicacao.pdfronaldo ramos
 

Mais de ronaldo ramos (20)

03_lisp.pdf
03_lisp.pdf03_lisp.pdf
03_lisp.pdf
 
02_lisp.pdf
02_lisp.pdf02_lisp.pdf
02_lisp.pdf
 
01_lisp.pdf
01_lisp.pdf01_lisp.pdf
01_lisp.pdf
 
javascript_funcional.pdf
javascript_funcional.pdfjavascript_funcional.pdf
javascript_funcional.pdf
 
python_funcional.pdf
python_funcional.pdfpython_funcional.pdf
python_funcional.pdf
 
_001_introducao.pdf
_001_introducao.pdf_001_introducao.pdf
_001_introducao.pdf
 
paradigmas_de_programacao_2_X.pdf
paradigmas_de_programacao_2_X.pdfparadigmas_de_programacao_2_X.pdf
paradigmas_de_programacao_2_X.pdf
 
paradigmas_de_programacao_1_X.pdf
paradigmas_de_programacao_1_X.pdfparadigmas_de_programacao_1_X.pdf
paradigmas_de_programacao_1_X.pdf
 
paradigmas_de_programacao.pdf
paradigmas_de_programacao.pdfparadigmas_de_programacao.pdf
paradigmas_de_programacao.pdf
 
paradigmas_de_programacao_3_X.pdf
paradigmas_de_programacao_3_X.pdfparadigmas_de_programacao_3_X.pdf
paradigmas_de_programacao_3_X.pdf
 
python_funcional.pdf
python_funcional.pdfpython_funcional.pdf
python_funcional.pdf
 
40-aula40.pdf
40-aula40.pdf40-aula40.pdf
40-aula40.pdf
 
43-aula43.pdf
43-aula43.pdf43-aula43.pdf
43-aula43.pdf
 
48-aula48-modelosTemporais.pdf
48-aula48-modelosTemporais.pdf48-aula48-modelosTemporais.pdf
48-aula48-modelosTemporais.pdf
 
47-aula47-fuzzy-aplicacao.pdf
47-aula47-fuzzy-aplicacao.pdf47-aula47-fuzzy-aplicacao.pdf
47-aula47-fuzzy-aplicacao.pdf
 
46-aula46-fuzzy.pdf
46-aula46-fuzzy.pdf46-aula46-fuzzy.pdf
46-aula46-fuzzy.pdf
 
42-aula42.pdf
42-aula42.pdf42-aula42.pdf
42-aula42.pdf
 
39-aula39.pdf
39-aula39.pdf39-aula39.pdf
39-aula39.pdf
 
38-aula38.pdf
38-aula38.pdf38-aula38.pdf
38-aula38.pdf
 
36-aula36.pdf
36-aula36.pdf36-aula36.pdf
36-aula36.pdf
 

Último

PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxTainTorres4
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
VARIEDADES LINGUÍSTICAS - 1. pptx
VARIEDADES        LINGUÍSTICAS - 1. pptxVARIEDADES        LINGUÍSTICAS - 1. pptx
VARIEDADES LINGUÍSTICAS - 1. pptxMarlene Cunhada
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamentalAntônia marta Silvestre da Silva
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - DissertaçãoMaiteFerreira4
 

Último (20)

PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
VARIEDADES LINGUÍSTICAS - 1. pptx
VARIEDADES        LINGUÍSTICAS - 1. pptxVARIEDADES        LINGUÍSTICAS - 1. pptx
VARIEDADES LINGUÍSTICAS - 1. pptx
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
 
análise de redação completa - Dissertação
análise de redação completa - Dissertaçãoanálise de redação completa - Dissertação
análise de redação completa - Dissertação
 

Curso Inteligência Artificial - Parte 2 -

  • 1. 1 Inteligência Artificial (parte II) Ronaldo F. Ramos, Dr ronaldo@cefet-ce.br Adaptado de : aima.cs.berkeley.edu
  • 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
  • 8. 8 Explorando o mundo de Wumpus
  • 9. 9 Explorando o mundo de Wumpus
  • 10. 10 Explorando o mundo de Wumpus
  • 11. 11 Explorando o mundo de Wumpus
  • 12. 12 Explorando o mundo de Wumpus
  • 13. 13 Explorando o mundo de Wumpus
  • 14. 14 Explorando o mundo de Wumpus
  • 15. 15 Explorando o mundo de Wumpus
  • 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
  • 21. 21 Modelos Wumpus ! KB = Regras do mundo wumpus + observações
  • 22. 22 Modelos Wumpus ! KB = Regras do Mundo Wumpus + observações ! α1 = "[1,2] é seguro", KB ╞ α1, provado por checagem do modelo
  • 23. 23 Modelos Wumpus ! KB = Regras do Mundo Wumpus + observações
  • 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
  • 38. 38 Exemplo KB = (B1,1 ⇔ (P1,2∨ P2,1)) ∧¬ B1,1 α = ¬P1,2
  • 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
  • 50. 50 Encadeamento pra frente Completo e consistente
  • 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)
  • 70. 70 Problemas de difícil satisfazibilidade
  • 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, …
  • 80. 80 Lógicas em geral
  • 81. 81 Sintaxe da LPO ! Constantes KingJohn, 2, NUS,... ! Predicados Brother, >,... ! Funções Sqrt, LeftLegOf,... ! Variáveis x, y, a, b,... ! Conectivos ¬, ⇒, ∧, ∨, ⇔ ! Igualdade = ! Quantificadores ∀, ∃
  • 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)
  • 83. 83 Sentenças complexas ! Sentenças complexas são feitas a partir de sentenças atômicas usando conectivos ¬S, S1 ∧ S2, S1 ∨ S2, S1 ⇒ S2, S1 ⇔ S2, Ex. Irmão(KingJohn,Richard) ⇒ Irmão(Richard,KingJohn) >(1,2) ∨ ≤ (1,2) >(1,2) ∧ ¬ >(1,2)
  • 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
  • 99. 99 Domínio dos circuitos eletrônicos Somador de 1 bit
  • 100. 100 Domínio dos circuitos eletrônicos 1. Identifique a tarefa ! O circuito soma corretamente? (verificação do circuito) 2. Reunir o conhecimento relevante ! Composto de fios e portas; Tipos de portas(AND, OR, XOR, NOT) ! Irrelevante: tamanho, desenho, cor e custo das portas 3. Definir o vocabulário ! Alternativas: Type(X1) = XOR Type(X1, XOR) XOR(X1)
  • 101. 101 Domínio dos circuitos eletrônicos 1. Codificar o conhecimento geral do problema ! ∀t1,t2 Connectados(t1, t2) ⇒ Sinal(t1) = Sinal(t2) ! ∀t Sinal(t) = 1 ∨ Sinal(t) = 0 ! 1 ≠ 0 ! ∀t1,t2 Conectados(t1, t2) ⇒ Conectados(t2, t1) ! ∀g Tipo(g) = OR ⇒ Sinal(Saida(1,g)) = 1 ⇔ ∃n Sinal(Entrada(n,g)) = 1 ! ∀g Tipo(g) = AND ⇒ Sinal(Saida(1,g)) = 0 ⇔ ∃n Sinal(Entrada(n,g)) = 0 ! ∀g Tipo(g) = XOR ⇒ Sinal(Saida(1,g)) = 1 ⇔ Sinal(Entrada(1,g)) ≠ Sinal(Entrada(2,g)) ! ∀g Tipo(g) = NOT ⇒ Sinal(Saida(1,g)) ≠ Sinal(Entrada(1,g))
  • 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
  • 105. Inferência em LPO Chapter 9
  • 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 }
  • 115. 115 O algoritmo de unificação
  • 116. 116 O algoritmo de unificação
  • 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)
  • 120. 120 Algoritmo de encadeamento pra frente
  • 121. 121 Prova de encadeamento pra frente
  • 122. 122 Prova de encadeamento pra frente
  • 123. 123 Prova de encadeamento pra frente
  • 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)]
  • 142. 142 Prova por resolução de cláusulas definidas