Clase presencial

Páginas: 47 (11648 palabras) Publicado: 20 de marzo de 2014
UNIVERSIDAD AUTÓNOMA DE GUERRERO
UNIDAD ACADÉMICA DE MATEMÁTICAS

Apuntes de
PROGRAMACIÓN
EN PROLOG
Segunda Edición

Serie: Material de Apoyo a la Licenciatura en Matemáticas Área Computación.

Edgar Altamirano Carmona
Chilpancingo, Gro., Enero de 2012

UAG

Programación en Prolog

2

Presentación.
El lenguaje Prolog fué desarrollado en la década de los 70's por AlainColmerauer en la
Universidad de Marsella; El nombre de Prolog significa "Programación en Lógica"
indicando que sus bases descansan en la Lógica Matemática. La característica más
distintiva de Prolog es la forma declarativa de su programación a diferencia de los
lenguajes convencionales que están orientados a procedimientos; en consecuencia, el uso
de Prolog implica pensar de modo completamentediferente respecto a los problemas a
solucionar, lo que puede parecer difícil al principio pero después de acostumbrarse
resulta muy natural.
El lenguaje Prolog se centra alrededor de un conjunto relativamente pequeño de
mecanismos básicos que incluyen el empatamiento de patrones, estructuración de los
datos basados en árboles y retroceso (backtracking) automático; estas herramientas
constituyenun marco de programación flexible y poderoso que facilitan la solución de
muchos problemas en el área de la Inteligencia Artificial.
Un programa en Prolog está formado por una secuencia de cláusulas de tres tipos:
a). Hechos, declaran las cosas que son incondicionalmente ciertas.
b). Reglas, especifican qué cosas se pueden deducir, si es que se cumplen ciertas
condiciones.
c). Preguntas,permiten que el usuario pida alguna información derivable de los hechos y
las reglas del programa.
En la actualidad existen diversos compiladores e intérpretes, aunque para los propósitos
del curso utilizaremos SWI-Prolog.

UNIDAD ACADÉMICA DE MATEMÁTICAS

UAG

Programación en Prolog

3

Contenido
Presentación.

2

1. Conceptos Básicos.

4

2. Sintaxis y significado de losprogramas.

18

3. Listas, operadores y aritmética.

34

4. Ejemplos utilizando estructuras.

42

5. Control del retroceso (backtracking).

49

6. Entrada y salida

57

Anexos
Bibliografía.

UNIDAD ACADÉMICA DE MATEMÁTICAS

UAG

Programación en Prolog

4

1. Conceptos básicos.
En este capítulo se presentan los mecanismos básicos de Prolog al través del desarrollo
deun ejemplo: relaciones familiares.
1.1. Cláusulas.
El hecho de que tomás es progenitor (padre o madre) de Roberto se puede representar en
Prolog como:
progenitor( tomas, roberto).
'progenitor' es el nombre de una relación, 'tomas' y 'roberto' son sus argumentos.
El siguiente árbol familiar:

se puede representar en Prolog con el siguiente programa :
progenitor( pamela, roberto).progenitor( tomas, roberto).
progenitor( tomas, elizabeth).
progenitor( roberto, ana).
progenitor( roberto, patricia).
progenitor( patricia, jaime).
este programa consiste de seis 'cláusulas', si se 'carga' en Prolog, podemos realizar
preguntas como las siguientes:
?- progenitor( roberto, patricia).
?- progenitor( elizabeth, patricia).
?- progenitor( tomas, benjamin).
?- progenitor( X,elizabeth).
?- progenitor( roberto, X).
?- progenitor( X, Y).

UNIDAD ACADÉMICA DE MATEMÁTICAS

UAG

Programación en Prolog

X = pamela
Y = roberto ;
X = tomas
Y = roberto

/* se contesta con ';' */

1.2. Conjunciones de cláusulas.
Ahora queremos preguntar ¿quién es el abuelo de jaime?
El programa no incluye la relación 'abuelo', sin embargo podemos hacer la pregunta en
dos pasos:
1).Quién es el progenitor de jaime, asumimos que es algún Y.
2). Quién es el progenitor de este Y, asumimos que es algún X.
Esta pregunta de dos pasos se puede escribir en Prolog:
?- progenitor( Y, jaime) , progenitor( X, Y).
X = roberto
Y = patricia
la pregunta puede ser entendida como: "encuentra X y Y tal que se satisfagan las dos
relaciones simultáneamente".
Si cambiamos el orden de las...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Clases presenciales PADEP
  • TEOLOGÍA I CLASE PRESENCIAL
  • Ambientes Virtuales Vs Clases Presenciales
  • DDHH clase presencial alimentacion TERMINADO
  • CLASE PRESENCIAL 7 SÁBADO 28 DE MARZO
  • Clase Presencial 1 DOyP 2014 2 Analisis
  • fol apuntes clase presencial.
  • Hidroelectrica venezuela clase presencial

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS