1 LENGUAJES LENGUAJES DE INTELIGENCIA ARTIFICIAL DE INTELIGENCIA ARTIFICIAL INGENIGERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS SEGUNDO 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 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 LENGUAJES DE INTELIGENCIA ARTIFICIAL LENGUAJES DE INTELIGENCIA ARTIFICIAL PROGRAMA PROGRAMA 3 Segunda parte: Prolog LENGUAJES DE INTELIGENCIA ARTIFICIAL LENGUAJES DE INTELIGENCIA ARTIFICIAL PROGRAMA PROGRAMA 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
29
Embed
Tema-8.-Introduccion-al-lenguaje-Prolog [Modo de ...
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
LENGUAJES LENGUAJES
DE INTELIGENCIA ARTIFICIALDE INTELIGENCIA ARTIFICIALINGENIGERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN
INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS
SEGUNDO CURSO
PRIMER CUATRIMESTRE
Tema 8.- Introducción al Lenguaje Prolog
UNIVERSDAD DE CÓRDOBA
ESCUELA POLITÉCNICA SUPERIOR
DEPARTAMENTO DEINFORMÁTICA Y ANÁLISIS NUMÉRICO
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
LENGUAJES DE INTELIGENCIA ARTIFICIAL LENGUAJES DE INTELIGENCIA ARTIFICIAL PROGRAMAPROGRAMA
3
Segunda parte: Prolog
LENGUAJES DE INTELIGENCIA ARTIFICIAL LENGUAJES DE INTELIGENCIA ARTIFICIAL PROGRAMAPROGRAMA
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
2
4
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
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
5
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
1. Características Fundamentales de la Programación Lógica
• Programación declarativa
• Programación lógica
• Conceptos comunes de la programación lógica y la programación funcional
• Orígenes de la programación lógica
• Funcionamiento básico de Prolog
6
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
1. Características Fundamentales de la Programación Lógica
• Programación declarativa
o Su prioridad es responder a la siguiente pregunta
¿Qué problema hay que resolver?
o No se preocupa de
¿Cómo hay que resolver el problema?
3
7
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
1. Características Fundamentales de la Programación Lógica
• Tipos de programación declarativa
o Programación funcional:
� Basada en los conceptos de función y expresiónmatemática.
o Programación Lógica:
� Basada en los fundamentos teóricos de la lógicamatemática.
8
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
1. Características Fundamentales de la Programación Lógica
• Programación declarativa
• Programación lógica
• Conceptos comunes de la programación lógica y la programación funcional
• Orígenes de la programación lógica
• Funcionamiento básico de Prolog
9
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
1. Características Fundamentales de la Programación Lógica
• Programación lógica
oo Programa = Lógica + ControlPrograma = 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
4
10
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
1. Características Fundamentales de la Programación Lógica
• Programación Lógica
o Hecho: cosa que sucede.
o Regla: relación entre hechos.
11
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
1. Características Fundamentales de la Programación Lógica
• Programación declarativa
• Programación lógica
• Conceptos comunes de la programación lógica y la programación funcional
• Orígenes de la programación lógica
• Funcionamiento básico de Prolog
12
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
1. Características Fundamentales de la Programación Lógica
• Conceptos comunes de la programación lógica y la programación funcional
o Recursión
o Listas
o Lenguajes interpretados
o Gestión automática de memoria:
� garbage collection (recogida de basura).
5
13
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
1. Características Fundamentales de la Programación Lógica
• Programación declarativa
• Programación lógica
• Conceptos comunes de la programación lógica y la programación funcional
• Orígenes de la programación lógica
• Funcionamiento básico de Prolog
14
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
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
15
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
1. Características Fundamentales de la Programación Lógica
• Orígenes de la programación lógica
o Fundamentos teóricos:
� Lógica matemática
� Lógica proposicional
� Lógica de predicados
� Cláusulas de Horn
� Principio de resolución (Robinson, 1965)
6
16
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
1. Características Fundamentales de la Programación Lógica
• Cláusulas de Horn:
o Disyunción de literales negados, excepto uno:
¬¬¬¬ p1 ∨∨∨∨ ¬¬¬¬ p2 ∨∨∨∨ … ¬¬¬¬ pn ∨∨∨∨ q
17
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
1. Características Fundamentales de la Programación Lógica
• Cláusulas de Horn:
o 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
18
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
1. Características Fundamentales de la Programación Lógica
• Cláusulas de Horn
o q se verifica si se verifican p1, p2,… y pn
o Interpretación modular:
o Prolog: regla
q :- p1, p2,…, pn
p1
p2
…
pn
q
7
19
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
1. Características Fundamentales de la Programación Lógica
• Cláusulas de Horn
o Prolog: regla
q :- p1, p2,…, pn .
Cabeza Cuerpo
20
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
1. Características Fundamentales de la Programación Lógica
• Cláusulas de Horn:
o Ejemplo 1
Si la figura posee cuatro lados iguales y cuatro ángulos iguales entonces la figura es un cuadrado
� Variables proposicionales
p1 = la figura posee cuatro lados iguales
p2 = la figura posee cuatro ángulos iguales
q = la figura es un cuadrado
� Lógica proposicional: p1 ∧∧∧∧ p2 � q
21
Lenguajes de Inteligencia Artificial Tema 8.- Introducción al lenguaje Prolog
1. Características Fundamentales de la Programación Lógica