SlideShare uma empresa Scribd logo
1 de 177
Baixar para ler offline
Inteligência Artificial – ACH2016
Aula 12 – Resolução e Forward Chaining em
Lógica de Primeira Ordem
Norton Trevisan Roman
(norton@usp.br)
9 de abril de 2019
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 1 / 34
Lógica de Primeira Ordem – Resolução
Passos
∀x∃y P(x) ⇒ R(x, y)
¬P(x) ∨ R(x, F(x))
1 Converter de LPO para forma clausal
Generalização da Forma Normal
Conjuntiva para LPO
Uma conjunção de disjunções
Sem quantificadores
2 Determinar que variáveis substituir por quais quando
da resolução
Processo chamado Unificação
3 Executar a resolução
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 2 / 34
Lógica de Primeira Ordem – Resolução
Passos
∀x∃y P(x) ⇒ R(x, y)
¬P(x) ∨ R(x, F(x))
1 Converter de LPO para forma clausal 4
Generalização da Forma Normal
Conjuntiva para LPO
Uma conjunção de disjunções
Sem quantificadores
2 Determinar que variáveis substituir por quais quando
da resolução
Processo chamado Unificação
3 Executar a resolução
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 2 / 34
Lógica de Primeira Ordem – Resolução
Passos
∀x∃y P(x) ⇒ R(x, y)
¬P(x) ∨ R(x, F(x))
1 Converter de LPO para forma clausal 4
Generalização da Forma Normal
Conjuntiva para LPO
Uma conjunção de disjunções
Sem quantificadores
2 Determinar que variáveis substituir por quais quando
da resolução 4
Processo chamado Unificação
3 Executar a resolução
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 2 / 34
Lógica de Primeira Ordem – Resolução
Passos
∀x∃y P(x) ⇒ R(x, y)
¬P(x) ∨ R(x, F(x))
1 Converter de LPO para forma clausal 4
Generalização da Forma Normal
Conjuntiva para LPO
Uma conjunção de disjunções
Sem quantificadores
2 Determinar que variáveis substituir por quais quando
da resolução 4
Processo chamado Unificação
3 Executar a resolução +
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 2 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência para resolução
α ∨ φ UMG(φ, ψ) = θ
¬ψ ∨ β
(α ∨ β)θ
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 3 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência para resolução
Como em lógica pro-
posicional, unifica
literais complementares
α ∨ φ UMG(φ, ψ) = θ
¬ψ ∨ β
(α ∨ β)θ
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 3 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência para resolução
Literais complemen-
tares em LPO: se um
pode ser unificado
à negação do outro
α ∨ φ UMG(φ, ψ) = θ
¬ψ ∨ β
(α ∨ β)θ
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 3 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência para resolução
Literais complemen-
tares em LPO: se um
pode ser unificado
à negação do outro
α ∨ φ UMG(φ, ψ) = θ
¬ψ ∨ β
(α ∨ β)θ
Se tivermos α ∨ φ e ¬ψ ∨ β, e pudermos unificar φ e ψ com
θ, então podemos concluir α ∨ β com a substituição θ
aplicada a eles
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 3 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência para resolução
Literais complemen-
tares em LPO: se um
pode ser unificado
à negação do outro
α ∨ φ UMG(φ, ψ) = θ
¬ψ ∨ β
(α ∨ β)θ
Se tivermos α ∨ φ e ¬ψ ∨ β, e pudermos unificar φ e ψ com
θ, então podemos concluir α ∨ β com a substituição θ
aplicada a eles
Ambas cláusulas devem estar padronizadas
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 3 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência para resolução
Literais complemen-
tares em LPO: se um
pode ser unificado
à negação do outro
α ∨ φ UMG(φ, ψ) = θ
¬ψ ∨ β
(α ∨ β)θ
Se tivermos α ∨ φ e ¬ψ ∨ β, e pudermos unificar φ e ψ com
θ, então podemos concluir α ∨ β com a substituição θ
aplicada a eles
Ambas cláusulas devem estar padronizadas
Ou seja, sem variáveis em comum
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 3 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência: Exemplo
P(x) ∨ Q(x, y)
¬P(A) ∨ R(B, x)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 4 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência: Exemplo
P(x) ∨ Q(x, y)
¬P(A) ∨ R(B, x)
∀x, y P(x) ∨ Q(x, y)
∀x ¬P(A) ∨ R(B, x)
Lembre que há um quantificador
universal implı́cito em cada cláusula
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 4 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência: Exemplo
P(x) ∨ Q(x, y)
¬P(A) ∨ R(B, x)
∀x, y P(x) ∨ Q(x, y)
∀x ¬P(A) ∨ R(B, x)
Lembre que há um quantificador
universal implı́cito em cada cláusula
Os x’s nas duas
cláusulas são diferentes
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 4 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência: Exemplo
P(x) ∨ Q(x, y)
¬P(A) ∨ R(B, x)
∀x, y P(x) ∨ Q(x, y)
∀x ¬P(A) ∨ R(B, x)
Lembre que há um quantificador
universal implı́cito em cada cláusula
Os x’s nas duas
cláusulas são diferentes
∀x, y P(x) ∨ Q(x, y)
∀x1 ¬P(A) ∨ R(B, x1)
Para evitar confusão, re-
nomeamos as variáveis
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 4 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência: Exemplo
P(x) ∨ Q(x, y)
¬P(A) ∨ R(B, x)
∀x, y P(x) ∨ Q(x, y)
∀x ¬P(A) ∨ R(B, x)
Lembre que há um quantificador
universal implı́cito em cada cláusula
Os x’s nas duas
cláusulas são diferentes
∀x, y P(x) ∨ Q(x, y)
∀x1 ¬P(A) ∨ R(B, x1)
Para evitar confusão, re-
nomeamos as variáveis
P(x) ∨ Q(x, y)
¬P(A) ∨ R(B, x1)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 4 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência: Exemplo
P(x) ∨ Q(x, y)
¬P(A) ∨ R(B, x1)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 5 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência: Exemplo
P(x) ∨ Q(x, y)
¬P(A) ∨ R(B, x1)
α ∨ φ UMG(φ, ψ) = θ
¬ψ ∨ β
(α ∨ β)θ
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 5 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência: Exemplo
P(x) ∨ Q(x, y)
¬P(A) ∨ R(B, x1)
α ∨ φ UMG(φ, ψ) = θ
¬ψ ∨ β
(α ∨ β)θ
Buscamos dois literais
que neguem um o outro
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 5 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência: Exemplo
P(x) ∨ Q(x, y)
¬P(A) ∨ R(B, x1)
α ∨ φ UMG(φ, ψ) = θ
¬ψ ∨ β
(α ∨ β)θ
E tentamos unificá-los
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 5 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência: Exemplo
P(x) ∨ Q(x, y)
¬P(A) ∨ R(B, x1)
α ∨ φ UMG(φ, ψ) = θ
¬ψ ∨ β
(α ∨ β)θ
E tentamos unificá-los
P(x) ∨ Q(x, y) θ =
¬P(A) ∨ R(B, x1)
(Q(x, y) ∨ R(B, x1))θ
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 5 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência: Exemplo
P(x) ∨ Q(x, y)
¬P(A) ∨ R(B, x1)
α ∨ φ UMG(φ, ψ) = θ
¬ψ ∨ β
(α ∨ β)θ
E tentamos unificá-los
P(x) ∨ Q(x, y) θ = {x/A}
¬P(A) ∨ R(B, x1)
(Q(x, y) ∨ R(B, x1))θ
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 5 / 34
Lógica de Primeira Ordem – Resolução
Regra de inferência: Exemplo
P(x) ∨ Q(x, y)
¬P(A) ∨ R(B, x1)
α ∨ φ UMG(φ, ψ) = θ
¬ψ ∨ β
(α ∨ β)θ
E tentamos unificá-los
P(x) ∨ Q(x, y) θ = {x/A}
¬P(A) ∨ R(B, x1)
(Q(x, y) ∨ R(B, x1))θ
P(A) ∨ Q(A, y)
¬P(A) ∨ R(B, x1)
Q(A, y) ∨ R(B, x1)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 5 / 34
Lógica de Primeira Ordem – Resolução
Resolução: Exemplo
Imagine que temos a seguinte base:
João tem um cachorro
Quem tem um cachorro é um amante dos animais
Amantes dos animais não os matam
João matou Bolão ou a curiosidade o fez
Bolão é um gato
Todo gato é um animal
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 6 / 34
Lógica de Primeira Ordem – Resolução
Resolução: Exemplo
Imagine que temos a seguinte base:
João tem um cachorro
Quem tem um cachorro é um amante dos animais
Amantes dos animais não os matam
João matou Bolão ou a curiosidade o fez
Bolão é um gato
Todo gato é um animal
Queremos então saber:
A curiosidade matou Bolão?
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 6 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Construindo a base
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 7 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Construindo a base
João tem um cachorro
∃x Cão(x) ∧ Ter(João, x)
Cão(Totó) ∧ Ter(João, Totó)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 7 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Construindo a base
João tem um cachorro
∃x Cão(x) ∧ Ter(João, x)
Cão(Totó) ∧ Ter(João, Totó)
Quem tem um cachorro é um amante dos animais
∀x (∃y Cão(y) ∧ Ter(x, y)) ⇒ AmaAnimais(x)
∀x (¬∃y Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x)
∀x∀y ¬(Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x)
∀x∀y ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x)
¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 7 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Construindo a base
João tem um cachorro
∃x Cão(x) ∧ Ter(João, x)
Cão(Totó) ∧ Ter(João, Totó)
Quem tem um cachorro é um amante dos animais
∀x (∃y Cão(y) ∧ Ter(x, y)) ⇒ AmaAnimais(x)
∀x (¬∃y Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x)
∀x∀y ¬(Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x)
∀x∀y ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x)
¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x)
Amantes dos animais não os matam
∀x AmaAnimais(x) ⇒ (∀y Animal(y) ⇒ ¬Matar(x, y))
∀x ¬AmaAnimais(x) ∨ (∀y Animal(y) ⇒ ¬Matar(x, y))
∀x ¬AmaAnimais(x) ∨ (∀y ¬Animal(y) ∨ ¬Matar(x, y))
¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 7 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Construindo a base
João tem um cachorro
∃x Cão(x) ∧ Ter(João, x)
Cão(Totó) ∧ Ter(João, Totó)
Quem tem um cachorro é um amante dos animais
∀x (∃y Cão(y) ∧ Ter(x, y)) ⇒ AmaAnimais(x)
∀x (¬∃y Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x)
∀x∀y ¬(Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x)
∀x∀y ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x)
¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x)
Amantes dos animais não os matam
∀x AmaAnimais(x) ⇒ (∀y Animal(y) ⇒ ¬Matar(x, y))
∀x ¬AmaAnimais(x) ∨ (∀y Animal(y) ⇒ ¬Matar(x, y))
∀x ¬AmaAnimais(x) ∨ (∀y ¬Animal(y) ∨ ¬Matar(x, y))
¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y)
João matou Bolão ou a curiosidade o fez
Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 7 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Construindo a base
João tem um cachorro
∃x Cão(x) ∧ Ter(João, x)
Cão(Totó) ∧ Ter(João, Totó)
Quem tem um cachorro é um amante dos animais
∀x (∃y Cão(y) ∧ Ter(x, y)) ⇒ AmaAnimais(x)
∀x (¬∃y Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x)
∀x∀y ¬(Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x)
∀x∀y ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x)
¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x)
Amantes dos animais não os matam
∀x AmaAnimais(x) ⇒ (∀y Animal(y) ⇒ ¬Matar(x, y))
∀x ¬AmaAnimais(x) ∨ (∀y Animal(y) ⇒ ¬Matar(x, y))
∀x ¬AmaAnimais(x) ∨ (∀y ¬Animal(y) ∨ ¬Matar(x, y))
¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y)
João matou Bolão ou a curiosidade o fez
Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão)
Bolão é um gato
Gato(Bolão)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 7 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Construindo a base
João tem um cachorro
∃x Cão(x) ∧ Ter(João, x)
Cão(Totó) ∧ Ter(João, Totó)
Quem tem um cachorro é um amante dos animais
∀x (∃y Cão(y) ∧ Ter(x, y)) ⇒ AmaAnimais(x)
∀x (¬∃y Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x)
∀x∀y ¬(Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x)
∀x∀y ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x)
¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x)
Amantes dos animais não os matam
∀x AmaAnimais(x) ⇒ (∀y Animal(y) ⇒ ¬Matar(x, y))
∀x ¬AmaAnimais(x) ∨ (∀y Animal(y) ⇒ ¬Matar(x, y))
∀x ¬AmaAnimais(x) ∨ (∀y ¬Animal(y) ∨ ¬Matar(x, y))
¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y)
João matou Bolão ou a curiosidade o fez
Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão)
Bolão é um gato
Gato(Bolão)
Todo gato é um animal
∀x Gato(x) ⇒ Animal(x)
∀x ¬Gato(x) ∨ Animal(x)
¬Gato(x) ∨ Animal(x)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 7 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Inferência
Sentença Ação
1 Cão(Totó) Axioma
2 Ter(João, Totó) Axioma
3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma
4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma
5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma
6 Gato(Bolão) Axioma
7 ¬Gato(x) ∨ Animal(x) Axioma
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 8 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Inferência
Sentença Ação
1 Cão(Totó) Axioma
2 Ter(João, Totó) Axioma
3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma
4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma
5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma
6 Gato(Bolão) Axioma
7 ¬Gato(x) ∨ Animal(x) Axioma
A curiosidade matou Bolão?
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 8 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Inferência
Sentença Ação
1 Cão(Totó) Axioma
2 Ter(João, Totó) Axioma
3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma
4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma
5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma
6 Gato(Bolão) Axioma
7 ¬Gato(x) ∨ Animal(x) Axioma
A curiosidade matou Bolão?
Se queremos provar isso, incluı́mos sua negação na base (ou
seja, assumimos o oposto disso)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 8 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Inferência
Sentença Ação
1 Cão(Totó) Axioma
2 Ter(João, Totó) Axioma
3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma
4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma
5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma
6 Gato(Bolão) Axioma
7 ¬Gato(x) ∨ Animal(x) Axioma
8 ¬Matar(Curiosidade, Bolão) Negação
A curiosidade matou Bolão?
Se queremos provar isso, incluı́mos sua negação na base (ou
seja, assumimos o oposto disso)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 8 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Inferência
Sentença Ação
1 Cão(Totó) Axioma
2 Ter(João, Totó) Axioma
3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma
4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma
5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma
6 Gato(Bolão) Axioma
7 ¬Gato(x) ∨ Animal(x) Axioma
8 ¬Matar(Curiosidade, Bolão) Negação
Podemos então aplicar a regra da resolução a quaisquer
pares de linhas que contenham literais unificáveis
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 9 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Inferência
Sentença Ação
1 Cão(Totó) Axioma
2 Ter(João, Totó) Axioma
3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma
4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma
5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma
6 Gato(Bolão) Axioma
7 ¬Gato(x) ∨ Animal(x) Axioma
8 ¬Matar(Curiosidade, Bolão) Negação
Lembrando que a resolução prova que BC |= α através da
prova de que BC ∧ ¬α é insatisfatı́vel, ou seja, derivando a
cláusula vazia (falso)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 9 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Inferência
Sentença Ação
1 Cão(Totó) Axioma
2 Ter(João, Totó) Axioma
3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma
4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma
5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma
6 Gato(Bolão) Axioma
7 ¬Gato(x) ∨ Animal(x) Axioma
8 ¬Matar(Curiosidade, Bolão) Negação
Podemos começar usando a Heurı́stica do conjunto de
suporte: envolvemos a negação da conclusão na prova.
Resolvemos então 5 e 8
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 10 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Inferência
Sentença Ação
1 Cão(Totó) Axioma
2 Ter(João, Totó) Axioma
3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma
4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma
5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma
6 Gato(Bolão) Axioma
7 ¬Gato(x) ∨ Animal(x) Axioma
8 ¬Matar(Curiosidade, Bolão) Negação
9 Matar(João, Bolão) 5,8
Podemos começar usando a Heurı́stica do conjunto de
suporte: envolvemos a negação da conclusão na prova.
Resolvemos então 5 e 8
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 10 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Inferência
Sentença Ação
1 Cão(Totó) Axioma
2 Ter(João, Totó) Axioma
3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma
4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma
5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma
6 Gato(Bolão) Axioma
7 ¬Gato(x) ∨ Animal(x) Axioma
8 ¬Matar(Curiosidade, Bolão) Negação
9 Matar(João, Bolão) 5,8
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 11 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Inferência
Sentença Ação
1 Cão(Totó) Axioma
2 Ter(João, Totó) Axioma
3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma
4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma
5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma
6 Gato(Bolão) Axioma
7 ¬Gato(x) ∨ Animal(x) Axioma
8 ¬Matar(Curiosidade, Bolão) Negação
9 Matar(João, Bolão) 5,8
10 Animal(Bolão) 6,7 {x/Bolão}
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 11 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Inferência
Sentença Ação
1 Cão(Totó) Axioma
2 Ter(João, Totó) Axioma
3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma
4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma
5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma
6 Gato(Bolão) Axioma
7 ¬Gato(x) ∨ Animal(x) Axioma
8 ¬Matar(Curiosidade, Bolão) Negação
9 Matar(João, Bolão) 5,8
10 Animal(Bolão) 6,7 {x/Bolão}
11 ¬AmaAnimais(João) ∨ ¬Animal(Bolão) 4,9 {x/João, y/Bolão}
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 11 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Inferência
Sentença Ação
1 Cão(Totó) Axioma
2 Ter(João, Totó) Axioma
3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma
4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma
5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma
6 Gato(Bolão) Axioma
7 ¬Gato(x) ∨ Animal(x) Axioma
8 ¬Matar(Curiosidade, Bolão) Negação
9 Matar(João, Bolão) 5,8
10 Animal(Bolão) 6,7 {x/Bolão}
11 ¬AmaAnimais(João) ∨ ¬Animal(Bolão) 4,9 {x/João, y/Bolão}
12 ¬AmaAnimais(João) 10,11
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 11 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Inferência
Sentença Ação
1 Cão(Totó) Axioma
2 Ter(João, Totó) Axioma
3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma
4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma
5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma
6 Gato(Bolão) Axioma
7 ¬Gato(x) ∨ Animal(x) Axioma
8 ¬Matar(Curiosidade, Bolão) Negação
9 Matar(João, Bolão) 5,8
10 Animal(Bolão) 6,7 {x/Bolão}
11 ¬AmaAnimais(João) ∨ ¬Animal(Bolão) 4,9 {x/João, y/Bolão}
12 ¬AmaAnimais(João) 10,11
13 ¬Cão(y) ∨ ¬Ter(João, y) 3,12 {x/João}
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 11 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Inferência
Sentença Ação
1 Cão(Totó) Axioma
2 Ter(João, Totó) Axioma
3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma
4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma
5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma
6 Gato(Bolão) Axioma
7 ¬Gato(x) ∨ Animal(x) Axioma
8 ¬Matar(Curiosidade, Bolão) Negação
9 Matar(João, Bolão) 5,8
10 Animal(Bolão) 6,7 {x/Bolão}
11 ¬AmaAnimais(João) ∨ ¬Animal(Bolão) 4,9 {x/João, y/Bolão}
12 ¬AmaAnimais(João) 10,11
13 ¬Cão(y) ∨ ¬Ter(João, y) 3,12 {x/João}
14 ¬Cão(Totó) 13,2 {y/Totó}
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 11 / 34
Lógica de Primeira Ordem – Resolução
Exemplo: Inferência
Sentença Ação
1 Cão(Totó) Axioma
2 Ter(João, Totó) Axioma
3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma
4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma
5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma
6 Gato(Bolão) Axioma
7 ¬Gato(x) ∨ Animal(x) Axioma
8 ¬Matar(Curiosidade, Bolão) Negação
9 Matar(João, Bolão) 5,8
10 Animal(Bolão) 6,7 {x/Bolão}
11 ¬AmaAnimais(João) ∨ ¬Animal(Bolão) 4,9 {x/João, y/Bolão}
12 ¬AmaAnimais(João) 10,11
13 ¬Cão(y) ∨ ¬Ter(João, y) 3,12 {x/João}
14 ¬Cão(Totó) 13,2 {y/Totó}
15 falso 1,14
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 11 / 34
Lógica de Primeira Ordem – Resolução
Resolução Binária
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
Lógica de Primeira Ordem – Resolução
Resolução Binária
É a regra da resolução vista até agora
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
Lógica de Primeira Ordem – Resolução
Resolução Binária
É a regra da resolução vista até agora
Envolve apenas dois literais, um de cada cláusula resolvida
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
Lógica de Primeira Ordem – Resolução
Resolução Binária
É a regra da resolução vista até agora
Envolve apenas dois literais, um de cada cláusula resolvida
Problema: não é completa
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
Lógica de Primeira Ordem – Resolução
Resolução Binária
É a regra da resolução vista até agora
Envolve apenas dois literais, um de cada cláusula resolvida
Problema: não é completa
Há conjuntos de cláusulas insatisfatı́veis (falsas em todas as
interpretações) que não gerarão contradição através da
aplicação sucessiva da regra
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
Lógica de Primeira Ordem – Resolução
Resolução Binária
É a regra da resolução vista até agora
Envolve apenas dois literais, um de cada cláusula resolvida
Problema: não é completa
Há conjuntos de cláusulas insatisfatı́veis (falsas em todas as
interpretações) que não gerarão contradição através da
aplicação sucessiva da regra
Exemplo:
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
Lógica de Primeira Ordem – Resolução
Resolução Binária
É a regra da resolução vista até agora
Envolve apenas dois literais, um de cada cláusula resolvida
Problema: não é completa
Há conjuntos de cláusulas insatisfatı́veis (falsas em todas as
interpretações) que não gerarão contradição através da
aplicação sucessiva da regra
Exemplo:
Podemos obter uma contradição a partir dessas cláusulas?
P(x) ∨ P(y)
¬P(v) ∨ ¬P(w)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
Lógica de Primeira Ordem – Resolução
Resolução Binária
Base
É a regra da resolução vista até agora
Envolve apenas dois literais, um de cada cláusula resolvida
Problema: não é completa
Há conjuntos de cláusulas insatisfatı́veis (falsas em todas as
interpretações) que não gerarão contradição através da
aplicação sucessiva da regra
Exemplo:
Podemos obter uma contradição a partir dessas cláusulas?
P(x) ∨ P(y)
¬P(v) ∨ ¬P(w)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
Lógica de Primeira Ordem – Resolução
Resolução Binária
Negação do que queremos
provar (P(v) ∧ P(w))
É a regra da resolução vista até agora
Envolve apenas dois literais, um de cada cláusula resolvida
Problema: não é completa
Há conjuntos de cláusulas insatisfatı́veis (falsas em todas as
interpretações) que não gerarão contradição através da
aplicação sucessiva da regra
Exemplo:
Podemos obter uma contradição a partir dessas cláusulas?
P(x) ∨ P(y)
¬P(v) ∨ ¬P(w)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
Lógica de Primeira Ordem – Resolução
Resolução Binária
Deverı́amos, pois não há interpretação que faça ambas as
cláusulas serem verdadeiras. Lembre que elas significam:
∀x, y P(x) ∨ P(y)
∀v, w ¬P(v) ∨ ¬P(w)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 13 / 34
Lógica de Primeira Ordem – Resolução
Resolução Binária
Deverı́amos, pois não há interpretação que faça ambas as
cláusulas serem verdadeiras. Lembre que elas significam:
∀x, y P(x) ∨ P(y)
∀v, w ¬P(v) ∨ ¬P(w)
Então para ambas serem verdadeiras, seria necessário que
P(x) e ¬P(x) fossem verdadeiros, para todo x
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 13 / 34
Lógica de Primeira Ordem – Resolução
Resolução Binária
Deverı́amos, pois não há interpretação que faça ambas as
cláusulas serem verdadeiras. Lembre que elas significam:
∀x, y P(x) ∨ P(y)
∀v, w ¬P(v) ∨ ¬P(w)
Então para ambas serem verdadeiras, seria necessário que
P(x) e ¬P(x) fossem verdadeiros, para todo x
Contudo, aplicando resolução binária, obtemos, por exemplo
P(x) ∨ ¬P(w), θ = {y/v}
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 13 / 34
Lógica de Primeira Ordem – Resolução
Resolução Binária
Deverı́amos, pois não há interpretação que faça ambas as
cláusulas serem verdadeiras. Lembre que elas significam:
∀x, y P(x) ∨ P(y)
∀v, w ¬P(v) ∨ ¬P(w)
Então para ambas serem verdadeiras, seria necessário que
P(x) e ¬P(x) fossem verdadeiros, para todo x
Contudo, aplicando resolução binária, obtemos, por exemplo
P(x) ∨ ¬P(w), θ = {y/v}
E repetindo o procedimento com uma das orações originais,
voltamos a elas novamente
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 13 / 34
Lógica de Primeira Ordem – Resolução
Resolução Generalizada
Há no entanto uma extensão à resolução binária que
é completa: a resolução generalizada
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 14 / 34
Lógica de Primeira Ordem – Resolução
Resolução Generalizada
Há no entanto uma extensão à resolução binária que
é completa: a resolução generalizada
Nela, buscamos subconjuntos de literais em uma cláusula
que possam ser unificados com a negação de um
subconjunto de literais na outra cláusula
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 14 / 34
Lógica de Primeira Ordem – Resolução
Resolução Generalizada
Há no entanto uma extensão à resolução binária que
é completa: a resolução generalizada
Nela, buscamos subconjuntos de literais em uma cláusula
que possam ser unificados com a negação de um
subconjunto de literais na outra cláusula
Exemplo:
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 14 / 34
Lógica de Primeira Ordem – Resolução
Resolução Generalizada
Há no entanto uma extensão à resolução binária que
é completa: a resolução generalizada
Nela, buscamos subconjuntos de literais em uma cláusula
que possam ser unificados com a negação de um
subconjunto de literais na outra cláusula
Exemplo:
Em “P(x) ∨ P(y)” e “¬P(v) ∨ ¬P(w)”, cada literal (P) em
uma cláusula pode ser unificado com sua negação na outra
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 14 / 34
Lógica de Primeira Ordem – Resolução
Resolução Generalizada
Há no entanto uma extensão à resolução binária que
é completa: a resolução generalizada
Nela, buscamos subconjuntos de literais em uma cláusula
que possam ser unificados com a negação de um
subconjunto de literais na outra cláusula
Exemplo:
Em “P(x) ∨ P(y)” e “¬P(v) ∨ ¬P(w)”, cada literal (P) em
uma cláusula pode ser unificado com sua negação na outra
Gerando assim a contradição necessária (falso) para a
demonstração
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 14 / 34
Lógica de Primeira Ordem – Resolução
Fatoração
Uma alternativa mais simples é introduzir uma nova
regra de inferência, a ser usada com a resolução
binária:
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 15 / 34
Lógica de Primeira Ordem – Resolução
Fatoração
Uma alternativa mais simples é introduzir uma nova
regra de inferência, a ser usada com a resolução
binária:
α ∨ β ∨ γ θ = UMG(α, β)
(α ∨ γ) θ
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 15 / 34
Lógica de Primeira Ordem – Resolução
Fatoração
Uma alternativa mais simples é introduzir uma nova
regra de inferência, a ser usada com a resolução
binária:
α ∨ β ∨ γ θ = UMG(α, β)
(α ∨ γ) θ
Se pudermos unificar dois literais na mesma cláusula, então
podemos eliminar um deles (não importa qual), e então
aplicar o unificador à cláusula inteira
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 15 / 34
Lógica de Primeira Ordem – Resolução
Fatoração
Uma alternativa mais simples é introduzir uma nova
regra de inferência, a ser usada com a resolução
binária:
α ∨ β ∨ γ θ = UMG(α, β)
(α ∨ γ) θ
Se pudermos unificar dois literais na mesma cláusula, então
podemos eliminar um deles (não importa qual), e então
aplicar o unificador à cláusula inteira
Essa alternativa é chamada de Fatoração
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 15 / 34
Lógica de Primeira Ordem – Resolução
Fatoração: Exemplo
Q(y) ∨ P(x, y) ∨ P(v, A)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 16 / 34
Lógica de Primeira Ordem – Resolução
Fatoração: Exemplo
Q(y) ∨ P(x, y) ∨ P(v, A)
Q(A) ∨ P(v, A) {x/v, y/A}
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 16 / 34
Lógica de Primeira Ordem – Resolução
Fatoração: Exemplo
Q(y) ∨ P(x, y) ∨ P(v, A)
Q(A) ∨ P(v, A) {x/v, y/A}
Note que se trata da remoção de literais duplicados
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 16 / 34
Lógica de Primeira Ordem – Resolução
Fatoração: Exemplo
Q(y) ∨ P(x, y) ∨ P(v, A)
Q(A) ∨ P(v, A) {x/v, y/A}
Note que se trata da remoção de literais duplicados
Agora a resolução binária pode ser usada
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 16 / 34
Lógica de Primeira Ordem – Resolução
Fatoração: Exemplo
Q(y) ∨ P(x, y) ∨ P(v, A)
Q(A) ∨ P(v, A) {x/v, y/A}
Note que se trata da remoção de literais duplicados
Agora a resolução binária pode ser usada
A combinação de resolução binária com fatoração é
completa
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 16 / 34
Lógica de Primeira Ordem – Resolução
Fatoração: Exemplo
Q(y) ∨ P(x, y) ∨ P(v, A)
Q(A) ∨ P(v, A) {x/v, y/A}
Note que se trata da remoção de literais duplicados
Agora a resolução binária pode ser usada
A combinação de resolução binária com fatoração é
completa
Toda vez que a base levar a S, poderemos provar S a partir
dela
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 16 / 34
Lógica de Primeira Ordem – Resolução
Respondendo Perguntas
Até agora respondemos questões do tipo:
“A curiosidade matou Bolão?”
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 17 / 34
Lógica de Primeira Ordem – Resolução
Respondendo Perguntas
Até agora respondemos questões do tipo:
“A curiosidade matou Bolão?”
Resolução pode, contudo, ser usada para responder
perguntas mais gerais:
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 17 / 34
Lógica de Primeira Ordem – Resolução
Respondendo Perguntas
Até agora respondemos questões do tipo:
“A curiosidade matou Bolão?”
Resolução pode, contudo, ser usada para responder
perguntas mais gerais:
“Quem matou Bolão?”
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 17 / 34
Lógica de Primeira Ordem – Resolução
Respondendo Perguntas
Até agora respondemos questões do tipo:
“A curiosidade matou Bolão?”
Resolução pode, contudo, ser usada para responder
perguntas mais gerais:
“Quem matou Bolão?”
“Matar(w, Bolão)”? (Olhando a substituição {w/???})
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 17 / 34
Lógica de Primeira Ordem – Resolução
Respondendo Perguntas
Até agora respondemos questões do tipo:
“A curiosidade matou Bolão?”
Resolução pode, contudo, ser usada para responder
perguntas mais gerais:
“Quem matou Bolão?”
“Matar(w, Bolão)”? (Olhando a substituição {w/???})
Como?
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 17 / 34
Lógica de Primeira Ordem – Resolução
Respondendo Perguntas
Até agora respondemos questões do tipo:
“A curiosidade matou Bolão?”
Resolução pode, contudo, ser usada para responder
perguntas mais gerais:
“Quem matou Bolão?”
“Matar(w, Bolão)”? (Olhando a substituição {w/???})
Como? Truque de (Cordell) Green:
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 17 / 34
Lógica de Primeira Ordem – Resolução
Respondendo Perguntas
Até agora respondemos questões do tipo:
“A curiosidade matou Bolão?”
Resolução pode, contudo, ser usada para responder
perguntas mais gerais:
“Quem matou Bolão?”
“Matar(w, Bolão)”? (Olhando a substituição {w/???})
Como? Truque de (Cordell) Green:
Adicione à negação do objetivo um literal de resposta
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 17 / 34
Lógica de Primeira Ordem – Resolução
Respondendo Perguntas
Até agora respondemos questões do tipo:
“A curiosidade matou Bolão?”
Resolução pode, contudo, ser usada para responder
perguntas mais gerais:
“Quem matou Bolão?”
“Matar(w, Bolão)”? (Olhando a substituição {w/???})
Como? Truque de (Cordell) Green:
Adicione à negação do objetivo um literal de resposta
Ex: ¬Matar(w, Bolão) ∨ Resposta(w)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 17 / 34
Lógica de Primeira Ordem – Resolução
Respondendo Perguntas: Exemplo
Quem é mortal?
Sentença Ação
1 ¬Homem(x) ∨ Mortal(x) Axioma
2 Homem(Sócrates) Axioma
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 18 / 34
Lógica de Primeira Ordem – Resolução
Respondendo Perguntas: Exemplo
Quem é mortal?
Sentença Ação
1 ¬Homem(x) ∨ Mortal(x) Axioma
2 Homem(Sócrates) Axioma
3 ¬Mortal(x) ∨ Resposta(x) Neg
1. Negamos a conclusão
(de que existem mortais)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 18 / 34
Lógica de Primeira Ordem – Resolução
Respondendo Perguntas: Exemplo
Quem é mortal?
Sentença Ação
1 ¬Homem(x) ∨ Mortal(x) Axioma
2 Homem(Sócrates) Axioma
3 ¬Mortal(x) ∨ Resposta(x) Neg
1. Negamos a conclusão
(de que existem mortais) 2. O truque é
adicionar o literal
Resposta(x)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 18 / 34
Lógica de Primeira Ordem – Resolução
Respondendo Perguntas: Exemplo
Quem é mortal?
Sentença Ação
1 ¬Homem(x) ∨ Mortal(x) Axioma
2 Homem(Sócrates) Axioma
3 ¬Mortal(x) ∨ Resposta(x) Neg
4 Mortal(Sócrates) 1,2
1. Negamos a conclusão
(de que existem mortais) 2. O truque é
adicionar o literal
Resposta(x)
3. Fazemos a resolução
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 18 / 34
Lógica de Primeira Ordem – Resolução
Respondendo Perguntas: Exemplo
Quem é mortal?
Sentença Ação
1 ¬Homem(x) ∨ Mortal(x) Axioma
2 Homem(Sócrates) Axioma
3 ¬Mortal(x) ∨ Resposta(x) Neg
4 Mortal(Sócrates) 1,2
5 Resposta(Sócrates) 3,5
1. Negamos a conclusão
(de que existem mortais) 2. O truque é
adicionar o literal
Resposta(x)
3. Fazemos a resolução
4. Quando chegamos a
uma cláusula com apenas
o literal Resposta, paramos
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 18 / 34
Lógica de Primeira Ordem – Resolução
Respondendo Perguntas: Exemplo
Quem é mortal?
Sentença Ação
1 ¬Homem(x) ∨ Mortal(x) Axioma
2 Homem(Sócrates) Axioma
3 ¬Mortal(x) ∨ Resposta(x) Neg
4 Mortal(Sócrates) 1,2
5 Resposta(Sócrates) 3,5
1. Negamos a conclusão
(de que existem mortais) 2. O truque é
adicionar o literal
Resposta(x)
3. Fazemos a resolução
4. Quando chegamos a
uma cláusula com apenas
o literal Resposta, paramos
5. A resposta será o
que estiver ligado à
variável x nesse literal
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 18 / 34
Lógica de Primeira Ordem – Resolução
Igualdade
Nenhum dos métodos de inferência até agora lidam
com x = y
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 19 / 34
Lógica de Primeira Ordem – Resolução
Igualdade
Nenhum dos métodos de inferência até agora lidam
com x = y
O que fazer quando a prova contém um ’=’?
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 19 / 34
Lógica de Primeira Ordem – Resolução
Igualdade
Nenhum dos métodos de inferência até agora lidam
com x = y
O que fazer quando a prova contém um ’=’?
Adicione uma regra extra – paramodulação (não veremos)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 19 / 34
Lógica de Primeira Ordem – Resolução
Igualdade
Nenhum dos métodos de inferência até agora lidam
com x = y
O que fazer quando a prova contém um ’=’?
Adicione uma regra extra – paramodulação (não veremos)
Usada em provadores de teoremas
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 19 / 34
Lógica de Primeira Ordem – Resolução
Igualdade
Nenhum dos métodos de inferência até agora lidam
com x = y
O que fazer quando a prova contém um ’=’?
Adicione uma regra extra – paramodulação (não veremos)
Usada em provadores de teoremas
Estenda o algoritmo de unificação (não veremos)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 19 / 34
Lógica de Primeira Ordem – Resolução
Igualdade
Nenhum dos métodos de inferência até agora lidam
com x = y
O que fazer quando a prova contém um ’=’?
Adicione uma regra extra – paramodulação (não veremos)
Usada em provadores de teoremas
Estenda o algoritmo de unificação (não veremos)
Usada em provadores de teoremas
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 19 / 34
Lógica de Primeira Ordem – Resolução
Igualdade
Nenhum dos métodos de inferência até agora lidam
com x = y
O que fazer quando a prova contém um ’=’?
Adicione uma regra extra – paramodulação (não veremos)
Usada em provadores de teoremas
Estenda o algoritmo de unificação (não veremos)
Usada em provadores de teoremas
Trate a igualdade como qualquer outro predicado
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 19 / 34
Lógica de Primeira Ordem – Resolução
Igualdade
Nenhum dos métodos de inferência até agora lidam
com x = y
O que fazer quando a prova contém um ’=’?
Adicione uma regra extra – paramodulação (não veremos)
Usada em provadores de teoremas
Estenda o algoritmo de unificação (não veremos)
Usada em provadores de teoremas
Trate a igualdade como qualquer outro predicado
Restrinja sua semântica via axiomas
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 19 / 34
Lógica de Primeira Ordem – Resolução
Axiomatizando Igualdade
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 20 / 34
Lógica de Primeira Ordem – Resolução
Axiomatizando Igualdade
Aproximamos a igualdade por equivalência,
tomando por base suas propriedades
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 20 / 34
Lógica de Primeira Ordem – Resolução
Axiomatizando Igualdade
Aproximamos a igualdade por equivalência,
tomando por base suas propriedades
∀x Igual(x, x) (reflexividade)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 20 / 34
Lógica de Primeira Ordem – Resolução
Axiomatizando Igualdade
Aproximamos a igualdade por equivalência,
tomando por base suas propriedades
∀x Igual(x, x) (reflexividade)
∀x, y Igual(x, y) ⇒ Igual(y, x) (simetria)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 20 / 34
Lógica de Primeira Ordem – Resolução
Axiomatizando Igualdade
Aproximamos a igualdade por equivalência,
tomando por base suas propriedades
∀x Igual(x, x) (reflexividade)
∀x, y Igual(x, y) ⇒ Igual(y, x) (simetria)
∀x, y, z Igual(x, y) ∧ Igual(y, z) ⇒ Igual(x, z)
(transitividade)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 20 / 34
Lógica de Primeira Ordem – Resolução
Axiomatizando Igualdade
Aproximamos a igualdade por equivalência,
tomando por base suas propriedades
∀x Igual(x, x) (reflexividade)
∀x, y Igual(x, y) ⇒ Igual(y, x) (simetria)
∀x, y, z Igual(x, y) ∧ Igual(y, z) ⇒ Igual(x, z)
(transitividade)
Permitimos então substituição, em qualquer
predicado ou função, de termos iguais:
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 20 / 34
Lógica de Primeira Ordem – Resolução
Axiomatizando Igualdade
Aproximamos a igualdade por equivalência,
tomando por base suas propriedades
∀x Igual(x, x) (reflexividade)
∀x, y Igual(x, y) ⇒ Igual(y, x) (simetria)
∀x, y, z Igual(x, y) ∧ Igual(y, z) ⇒ Igual(x, z)
(transitividade)
Permitimos então substituição, em qualquer
predicado ou função, de termos iguais:
∀x, y Igual(x, y) ⇒ (Pi (x) ⇔ Pi (y)), para todo Pi
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 20 / 34
Lógica de Primeira Ordem – Resolução
Axiomatizando Igualdade
Aproximamos a igualdade por equivalência,
tomando por base suas propriedades
∀x Igual(x, x) (reflexividade)
∀x, y Igual(x, y) ⇒ Igual(y, x) (simetria)
∀x, y, z Igual(x, y) ∧ Igual(y, z) ⇒ Igual(x, z)
(transitividade)
Permitimos então substituição, em qualquer
predicado ou função, de termos iguais:
∀x, y Igual(x, y) ⇒ (Pi (x) ⇔ Pi (y)), para todo Pi
Para cada Pi (e função) precisamos incluir um axioma assim
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 20 / 34
Lógica de Primeira Ordem – Inferência
Forward Chaining
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 21 / 34
L.P.O. – Forward Chaining
Caracterı́sticas
Como na lógica proposicional:
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 22 / 34
L.P.O. – Forward Chaining
Caracterı́sticas
Como na lógica proposicional:
Funciona apenas com cláusulas definidas
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 22 / 34
L.P.O. – Forward Chaining
Caracterı́sticas
Como na lógica proposicional:
Funciona apenas com cláusulas definidas
Antecedentes ⇒ Consequente
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 22 / 34
L.P.O. – Forward Chaining
Caracterı́sticas
Como na lógica proposicional:
Funciona apenas com cláusulas definidas
Antecedentes ⇒ Consequente
A partir de sentenças atômicas, aplica Modus Ponens
progressivamente, adicionando novas sentenças atômicas
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 22 / 34
L.P.O. – Forward Chaining
Caracterı́sticas
Como na lógica proposicional:
Funciona apenas com cláusulas definidas
Antecedentes ⇒ Consequente
A partir de sentenças atômicas, aplica Modus Ponens
progressivamente, adicionando novas sentenças atômicas
Utilidade
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 22 / 34
L.P.O. – Forward Chaining
Caracterı́sticas
Como na lógica proposicional:
Funciona apenas com cláusulas definidas
Antecedentes ⇒ Consequente
A partir de sentenças atômicas, aplica Modus Ponens
progressivamente, adicionando novas sentenças atômicas
Utilidade
Sistemas que fazem inferência em resposta a informações
recém-chegadas
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 22 / 34
L.P.O. – Forward Chaining
Caracterı́sticas
Como na lógica proposicional:
Funciona apenas com cláusulas definidas
Antecedentes ⇒ Consequente
A partir de sentenças atômicas, aplica Modus Ponens
progressivamente, adicionando novas sentenças atômicas
Utilidade
Sistemas que fazem inferência em resposta a informações
recém-chegadas
Sistemas baseados em regras, do tipo Situação ⇒ Resposta
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 22 / 34
L.P.O. – Forward Chaining
Caracterı́sticas
Como na lógica proposicional:
Funciona apenas com cláusulas definidas
Antecedentes ⇒ Consequente
A partir de sentenças atômicas, aplica Modus Ponens
progressivamente, adicionando novas sentenças atômicas
Utilidade
Sistemas que fazem inferência em resposta a informações
recém-chegadas
Sistemas baseados em regras, do tipo Situação ⇒ Resposta
Mais eficiente que resolução, nesses casos
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 22 / 34
L.P.O. – Forward Chaining
Relembrando Cláusulas Definidas
Disjunções de literais, dos quais exatamente um é
positivo
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 23 / 34
L.P.O. – Forward Chaining
Relembrando Cláusulas Definidas
Disjunções de literais, dos quais exatamente um é
positivo
¬P(x) ∨ ¬Q(x) ∨ ¬R(x) ∨ K(x), ou
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 23 / 34
L.P.O. – Forward Chaining
Relembrando Cláusulas Definidas
Disjunções de literais, dos quais exatamente um é
positivo
¬P(x) ∨ ¬Q(x) ∨ ¬R(x) ∨ K(x), ou
P(x) ∧ Q(x) ∧ R(x) ⇒ K(x)
(Conjunção de literais positivos ⇒ único literal positivo)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 23 / 34
L.P.O. – Forward Chaining
Relembrando Cláusulas Definidas
Disjunções de literais, dos quais exatamente um é
positivo
¬P(x) ∨ ¬Q(x) ∨ ¬R(x) ∨ K(x), ou
P(x) ∧ Q(x) ∧ R(x) ⇒ K(x)
(Conjunção de literais positivos ⇒ único literal positivo)
Ou uma sentença atômica
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 23 / 34
L.P.O. – Forward Chaining
Relembrando Cláusulas Definidas
Disjunções de literais, dos quais exatamente um é
positivo
¬P(x) ∨ ¬Q(x) ∨ ¬R(x) ∨ K(x), ou
P(x) ∧ Q(x) ∧ R(x) ⇒ K(x)
(Conjunção de literais positivos ⇒ único literal positivo)
Ou uma sentença atômica
P(x)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 23 / 34
L.P.O. – Forward Chaining
Relembrando Cláusulas Definidas
Disjunções de literais, dos quais exatamente um é
positivo
¬P(x) ∨ ¬Q(x) ∨ ¬R(x) ∨ K(x), ou
P(x) ∧ Q(x) ∧ R(x) ⇒ K(x)
(Conjunção de literais positivos ⇒ único literal positivo)
Ou uma sentença atômica
P(x)
Gato(Bolão)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 23 / 34
L.P.O. – Forward Chaining
Bases de Conhecimento com Cláusulas Definidas
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 24 / 34
L.P.O. – Forward Chaining
Bases de Conhecimento com Cláusulas Definidas
Cada entrada na base é uma cláusula definida
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 24 / 34
L.P.O. – Forward Chaining
Bases de Conhecimento com Cláusulas Definidas
Cada entrada na base é uma cláusula definida
P(x)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 24 / 34
L.P.O. – Forward Chaining
Bases de Conhecimento com Cláusulas Definidas
Cada entrada na base é uma cláusula definida
P(x)
P(x) ∧ Q(x) ∧ R(x) ⇒ K(x)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 24 / 34
L.P.O. – Forward Chaining
Bases de Conhecimento com Cláusulas Definidas
Cada entrada na base é uma cláusula definida
P(x)
P(x) ∧ Q(x) ∧ R(x) ⇒ K(x)
Traz implı́cita, em cada entrada, o quantificador universal
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 24 / 34
L.P.O. – Forward Chaining
Bases de Conhecimento com Cláusulas Definidas
Cada entrada na base é uma cláusula definida
∀x P(x)
∀x P(x) ∧ Q(x) ∧ R(x) ⇒ K(x)
Traz implı́cita, em cada entrada, o quantificador universal
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 24 / 34
L.P.O. – Forward Chaining
Bases de Conhecimento com Cláusulas Definidas
Cada entrada na base é uma cláusula definida
∀x P(x)
∀x P(x) ∧ Q(x) ∧ R(x) ⇒ K(x)
Traz implı́cita, em cada entrada, o quantificador universal
Também aqui precisamos eliminar o quantificador
existencial (skolemização)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 24 / 34
L.P.O. – Forward Chaining
Bases de Conhecimento com Cláusulas Definidas
Cada entrada na base é uma cláusula definida
∀x P(x)
∀x P(x) ∧ Q(x) ∧ R(x) ⇒ K(x)
Traz implı́cita, em cada entrada, o quantificador universal
Também aqui precisamos eliminar o quantificador
existencial (skolemização)
Além de padronizar as variáveis das entradas que
serão unificadas (como na Resolução)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 24 / 34
L.P.O. – Forward Chaining
Funcionamento
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 25 / 34
L.P.O. – Forward Chaining
Funcionamento
Começando com os fatos conhecidos, verifique
todas as regras cujas premissas são satisfeitas
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 25 / 34
L.P.O. – Forward Chaining
Funcionamento
Começando com os fatos conhecidos, verifique
todas as regras cujas premissas são satisfeitas
Modus Ponens
α ⇒ β UMG(α, ψ) = θ P(x) ⇒ Q(x)
ψ P(A)
(β) θ Q(A) {x/A}
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 25 / 34
L.P.O. – Forward Chaining
Funcionamento
Começando com os fatos conhecidos, verifique
todas as regras cujas premissas são satisfeitas
Modus Ponens
α ⇒ β UMG(α, ψ) = θ P(x) ⇒ Q(x)
ψ P(A)
(β) θ Q(A) {x/A}
Adicione suas conclusões aos fatos conhecidos
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 25 / 34
L.P.O. – Forward Chaining
Funcionamento
Começando com os fatos conhecidos, verifique
todas as regras cujas premissas são satisfeitas
Modus Ponens
α ⇒ β UMG(α, ψ) = θ P(x) ⇒ Q(x)
ψ P(A)
(β) θ Q(A) {x/A}
Adicione suas conclusões aos fatos conhecidos
Repita o procedimento até que a query seja
respondida (assumindo que uma resposta apenas
baste), ou nenhum novo fato puder ser adicionado
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 25 / 34
L.P.O. – Forward Chaining
Funcionamento
Um fato não será novo se for apenas uma
renomeação de um fato conhecido
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 26 / 34
L.P.O. – Forward Chaining
Funcionamento
Um fato não será novo se for apenas uma
renomeação de um fato conhecido
Ou seja, se ambos significados forem idênticos
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 26 / 34
L.P.O. – Forward Chaining
Funcionamento
Um fato não será novo se for apenas uma
renomeação de um fato conhecido
Ou seja, se ambos significados forem idênticos
Uma sentença é uma renomeação de outra se forem
idênticas, exceto pelos nomes de suas variáveis
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 26 / 34
L.P.O. – Forward Chaining
Funcionamento
Um fato não será novo se for apenas uma
renomeação de um fato conhecido
Ou seja, se ambos significados forem idênticos
Uma sentença é uma renomeação de outra se forem
idênticas, exceto pelos nomes de suas variáveis
Ex: Gosta(x, Sorvete) e Gosta(y, Sorvete)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 26 / 34
L.P.O. – Forward Chaining
Exemplo
Base:
É um crime para um compatriota vender armas a nações
hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e
todos seus mı́sseis foram vendidos a eles por um
compatriota: Osmar
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 27 / 34
L.P.O. – Forward Chaining
Exemplo
Base:
É um crime para um compatriota vender armas a nações
hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e
todos seus mı́sseis foram vendidos a eles por um
compatriota: Osmar
Osmar é criminoso?
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 27 / 34
L.P.O. – Forward Chaining
Exemplo
Base:
É um crime para um compatriota vender armas a nações
hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e
todos seus mı́sseis foram vendidos a eles por um
compatriota: Osmar
Osmar é criminoso?
1. ∀x, y, z Compatriota(x) ∧ Vender(x, y, z) ∧ Arma(y) ∧ Hostil(z) ⇒ Criminoso(x)
Compatriota(x) ∧ Vender(x, y, z) ∧ Arma(y) ∧ Hostil(z) ⇒ Criminoso(x)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 27 / 34
L.P.O. – Forward Chaining
Exemplo
Base:
É um crime para um compatriota vender armas a nações
hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e
todos seus mı́sseis foram vendidos a eles por um
compatriota: Osmar
Osmar é criminoso?
1. ∀x, y, z Compatriota(x) ∧ Vender(x, y, z) ∧ Arma(y) ∧ Hostil(z) ⇒ Criminoso(x)
Compatriota(x) ∧ Vender(x, y, z) ∧ Arma(y) ∧ Hostil(z) ⇒ Criminoso(x)
2. Inimigo(Pit)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 27 / 34
L.P.O. – Forward Chaining
Exemplo
Base:
É um crime para um compatriota vender armas a nações
hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e
todos seus mı́sseis foram vendidos a eles por um
compatriota: Osmar
Osmar é criminoso?
1. ∀x, y, z Compatriota(x) ∧ Vender(x, y, z) ∧ Arma(y) ∧ Hostil(z) ⇒ Criminoso(x)
Compatriota(x) ∧ Vender(x, y, z) ∧ Arma(y) ∧ Hostil(z) ⇒ Criminoso(x)
2. Inimigo(Pit)
3. ∃x Mı́ssil(x) ∧ Ter(Pit, x)
Mı́ssil(M) ∧ Ter(Pit, M)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 27 / 34
L.P.O. – Forward Chaining
Exemplo
Base:
É um crime para um compatriota vender armas a nações
hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e
todos seus mı́sseis foram vendidos a eles por um
compatriota: Osmar
Osmar é criminoso?
4. ∀x Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit)
Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 28 / 34
L.P.O. – Forward Chaining
Exemplo
Base:
É um crime para um compatriota vender armas a nações
hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e
todos seus mı́sseis foram vendidos a eles por um
compatriota: Osmar
Osmar é criminoso?
4. ∀x Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit)
Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit)
5. Mı́sseis são armas
∀x Mı́ssil(x) ⇒ Arma(x)
Mı́ssil(x) ⇒ Arma(x)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 28 / 34
L.P.O. – Forward Chaining
Exemplo
Base:
É um crime para um compatriota vender armas a nações
hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e
todos seus mı́sseis foram vendidos a eles por um
compatriota: Osmar
Osmar é criminoso?
4. ∀x Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit)
Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit)
5. Mı́sseis são armas
∀x Mı́ssil(x) ⇒ Arma(x)
Mı́ssil(x) ⇒ Arma(x)
Note que essa sentença não
está no texto → faz parte
do conhecimento comum
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 28 / 34
L.P.O. – Forward Chaining
Exemplo
Base:
É um crime para um compatriota vender armas a nações
hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e
todos seus mı́sseis foram vendidos a eles por um
compatriota: Osmar
Osmar é criminoso?
6. Inimigos são hostis
∀x Inimigo(x) ⇒ Hostil(x)
Inimigo(x) ⇒ Hostil(x)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 29 / 34
L.P.O. – Forward Chaining
Exemplo
Base:
É um crime para um compatriota vender armas a nações
hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e
todos seus mı́sseis foram vendidos a eles por um
compatriota: Osmar
Osmar é criminoso?
6. Inimigos são hostis
∀x Inimigo(x) ⇒ Hostil(x)
Inimigo(x) ⇒ Hostil(x)
Mais conhecimento comum . . .
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 29 / 34
L.P.O. – Forward Chaining
Exemplo
Base:
É um crime para um compatriota vender armas a nações
hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e
todos seus mı́sseis foram vendidos a eles por um
compatriota: Osmar
Osmar é criminoso?
6. Inimigos são hostis
∀x Inimigo(x) ⇒ Hostil(x)
Inimigo(x) ⇒ Hostil(x)
Mais conhecimento comum . . .
7. Compatriota(Os)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 29 / 34
L.P.O. – Forward Chaining
Exemplo
Osmar é criminoso?
Sentença Obs
1 Compatriota(x) ∧ Vender(x, y, z) ∧
Arma(y) ∧ Hostil(z) ⇒ Criminoso(x)
axioma
2 Inimigo(Pit) axioma
3 Mı́ssil(M) axioma
4 Ter(Pit, M) axioma
5 Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit) axioma
6 Mı́ssil(x) ⇒ Arma(x) axioma
7 Inimigo(x) ⇒ Hostil(x) axioma
8 Compatriota(Os) axioma
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 30 / 34
L.P.O. – Forward Chaining
Exemplo
Osmar é criminoso?
Sentença Obs
1 Compatriota(x) ∧ Vender(x, y, z) ∧
Arma(y) ∧ Hostil(z) ⇒ Criminoso(x)
axioma
2 Inimigo(Pit) axioma
3 Mı́ssil(M) axioma
4 Ter(Pit, M) axioma
5 Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit) axioma
6 Mı́ssil(x) ⇒ Arma(x) axioma
7 Inimigo(x) ⇒ Hostil(x) axioma
8 Compatriota(Os) axioma
9 Arma(M) 3,6 {x/M}
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 30 / 34
L.P.O. – Forward Chaining
Exemplo
Osmar é criminoso?
Sentença Obs
1 Compatriota(x) ∧ Vender(x, y, z) ∧
Arma(y) ∧ Hostil(z) ⇒ Criminoso(x)
axioma
2 Inimigo(Pit) axioma
3 Mı́ssil(M) axioma
4 Ter(Pit, M) axioma
5 Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit) axioma
6 Mı́ssil(x) ⇒ Arma(x) axioma
7 Inimigo(x) ⇒ Hostil(x) axioma
8 Compatriota(Os) axioma
9 Arma(M) 3,6 {x/M}
10 Hostil(Pit) 2,7 {x/Pit}
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 30 / 34
L.P.O. – Forward Chaining
Exemplo
Osmar é criminoso?
Sentença Obs
1 Compatriota(x) ∧ Vender(x, y, z) ∧
Arma(y) ∧ Hostil(z) ⇒ Criminoso(x)
axioma
2 Inimigo(Pit) axioma
3 Mı́ssil(M) axioma
4 Ter(Pit, M) axioma
5 Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit) axioma
6 Mı́ssil(x) ⇒ Arma(x) axioma
7 Inimigo(x) ⇒ Hostil(x) axioma
8 Compatriota(Os) axioma
9 Arma(M) 3,6 {x/M}
10 Hostil(Pit) 2,7 {x/Pit}
11 Vender(Os, M, Pit) 3,4,5 {x/M}
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 30 / 34
L.P.O. – Forward Chaining
Exemplo
Osmar é criminoso?
Sentença Obs
1 Compatriota(x) ∧ Vender(x, y, z) ∧
Arma(y) ∧ Hostil(z) ⇒ Criminoso(x)
axioma
2 Inimigo(Pit) axioma
3 Mı́ssil(M) axioma
4 Ter(Pit, M) axioma
5 Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit) axioma
6 Mı́ssil(x) ⇒ Arma(x) axioma
7 Inimigo(x) ⇒ Hostil(x) axioma
8 Compatriota(Os) axioma
9 Arma(M) 3,6 {x/M}
10 Hostil(Pit) 2,7 {x/Pit}
11 Vender(Os, M, Pit) 3,4,5 {x/M}
12 Criminoso(Os) 1,8,9,10,11
{x/Os, y/M, z/Pit}
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 30 / 34
L.P.O. – Forward Chaining
Algoritmo
Função Forward-Chaining(BC,α): substituição
repita
novo ← {}
para cada sentença s em BC faça
(p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s)
para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0
1 ∧ . . . ∧ p0
n) θ para
algum p0
1, . . . , p0
n em BC faça
q0
← (q) θ
se q0
não se unificar a alguma sentença em BC ou novo então
Adicione q0
a novo
φ ← Unifica(q0
, α)
se φ não for falha então retorna φ
Adicione novo a BC
até que novo esteja vazio
retorna falso
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
L.P.O. – Forward Chaining
Algoritmo
Base de Conhecimento
Função Forward-Chaining(BC,α): substituição
repita
novo ← {}
para cada sentença s em BC faça
(p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s)
para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0
1 ∧ . . . ∧ p0
n) θ para
algum p0
1, . . . , p0
n em BC faça
q0
← (q) θ
se q0
não se unificar a alguma sentença em BC ou novo então
Adicione q0
a novo
φ ← Unifica(q0
, α)
se φ não for falha então retorna φ
Adicione novo a BC
até que novo esteja vazio
retorna falso
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
L.P.O. – Forward Chaining
Algoritmo
Query (sentença atômica)
Função Forward-Chaining(BC,α): substituição
repita
novo ← {}
para cada sentença s em BC faça
(p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s)
para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0
1 ∧ . . . ∧ p0
n) θ para
algum p0
1, . . . , p0
n em BC faça
q0
← (q) θ
se q0
não se unificar a alguma sentença em BC ou novo então
Adicione q0
a novo
φ ← Unifica(q0
, α)
se φ não for falha então retorna φ
Adicione novo a BC
até que novo esteja vazio
retorna falso
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
L.P.O. – Forward Chaining
Algoritmo
Conjunto de novas sentenças
inferidas a cada iteração
Função Forward-Chaining(BC,α): substituição
repita
novo ← {}
para cada sentença s em BC faça
(p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s)
para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0
1 ∧ . . . ∧ p0
n) θ para
algum p0
1, . . . , p0
n em BC faça
q0
← (q) θ
se q0
não se unificar a alguma sentença em BC ou novo então
Adicione q0
a novo
φ ← Unifica(q0
, α)
se φ não for falha então retorna φ
Adicione novo a BC
até que novo esteja vazio
retorna falso
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
L.P.O. – Forward Chaining
Algoritmo
PadronizaVar troca todas as
variáveis em seus argumentos
por variáveis ainda não usadas
Função Forward-Chaining(BC,α): substituição
repita
novo ← {}
para cada sentença s em BC faça
(p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s)
para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0
1 ∧ . . . ∧ p0
n) θ para
algum p0
1, . . . , p0
n em BC faça
q0
← (q) θ
se q0
não se unificar a alguma sentença em BC ou novo então
Adicione q0
a novo
φ ← Unifica(q0
, α)
se φ não for falha então retorna φ
Adicione novo a BC
até que novo esteja vazio
retorna falso
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
L.P.O. – Forward Chaining
Algoritmo
Começando dos fatos conhe-
cidos, ativa todas as regras
cujas premissas são satisfeitas
Função Forward-Chaining(BC,α): substituição
repita
novo ← {}
para cada sentença s em BC faça
(p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s)
para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0
1 ∧ . . . ∧ p0
n) θ para
algum p0
1, . . . , p0
n em BC faça
q0
← (q) θ
se q0
não se unificar a alguma sentença em BC ou novo então
Adicione q0
a novo
φ ← Unifica(q0
, α)
se φ não for falha então retorna φ
Adicione novo a BC
até que novo esteja vazio
retorna falso
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
L.P.O. – Forward Chaining
Algoritmo
Adicionando sua con-
clusão aos fatos conhecidos
Função Forward-Chaining(BC,α): substituição
repita
novo ← {}
para cada sentença s em BC faça
(p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s)
para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0
1 ∧ . . . ∧ p0
n) θ para
algum p0
1, . . . , p0
n em BC faça
q0
← (q) θ
se q0
não se unificar a alguma sentença em BC ou novo então
Adicione q0
a novo
φ ← Unifica(q0
, α)
se φ não for falha então retorna φ
Adicione novo a BC
até que novo esteja vazio
retorna falso
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
L.P.O. – Forward Chaining
Algoritmo
Mas somente se o fato for desco-
nhecido → se não é apenas uma
renomeação de um conhecido
Função Forward-Chaining(BC,α): substituição
repita
novo ← {}
para cada sentença s em BC faça
(p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s)
para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0
1 ∧ . . . ∧ p0
n) θ para
algum p0
1, . . . , p0
n em BC faça
q0
← (q) θ
se q0
não se unificar a alguma sentença em BC ou novo então
Adicione q0
a novo
φ ← Unifica(q0
, α)
se φ não for falha então retorna φ
Adicione novo a BC
até que novo esteja vazio
retorna falso
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
L.P.O. – Forward Chaining
Algoritmo
Uma sentença é uma re-
nomeação de outra se
forem idênticas exceto
pelo nome das variáveis
Função Forward-Chaining(BC,α): substituição
repita
novo ← {}
para cada sentença s em BC faça
(p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s)
para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0
1 ∧ . . . ∧ p0
n) θ para
algum p0
1, . . . , p0
n em BC faça
q0
← (q) θ
se q0
não se unificar a alguma sentença em BC ou novo então
Adicione q0
a novo
φ ← Unifica(q0
, α)
se φ não for falha então retorna φ
Adicione novo a BC
até que novo esteja vazio
retorna falso
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
L.P.O. – Forward Chaining
Algoritmo
O processo repete até que a
query seja respondida ou nenhum
fato extra possa ser adicionado
Função Forward-Chaining(BC,α): substituição
repita
novo ← {}
para cada sentença s em BC faça
(p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s)
para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0
1 ∧ . . . ∧ p0
n) θ para
algum p0
1, . . . , p0
n em BC faça
q0
← (q) θ
se q0
não se unificar a alguma sentença em BC ou novo então
Adicione q0
a novo
φ ← Unifica(q0
, α)
se φ não for falha então retorna φ
Adicione novo a BC
até que novo esteja vazio
retorna falso
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
L.P.O. – Forward Chaining
Algoritmo: Problemas
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 32 / 34
L.P.O. – Forward Chaining
Algoritmo: Problemas
Busca todos os unificadores possı́veis θ
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 32 / 34
L.P.O. – Forward Chaining
Algoritmo: Problemas
Busca todos os unificadores possı́veis θ
É problema se para cada variável houver várias constantes
que possam ser substituı́das
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 32 / 34
L.P.O. – Forward Chaining
Algoritmo: Problemas
Busca todos os unificadores possı́veis θ
É problema se para cada variável houver várias constantes
que possam ser substituı́das
Solução: Olhe primeiro a variável que tem menos
substituições possı́veis (variável com mais restrições – PSR)
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 32 / 34
L.P.O. – Forward Chaining
Algoritmo: Problemas
Busca todos os unificadores possı́veis θ
É problema se para cada variável houver várias constantes
que possam ser substituı́das
Solução: Olhe primeiro a variável que tem menos
substituições possı́veis (variável com mais restrições – PSR)
A cada iteração, verifica cada regra novamente
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 32 / 34
L.P.O. – Forward Chaining
Algoritmo: Problemas
Busca todos os unificadores possı́veis θ
É problema se para cada variável houver várias constantes
que possam ser substituı́das
Solução: Olhe primeiro a variável que tem menos
substituições possı́veis (variável com mais restrições – PSR)
A cada iteração, verifica cada regra novamente
Mesmo que poucas adições tenham sido feitas à base em
cada iteração
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 32 / 34
L.P.O. – Forward Chaining
Algoritmo: Problemas
Busca todos os unificadores possı́veis θ
É problema se para cada variável houver várias constantes
que possam ser substituı́das
Solução: Olhe primeiro a variável que tem menos
substituições possı́veis (variável com mais restrições – PSR)
A cada iteração, verifica cada regra novamente
Mesmo que poucas adições tenham sido feitas à base em
cada iteração
Todo fato novo inferido na iteração t deveria ser derivado de
pelo menos um fato novo inferido na t − 1
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 32 / 34
L.P.O. – Forward Chaining
Algoritmo: Problemas
Isso porque toda inferência que não necessita de um fato
novo da iteração t − 1 poderia ter sido feita em iterações
anteriores
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 33 / 34
L.P.O. – Forward Chaining
Algoritmo: Problemas
Isso porque toda inferência que não necessita de um fato
novo da iteração t − 1 poderia ter sido feita em iterações
anteriores
Solução: forward chaining incremental
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 33 / 34
L.P.O. – Forward Chaining
Algoritmo: Problemas
Isso porque toda inferência que não necessita de um fato
novo da iteração t − 1 poderia ter sido feita em iterações
anteriores
Solução: forward chaining incremental
Na iteração t, verificamos uma regra somente se sua premissa incluir
um pi que se unifica com um fato p0
i recém inferido na iteração t − 1
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 33 / 34
L.P.O. – Forward Chaining
Algoritmo: Problemas
Isso porque toda inferência que não necessita de um fato
novo da iteração t − 1 poderia ter sido feita em iterações
anteriores
Solução: forward chaining incremental
Na iteração t, verificamos uma regra somente se sua premissa incluir
um pi que se unifica com um fato p0
i recém inferido na iteração t − 1
Ou seja, case toda regra cuja premissa contiver um literal recém
adicionado, permitindo, no entanto, que os demais componentes
casem com fatos de iterações anteriores
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 33 / 34
L.P.O. – Forward Chaining
Algoritmo: Problemas
Isso porque toda inferência que não necessita de um fato
novo da iteração t − 1 poderia ter sido feita em iterações
anteriores
Solução: forward chaining incremental
Na iteração t, verificamos uma regra somente se sua premissa incluir
um pi que se unifica com um fato p0
i recém inferido na iteração t − 1
Ou seja, case toda regra cuja premissa contiver um literal recém
adicionado, permitindo, no entanto, que os demais componentes
casem com fatos de iterações anteriores
Pode gerar muitos fatos irrelevantes ao objetivo
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 33 / 34
L.P.O. – Forward Chaining
Algoritmo: Problemas
Isso porque toda inferência que não necessita de um fato
novo da iteração t − 1 poderia ter sido feita em iterações
anteriores
Solução: forward chaining incremental
Na iteração t, verificamos uma regra somente se sua premissa incluir
um pi que se unifica com um fato p0
i recém inferido na iteração t − 1
Ou seja, case toda regra cuja premissa contiver um literal recém
adicionado, permitindo, no entanto, que os demais componentes
casem com fatos de iterações anteriores
Pode gerar muitos fatos irrelevantes ao objetivo
Solução: Use backward chaining
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 33 / 34
Referências
Russell, S.; Norvig P. (2010): Artificial Intelligence: A Modern Approach. Prentice
Hall. 3a ed.
Slides do livro: http://aima.eecs.berkeley.edu/slides-pdf/
Hiż, A. (1957): Inferential Equivalence and Natural Deduction. The Journal of
Symbolic Logic, 22(3). pp. 237-240.
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-
and-Computer-Science/6-034Spring-2005/LectureNotes/index.htm
http://jmvidal.cse.sc.edu/talks/learningrules/first-orderlogicsdefs.xml
https:
//www.sciencedirect.com/topics/computer-science/unification-algorithm
http://logic.stanford.edu/intrologic/secondary/notes/chapter_12.html
Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 34 / 34

