SlideShare uma empresa Scribd logo
1 de 278
Baixar para ler offline
Inteligência Artificial – ACH2016
Aula 09 – Inferência em Lógica Proposicional
Norton Trevisan Roman
(norton@usp.br)
10 de abril de 2019
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 1 / 34
Lógica Proposicional e Inferência
Provas: Tipos
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
Lógica Proposicional e Inferência
Provas: Tipos
Verificação do modelo:
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
Lógica Proposicional e Inferência
Provas: Tipos
Verificação do modelo:
Enumeração de entradas em uma tabela-verdade
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
Lógica Proposicional e Inferência
Provas: Tipos
Verificação do modelo:
Enumeração de entradas em uma tabela-verdade
Força bruta
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
Lógica Proposicional e Inferência
Provas: Tipos
Verificação do modelo:
Enumeração de entradas em uma tabela-verdade
Força bruta
Algoritmos para CSPs resolvem
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
Lógica Proposicional e Inferência
Provas: Tipos
Verificação do modelo:
Enumeração de entradas em uma tabela-verdade
Força bruta
Algoritmos para CSPs resolvem
A que vimos até agora
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
Lógica Proposicional e Inferência
Provas: Tipos
Verificação do modelo:
Enumeração de entradas em uma tabela-verdade
Força bruta
Algoritmos para CSPs resolvem
A que vimos até agora
Aplicação de regras de inferência:
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
Lógica Proposicional e Inferência
Provas: Tipos
Verificação do modelo:
Enumeração de entradas em uma tabela-verdade
Força bruta
Algoritmos para CSPs resolvem
A que vimos até agora
Aplicação de regras de inferência:
Geração de novas sentenças a partir de antigas
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
Lógica Proposicional e Inferência
Provas: Tipos
Verificação do modelo:
Enumeração de entradas em uma tabela-verdade
Força bruta
Algoritmos para CSPs resolvem
A que vimos até agora
Aplicação de regras de inferência:
Geração de novas sentenças a partir de antigas
A prova é uma sequência de regras de inferência
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
Lógica Proposicional e Inferência
Provas: Tipos
Verificação do modelo:
Enumeração de entradas em uma tabela-verdade
Força bruta
Algoritmos para CSPs resolvem
A que vimos até agora
Aplicação de regras de inferência:
Geração de novas sentenças a partir de antigas
A prova é uma sequência de regras de inferência
Dedução natural
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
Lógica Proposicional e Inferência
Provas: Aplicação de regras de inferência
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 3 / 34
Lógica Proposicional e Inferência
Provas: Aplicação de regras de inferência
Trata da derivação de novas sentenças pela
aplicação das leis da lógica proposicional
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 3 / 34
Lógica Proposicional e Inferência
Provas: Aplicação de regras de inferência
Trata da derivação de novas sentenças pela
aplicação das leis da lógica proposicional
São então sequências de sentenças
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 3 / 34
Lógica Proposicional e Inferência
Provas: Aplicação de regras de inferência
Trata da derivação de novas sentenças pela
aplicação das leis da lógica proposicional
São então sequências de sentenças
Primeiro, listamos as premissas (as sentenças na base de
conhecimento)
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 3 / 34
Lógica Proposicional e Inferência
Provas: Aplicação de regras de inferência
Trata da derivação de novas sentenças pela
aplicação das leis da lógica proposicional
São então sequências de sentenças
Primeiro, listamos as premissas (as sentenças na base de
conhecimento)
Em seguida, adicionamos resultados da aplicação das regras
de inferência às sentenças conhecidas
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 3 / 34
Lógica Proposicional e Inferência
Provas: Aplicação de regras de inferência
Trata da derivação de novas sentenças pela
aplicação das leis da lógica proposicional
São então sequências de sentenças
Primeiro, listamos as premissas (as sentenças na base de
conhecimento)
Em seguida, adicionamos resultados da aplicação das regras
de inferência às sentenças conhecidas
Quando chegamos à sentença Q (conclusão) desejada,
achamos uma prova que leva da base à sentença
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 3 / 34
Lógica Proposicional e Inferência
Provas: Aplicação de regras de inferência
E se não chegarmos a Q?
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 4 / 34
Lógica Proposicional e Inferência
Provas: Aplicação de regras de inferência
E se não chegarmos a Q?
Então saberemos que BC |= Q é falso
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 4 / 34
Lógica Proposicional e Inferência
Provas: Aplicação de regras de inferência
E se não chegarmos a Q?
Então saberemos que BC |= Q é falso
Mas não sabemos nada de Q
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 4 / 34
Lógica Proposicional e Inferência
Provas: Aplicação de regras de inferência
E se não chegarmos a Q?
Então saberemos que BC |= Q é falso
Mas não sabemos nada de Q
Sabemos que da base não deduzimos Q
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 4 / 34
Lógica Proposicional e Inferência
Provas: Aplicação de regras de inferência
E se não chegarmos a Q?
Então saberemos que BC |= Q é falso
Mas não sabemos nada de Q
Sabemos que da base não deduzimos Q
Exemplo:
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 4 / 34
Lógica Proposicional e Inferência
Provas: Aplicação de regras de inferência
E se não chegarmos a Q?
Então saberemos que BC |= Q é falso
Mas não sabemos nada de Q
Sabemos que da base não deduzimos Q
Exemplo:
Dado todo seu conhecimento sobre a sala de aula, está
caindo um meteorito em marte?
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 4 / 34
Lógica Proposicional e Inferência
Provas: Aplicação de regras de inferência
E se não chegarmos a Q?
Então saberemos que BC |= Q é falso
Mas não sabemos nada de Q
Sabemos que da base não deduzimos Q
Exemplo:
Dado todo seu conhecimento sobre a sala de aula, está
caindo um meteorito em marte?
BC |= Q = Falso
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 4 / 34
Lógica Proposicional e Inferência
Regras de inferência
Modus Ponens
(modo que afirma)
Proposto por Aristóteles
α → β
α
β
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 5 / 34
Lógica Proposicional e Inferência
Regras de inferência
Premissas
Modus Ponens
(modo que afirma)
Proposto por Aristóteles
α → β
α
β
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 5 / 34
Lógica Proposicional e Inferência
Regras de inferência
Conclusão
Modus Ponens
(modo que afirma)
Proposto por Aristóteles
α → β
α
β
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 5 / 34
Lógica Proposicional e Inferência
Regras de inferência
Modus Ponens
(modo que afirma)
Proposto por Aristóteles
α → β
α
β
Modus Tollens
(modo que nega)
α → β
¬β
¬α
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 5 / 34
Lógica Proposicional e Inferência
Regras de inferência
Introdução de E
α
β
α ∧ β
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 6 / 34
Lógica Proposicional e Inferência
Regras de inferência
Introdução de E
α
β
α ∧ β
Eliminação de E
α ∧ β
α
α ∧ β
β
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 6 / 34
Lógica Proposicional e Inferência
Regras de inferência: Exemplo
Prove S
Passo Fórmula Regra
1 P ∧ Q (premissa)
2 P → R (premissa)
3 (Q ∧ R) → S (premissa)
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 7 / 34
Lógica Proposicional e Inferência
Regras de inferência: Exemplo
Prove S
Passo Fórmula Regra
1 P ∧ Q (premissa)
2 P → R (premissa)
3 (Q ∧ R) → S (premissa)
4 P eliminação de E em 1
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 7 / 34
Lógica Proposicional e Inferência
Regras de inferência: Exemplo
Prove S
Passo Fórmula Regra
1 P ∧ Q (premissa)
2 P → R (premissa)
3 (Q ∧ R) → S (premissa)
4 P eliminação de E em 1
5 R modus ponens em 4 e 2
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 7 / 34
Lógica Proposicional e Inferência
Regras de inferência: Exemplo
Prove S
Passo Fórmula Regra
1 P ∧ Q (premissa)
2 P → R (premissa)
3 (Q ∧ R) → S (premissa)
4 P eliminação de E em 1
5 R modus ponens em 4 e 2
6 Q eliminação de E em 1
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 7 / 34
Lógica Proposicional e Inferência
Regras de inferência: Exemplo
Prove S
Passo Fórmula Regra
1 P ∧ Q (premissa)
2 P → R (premissa)
3 (Q ∧ R) → S (premissa)
4 P eliminação de E em 1
5 R modus ponens em 4 e 2
6 Q eliminação de E em 1
7 Q ∧ R introdução de E em 5 e 6
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 7 / 34
Lógica Proposicional e Inferência
Regras de inferência: Exemplo
Prove S
Passo Fórmula Regra
1 P ∧ Q (premissa)
2 P → R (premissa)
3 (Q ∧ R) → S (premissa)
4 P eliminação de E em 1
5 R modus ponens em 4 e 2
6 Q eliminação de E em 1
7 Q ∧ R introdução de E em 5 e 6
8 S modus ponens em 7 e 3
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 7 / 34
Lógica Proposicional e Inferência
Mais Regras de inferência: Equivalências lógicas
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 8 / 34
Lógica Proposicional e Inferência
Mais Regras de inferência: Equivalências lógicas
Idempotentes:
p ∨ p ≡ p
p ∧ p ≡ p
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 8 / 34
Lógica Proposicional e Inferência
Mais Regras de inferência: Equivalências lógicas
Idempotentes:
p ∨ p ≡ p
p ∧ p ≡ p
Associativas
(p ∨ q) ∨ r ≡ p ∨ (q ∨ r)
(p ∧ q) ∧ r ≡ p ∧ (q ∧ r)
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 8 / 34
Lógica Proposicional e Inferência
Mais Regras de inferência: Equivalências lógicas
Idempotentes:
p ∨ p ≡ p
p ∧ p ≡ p
Associativas
(p ∨ q) ∨ r ≡ p ∨ (q ∨ r)
(p ∧ q) ∧ r ≡ p ∧ (q ∧ r)
Comutativas:
p ∨ q ≡ q ∨ p
p ∧ q ≡ q ∧ p
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 8 / 34
Lógica Proposicional e Inferência
Mais Regras de inferência: Equivalências lógicas
Idempotentes:
p ∨ p ≡ p
p ∧ p ≡ p
Associativas
(p ∨ q) ∨ r ≡ p ∨ (q ∨ r)
(p ∧ q) ∧ r ≡ p ∧ (q ∧ r)
Comutativas:
p ∨ q ≡ q ∨ p
p ∧ q ≡ q ∧ p
Distributivas:
p∨(q∧r) ≡ (p∨q)∧(p∨r)
p∧(q∨r) ≡ (p∧q)∨(p∧r)
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 8 / 34
Lógica Proposicional e Inferência
Mais Regras de inferência: Equivalências lógicas
Idempotentes:
p ∨ p ≡ p
p ∧ p ≡ p
Associativas
(p ∨ q) ∨ r ≡ p ∨ (q ∨ r)
(p ∧ q) ∧ r ≡ p ∧ (q ∧ r)
Comutativas:
p ∨ q ≡ q ∨ p
p ∧ q ≡ q ∧ p
Distributivas:
p∨(q∧r) ≡ (p∨q)∧(p∨r)
p∧(q∨r) ≡ (p∧q)∨(p∧r)
Identidade:
p ∧ F ≡ F
p ∧ V ≡ p
p ∨ F ≡ p
p ∨ V ≡ V
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 8 / 34
Lógica Proposicional e Inferência
Mais Regras de inferência: Equivalências lógicas
Eliminação:
¬¬p ≡ p
p → q ≡ ¬p ∨ q
p ↔ q ≡ p → q ∧ q → p
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 9 / 34
Lógica Proposicional e Inferência
Mais Regras de inferência: Equivalências lógicas
Eliminação:
¬¬p ≡ p
p → q ≡ ¬p ∨ q
p ↔ q ≡ p → q ∧ q → p
Complementares:
p ∨ ¬p ≡ V
p ∧ ¬p ≡ F
¬F ≡ V
¬V ≡ F
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 9 / 34
Lógica Proposicional e Inferência
Mais Regras de inferência: Equivalências lógicas
Eliminação:
¬¬p ≡ p
p → q ≡ ¬p ∨ q
p ↔ q ≡ p → q ∧ q → p
Complementares:
p ∨ ¬p ≡ V
p ∧ ¬p ≡ F
¬F ≡ V
¬V ≡ F
Contraposição:
p → q ≡ ¬q → ¬p
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 9 / 34
Lógica Proposicional e Inferência
Mais Regras de inferência: Equivalências lógicas
Eliminação:
¬¬p ≡ p
p → q ≡ ¬p ∨ q
p ↔ q ≡ p → q ∧ q → p
Complementares:
p ∨ ¬p ≡ V
p ∧ ¬p ≡ F
¬F ≡ V
¬V ≡ F
Contraposição:
p → q ≡ ¬q → ¬p
De De Morgan:
¬(p ∨ q) ≡ ¬p ∧ ¬q
¬(p ∧ q) ≡ ¬p ∨ ¬q
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 9 / 34
Lógica Proposicional e Inferência
Mais Regras de inferência: Equivalências lógicas
Eliminação:
¬¬p ≡ p
p → q ≡ ¬p ∨ q
p ↔ q ≡ p → q ∧ q → p
Complementares:
p ∨ ¬p ≡ V
p ∧ ¬p ≡ F
¬F ≡ V
¬V ≡ F
Contraposição:
p → q ≡ ¬q → ¬p
De De Morgan:
¬(p ∨ q) ≡ ¬p ∧ ¬q
¬(p ∧ q) ≡ ¬p ∨ ¬q
Outras:
¬(p → q) ≡ p ∧ ¬q
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 9 / 34
Lógica Proposicional e Inferência
Cláusulas Horn
Bases de conhecimento reais geralmente são
restritas quanto à forma de suas sentenças
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 10 / 34
Lógica Proposicional e Inferência
Cláusulas Horn
Bases de conhecimento reais geralmente são
restritas quanto à forma de suas sentenças
Algumas contém apenas Cláusulas Definidas
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 10 / 34
Lógica Proposicional e Inferência
Cláusulas Horn
Bases de conhecimento reais geralmente são
restritas quanto à forma de suas sentenças
Algumas contém apenas Cláusulas Definidas
Cláusulas contendo a disjunção de literais, dos quais
exatamente um é positivo
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 10 / 34
Lógica Proposicional e Inferência
Cláusulas Horn
Bases de conhecimento reais geralmente são
restritas quanto à forma de suas sentenças
Algumas contém apenas Cláusulas Definidas
Cláusulas contendo a disjunção de literais, dos quais
exatamente um é positivo
Ex: ¬A ∨ ¬B ∨ C
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 10 / 34
Lógica Proposicional e Inferência
Cláusulas Horn
Bases de conhecimento reais geralmente são
restritas quanto à forma de suas sentenças
Algumas contém apenas Cláusulas Definidas
Cláusulas contendo a disjunção de literais, dos quais
exatamente um é positivo
Ex: ¬A ∨ ¬B ∨ C
Outras contém apenas Cláusulas Horn
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 10 / 34
Lógica Proposicional e Inferência
Cláusulas Horn
Bases de conhecimento reais geralmente são
restritas quanto à forma de suas sentenças
Algumas contém apenas Cláusulas Definidas
Cláusulas contendo a disjunção de literais, dos quais
exatamente um é positivo
Ex: ¬A ∨ ¬B ∨ C
Outras contém apenas Cláusulas Horn
A disjunção de literais dos quais no máximo um é positivo
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 10 / 34
Lógica Proposicional e Inferência
Cláusulas Horn
Bases de conhecimento reais geralmente são
restritas quanto à forma de suas sentenças
Algumas contém apenas Cláusulas Definidas
Cláusulas contendo a disjunção de literais, dos quais
exatamente um é positivo
Ex: ¬A ∨ ¬B ∨ C
Outras contém apenas Cláusulas Horn
A disjunção de literais dos quais no máximo um é positivo
Então toda cláusula definida é uma cláusula Horn
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 10 / 34
Lógica Proposicional e Inferência
Cláusulas?
Uma cláusula é uma disjunção de literais (positivos
ou negativos)
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 11 / 34
Lógica Proposicional e Inferência
Cláusulas?
Uma cláusula é uma disjunção de literais (positivos
ou negativos)
Ex: A1 ∨ ¬A2 ∨ . . . ∨ An
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 11 / 34
Lógica Proposicional e Inferência
Cláusulas?
Uma cláusula é uma disjunção de literais (positivos
ou negativos)
Ex: A1 ∨ ¬A2 ∨ . . . ∨ An
Um único literal também constitui uma cláusula
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 11 / 34
Lógica Proposicional e Inferência
Cláusulas?
Uma cláusula é uma disjunção de literais (positivos
ou negativos)
Ex: A1 ∨ ¬A2 ∨ . . . ∨ An
Um único literal também constitui uma cláusula
Nesse caso, conhecida como cláusula unitária
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 11 / 34
Lógica Proposicional e Inferência
Cláusulas?
Uma cláusula é uma disjunção de literais (positivos
ou negativos)
Ex: A1 ∨ ¬A2 ∨ . . . ∨ An
Um único literal também constitui uma cláusula
Nesse caso, conhecida como cláusula unitária
Ex: A1
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 11 / 34
Lógica Proposicional e Inferência
Cláusulas Horn
Uma cláusula Horn constitui então de
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
Lógica Proposicional e Inferência
Cláusulas Horn
Uma cláusula Horn constitui então de
Sı́mbolo literal positivo
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
Lógica Proposicional e Inferência
Cláusulas Horn
Uma cláusula Horn constitui então de
Sı́mbolo literal positivo
Ou disjunção de literais negativos
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
Lógica Proposicional e Inferência
Cláusulas Horn
Uma cláusula Horn constitui então de
Sı́mbolo literal positivo
Ou disjunção de literais negativos
¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
Lógica Proposicional e Inferência
Cláusulas Horn
Uma cláusula Horn constitui então de
Sı́mbolo literal positivo
Ou disjunção de literais negativos
¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An
Ou (conjunção de literais positivos) ⇒ falso
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
Lógica Proposicional e Inferência
Cláusulas Horn
Uma cláusula Horn constitui então de
Sı́mbolo literal positivo
Ou disjunção de literais negativos
¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An
Ou (conjunção de literais positivos) ⇒ falso
A1 ∧ A2 ∧ . . . ∧ An → falso
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
Lógica Proposicional e Inferência
Cláusulas Horn
Uma cláusula Horn constitui então de
Sı́mbolo literal positivo
Ou disjunção de literais negativos
¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An
Ou (conjunção de literais positivos) ⇒ falso
A1 ∧ A2 ∧ . . . ∧ An → falso
Ou disjunção de literais negativos com um positivo
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
Lógica Proposicional e Inferência
Cláusulas Horn
Uma cláusula Horn constitui então de
Sı́mbolo literal positivo
Ou disjunção de literais negativos
¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An
Ou (conjunção de literais positivos) ⇒ falso
A1 ∧ A2 ∧ . . . ∧ An → falso
Ou disjunção de literais negativos com um positivo
¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An ∨ B
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
Lógica Proposicional e Inferência
Cláusulas Horn
Uma cláusula Horn constitui então de
Sı́mbolo literal positivo
Ou disjunção de literais negativos
¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An
Ou (conjunção de literais positivos) ⇒ falso
A1 ∧ A2 ∧ . . . ∧ An → falso
Ou disjunção de literais negativos com um positivo
¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An ∨ B
Ou (conjunção de literais positivos) ⇒ literal positivo
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
Lógica Proposicional e Inferência
Cláusulas Horn
Uma cláusula Horn constitui então de
Sı́mbolo literal positivo
Ou disjunção de literais negativos
¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An
Ou (conjunção de literais positivos) ⇒ falso
A1 ∧ A2 ∧ . . . ∧ An → falso
Ou disjunção de literais negativos com um positivo
¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An ∨ B
Ou (conjunção de literais positivos) ⇒ literal positivo
A1 ∧ A2 ∧ . . . ∧ An → B
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
Lógica Proposicional e Inferência
Cláusulas Horn – Modus Ponens
Modus Ponens para a forma Horn:
α1 ∧ . . . ∧ αn → β
α1, . . . , αn
β
ou
α1 ∧ . . . ∧ αn → falso
α1, . . . , αn
falso
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 13 / 34
Lógica Proposicional e Inferência
Cláusulas Horn – Modus Ponens
Modus Ponens para a forma Horn:
α1 ∧ . . . ∧ αn → β
α1, . . . , αn
β
ou
α1 ∧ . . . ∧ αn → falso
α1, . . . , αn
falso
Para uma base de Cláusulas Definidas, modus ponens é
derivado por Forward Chaining ou Backward Chaining em
tempo linear com o tamanho da base.
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 13 / 34
Lógica Proposicional e Inferência
Cláusulas Horn: Forward Chaining
Forward Chaining determina se uma única
proposição (Q – a query) é acarretada por uma
base de cláusulas definidas.
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 14 / 34
Lógica Proposicional e Inferência
Cláusulas Horn: Forward Chaining
Forward Chaining determina se uma única
proposição (Q – a query) é acarretada por uma
base de cláusulas definidas.
Funcionamento:
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 14 / 34
Lógica Proposicional e Inferência
Cláusulas Horn: Forward Chaining
Forward Chaining determina se uma única
proposição (Q – a query) é acarretada por uma
base de cláusulas definidas.
Funcionamento:
Comece com fatos conhecidos (literais positivos)
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 14 / 34
Lógica Proposicional e Inferência
Cláusulas Horn: Forward Chaining
Forward Chaining determina se uma única
proposição (Q – a query) é acarretada por uma
base de cláusulas definidas.
Funcionamento:
Comece com fatos conhecidos (literais positivos)
Se todas as premissas de uma implicação são conhecidas,
adicione sua conclusão ao conjunto de fatos conhecidos
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 14 / 34
Lógica Proposicional e Inferência
Cláusulas Horn: Forward Chaining
Forward Chaining determina se uma única
proposição (Q – a query) é acarretada por uma
base de cláusulas definidas.
Funcionamento:
Comece com fatos conhecidos (literais positivos)
Se todas as premissas de uma implicação são conhecidas,
adicione sua conclusão ao conjunto de fatos conhecidos
Se A e B são conhecidas, e (A ∧ B) → C está na base, então C é
adicionado
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 14 / 34
Lógica Proposicional e Inferência
Cláusulas Horn: Forward Chaining
Forward Chaining determina se uma única
proposição (Q – a query) é acarretada por uma
base de cláusulas definidas.
Funcionamento:
Comece com fatos conhecidos (literais positivos)
Se todas as premissas de uma implicação são conhecidas,
adicione sua conclusão ao conjunto de fatos conhecidos
Se A e B são conhecidas, e (A ∧ B) → C está na base, então C é
adicionado
O processo continua até Q ser adicionada ou até não
podermos mais inferir nada
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 14 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 15 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
query (sı́mbolo propo-
sicional) a ser provada
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 15 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
tabela onde cont[c] é
o número de sı́mbolos
na premissa de c
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 15 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
tabela onde inferida[s]
é inicialmente falso
para todos os sı́mbolos
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 15 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
fila de sı́mbolos.
Inicialmente sı́mbolos
conhecidamente
verdadeiros em BC
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 15 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
verificamos toda
cláusula c ∈ BC
em cujas premis-
sas p aparecer
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 15 / 34
Lógica Proposicional e Inferência
Forward Chaining: Exemplo
BC:
SE causa danos fı́sicos, deve ser evitado F → E
SE é perigoso E morde, causa danos fı́sicos P ∧ M → F
SE tem dentes E é perigoso, morde D ∧ P → M
SE é agressivo E causa danos fı́sicos, é peri-
goso
A ∧ F → P
SE é agressivo E tem dentes, é perigoso A ∧ D → P
É agressivo A
Tem dentes D
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 16 / 34
Lógica Proposicional e Inferência
Forward Chaining: Exemplo
BC:
SE causa danos fı́sicos, deve ser evitado F → E
SE é perigoso E morde, causa danos fı́sicos P ∧ M → F
SE tem dentes E é perigoso, morde D ∧ P → M
SE é agressivo E causa danos fı́sicos, é peri-
goso
A ∧ F → P
SE é agressivo E tem dentes, é perigoso A ∧ D → P
É agressivo A
Tem dentes D
Query: Deve ser evitado (E = verdadeiro)?
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 16 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 2 2 0 0
1 2 3 4 5 6 7
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 2 2 0 0
1 2 3 4 5 6 7
F F F F F F
inferida:
A D E F M P
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 2 2 0 0
1 2 3 4 5 6 7
F F F F F F
inferida:
A D E F M P
A
agenda: D
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 2 2 0 0
1 2 3 4 5 6 7
F F F F F F
inferida:
A D E F M P
A
agenda: D
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 2 2 0 0
1 2 3 4 5 6 7
F F F F F F
inferida:
A D E F M P
D
agenda:
p: A
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 2 2 0 0
1 2 3 4 5 6 7
F F F F F F
inferida:
A D E F M P
D
agenda:
p: A
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 2 2 0 0
1 2 3 4 5 6 7
F F F F F F
inferida:
A D E F M P
D
agenda:
p: A
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 2 2 0 0
1 2 3 4 5 6 7
V F F F F F
inferida:
A D E F M P
D
agenda:
p: A
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 2 2 0 0
1 2 3 4 5 6 7
V F F F F F
inferida:
A D E F M P
D
agenda:
p: A c: 4
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 1 2 0 0
1 2 3 4 5 6 7
V F F F F F
inferida:
A D E F M P
D
agenda:
p: A c: 4
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 1 2 0 0
1 2 3 4 5 6 7
V F F F F F
inferida:
A D E F M P
D
agenda:
p: A c: 4
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 1 2 0 0
1 2 3 4 5 6 7
V F F F F F
inferida:
A D E F M P
D
agenda:
p: A c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 1 1 0 0
1 2 3 4 5 6 7
V F F F F F
inferida:
A D E F M P
D
agenda:
p: A c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 1 1 0 0
1 2 3 4 5 6 7
V F F F F F
inferida:
A D E F M P
D
agenda:
p: A c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 1 1 0 0
1 2 3 4 5 6 7
V F F F F F
inferida:
A D E F M P
D
agenda:
p: A c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 1 1 0 0
1 2 3 4 5 6 7
V F F F F F
inferida:
A D E F M P
D
agenda:
p: A c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 1 1 0 0
1 2 3 4 5 6 7
V F F F F F
inferida:
A D E F M P
agenda:
p: D c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 1 1 0 0
1 2 3 4 5 6 7
V F F F F F
inferida:
A D E F M P
agenda:
p: D c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 1 1 0 0
1 2 3 4 5 6 7
V F F F F F
inferida:
A D E F M P
agenda:
p: D c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 1 1 0 0
1 2 3 4 5 6 7
V V F F F F
inferida:
A D E F M P
agenda:
p: D c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 2 1 1 0 0
1 2 3 4 5 6 7
V V F F F F
inferida:
A D E F M P
agenda:
p: D c: 3
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 1 1 1 0 0
1 2 3 4 5 6 7
V V F F F F
inferida:
A D E F M P
agenda:
p: D c: 3
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 1 1 1 0 0
1 2 3 4 5 6 7
V V F F F F
inferida:
A D E F M P
agenda:
p: D c: 3
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 1 1 1 0 0
1 2 3 4 5 6 7
V V F F F F
inferida:
A D E F M P
agenda:
p: D c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 1 1 0 0 0
1 2 3 4 5 6 7
V V F F F F
inferida:
A D E F M P
agenda:
p: D c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 1 1 0 0 0
1 2 3 4 5 6 7
V V F F F F
inferida:
A D E F M P
agenda:
p: D c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 1 1 0 0 0
1 2 3 4 5 6 7
V V F F F F
inferida:
A D E F M P
P
agenda:
p: D c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 1 1 0 0 0
1 2 3 4 5 6 7
V V F F F F
inferida:
A D E F M P
P
agenda:
p: D c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 1 1 0 0 0
1 2 3 4 5 6 7
V V F F F F
inferida:
A D E F M P
P
agenda:
p: D c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 1 1 0 0 0
1 2 3 4 5 6 7
V V F F F F
inferida:
A D E F M P
agenda:
p: P c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 1 1 0 0 0
1 2 3 4 5 6 7
V V F F F F
inferida:
A D E F M P
agenda:
p: P c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 1 1 0 0 0
1 2 3 4 5 6 7
V V F F F F
inferida:
A D E F M P
agenda:
p: P c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 1 1 0 0 0
1 2 3 4 5 6 7
V V F F F V
inferida:
A D E F M P
agenda:
p: P c: 5
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 2 1 1 0 0 0
1 2 3 4 5 6 7
V V F F F V
inferida:
A D E F M P
agenda:
p: P c: 2
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 1 1 1 0 0 0
1 2 3 4 5 6 7
V V F F F V
inferida:
A D E F M P
agenda:
p: P c: 2
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 1 1 1 0 0 0
1 2 3 4 5 6 7
V V F F F V
inferida:
A D E F M P
agenda:
p: P c: 2
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 1 1 1 0 0 0
1 2 3 4 5 6 7
V V F F F V
inferida:
A D E F M P
agenda:
p: P c: 3
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 1 0 1 0 0 0
1 2 3 4 5 6 7
V V F F F V
inferida:
A D E F M P
agenda:
p: P c: 3
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 1 0 1 0 0 0
1 2 3 4 5 6 7
V V F F F V
inferida:
A D E F M P
agenda:
p: P c: 3
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 1 0 1 0 0 0
1 2 3 4 5 6 7
V V F F F V
inferida:
A D E F M P
M
agenda:
p: P c: 3
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 1 0 1 0 0 0
1 2 3 4 5 6 7
V V F F F V
inferida:
A D E F M P
M
agenda:
p: P c: 3
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 1 0 1 0 0 0
1 2 3 4 5 6 7
V V F F F V
inferida:
A D E F M P
M
agenda:
p: P c: 3
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 1 0 1 0 0 0
1 2 3 4 5 6 7
V V F F F V
inferida:
A D E F M P
agenda:
p: M c: 3
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 1 0 1 0 0 0
1 2 3 4 5 6 7
V V F F F V
inferida:
A D E F M P
agenda:
p: M c: 3
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 1 0 1 0 0 0
1 2 3 4 5 6 7
V V F F F V
inferida:
A D E F M P
agenda:
p: M c: 3
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 1 0 1 0 0 0
1 2 3 4 5 6 7
V V F F V V
inferida:
A D E F M P
agenda:
p: M c: 3
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 1 0 1 0 0 0
1 2 3 4 5 6 7
V V F F V V
inferida:
A D E F M P
agenda:
p: M c: 2
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 0 0 1 0 0 0
1 2 3 4 5 6 7
V V F F V V
inferida:
A D E F M P
agenda:
p: M c: 2
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 0 0 1 0 0 0
1 2 3 4 5 6 7
V V F F V V
inferida:
A D E F M P
agenda:
p: M c: 2
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 0 0 1 0 0 0
1 2 3 4 5 6 7
V V F F V V
inferida:
A D E F M P
F
agenda:
p: M c: 2
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 0 0 1 0 0 0
1 2 3 4 5 6 7
V V F F V V
inferida:
A D E F M P
F
agenda:
p: M c: 2
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 0 0 1 0 0 0
1 2 3 4 5 6 7
V V F F V V
inferida:
A D E F M P
F
agenda:
p: M c: 2
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 0 0 1 0 0 0
1 2 3 4 5 6 7
V V F F V V
inferida:
A D E F M P
agenda:
p: F c: 2
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 0 0 1 0 0 0
1 2 3 4 5 6 7
V V F F V V
inferida:
A D E F M P
agenda:
p: F c: 2
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 0 0 1 0 0 0
1 2 3 4 5 6 7
V V F F V V
inferida:
A D E F M P
agenda:
p: F c: 2
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 0 0 1 0 0 0
1 2 3 4 5 6 7
V V F V V V
inferida:
A D E F M P
agenda:
p: F c: 2
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 1 0 0 1 0 0 0
1 2 3 4 5 6 7
V V F V V V
inferida:
A D E F M P
agenda:
p: F c: 1
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 0 0 0 1 0 0 0
1 2 3 4 5 6 7
V V F V V V
inferida:
A D E F M P
agenda:
p: F c: 1
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 0 0 0 1 0 0 0
1 2 3 4 5 6 7
V V F V V V
inferida:
A D E F M P
agenda:
p: F c: 1
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 0 0 0 1 0 0 0
1 2 3 4 5 6 7
V V F V V V
inferida:
A D E F M P
E
agenda:
p: F c: 1
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 0 0 0 1 0 0 0
1 2 3 4 5 6 7
V V F V V V
inferida:
A D E F M P
E
agenda:
p: F c: 4
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 0 0 0 0 0 0 0
1 2 3 4 5 6 7
V V F V V V
inferida:
A D E F M P
E
agenda:
p: F c: 4
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 0 0 0 0 0 0 0
1 2 3 4 5 6 7
V V F V V V
inferida:
A D E F M P
E
agenda:
p: F c: 4
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 0 0 0 0 0 0 0
1 2 3 4 5 6 7
V V F V V V
inferida:
A D E F M P
E
agenda: P
p: F c: 4
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 0 0 0 0 0 0 0
1 2 3 4 5 6 7
V V F V V V
inferida:
A D E F M P
E
agenda: P
p: F c: 4
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 0 0 0 0 0 0 0
1 2 3 4 5 6 7
V V F V V V
inferida:
A D E F M P
E
agenda: P
p: F c: 4
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 0 0 0 0 0 0 0
1 2 3 4 5 6 7
V V F V V V
inferida:
A D E F M P
P
agenda:
p: E c: 4
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 0 0 0 0 0 0 0
1 2 3 4 5 6 7
V V F V V V
inferida:
A D E F M P
P
agenda:
p: E c: 4
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining: Algoritmo
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
BC: 1:
2:
3:
4:
5:
6:
7:
q: E
cont: 0 0 0 0 0 0 0
1 2 3 4 5 6 7
V V F V V V
inferida:
A D E F M P
P
agenda:
p: E c: 4
Função FORWARD CHAINING(BC, q): boolean
cont ← número de sı́mbolos em cada premissa
inferida ← inicializada com falso para todo sı́mbolo
agenda ← sı́mbolos verdadeiros na BC
enquanto agenda não estiver vazia faça
p ← retira o primeiro elemento de agenda
se p = q então
retorna verdadeiro
se inferida[p] = falso então
inferida[p] ← verdadeiro
para cada cláusula c em que
p ∈ PREMISSAS(c) faça
decremente cont[c]
se cont[c] = 0 então
Adicione a conclusão de c à agenda
retorna falso;
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
Lógica Proposicional e Inferência
Forward Chaining
Forward chaining é consistente
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 18 / 34
Lógica Proposicional e Inferência
Forward Chaining
Forward chaining é consistente
Toda inferência é aplicação de Modus Ponens
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 18 / 34
Lógica Proposicional e Inferência
Forward Chaining
Forward chaining é consistente
Toda inferência é aplicação de Modus Ponens
Assim, toda sentença atômica inferida é acarretada pela base
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 18 / 34
Lógica Proposicional e Inferência
Forward Chaining
Forward chaining é consistente
Toda inferência é aplicação de Modus Ponens
Assim, toda sentença atômica inferida é acarretada pela base
Também é completo
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 18 / 34
Lógica Proposicional e Inferência
Forward Chaining
Forward chaining é consistente
Toda inferência é aplicação de Modus Ponens
Assim, toda sentença atômica inferida é acarretada pela base
Também é completo
Toda sentença atômica acarretada pela base será derivada
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 18 / 34
Lógica Proposicional e Inferência
Forward Chaining
Forward chaining é consistente
Toda inferência é aplicação de Modus Ponens
Assim, toda sentença atômica inferida é acarretada pela base
Também é completo
Toda sentença atômica acarretada pela base será derivada
É um exemplo de raciocı́nio guiado por dados
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 18 / 34
Lógica Proposicional e Inferência
Forward Chaining
Forward chaining é consistente
Toda inferência é aplicação de Modus Ponens
Assim, toda sentença atômica inferida é acarretada pela base
Também é completo
Toda sentença atômica acarretada pela base será derivada
É um exemplo de raciocı́nio guiado por dados
Raciocı́nio em que o foco da atenção começa com os dados
conhecidos
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 18 / 34
Lógica Proposicional e Inferência
Backward Chaining
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 19 / 34
Lógica Proposicional e Inferência
Backward Chaining
Também se baseia em Modus Ponens
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 19 / 34
Lógica Proposicional e Inferência
Backward Chaining
Também se baseia em Modus Ponens
Porém caminha em direção contrária ao forward chaining,
voltando nas regras a partir da query Q
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 19 / 34
Lógica Proposicional e Inferência
Backward Chaining
Também se baseia em Modus Ponens
Porém caminha em direção contrária ao forward chaining,
voltando nas regras a partir da query Q
Para provar Q por Backward Chaining
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 19 / 34
Lógica Proposicional e Inferência
Backward Chaining
Também se baseia em Modus Ponens
Porém caminha em direção contrária ao forward chaining,
voltando nas regras a partir da query Q
Para provar Q por Backward Chaining
Comece do objetivo Q
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 19 / 34
Lógica Proposicional e Inferência
Backward Chaining
Também se baseia em Modus Ponens
Porém caminha em direção contrária ao forward chaining,
voltando nas regras a partir da query Q
Para provar Q por Backward Chaining
Comece do objetivo Q
Se Q for verdadeira, então não precisa fazer mais nada
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 19 / 34
Lógica Proposicional e Inferência
Backward Chaining
Também se baseia em Modus Ponens
Porém caminha em direção contrária ao forward chaining,
voltando nas regras a partir da query Q
Para provar Q por Backward Chaining
Comece do objetivo Q
Se Q for verdadeira, então não precisa fazer mais nada
Senão, encontre as implicações na BC que concluem Q
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 19 / 34
Lógica Proposicional e Inferência
Backward Chaining
Também se baseia em Modus Ponens
Porém caminha em direção contrária ao forward chaining,
voltando nas regras a partir da query Q
Para provar Q por Backward Chaining
Comece do objetivo Q
Se Q for verdadeira, então não precisa fazer mais nada
Senão, encontre as implicações na BC que concluem Q
Se todas as premissas de uma dessas implicações puderem
ser provadas verdadeiras (por backward chaining), então Q é
verdadeira
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 19 / 34
Lógica Proposicional e Inferência
Forward Chaining
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
Backward Chaining
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
Lógica Proposicional e Inferência
Forward Chaining
Começamos com fatos
conhecidos
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
Backward Chaining
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
Lógica Proposicional e Inferência
Forward Chaining
De A e D derivamos P
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
P
Backward Chaining
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
Lógica Proposicional e Inferência
Forward Chaining
De P e D derivamos M
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
P
M
Backward Chaining
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
Lógica Proposicional e Inferência
Forward Chaining
De P e M derivamos F
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
P
M
F
Backward Chaining
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
Lógica Proposicional e Inferência
Forward Chaining
De F temos E
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
P
M
F
Backward Chaining
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
Lógica Proposicional e Inferência
Forward Chaining
De F temos E
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
P
M
F
Backward Chaining
Buscamos regra com → E.
Precisamos de F
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
Lógica Proposicional e Inferência
Forward Chaining
De F temos E
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
P
M
F
Backward Chaining
Buscamos regra com → F.
Faltam P e M
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
Lógica Proposicional e Inferência
Forward Chaining
De F temos E
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
P
M
F
Backward Chaining
Buscamos regra com → P.
Faltam A e F
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
Lógica Proposicional e Inferência
Forward Chaining
De F temos E
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
P
M
F
Backward Chaining
Conhecemos A, falta F
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
Lógica Proposicional e Inferência
Forward Chaining
De F temos E
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
P
M
F
Backward Chaining
Cuidado! Se seguirmos
com F teremos um laço!
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
Lógica Proposicional e Inferência
Forward Chaining
De F temos E
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
P
M
F
Backward Chaining
Tentamos a próxima regra
com → P. Falta D
F → E
P ∧ M → F
D ∧ P → M
A ∧ F → P
A ∧ D → P
A
D
Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência
Lógica Proposicional Inferência

