Académique Documents
Professionnel Documents
Culture Documents
Lgica
Prof. Fabrcio Enembreck
PPGIA Programa de Ps Graduao
em Informtica Aplicada
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.
Premissa 1
Premissa 2
Premissa 3
mora(sra_farias)
Concluso
Verificao de argumentos ou
prova de teoremas
Dadas as frmulas 1, 2,..., n e uma frmula ,
diz-se que essas informaes formam um
teorema ou o argumento vlido se
conseqncia lgica de 1, 2,..., n, ou seja
1 2 ... n uma tautologia.
Mtodos de prova de teoremas
Semntico
Sinttico
Dedutivo
Tableau
Resoluo
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);
m = 0 e n = 0: chamada clusula vazia, denotada .
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
A C
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.
AB
A C
B D
BC
Concluso:
CD
Concluso: C e D
CD
D
AB
B D
A C
AD
Concluso:
CD
Concluso: C e D
A
C
Resoluo-SLD*
Trabalha com Clusulas Horn:
1. A B1,...,Bn
2. A
3. B1,...,Bn (negao pura de B1,...,Bn)
4. (clusula vazia, denotada )
Resoluo-SLD*
Premissas
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
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
que a soluo (clusula vazia) seja encontrada
Resoluo-SLD (cont.)
depende(a,e)
3
4
chama(a,e) usa(a,e)
chama(a,z),
depende(z,e)
1 ={z/b}
depende(b,e)
={x/b,y/e}
4
3
5
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)
usa(b,e)
2
chama(b,z),
depende(z,e)
x, y e z so variveis;
a, b e e so tomos
Semnticas de um Programa
Lgico
Semntica Declarativa de um
Programa Lgico (PL)
ou
Semntica Procedimental de um
Programa Lgico (PL)
Dado um programa lgico P e uma consulta
Q cuja clusula objetivo
B1,...,Bn
ento o procedimento de resoluo-LSD
com uma funo que seleciona as clusulas
mais esquerda pode ser utilizado para se
obter as solues sob a forma de um
conjunto de substituies de variveis
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)