Mais conteúdo relacionado

Mais procurados

The exoplanets analogy to the Multiverse
The exoplanets analogy to the MultiverseThe exoplanets analogy to the Multiverse
The exoplanets analogy to the MultiverseOsame Kinouchi
 
Expoente 10 sintese tema i
Expoente 10 sintese tema iExpoente 10 sintese tema i
Expoente 10 sintese tema inunofq
 
Mini-Curso: Campos de gauge clássicos: Maxwell e Chern-Simons
Mini-Curso: Campos de gauge clássicos: Maxwell e Chern-SimonsMini-Curso: Campos de gauge clássicos: Maxwell e Chern-Simons
Mini-Curso: Campos de gauge clássicos: Maxwell e Chern-SimonsMaria Teresa Thomaz
 
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - NOVAMENTE K^5 COMO ...
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - NOVAMENTE K^5 COMO ...ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - NOVAMENTE K^5 COMO ...
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - NOVAMENTE K^5 COMO ...Antonio Claudio Lage Buffara
 
Tópicos em Biologia-Matemática II
Tópicos em Biologia-Matemática IITópicos em Biologia-Matemática II
Tópicos em Biologia-Matemática IIRoberto Kraenkel
 
Intro teoria dos numerros cap3
Intro teoria dos numerros cap3Intro teoria dos numerros cap3
Intro teoria dos numerros cap3Paulo Martins
 
