Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouIsabel Avila Alterado mais de 9 anos atrás
1
Elsa Carvalho 186 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Aplicação e Composição de Substituições A resolução com cláusulas que contêm variáveis é similar à resolução proposicional mas requer a aplicação de substituições com o intuito de substituir certas variáveis por termos específicos. Seja a substituição = {X 1 /t 1, X 2 /t 2,..., X n /t n } Como já vimos, uma aplicação de numa fórmula W é a substituição de todas as ocorrências livres da variável X i pelo termo t i. O resultado é chamado de instância da substituição e é denotado por W .
2
Elsa Carvalho 187 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Aplicação e Composição de Substituições Considere-se a fórmula W = gosta(X, Y) se aplicarmos a W a substituição 1 = {X/ana, Y/luis} temos a instância da substituição W 1= gosta(ana, luis). se aplicarmos a W a substituição 2 = {X/Y, Y/luis} temos a instância da substituição W 2= gosta(Y, luis) e aplicando uma vez mais 2 ficamos com (W 2) 2 = gosta(luis, luis).
3
Elsa Carvalho 188 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Aplicação e Composição de Substituições Nem todas as substituições são válidas. Para que o sejam devem respeitar as seguintes propriedades: Funcionalidade: {U 1 /t 1,..., U m /t m } todas as variáveis U i devem ser distintas. Por exemplo {X/ana, Y/luis, Y/miguel} não é uma substituição válida porque não respeita a propriedade acima. Idempotência: para qualquer fórmula W deve ter-se que W = (W ) ou seja, o resultado de aplicar a substituição uma vez deve ser igual ao resultado de aplicá-la n vezes (com n>1) Assim a substituição 2 não é considerada válida.
4
Elsa Carvalho 189 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Aplicação e Composição de Substituições A operação mais importante entre substituições é a composição. Suponhamos que temos duas substituições válidas: 1 = {U 1 /t 1,..., U m /t m } 2 = {V 1 /s 1,..., V n /s n } a composição de 1 com 2 é denotada pela expressão 1 2 e é definida como {U 1 /t 1 2,..., U m /t m 2} {V j /s j | V j {U 1,..., U m }} ou seja, aplicar 1 a W representa substituir todas as suas variáveis livres U i pelos termos t i resultando na instância W 1. Depois restam apenas duas formas da substituição 2 alterar W 1: substituir todas as variáveis V j introduzidas por 1 substituir todas as variáveis V j que não foram substituídas por 1
5
Elsa Carvalho 190 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Aplicação e Composição de Substituições Nem todas as composições são completamente válidas uma vez que nem todas respeitam a propriedade da idempotência. No entanto possuem todas as seguintes propriedades: 1 2 é funcional W( 1 2 ) = (W 1) 2 para qq fórmula W ( 1 2) 3 = 1 ( 2 3)associatividade de Mas a composição não é, em geral, comutativa. Prove que a composição não é comutativa utilizando a fórmula W = p(U1, g(V1), V2) e as substituições 1 = {U1/ f(V1)} 2 = {V1/a, V2/b, U1/c}
6
Elsa Carvalho 191 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Resolução em Lógica de Predicados De forma a utilizarmos a resolução para as cláusulas da lógica de predicados teremos de suplementar essa regra de inferência com o uso implícito de outra regra conhecida como instanciação universal: ( X)W(X)├ ( Y 1 )... ( Y n )W(X){X/t)} para qq termo t onde Y 1,... e Y n são as variáveis, caso existam, que ocorrem em t
7
Elsa Carvalho 192 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Resolução em Lógica de Predicados Temos as seguintes cláusulas que estão implicitamente universalmente quantificadas gosta(luis, Y) feminino(Y) tia(Y,Z) gosta(X, mae) ama(X, mae) a resolução actua instanciando em primeiro lugar ambas as cláusulas através da substituição = {Y/mae, X/luis} de forma a tornar os literais ‘gosta’ complementares: gosta(luis, mae) feminino(mae) tia(mae,Z) gosta(luis, mae) ama(luis, mae) antes de continuar exactamente como no caso proposicional para obter o resolvente ama(luis, mae) feminino(mae) tia(mae,Z)
8
Elsa Carvalho 193 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Resolução em Lógica de Predicados Resumindo, se tivermos A A 1 … A m C A C 1 … C n a resolução procura um literal no antecedente da implicação e o mesmo literal no consequente de outra cláusula e, com um passo da resolução, obtemos C A 1 … A m C 1 … C n
9
Elsa Carvalho 194 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Resolução em Lógica de Predicados Um literal positivo é representado como A (que é o mesmo que dizer A true) Um literal negativo é representado como A(que é o mesmo que dizer false A) Resolução chã para um conjunto C de cláusulas é a aplicação da resolução proposicional a um conjunto de instanciações chãs das cláusulas de C.
10
Elsa Carvalho 195 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Resolução em Lógica de Predicados Um unificador para as fórmulas W1 e W2 é a substituição tal que W1 = W2 . Um unificador para duas fórmulas W1 e W2 diz-se um unificador mais geral se e só se, para todo o unificador para as fórmulas existe uma substituição tal que = ° . Pode-se estender a noção de unificador a um conjunto de fórmulas. Um conjunto de fórmulas diz-se unificável se e só se admite um unificador.
11
Elsa Carvalho 196 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Resolução em Lógica de Predicados = {X/a, Y/a} é um unificador para p(X) e p(Y), mas não é o unificador mais geral. O unificador mais geral é = {X/Y} Ou seja = {Y/a} Mostrar que = ° , se = {Y/a} As fórmulas p(X, f(Y)) e p(f(U), g(Z)) não são unificáveis.
12
Elsa Carvalho 197 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Resolução em Lógica de Predicados Mudança (ou renomeação) de variáveis É uma substituição que substitui apenas variáveis por variáveis. Por exemplo, dadas as fórmulas {p(f(Z), X), p(Y,g(U))} temos que uma mudança de variáveis é: = {Z/Z1, X/X1, Y/Y1, U/U1}, donde obteríamos p(f(Z1), X1) e p(Y1, g(U1)) Um unificador mais geral é único a menos de uma mudança de variáveis. Quer dizer, se e são unificadores mais gerais para um conjunto de fórmulas, existe uma mudança de variáveis tal que = ° .
13
Elsa Carvalho 198 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Resolução em Lógica de Predicados Dadas as fórmulas {p(f(Z), X), p(Y,g(U))} temos os dois u.m.g. = {X/g(U), Y/f(Z)} = {X/g(U1), Y/f(Z1), Z/Z1, U/U1} A mudança de variáveis apresentada no exemplo anterior valida o que foi declarado, ou seja = °
14
Elsa Carvalho 199 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Unificação Todo o conjunto unificável admite um unificador mais geral. Prova Existe um algoritmo que indica se um dado conjunto é unificável e, no caso afirmativo, retorna o unificador mais geral. Esse algoritmo é chamado de unificação. O algoritmo usa uma pilha S na qual guardamos pares de termos a unificar, e que iniciamos com os pares. Recorre-se ainda a uma variável booleana para indicar a impossibilidade de unificar as duas expressões. O unificador mais geral é construído progressivamente começando com a identidade.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.