Lógica de Primeira Ordem. Capítulo 9

Documentos relacionados
Aula 08 Lógica de primeira ordem

Sistemas Dedutivos Lógica de 1ª. Ordem (LPO)

Lógica Proposicional. LEIC - Tagus Park 2 o Semestre, Ano Lectivo 2007/08. c Inês Lynce c Luísa Coheur

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial

Inferência em Lógica de Primeira Ordem. Capítulo 9

Linguagem com sintaxe e semântica precisas: lógica. Mecanismo de inferência: derivado da sintaxe e da

Cálculo proposicional

Conhecimento e Raciocínio Agente Lógicos Capítulo 7. Leliane Nunes de Barros

JOÃO NUNES de SOUZA. LÓGICA para CIÊNCIA da COMPUTAÇÃO. Uma introdução concisa

INF 1771 Inteligência Artificial

Descrição do Mundo de Wumpus. Inteligência Artificial

Lógica para Computação Primeiro Semestre, Aula 10: Resolução. Prof. Ricardo Dutra da Silva

Cálculo proposicional

Lógica Proposicional. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

MAC425/5739 Inteligência Artificial Inferência lógica

Inteligência Artificial IA IV. RACIOCÍNIO BASEADO EM REGRAS

Dedução Natural e Sistema Axiomático Pa(Capítulo 6)

MAC425/5739 Inteligência Artificial 6. Agentes lógicos

Aula 6: Dedução Natural

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 15 Agentes que Raciocinam Logicamente

Lógica. Cálculo Proposicional. Introdução

Inteligência Artificial IA II. LÓGICA DE PREDICADOS PARA REPRESENTAÇÃO DO CONHECIMENTO

Lógica predicados. Lógica predicados (continuação)

MD Lógica de Proposições Quantificadas Cálculo de Predicados 1

2 Lógica Fuzzy. 2 Lógica Fuzzy. Sintaxe da linguagem

BUSCA DE SOLUÇÕES EM PROLOG

Fórmulas da lógica proposicional

Lógica Proposicional (Consequência lógica / Dedução formal)

Lógica. Fernando Fontes. Universidade do Minho. Fernando Fontes (Universidade do Minho) Lógica 1 / 65

Lógica Proposicional. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Aula 6: Dedução Natural

Lógica para Programação

Alfabeto da Lógica Proposicional

Lógica Computacional

Lógica para computação

Lógica Computacional Aula 4

Relações semânticas entre os conectivos da Lógica Proposicional(Capítulo 5)

Lógica de primeira ordem (Capítulo 8 - Russell) Inteligência Artificial

Capítulo 3 Lógica de Primeira Ordem

Métodos para determinação de propriedades semânticas de fórmulas da Lógica Proposicional(Capítulo 4)

Linguagens Lógicas. Aluno: Victor Rocha

Lógica para Computação Segundo Semestre, Aula 10: SAT. Prof. Ricardo Dutra da Silva. ( p (q ( q r))) ( p r) ( p q) ( p q r) p r.

Aula 8: Tableaux Analíticos

Lógica Computacional

Agentes Lógicos (Part II)

Lógica Proposicional Parte 2

Lógica Computacional

PCS 2428 / PCS 2059 lnteligência Artificial. Lógica Proposicional. Agentes Baseados em Conhecimento. Agentes Baseados em Conhecimento

Matemática para Ciência de Computadores

Lógica Computacional

4 AULA. Regras de Inferência e Regras de Equivalência LIVRO. META: Introduzir algumas regras de inferência e algumas regras de equivalência.

Matemática Discreta. Lógica Proposicional. Profa. Sheila Morais de Almeida. agosto DAINF-UTFPR-PG

LÓGICA PROPOSICIONAL

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

PCS 2428 / PCS 2059 lnteligência Artificial. Lógica de Predicados. Representação de Conhecimento. Uranus. Aphrodite Kronos Atlas Prometheus

Lógica Computacional

Lyneker Amorim (T1) Philipe Farias Rafael Mota Yure Bonifacio

Aula 4: Consequência Lógica e Equivalência Lógica

Lógica Computacional

Lógica Proposicional-2

INF 1771 Inteligência Artificial

A linguagem da Lógica de Predicados. (Capítulo 8) LÓGICA APLICADA A COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto

Capítulo 7 - Agentes lógicos (Agentes baseados em Conhecimento)