18 algoritmos de busca de palavras em texto
18   algoritmos de busca de palavras em texto18   algoritmos de busca de palavras em texto
18 algoritmos de busca de palavras em textoRicardo Bolanho
 
Lista transforcacoes integrais
Lista transforcacoes integraisLista transforcacoes integrais
Lista transforcacoes integraisIago Lira
 
Matemática - Aula 4
Matemática - Aula 4Matemática - Aula 4
Matemática - Aula 4IBEST ESCOLA
 
Interdisciplinaridade matemática física
Interdisciplinaridade matemática físicaInterdisciplinaridade matemática física
Interdisciplinaridade matemática físicasilvanacarmo
 
Aula 7: A partícula livre
Aula 7: A partícula livreAula 7: A partícula livre
Aula 7: A partícula livreAdriano Silva
 
Programando em python recursao
Programando em python   recursaoProgramando em python   recursao
Programando em python recursaosamuelthiago
 
Análise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPAnálise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPDelacyr Ferreira
 
Algoritmo de Rabin-Karp - Artigo
Algoritmo de Rabin-Karp - ArtigoAlgoritmo de Rabin-Karp - Artigo
Algoritmo de Rabin-Karp - ArtigoLorran Pegoretti
 
Trabalho escrito física leis de Kepler By: Henrique
Trabalho escrito física leis de Kepler By: HenriqueTrabalho escrito física leis de Kepler By: Henrique
Trabalho escrito física leis de Kepler By: HenriqueHenrique Silva
 
Aula sobre prova de teoremas
Aula sobre prova de teoremasAula sobre prova de teoremas
Aula sobre prova de teoremasCarlos Campani
 

Mais procurados (20)

The exoplanets analogy to the Multiverse
The exoplanets analogy to the MultiverseThe exoplanets analogy to the Multiverse
The exoplanets analogy to the Multiverse
 
Knuth
KnuthKnuth
Knuth
 
Expoente 10 sintese tema i
Expoente 10 sintese tema iExpoente 10 sintese tema i
Expoente 10 sintese tema i
 
Mini-Curso: Campos de gauge clássicos: Maxwell e Chern-Simons
Mini-Curso: Campos de gauge clássicos: Maxwell e Chern-SimonsMini-Curso: Campos de gauge clássicos: Maxwell e Chern-Simons
Mini-Curso: Campos de gauge clássicos: Maxwell e Chern-Simons
 
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - NOVAMENTE K^5 COMO ...
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - NOVAMENTE K^5 COMO ...ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - NOVAMENTE K^5 COMO ...
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - NOVAMENTE K^5 COMO ...
 
Tópicos em Biologia-Matemática II
Tópicos em Biologia-Matemática IITópicos em Biologia-Matemática II
Tópicos em Biologia-Matemática II
 
Intro teoria dos numerros cap3
Intro teoria dos numerros cap3Intro teoria dos numerros cap3
Intro teoria dos numerros cap3
 
18 algoritmos de busca de palavras em texto
18   algoritmos de busca de palavras em texto18   algoritmos de busca de palavras em texto
18 algoritmos de busca de palavras em texto
 
Lista transforcacoes integrais
Lista transforcacoes integraisLista transforcacoes integrais
Lista transforcacoes integrais
 
Matemática - Aula 4
Matemática - Aula 4Matemática - Aula 4
Matemática - Aula 4
 
Interdisciplinaridade matemática física
Interdisciplinaridade matemática físicaInterdisciplinaridade matemática física
Interdisciplinaridade matemática física
 
Resumo1
Resumo1Resumo1
Resumo1
 
Aula 7: A partícula livre
Aula 7: A partícula livreAula 7: A partícula livre
Aula 7: A partícula livre
 
Teorema de Bolzano
Teorema de BolzanoTeorema de Bolzano
Teorema de Bolzano
 
Blog fis 26
Blog fis 26Blog fis 26
Blog fis 26
 
Programando em python recursao
Programando em python   recursaoProgramando em python   recursao
Programando em python recursao
 
Análise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPAnálise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NP
 
Algoritmo de Rabin-Karp - Artigo
Algoritmo de Rabin-Karp - ArtigoAlgoritmo de Rabin-Karp - Artigo
Algoritmo de Rabin-Karp - Artigo
 
Trabalho escrito física leis de Kepler By: Henrique
Trabalho escrito física leis de Kepler By: HenriqueTrabalho escrito física leis de Kepler By: Henrique
Trabalho escrito física leis de Kepler By: Henrique
 
Aula sobre prova de teoremas
Aula sobre prova de teoremasAula sobre prova de teoremas
Aula sobre prova de teoremas
 

Semelhante a LPO Resolução e Forward Chaining

Fundamentos Teóricos da Computação - UFAM
Fundamentos Teóricos da Computação - UFAMFundamentos Teóricos da Computação - UFAM
Fundamentos Teóricos da Computação - UFAMtchebraga
 
Lógica e Matemática Computacional - Exercícios 03
Lógica e Matemática Computacional - Exercícios 03Lógica e Matemática Computacional - Exercícios 03
Lógica e Matemática Computacional - Exercícios 03thomasdacosta
 
Lógica e Matemática Computacional - Exercícios 02
Lógica e Matemática Computacional - Exercícios 02Lógica e Matemática Computacional - Exercícios 02
Lógica e Matemática Computacional - Exercícios 02thomasdacosta
 