Mais conteúdo relacionado

Mais procurados

(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 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 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 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 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 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 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 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 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24Norton Trevisan Roman
 

Mais procurados (9)

(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 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05
 
(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 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23
 
(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 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16
 
(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 04
(ACH2044) Inteligência Artificial - Aula 04(ACH2044) Inteligência Artificial - Aula 04
(ACH2044) Inteligência Artificial - Aula 04
 
(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24
 

Mais de Norton 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 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 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17Norton Trevisan Roman
 
(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16Norton Trevisan Roman
 

Mais de Norton Trevisan Roman (13)

(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 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
 
(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23(ACH2001) Introdução à Programação - Aula 23
(ACH2001) Introdução à Programação - Aula 23
 
(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22(ACH2001) Introdução à Programação - Aula 22
(ACH2001) Introdução à Programação - Aula 22
 
(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21(ACH2001) Introdução à Programação - Aula 21
(ACH2001) Introdução à Programação - Aula 21
 
(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20(ACH2001) Introdução à Programação - Aula 20
(ACH2001) Introdução à Programação - Aula 20
 
(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19(ACH2001) Introdução à Programação - Aula 19
(ACH2001) Introdução à Programação - Aula 19
 
(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18(ACH2001) Introdução à Programação - Aula 18
(ACH2001) Introdução à Programação - Aula 18
 
(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17(ACH2001) Introdução à Programação - Aula 17
(ACH2001) Introdução à Programação - Aula 17
 
(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16(ACH2001) Introdução à Programação - Aula 16
(ACH2001) Introdução à Programação - Aula 16
 

Último

PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxLusGlissonGud
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇJaineCarolaineLima
 

Último (20)

PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
ATIVIDADE - CHARGE.pptxDFGHJKLÇ~ÇLJHUFTDRSEDFGJHKLÇ
 

Lógica Proposicional Inferência

  • 1. Inteligência Artificial – ACH2016 Aula 09 – Inferência em Lógica Proposicional Norton Trevisan Roman (norton@usp.br) 10 de abril de 2019 Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 1 / 34
  • 2. Lógica Proposicional e Inferência Provas: Tipos Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
  • 3. Lógica Proposicional e Inferência Provas: Tipos Verificação do modelo: Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
  • 4. Lógica Proposicional e Inferência Provas: Tipos Verificação do modelo: Enumeração de entradas em uma tabela-verdade Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
  • 5. Lógica Proposicional e Inferência Provas: Tipos Verificação do modelo: Enumeração de entradas em uma tabela-verdade Força bruta Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
  • 6. Lógica Proposicional e Inferência Provas: Tipos Verificação do modelo: Enumeração de entradas em uma tabela-verdade Força bruta Algoritmos para CSPs resolvem Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
  • 7. Lógica Proposicional e Inferência Provas: Tipos Verificação do modelo: Enumeração de entradas em uma tabela-verdade Força bruta Algoritmos para CSPs resolvem A que vimos até agora Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
  • 8. Lógica Proposicional e Inferência Provas: Tipos Verificação do modelo: Enumeração de entradas em uma tabela-verdade Força bruta Algoritmos para CSPs resolvem A que vimos até agora Aplicação de regras de inferência: Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
  • 9. Lógica Proposicional e Inferência Provas: Tipos Verificação do modelo: Enumeração de entradas em uma tabela-verdade Força bruta Algoritmos para CSPs resolvem A que vimos até agora Aplicação de regras de inferência: Geração de novas sentenças a partir de antigas Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
  • 10. Lógica Proposicional e Inferência Provas: Tipos Verificação do modelo: Enumeração de entradas em uma tabela-verdade Força bruta Algoritmos para CSPs resolvem A que vimos até agora Aplicação de regras de inferência: Geração de novas sentenças a partir de antigas A prova é uma sequência de regras de inferência Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
  • 11. Lógica Proposicional e Inferência Provas: Tipos Verificação do modelo: Enumeração de entradas em uma tabela-verdade Força bruta Algoritmos para CSPs resolvem A que vimos até agora Aplicação de regras de inferência: Geração de novas sentenças a partir de antigas A prova é uma sequência de regras de inferência Dedução natural Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 2 / 34
  • 12. Lógica Proposicional e Inferência Provas: Aplicação de regras de inferência Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 3 / 34
  • 13. Lógica Proposicional e Inferência Provas: Aplicação de regras de inferência Trata da derivação de novas sentenças pela aplicação das leis da lógica proposicional Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 3 / 34
  • 14. Lógica Proposicional e Inferência Provas: Aplicação de regras de inferência Trata da derivação de novas sentenças pela aplicação das leis da lógica proposicional São então sequências de sentenças Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 3 / 34
  • 15. Lógica Proposicional e Inferência Provas: Aplicação de regras de inferência Trata da derivação de novas sentenças pela aplicação das leis da lógica proposicional São então sequências de sentenças Primeiro, listamos as premissas (as sentenças na base de conhecimento) Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 3 / 34
  • 16. Lógica Proposicional e Inferência Provas: Aplicação de regras de inferência Trata da derivação de novas sentenças pela aplicação das leis da lógica proposicional São então sequências de sentenças Primeiro, listamos as premissas (as sentenças na base de conhecimento) Em seguida, adicionamos resultados da aplicação das regras de inferência às sentenças conhecidas Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 3 / 34
  • 17. Lógica Proposicional e Inferência Provas: Aplicação de regras de inferência Trata da derivação de novas sentenças pela aplicação das leis da lógica proposicional São então sequências de sentenças Primeiro, listamos as premissas (as sentenças na base de conhecimento) Em seguida, adicionamos resultados da aplicação das regras de inferência às sentenças conhecidas Quando chegamos à sentença Q (conclusão) desejada, achamos uma prova que leva da base à sentença Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 3 / 34
  • 18. Lógica Proposicional e Inferência Provas: Aplicação de regras de inferência E se não chegarmos a Q? Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 4 / 34
  • 19. Lógica Proposicional e Inferência Provas: Aplicação de regras de inferência E se não chegarmos a Q? Então saberemos que BC |= Q é falso Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 4 / 34
  • 20. Lógica Proposicional e Inferência Provas: Aplicação de regras de inferência E se não chegarmos a Q? Então saberemos que BC |= Q é falso Mas não sabemos nada de Q Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 4 / 34
  • 21. Lógica Proposicional e Inferência Provas: Aplicação de regras de inferência E se não chegarmos a Q? Então saberemos que BC |= Q é falso Mas não sabemos nada de Q Sabemos que da base não deduzimos Q Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 4 / 34
  • 22. Lógica Proposicional e Inferência Provas: Aplicação de regras de inferência E se não chegarmos a Q? Então saberemos que BC |= Q é falso Mas não sabemos nada de Q Sabemos que da base não deduzimos Q Exemplo: Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 4 / 34
  • 23. Lógica Proposicional e Inferência Provas: Aplicação de regras de inferência E se não chegarmos a Q? Então saberemos que BC |= Q é falso Mas não sabemos nada de Q Sabemos que da base não deduzimos Q Exemplo: Dado todo seu conhecimento sobre a sala de aula, está caindo um meteorito em marte? Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 4 / 34
  • 24. Lógica Proposicional e Inferência Provas: Aplicação de regras de inferência E se não chegarmos a Q? Então saberemos que BC |= Q é falso Mas não sabemos nada de Q Sabemos que da base não deduzimos Q Exemplo: Dado todo seu conhecimento sobre a sala de aula, está caindo um meteorito em marte? BC |= Q = Falso Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 4 / 34
  • 25. Lógica Proposicional e Inferência Regras de inferência Modus Ponens (modo que afirma) Proposto por Aristóteles α → β α β Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 5 / 34
  • 26. Lógica Proposicional e Inferência Regras de inferência Premissas Modus Ponens (modo que afirma) Proposto por Aristóteles α → β α β Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 5 / 34
  • 27. Lógica Proposicional e Inferência Regras de inferência Conclusão Modus Ponens (modo que afirma) Proposto por Aristóteles α → β α β Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 5 / 34
  • 28. Lógica Proposicional e Inferência Regras de inferência Modus Ponens (modo que afirma) Proposto por Aristóteles α → β α β Modus Tollens (modo que nega) α → β ¬β ¬α Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 5 / 34
  • 29. Lógica Proposicional e Inferência Regras de inferência Introdução de E α β α ∧ β Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 6 / 34
  • 30. Lógica Proposicional e Inferência Regras de inferência Introdução de E α β α ∧ β Eliminação de E α ∧ β α α ∧ β β Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 6 / 34
  • 31. Lógica Proposicional e Inferência Regras de inferência: Exemplo Prove S Passo Fórmula Regra 1 P ∧ Q (premissa) 2 P → R (premissa) 3 (Q ∧ R) → S (premissa) Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 7 / 34
  • 32. Lógica Proposicional e Inferência Regras de inferência: Exemplo Prove S Passo Fórmula Regra 1 P ∧ Q (premissa) 2 P → R (premissa) 3 (Q ∧ R) → S (premissa) 4 P eliminação de E em 1 Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 7 / 34
  • 33. Lógica Proposicional e Inferência Regras de inferência: Exemplo Prove S Passo Fórmula Regra 1 P ∧ Q (premissa) 2 P → R (premissa) 3 (Q ∧ R) → S (premissa) 4 P eliminação de E em 1 5 R modus ponens em 4 e 2 Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 7 / 34
  • 34. Lógica Proposicional e Inferência Regras de inferência: Exemplo Prove S Passo Fórmula Regra 1 P ∧ Q (premissa) 2 P → R (premissa) 3 (Q ∧ R) → S (premissa) 4 P eliminação de E em 1 5 R modus ponens em 4 e 2 6 Q eliminação de E em 1 Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 7 / 34
  • 35. Lógica Proposicional e Inferência Regras de inferência: Exemplo Prove S Passo Fórmula Regra 1 P ∧ Q (premissa) 2 P → R (premissa) 3 (Q ∧ R) → S (premissa) 4 P eliminação de E em 1 5 R modus ponens em 4 e 2 6 Q eliminação de E em 1 7 Q ∧ R introdução de E em 5 e 6 Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 7 / 34
  • 36. Lógica Proposicional e Inferência Regras de inferência: Exemplo Prove S Passo Fórmula Regra 1 P ∧ Q (premissa) 2 P → R (premissa) 3 (Q ∧ R) → S (premissa) 4 P eliminação de E em 1 5 R modus ponens em 4 e 2 6 Q eliminação de E em 1 7 Q ∧ R introdução de E em 5 e 6 8 S modus ponens em 7 e 3 Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 7 / 34
  • 37. Lógica Proposicional e Inferência Mais Regras de inferência: Equivalências lógicas Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 8 / 34
  • 38. Lógica Proposicional e Inferência Mais Regras de inferência: Equivalências lógicas Idempotentes: p ∨ p ≡ p p ∧ p ≡ p Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 8 / 34
  • 39. Lógica Proposicional e Inferência Mais Regras de inferência: Equivalências lógicas Idempotentes: p ∨ p ≡ p p ∧ p ≡ p Associativas (p ∨ q) ∨ r ≡ p ∨ (q ∨ r) (p ∧ q) ∧ r ≡ p ∧ (q ∧ r) Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 8 / 34
  • 40. Lógica Proposicional e Inferência Mais Regras de inferência: Equivalências lógicas Idempotentes: p ∨ p ≡ p p ∧ p ≡ p Associativas (p ∨ q) ∨ r ≡ p ∨ (q ∨ r) (p ∧ q) ∧ r ≡ p ∧ (q ∧ r) Comutativas: p ∨ q ≡ q ∨ p p ∧ q ≡ q ∧ p Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 8 / 34
  • 41. Lógica Proposicional e Inferência Mais Regras de inferência: Equivalências lógicas Idempotentes: p ∨ p ≡ p p ∧ p ≡ p Associativas (p ∨ q) ∨ r ≡ p ∨ (q ∨ r) (p ∧ q) ∧ r ≡ p ∧ (q ∧ r) Comutativas: p ∨ q ≡ q ∨ p p ∧ q ≡ q ∧ p Distributivas: p∨(q∧r) ≡ (p∨q)∧(p∨r) p∧(q∨r) ≡ (p∧q)∨(p∧r) Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 8 / 34
  • 42. Lógica Proposicional e Inferência Mais Regras de inferência: Equivalências lógicas Idempotentes: p ∨ p ≡ p p ∧ p ≡ p Associativas (p ∨ q) ∨ r ≡ p ∨ (q ∨ r) (p ∧ q) ∧ r ≡ p ∧ (q ∧ r) Comutativas: p ∨ q ≡ q ∨ p p ∧ q ≡ q ∧ p Distributivas: p∨(q∧r) ≡ (p∨q)∧(p∨r) p∧(q∨r) ≡ (p∧q)∨(p∧r) Identidade: p ∧ F ≡ F p ∧ V ≡ p p ∨ F ≡ p p ∨ V ≡ V Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 8 / 34
  • 43. Lógica Proposicional e Inferência Mais Regras de inferência: Equivalências lógicas Eliminação: ¬¬p ≡ p p → q ≡ ¬p ∨ q p ↔ q ≡ p → q ∧ q → p Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 9 / 34
  • 44. Lógica Proposicional e Inferência Mais Regras de inferência: Equivalências lógicas Eliminação: ¬¬p ≡ p p → q ≡ ¬p ∨ q p ↔ q ≡ p → q ∧ q → p Complementares: p ∨ ¬p ≡ V p ∧ ¬p ≡ F ¬F ≡ V ¬V ≡ F Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 9 / 34
  • 45. Lógica Proposicional e Inferência Mais Regras de inferência: Equivalências lógicas Eliminação: ¬¬p ≡ p p → q ≡ ¬p ∨ q p ↔ q ≡ p → q ∧ q → p Complementares: p ∨ ¬p ≡ V p ∧ ¬p ≡ F ¬F ≡ V ¬V ≡ F Contraposição: p → q ≡ ¬q → ¬p Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 9 / 34
  • 46. Lógica Proposicional e Inferência Mais Regras de inferência: Equivalências lógicas Eliminação: ¬¬p ≡ p p → q ≡ ¬p ∨ q p ↔ q ≡ p → q ∧ q → p Complementares: p ∨ ¬p ≡ V p ∧ ¬p ≡ F ¬F ≡ V ¬V ≡ F Contraposição: p → q ≡ ¬q → ¬p De De Morgan: ¬(p ∨ q) ≡ ¬p ∧ ¬q ¬(p ∧ q) ≡ ¬p ∨ ¬q Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 9 / 34
  • 47. Lógica Proposicional e Inferência Mais Regras de inferência: Equivalências lógicas Eliminação: ¬¬p ≡ p p → q ≡ ¬p ∨ q p ↔ q ≡ p → q ∧ q → p Complementares: p ∨ ¬p ≡ V p ∧ ¬p ≡ F ¬F ≡ V ¬V ≡ F Contraposição: p → q ≡ ¬q → ¬p De De Morgan: ¬(p ∨ q) ≡ ¬p ∧ ¬q ¬(p ∧ q) ≡ ¬p ∨ ¬q Outras: ¬(p → q) ≡ p ∧ ¬q Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 9 / 34
  • 48. Lógica Proposicional e Inferência Cláusulas Horn Bases de conhecimento reais geralmente são restritas quanto à forma de suas sentenças Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 10 / 34
  • 49. Lógica Proposicional e Inferência Cláusulas Horn Bases de conhecimento reais geralmente são restritas quanto à forma de suas sentenças Algumas contém apenas Cláusulas Definidas Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 10 / 34
  • 50. Lógica Proposicional e Inferência Cláusulas Horn Bases de conhecimento reais geralmente são restritas quanto à forma de suas sentenças Algumas contém apenas Cláusulas Definidas Cláusulas contendo a disjunção de literais, dos quais exatamente um é positivo Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 10 / 34
  • 51. Lógica Proposicional e Inferência Cláusulas Horn Bases de conhecimento reais geralmente são restritas quanto à forma de suas sentenças Algumas contém apenas Cláusulas Definidas Cláusulas contendo a disjunção de literais, dos quais exatamente um é positivo Ex: ¬A ∨ ¬B ∨ C Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 10 / 34
  • 52. Lógica Proposicional e Inferência Cláusulas Horn Bases de conhecimento reais geralmente são restritas quanto à forma de suas sentenças Algumas contém apenas Cláusulas Definidas Cláusulas contendo a disjunção de literais, dos quais exatamente um é positivo Ex: ¬A ∨ ¬B ∨ C Outras contém apenas Cláusulas Horn Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 10 / 34
  • 53. Lógica Proposicional e Inferência Cláusulas Horn Bases de conhecimento reais geralmente são restritas quanto à forma de suas sentenças Algumas contém apenas Cláusulas Definidas Cláusulas contendo a disjunção de literais, dos quais exatamente um é positivo Ex: ¬A ∨ ¬B ∨ C Outras contém apenas Cláusulas Horn A disjunção de literais dos quais no máximo um é positivo Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 10 / 34
  • 54. Lógica Proposicional e Inferência Cláusulas Horn Bases de conhecimento reais geralmente são restritas quanto à forma de suas sentenças Algumas contém apenas Cláusulas Definidas Cláusulas contendo a disjunção de literais, dos quais exatamente um é positivo Ex: ¬A ∨ ¬B ∨ C Outras contém apenas Cláusulas Horn A disjunção de literais dos quais no máximo um é positivo Então toda cláusula definida é uma cláusula Horn Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 10 / 34
  • 55. Lógica Proposicional e Inferência Cláusulas? Uma cláusula é uma disjunção de literais (positivos ou negativos) Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 11 / 34
  • 56. Lógica Proposicional e Inferência Cláusulas? Uma cláusula é uma disjunção de literais (positivos ou negativos) Ex: A1 ∨ ¬A2 ∨ . . . ∨ An Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 11 / 34
  • 57. Lógica Proposicional e Inferência Cláusulas? Uma cláusula é uma disjunção de literais (positivos ou negativos) Ex: A1 ∨ ¬A2 ∨ . . . ∨ An Um único literal também constitui uma cláusula Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 11 / 34
  • 58. Lógica Proposicional e Inferência Cláusulas? Uma cláusula é uma disjunção de literais (positivos ou negativos) Ex: A1 ∨ ¬A2 ∨ . . . ∨ An Um único literal também constitui uma cláusula Nesse caso, conhecida como cláusula unitária Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 11 / 34
  • 59. Lógica Proposicional e Inferência Cláusulas? Uma cláusula é uma disjunção de literais (positivos ou negativos) Ex: A1 ∨ ¬A2 ∨ . . . ∨ An Um único literal também constitui uma cláusula Nesse caso, conhecida como cláusula unitária Ex: A1 Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 11 / 34
  • 60. Lógica Proposicional e Inferência Cláusulas Horn Uma cláusula Horn constitui então de Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
  • 61. Lógica Proposicional e Inferência Cláusulas Horn Uma cláusula Horn constitui então de Sı́mbolo literal positivo Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
  • 62. Lógica Proposicional e Inferência Cláusulas Horn Uma cláusula Horn constitui então de Sı́mbolo literal positivo Ou disjunção de literais negativos Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
  • 63. Lógica Proposicional e Inferência Cláusulas Horn Uma cláusula Horn constitui então de Sı́mbolo literal positivo Ou disjunção de literais negativos ¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
  • 64. Lógica Proposicional e Inferência Cláusulas Horn Uma cláusula Horn constitui então de Sı́mbolo literal positivo Ou disjunção de literais negativos ¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An Ou (conjunção de literais positivos) ⇒ falso Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
  • 65. Lógica Proposicional e Inferência Cláusulas Horn Uma cláusula Horn constitui então de Sı́mbolo literal positivo Ou disjunção de literais negativos ¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An Ou (conjunção de literais positivos) ⇒ falso A1 ∧ A2 ∧ . . . ∧ An → falso Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
  • 66. Lógica Proposicional e Inferência Cláusulas Horn Uma cláusula Horn constitui então de Sı́mbolo literal positivo Ou disjunção de literais negativos ¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An Ou (conjunção de literais positivos) ⇒ falso A1 ∧ A2 ∧ . . . ∧ An → falso Ou disjunção de literais negativos com um positivo Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
  • 67. Lógica Proposicional e Inferência Cláusulas Horn Uma cláusula Horn constitui então de Sı́mbolo literal positivo Ou disjunção de literais negativos ¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An Ou (conjunção de literais positivos) ⇒ falso A1 ∧ A2 ∧ . . . ∧ An → falso Ou disjunção de literais negativos com um positivo ¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An ∨ B Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
  • 68. Lógica Proposicional e Inferência Cláusulas Horn Uma cláusula Horn constitui então de Sı́mbolo literal positivo Ou disjunção de literais negativos ¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An Ou (conjunção de literais positivos) ⇒ falso A1 ∧ A2 ∧ . . . ∧ An → falso Ou disjunção de literais negativos com um positivo ¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An ∨ B Ou (conjunção de literais positivos) ⇒ literal positivo Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
  • 69. Lógica Proposicional e Inferência Cláusulas Horn Uma cláusula Horn constitui então de Sı́mbolo literal positivo Ou disjunção de literais negativos ¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An Ou (conjunção de literais positivos) ⇒ falso A1 ∧ A2 ∧ . . . ∧ An → falso Ou disjunção de literais negativos com um positivo ¬A1 ∨ ¬A2 ∨ . . . ∨ ¬An ∨ B Ou (conjunção de literais positivos) ⇒ literal positivo A1 ∧ A2 ∧ . . . ∧ An → B Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 12 / 34
  • 70. Lógica Proposicional e Inferência Cláusulas Horn – Modus Ponens Modus Ponens para a forma Horn: α1 ∧ . . . ∧ αn → β α1, . . . , αn β ou α1 ∧ . . . ∧ αn → falso α1, . . . , αn falso Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 13 / 34
  • 71. Lógica Proposicional e Inferência Cláusulas Horn – Modus Ponens Modus Ponens para a forma Horn: α1 ∧ . . . ∧ αn → β α1, . . . , αn β ou α1 ∧ . . . ∧ αn → falso α1, . . . , αn falso Para uma base de Cláusulas Definidas, modus ponens é derivado por Forward Chaining ou Backward Chaining em tempo linear com o tamanho da base. Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 13 / 34
  • 72. Lógica Proposicional e Inferência Cláusulas Horn: Forward Chaining Forward Chaining determina se uma única proposição (Q – a query) é acarretada por uma base de cláusulas definidas. Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 14 / 34
  • 73. Lógica Proposicional e Inferência Cláusulas Horn: Forward Chaining Forward Chaining determina se uma única proposição (Q – a query) é acarretada por uma base de cláusulas definidas. Funcionamento: Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 14 / 34
  • 74. Lógica Proposicional e Inferência Cláusulas Horn: Forward Chaining Forward Chaining determina se uma única proposição (Q – a query) é acarretada por uma base de cláusulas definidas. Funcionamento: Comece com fatos conhecidos (literais positivos) Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 14 / 34
  • 75. Lógica Proposicional e Inferência Cláusulas Horn: Forward Chaining Forward Chaining determina se uma única proposição (Q – a query) é acarretada por uma base de cláusulas definidas. Funcionamento: Comece com fatos conhecidos (literais positivos) Se todas as premissas de uma implicação são conhecidas, adicione sua conclusão ao conjunto de fatos conhecidos Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 14 / 34
  • 76. Lógica Proposicional e Inferência Cláusulas Horn: Forward Chaining Forward Chaining determina se uma única proposição (Q – a query) é acarretada por uma base de cláusulas definidas. Funcionamento: Comece com fatos conhecidos (literais positivos) Se todas as premissas de uma implicação são conhecidas, adicione sua conclusão ao conjunto de fatos conhecidos Se A e B são conhecidas, e (A ∧ B) → C está na base, então C é adicionado Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 14 / 34
  • 77. Lógica Proposicional e Inferência Cláusulas Horn: Forward Chaining Forward Chaining determina se uma única proposição (Q – a query) é acarretada por uma base de cláusulas definidas. Funcionamento: Comece com fatos conhecidos (literais positivos) Se todas as premissas de uma implicação são conhecidas, adicione sua conclusão ao conjunto de fatos conhecidos Se A e B são conhecidas, e (A ∧ B) → C está na base, então C é adicionado O processo continua até Q ser adicionada ou até não podermos mais inferir nada Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 14 / 34
  • 78. Lógica Proposicional e Inferência Forward Chaining: Algoritmo Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 15 / 34
  • 79. Lógica Proposicional e Inferência Forward Chaining: Algoritmo query (sı́mbolo propo- sicional) a ser provada Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 15 / 34
  • 80. Lógica Proposicional e Inferência Forward Chaining: Algoritmo tabela onde cont[c] é o número de sı́mbolos na premissa de c Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 15 / 34
  • 81. Lógica Proposicional e Inferência Forward Chaining: Algoritmo tabela onde inferida[s] é inicialmente falso para todos os sı́mbolos Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 15 / 34
  • 82. Lógica Proposicional e Inferência Forward Chaining: Algoritmo fila de sı́mbolos. Inicialmente sı́mbolos conhecidamente verdadeiros em BC Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 15 / 34
  • 83. Lógica Proposicional e Inferência Forward Chaining: Algoritmo verificamos toda cláusula c ∈ BC em cujas premis- sas p aparecer Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 15 / 34
  • 84. Lógica Proposicional e Inferência Forward Chaining: Exemplo BC: SE causa danos fı́sicos, deve ser evitado F → E SE é perigoso E morde, causa danos fı́sicos P ∧ M → F SE tem dentes E é perigoso, morde D ∧ P → M SE é agressivo E causa danos fı́sicos, é peri- goso A ∧ F → P SE é agressivo E tem dentes, é perigoso A ∧ D → P É agressivo A Tem dentes D Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 16 / 34
  • 85. Lógica Proposicional e Inferência Forward Chaining: Exemplo BC: SE causa danos fı́sicos, deve ser evitado F → E SE é perigoso E morde, causa danos fı́sicos P ∧ M → F SE tem dentes E é perigoso, morde D ∧ P → M SE é agressivo E causa danos fı́sicos, é peri- goso A ∧ F → P SE é agressivo E tem dentes, é perigoso A ∧ D → P É agressivo A Tem dentes D Query: Deve ser evitado (E = verdadeiro)? Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 16 / 34
  • 86. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 87. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 2 2 0 0 1 2 3 4 5 6 7 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 88. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 2 2 0 0 1 2 3 4 5 6 7 F F F F F F inferida: A D E F M P Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 89. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 2 2 0 0 1 2 3 4 5 6 7 F F F F F F inferida: A D E F M P A agenda: D Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 90. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 2 2 0 0 1 2 3 4 5 6 7 F F F F F F inferida: A D E F M P A agenda: D Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 91. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 2 2 0 0 1 2 3 4 5 6 7 F F F F F F inferida: A D E F M P D agenda: p: A Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 92. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 2 2 0 0 1 2 3 4 5 6 7 F F F F F F inferida: A D E F M P D agenda: p: A Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 93. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 2 2 0 0 1 2 3 4 5 6 7 F F F F F F inferida: A D E F M P D agenda: p: A Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 94. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 2 2 0 0 1 2 3 4 5 6 7 V F F F F F inferida: A D E F M P D agenda: p: A Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 95. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 2 2 0 0 1 2 3 4 5 6 7 V F F F F F inferida: A D E F M P D agenda: p: A c: 4 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 96. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 1 2 0 0 1 2 3 4 5 6 7 V F F F F F inferida: A D E F M P D agenda: p: A c: 4 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 97. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 1 2 0 0 1 2 3 4 5 6 7 V F F F F F inferida: A D E F M P D agenda: p: A c: 4 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 98. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 1 2 0 0 1 2 3 4 5 6 7 V F F F F F inferida: A D E F M P D agenda: p: A c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 99. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 1 1 0 0 1 2 3 4 5 6 7 V F F F F F inferida: A D E F M P D agenda: p: A c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 100. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 1 1 0 0 1 2 3 4 5 6 7 V F F F F F inferida: A D E F M P D agenda: p: A c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 101. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 1 1 0 0 1 2 3 4 5 6 7 V F F F F F inferida: A D E F M P D agenda: p: A c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 102. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 1 1 0 0 1 2 3 4 5 6 7 V F F F F F inferida: A D E F M P D agenda: p: A c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 103. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 1 1 0 0 1 2 3 4 5 6 7 V F F F F F inferida: A D E F M P agenda: p: D c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 104. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 1 1 0 0 1 2 3 4 5 6 7 V F F F F F inferida: A D E F M P agenda: p: D c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 105. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 1 1 0 0 1 2 3 4 5 6 7 V F F F F F inferida: A D E F M P agenda: p: D c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 106. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 1 1 0 0 1 2 3 4 5 6 7 V V F F F F inferida: A D E F M P agenda: p: D c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 107. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 2 1 1 0 0 1 2 3 4 5 6 7 V V F F F F inferida: A D E F M P agenda: p: D c: 3 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 108. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 1 1 1 0 0 1 2 3 4 5 6 7 V V F F F F inferida: A D E F M P agenda: p: D c: 3 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 109. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 1 1 1 0 0 1 2 3 4 5 6 7 V V F F F F inferida: A D E F M P agenda: p: D c: 3 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 110. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 1 1 1 0 0 1 2 3 4 5 6 7 V V F F F F inferida: A D E F M P agenda: p: D c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 111. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 1 1 0 0 0 1 2 3 4 5 6 7 V V F F F F inferida: A D E F M P agenda: p: D c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 112. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 1 1 0 0 0 1 2 3 4 5 6 7 V V F F F F inferida: A D E F M P agenda: p: D c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 113. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 1 1 0 0 0 1 2 3 4 5 6 7 V V F F F F inferida: A D E F M P P agenda: p: D c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 114. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 1 1 0 0 0 1 2 3 4 5 6 7 V V F F F F inferida: A D E F M P P agenda: p: D c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 115. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 1 1 0 0 0 1 2 3 4 5 6 7 V V F F F F inferida: A D E F M P P agenda: p: D c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 116. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 1 1 0 0 0 1 2 3 4 5 6 7 V V F F F F inferida: A D E F M P agenda: p: P c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 117. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 1 1 0 0 0 1 2 3 4 5 6 7 V V F F F F inferida: A D E F M P agenda: p: P c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 118. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 1 1 0 0 0 1 2 3 4 5 6 7 V V F F F F inferida: A D E F M P agenda: p: P c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 119. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 1 1 0 0 0 1 2 3 4 5 6 7 V V F F F V inferida: A D E F M P agenda: p: P c: 5 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 120. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 2 1 1 0 0 0 1 2 3 4 5 6 7 V V F F F V inferida: A D E F M P agenda: p: P c: 2 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 121. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 1 1 1 0 0 0 1 2 3 4 5 6 7 V V F F F V inferida: A D E F M P agenda: p: P c: 2 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 122. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 1 1 1 0 0 0 1 2 3 4 5 6 7 V V F F F V inferida: A D E F M P agenda: p: P c: 2 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 123. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 1 1 1 0 0 0 1 2 3 4 5 6 7 V V F F F V inferida: A D E F M P agenda: p: P c: 3 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 124. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 1 0 1 0 0 0 1 2 3 4 5 6 7 V V F F F V inferida: A D E F M P agenda: p: P c: 3 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 125. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 1 0 1 0 0 0 1 2 3 4 5 6 7 V V F F F V inferida: A D E F M P agenda: p: P c: 3 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 126. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 1 0 1 0 0 0 1 2 3 4 5 6 7 V V F F F V inferida: A D E F M P M agenda: p: P c: 3 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 127. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 1 0 1 0 0 0 1 2 3 4 5 6 7 V V F F F V inferida: A D E F M P M agenda: p: P c: 3 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 128. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 1 0 1 0 0 0 1 2 3 4 5 6 7 V V F F F V inferida: A D E F M P M agenda: p: P c: 3 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 129. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 1 0 1 0 0 0 1 2 3 4 5 6 7 V V F F F V inferida: A D E F M P agenda: p: M c: 3 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 130. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 1 0 1 0 0 0 1 2 3 4 5 6 7 V V F F F V inferida: A D E F M P agenda: p: M c: 3 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 131. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 1 0 1 0 0 0 1 2 3 4 5 6 7 V V F F F V inferida: A D E F M P agenda: p: M c: 3 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 132. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 1 0 1 0 0 0 1 2 3 4 5 6 7 V V F F V V inferida: A D E F M P agenda: p: M c: 3 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 133. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 1 0 1 0 0 0 1 2 3 4 5 6 7 V V F F V V inferida: A D E F M P agenda: p: M c: 2 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 134. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 0 0 1 0 0 0 1 2 3 4 5 6 7 V V F F V V inferida: A D E F M P agenda: p: M c: 2 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 135. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 0 0 1 0 0 0 1 2 3 4 5 6 7 V V F F V V inferida: A D E F M P agenda: p: M c: 2 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 136. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 0 0 1 0 0 0 1 2 3 4 5 6 7 V V F F V V inferida: A D E F M P F agenda: p: M c: 2 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 137. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 0 0 1 0 0 0 1 2 3 4 5 6 7 V V F F V V inferida: A D E F M P F agenda: p: M c: 2 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 138. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 0 0 1 0 0 0 1 2 3 4 5 6 7 V V F F V V inferida: A D E F M P F agenda: p: M c: 2 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 139. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 0 0 1 0 0 0 1 2 3 4 5 6 7 V V F F V V inferida: A D E F M P agenda: p: F c: 2 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 140. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 0 0 1 0 0 0 1 2 3 4 5 6 7 V V F F V V inferida: A D E F M P agenda: p: F c: 2 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 141. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 0 0 1 0 0 0 1 2 3 4 5 6 7 V V F F V V inferida: A D E F M P agenda: p: F c: 2 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 142. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 0 0 1 0 0 0 1 2 3 4 5 6 7 V V F V V V inferida: A D E F M P agenda: p: F c: 2 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 143. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 1 0 0 1 0 0 0 1 2 3 4 5 6 7 V V F V V V inferida: A D E F M P agenda: p: F c: 1 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 144. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 0 0 0 1 0 0 0 1 2 3 4 5 6 7 V V F V V V inferida: A D E F M P agenda: p: F c: 1 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 145. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 0 0 0 1 0 0 0 1 2 3 4 5 6 7 V V F V V V inferida: A D E F M P agenda: p: F c: 1 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 146. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 0 0 0 1 0 0 0 1 2 3 4 5 6 7 V V F V V V inferida: A D E F M P E agenda: p: F c: 1 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 147. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 0 0 0 1 0 0 0 1 2 3 4 5 6 7 V V F V V V inferida: A D E F M P E agenda: p: F c: 4 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 148. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 0 0 0 0 0 0 0 1 2 3 4 5 6 7 V V F V V V inferida: A D E F M P E agenda: p: F c: 4 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 149. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 0 0 0 0 0 0 0 1 2 3 4 5 6 7 V V F V V V inferida: A D E F M P E agenda: p: F c: 4 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 150. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 0 0 0 0 0 0 0 1 2 3 4 5 6 7 V V F V V V inferida: A D E F M P E agenda: P p: F c: 4 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 151. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 0 0 0 0 0 0 0 1 2 3 4 5 6 7 V V F V V V inferida: A D E F M P E agenda: P p: F c: 4 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 152. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 0 0 0 0 0 0 0 1 2 3 4 5 6 7 V V F V V V inferida: A D E F M P E agenda: P p: F c: 4 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 153. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 0 0 0 0 0 0 0 1 2 3 4 5 6 7 V V F V V V inferida: A D E F M P P agenda: p: E c: 4 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 154. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 0 0 0 0 0 0 0 1 2 3 4 5 6 7 V V F V V V inferida: A D E F M P P agenda: p: E c: 4 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 155. Lógica Proposicional e Inferência Forward Chaining: Algoritmo F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D BC: 1: 2: 3: 4: 5: 6: 7: q: E cont: 0 0 0 0 0 0 0 1 2 3 4 5 6 7 V V F V V V inferida: A D E F M P P agenda: p: E c: 4 Função FORWARD CHAINING(BC, q): boolean cont ← número de sı́mbolos em cada premissa inferida ← inicializada com falso para todo sı́mbolo agenda ← sı́mbolos verdadeiros na BC enquanto agenda não estiver vazia faça p ← retira o primeiro elemento de agenda se p = q então retorna verdadeiro se inferida[p] = falso então inferida[p] ← verdadeiro para cada cláusula c em que p ∈ PREMISSAS(c) faça decremente cont[c] se cont[c] = 0 então Adicione a conclusão de c à agenda retorna falso; Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 17 / 34
  • 156. Lógica Proposicional e Inferência Forward Chaining Forward chaining é consistente Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 18 / 34
  • 157. Lógica Proposicional e Inferência Forward Chaining Forward chaining é consistente Toda inferência é aplicação de Modus Ponens Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 18 / 34
  • 158. Lógica Proposicional e Inferência Forward Chaining Forward chaining é consistente Toda inferência é aplicação de Modus Ponens Assim, toda sentença atômica inferida é acarretada pela base Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 18 / 34
  • 159. Lógica Proposicional e Inferência Forward Chaining Forward chaining é consistente Toda inferência é aplicação de Modus Ponens Assim, toda sentença atômica inferida é acarretada pela base Também é completo Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 18 / 34
  • 160. Lógica Proposicional e Inferência Forward Chaining Forward chaining é consistente Toda inferência é aplicação de Modus Ponens Assim, toda sentença atômica inferida é acarretada pela base Também é completo Toda sentença atômica acarretada pela base será derivada Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 18 / 34
  • 161. Lógica Proposicional e Inferência Forward Chaining Forward chaining é consistente Toda inferência é aplicação de Modus Ponens Assim, toda sentença atômica inferida é acarretada pela base Também é completo Toda sentença atômica acarretada pela base será derivada É um exemplo de raciocı́nio guiado por dados Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 18 / 34
  • 162. Lógica Proposicional e Inferência Forward Chaining Forward chaining é consistente Toda inferência é aplicação de Modus Ponens Assim, toda sentença atômica inferida é acarretada pela base Também é completo Toda sentença atômica acarretada pela base será derivada É um exemplo de raciocı́nio guiado por dados Raciocı́nio em que o foco da atenção começa com os dados conhecidos Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 18 / 34
  • 163. Lógica Proposicional e Inferência Backward Chaining Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 19 / 34
  • 164. Lógica Proposicional e Inferência Backward Chaining Também se baseia em Modus Ponens Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 19 / 34
  • 165. Lógica Proposicional e Inferência Backward Chaining Também se baseia em Modus Ponens Porém caminha em direção contrária ao forward chaining, voltando nas regras a partir da query Q Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 19 / 34
  • 166. Lógica Proposicional e Inferência Backward Chaining Também se baseia em Modus Ponens Porém caminha em direção contrária ao forward chaining, voltando nas regras a partir da query Q Para provar Q por Backward Chaining Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 19 / 34
  • 167. Lógica Proposicional e Inferência Backward Chaining Também se baseia em Modus Ponens Porém caminha em direção contrária ao forward chaining, voltando nas regras a partir da query Q Para provar Q por Backward Chaining Comece do objetivo Q Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 19 / 34
  • 168. Lógica Proposicional e Inferência Backward Chaining Também se baseia em Modus Ponens Porém caminha em direção contrária ao forward chaining, voltando nas regras a partir da query Q Para provar Q por Backward Chaining Comece do objetivo Q Se Q for verdadeira, então não precisa fazer mais nada Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 19 / 34
  • 169. Lógica Proposicional e Inferência Backward Chaining Também se baseia em Modus Ponens Porém caminha em direção contrária ao forward chaining, voltando nas regras a partir da query Q Para provar Q por Backward Chaining Comece do objetivo Q Se Q for verdadeira, então não precisa fazer mais nada Senão, encontre as implicações na BC que concluem Q Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 19 / 34
  • 170. Lógica Proposicional e Inferência Backward Chaining Também se baseia em Modus Ponens Porém caminha em direção contrária ao forward chaining, voltando nas regras a partir da query Q Para provar Q por Backward Chaining Comece do objetivo Q Se Q for verdadeira, então não precisa fazer mais nada Senão, encontre as implicações na BC que concluem Q Se todas as premissas de uma dessas implicações puderem ser provadas verdadeiras (por backward chaining), então Q é verdadeira Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 19 / 34
  • 171. Lógica Proposicional e Inferência Forward Chaining F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D Backward Chaining Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
  • 172. Lógica Proposicional e Inferência Forward Chaining Começamos com fatos conhecidos F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D Backward Chaining Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
  • 173. Lógica Proposicional e Inferência Forward Chaining De A e D derivamos P F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D P Backward Chaining Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
  • 174. Lógica Proposicional e Inferência Forward Chaining De P e D derivamos M F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D P M Backward Chaining Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
  • 175. Lógica Proposicional e Inferência Forward Chaining De P e M derivamos F F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D P M F Backward Chaining Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
  • 176. Lógica Proposicional e Inferência Forward Chaining De F temos E F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D P M F Backward Chaining Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
  • 177. Lógica Proposicional e Inferência Forward Chaining De F temos E F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D P M F Backward Chaining Buscamos regra com → E. Precisamos de F F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
  • 178. Lógica Proposicional e Inferência Forward Chaining De F temos E F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D P M F Backward Chaining Buscamos regra com → F. Faltam P e M F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
  • 179. Lógica Proposicional e Inferência Forward Chaining De F temos E F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D P M F Backward Chaining Buscamos regra com → P. Faltam A e F F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
  • 180. Lógica Proposicional e Inferência Forward Chaining De F temos E F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D P M F Backward Chaining Conhecemos A, falta F F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
  • 181. Lógica Proposicional e Inferência Forward Chaining De F temos E F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D P M F Backward Chaining Cuidado! Se seguirmos com F teremos um laço! F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34
  • 182. Lógica Proposicional e Inferência Forward Chaining De F temos E F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D P M F Backward Chaining Tentamos a próxima regra com → P. Falta D F → E P ∧ M → F D ∧ P → M A ∧ F → P A ∧ D → P A D Norton Trevisan Roman(norton@usp.br) 10 de abril de 2019 20 / 34