Lógica Proposicional Parte 3

Lógica Proposicional Dedução Natural

Fundamentos de Lógica Matemática

Lógica para Computação

Introdução. Esse programa recebeu o nome PROLOG (do francês PROgramation et LOGique ).

Lógica para computação - Propriedades Semânticas da Lógica Proposicional (parte 2/2) Alfabeto Simplificado e Formas Normais

Lógica Computacional

1 Lógica de primeira ordem

CONTEÚDO LÓGICA FUZZY LÓGICA FUZZY. Proposições Fuzzy. Regras são implicações lógicas. Introdução Introdução, Objetivo e Histórico

Arquivos invertidos 39

LÓGICA APLICADA A COMPUTAÇÃO

Lógica para computação - Linguagem da Lógica de Predicados

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Lógica e Metodologia Jurídica

Para provar uma implicação se p, então q, é suficiente fazer o seguinte:

Vimos que a todo o argumento corresponde uma estrutura. Por exemplo ao argumento. Se a Lua é cúbica, então os humanos voam.

Lógica Computacional. Nelma Moreira. Departamento de Ciência de Computadores Faculdade de Ciências, Universidade do Porto

Respostas. Campo, bola, trave, próprio time, outro time, próprio corpo. Veículo lançador, Marte

Lógica Proposicional-2

[B&A] Computação na Lógica de Predicados

Lógica Proposicional

Lógica de Predicados. Correção dos Exercícios Regras de Inferência

3 AULA. Valorações e Tabelas de Verdade LIVRO. META: Apresentar tabelas de verdade para classificar proposições lógicas.

LÓGICA I. André Pontes

MATEMÁTICA DISCRETA CONCEITOS PRELIMINARES

Propriedades Semânticas da Lógica Proposicional(Capítulo 3)

Lógica Computacional. Nelma Moreira. Departamento de Ciência de Computadores Faculdade de Ciências, Universidade do Porto

Lógica Computacional. Nelma Moreira. Departamento de Ciência de Computadores Faculdade de Ciências, Universidade do Porto

Conceitos Básicos Linguagem C

IME, UFF 3 de junho de 2014

Complexidade de Algoritmos. Edson Prestes

Lógica Formal. Matemática Discreta. Prof Marcelo Maraschin de Souza

JOÃO NUNES de SOUZA. LÓGICA para CIÊNCIA da COMPUTAÇÃO. Uma introdução concisa

PROVA COM CONETIVAS BOOLEANAS. Introdução-31

MATRIZES - PARTE Mais exemplos Multiplicação de duas matrizes AULA 26

Lógica de Primeira Ordem. Capítulo 8

Transcrição:

Lógica de Primeira Ordem Capítulo 9

Inferência proposicional Prova semântica: através da enumeração de interpretações e verificação de modelos Prova sintática: uso de regras de inferência

Inferência Proposicional versus Inferência de primeira ordem Inferência de primeira ordem pode ser realizada convertendo-se a base de conhecimento para lógica proposicional e utilizando-se a inferência proposicional.

Regras de inferência para quantificadores Técnica de proposicionalização Instanciação universal Instanciação do existencial