Aula 01 - Introdução à teoria de conjuntos.pdf
Aula 01 - Introdução à teoria de conjuntos.pdfAula 01 - Introdução à teoria de conjuntos.pdf
Aula 01 - Introdução à teoria de conjuntos.pdfThiago620596
 
Equação de Recorrência - I (Otimização)
Equação de Recorrência - I (Otimização)Equação de Recorrência - I (Otimização)
Equação de Recorrência - I (Otimização)Jedson Guedes
 
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - SÉRIE DOS INVERSOS ...
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - SÉRIE DOS INVERSOS ...ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - SÉRIE DOS INVERSOS ...
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - SÉRIE DOS INVERSOS ...Antonio Claudio Lage Buffara
 
Equacoes-Algebricas-Galois.pdf
Equacoes-Algebricas-Galois.pdfEquacoes-Algebricas-Galois.pdf
Equacoes-Algebricas-Galois.pdfRONIEPETERSONDARIO
 

Semelhante a LPO Resolução e Forward Chaining (8)

Fundamentos Teóricos da Computação - UFAM
Fundamentos Teóricos da Computação - UFAMFundamentos Teóricos da Computação - UFAM
Fundamentos Teóricos da Computação - UFAM
 
Lógica e Matemática Computacional - Exercícios 03
Lógica e Matemática Computacional - Exercícios 03Lógica e Matemática Computacional - Exercícios 03
Lógica e Matemática Computacional - Exercícios 03
 
27-aula27.pdf
27-aula27.pdf27-aula27.pdf
27-aula27.pdf
 
Lógica e Matemática Computacional - Exercícios 02
Lógica e Matemática Computacional - Exercícios 02Lógica e Matemática Computacional - Exercícios 02
Lógica e Matemática Computacional - Exercícios 02
 
Aula 01 - Introdução à teoria de conjuntos.pdf
Aula 01 - Introdução à teoria de conjuntos.pdfAula 01 - Introdução à teoria de conjuntos.pdf
Aula 01 - Introdução à teoria de conjuntos.pdf
 
Equação de Recorrência - I (Otimização)
Equação de Recorrência - I (Otimização)Equação de Recorrência - I (Otimização)
Equação de Recorrência - I (Otimização)
 
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - SÉRIE DOS INVERSOS ...
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - SÉRIE DOS INVERSOS ...ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - SÉRIE DOS INVERSOS ...
ANTONIO CLAUDIO LAGE BUFFARA RESPONDE: QUESTÕES PUC-RIO - SÉRIE DOS INVERSOS ...
 
Equacoes-Algebricas-Galois.pdf
Equacoes-Algebricas-Galois.pdfEquacoes-Algebricas-Galois.pdf
Equacoes-Algebricas-Galois.pdf
 

Mais de Norton Trevisan Roman

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03Norton Trevisan Roman
 

Mais de Norton Trevisan Roman (20)

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24
 
