Lógica de Primeira Ordem (LPO)
Gilzamir F. GomesVisão Geral
I Por que LPO?
I Sintaxe e Semântica da LPO I Brincando com as sentenças I Mundo de Wumpus em LPO
Pós e Contras da Lógica Proposicional
I :) Lógica proposicional é declarativa: pedaços de sintaxe
correspondem a fatos
I :) Lógica proposicional permite informações
parciais/disjuntivas/negadas (diferente da maioria das estruturas de dados e base de dados)
I :) Lógica proposicional é composicional:
I Signicado de B1,1∧P1,2 é derivado do signicado de B1,1 e de P1,2
I :) Signicado de lógica proposicional é independente de
contexto
I (diferente de linguagens naturais, onde o signicado depende do contexto)
I :( Lógica Proposicional tem um poder de expressão limitado
(diferente de linguagens naturais)
I Por exemplo: não podemos dizer poços causam briza em salas adjacentes, exceto por escrever uma setença para cada quadrado
Lógica de Primeira Ordem
I Enquanto a lógica proposicional assume que o mundo contém
fatos, a lógica de primeira ordem (assim como a linguagem natural) assume que o mundo contém:
I Objetos: pessoas, casas, números, teorias, Silvio Santos, cores, jogos de futebol, guerras, séculos ...
I Relações: vermelho, primo, irmão de, maior que, dentro de, parte de, tem cor, ocorreu após, próprio, está entre, ... I Funções: pai de, melhor amigo, m de, um mais dois, ... I ...
Sintaxe da LPO: Elementos Básicos
I Constantes: ReiJoao, 2, ... I Predicados: Irmao, >, ...
I Funções: RaizQuadrada, PernaEsquerdaDe, ... I Variáveis: x, y, a, b, ...
I Conectívos: ∧ ∨ ¬ ⇒ ⇔ I Iqualdade: =
Sentênças Atômicas
I Sentênça Atômica = predicado(termo1, ...,termon) ou termo1 = termo2
I Term = fun¸c˜ao(termo1, ...,termon) ou constante ou vari´avel
I Exemplos: Irmao(ReiJoao, RicardoCoracaoDeLeao),
> (Tamanho(PernaEsquerdaDe(Ricardo)), Tamanho(PernaEsquerdaDe(ReiJoao)))
Sentenças Complexas
I Sentenças complexas são feitas de sentenças atômicas
utilizando conectivos
I ¬S, S1∧ S2, S1∨S2, S1⇒S2, S1⇔S2
I Exemplo: Irmao(ReiJoao, Ricardo) ⇒ Irmao(Ricardo,
Verdade em Lógica de Primeira Ordem
I Sentenças são verdadeiras em relação a um modelo e a uma
interpretação
I Modelos contém ≥ 1 objetos (elementos do domínio) e
relações entre eles
I Especica referências para:
I Símbolos de constantes: objetos I Símbolos de predicados: relações I Símbolos de função: relações de função
I Uma sentença atômica predicado(termo1, ..., termon) é verdadeira se e somente se os objetos referenciados por
Exemplo: Denição da Verdade
I Considere uma interpretação em que:
I Ricardo → Ricardo o coração de leão I Joao → o maldito rei João
I Irmao → a relação de irmandade
I Sob esta interpretação, Irmao(Ricardo, Joao) é verdade no
caso em que Ricardo o Coraçao de Leão e o maldito Rei João estão na relação de irmandade no modelo.
Modelos para LPO: Muitos!
I Consequência Lógica em Lógica Proposicional pode ser
calculada pela enumeração de modelos
I Podemos enumerar os modelos para LPO para um dado
vocabulário da base de conhecimento:
I Calcular consequência lógica pela enumeração de modelos da
Quanticação Universal
I ∀ <vari´aveis >< senten¸ca >
I Todo mundo na UVA é Inteligente:
I ∀x Na(x, UVA) ⇒ Inteligente(x)
I ∀x P é verdadeira em um modelo m se e somente se P é verdadeira com x sendo cada objeto possível no modelo
I Grosseiramente falando, é equivalente a uma conjunção de
instanciações de P
I (Na(ReiJoao, UVA) ⇒ Inteligente(ReiJoao)) I ∧(Na(Ricardo, UVA) ⇒ Inteligente(Ricardo)) I ∧(Na(UVA, UVA) ⇒ Inteligente(UVA)) I ∧...
Um Erro Comum a Ser Evitado
I Tipicamente, ⇒ é o conectivo principal com ∀
I Um erro comum: utilizar ∧ como o principal conectivo com ∀
I ∀x Na(x, UVA) ∧ Inteligente(x)
Quanticação Existencial
I ∃ <variables >< senten¸ca >
I Alguém que está na UVA é Inteligente:
I ∃x Na(x, UVA) ∧ Inteligente(x)
I ∃x P é verdadeira em um modelo m se e somente se P é verdadeira com x sendo algum objeto possível no modelo
I Grosseiramente falando, é equivalente a uma disjunção de
Outro erro comum a ser evitado
I Tipicamente, ∧ é o principal conectivo com ∃
I Erro comum: utilizar ⇒ como principal conectivo de ∃:
I ∃x Na(x, UVA) ⇒ Inteligente(x)
Propriedade dos Quanticadores
I ∀x ∀y é o mesmo que ∀y ∀x (Por que?)
I ∃x ∃y é o mesmo que ∃y ∃x (Por que?)
I ∃x ∀y não é o mesmo que ∀y ∃x I ∃x ∀y Ama(x, y)
I Há uma pessoa que ama qualquer outra no mundo I ∀y ∃x Ama(x, y)
I Todo mundo é amado por ao menos uma pessoa
I Dualidade: um quanticador pode ser expresso por meio de
outro quanticador
I ∀x Gosta(x, Sorvete) ou ¬∃x ¬Gosta(x, Sorvete) I ∃x Gosta(x, Alface) ou ¬∀x ¬Gosta(x, Alface)
Brincando com Sentenças
Brincando com Sentenças
I Irmãos são Parentes
Brincando com Sentenças
I Irmãos são Parentes
I ∀x, y Irmao(x, y) ⇒ Parente(x, y)
Brincando com Sentenças
I Irmãos são Parentes
I ∀x, y Irmao(x, y) ⇒ Parente(x, y).
I Parentesco é simétrico
Brincando com Sentenças
I Irmãos são Parentes
I ∀x, y Irmao(x, y) ⇒ Parente(x, y).
I Parentesco é simétrico
I ∀x, y Parente(x, y) ⇔Parente(y, x).
Brincando com Sentenças
I Irmãos são Parentes
I ∀x, y Irmao(x, y) ⇒ Parente(x, y).
I Parentesco é simétrico
I ∀x, y Parente(x, y) ⇔Parente(y, x).
I Mãe de alguém é um progenitor feminino deste alguém
Brincando com Sentenças
I Irmãos são Parentes
I ∀x, y Irmao(x, y) ⇒ Parente(x, y).
I Parentesco é simétrico
I ∀x, y Parente(x, y) ⇔Parente(y, x).
I Mãe de alguém é um progenitor feminino deste alguém
I ∀x, y Mae(x, y) ⇔ (Feminino(x) ∧ Progenitor(x, y)).
Brincando com Sentenças
I Irmãos são Parentes
I ∀x, y Irmao(x, y) ⇒ Parente(x, y).
I Parentesco é simétrico
I ∀x, y Parente(x, y) ⇔Parente(y, x).
I Mãe de alguém é um progenitor feminino deste alguém
I ∀x, y Mae(x, y) ⇔ (Feminino(x) ∧ Progenitor(x, y)).
I Um primo legitimo é um lho de um irmão de um progenitor
I ∀x, y PrimoLegitimo(x, y) ⇔ ∃p, ps
Igualdade
I term1=term2 é verdadeiro sob uma dada interpretação
I Se e somente se term1 e term2 se refere a um mesmo objeto
I Exemplos:
I 1 = 2 e ∀x × (RaizQuadrada(x), RaizQuadrada(x)) = x são satisfatíveiss
I 2 = 2 é valido
I Por exemplo, denição de Irmão em termos de progenitores: I ∀x, y Irm˜ao(x, y) ⇔
[¬(x = y) ∧ ∃m, f ¬(m = f ) ∧ Progenitor(m, x) ∧ Progenitor(f , x) ∧ Progenitor(m, y) ∧ Progenitor(f , y)]
Interagindo com uma Base de Conhecimento em LPO
I Suponha que o agente do mundo de wumpus esteja utilizando
uma base de conhecimento em LPO e perceba um odor e uma brisa (mas não brilho) no instante t = 5:
I Tell(KB, Percept([Smell, Breeze, None], 5)) I Ask(KB, ∃a Action(a,5))
I Isto é, a base conhecimento (KB) permite alguma ação em
particular no instante t = 5?
I Resposta: Sim, {a, Shoot} ← substituição (lista de ligação)
I Dada uma sentença S e uma substituição σ, Sσ denota o
resultado de aplicar σ em S; por exemplo: I S = Esposa(x, y)
I σ = {x/Hillary, y/Bill) I Sσ = Esposa(Hillary, Bill)
Base de Conhecimento para o Mundo de Wumpus
I Percepção
I ∀b, g, t Percept([Smell, b, g], t) ⇒ Smell(t) I ∀s, b, t Percept([s, b, Glitter], t) ⇒ AtGold(t) I Reexivo: ∀t AtGold(t) ⇒ Action(Grab, t)
I Reexivo com estado interno: nós já temos o ouro? I ∀t AtGold(t) ∧ ¬Holding(Gold, t) ⇒ Action(Grab, t) I Holding(Gold, t) não pode ser observado
Deduzindo Propriedades Ocultas
I Propriedades de localização
I ∀x, t At(Agent, x, t) ∧ Smelt(t) ⇒ Smelly(x) I ∀x, t At(Agent, x, t) ∧ Breeze(t) ⇒ Breezy(x)
I Quadrados próximos de um poço são ventilados:
I Regra de diagnóstico infere causa do efeito I ∀y Breezy(y) ⇒ ∃x Pit(x) ∧ Adjacent(x, y) I Regra Causal infere efeito da causa
I ∀x, y Pit(x) ∧ Adjacent(x, y) ⇒ Breezy(y) I Nenhuma destas e completa
I Denição para o predicado Breezy:
Matento o Histórico de Mudanças
I Fatos acontecem em situações, em vez de eternamente:
I Exemplo: Holding(Gold, Now) em vez de Holding(Gold)
I Cálculo de situações é uma forma de representação de
mudanças em LPO:
I Adicione um argumento de situação para cada predicado não-eterno
I Por exemplo: Now em Holding(Gold, Now) denota uma situação
I Situações estão conectadas pela funçao Result
Descrevendo Ações I
I Axioma de Efeito descreve mudanças devido a ações
I ∀s AtGold(s) ⇒ Holding(Gold, Result(Grab, s))
I Axioma do Quadro descreve não-mudanças devido a ações:
I ∀s HaveArrow(s) ⇒ HaveArrow(Result(Grab, s))
I Problema do Quadro: encontrar uma forma elegante para
controlar não-mudanças:
I representaçao: evitar axioma do quadro
I Inferência: evitar repetidas ações copia-sobre para manter histórico de estados
I Problema de Qualicação: descriçoes verdadeiras de ações
reais requerem innitas advertências
I O que fazer se o ouro está escorregadio ou preso com pregos ...
I Problema da Ramicaçao: ações reais tem muitas
Descrevendo Ações II
I Axioma do estado sucessor resolve o problema do quadro
representacional
I Cada axioma é sobre um predicado (não uma ação por si):
I P true subseqüentemente ⇔ Uma ação faz P verdadeiro ∨ P já é verdadeiro e nenhuma ação faz P falso
I Para agarrar o ouro:
I ∀a, s Holding(Gold, Result(a, s)) ⇔ [(a =
Fazendo Planos
I Condição inicial da base de conhecimento:
I At(Agent, [1, 1], S0) I At(Gold, [1, 2], S0)
I Consulta: Ask(KB, ∃s Holding(Gold, s))
I Isto é, em qual situação estarei agarrando o ouro?
I Resposta: {s/Result(Grab, Result(Forward, S0))} I Isto é, vai para frente e então agarra o ouro
I É assumido que o agente está interessado em planos
começando em S0 e que S0 é a única situaçao descrita na base
Fazendo Planos: Um caminho melhor
I Representação de planos como sequências de ações:
[a1,a2, ...,an]
I PlanResult(p, s) é o resultado de executar p em s I Então, a consulta
Ask(KB, ∃p Holding(Gold, PlanResult(p, S0)))tem a solução
{p/[Forward, Grab]}
I Denição de PlanResult em termos de Result:
I ∀s PlanResult([], s) = s
I ∀a, p, s PlanResult([a|p], s) = PlanResult(p, Result(a, s))
I Sistemas de planejamento são sistemas de raciocínio de
propósito especial para fazer este tipo de inferência mais ecientemente do que sistemas de raciocínio de propósito geral.