prolog
ProgramaciónLógica
o Revisiónhistórica,
ideascentrales,
Prolog.
o Aspectoscentralesde un lenguajede programación
lógica.
. Rasgosdistintivos
de Prologrespectode otroslenguajes
de
programación.
Introducción a la Programación Lógica
Luis Iraola
Orígeneshistóricos
.
Comienzos
de los años70, R. Kowalskiy A. Colmerauer
o Dos usosde la Lógica:
-representación
rigurosadel conocimiento
- demostración
Algoritmo= Lógica+ Control
comoalgoritmo:
o Resultados
anterioresde Herbrand,Horny Robinson(demostración
automática
de teoremas)
Prografirá= Algoritmos+ Datos
Instrucclón
Inetrueción
t
a
Programa= Reglas+ Teoría
#1 1
#Z 7
Fó¡uula #1
Fó¡su1a #2
I
I
#^ -l
,
Fórnula #n
I
1
v
a
InstrueeLón
groP
1I
Introducción a la Programación Lógica
Teoreun
I
Luis Iraola
HtH,l'@ffih"
Teorema
Canüdato
Denogtración
o Desarrollo
de implementaciones
eficientes
de Prologa partirde la de Warren
. Normalización
de Prolog:ISO95
.
Prologcomolenguajede proposito
general:Prologpuroe impuro.
.
Constraint
LogicProgramming,
PARLOG,Datalog,...
Introducción a laProgramación Lógica
Luis Iraola
Ete¡upto No. 1
Conocimiento
a representar:
1. Todos los hombres son mortales.
2. Sócrateses un hombre.
A deducir:
Sócrateses mortal.
Representación
PROLOG:
mortal
(X) : hombre (X)
hombre(socrat.es)
Representación
LPl:
Vx (Hx
.
?- mortaf (socrates)
Ha
.
lntroducción a la Programación Lógica
F Ma
Luis IraolaEteupto lvo.2
Conocimiento
a representar:
1. El Sol es una estrella.
2. Mercurio orbita en torno al Sol.
3. Venus orbita en torno al Sol.
4. La Luna orbita en torno a la Tierra.
5. La Tierra orbita en torno al Sol.
6. Marte orbita en torno al Sol.
7. Fobos orbita en torno a Marte.
8. Deimos orbita en torno a Marte.
9. Son planetasaquelloscuerposque orbitan en torno a una estrella.
10. Todocuerpo que orbita en torno a un planeta es un satélite.
11. Pertenecena un sistemasolar la estrellamisma y todo cuerpo que
orbite en torno a otro que pertenezca.
Representación
PROLOG:
1.
2.
3.
4.
5.
6.
1.
B.
e s t r e l - 1 a ( s o l -)
o r b i t a ( m e r c u r i o , s o l _ ).
orbita (venus,sol-)
orbita (luna, tierra)
orbita (tierra, sol) o
orbita (marte, soI)
orbita(fobos, marte)
o r b i t a ( d e i m o s ,m a r t e ) .
e Pranetiif::rgiíl
:
10' sar"::ilt!i",
r, ,
Representación
LPl:
1.
2.
3.
4.
5.
6.
1.
B.
Ea
Oba
Oca
Ode
Oea
Ofa
Ogf
Ohf
(a
(b
(c
(o
(e
(f
(s
(h
SoI )
Mercurio )
Venus )
Luna )
Tierra )
Marte )
fobos )
deimos )
9. V*y (Oxy & Ey
10. V*y (Oxy s, Py-> Sx)
planeta (Y) .
1 1 . p e r t e n e ce ( X ,X ) : estrel-la (X)
pertenece (X,Y) : orbita (X,Z) ,
pertenece (Z, Y) .
Introducción a la Programación Lógica
11. Vx (Ex
Yxyz (Oxz & Tzy
Luis Iraola
Ete¡upto No.3
Conocimientoa representar:
L. '0' es el numeralque representa
al numerocero.
's(n)'
2. La expresión
es el numeraldel numerosucesor
al representado
'n'.
por la expresión
3. Cualquiernumerosumado
a ceroesigual a esemismonumero.
4. La sumade dos numeros'n' I 's(m)'es igual a 's(j)',siendo'j' el
resultadode sumar'^' y 'm'. I n + s(m)= s(n+m)]
Representación
Prolog:
Representación
LPl:
1. numero(O).
2 . n u m e r o ( s ( N)): numero(N)
(a: cero)
1. Na
2. Vx(Nx
3 . s u m a( N / 0 , N ) : numero(N) .
4 . s u m a( N , s ( M ), s ( J ) ) : s u m a( N , M , J )
3. Vx (Nx
4. Vxyz(Sxyz
Algunos usos de la teoría:
? - n u m e r o( s ( s ( 0 ) ) ) .
yes.
? - s u m a( 0 , 0 , 0 )
yes.
? - n u m e r o( X )
X _ 0
X_ s(0) ->
?- suma(s(0),s(0),X)
X_ s(s(0))
yes.
s ( s( o )
T.:-
?* n u m er o ( 2 ) .
no,
? - s u m a ( s( 0 ) , X , s ( s ( 0 ) ) )
X _ s (0)
yes.
?- suma(X,Yrs(0))
X _ s ( 0 ) ,Y _ 0
X_ 0, Y _ s(0) ->
no.
Introducción a la...
Regístrate para leer el documento completo.