(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05
 
(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04
 
(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03(ACH2044) Inteligência Artificial - Aula 03
(ACH2044) Inteligência Artificial - Aula 03
 

Último

Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSilvana Silva
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasRosalina Simão Nunes
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptxthaisamaral9365923
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasCassio Meira Jr.
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Simulado 2 Etapa - 2024 Proximo Passo.pdf
Simulado 2 Etapa  - 2024 Proximo Passo.pdfSimulado 2 Etapa  - 2024 Proximo Passo.pdf
Simulado 2 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
Universidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumUniversidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumPatrícia de Sá Freire, PhD. Eng.
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdfJorge Andrade
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 

Último (20)

Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptx
 
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicasCenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
Cenários de Aprendizagem - Estratégia para implementação de práticas pedagógicas
 
Em tempo de Quaresma .
Em tempo de Quaresma                            .Em tempo de Quaresma                            .
Em tempo de Quaresma .
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
Habilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e EspecíficasHabilidades Motoras Básicas e Específicas
Habilidades Motoras Básicas e Específicas
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Simulado 2 Etapa - 2024 Proximo Passo.pdf
Simulado 2 Etapa  - 2024 Proximo Passo.pdfSimulado 2 Etapa  - 2024 Proximo Passo.pdf
Simulado 2 Etapa - 2024 Proximo Passo.pdf
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
Universidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumUniversidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comum
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf02. Informática - Windows 10 apostila completa.pdf
02. Informática - Windows 10 apostila completa.pdf
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 

LPO Resolução e Forward Chaining

  • 1. Inteligência Artificial – ACH2016 Aula 12 – Resolução e Forward Chaining em Lógica de Primeira Ordem Norton Trevisan Roman (norton@usp.br) 9 de abril de 2019 Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 1 / 34
  • 2. Lógica de Primeira Ordem – Resolução Passos ∀x∃y P(x) ⇒ R(x, y) ¬P(x) ∨ R(x, F(x)) 1 Converter de LPO para forma clausal Generalização da Forma Normal Conjuntiva para LPO Uma conjunção de disjunções Sem quantificadores 2 Determinar que variáveis substituir por quais quando da resolução Processo chamado Unificação 3 Executar a resolução Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 2 / 34
  • 3. Lógica de Primeira Ordem – Resolução Passos ∀x∃y P(x) ⇒ R(x, y) ¬P(x) ∨ R(x, F(x)) 1 Converter de LPO para forma clausal 4 Generalização da Forma Normal Conjuntiva para LPO Uma conjunção de disjunções Sem quantificadores 2 Determinar que variáveis substituir por quais quando da resolução Processo chamado Unificação 3 Executar a resolução Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 2 / 34
  • 4. Lógica de Primeira Ordem – Resolução Passos ∀x∃y P(x) ⇒ R(x, y) ¬P(x) ∨ R(x, F(x)) 1 Converter de LPO para forma clausal 4 Generalização da Forma Normal Conjuntiva para LPO Uma conjunção de disjunções Sem quantificadores 2 Determinar que variáveis substituir por quais quando da resolução 4 Processo chamado Unificação 3 Executar a resolução Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 2 / 34
  • 5. Lógica de Primeira Ordem – Resolução Passos ∀x∃y P(x) ⇒ R(x, y) ¬P(x) ∨ R(x, F(x)) 1 Converter de LPO para forma clausal 4 Generalização da Forma Normal Conjuntiva para LPO Uma conjunção de disjunções Sem quantificadores 2 Determinar que variáveis substituir por quais quando da resolução 4 Processo chamado Unificação 3 Executar a resolução + Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 2 / 34
  • 6. Lógica de Primeira Ordem – Resolução Regra de inferência para resolução α ∨ φ UMG(φ, ψ) = θ ¬ψ ∨ β (α ∨ β)θ Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 3 / 34
  • 7. Lógica de Primeira Ordem – Resolução Regra de inferência para resolução Como em lógica pro- posicional, unifica literais complementares α ∨ φ UMG(φ, ψ) = θ ¬ψ ∨ β (α ∨ β)θ Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 3 / 34
  • 8. Lógica de Primeira Ordem – Resolução Regra de inferência para resolução Literais complemen- tares em LPO: se um pode ser unificado à negação do outro α ∨ φ UMG(φ, ψ) = θ ¬ψ ∨ β (α ∨ β)θ Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 3 / 34
  • 9. Lógica de Primeira Ordem – Resolução Regra de inferência para resolução Literais complemen- tares em LPO: se um pode ser unificado à negação do outro α ∨ φ UMG(φ, ψ) = θ ¬ψ ∨ β (α ∨ β)θ Se tivermos α ∨ φ e ¬ψ ∨ β, e pudermos unificar φ e ψ com θ, então podemos concluir α ∨ β com a substituição θ aplicada a eles Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 3 / 34
  • 10. Lógica de Primeira Ordem – Resolução Regra de inferência para resolução Literais complemen- tares em LPO: se um pode ser unificado à negação do outro α ∨ φ UMG(φ, ψ) = θ ¬ψ ∨ β (α ∨ β)θ Se tivermos α ∨ φ e ¬ψ ∨ β, e pudermos unificar φ e ψ com θ, então podemos concluir α ∨ β com a substituição θ aplicada a eles Ambas cláusulas devem estar padronizadas Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 3 / 34
  • 11. Lógica de Primeira Ordem – Resolução Regra de inferência para resolução Literais complemen- tares em LPO: se um pode ser unificado à negação do outro α ∨ φ UMG(φ, ψ) = θ ¬ψ ∨ β (α ∨ β)θ Se tivermos α ∨ φ e ¬ψ ∨ β, e pudermos unificar φ e ψ com θ, então podemos concluir α ∨ β com a substituição θ aplicada a eles Ambas cláusulas devem estar padronizadas Ou seja, sem variáveis em comum Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 3 / 34
  • 12. Lógica de Primeira Ordem – Resolução Regra de inferência: Exemplo P(x) ∨ Q(x, y) ¬P(A) ∨ R(B, x) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 4 / 34
  • 13. Lógica de Primeira Ordem – Resolução Regra de inferência: Exemplo P(x) ∨ Q(x, y) ¬P(A) ∨ R(B, x) ∀x, y P(x) ∨ Q(x, y) ∀x ¬P(A) ∨ R(B, x) Lembre que há um quantificador universal implı́cito em cada cláusula Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 4 / 34
  • 14. Lógica de Primeira Ordem – Resolução Regra de inferência: Exemplo P(x) ∨ Q(x, y) ¬P(A) ∨ R(B, x) ∀x, y P(x) ∨ Q(x, y) ∀x ¬P(A) ∨ R(B, x) Lembre que há um quantificador universal implı́cito em cada cláusula Os x’s nas duas cláusulas são diferentes Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 4 / 34
  • 15. Lógica de Primeira Ordem – Resolução Regra de inferência: Exemplo P(x) ∨ Q(x, y) ¬P(A) ∨ R(B, x) ∀x, y P(x) ∨ Q(x, y) ∀x ¬P(A) ∨ R(B, x) Lembre que há um quantificador universal implı́cito em cada cláusula Os x’s nas duas cláusulas são diferentes ∀x, y P(x) ∨ Q(x, y) ∀x1 ¬P(A) ∨ R(B, x1) Para evitar confusão, re- nomeamos as variáveis Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 4 / 34
  • 16. Lógica de Primeira Ordem – Resolução Regra de inferência: Exemplo P(x) ∨ Q(x, y) ¬P(A) ∨ R(B, x) ∀x, y P(x) ∨ Q(x, y) ∀x ¬P(A) ∨ R(B, x) Lembre que há um quantificador universal implı́cito em cada cláusula Os x’s nas duas cláusulas são diferentes ∀x, y P(x) ∨ Q(x, y) ∀x1 ¬P(A) ∨ R(B, x1) Para evitar confusão, re- nomeamos as variáveis P(x) ∨ Q(x, y) ¬P(A) ∨ R(B, x1) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 4 / 34
  • 17. Lógica de Primeira Ordem – Resolução Regra de inferência: Exemplo P(x) ∨ Q(x, y) ¬P(A) ∨ R(B, x1) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 5 / 34
  • 18. Lógica de Primeira Ordem – Resolução Regra de inferência: Exemplo P(x) ∨ Q(x, y) ¬P(A) ∨ R(B, x1) α ∨ φ UMG(φ, ψ) = θ ¬ψ ∨ β (α ∨ β)θ Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 5 / 34
  • 19. Lógica de Primeira Ordem – Resolução Regra de inferência: Exemplo P(x) ∨ Q(x, y) ¬P(A) ∨ R(B, x1) α ∨ φ UMG(φ, ψ) = θ ¬ψ ∨ β (α ∨ β)θ Buscamos dois literais que neguem um o outro Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 5 / 34
  • 20. Lógica de Primeira Ordem – Resolução Regra de inferência: Exemplo P(x) ∨ Q(x, y) ¬P(A) ∨ R(B, x1) α ∨ φ UMG(φ, ψ) = θ ¬ψ ∨ β (α ∨ β)θ E tentamos unificá-los Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 5 / 34
  • 21. Lógica de Primeira Ordem – Resolução Regra de inferência: Exemplo P(x) ∨ Q(x, y) ¬P(A) ∨ R(B, x1) α ∨ φ UMG(φ, ψ) = θ ¬ψ ∨ β (α ∨ β)θ E tentamos unificá-los P(x) ∨ Q(x, y) θ = ¬P(A) ∨ R(B, x1) (Q(x, y) ∨ R(B, x1))θ Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 5 / 34
  • 22. Lógica de Primeira Ordem – Resolução Regra de inferência: Exemplo P(x) ∨ Q(x, y) ¬P(A) ∨ R(B, x1) α ∨ φ UMG(φ, ψ) = θ ¬ψ ∨ β (α ∨ β)θ E tentamos unificá-los P(x) ∨ Q(x, y) θ = {x/A} ¬P(A) ∨ R(B, x1) (Q(x, y) ∨ R(B, x1))θ Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 5 / 34
  • 23. Lógica de Primeira Ordem – Resolução Regra de inferência: Exemplo P(x) ∨ Q(x, y) ¬P(A) ∨ R(B, x1) α ∨ φ UMG(φ, ψ) = θ ¬ψ ∨ β (α ∨ β)θ E tentamos unificá-los P(x) ∨ Q(x, y) θ = {x/A} ¬P(A) ∨ R(B, x1) (Q(x, y) ∨ R(B, x1))θ P(A) ∨ Q(A, y) ¬P(A) ∨ R(B, x1) Q(A, y) ∨ R(B, x1) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 5 / 34
  • 24. Lógica de Primeira Ordem – Resolução Resolução: Exemplo Imagine que temos a seguinte base: João tem um cachorro Quem tem um cachorro é um amante dos animais Amantes dos animais não os matam João matou Bolão ou a curiosidade o fez Bolão é um gato Todo gato é um animal Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 6 / 34
  • 25. Lógica de Primeira Ordem – Resolução Resolução: Exemplo Imagine que temos a seguinte base: João tem um cachorro Quem tem um cachorro é um amante dos animais Amantes dos animais não os matam João matou Bolão ou a curiosidade o fez Bolão é um gato Todo gato é um animal Queremos então saber: A curiosidade matou Bolão? Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 6 / 34
  • 26. Lógica de Primeira Ordem – Resolução Exemplo: Construindo a base Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 7 / 34
  • 27. Lógica de Primeira Ordem – Resolução Exemplo: Construindo a base João tem um cachorro ∃x Cão(x) ∧ Ter(João, x) Cão(Totó) ∧ Ter(João, Totó) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 7 / 34
  • 28. Lógica de Primeira Ordem – Resolução Exemplo: Construindo a base João tem um cachorro ∃x Cão(x) ∧ Ter(João, x) Cão(Totó) ∧ Ter(João, Totó) Quem tem um cachorro é um amante dos animais ∀x (∃y Cão(y) ∧ Ter(x, y)) ⇒ AmaAnimais(x) ∀x (¬∃y Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x) ∀x∀y ¬(Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x) ∀x∀y ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 7 / 34
  • 29. Lógica de Primeira Ordem – Resolução Exemplo: Construindo a base João tem um cachorro ∃x Cão(x) ∧ Ter(João, x) Cão(Totó) ∧ Ter(João, Totó) Quem tem um cachorro é um amante dos animais ∀x (∃y Cão(y) ∧ Ter(x, y)) ⇒ AmaAnimais(x) ∀x (¬∃y Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x) ∀x∀y ¬(Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x) ∀x∀y ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Amantes dos animais não os matam ∀x AmaAnimais(x) ⇒ (∀y Animal(y) ⇒ ¬Matar(x, y)) ∀x ¬AmaAnimais(x) ∨ (∀y Animal(y) ⇒ ¬Matar(x, y)) ∀x ¬AmaAnimais(x) ∨ (∀y ¬Animal(y) ∨ ¬Matar(x, y)) ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 7 / 34
  • 30. Lógica de Primeira Ordem – Resolução Exemplo: Construindo a base João tem um cachorro ∃x Cão(x) ∧ Ter(João, x) Cão(Totó) ∧ Ter(João, Totó) Quem tem um cachorro é um amante dos animais ∀x (∃y Cão(y) ∧ Ter(x, y)) ⇒ AmaAnimais(x) ∀x (¬∃y Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x) ∀x∀y ¬(Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x) ∀x∀y ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Amantes dos animais não os matam ∀x AmaAnimais(x) ⇒ (∀y Animal(y) ⇒ ¬Matar(x, y)) ∀x ¬AmaAnimais(x) ∨ (∀y Animal(y) ⇒ ¬Matar(x, y)) ∀x ¬AmaAnimais(x) ∨ (∀y ¬Animal(y) ∨ ¬Matar(x, y)) ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) João matou Bolão ou a curiosidade o fez Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 7 / 34
  • 31. Lógica de Primeira Ordem – Resolução Exemplo: Construindo a base João tem um cachorro ∃x Cão(x) ∧ Ter(João, x) Cão(Totó) ∧ Ter(João, Totó) Quem tem um cachorro é um amante dos animais ∀x (∃y Cão(y) ∧ Ter(x, y)) ⇒ AmaAnimais(x) ∀x (¬∃y Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x) ∀x∀y ¬(Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x) ∀x∀y ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Amantes dos animais não os matam ∀x AmaAnimais(x) ⇒ (∀y Animal(y) ⇒ ¬Matar(x, y)) ∀x ¬AmaAnimais(x) ∨ (∀y Animal(y) ⇒ ¬Matar(x, y)) ∀x ¬AmaAnimais(x) ∨ (∀y ¬Animal(y) ∨ ¬Matar(x, y)) ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) João matou Bolão ou a curiosidade o fez Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Bolão é um gato Gato(Bolão) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 7 / 34
  • 32. Lógica de Primeira Ordem – Resolução Exemplo: Construindo a base João tem um cachorro ∃x Cão(x) ∧ Ter(João, x) Cão(Totó) ∧ Ter(João, Totó) Quem tem um cachorro é um amante dos animais ∀x (∃y Cão(y) ∧ Ter(x, y)) ⇒ AmaAnimais(x) ∀x (¬∃y Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x) ∀x∀y ¬(Cão(y) ∧ Ter(x, y)) ∨ AmaAnimais(x) ∀x∀y ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Amantes dos animais não os matam ∀x AmaAnimais(x) ⇒ (∀y Animal(y) ⇒ ¬Matar(x, y)) ∀x ¬AmaAnimais(x) ∨ (∀y Animal(y) ⇒ ¬Matar(x, y)) ∀x ¬AmaAnimais(x) ∨ (∀y ¬Animal(y) ∨ ¬Matar(x, y)) ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) João matou Bolão ou a curiosidade o fez Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Bolão é um gato Gato(Bolão) Todo gato é um animal ∀x Gato(x) ⇒ Animal(x) ∀x ¬Gato(x) ∨ Animal(x) ¬Gato(x) ∨ Animal(x) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 7 / 34
  • 33. Lógica de Primeira Ordem – Resolução Exemplo: Inferência Sentença Ação 1 Cão(Totó) Axioma 2 Ter(João, Totó) Axioma 3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma 4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma 5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma 6 Gato(Bolão) Axioma 7 ¬Gato(x) ∨ Animal(x) Axioma Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 8 / 34
  • 34. Lógica de Primeira Ordem – Resolução Exemplo: Inferência Sentença Ação 1 Cão(Totó) Axioma 2 Ter(João, Totó) Axioma 3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma 4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma 5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma 6 Gato(Bolão) Axioma 7 ¬Gato(x) ∨ Animal(x) Axioma A curiosidade matou Bolão? Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 8 / 34
  • 35. Lógica de Primeira Ordem – Resolução Exemplo: Inferência Sentença Ação 1 Cão(Totó) Axioma 2 Ter(João, Totó) Axioma 3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma 4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma 5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma 6 Gato(Bolão) Axioma 7 ¬Gato(x) ∨ Animal(x) Axioma A curiosidade matou Bolão? Se queremos provar isso, incluı́mos sua negação na base (ou seja, assumimos o oposto disso) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 8 / 34
  • 36. Lógica de Primeira Ordem – Resolução Exemplo: Inferência Sentença Ação 1 Cão(Totó) Axioma 2 Ter(João, Totó) Axioma 3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma 4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma 5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma 6 Gato(Bolão) Axioma 7 ¬Gato(x) ∨ Animal(x) Axioma 8 ¬Matar(Curiosidade, Bolão) Negação A curiosidade matou Bolão? Se queremos provar isso, incluı́mos sua negação na base (ou seja, assumimos o oposto disso) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 8 / 34
  • 37. Lógica de Primeira Ordem – Resolução Exemplo: Inferência Sentença Ação 1 Cão(Totó) Axioma 2 Ter(João, Totó) Axioma 3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma 4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma 5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma 6 Gato(Bolão) Axioma 7 ¬Gato(x) ∨ Animal(x) Axioma 8 ¬Matar(Curiosidade, Bolão) Negação Podemos então aplicar a regra da resolução a quaisquer pares de linhas que contenham literais unificáveis Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 9 / 34
  • 38. Lógica de Primeira Ordem – Resolução Exemplo: Inferência Sentença Ação 1 Cão(Totó) Axioma 2 Ter(João, Totó) Axioma 3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma 4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma 5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma 6 Gato(Bolão) Axioma 7 ¬Gato(x) ∨ Animal(x) Axioma 8 ¬Matar(Curiosidade, Bolão) Negação Lembrando que a resolução prova que BC |= α através da prova de que BC ∧ ¬α é insatisfatı́vel, ou seja, derivando a cláusula vazia (falso) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 9 / 34
  • 39. Lógica de Primeira Ordem – Resolução Exemplo: Inferência Sentença Ação 1 Cão(Totó) Axioma 2 Ter(João, Totó) Axioma 3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma 4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma 5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma 6 Gato(Bolão) Axioma 7 ¬Gato(x) ∨ Animal(x) Axioma 8 ¬Matar(Curiosidade, Bolão) Negação Podemos começar usando a Heurı́stica do conjunto de suporte: envolvemos a negação da conclusão na prova. Resolvemos então 5 e 8 Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 10 / 34
  • 40. Lógica de Primeira Ordem – Resolução Exemplo: Inferência Sentença Ação 1 Cão(Totó) Axioma 2 Ter(João, Totó) Axioma 3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma 4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma 5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma 6 Gato(Bolão) Axioma 7 ¬Gato(x) ∨ Animal(x) Axioma 8 ¬Matar(Curiosidade, Bolão) Negação 9 Matar(João, Bolão) 5,8 Podemos começar usando a Heurı́stica do conjunto de suporte: envolvemos a negação da conclusão na prova. Resolvemos então 5 e 8 Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 10 / 34
  • 41. Lógica de Primeira Ordem – Resolução Exemplo: Inferência Sentença Ação 1 Cão(Totó) Axioma 2 Ter(João, Totó) Axioma 3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma 4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma 5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma 6 Gato(Bolão) Axioma 7 ¬Gato(x) ∨ Animal(x) Axioma 8 ¬Matar(Curiosidade, Bolão) Negação 9 Matar(João, Bolão) 5,8 Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 11 / 34
  • 42. Lógica de Primeira Ordem – Resolução Exemplo: Inferência Sentença Ação 1 Cão(Totó) Axioma 2 Ter(João, Totó) Axioma 3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma 4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma 5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma 6 Gato(Bolão) Axioma 7 ¬Gato(x) ∨ Animal(x) Axioma 8 ¬Matar(Curiosidade, Bolão) Negação 9 Matar(João, Bolão) 5,8 10 Animal(Bolão) 6,7 {x/Bolão} Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 11 / 34
  • 43. Lógica de Primeira Ordem – Resolução Exemplo: Inferência Sentença Ação 1 Cão(Totó) Axioma 2 Ter(João, Totó) Axioma 3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma 4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma 5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma 6 Gato(Bolão) Axioma 7 ¬Gato(x) ∨ Animal(x) Axioma 8 ¬Matar(Curiosidade, Bolão) Negação 9 Matar(João, Bolão) 5,8 10 Animal(Bolão) 6,7 {x/Bolão} 11 ¬AmaAnimais(João) ∨ ¬Animal(Bolão) 4,9 {x/João, y/Bolão} Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 11 / 34
  • 44. Lógica de Primeira Ordem – Resolução Exemplo: Inferência Sentença Ação 1 Cão(Totó) Axioma 2 Ter(João, Totó) Axioma 3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma 4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma 5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma 6 Gato(Bolão) Axioma 7 ¬Gato(x) ∨ Animal(x) Axioma 8 ¬Matar(Curiosidade, Bolão) Negação 9 Matar(João, Bolão) 5,8 10 Animal(Bolão) 6,7 {x/Bolão} 11 ¬AmaAnimais(João) ∨ ¬Animal(Bolão) 4,9 {x/João, y/Bolão} 12 ¬AmaAnimais(João) 10,11 Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 11 / 34
  • 45. Lógica de Primeira Ordem – Resolução Exemplo: Inferência Sentença Ação 1 Cão(Totó) Axioma 2 Ter(João, Totó) Axioma 3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma 4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma 5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma 6 Gato(Bolão) Axioma 7 ¬Gato(x) ∨ Animal(x) Axioma 8 ¬Matar(Curiosidade, Bolão) Negação 9 Matar(João, Bolão) 5,8 10 Animal(Bolão) 6,7 {x/Bolão} 11 ¬AmaAnimais(João) ∨ ¬Animal(Bolão) 4,9 {x/João, y/Bolão} 12 ¬AmaAnimais(João) 10,11 13 ¬Cão(y) ∨ ¬Ter(João, y) 3,12 {x/João} Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 11 / 34
  • 46. Lógica de Primeira Ordem – Resolução Exemplo: Inferência Sentença Ação 1 Cão(Totó) Axioma 2 Ter(João, Totó) Axioma 3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma 4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma 5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma 6 Gato(Bolão) Axioma 7 ¬Gato(x) ∨ Animal(x) Axioma 8 ¬Matar(Curiosidade, Bolão) Negação 9 Matar(João, Bolão) 5,8 10 Animal(Bolão) 6,7 {x/Bolão} 11 ¬AmaAnimais(João) ∨ ¬Animal(Bolão) 4,9 {x/João, y/Bolão} 12 ¬AmaAnimais(João) 10,11 13 ¬Cão(y) ∨ ¬Ter(João, y) 3,12 {x/João} 14 ¬Cão(Totó) 13,2 {y/Totó} Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 11 / 34
  • 47. Lógica de Primeira Ordem – Resolução Exemplo: Inferência Sentença Ação 1 Cão(Totó) Axioma 2 Ter(João, Totó) Axioma 3 ¬Cão(y) ∨ ¬Ter(x, y) ∨ AmaAnimais(x) Axioma 4 ¬AmaAnimais(x) ∨ ¬Animal(y) ∨ ¬Matar(x, y) Axioma 5 Matar(João, Bolão) ∨ Matar(Curiosidade, Bolão) Axioma 6 Gato(Bolão) Axioma 7 ¬Gato(x) ∨ Animal(x) Axioma 8 ¬Matar(Curiosidade, Bolão) Negação 9 Matar(João, Bolão) 5,8 10 Animal(Bolão) 6,7 {x/Bolão} 11 ¬AmaAnimais(João) ∨ ¬Animal(Bolão) 4,9 {x/João, y/Bolão} 12 ¬AmaAnimais(João) 10,11 13 ¬Cão(y) ∨ ¬Ter(João, y) 3,12 {x/João} 14 ¬Cão(Totó) 13,2 {y/Totó} 15 falso 1,14 Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 11 / 34
  • 48. Lógica de Primeira Ordem – Resolução Resolução Binária Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
  • 49. Lógica de Primeira Ordem – Resolução Resolução Binária É a regra da resolução vista até agora Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
  • 50. Lógica de Primeira Ordem – Resolução Resolução Binária É a regra da resolução vista até agora Envolve apenas dois literais, um de cada cláusula resolvida Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
  • 51. Lógica de Primeira Ordem – Resolução Resolução Binária É a regra da resolução vista até agora Envolve apenas dois literais, um de cada cláusula resolvida Problema: não é completa Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
  • 52. Lógica de Primeira Ordem – Resolução Resolução Binária É a regra da resolução vista até agora Envolve apenas dois literais, um de cada cláusula resolvida Problema: não é completa Há conjuntos de cláusulas insatisfatı́veis (falsas em todas as interpretações) que não gerarão contradição através da aplicação sucessiva da regra Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
  • 53. Lógica de Primeira Ordem – Resolução Resolução Binária É a regra da resolução vista até agora Envolve apenas dois literais, um de cada cláusula resolvida Problema: não é completa Há conjuntos de cláusulas insatisfatı́veis (falsas em todas as interpretações) que não gerarão contradição através da aplicação sucessiva da regra Exemplo: Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
  • 54. Lógica de Primeira Ordem – Resolução Resolução Binária É a regra da resolução vista até agora Envolve apenas dois literais, um de cada cláusula resolvida Problema: não é completa Há conjuntos de cláusulas insatisfatı́veis (falsas em todas as interpretações) que não gerarão contradição através da aplicação sucessiva da regra Exemplo: Podemos obter uma contradição a partir dessas cláusulas? P(x) ∨ P(y) ¬P(v) ∨ ¬P(w) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
  • 55. Lógica de Primeira Ordem – Resolução Resolução Binária Base É a regra da resolução vista até agora Envolve apenas dois literais, um de cada cláusula resolvida Problema: não é completa Há conjuntos de cláusulas insatisfatı́veis (falsas em todas as interpretações) que não gerarão contradição através da aplicação sucessiva da regra Exemplo: Podemos obter uma contradição a partir dessas cláusulas? P(x) ∨ P(y) ¬P(v) ∨ ¬P(w) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
  • 56. Lógica de Primeira Ordem – Resolução Resolução Binária Negação do que queremos provar (P(v) ∧ P(w)) É a regra da resolução vista até agora Envolve apenas dois literais, um de cada cláusula resolvida Problema: não é completa Há conjuntos de cláusulas insatisfatı́veis (falsas em todas as interpretações) que não gerarão contradição através da aplicação sucessiva da regra Exemplo: Podemos obter uma contradição a partir dessas cláusulas? P(x) ∨ P(y) ¬P(v) ∨ ¬P(w) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 12 / 34
  • 57. Lógica de Primeira Ordem – Resolução Resolução Binária Deverı́amos, pois não há interpretação que faça ambas as cláusulas serem verdadeiras. Lembre que elas significam: ∀x, y P(x) ∨ P(y) ∀v, w ¬P(v) ∨ ¬P(w) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 13 / 34
  • 58. Lógica de Primeira Ordem – Resolução Resolução Binária Deverı́amos, pois não há interpretação que faça ambas as cláusulas serem verdadeiras. Lembre que elas significam: ∀x, y P(x) ∨ P(y) ∀v, w ¬P(v) ∨ ¬P(w) Então para ambas serem verdadeiras, seria necessário que P(x) e ¬P(x) fossem verdadeiros, para todo x Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 13 / 34
  • 59. Lógica de Primeira Ordem – Resolução Resolução Binária Deverı́amos, pois não há interpretação que faça ambas as cláusulas serem verdadeiras. Lembre que elas significam: ∀x, y P(x) ∨ P(y) ∀v, w ¬P(v) ∨ ¬P(w) Então para ambas serem verdadeiras, seria necessário que P(x) e ¬P(x) fossem verdadeiros, para todo x Contudo, aplicando resolução binária, obtemos, por exemplo P(x) ∨ ¬P(w), θ = {y/v} Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 13 / 34
  • 60. Lógica de Primeira Ordem – Resolução Resolução Binária Deverı́amos, pois não há interpretação que faça ambas as cláusulas serem verdadeiras. Lembre que elas significam: ∀x, y P(x) ∨ P(y) ∀v, w ¬P(v) ∨ ¬P(w) Então para ambas serem verdadeiras, seria necessário que P(x) e ¬P(x) fossem verdadeiros, para todo x Contudo, aplicando resolução binária, obtemos, por exemplo P(x) ∨ ¬P(w), θ = {y/v} E repetindo o procedimento com uma das orações originais, voltamos a elas novamente Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 13 / 34
  • 61. Lógica de Primeira Ordem – Resolução Resolução Generalizada Há no entanto uma extensão à resolução binária que é completa: a resolução generalizada Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 14 / 34
  • 62. Lógica de Primeira Ordem – Resolução Resolução Generalizada Há no entanto uma extensão à resolução binária que é completa: a resolução generalizada Nela, buscamos subconjuntos de literais em uma cláusula que possam ser unificados com a negação de um subconjunto de literais na outra cláusula Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 14 / 34
  • 63. Lógica de Primeira Ordem – Resolução Resolução Generalizada Há no entanto uma extensão à resolução binária que é completa: a resolução generalizada Nela, buscamos subconjuntos de literais em uma cláusula que possam ser unificados com a negação de um subconjunto de literais na outra cláusula Exemplo: Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 14 / 34
  • 64. Lógica de Primeira Ordem – Resolução Resolução Generalizada Há no entanto uma extensão à resolução binária que é completa: a resolução generalizada Nela, buscamos subconjuntos de literais em uma cláusula que possam ser unificados com a negação de um subconjunto de literais na outra cláusula Exemplo: Em “P(x) ∨ P(y)” e “¬P(v) ∨ ¬P(w)”, cada literal (P) em uma cláusula pode ser unificado com sua negação na outra Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 14 / 34
  • 65. Lógica de Primeira Ordem – Resolução Resolução Generalizada Há no entanto uma extensão à resolução binária que é completa: a resolução generalizada Nela, buscamos subconjuntos de literais em uma cláusula que possam ser unificados com a negação de um subconjunto de literais na outra cláusula Exemplo: Em “P(x) ∨ P(y)” e “¬P(v) ∨ ¬P(w)”, cada literal (P) em uma cláusula pode ser unificado com sua negação na outra Gerando assim a contradição necessária (falso) para a demonstração Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 14 / 34
  • 66. Lógica de Primeira Ordem – Resolução Fatoração Uma alternativa mais simples é introduzir uma nova regra de inferência, a ser usada com a resolução binária: Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 15 / 34
  • 67. Lógica de Primeira Ordem – Resolução Fatoração Uma alternativa mais simples é introduzir uma nova regra de inferência, a ser usada com a resolução binária: α ∨ β ∨ γ θ = UMG(α, β) (α ∨ γ) θ Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 15 / 34
  • 68. Lógica de Primeira Ordem – Resolução Fatoração Uma alternativa mais simples é introduzir uma nova regra de inferência, a ser usada com a resolução binária: α ∨ β ∨ γ θ = UMG(α, β) (α ∨ γ) θ Se pudermos unificar dois literais na mesma cláusula, então podemos eliminar um deles (não importa qual), e então aplicar o unificador à cláusula inteira Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 15 / 34
  • 69. Lógica de Primeira Ordem – Resolução Fatoração Uma alternativa mais simples é introduzir uma nova regra de inferência, a ser usada com a resolução binária: α ∨ β ∨ γ θ = UMG(α, β) (α ∨ γ) θ Se pudermos unificar dois literais na mesma cláusula, então podemos eliminar um deles (não importa qual), e então aplicar o unificador à cláusula inteira Essa alternativa é chamada de Fatoração Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 15 / 34
  • 70. Lógica de Primeira Ordem – Resolução Fatoração: Exemplo Q(y) ∨ P(x, y) ∨ P(v, A) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 16 / 34
  • 71. Lógica de Primeira Ordem – Resolução Fatoração: Exemplo Q(y) ∨ P(x, y) ∨ P(v, A) Q(A) ∨ P(v, A) {x/v, y/A} Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 16 / 34
  • 72. Lógica de Primeira Ordem – Resolução Fatoração: Exemplo Q(y) ∨ P(x, y) ∨ P(v, A) Q(A) ∨ P(v, A) {x/v, y/A} Note que se trata da remoção de literais duplicados Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 16 / 34
  • 73. Lógica de Primeira Ordem – Resolução Fatoração: Exemplo Q(y) ∨ P(x, y) ∨ P(v, A) Q(A) ∨ P(v, A) {x/v, y/A} Note que se trata da remoção de literais duplicados Agora a resolução binária pode ser usada Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 16 / 34
  • 74. Lógica de Primeira Ordem – Resolução Fatoração: Exemplo Q(y) ∨ P(x, y) ∨ P(v, A) Q(A) ∨ P(v, A) {x/v, y/A} Note que se trata da remoção de literais duplicados Agora a resolução binária pode ser usada A combinação de resolução binária com fatoração é completa Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 16 / 34
  • 75. Lógica de Primeira Ordem – Resolução Fatoração: Exemplo Q(y) ∨ P(x, y) ∨ P(v, A) Q(A) ∨ P(v, A) {x/v, y/A} Note que se trata da remoção de literais duplicados Agora a resolução binária pode ser usada A combinação de resolução binária com fatoração é completa Toda vez que a base levar a S, poderemos provar S a partir dela Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 16 / 34
  • 76. Lógica de Primeira Ordem – Resolução Respondendo Perguntas Até agora respondemos questões do tipo: “A curiosidade matou Bolão?” Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 17 / 34
  • 77. Lógica de Primeira Ordem – Resolução Respondendo Perguntas Até agora respondemos questões do tipo: “A curiosidade matou Bolão?” Resolução pode, contudo, ser usada para responder perguntas mais gerais: Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 17 / 34
  • 78. Lógica de Primeira Ordem – Resolução Respondendo Perguntas Até agora respondemos questões do tipo: “A curiosidade matou Bolão?” Resolução pode, contudo, ser usada para responder perguntas mais gerais: “Quem matou Bolão?” Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 17 / 34
  • 79. Lógica de Primeira Ordem – Resolução Respondendo Perguntas Até agora respondemos questões do tipo: “A curiosidade matou Bolão?” Resolução pode, contudo, ser usada para responder perguntas mais gerais: “Quem matou Bolão?” “Matar(w, Bolão)”? (Olhando a substituição {w/???}) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 17 / 34
  • 80. Lógica de Primeira Ordem – Resolução Respondendo Perguntas Até agora respondemos questões do tipo: “A curiosidade matou Bolão?” Resolução pode, contudo, ser usada para responder perguntas mais gerais: “Quem matou Bolão?” “Matar(w, Bolão)”? (Olhando a substituição {w/???}) Como? Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 17 / 34
  • 81. Lógica de Primeira Ordem – Resolução Respondendo Perguntas Até agora respondemos questões do tipo: “A curiosidade matou Bolão?” Resolução pode, contudo, ser usada para responder perguntas mais gerais: “Quem matou Bolão?” “Matar(w, Bolão)”? (Olhando a substituição {w/???}) Como? Truque de (Cordell) Green: Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 17 / 34
  • 82. Lógica de Primeira Ordem – Resolução Respondendo Perguntas Até agora respondemos questões do tipo: “A curiosidade matou Bolão?” Resolução pode, contudo, ser usada para responder perguntas mais gerais: “Quem matou Bolão?” “Matar(w, Bolão)”? (Olhando a substituição {w/???}) Como? Truque de (Cordell) Green: Adicione à negação do objetivo um literal de resposta Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 17 / 34
  • 83. Lógica de Primeira Ordem – Resolução Respondendo Perguntas Até agora respondemos questões do tipo: “A curiosidade matou Bolão?” Resolução pode, contudo, ser usada para responder perguntas mais gerais: “Quem matou Bolão?” “Matar(w, Bolão)”? (Olhando a substituição {w/???}) Como? Truque de (Cordell) Green: Adicione à negação do objetivo um literal de resposta Ex: ¬Matar(w, Bolão) ∨ Resposta(w) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 17 / 34
  • 84. Lógica de Primeira Ordem – Resolução Respondendo Perguntas: Exemplo Quem é mortal? Sentença Ação 1 ¬Homem(x) ∨ Mortal(x) Axioma 2 Homem(Sócrates) Axioma Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 18 / 34
  • 85. Lógica de Primeira Ordem – Resolução Respondendo Perguntas: Exemplo Quem é mortal? Sentença Ação 1 ¬Homem(x) ∨ Mortal(x) Axioma 2 Homem(Sócrates) Axioma 3 ¬Mortal(x) ∨ Resposta(x) Neg 1. Negamos a conclusão (de que existem mortais) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 18 / 34
  • 86. Lógica de Primeira Ordem – Resolução Respondendo Perguntas: Exemplo Quem é mortal? Sentença Ação 1 ¬Homem(x) ∨ Mortal(x) Axioma 2 Homem(Sócrates) Axioma 3 ¬Mortal(x) ∨ Resposta(x) Neg 1. Negamos a conclusão (de que existem mortais) 2. O truque é adicionar o literal Resposta(x) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 18 / 34
  • 87. Lógica de Primeira Ordem – Resolução Respondendo Perguntas: Exemplo Quem é mortal? Sentença Ação 1 ¬Homem(x) ∨ Mortal(x) Axioma 2 Homem(Sócrates) Axioma 3 ¬Mortal(x) ∨ Resposta(x) Neg 4 Mortal(Sócrates) 1,2 1. Negamos a conclusão (de que existem mortais) 2. O truque é adicionar o literal Resposta(x) 3. Fazemos a resolução Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 18 / 34
  • 88. Lógica de Primeira Ordem – Resolução Respondendo Perguntas: Exemplo Quem é mortal? Sentença Ação 1 ¬Homem(x) ∨ Mortal(x) Axioma 2 Homem(Sócrates) Axioma 3 ¬Mortal(x) ∨ Resposta(x) Neg 4 Mortal(Sócrates) 1,2 5 Resposta(Sócrates) 3,5 1. Negamos a conclusão (de que existem mortais) 2. O truque é adicionar o literal Resposta(x) 3. Fazemos a resolução 4. Quando chegamos a uma cláusula com apenas o literal Resposta, paramos Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 18 / 34
  • 89. Lógica de Primeira Ordem – Resolução Respondendo Perguntas: Exemplo Quem é mortal? Sentença Ação 1 ¬Homem(x) ∨ Mortal(x) Axioma 2 Homem(Sócrates) Axioma 3 ¬Mortal(x) ∨ Resposta(x) Neg 4 Mortal(Sócrates) 1,2 5 Resposta(Sócrates) 3,5 1. Negamos a conclusão (de que existem mortais) 2. O truque é adicionar o literal Resposta(x) 3. Fazemos a resolução 4. Quando chegamos a uma cláusula com apenas o literal Resposta, paramos 5. A resposta será o que estiver ligado à variável x nesse literal Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 18 / 34
  • 90. Lógica de Primeira Ordem – Resolução Igualdade Nenhum dos métodos de inferência até agora lidam com x = y Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 19 / 34
  • 91. Lógica de Primeira Ordem – Resolução Igualdade Nenhum dos métodos de inferência até agora lidam com x = y O que fazer quando a prova contém um ’=’? Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 19 / 34
  • 92. Lógica de Primeira Ordem – Resolução Igualdade Nenhum dos métodos de inferência até agora lidam com x = y O que fazer quando a prova contém um ’=’? Adicione uma regra extra – paramodulação (não veremos) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 19 / 34
  • 93. Lógica de Primeira Ordem – Resolução Igualdade Nenhum dos métodos de inferência até agora lidam com x = y O que fazer quando a prova contém um ’=’? Adicione uma regra extra – paramodulação (não veremos) Usada em provadores de teoremas Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 19 / 34
  • 94. Lógica de Primeira Ordem – Resolução Igualdade Nenhum dos métodos de inferência até agora lidam com x = y O que fazer quando a prova contém um ’=’? Adicione uma regra extra – paramodulação (não veremos) Usada em provadores de teoremas Estenda o algoritmo de unificação (não veremos) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 19 / 34
  • 95. Lógica de Primeira Ordem – Resolução Igualdade Nenhum dos métodos de inferência até agora lidam com x = y O que fazer quando a prova contém um ’=’? Adicione uma regra extra – paramodulação (não veremos) Usada em provadores de teoremas Estenda o algoritmo de unificação (não veremos) Usada em provadores de teoremas Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 19 / 34
  • 96. Lógica de Primeira Ordem – Resolução Igualdade Nenhum dos métodos de inferência até agora lidam com x = y O que fazer quando a prova contém um ’=’? Adicione uma regra extra – paramodulação (não veremos) Usada em provadores de teoremas Estenda o algoritmo de unificação (não veremos) Usada em provadores de teoremas Trate a igualdade como qualquer outro predicado Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 19 / 34
  • 97. Lógica de Primeira Ordem – Resolução Igualdade Nenhum dos métodos de inferência até agora lidam com x = y O que fazer quando a prova contém um ’=’? Adicione uma regra extra – paramodulação (não veremos) Usada em provadores de teoremas Estenda o algoritmo de unificação (não veremos) Usada em provadores de teoremas Trate a igualdade como qualquer outro predicado Restrinja sua semântica via axiomas Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 19 / 34
  • 98. Lógica de Primeira Ordem – Resolução Axiomatizando Igualdade Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 20 / 34
  • 99. Lógica de Primeira Ordem – Resolução Axiomatizando Igualdade Aproximamos a igualdade por equivalência, tomando por base suas propriedades Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 20 / 34
  • 100. Lógica de Primeira Ordem – Resolução Axiomatizando Igualdade Aproximamos a igualdade por equivalência, tomando por base suas propriedades ∀x Igual(x, x) (reflexividade) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 20 / 34
  • 101. Lógica de Primeira Ordem – Resolução Axiomatizando Igualdade Aproximamos a igualdade por equivalência, tomando por base suas propriedades ∀x Igual(x, x) (reflexividade) ∀x, y Igual(x, y) ⇒ Igual(y, x) (simetria) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 20 / 34
  • 102. Lógica de Primeira Ordem – Resolução Axiomatizando Igualdade Aproximamos a igualdade por equivalência, tomando por base suas propriedades ∀x Igual(x, x) (reflexividade) ∀x, y Igual(x, y) ⇒ Igual(y, x) (simetria) ∀x, y, z Igual(x, y) ∧ Igual(y, z) ⇒ Igual(x, z) (transitividade) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 20 / 34
  • 103. Lógica de Primeira Ordem – Resolução Axiomatizando Igualdade Aproximamos a igualdade por equivalência, tomando por base suas propriedades ∀x Igual(x, x) (reflexividade) ∀x, y Igual(x, y) ⇒ Igual(y, x) (simetria) ∀x, y, z Igual(x, y) ∧ Igual(y, z) ⇒ Igual(x, z) (transitividade) Permitimos então substituição, em qualquer predicado ou função, de termos iguais: Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 20 / 34
  • 104. Lógica de Primeira Ordem – Resolução Axiomatizando Igualdade Aproximamos a igualdade por equivalência, tomando por base suas propriedades ∀x Igual(x, x) (reflexividade) ∀x, y Igual(x, y) ⇒ Igual(y, x) (simetria) ∀x, y, z Igual(x, y) ∧ Igual(y, z) ⇒ Igual(x, z) (transitividade) Permitimos então substituição, em qualquer predicado ou função, de termos iguais: ∀x, y Igual(x, y) ⇒ (Pi (x) ⇔ Pi (y)), para todo Pi Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 20 / 34
  • 105. Lógica de Primeira Ordem – Resolução Axiomatizando Igualdade Aproximamos a igualdade por equivalência, tomando por base suas propriedades ∀x Igual(x, x) (reflexividade) ∀x, y Igual(x, y) ⇒ Igual(y, x) (simetria) ∀x, y, z Igual(x, y) ∧ Igual(y, z) ⇒ Igual(x, z) (transitividade) Permitimos então substituição, em qualquer predicado ou função, de termos iguais: ∀x, y Igual(x, y) ⇒ (Pi (x) ⇔ Pi (y)), para todo Pi Para cada Pi (e função) precisamos incluir um axioma assim Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 20 / 34
  • 106. Lógica de Primeira Ordem – Inferência Forward Chaining Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 21 / 34
  • 107. L.P.O. – Forward Chaining Caracterı́sticas Como na lógica proposicional: Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 22 / 34
  • 108. L.P.O. – Forward Chaining Caracterı́sticas Como na lógica proposicional: Funciona apenas com cláusulas definidas Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 22 / 34
  • 109. L.P.O. – Forward Chaining Caracterı́sticas Como na lógica proposicional: Funciona apenas com cláusulas definidas Antecedentes ⇒ Consequente Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 22 / 34
  • 110. L.P.O. – Forward Chaining Caracterı́sticas Como na lógica proposicional: Funciona apenas com cláusulas definidas Antecedentes ⇒ Consequente A partir de sentenças atômicas, aplica Modus Ponens progressivamente, adicionando novas sentenças atômicas Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 22 / 34
  • 111. L.P.O. – Forward Chaining Caracterı́sticas Como na lógica proposicional: Funciona apenas com cláusulas definidas Antecedentes ⇒ Consequente A partir de sentenças atômicas, aplica Modus Ponens progressivamente, adicionando novas sentenças atômicas Utilidade Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 22 / 34
  • 112. L.P.O. – Forward Chaining Caracterı́sticas Como na lógica proposicional: Funciona apenas com cláusulas definidas Antecedentes ⇒ Consequente A partir de sentenças atômicas, aplica Modus Ponens progressivamente, adicionando novas sentenças atômicas Utilidade Sistemas que fazem inferência em resposta a informações recém-chegadas Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 22 / 34
  • 113. L.P.O. – Forward Chaining Caracterı́sticas Como na lógica proposicional: Funciona apenas com cláusulas definidas Antecedentes ⇒ Consequente A partir de sentenças atômicas, aplica Modus Ponens progressivamente, adicionando novas sentenças atômicas Utilidade Sistemas que fazem inferência em resposta a informações recém-chegadas Sistemas baseados em regras, do tipo Situação ⇒ Resposta Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 22 / 34
  • 114. L.P.O. – Forward Chaining Caracterı́sticas Como na lógica proposicional: Funciona apenas com cláusulas definidas Antecedentes ⇒ Consequente A partir de sentenças atômicas, aplica Modus Ponens progressivamente, adicionando novas sentenças atômicas Utilidade Sistemas que fazem inferência em resposta a informações recém-chegadas Sistemas baseados em regras, do tipo Situação ⇒ Resposta Mais eficiente que resolução, nesses casos Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 22 / 34
  • 115. L.P.O. – Forward Chaining Relembrando Cláusulas Definidas Disjunções de literais, dos quais exatamente um é positivo Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 23 / 34
  • 116. L.P.O. – Forward Chaining Relembrando Cláusulas Definidas Disjunções de literais, dos quais exatamente um é positivo ¬P(x) ∨ ¬Q(x) ∨ ¬R(x) ∨ K(x), ou Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 23 / 34
  • 117. L.P.O. – Forward Chaining Relembrando Cláusulas Definidas Disjunções de literais, dos quais exatamente um é positivo ¬P(x) ∨ ¬Q(x) ∨ ¬R(x) ∨ K(x), ou P(x) ∧ Q(x) ∧ R(x) ⇒ K(x) (Conjunção de literais positivos ⇒ único literal positivo) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 23 / 34
  • 118. L.P.O. – Forward Chaining Relembrando Cláusulas Definidas Disjunções de literais, dos quais exatamente um é positivo ¬P(x) ∨ ¬Q(x) ∨ ¬R(x) ∨ K(x), ou P(x) ∧ Q(x) ∧ R(x) ⇒ K(x) (Conjunção de literais positivos ⇒ único literal positivo) Ou uma sentença atômica Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 23 / 34
  • 119. L.P.O. – Forward Chaining Relembrando Cláusulas Definidas Disjunções de literais, dos quais exatamente um é positivo ¬P(x) ∨ ¬Q(x) ∨ ¬R(x) ∨ K(x), ou P(x) ∧ Q(x) ∧ R(x) ⇒ K(x) (Conjunção de literais positivos ⇒ único literal positivo) Ou uma sentença atômica P(x) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 23 / 34
  • 120. L.P.O. – Forward Chaining Relembrando Cláusulas Definidas Disjunções de literais, dos quais exatamente um é positivo ¬P(x) ∨ ¬Q(x) ∨ ¬R(x) ∨ K(x), ou P(x) ∧ Q(x) ∧ R(x) ⇒ K(x) (Conjunção de literais positivos ⇒ único literal positivo) Ou uma sentença atômica P(x) Gato(Bolão) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 23 / 34
  • 121. L.P.O. – Forward Chaining Bases de Conhecimento com Cláusulas Definidas Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 24 / 34
  • 122. L.P.O. – Forward Chaining Bases de Conhecimento com Cláusulas Definidas Cada entrada na base é uma cláusula definida Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 24 / 34
  • 123. L.P.O. – Forward Chaining Bases de Conhecimento com Cláusulas Definidas Cada entrada na base é uma cláusula definida P(x) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 24 / 34
  • 124. L.P.O. – Forward Chaining Bases de Conhecimento com Cláusulas Definidas Cada entrada na base é uma cláusula definida P(x) P(x) ∧ Q(x) ∧ R(x) ⇒ K(x) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 24 / 34
  • 125. L.P.O. – Forward Chaining Bases de Conhecimento com Cláusulas Definidas Cada entrada na base é uma cláusula definida P(x) P(x) ∧ Q(x) ∧ R(x) ⇒ K(x) Traz implı́cita, em cada entrada, o quantificador universal Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 24 / 34
  • 126. L.P.O. – Forward Chaining Bases de Conhecimento com Cláusulas Definidas Cada entrada na base é uma cláusula definida ∀x P(x) ∀x P(x) ∧ Q(x) ∧ R(x) ⇒ K(x) Traz implı́cita, em cada entrada, o quantificador universal Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 24 / 34
  • 127. L.P.O. – Forward Chaining Bases de Conhecimento com Cláusulas Definidas Cada entrada na base é uma cláusula definida ∀x P(x) ∀x P(x) ∧ Q(x) ∧ R(x) ⇒ K(x) Traz implı́cita, em cada entrada, o quantificador universal Também aqui precisamos eliminar o quantificador existencial (skolemização) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 24 / 34
  • 128. L.P.O. – Forward Chaining Bases de Conhecimento com Cláusulas Definidas Cada entrada na base é uma cláusula definida ∀x P(x) ∀x P(x) ∧ Q(x) ∧ R(x) ⇒ K(x) Traz implı́cita, em cada entrada, o quantificador universal Também aqui precisamos eliminar o quantificador existencial (skolemização) Além de padronizar as variáveis das entradas que serão unificadas (como na Resolução) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 24 / 34
  • 129. L.P.O. – Forward Chaining Funcionamento Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 25 / 34
  • 130. L.P.O. – Forward Chaining Funcionamento Começando com os fatos conhecidos, verifique todas as regras cujas premissas são satisfeitas Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 25 / 34
  • 131. L.P.O. – Forward Chaining Funcionamento Começando com os fatos conhecidos, verifique todas as regras cujas premissas são satisfeitas Modus Ponens α ⇒ β UMG(α, ψ) = θ P(x) ⇒ Q(x) ψ P(A) (β) θ Q(A) {x/A} Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 25 / 34
  • 132. L.P.O. – Forward Chaining Funcionamento Começando com os fatos conhecidos, verifique todas as regras cujas premissas são satisfeitas Modus Ponens α ⇒ β UMG(α, ψ) = θ P(x) ⇒ Q(x) ψ P(A) (β) θ Q(A) {x/A} Adicione suas conclusões aos fatos conhecidos Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 25 / 34
  • 133. L.P.O. – Forward Chaining Funcionamento Começando com os fatos conhecidos, verifique todas as regras cujas premissas são satisfeitas Modus Ponens α ⇒ β UMG(α, ψ) = θ P(x) ⇒ Q(x) ψ P(A) (β) θ Q(A) {x/A} Adicione suas conclusões aos fatos conhecidos Repita o procedimento até que a query seja respondida (assumindo que uma resposta apenas baste), ou nenhum novo fato puder ser adicionado Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 25 / 34
  • 134. L.P.O. – Forward Chaining Funcionamento Um fato não será novo se for apenas uma renomeação de um fato conhecido Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 26 / 34
  • 135. L.P.O. – Forward Chaining Funcionamento Um fato não será novo se for apenas uma renomeação de um fato conhecido Ou seja, se ambos significados forem idênticos Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 26 / 34
  • 136. L.P.O. – Forward Chaining Funcionamento Um fato não será novo se for apenas uma renomeação de um fato conhecido Ou seja, se ambos significados forem idênticos Uma sentença é uma renomeação de outra se forem idênticas, exceto pelos nomes de suas variáveis Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 26 / 34
  • 137. L.P.O. – Forward Chaining Funcionamento Um fato não será novo se for apenas uma renomeação de um fato conhecido Ou seja, se ambos significados forem idênticos Uma sentença é uma renomeação de outra se forem idênticas, exceto pelos nomes de suas variáveis Ex: Gosta(x, Sorvete) e Gosta(y, Sorvete) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 26 / 34
  • 138. L.P.O. – Forward Chaining Exemplo Base: É um crime para um compatriota vender armas a nações hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e todos seus mı́sseis foram vendidos a eles por um compatriota: Osmar Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 27 / 34
  • 139. L.P.O. – Forward Chaining Exemplo Base: É um crime para um compatriota vender armas a nações hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e todos seus mı́sseis foram vendidos a eles por um compatriota: Osmar Osmar é criminoso? Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 27 / 34
  • 140. L.P.O. – Forward Chaining Exemplo Base: É um crime para um compatriota vender armas a nações hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e todos seus mı́sseis foram vendidos a eles por um compatriota: Osmar Osmar é criminoso? 1. ∀x, y, z Compatriota(x) ∧ Vender(x, y, z) ∧ Arma(y) ∧ Hostil(z) ⇒ Criminoso(x) Compatriota(x) ∧ Vender(x, y, z) ∧ Arma(y) ∧ Hostil(z) ⇒ Criminoso(x) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 27 / 34
  • 141. L.P.O. – Forward Chaining Exemplo Base: É um crime para um compatriota vender armas a nações hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e todos seus mı́sseis foram vendidos a eles por um compatriota: Osmar Osmar é criminoso? 1. ∀x, y, z Compatriota(x) ∧ Vender(x, y, z) ∧ Arma(y) ∧ Hostil(z) ⇒ Criminoso(x) Compatriota(x) ∧ Vender(x, y, z) ∧ Arma(y) ∧ Hostil(z) ⇒ Criminoso(x) 2. Inimigo(Pit) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 27 / 34
  • 142. L.P.O. – Forward Chaining Exemplo Base: É um crime para um compatriota vender armas a nações hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e todos seus mı́sseis foram vendidos a eles por um compatriota: Osmar Osmar é criminoso? 1. ∀x, y, z Compatriota(x) ∧ Vender(x, y, z) ∧ Arma(y) ∧ Hostil(z) ⇒ Criminoso(x) Compatriota(x) ∧ Vender(x, y, z) ∧ Arma(y) ∧ Hostil(z) ⇒ Criminoso(x) 2. Inimigo(Pit) 3. ∃x Mı́ssil(x) ∧ Ter(Pit, x) Mı́ssil(M) ∧ Ter(Pit, M) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 27 / 34
  • 143. L.P.O. – Forward Chaining Exemplo Base: É um crime para um compatriota vender armas a nações hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e todos seus mı́sseis foram vendidos a eles por um compatriota: Osmar Osmar é criminoso? 4. ∀x Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit) Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 28 / 34
  • 144. L.P.O. – Forward Chaining Exemplo Base: É um crime para um compatriota vender armas a nações hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e todos seus mı́sseis foram vendidos a eles por um compatriota: Osmar Osmar é criminoso? 4. ∀x Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit) Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit) 5. Mı́sseis são armas ∀x Mı́ssil(x) ⇒ Arma(x) Mı́ssil(x) ⇒ Arma(x) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 28 / 34
  • 145. L.P.O. – Forward Chaining Exemplo Base: É um crime para um compatriota vender armas a nações hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e todos seus mı́sseis foram vendidos a eles por um compatriota: Osmar Osmar é criminoso? 4. ∀x Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit) Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit) 5. Mı́sseis são armas ∀x Mı́ssil(x) ⇒ Arma(x) Mı́ssil(x) ⇒ Arma(x) Note que essa sentença não está no texto → faz parte do conhecimento comum Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 28 / 34
  • 146. L.P.O. – Forward Chaining Exemplo Base: É um crime para um compatriota vender armas a nações hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e todos seus mı́sseis foram vendidos a eles por um compatriota: Osmar Osmar é criminoso? 6. Inimigos são hostis ∀x Inimigo(x) ⇒ Hostil(x) Inimigo(x) ⇒ Hostil(x) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 29 / 34
  • 147. L.P.O. – Forward Chaining Exemplo Base: É um crime para um compatriota vender armas a nações hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e todos seus mı́sseis foram vendidos a eles por um compatriota: Osmar Osmar é criminoso? 6. Inimigos são hostis ∀x Inimigo(x) ⇒ Hostil(x) Inimigo(x) ⇒ Hostil(x) Mais conhecimento comum . . . Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 29 / 34
  • 148. L.P.O. – Forward Chaining Exemplo Base: É um crime para um compatriota vender armas a nações hostis. Pitbulândia, um inimigo nosso, tem alguns mı́sseis, e todos seus mı́sseis foram vendidos a eles por um compatriota: Osmar Osmar é criminoso? 6. Inimigos são hostis ∀x Inimigo(x) ⇒ Hostil(x) Inimigo(x) ⇒ Hostil(x) Mais conhecimento comum . . . 7. Compatriota(Os) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 29 / 34
  • 149. L.P.O. – Forward Chaining Exemplo Osmar é criminoso? Sentença Obs 1 Compatriota(x) ∧ Vender(x, y, z) ∧ Arma(y) ∧ Hostil(z) ⇒ Criminoso(x) axioma 2 Inimigo(Pit) axioma 3 Mı́ssil(M) axioma 4 Ter(Pit, M) axioma 5 Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit) axioma 6 Mı́ssil(x) ⇒ Arma(x) axioma 7 Inimigo(x) ⇒ Hostil(x) axioma 8 Compatriota(Os) axioma Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 30 / 34
  • 150. L.P.O. – Forward Chaining Exemplo Osmar é criminoso? Sentença Obs 1 Compatriota(x) ∧ Vender(x, y, z) ∧ Arma(y) ∧ Hostil(z) ⇒ Criminoso(x) axioma 2 Inimigo(Pit) axioma 3 Mı́ssil(M) axioma 4 Ter(Pit, M) axioma 5 Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit) axioma 6 Mı́ssil(x) ⇒ Arma(x) axioma 7 Inimigo(x) ⇒ Hostil(x) axioma 8 Compatriota(Os) axioma 9 Arma(M) 3,6 {x/M} Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 30 / 34
  • 151. L.P.O. – Forward Chaining Exemplo Osmar é criminoso? Sentença Obs 1 Compatriota(x) ∧ Vender(x, y, z) ∧ Arma(y) ∧ Hostil(z) ⇒ Criminoso(x) axioma 2 Inimigo(Pit) axioma 3 Mı́ssil(M) axioma 4 Ter(Pit, M) axioma 5 Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit) axioma 6 Mı́ssil(x) ⇒ Arma(x) axioma 7 Inimigo(x) ⇒ Hostil(x) axioma 8 Compatriota(Os) axioma 9 Arma(M) 3,6 {x/M} 10 Hostil(Pit) 2,7 {x/Pit} Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 30 / 34
  • 152. L.P.O. – Forward Chaining Exemplo Osmar é criminoso? Sentença Obs 1 Compatriota(x) ∧ Vender(x, y, z) ∧ Arma(y) ∧ Hostil(z) ⇒ Criminoso(x) axioma 2 Inimigo(Pit) axioma 3 Mı́ssil(M) axioma 4 Ter(Pit, M) axioma 5 Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit) axioma 6 Mı́ssil(x) ⇒ Arma(x) axioma 7 Inimigo(x) ⇒ Hostil(x) axioma 8 Compatriota(Os) axioma 9 Arma(M) 3,6 {x/M} 10 Hostil(Pit) 2,7 {x/Pit} 11 Vender(Os, M, Pit) 3,4,5 {x/M} Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 30 / 34
  • 153. L.P.O. – Forward Chaining Exemplo Osmar é criminoso? Sentença Obs 1 Compatriota(x) ∧ Vender(x, y, z) ∧ Arma(y) ∧ Hostil(z) ⇒ Criminoso(x) axioma 2 Inimigo(Pit) axioma 3 Mı́ssil(M) axioma 4 Ter(Pit, M) axioma 5 Mı́ssil(x) ∧ Ter(Pit, x) ⇒ Vender(Os, x, Pit) axioma 6 Mı́ssil(x) ⇒ Arma(x) axioma 7 Inimigo(x) ⇒ Hostil(x) axioma 8 Compatriota(Os) axioma 9 Arma(M) 3,6 {x/M} 10 Hostil(Pit) 2,7 {x/Pit} 11 Vender(Os, M, Pit) 3,4,5 {x/M} 12 Criminoso(Os) 1,8,9,10,11 {x/Os, y/M, z/Pit} Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 30 / 34
  • 154. L.P.O. – Forward Chaining Algoritmo Função Forward-Chaining(BC,α): substituição repita novo ← {} para cada sentença s em BC faça (p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s) para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0 1 ∧ . . . ∧ p0 n) θ para algum p0 1, . . . , p0 n em BC faça q0 ← (q) θ se q0 não se unificar a alguma sentença em BC ou novo então Adicione q0 a novo φ ← Unifica(q0 , α) se φ não for falha então retorna φ Adicione novo a BC até que novo esteja vazio retorna falso Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
  • 155. L.P.O. – Forward Chaining Algoritmo Base de Conhecimento Função Forward-Chaining(BC,α): substituição repita novo ← {} para cada sentença s em BC faça (p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s) para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0 1 ∧ . . . ∧ p0 n) θ para algum p0 1, . . . , p0 n em BC faça q0 ← (q) θ se q0 não se unificar a alguma sentença em BC ou novo então Adicione q0 a novo φ ← Unifica(q0 , α) se φ não for falha então retorna φ Adicione novo a BC até que novo esteja vazio retorna falso Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
  • 156. L.P.O. – Forward Chaining Algoritmo Query (sentença atômica) Função Forward-Chaining(BC,α): substituição repita novo ← {} para cada sentença s em BC faça (p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s) para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0 1 ∧ . . . ∧ p0 n) θ para algum p0 1, . . . , p0 n em BC faça q0 ← (q) θ se q0 não se unificar a alguma sentença em BC ou novo então Adicione q0 a novo φ ← Unifica(q0 , α) se φ não for falha então retorna φ Adicione novo a BC até que novo esteja vazio retorna falso Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
  • 157. L.P.O. – Forward Chaining Algoritmo Conjunto de novas sentenças inferidas a cada iteração Função Forward-Chaining(BC,α): substituição repita novo ← {} para cada sentença s em BC faça (p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s) para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0 1 ∧ . . . ∧ p0 n) θ para algum p0 1, . . . , p0 n em BC faça q0 ← (q) θ se q0 não se unificar a alguma sentença em BC ou novo então Adicione q0 a novo φ ← Unifica(q0 , α) se φ não for falha então retorna φ Adicione novo a BC até que novo esteja vazio retorna falso Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
  • 158. L.P.O. – Forward Chaining Algoritmo PadronizaVar troca todas as variáveis em seus argumentos por variáveis ainda não usadas Função Forward-Chaining(BC,α): substituição repita novo ← {} para cada sentença s em BC faça (p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s) para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0 1 ∧ . . . ∧ p0 n) θ para algum p0 1, . . . , p0 n em BC faça q0 ← (q) θ se q0 não se unificar a alguma sentença em BC ou novo então Adicione q0 a novo φ ← Unifica(q0 , α) se φ não for falha então retorna φ Adicione novo a BC até que novo esteja vazio retorna falso Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
  • 159. L.P.O. – Forward Chaining Algoritmo Começando dos fatos conhe- cidos, ativa todas as regras cujas premissas são satisfeitas Função Forward-Chaining(BC,α): substituição repita novo ← {} para cada sentença s em BC faça (p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s) para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0 1 ∧ . . . ∧ p0 n) θ para algum p0 1, . . . , p0 n em BC faça q0 ← (q) θ se q0 não se unificar a alguma sentença em BC ou novo então Adicione q0 a novo φ ← Unifica(q0 , α) se φ não for falha então retorna φ Adicione novo a BC até que novo esteja vazio retorna falso Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
  • 160. L.P.O. – Forward Chaining Algoritmo Adicionando sua con- clusão aos fatos conhecidos Função Forward-Chaining(BC,α): substituição repita novo ← {} para cada sentença s em BC faça (p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s) para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0 1 ∧ . . . ∧ p0 n) θ para algum p0 1, . . . , p0 n em BC faça q0 ← (q) θ se q0 não se unificar a alguma sentença em BC ou novo então Adicione q0 a novo φ ← Unifica(q0 , α) se φ não for falha então retorna φ Adicione novo a BC até que novo esteja vazio retorna falso Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
  • 161. L.P.O. – Forward Chaining Algoritmo Mas somente se o fato for desco- nhecido → se não é apenas uma renomeação de um conhecido Função Forward-Chaining(BC,α): substituição repita novo ← {} para cada sentença s em BC faça (p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s) para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0 1 ∧ . . . ∧ p0 n) θ para algum p0 1, . . . , p0 n em BC faça q0 ← (q) θ se q0 não se unificar a alguma sentença em BC ou novo então Adicione q0 a novo φ ← Unifica(q0 , α) se φ não for falha então retorna φ Adicione novo a BC até que novo esteja vazio retorna falso Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
  • 162. L.P.O. – Forward Chaining Algoritmo Uma sentença é uma re- nomeação de outra se forem idênticas exceto pelo nome das variáveis Função Forward-Chaining(BC,α): substituição repita novo ← {} para cada sentença s em BC faça (p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s) para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0 1 ∧ . . . ∧ p0 n) θ para algum p0 1, . . . , p0 n em BC faça q0 ← (q) θ se q0 não se unificar a alguma sentença em BC ou novo então Adicione q0 a novo φ ← Unifica(q0 , α) se φ não for falha então retorna φ Adicione novo a BC até que novo esteja vazio retorna falso Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
  • 163. L.P.O. – Forward Chaining Algoritmo O processo repete até que a query seja respondida ou nenhum fato extra possa ser adicionado Função Forward-Chaining(BC,α): substituição repita novo ← {} para cada sentença s em BC faça (p1 ∧ . . . ∧ pn ⇒ q) ← PadronizaVar(s) para cada θ tal que (p1 ∧ . . . ∧ pn) θ = (p0 1 ∧ . . . ∧ p0 n) θ para algum p0 1, . . . , p0 n em BC faça q0 ← (q) θ se q0 não se unificar a alguma sentença em BC ou novo então Adicione q0 a novo φ ← Unifica(q0 , α) se φ não for falha então retorna φ Adicione novo a BC até que novo esteja vazio retorna falso Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 31 / 34
  • 164. L.P.O. – Forward Chaining Algoritmo: Problemas Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 32 / 34
  • 165. L.P.O. – Forward Chaining Algoritmo: Problemas Busca todos os unificadores possı́veis θ Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 32 / 34
  • 166. L.P.O. – Forward Chaining Algoritmo: Problemas Busca todos os unificadores possı́veis θ É problema se para cada variável houver várias constantes que possam ser substituı́das Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 32 / 34
  • 167. L.P.O. – Forward Chaining Algoritmo: Problemas Busca todos os unificadores possı́veis θ É problema se para cada variável houver várias constantes que possam ser substituı́das Solução: Olhe primeiro a variável que tem menos substituições possı́veis (variável com mais restrições – PSR) Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 32 / 34
  • 168. L.P.O. – Forward Chaining Algoritmo: Problemas Busca todos os unificadores possı́veis θ É problema se para cada variável houver várias constantes que possam ser substituı́das Solução: Olhe primeiro a variável que tem menos substituições possı́veis (variável com mais restrições – PSR) A cada iteração, verifica cada regra novamente Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 32 / 34
  • 169. L.P.O. – Forward Chaining Algoritmo: Problemas Busca todos os unificadores possı́veis θ É problema se para cada variável houver várias constantes que possam ser substituı́das Solução: Olhe primeiro a variável que tem menos substituições possı́veis (variável com mais restrições – PSR) A cada iteração, verifica cada regra novamente Mesmo que poucas adições tenham sido feitas à base em cada iteração Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 32 / 34
  • 170. L.P.O. – Forward Chaining Algoritmo: Problemas Busca todos os unificadores possı́veis θ É problema se para cada variável houver várias constantes que possam ser substituı́das Solução: Olhe primeiro a variável que tem menos substituições possı́veis (variável com mais restrições – PSR) A cada iteração, verifica cada regra novamente Mesmo que poucas adições tenham sido feitas à base em cada iteração Todo fato novo inferido na iteração t deveria ser derivado de pelo menos um fato novo inferido na t − 1 Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 32 / 34
  • 171. L.P.O. – Forward Chaining Algoritmo: Problemas Isso porque toda inferência que não necessita de um fato novo da iteração t − 1 poderia ter sido feita em iterações anteriores Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 33 / 34
  • 172. L.P.O. – Forward Chaining Algoritmo: Problemas Isso porque toda inferência que não necessita de um fato novo da iteração t − 1 poderia ter sido feita em iterações anteriores Solução: forward chaining incremental Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 33 / 34
  • 173. L.P.O. – Forward Chaining Algoritmo: Problemas Isso porque toda inferência que não necessita de um fato novo da iteração t − 1 poderia ter sido feita em iterações anteriores Solução: forward chaining incremental Na iteração t, verificamos uma regra somente se sua premissa incluir um pi que se unifica com um fato p0 i recém inferido na iteração t − 1 Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 33 / 34
  • 174. L.P.O. – Forward Chaining Algoritmo: Problemas Isso porque toda inferência que não necessita de um fato novo da iteração t − 1 poderia ter sido feita em iterações anteriores Solução: forward chaining incremental Na iteração t, verificamos uma regra somente se sua premissa incluir um pi que se unifica com um fato p0 i recém inferido na iteração t − 1 Ou seja, case toda regra cuja premissa contiver um literal recém adicionado, permitindo, no entanto, que os demais componentes casem com fatos de iterações anteriores Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 33 / 34
  • 175. L.P.O. – Forward Chaining Algoritmo: Problemas Isso porque toda inferência que não necessita de um fato novo da iteração t − 1 poderia ter sido feita em iterações anteriores Solução: forward chaining incremental Na iteração t, verificamos uma regra somente se sua premissa incluir um pi que se unifica com um fato p0 i recém inferido na iteração t − 1 Ou seja, case toda regra cuja premissa contiver um literal recém adicionado, permitindo, no entanto, que os demais componentes casem com fatos de iterações anteriores Pode gerar muitos fatos irrelevantes ao objetivo Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 33 / 34
  • 176. L.P.O. – Forward Chaining Algoritmo: Problemas Isso porque toda inferência que não necessita de um fato novo da iteração t − 1 poderia ter sido feita em iterações anteriores Solução: forward chaining incremental Na iteração t, verificamos uma regra somente se sua premissa incluir um pi que se unifica com um fato p0 i recém inferido na iteração t − 1 Ou seja, case toda regra cuja premissa contiver um literal recém adicionado, permitindo, no entanto, que os demais componentes casem com fatos de iterações anteriores Pode gerar muitos fatos irrelevantes ao objetivo Solução: Use backward chaining Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 33 / 34
  • 177. Referências Russell, S.; Norvig P. (2010): Artificial Intelligence: A Modern Approach. Prentice Hall. 3a ed. Slides do livro: http://aima.eecs.berkeley.edu/slides-pdf/ Hiż, A. (1957): Inferential Equivalence and Natural Deduction. The Journal of Symbolic Logic, 22(3). pp. 237-240. http://ocw.mit.edu/OcwWeb/Electrical-Engineering- and-Computer-Science/6-034Spring-2005/LectureNotes/index.htm http://jmvidal.cse.sc.edu/talks/learningrules/first-orderlogicsdefs.xml https: //www.sciencedirect.com/topics/computer-science/unification-algorithm http://logic.stanford.edu/intrologic/secondary/notes/chapter_12.html Norton Trevisan Roman(norton@usp.br) 9 de abril de 2019 34 / 34