Lógica Computacional

Documentos relacionados
Lógica Computacional

Lógica Computacional

Lógica Computacional

Lógica Computacional

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

Lógica Matemática - Quantificadores

Lógica Computacional (CC2003)

Lógica Computacional DCC/FCUP 2017/18

DIM Resolução e método tableaux DIM / 37

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

Fundamentos de Lógica Matemática

Lógica Computacional

Lógica Computacional

Lógica Computacional

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

Capítulo 3 Lógica de Primeira Ordem

MÓDULO II - PARTE II LÓGICA DOS PREDICADOS

Lógica Computacional Aulas 8 e 9

SCC Capítulo 2 Lógica de Predicados

Os Fundamentos: Lógica de Predicados

Programação em Lógica. UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010

. Um termo ou designação é uma expressão que nomeia ou designa um ente.. Uma proposição é toda a expressão p susceptível de ser verdadeira ou falsa.

1 Lógica de primeira ordem

Lógica Computacional

Lógica Computacional

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

Fundamentos 1. Lógica de Predicados

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

Conteúdo. Correção de Exercício Quantificadores Rosen (pg 33) Tradução Português Lógica Rosen (pg 42)

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

Lógica Computacional

Lógica Computacional

Matemática Discreta. Fundamentos e Conceitos da Teoria dos Números. Universidade do Estado de Mato Grosso. 4 de setembro de 2017

Lógica para Computação

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.

FICHA DE TRABALHO N.º 2 MATEMÁTICA A - 10.º ANO CONJUNTOS E CONDIÇÕES

Cálculo de Predicados

1 a Lista de Exercícios Matemática Discreta

obs: i) Salvo menção em contrário, anel = anel comutativo com unidade. ii) O conjunto dos naturais inclui o zero.

Predicados e Quantificadores

Definimos a soma de seqüências fazendo as operações coordenada-a-coordenada:

Curso Satélite de. Matemática. Sessão n.º 1. Universidade Portucalense

Quantificadores, Predicados e Validade

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

Noções de Lógica Matemática. Domingos Moreira Cardoso Maria Paula Carvalho

Argumentação em Matemática período Prof. Lenimar N. Andrade. 1 de setembro de 2009

Cálculo de Predicados

Semana 3 MCTB J Donadelli. 1 Técnicas de provas. Demonstração indireta de implicação. indireta de. Demonstração por vacuidade e trivial

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

assim são válidas devido à sua estrutura e ao significado dos quantificadores universal e existencial

RACIOCÍNIO LÓGICO. Quantificadores. Prof. Renato Oliveira

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

Sistema dedutivo. Sistema dedutivo

MATEMÁTICA DISCRETA CONCEITOS PRELIMINARES

Definição 3.1: Seja x um número real. O módulo de x, denotado por x, é definido como: { x se x 0 x se x < 0

Nelma Moreira. Departamento de Ciência de Computadores da FCUP. Aula 12

Lógica de Predicados

Primeiro Desao Mestre Kame

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Algoritmo da divisão em k[x] 2

Matemática E Extensivo V. 8

Um polinômio com coeficientes racionais é uma escrita formal

m 1 Grupo A é 3, então ( P + Q R) Como o maior expoente da variável x do polinômio P + Q R Analogamente ao item a, (PQ) = 3.

4 ÁLGEBRA ELEMENTAR. 4.1 Monômios e polinômios: valor numérico e operações.

A Ideia de Continuidade. Quando dizemos que um processo funciona de forma contínua, estamos dizendo que ele ocorre sem interrupção.

Definição: Uma função de uma variável x é uma função polinomial complexa se pudermos escrevê-la na forma n

Cálculo de Predicados. Matemática Discreta. Profa. Sheila Morais de Almeida DAINF-UTFPR-PG. março

Lógica Computacional. Normalização e Formas Normais. Literais, Cláusulas e Monómios; Formas Normais NNF, CNF e DNF. Algoritmos de Conversão

Lógica de Primeira Ordem. Capítulo 9

DANIEL V. TAUSK. se A é um subconjunto de X, denotamos por A c o complementar de

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

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

Transcrição:

Aula Teórica 22: Departamento de Informática 16 de Maio de 2011

Introdução Revisão do procedimento Exemplo em Primeira Ordem Considere-se o seguinte conjunto de cláusulas, assumindo as variáveis universalmente quantificadas. {{ Q(x, y), P(f (x), y)}, { P(f (x), y), R(x, y, z)}} Um resolvente das duas cláusulas em cima é a cláusula R 1 = { Q(x, y), R(x, y, z)}. Considere-se agora a cláusula { P(z, y), R(x, y, z)}. Não se consegue resolve-la directamente com a primeira cláusula do conjunto acima, mas substituindo f (x) em z obtém-se a cláusula { P(f (x), y), R(x, y, f (x))} que já permite encontrar um resolvente: R 2 = { Q(x, y), R(x, y, f (x))}. Note-se que R 2 é consequência de R 1 : se esta é satisfeita (para qualquer z), então é satisfeita para z = f (x).

Cláusulas Cláusulas de Primeira Ordem Definição Considere-se uma fórmula ϕ F X Σ tal que FNS(ϕ), i.e., ϕ = x 1... x n ψ sendo ψ uma fórmula de primeira ordem sem quantificadores tal que FNC(ψ). Como todas as variáveis estão universalmente quantificadas (as livres estão-o implicitamente), ϕ pode ser escrita como um conjunto de cláusulas. Seja C(ψ) o conjunto de cláusulas que se obtém de ψ (que está em FNC). Define-se C(ϕ) = C(ψ).

Cláusulas Cláusulas de Primeira Ordem Lema Para qualquer ϕ FΣ X tal que FNS(ϕ), existe um único C(ϕ) Para quaisquer ϕ, ψ FΣ X, se C(ϕ) = C(ψ) então ϕ ψ. Estes resultados derivam dos respectivos da Lógica Proposicional. Literais Na Lógica de Primeira Ordem chamam-se literais às fórmulas atómicas ( ou predicados) ou à sua negação ( ou negação de predicados).

Introdução Motivação Substituição Exemplo No exemplo atrás, encontrámos uma substituição (z por f (x)) que converteu { P(z, y), R(x, y, z)} em { P(f (x), y), R(x, y, f (x))}, permitindo encontrar um resolvente de duas cláusulas. Dado um conjunto de literais ocorrendo em duas cláusulas, para encontrar um resolvente é necessário encontrar substituições que façam iguais literais envolvendo o mesmo predicado. Sejam L = {P(f (x), y), P(z, w)} e sub = {f (x)/z}{w/y}. Então Lsub = {P(f (x), y), P(f (x), w)}{w/y} = {P(f (x), w)}

Definições Definição Um conjunto de literais L é unificável se existe uma substituição sub que aplicada a L torna o conjunto singular (i.e., os vários literais convertem-se num só). Unificações não são necessariamente únicas Seja L = {P(f (x), y), P(z, w)}. Vimos que se sub 1 = {f (x)/z}{w/y} então Lsub 1 = {P(f (x), w)}. Claro que se sub 2 = {w/y}{f (x)/z} também Lsub 2 = {P(f (x), w)}. Mas se sub 3 = {f (x)/z}{a/x}{b/y} então Lsub 3 = {P(f (x), y), P(f (x), b)}{a/x}{b/y} = {P(f (a), y), P(f (a), b)}{b/y} = {P(f (a), b)}.

Definições Unificador mais geral Definição Dado um conjunto de literais L, a substituição sub é o unificador mais geral de L (e escreve-se umg(l)), se é um unificador de L e se qualquer outro unificador sub de L é tal que subsub = sub. Proposição Um conjunto finito de literais é unificável se e só se tem um unificador mais geral. Prova-se a proposição apresentando um algoritmo que, dado um conjunto finito de literais, ou retorna a mensagem não unificável ou retorna o seu unificador mais geral.

Algoritmo Algoritmo de unificação Seja L um conjunto finito de literais e faça-se (L 0, sub 0 ) = (L, ). Para dado k 0, se L k é singular então existem sub i para 1 i k tal que sub 0 sub 1 sub k é o unificador mais geral de L k. Caso contrário, existem L i, L j L tal que para P SP n L i = P(a 1,..., a m 1, a m,..., a n ) e L j = P(a 1,..., a m 1, a m,..., a n). Suponha-se que o l-ésimo símbolo de a m é a variável x e o de a m é o termo t (que não contém x). Então, e itera-se este processo. sub k+1 = {t/x} e L k+1 = L k sub k+1 Se nenhuma das condições anteriores se verifica, o algoritmo retorna L não é unificável.

Algoritmo Exemplo de aplicação do algoritmo de unificação Seja L = {R(f (g(x)), a, x), R(f (g(b)), a, b), R(f (y), z, b)} e (L 0, sub 0 ) = (L, ). Fazendo sub 1 = {g(b)/y} obtém-se L 1 = L 0 sub 1 = {R(f (g(x)), a, x), R(f (g(b)), a, b), R(f (g(b)), z, b)} Como L 1 não é singular, procura-se nova substituição. Fazendo sub 2 = {b/x} obtém-se L 2 = L 1 sub 2 = {R(f (g(b)), a, b), R(f (g(b)), z, b)} Como L 2 não é singular, procura-se nova substituição. Fazendo sub 3 = {a/z} obtém-se L 3 = L 2 sub 3 = {R(f (g(b)), a, b)} Como L 3 é singular, o unificador mais geral de L é sub = sub 0 sub 1 sub 2 sub 3.

Algoritmo Outro exemplo de aplicação do algoritmo de unificação Seja L = {R(f (g(x)), a, x), R(f (g(a)), a, b), R(f (y), a, b)} e (L 0, sub 0 ) = (L, ). Fazendo sub 1 = {g(a)/y} obtém-se L 1 = L 0 sub 1 = {R(f (g(x)), a, x), R(f (g(a)), a, b)} Como L 1 não é singular, procura-se nova substituição. Fazendo sub 2 = {a/x} obtém-se L 2 = L 1 sub 2 = {R(f (g(a)), a, a), R(f (g(a)), a, b)} Como L 2 não é singular, procura-se nova substituição. Como não há mais variáveis, não há nenhuma substituição que unifique os literais. Logo, o algoritmo retorna L não unificável.

Algoritmo Outro exemplo de aplicação do algoritmo de unificação Seja L = {R(f (g(x)), a, b), R(f (g(a)), a, b), R(f (x), a, b)} e (L 0, sub 0 ) = (L, ). Fazendo sub 1 = {g(a)/x} obtém-se L 1 = L 0 sub 1 = {R(f (g(g(a))), a, b), R(f (g(a)), a, b)} Como L 1 não é singular, procura-se nova substituição. Como não há mais variáveis, não há nenhuma substituição que unifique os literais. Logo, o algoritmo retorna L não unificável. Em geral, se L contém um literal como P(x) e outro como P(f (x)), não será unificável.

Algoritmo Correcção do algoritmo de unificação Prova Note-se que como o conjunto de literais L é finito, o número de variáveis que ocorrem em L também o é. Logo, o algoritmo termina sempre após um número finito de passos. Caso o algoritmo retorne L não unificável, pelos casos analisados atrás vê-se que L o é de facto. Assuma-se então que o algoritmo retorna como unificador mais geral sub = sub 0 sub 1 sub k, com k 0. Falta mostrar que sub é de facto o unificador mais geral. Seja sub outro unificador de L. Como sub 0 = tem-se que sub 0 sub = sub. Suponha-se que sub 0 sub n sub = sub, para algum 0 n k; então L n sub = Lsub 0 sub n sub = Lsub, que é singular, ou seja, se sub unifica L também unifica L n.

Algoritmo Correcção do algoritmo de unificação Conclusão da prova A prova termina por indução natural em n: considere-se que 1 sub n+1 = {t/x} (onde x não ocorre em t); e que 2 para L i, L j L se tem que para P SP n L i = P(a 1,..., a m 1, x,..., a n ) e L j = P(a 1,..., a m 1, t,..., a n). Como por hipótese sub é unificador de L n, tem-se que xsub = tsub, logo sub n+1 sub = {t/x}sub = sub. Por hipótese de indução, para qualquer n < k tem-se que sub 0 sub n+1 sub = sub, logo também sub 0 sub k sub = sub e portanto sub 0 sub k é o unf (L).