Instanciação universal x Rei(x) Guloso(x) Perverso(x) Podemos deduzir: Rei(João) Guloso(João) Perverso(João) Rei(Pedro) Guloso(Pedro) Perverso(Pedro) Rei((pai(João)) Guloso(pai(João)) Perverso(pai(João)) να SUBST({ν/g},α)

Instanciação do existencial x Coroa(x) NaCabeça(x,João) Podemos deduzir: Coroa(C1) NaCabeça(C1,João), sendo C1 um símbolo constante novo na KB Símbolo de constante k constante de Skolem να SUBST({ν/k},α)

Proposionalização Problema: quando a KB incluir um símbolo de função, o conjunto de substituições de termos básicos é infinito! Ex.: pai(pai(pai... (pai(pai(joão)))... )) Teorema de Herbrand: se uma sentença é conseqüência lógica da KB original, então existe uma prova envolvendo apenas um sub-conjunto finito da KB proposicionalizada.

Completude A técnica de proposicionalização é completa: Qualquer sentença que é consequência lógica da KB em LPO pode ser provada na KB em LP (KB convertida)

Decidibilidade da LPO Não é possível saber se uma sentença é consequência lógica até que a prova termine A questão de consequência lógica no caso da lógica de primeira ordem é semidecidível existem algoritmos que respondem sim para toda sentença que é consequência lógica mas não existe nenhum algoritmo que também responda não para toda sentença que não é consequência lógica.

1 Exemplo x Rei(x) Guloso(x) Perverso(x) Rei(João) Guloso(João) Irmão(Ricardo,João) Aplicando a Instanciação Universal à primeira sentença: Rei(João) Guloso(João) Perverso(João) Rei(Ricardo) Guloso(Ricardo) Perverso(Ricardo) podemos inferir: Perverso(João)

1 Exemplo Note que a sentença: x Rei(Ricardo) Guloso(Ricardo) Perverso(Ricardo) não foi usada na prova Podemos saber quais sentenças são relevantes para provarmos uma sentença α?

1 Regra de inferência de primeira ordem Para provar Perverso(João) usando a implicação x Rei(x) Guloso(x) Perverso(x) precisamos saber se existe uma substituição θ que torne a premissa da implicação idênticas a sentenças que já estão na KB θ={x/joão}

1 Regra de inferência de primeira ordem Para provar Perverso(João) usando a implicação e x Rei(x) Guloso(x) Perverso(x) y Guloso(y) precisamos saber se existe uma substituição θ que torne a premissa da implicação idênticas a sentenças que já estão na KB θ={x/joão, y/joão}

1 Modus Ponens generalizado Dada as sentenças atômicas p i, p i e q, para as quais exista uma substituição θ tal que SUBST(θ, p i ) = SUBST(θ, p i ), para todo i, p 1, p 2,..., p n, (p i p i... p n q) SUBST(θ,q)

1 Modus Ponens generalizado Versãoelevada (lifted) do Modus Ponens Essa regra eleva o Modus Ponens da lógica proposicional à lógica de primeira ordem Vantagens das regras de inferências elevadas: só efetuam as substituições necessárias para permitir a derivação de inferências específicas

1 Unificação Unificar(p,q) = θ onde SUBST(θ,p) = SUBST (θ,q) Unificar(Conhece(João,x), Conhece(y, Mãe(y))) = {y/joão,x/mãe(joão)} Unificar(Conhece(João,x), Conhece(x, Elizabeth) = falha Problema 1: as duas expressões utilizam o mesmo nome de variável

1 Unificação Solução: padronização separada (renomear as variáveis) Unificar(Conhece(João,x), Conhece(z23, Elizabeth) = {x/elizabeth, z23/joão}

1 Unificação Problema 2: podem existir várias maneiras de unificar sentenças: Para todo par de expressões que pode ser unificada, existe um único unificador mais geral (UMG) que é exclusivo para renomear variáveis

1 Algoritmo de unificação (I) Função UNIFICAR(x,y,θ) devolve uma substituição que torna x e y idênticas ou devolve falha entrada: x, y, uma variável, const, lista ou composto θ, a substituição construida até agora se θ=falha então devolve falha se x=y então devolve θ se VARIAVEL?(x) então devolve UNIFICAR-VAR(x,y, θ) se VARIAVEL?(y) então devolve UNIFICAR-VAR(y,x, θ) se COMPOSTO?(x) e COMPOSTO?(y) e FUNC[x] = FUNC[y] então devolve UNIFICAR(ARGS[x], ARGS[y], θ)) se LISTA?(x) e LISTA?(y) então devolve UNIFICAR(RESTO[x], RESTO[y], UNIFICAR(PRIMEIRO[x], PRIMEIRO[y], θ)) devolve falha

2 Algoritmo de unificação (I) Função UNIFICAR(x,y,θ) devolve uma substituição que torna x e y idênticas ou devolve falha entrada: x, y, uma variável, const, lista ou composto θ, a substituição construida até agora se θ=falha então devolve falha se x=y então devolve θ se VARIAVEL?(x) então devolve UNIFICAR-VAR(x,y, θ) se VARIAVEL?(y) então devolve UNIFICAR-VAR(y,x, θ) se COMPOSTO?(x) e COMPOSTO?(y) então devolve UNIFICAR(ARGS[x], ARGS[y], UNIFICAR(FUNC[x], FUNC[y], θ)) (como a chamada interna é executada antes da mais externa, se as funtores forem diferentes os argumentos não podem ser unificados) se LISTA?(x) e LISTA?(y) então devolve UNIFICAR(RESTO[x], RESTO[y], UNIFICAR(PRIMEIRO[x], PRIMEIRO[y], θ)) devolve falha

2 Algoritmo de unificação (II) Função UNIFICAR-VAR(var,x,θ) devolve uma substituição θ entrada: var, uma variável x, qualquer expressão θ, a substituição construida até agora se {var/val} θentão devolve UNIFICAR(val,x, θ) se {x/val} θentão devolve UNIFICAR(var,val, θ) se VERIFICAR-OCORRENCIA?(var,x) então devolve falha senão devolver adicionar {var/x} a θ VERIFICAR-OCORRENCIA, tem complexidade quadrática no tamanho das expressões que estão sendo unificadas

2 Armazenamento e recuperação Armazenar e recuperar podem ser definidas como funções mais primitivas que o TELL e ASK RECUPERAR: devolve todos os unificadores tais que a consulta q se unifica com alguma sentença da KB KB = SUBST(θ, q) Uso de uma tabela de hash para indexar os fatos da KB por várias chaves: predicado e primeiro argumento ou predicado e segundo argumento...

2 Reticulado de subordinação Dada uma sentença a ser armazenada, é possível construir índices para todas as consultas possíveis que se unificam com ela Essas consultas formam um reticulado de subordinação

2 Reticulado de subordinação Emprega(x,y) Emprega(x,Ricardo) Emprega(USP,y) Emprega(USP,Ricardo)

Propriedades: - O filho de qualquer nó no reticulado é obtido a partir de seu pai por uma única substituição - O mais alto descendente comum de dois nós quaisquer é o resultado da aplicação do unificador geral - Para um predicado com n argumentos, o reticulado contém O(2 n ) nós. Se forem permitidos símbolos de funções, o número de nós será exponencial no tamanho dos termos da sentença a ser armazenada número muito grande de índices - Para a maioria dos sistemas de IA, o número de fatos é pequeno o bastante para uma indexação eficiente. Isso pode não ser verdade para bancos de dados comerciais. 2 Reticulado de subordinação

2 Resolução Como foi dito para a Lógica Proposicional ao invés de usarmos o conjunto de (7) regras de inferência definidos como consistentes podemos usar uma regra de inferência única: a resolução... gerando um algoritmo de inferência completo quando acoplado a um algoritmo de busca completo

2 7 regras de inferência para a LP α β, α β α 1 Λα 2 Λ... Λα n α n α 1,α 2,..., α n α 1 Λα 2 Λ... Λα n α i α 1 Vα 2 V... Vα n α α α V β, β α α V β, β V γ α V γ Modus Ponens Eliminaçăo Introduçăo da conjunçăo Introduçăo da disjunçăo Negaçăo dupla Resoluçăo simples Resoluçăo Da implicaçăo e da premissa infere-se a conclusăo Da conjunçăo infere-se qualquer α n De uma lista de sentenças infere-se a sua conjunçăo De uma sentença, inferese sua disjunçăo com qualquer outra De uma negaçăo dupla infere-se uma senetnça positiva Se uma das disjunçőes for falsa, pode-se inferir que a outra é verdade β, năo pode ser Verdade e Falso ao mesmo tempo

2 Regra de resolução unitária l 1... l k, m l 1... l i-1 l i+1... l k onde l i e m são literais complementares (, isto é, l é a negação de m).

2 Regra de resolução completa l 1... l k, m 1... m k l 1... l i-1 l i+1... l k m 1... m i-1 m i+1... m k onde l i e m i são literais complementares.

3 Regra de resolução completa Pega duas cláusulas e transforma numa nova cláusula, contendo todos os literais das duas cláusulas originais, exceto os dois literais complementares. Fatoração: a cláusula resultante deve conter apenas uma cópia de cada literal

3 Regra de resolução Não serve para gerar todas as conseqüências lógicas da KB mas serve para provar se a KB satisfaz ou não uma sentença α. Como a regra de resolução só se aplica a disjunções de literais, é preciso transformar a KB na forma normal conjuntiva (FNC) Toda sentença da LP ou LPO é logicamente equivalente a uma conjunção de disjunções de literais (FNC)

3 Forma Normal Conjuntiva Como converter a sentença do Mundo do Wumpus: B 1,1 (P 1,2 P 2,1 ) para a forma normal conjuntiva?

3 Forma Normal Conjuntiva 1. Eliminar Substituindo α βpor (α β) (β α) 2. Eliminar Substituindo α β por α β 3. Eliminar a negação de expressões (deixar somente a negação de literais), através das seguintes equivalências lógicas: ( α) α (α β) α β (α β) α β

3 Inferência baseada na resolução Usa o princípio de prova por contradição: para provar que KB = α, mostramos que (KB α) é não satisfatível (isto é, não existe um modelo que satisfaz a fórmula)

3 Cláusula vazia - contradição A cláusula vazia é gerada resolvendo-se duas cláusulas unitárias, P e P, o que representa uma contradição cláusula vazia disjunção de nenhum disjunto equivale a Falso

3 Algoritmo de resolução 1. (KB α) é convertida em uma FNC 2. Aplica a regra de resolução na FNC resultante cada par de cláusulas que contém literais complementares é resolvido para gerar uma nova cláusula que é inserida na KB, se ainda não estiver presente. 3. O passo 2 continua até que: Não exista nenhuma cláusula nova que possa ser adicionada, nesse caso KB α ou Uma aplicação da regra de resolução deriva a cláusula vazia, nesse caso KB = α

3 Algoritmo de resolução função RESOLUÇÃO-LP(KB,α) devolve verdadeiro ou falso entradas: KB e uma sentença α (consulta) em LP cláusulas o conjunto de cláusulas FNC de KB α nova { } repita para cada C i, C j em cláusulas faça resolventes RESOLVER-LP(C i, C j ) se resolventes contém a cláusula vazia então devolver verdadeiro nova nova resolventes se nova cláusulas então devolver falso cláusulas cláusulas nova

3 Algoritmo de resolução função RESOLUÇÃO-LP(KB,α) devolve verdadeiro ou falso entradas: KB e uma sentença α (consulta) em LP cláusulas {} cláusulas o conjunto de cláusulas FNC de KB α nova { } repita para cada C i, C j em cláusulas faça resolventes RESOLVER-LP(C i, C j ) se resolventes contém a cláusula vazia então devolver verdadeiro nova nova resolventes cláusulas cláusulas nova até cláusulas = cláusulas devolva falso

Exercício: 3 resolução no Mundo do Wumpus Se não há brisa em [1,1] então não há poços nos quadrados vizinhos KB: (B 1,1 (P 1,2 P 2,1 )) B 1,1 Queremos provar α P 1,2 Portanto, KB α fica: (B 1,1 (P 1,2 P 2,1 )) B 1,1 ( P 1,2 )

Exercício: 4 resolução no Mundo do Wumpus KB α (B 1,1 (P 1,2 P 2,1 )) B 1,1 ( P 1,2 ) Corresponde à CNF:... (prova)

4 Cláusulas de Horn Cláusula de Horn: uma disjunção de literais com no máximo um literal positivo. Ex: A B C D Cláusulas de Horn podem ser convertidas para implicações com premissas positivas e conclusão com um único literal positivo A B C D

4 Tipos de cláusulas de Horn Cláusula definida: A B C D corpo cabeça Fato: cláusula sem literais negativos D Restrições de integridade: cláusulas sem literais positivos A B C premissas A B C Falso conclusão

4 Encadeamento para frente e para trás A inferência com cláusulas de Horn pode ser feita com algoritmos de encadeamento para frente e encadeamento para trás Algoritmos que consomem tempo linear em relação ao tamanho da KB

4 Encadeamento para frente Queremos verificar se KB = α A partir do conjunto de fatos da KB verificamos as premissas de uma implicação. Se todas forem verdadeiras, a conclusão é adicionada à KB (modus ponens). Esse processo continua até α ser adicionada à KB ou até não ser possível fazer inferências adicionais (ponto fixo)

Encadeamento para frente numa 4 KB de cláusulas de Horn (KB = Q) P Q L M P B L M A B L A B L Q P M Raciocínio orientado a dados; a partir dos dados A B

4 Encadeamento para trás Raciocínio orientado por metas; a partir da consulta Se Q já é verdade na KB o algoritmo para Caso contrário, o algoritmo procura as implicações na KB que possuem Q como conclusão Se é possível provar todas as premissas dessa implicação (também por encadeamento para trás) então Q é verdadeira Raciocínio em que se baseiam as linguagens de programação lógica., por exemplo, PROLOG