prolog

Páginas: 7 (1505 palabras) Publicado: 23 de febrero de 2015
Introducción a la
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 Iraola Eteupto 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...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • prologo
  • Prologo
  • Prologo
  • Prólogo
  • prologo
  • Prólogo
  • prologar
  • Prologo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS