Sin ttulo de diapositiva - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

Sin ttulo de diapositiva

Description:

Desarrollado a partir de trabajos en demostraci n autom tica de teoremas ... Definir las relaciones tia, tio, sobrino, sobrina, primos, ... y ensayarla sobre ... – PowerPoint PPT presentation

Number of Views:90
Avg rating:3.0/5.0
Slides: 29
Provided by: JorgeC50
Category:

less

Transcript and Presenter's Notes

Title: Sin ttulo de diapositiva


1
Introdución a PROLOG
Jorge Cabrera Gámez Departamento de Informática y
Sistemas Universidad de Las Palmas de Gran Canaria
2
Qué es Prolog?
  • Prolog PROgramming in LOGic.
  • Desarrollado a partir de trabajos en demostración
    automática de teoremas
  • Aplicado inicialmente en problemas de
    Procesamiento del Lenguaje Natural
  • Permite un prototipado más rápido que con muchos
    lenguajes porque es mucho más proximo a la
    especificación lógica del programa.

3
Qué es Prolog?
Lenguaje de Programación
Computación simbólica y no-numérica
Para resolver problemas que involucran
  • OBJETOS
  • RELACIONES

4
Para programar en Prolog
Declarar hechos sobre objetos y sus relaciones
Declarar reglas sobre los objetos y sus relaciones
Hacer preguntas sobre los objetos y sus relaciones
5
Hechos
Raquel es hija de teresa hija ( raquel,
teresa).
Objetos raquel, teresa. Relación hija
  • Observar
  • Minúsculas
  • El punto final

6
pedro
maria
Ejemplo
progenitor (pedro, teresa). progenitor (maria,
teresa). progenitor (maria, elena). progenitor
(teresa, jorge). progenitor (teresa,
raquel). progenitor (raquel, miguel).
teresa
elena
jorge
raquel
miguel
cláusulas
7
pedro
maria
?- progenitor (teresa, raquel). Yes
?- progenitor (jorge, miguel). No
teresa
elena
?- progenitor (X, raquel). X teresa No
jorge
raquel
?- progenitor (teresa, Y). Y jorge Y raquel
No
miguel
8
pedro
maria
?- progenitor (X, Y). X pedro Y teresa X
maria Y teresa X maria Y elena X
teresa Y jorge X teresa Y raquel X
raquel Y miguel No
teresa
elena
jorge
raquel
miguel
9
pedro
maria
Quién es abuelo de jorge?
?- progenitor (PoM, jorge), progenitor
(Abuelo, PoM). PoM teresa Abuelo pedro
PoM teresa Abuelo maria No
teresa
elena
jorge
raquel
miguel
10
pedro
maria
Quién es nieto de pedro?
?- progenitor (pedro, Hijo), progenitor
(Hijo, Nieto). Hijo teresa Nieto jorge
Hijo teresa Nieto raquel No
teresa
elena
jorge
raquel
miguel
11
pedro
maria
Quién es abuelo de jorge?
?- progenitor (X, jorge), progenitor (Y,
X). X teresa Y pedro X teresa Y maria
No
teresa
elena
jorge
raquel
miguel
12
Paso 1.
Quién es abuelo de jorge?
?-
progenitor (Y, X).
progenitor (Y, teresa).
progenitor (X, jorge),
progenitor (pedro, teresa). progenitor (maria,
teresa). progenitor (maria, elena). progenitor
(teresa, jorge). progenitor (teresa,
raquel). progenitor (raquel, miguel).
X teresa
La base de hechos
13
Paso 2.
Quién es abuelo de jorge?
?-
progenitor (X, jorge),
progenitor (Y, teresa).
Y pedro
progenitor (pedro, teresa). progenitor (maria,
teresa). progenitor (maria, elena). progenitor
(teresa, jorge). progenitor (teresa,
raquel). progenitor (raquel, miguel).
Respuesta
X teresa, Y pedro
La base de hechos
14
Paso 3.
Quién es abuelo de jorge?
?-
progenitor (X, jorge),
progenitor (Y, teresa).
progenitor (pedro, teresa). progenitor (maria,
teresa). progenitor (maria, elena). progenitor
(teresa, jorge). progenitor (teresa,
raquel). progenitor (raquel, miguel).
Y maria
Respuesta
X teresa, Y maria
La base de hechos
15
Paso 4.
Quién es abuelo de jorge?
?-
progenitor (X, jorge),
progenitor (Y, teresa).
progenitor (Y, X).
progenitor (X, jorge),
progenitor (pedro, teresa). progenitor (maria,
teresa). progenitor (maria, elena). progenitor
(teresa, jorge). progenitor (teresa,
raquel). progenitor (raquel, miguel).
Backtrack
La base de hechos
16
Paso 5.
Quién es abuelo de jorge?
?-
progenitor (Y, X).
progenitor (X, jorge),
progenitor (pedro, teresa). progenitor (maria,
teresa). progenitor (maria, elena). progenitor
(teresa, jorge). progenitor (teresa,
raquel). progenitor (raquel, miguel).
No
La base de hechos
17
Reglas
X
Para todos X e Y, X es descendiente de Y SI Y
es progenitor de X.
progenitor
descendiente
Y
descendiente(X,Y) - progenitor(Y,X).
cabeza
cuerpo
Para todos X e Y, SI Y es progenitor de X
Entonces X es descendiente de Y.
18
Ejemplo la relación madre
Para todos X y W, X es madre de W SI X es
progenitor de W Y X es mujer
X
mujer
madre
progenitor
W
madre (X, W) - progenitor(X, W), mujer(X).
La coma significa conjunción (Y)
Relación unaria
19
Ejemplo la relación abuelo
X
Para todos X y Z, X es abuelo de Z SI X
es progenitor de W y W es progenitor de Z y
X es hombre
hombre
progenitor
W
abuelo
abuelo (X, Z) - progenitor (X, W),
progenitor (W, Z), hombre (X).
progenitor
Z
20
Ejemplo la relación hermana
Z
Para todos X y W, X es hermana de W SI Z
es progenitor de X y W, y X es mujer
progenitor
progenitor
X
W
hermana
mujer
hermana (X, W) - progenitor(Z, X),
progenitor(Z, W), mujer(X).
21
pedro
maria
Añadimos estos hechos.
hombre(pedro). mujer(maria). mujer(elena). mujer(t
eresa). hombre(jorge). mujer(raquel). hombre(migue
l).
teresa
elena
jorge
raquel
Quién es hermana de jorge?
?- hermana(X, jorge). X raquel No
miguel
22
pedro
maria
Un pequeño problema ...
Quién es hermana de teresa?
?- hermana(X, teresa). X teresa X teresa
X elena No
teresa
elena
jorge
raquel
miguel
23
pedro
maria
Programa
progenitor(pedro, teresa). progenitor(maria,
teresa). progenitor(maria, elena). progenitor(tere
sa, jorge). progenitor(teresa, raquel). progenitor
(raquel, miguel). hombre(pedro). mujer(maria). mu
jer(elena). mujer(teresa). hombre(jorge). mujer(ra
quel). hombre(miguel). hermana(X, W) -
progenitor(Z, X), progenitor(Z, W), mujer(X).
teresa
elena
jorge
raquel
miguel
Sería más eficiente intercambiar el orden de los
dos predicados progenitor/2 en la definición de
hermana/2 ?
24
X
Ejemplo la relación antepasado
Para todos X y Z, X es antepasado de Z SI
X es progenitor de W y W es antepasado de
Z y
progenitor
antepasado
W
antepasado (X, Z) - progenitor (X, W),
antepasado (W, Z).
antepasado
...
Una definición recursiva
Z
25
X
Ejemplo la relación antepasado
progenitor
?- antepasado(X, jorge). No
antepasado
W
antepasado (X, Z) - progenitor (X, W),
antepasado (W, Z).
antepasado
...
Z
26
X
Ejemplo la relación antepasado
?- antepasado(X, jorge). X teresa X pedro
X maria No
progenitor
antepasado
W
antepasado(X, Z) - progenitor(X, Z).
antepasado
antepasado (X, Z) - progenitor (X, W),
antepasado (W, Z).
...
Z
27
Sumario
  • Declarar hechos relativos a objetos
  • Plantear preguntas sobre los hechos
  • Utilizar variables
  • Utilizar la conjunción
  • Definir relaciones mediante reglas
  • Un rápido vistazo al mecanismo de backtracking

28
pedro
maria
Ejercicio
Definir las relaciones tia, tio, sobrino,
sobrina, primos, ... y ensayarla sobre la base
de datos de la figura
teresa
elena
juan
jorge
raquel
jose
miguel
SWI-Prolog
Write a Comment
User Comments (0)
About PowerShow.com