Inducción y Recursión Matemáticas Discretas L. Enrique Sucar INAOE.
UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema...
Transcript of UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema...
![Page 1: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/1.jpg)
PROGRAMACIÓN DECLARATIVAINGENIGERÍA INFORMÁTICA
CUARTO CURSO
PRIMER CUATRIMESTRE
Tema 8.- Introducción al Lenguaje Prolog
UNIVERSDAD DE CÓRDOBA
ESCUELA POLITÉCNICA SUPERIOR
DEPARTAMENTO DE
INFORMÁTICA Y ANÁLISIS NUMÉRICO
![Page 2: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/2.jpg)
2
Primera
parte:
Scheme
Tema 1.- Introducción al Lenguaje Scheme
Tema 2.- Expresiones y Funciones
Tema 3.- Predicados y sentencias condicionales
Tema 4.- Iteración y Recursión
Tema 5.- Tipos de Datos Compuestos
Tema 6.- Abstracción de Datos
Tema 7.- Lectura y Escritura
Tema 8.- Introducción al Lenguaje Prolog
Tema 9.- Elementos Básicos de Prolog
Tema 10.- Listas
Tema 11.- Reevaluación y el “corte”
Tema 12.- Entrada y Salida
Segunda
parte: Prolog
PROGRAMACIÓN DECLARATIVA PROGRAMA
![Page 3: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/3.jpg)
3
Segunda parte: Prolog
Tema 8.- Introducción al Lenguaje Prolog
Tema 9.- Elementos Básicos de Prolog
Tema 10.- Listas
Tema 11.- Reevaluación y el “corte”
Tema 12.- Entrada y Salida
PROGRAMACIÓN DECLARATIVA PROGRAMA
![Page 4: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/4.jpg)
4
Programación declarativa Tema 8.- Introducción al lenguaje Prolog
Índice
1. Características Fundamentales de la Programación Lógica
2. Hechos
3. Preguntas
4. Variables
5. Conjunción, disyunción y negación
6. Reglas
![Page 5: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/5.jpg)
5
Programación declarativa Tema 8.- Introducción al lenguaje Prolog
Índice
1. Características Fundamentales de la Programación
Lógica
2. Hechos
3. Preguntas
4. Variables
5. Conjunción, disyunción y negación
6. Reglas
![Page 6: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/6.jpg)
6
1. Características Fundamentales de la Programación Lógica
• Introducción
• Orígenes de la programación lógica
• Funcionamiento básico de Prolog
![Page 7: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/7.jpg)
7
1. Características Fundamentales de la Programación Lógica
• Introducción
• Orígenes de la programación lógica
• Funcionamiento básico de Prolog
![Page 8: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/8.jpg)
8
1. Características Fundamentales de la Programación Lógica
• Introducción
o Programación declarativa
o Programación lógica
o Conceptos comunes de la programación lógica y la
programación funcional
![Page 9: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/9.jpg)
9
1. Características Fundamentales de la Programación Lógica
• Introducción
o Programación declarativa
o Programación lógica
o Conceptos comunes de la programación lógica y la
programación funcional
![Page 10: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/10.jpg)
10
1. Características Fundamentales de la Programación Lógica
• Introducción
o Programación declarativa
Su prioridad es responder a la siguiente pregunta
¿Qué problema hay que resolver?
No se preocupa de
¿Cómo hay que resolver el problema?
![Page 11: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/11.jpg)
11
1. Características Fundamentales de la Programación Lógica
• Introducción
o Programación declarativa
Tipos de programación declarativa
Programación funcional
Basada en los conceptos de función y
expresión matemática.
Programación Lógica
Basada en los fundamentos teóricos de la
lógica matemática.
![Page 12: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/12.jpg)
12
1. Características Fundamentales de la Programación Lógica
• Introducción
• Programación declarativa
• Programación lógica
• Conceptos comunes de la programación lógica y la
programación funcional
![Page 13: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/13.jpg)
13
1. Características Fundamentales de la Programación Lógica
• Introducción
o Programación lógica
Programa = Lógica + Control
Lógica
Declaración de qué problema debe
resolverse.
Responsabilidad del programador.
Control
Declaración de cómo debe resolverse el
problema.
Responsabilidad del intérprete.
![Page 14: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/14.jpg)
14
1. Características Fundamentales de la Programación Lógica
• Introducción
o Programación lógica
Hecho: cosa que sucede.
Regla: relación entre hechos.
![Page 15: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/15.jpg)
15
1. Características Fundamentales de la Programación Lógica
• Introducción
o Programación declarativa
o Programación lógica
o Conceptos comunes de la programación lógica y la
programación funcional
![Page 16: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/16.jpg)
16
1. Características Fundamentales de la Programación Lógica
• Introducción
o Conceptos comunes de la programación lógica y la
programación funcional
Recursión
Listas
Lenguajes interpretados
Gestión automática de memoria:
garbage collection (recogida de basura).
![Page 17: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/17.jpg)
17
1. Características Fundamentales de la Programación Lógica
• Introducción
• Orígenes de la programación lógica
• Funcionamiento básico de Prolog
![Page 18: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/18.jpg)
18
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
o Precursores
o Desarrollo histórico
![Page 19: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/19.jpg)
19
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
o Precursores
o Desarrollo histórico
![Page 20: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/20.jpg)
20
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Cláusulas de Horn
Principio de resolución de Robinson
![Page 21: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/21.jpg)
21
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Cláusulas de Horn
Alfred Horn (1951)
Disyunción de literales negados, excepto uno:
p1 p2 … pn q
![Page 22: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/22.jpg)
22
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Cláusulas de Horn
Interpretación
p1 p2 … pn q
(aplicando la Ley de Morgan)
(p1 p2 … pn ) q
(aplicando la equivalencia de la conectiva “”)
p1 p2 … pn q
Significa que si se verifican p1, p2,… y pn
entonces se verifica q.
![Page 23: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/23.jpg)
23
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Cláusulas de Horn
q se verifica si se verifican p1, p2,… y pn.
Interpretación modular
Regla de Prolog
q :- p1, p2,…, pn.
p1
p2
…
pn
q
![Page 24: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/24.jpg)
24
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Cláusulas de Horn
Regla de Prolog
q :- p1, p2,…, pn.
CabezaCuerpo
![Page 25: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/25.jpg)
25
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Cláusulas de Horn: ejemplo 1
Si la figura posee cuatro lados iguales
y cuatro ángulos iguales
entonces la figura es un cuadrado
![Page 26: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/26.jpg)
26
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Cláusulas de Horn: ejemplo 1
Variables proposicionales
p1 = la figura posee cuatro lados iguales
p2 = la figura posee cuatro ángulos iguales
q = la figura es un cuadrado
Significado
Si se verifican p1 y p2 entonces se verifica
q
q se verifica si se verifican p1 y p2
![Page 27: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/27.jpg)
27
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Cláusulas de Horn: ejemplo 1
Lógica proposicional
p1 p2 q
(p1 p2 ) q
p1 p2 q Cláusula de Horn
Cláusula de Horn en Prolog
q :- p1, p2.
![Page 28: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/28.jpg)
28
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Cláusulas de Horn: ejemplo 2
Todos los hombres son mortales
Lógica de predicados
Predicados
hombre(x): x es un hombre
mortal (x): x es mortal
Regla
x (hombre(x) mortal (x))
![Page 29: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/29.jpg)
29
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Cláusulas de Horn: ejemplo 2
Significado
Si se verifica hombre (x) entonces se
verifica mortal (x)
Significado equivalente
mortal (x) si se verifica hombre (x)
![Page 30: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/30.jpg)
30
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Cláusulas de Horn: ejemplo 2
Lógica de predicados
x (hombre(x) mortal (x))
hombre(x) mortal (x)
Cláusula de Horn
hombre (x) mortal (x)
Regla de Prolog
mortal (X) :- hombre (X).
![Page 31: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/31.jpg)
31
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Cláusulas de Horn
Principio de resolución de Robinson
![Page 32: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/32.jpg)
32
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Principio de resolución de Robinson
Propuesto por John Allan Robinson en 1965
Dr. Honoris Causa de la Universidad
Politécnica de Madrid (1 de octubre de 2013)
![Page 33: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/33.jpg)
33
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Principio de resolución de Robinson
Caso básico (lógica proposicional)
Principio de resolución
p q
p
q
Modus Ponens
p q
p
q
![Page 34: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/34.jpg)
34
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Principio de resolución de Robinson
Caso básico (lógica proposicional)
Ejemplo
Si es un cuadrado entonces es un polígono
Es un cuadrado
Es un polígono
Proposiciones
p: es un cuadrado
q: es un polígono
![Page 35: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/35.jpg)
35
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Principio de resolución de Robinson
Caso básico (lógica proposicional)
Ejemplo
Principio de resolución
p q
p
q
Modus Ponens
p q
p
q
![Page 36: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/36.jpg)
36
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Principio de resolución de Robinson
Caso general (lógica proposicional)
Principio de resolución
p1 p2 … pn q
p1
p2 … pn q
p1 p2 … pn q
p1
p2 … pn q
![Page 37: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/37.jpg)
37
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Principio de resolución de Robinson
Caso básico (lógica de predicados)
Principio de resolución
p(x) q(x)
p(a)
q(a)
Modus Ponens
p(x) q(x)
p(a)
q(a)
![Page 38: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/38.jpg)
38
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Principio de resolución de Robinson
Caso básico (lógica de predicados)
Ejemplo
Todos los hombres son mortales
Sócrates es un hombre
Sócrates es mortal
![Page 39: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/39.jpg)
39
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Principio de resolución de Robinson
Caso básico (lógica de predicados)
Ejemplo
Principio de resolución
hombre(x) mortal(x)
hombre(Sócrates)
mortal(Sócrates)
Modus Ponens
hombre(x) mortal(x)
hombre(Sócrates)
mortal(Sócrates)
![Page 40: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/40.jpg)
40
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Principio de resolución de Robinson
Caso general (lógica de predicados)
p1(x) p2 (x) … pn (x) q(x)
p1(a)
p2 (a) … pn (a) q(a)
![Page 41: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/41.jpg)
41
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
Principio de resolución de Robinson
Caso general (lógica de predicados)
Principio de resolución
p1(x) p2 (x) … pn (x) q (x)
p1(a)
p2 (a) … pn (a) q (a)
![Page 42: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/42.jpg)
42
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
o Precursores
o Difusión histórica
![Page 43: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/43.jpg)
43
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Precursores
Robert Kowalski (Universidad de Edimburgo):
1972
Fundamentos teóricos
Cláusulas de Horn y principio de resolución
Maarten Van Emden (Universidad de Edimburgo):
Demostración experimental
![Page 44: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/44.jpg)
44
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Precursores
Alain Colmerauer y Phillipe Roussel (Universidad de Marsella)
Implementación
Programmation en Logique: Prolog
Intérprete de Prolog codificado en Algol W de Wirth.
Utiliza la interpretación procedimental o modular de Kowalski.
Colmerauer
![Page 45: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/45.jpg)
45
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos
o Precursores
o Difusión histórica
![Page 46: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/46.jpg)
46
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Difusión histórica
Prolog-10 (Warren, años setenta)
Compilador escrito casi completamente en
Prolog.
Desdén inicial
La comunidad científica occidental no tuvo en
cuenta a la Programación Lógica hasta
principios de los años ochenta.
Factor decisivo
Proyecto de Quinta Generación de Japón
(1981).
Versión estándar: Prolog de Edimburgo
![Page 47: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/47.jpg)
47
1. Características Fundamentales de la Programación Lógica
• Introducción
• Orígenes de la programación lógica
• Funcionamiento básico de Prolog
![Page 48: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/48.jpg)
48
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Ejecución
o Búsqueda de objetivos
o Limitaciones
o Aplicaciones
![Page 49: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/49.jpg)
49
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Ejecución
o Búsqueda de objetivos
o Limitaciones
o Aplicaciones
![Page 50: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/50.jpg)
50
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Ejecución
Llamada al intérprete
Carga de un fichero con hechos y reglas
Preguntas
Salida del intérprete
![Page 51: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/51.jpg)
51
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Ejecución
Llamada al intérprete
pl (alternativas: prolog, swipl)
?-
Salida del intérprete
?- halt.
![Page 52: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/52.jpg)
52
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Ejecución
Carga de un fichero con hechos y reglas
Cargar el fichero.pl
?- consult(‘fichero’).
?- consult(‘fichero.pl’).
Manera alternativa
?- [fichero].
Cargar ficheroi.pl (i {1,2,…n})
?- [fichero1,fichero2, …, ficheron].
![Page 53: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/53.jpg)
53
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Ejecución
Carga de un fichero con hechos y reglas desde el
teclado
?- [user].
…
<<fin de fichero>>
?-
![Page 54: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/54.jpg)
54
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Ejecución
Listado de todos los hechos y reglas
?- listing.
Listado de todos los hechos y reglas de un
predicado
?- listing(predicado).
![Page 55: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/55.jpg)
55
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Ejecución
Directorio actual
?- pwd.
Contenido del directorio actual:
?- ls.
Cambio al directorio “padre”
?- cd('..').
Cambio al directorio home/i99zazaz/ejemplo
?- cd('/home/i99zazaz/ejemplo').
Cambio al directorio de Windows C:\ejemplo
?- cd('c:\ejemplo').
![Page 56: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/56.jpg)
56
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Ejecución
Ayuda
?- help(Topic)
?- apropos(Word).
Traza de ejecución del intérprete
?- trace.
Fin de la traza:
?- nodebug.
Call: (6) edinburgh:nodebug ? n (no debug)
![Page 57: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/57.jpg)
57
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Ejecución
Traza mediante ventana gráfica
?- guitracer.
La próxima ejecución de trace será en una ventana gráfica.
Fin de la traza mediante ventana gráfica
?- noguitracer.
![Page 58: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/58.jpg)
58
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Ejecución
Carga de un fichero con hechos y reglas
Los hechos son descritos en los apartados nº
2, 4, 5.
Las reglas son descritas en el apartado nº 6.
![Page 59: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/59.jpg)
59
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Ejecución
Preguntas
Permite consultar si un hecho se puede
deducir de la base de hechos y reglas del
programa.
Véase el apartado nº 3.
![Page 60: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/60.jpg)
60
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Ejecución
o Búsqueda de objetivos
o Limitaciones
o Aplicaciones
![Page 61: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/61.jpg)
61
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Búsqueda de objetivos
Programa
Conjunto de hechos y reglas
Ejecución de una consulta
Si la consulta coincide con un hecho entonces
el objetivo se ha conseguido.
En caso contrario, se comprueba si la consulta
es la “cabeza” de una regla
Si es así entonces se generan nuevas
consultas utilizando el cuerpo de la regla.
En caso contrario, el objetivo no se
consigue.
![Page 62: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/62.jpg)
62
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Búsqueda de objetivos
Ejemplo1
Hechos
hombre(socrates).
hombre(aristoteles).
Regla
mortal(X) :- hombre(X).
Consulta
?- mortal(socrates).
![Page 63: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/63.jpg)
63
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Búsqueda de objetivos
Ejemplo1
Equivalencia con la lógica de predicados (1/2)
hombre(x) mortal(x)
hombre(socrates)
mortal(socrates)
x (hombre(x) mortal(x))
hombre(socrates)
mortal(socrates)
![Page 64: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/64.jpg)
hombre(x) mortal(x)
hombre(socrates)
mortal(socrates)
64
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Búsqueda de objetivos
Ejemplo1
Equivalencia con la lógica de predicados (2/2)
mortal(X) :- hombre(X).
hombre(socrates).
?- mortal(socrates).
yes
Principio de resolución Prolog
![Page 65: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/65.jpg)
65
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Búsqueda de objetivos
Ejemplo1
Consulta
?- mortal(socrates).
1. No existe el hecho mortal (socrates)
2. La consulta es la cabeza de la regla
mortal(X) :- hombre(X)
3. Se genera una nueva consulta: hombre(socrates)
4. hombre(socrates) es un hecho del programa.
5. Respuesta: sí (yes)
![Page 66: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/66.jpg)
66
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Búsqueda de objetivos
Observación
Prolog considera como falso todo lo que no
conoce o no puede deducir, aunque sea
verdadero en la vida real.
Ejemplo: si se consulta
?- mortal(platon).
la respuesta será no
![Page 67: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/67.jpg)
67
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Ejecución
o Búsqueda de objetivos
o Limitaciones
o Aplicaciones
![Page 68: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/68.jpg)
68
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Limitaciones
Prolog no es un lenguaje de programación lógica
completamente puro:
Prolog establece un orden de precedencia
entre reglas, que no existe en la lógica.
Prolog sólo permite la negación en el cuerpo
de las cláusulas.
![Page 69: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/69.jpg)
69
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Ejecución
o Búsqueda de objetivos
o Limitaciones
o Aplicaciones
![Page 70: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/70.jpg)
70
1. Características Fundamentales de la Programación Lógica
• Funcionamiento básico de Prolog
o Aplicaciones
Demostración de teoremas
Representación del conocimiento
Problemas de búsqueda
Planificación
Procesamiento del lenguaje natural (PLN)
Sistemas expertos
Especificación de algoritmos
Etc.
![Page 71: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/71.jpg)
71
Programación declarativa Tema 8.- Introducción al lenguaje Prolog
Índice
1. Características Fundamentales de la Programación Lógica
2. Hechos
3. Preguntas
4. Variables
5. Conjunción, disyunción y negación
6. Reglas
![Page 72: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/72.jpg)
72
2. Hechos
• Definición
• Ejemplos
• Sintaxis
• Semántica
![Page 73: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/73.jpg)
73
2. Hechos
• Definición
• Ejemplos
• Sintaxis
• Semántica
![Page 74: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/74.jpg)
74
2. Hechos
• Definición
o Un hecho representa una afirmación que se realiza
sobre un asunto.
![Page 75: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/75.jpg)
75
2. Hechos
• Definición
• Ejemplos
• Sintaxis
• Semántica
![Page 76: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/76.jpg)
76
2. Hechos
• Ejemplos
o Hechos en Prolog
hombre(socrates).
sexo(socrates, masculino).
padre_de(juan, luis).
tiene(antonio, bicicleta).
da(laura,libro,maria).
o Significados de los hechos
Sócrates es un hombre
El padre de Juan es Luis
Antonio tiene una bicicleta
Laura da un libro a María
![Page 77: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/77.jpg)
77
2. Hechos
• Ejemplos
o Hechos
Juan está enamorado de María
María está enamorada de Juan
Laura está enamorada de Luis
o Hechos en Prolog
enamorado_de(juan, maria).
enamorado_de(maria,juan).
enamorado_de(laura, luis).
![Page 78: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/78.jpg)
78
2. Hechos
• Sintaxis
predicado (argumento1, argumento2, … argumento n).
![Page 79: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/79.jpg)
79
2. Hechos
• Sintaxis
o Ejemplo
enamorado_de(juan, maria).
predicadoargumentos
punto
![Page 80: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/80.jpg)
80
2. Hechos
• Sintaxis
o Restricciones
Los nombres de los predicados y los átomos
comienzan por una letra minúscula.
Se tiene que poner un punto “.” al final del
hecho.
![Page 81: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/81.jpg)
81
2. Hechos
• Sintaxis
o Restricciones
Número de argumentos de un predicado
Constante.
Observación
Puede haber predicados distintos con el
mismo nombre y diferente número de
argumentos.
tiene(juan, bicicleta).
tiene(ana, bicicleta)
tiene(juan, casa, grande).
![Page 82: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/82.jpg)
82
2. Hechos
• Semántica
o Cada hecho posee un significado arbitrario.
o El significado de un hecho debe permanecer
invariable una vez que ha sido establecido.
o El predicado establece una relación entre los
argumentos.
o El significado de un predicado depende del orden
de los argumentos.
o Se deben utilizar identificadores descriptivos de
los predicados y los argumentos.
![Page 83: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/83.jpg)
83
2. Hechos
• Semántica
o Base de datos de un programa en Prolog:
Conjunto de hechos y reglas que posee.
![Page 84: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/84.jpg)
84
Programación declarativa Tema 8.- Introducción al lenguaje Prolog
Índice
1. Características Fundamentales de la Programación Lógica
2. Hechos
3. Preguntas
4. Variables
5. Conjunción, disyunción y negación
6. Reglas
![Page 85: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/85.jpg)
85
3. Preguntas
• Se pueden realizar preguntas a la base de datos de un
programa de Prolog
• Ejemplo:
?- tiene(maria,libro).
o Se está preguntando si María tiene el libro.
• Prolog busca en su base de datos, compuesta por
hechos (y reglas), si contiene el hecho
tiene(maria,libro).
• Es necesario que coincidan
o el nombre del predicado o relación
o los argumentos en número y orden.
punto
![Page 86: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/86.jpg)
86
3. Preguntas
• Ejemplo
o Hechos
tiene(maria, libro).
tiene(maria, cuaderno).
tiene(juan, cuaderno).
tiene(juan, bicicleta).
o Preguntas
?- tiene(maria,libro).
yes
?- tiene(juan, libro).
no
![Page 87: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/87.jpg)
87
3. Preguntas
• Ejemplo
o Pregunta
?- tiene(maria, bicicleta).
no
o Falso por defecto
Prolog responde “no” porque
no hay ningún hecho que coincida con la
pregunta
ni regla que permita deducir ese hecho.
Se recuerda que Prolog considera falso todo lo
que no conoce.
![Page 88: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/88.jpg)
88
Programación declarativa Tema 8.- Introducción al lenguaje Prolog
Índice
1. Características Fundamentales de la Programación Lógica
2. Hechos
3. Preguntas
4. Variables
5. Conjunción, disyunción y negación
6. Reglas
![Page 89: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/89.jpg)
89
4. Variables
• Las variables permiten hacer preguntas más
versátiles
• Primer carácter de una variable:
o Letra mayúscula
o Subrayado “_”
• Ejemplos
o ¿Qué cosas tiene Juan?
?- tiene(juan,Cosa).
Cosa = cuaderno
Cosa = bicicleta
no
Punto y coma: nueva solución
;
;
![Page 90: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/90.jpg)
90
4. Variables
• Ejemplos
o ¿Quién tiene un cuaderno?
?- tiene(_persona,cuaderno).
_persona = maria
_persona = juan
;
Enter
Punto y coma: nueva solución
Fin de la búsqueda
![Page 91: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/91.jpg)
91
4. Variables
• Preguntas con dos variables
o ¿Qué cosas tiene cada persona?
?- tiene(_persona,Cosa).
_persona = maria, Cosa = libro
_persona = maria, Cosa = cuaderno
_persona = juan, Cosa = cuaderno
_persona = juan, Cosa = bicicleta
;
Enter
;
;
![Page 92: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/92.jpg)
92
4. Variables
• Preguntas con una variable repetida.
o Hechos
camino(baena,luque).
camino(luque,zuheros).
camino(baena, baena).
o ¿Qué pueblo tiene un camino circular?
?- camino(Pueblo,Pueblo).
Pueblo= baena
![Page 93: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/93.jpg)
93
4. Variables
• Variable anónima: símbolo de subrayado “_”
o Comprueba si existe un valor que se pueda asociar
a la variable que haga verdadero el predicado.
o No importa conocer cuál es el valor concreto
asociado a la variable anónima.
o Cada aparición de una variable anónima es
independiente.
![Page 94: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/94.jpg)
94
4. Variables
• Variable anónima: símbolo de subrayado “_”
o Preguntas con variable anónima
¿Quién tiene algo?
?- tiene(Persona,_).
Persona = maria
Persona = juan
¿Alguien tiene un cuaderno?
?- tiene(_,cuaderno).
yes
;
Enter
![Page 95: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/95.jpg)
95
4. Variables
• Variable anónima: símbolo de subrayado “_”
o Preguntas con variable anónima
¿Alguien tiene algo?
?- tiene(_,_).
yes
![Page 96: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/96.jpg)
96
Programación declarativa Tema 8.- Introducción al lenguaje Prolog
Índice
1. Características Fundamentales de la Programación Lógica
2. Hechos
3. Preguntas
4. Variables
5. Conjunción, disyunción y negación
6. Reglas
![Page 97: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/97.jpg)
97
5. Conjunciones, disyunciones y negaciones
• Se pueden hacer preguntas más completas si se
utilizan los operadores lógicos
o Disyunción lógica:
Símbolo de punto y coma “;”
o Conjunción lógica:
Símbolo de la coma “,”
o Negación lógica:
not
![Page 98: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/98.jpg)
98
5. Conjunciones, disyunciones y negaciones
• Conjunción lógica
o La respuesta será verdadera si ambas respuestas
son verdaderas
• Ejemplos
?- tiene(maria,libro) , tiene(juan,cuaderno).
yes
?- tiene(maria,bicicleta) , tiene(juan,cuaderno).
no
![Page 99: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/99.jpg)
99
5. Conjunciones, disyunciones y negaciones
• Conjunción lógica
o ¿Qué cosa tienen en común María y Juan?
?- tiene(maria,X) , tiene(juan,X).
X = cuaderno
o Reevaluación o backtracking (lógica + control)
Fase 1: X toma el valor de libro
Fase 2: no se verifica tiene(juan,libro)
Fase 3: X toma el valor de cuaderno
Fase 4: se verifica el hecho
tiene(juan,cuaderno)
![Page 100: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/100.jpg)
100
5. Conjunciones, disyunciones y negaciones
• Conjunción lógica
o ¿Tiene algo María y tiene algo Juan?
?- tiene(maria,_) , tiene(juan,_).
yes
![Page 101: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/101.jpg)
101
5. Conjunciones, disyunciones y negaciones
• Conjunción lógica
o Hechos
enamorado_de(juan, maria).
enamorado_de(maria,juan).
enamorado_de(laura, luis).
o ¿Están Juan y María enamorados?
?- enamorado_de (juan,maria),
enamorado_de(maria,juan).
o ¿Es correspondido el amor de Laura?
?- enamorado_de(laura,X), enamorado_de(X,laura).
o Etc.
![Page 102: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/102.jpg)
102
5. Conjunciones, disyunciones y negaciones
• Disyunción lógica
o La respuesta será verdadera si alguna de las
respuestas es verdadera.
• Ejemplos
?- tiene(maria,libro) ; tiene(juan,cuaderno).
yes
?- tiene(maria,bicicleta) ; tiene(juan,cuaderno).
yes
![Page 103: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/103.jpg)
103
5. Conjunciones, disyunciones y negaciones
• Ejemplos
o ¿Qué cosas tienen Juan o María?
?- tiene(juan,X) ; tiene(maria,X).
X = cuaderno
X = bicicleta
X = libro
X = cuaderno
no
;
;
;
;
![Page 104: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/104.jpg)
104
5. Conjunciones, disyunciones y negaciones
• Negación lógica
o La respuesta será verdadera si la respuesta original
es falsa.
• Ejemplos
?- not(tiene(juan,cuaderno))
no
?- not(tiene(juan,tijeras)).
yes
![Page 105: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/105.jpg)
105
5. Conjunciones, disyunciones y negaciones
• Precedencia de los operadores lógicos
o Máxima precedencia:
negación lógica (not)
o Precedencia intermedia:
conjunción lógica (,)
o Mínima precedencia:
disyunción lógica (;)
o Los paréntesis controlan la precedencia.
![Page 106: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/106.jpg)
106
5. Conjunciones, disyunciones y negaciones
• Precedencia de los operadores lógicos
o Ejemplos
?- tiene(juan,cuaderno); tiene(maria,rotulador),
not(tiene(juan,bicicleta)).
yes
?- (tiene(juan,cuaderno);tiene(maria,rotulador)),
not(tiene(juan,bicicleta)).
no
![Page 107: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/107.jpg)
107
Programación declarativa Tema 8.- Introducción al lenguaje Prolog
Índice
1. Características Fundamentales de la Programación Lógica
2. Hechos
3. Preguntas
4. Variables
5. Conjunción, disyunción y negación
6. Reglas
![Page 108: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/108.jpg)
108
6. Reglas
mortal(X) :- hombre(X).
Cabeza Cuerpo
punto
![Page 109: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/109.jpg)
109
6. Reglas
• Las reglas evitan indicar hechos que se pueden deducir
a partir de otros.
• Las reglas permiten representar dependencias entre
hechos.
mortal(X) :- hombre(X).
• Las reglas permiten representar definiciones
buen_estudiante(Persona):-
asiste_a_clase(Persona),
estudia(Persona).
![Page 110: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/110.jpg)
110
6. Reglas
• Reglas recursivas
• Ejemplo de las conexiones por carretera
carretera(cordoba,granada).
carretera(cordoba,jaen).
carretera(cordoba,malaga).
carretera(cordoba,sevilla).
carretera(sevilla, cadiz).
carretera(sevilla, huelva).
carretera(sevilla, malaga).
conectado (Origen,Destino):-
carretera(Origen, Destino).
conectado (Origen,Destino):-
carretera (Origen,Intermedio),
conectado (Intermedio,Destino).
![Page 111: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/111.jpg)
111
6. Reglas
• Reglas recursivas
• Ejemplo de “la familia” (1/6)
hombre(juan).hombre(luis).hombre(miguel).hombre(alberto).hombre(rodrigo).hombre(pedro).
mujer(ana).mujer(marta).mujer(alicia).mujer(carmen).mujer(laura).mujer(isabel).mujer(silvia).
![Page 112: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/112.jpg)
112
6. Reglas
• Ejemplo de “la familia” (2/6)
/* padres(Persona, Padre, Madre). */
padres(juan,luis,ana).padres(alberto,luis,ana).padres(marta,luis,ana).padres(alicia,luis,ana).
padres(rodrigo,juan,laura).padres(carmen,juan,laura).padres(isabel,juan,laura).padres(miguel,juan,laura).
padres(laura,pedro,silvia).
![Page 113: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/113.jpg)
113
6. Reglas
• Ejemplo de “la familia” (3/6)
o Árbol genealógico
Pedro Silvia Luis Ana
Laura Juan Alberto Marta Alicia
Rodrigo Carmen Isabel Miguel
![Page 114: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/114.jpg)
114
6. Reglas
• Ejemplo de “la familia” (4/6)
/* X es hermana de Y: primera versión*/
hermana(X,Y):-
mujer(X),
padres(X,Padre,Madre),
padres(Y,Padre,Madre).
o Problema
?- hermana(alicia,Y).
Y = marta
Y = alicia
;
Error
![Page 115: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/115.jpg)
115
6. Reglas
• Ejemplo de “la familia” (5/6)
/* X es hermana de Y: segunda versión */
hermana_verdadera(X,Y):-
mujer(X),
padres(X,Padre,Madre),
padres(Y,Padre,Madre),
X \= Y.
![Page 116: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/116.jpg)
116
6. Reglas
• Ejemplo de “la familia” (6/6)
/* X es un ancestro de Y */
ancestro(X,Y):-padres(Y,X,_).
ancestro(X,Y):-padres(Y,_,X).
ancestro(X,Y):-padres(Y,Z,_),ancestro(X,Z).
ancestro(X,Y):-padres(Y,_,Z),ancestro(X,Z).
![Page 117: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/117.jpg)
117
6. Reglas
• Ejercicios sobre la familia
o Abuelo/a
o Nieto/a
o Primos/as
o Etc.
• Ejercicio de los donantes de sangre
![Page 118: UNIVERSDAD DE CÓRDOBA ESCUELA POLITÉCNICA SUPERIOR ... · Tema 2.- Expresiones y Funciones Tema 3.- Predicados y sentencias condicionales Tema 4.- Iteración y Recursión Tema 5.-](https://reader034.fdocument.pub/reader034/viewer/2022042107/5e8737bab74c12530321cb14/html5/thumbnails/118.jpg)
UNIVERSDAD DE CÓRDOBA
ESCUELA POLITÉCNICA SUPERIOR
DEPARTAMENTO DE
INFORMÁTICA Y ANÁLISIS NUMÉRICO
PROGRAMACIÓN DECLARATIVAINGENIGERÍA INFORMÁTICA
CUARTO CURSO
PRIMER CUATRIMESTRE
Tema 8.- Introducción al Lenguaje Prolog