Documente Academic
Documente Profesional
Documente Cultură
Contedo do Curso
Introduo Lgica e Programao Lgica Introduo ao Prolog e ao SWI-Prolog Matching e Backtraking Mltiplas solues Listas e predicados recursivos Grafos em Prolog
Bibliografia
Casanova, Giorno e Furtado : Programao em Lgica e a Linguagem Prolog, 1987 Cloksin and Mellish, Programao em Lgica e a Linguagem Prolog, 1987. Bratko, Prolog Programming for Artificial Intelligence, 1990. Sterling and Shapiro, The Art of Prolog, 1986.
Introduo Lgica
O que Lgica Linguagem que permite a representao de fatos, idias
ou conhecimento e, o mais importante, fornece um conjunto de mtodos para a validao dessas informaes.
p(x,z) p(y,z) q(x,y,g(x,y)) 8 Colocar a matriz da FNP na Forma Conjuntiva 9 Eliminar os smbolos substituindo-se expresses da forma (X1 X2) pelo conjunto de wffs {X1, X2} : (p(x,z) p(y,z)) q(x,y,g(x,y))) 10 Notao clausal: C1: p(x,z) p(y,z) q(x,y,g(x,y))
implicado
Premissas
(Clusulas Negativas)
Notao de Kowalski
Uma clusula genrica na notao de Kowalsky representada por: A1, A2,..., Am B1, B2,..., Bn Quando m > 1: as concluses so indefinidas, ou seja, h vrias concluses; m <= 1: so as chamadas Clusulas de Horn, que tm como casos particulares:
m = 1 e n > 0: A B1,...,Bn (chamada clusula definida,isto , h apenas uma concluso); m = 1 e n = 0: A (chamada clusula definida incondicional ou fato); m = 0 e n > 0: B1,...,Bn (negao pura de B1,...,Bn) (no h concluso);
Resoluo
Definio: Mtodo de prova de teoremas que utiliza uma nica regra de inferncia (Regra da Resoluo): De A B e B C Deduz-se AC De Deduz-se A A (falso ou clusula vazia)
Resoluo
Prova por Reduo ao Absurdo atravs da negao da Concluso Prova por Reduo ao Absurdo atravs da negao do teorema Dado um conjunto de clusulas 1, 2,..., n e onde cada i e esto na FNC, aplique a regra da resoluo at que a clusula vazia seja obtida.
BC
Concluso: CD Concluso: C e D
CD D
AD
Concluso: CD Concluso: C e D
A C
Resoluo-SLD*
Trabalha com Clusulas Horn:
1. 2. 3. 4. A B1,...,Bn A B1,...,Bn (negao pura de B1,...,Bn) (clusula vazia, denotada )
Resoluo-SLD*
Concluso negada: depende(a,e)
6 Exemplo: 5 1 4 1. chama(a,b) ={x/a,y/e} 2. usa(b,e) ={z/b} 7 3. depende(x,y) chama(x,y) 4. depende(x,y) usa(x,y) ={x/b,y/e} 8 5. depende(x,y) chama(x,z), depende(z,y) 6. depende(a,e) 9 7. chama(a,z), depende(z,e) (5) 8. depende(b,e) (1) 9. usa(b,e) (4) x, y e z so variveis; 10. (2) a, b e e so tomos * Resoluo linear com funo de seleo para clusulas definidas
Premissas
Resoluo-SLD (cont.)
A linearizao no suficiente Para se formalizar um procedimento de Resoluo-SLD necessrio utilizar uma funo de escolha na seleo das clusulas definidas Construmos ento uma rvore de refutao da seguinte maneira:
Para cada n com rtulo A construmos um conjunto de ns para os filhos na ordem em que eles aparecem usando a regra da resoluo Para cada n criado, repete-se o procedimento at
Resoluo-SLD (cont.)
depende(a,e) 3 chama(a,e) 4 usa(a,e) 5 chama(a,z), depende(z,e) 1 ={z/b} depende(b,e) ={x/b,y/e} 4 3 5 usa(b,e) 2
Exemplo: chama(b,e) 1. chama(a,b) 2. usa(b,e) 3. depende(x,y) chama(x,y) 4. depende(x,y) usa(x,y) 5. depende(x,y) chama(x,z), depende(z,y) 6. depende(a,e)
chama(b,z), depende(z,e
x, y e z so variveis; a, b e e so tomos
Exerccio
Dado o programa lgico seguir, construa a rvore de resoluo-SLD para a seguinte clusula objetivo:
tio(lucio, flavia)
casado(jose,carmem) pai(jose,fabio) pai(fabio,flavia) pai(jose,lucio) mae(X,Y) casado(Z,X), pai(Z,Y) irmao(X,Y) pai(Z,X), pai(Z,Y) tio(X,Y) pai(Z,Y), irmao(Z,X) tio(X,Y) mae(Z,Y), irmao(Z,X)