Fecha de la clase: 15 de Enero
INTRODUCCIÓN
El objetivo de esta clase es investigar sobre PROLOG
para utilizarlo en ejercicios de Inteligencia Artificial. La resolución de
ejercicios en este programa consiste en crear un archivo como la base de
conocimiento que contendrá información suficiente para que se tomen correctas
decisiones y se arrojen respuestas correctas y otro el cual es el que llevará
las reglas, que validaran las solicitudes para dar las respuestas.
MARCO TEÓRICO
PROLOG
PROLOG es un lenguaje de programación muy útil
para resolver problemas que implican objetos y relaciones entre objetos. Está
basado en los siguientes mecanismos básicos:
o
Unificación
o Estructuras de datos basadas en árboles
o
Backtracking automático
La sintaxis del lenguaje consiste en lo
siguiente:
o
Declarar hechos sobre objetos y sus relaciones
o
Hacer preguntas sobre objetos y sus relaciones
o
Definir reglas sobre objetos y sus relaciones. (Escrig,T).
HECHOS
ü Átomos en Lógica de Predicados.
ü No se permiten disyunciones.
ü Los nombres de los predicados empiezan con minúscula.
ü
El hecho debe
terminar con un punto.
PREGUNTAS
En tiempo de ejecución, aparece el prompt ?- y
el intérprete de PROLOG espera que el usuario introduzca un objetivo en forma
de predicado, con o sin variables.
Al igual que en CLIPS, tendremos ficheros con
la descripción de la base de conocimiento (hechos y reglas).
baseconoc.pl (o .pro)
esHombre(juan).
esHombre(pedro).
Para
cargar un fichero, escribiremos:
?-
[baseconoc].
/*
Esto añade a la MT de Prolog los hechos del fichero baseconoc.pl */
?-
esHombre(juan).
yes
?-
esHombre(pedro).
yes
?-
esHombre(juanCarlos).
no
?-
esMamifero(leon).
No
. (Cubero, J).
REGLAS
Existe en PROLOG la posibilidad de definir la
relación “abuelo(X,Y)” o la relación “tio(X,Y)” como reglas, además de poderlo
hacer como hechos o como conjunción de objetivos.
abuelo(X,Y):- progenitor(X,Z), progenitor(Z,Y).
tio(X,Y):- progenitor(Z,Y), progenitor(V,Z),
progenitor(V,X).
A la primera parte de la regla se le llama
cabeza o conclusión, el símbolo ":-" es el condicional (SI), y a la
parte de la regla que está después de “:-“ es el cuerpo o parte condicional. El
cuerpo puede ser una conjunción de objetivos separados por comas. Para
demostrar que la cabeza de la regla es cierta, se tendrá que demostrar que es
cierto el cuerpo de la regla.
Por lo visto hasta ahora, las cláusulas PROLOG
son de tres tipos: hechos, reglas y preguntas. Las cláusulas PROLOG consisten en
una cabeza y un cuerpo. Los hechos son cláusulas que tienen cabeza pero no tienen
cuerpo. Las preguntas sólo tienen cuerpo. Las reglas tienen siempre cabeza y
cuerpo. Los hechos son siempre ciertos. Las reglas declaran cosas que son
ciertas dependiendo de una condición. El programa PROLOG (o base de datos
PROLOG) está formado por hechos y reglas y para PROLOG no hay ninguna
distinción entre ambas. Las preguntas se le hacen al programa para determinar qué
cosas son ciertas. (Escrig,T).
CONCLUSIÓN
Este lenguaje prolog está orientado a la IA ,
usando para esto la programación lógica. Prolog tiene la facilidad para
programar y contiene una sintaxis sencilla gracias a esto los programadores
pueden escribir rápidamente un código y no contener muchos errores, además es
de fácil entendimiento y puede ser utilizado por inexpertos.
BIBLIOGRAFÍA
Cubero, J. 2009. Tutorial de Prolog. En Línea. Formato
PDF. Disponible en http://elvex.ugr.es/decsai/intelligent/workbook/ai/PROLOG.pdf
Escrig,T. 2005. El lenguaje de Programación PROLOG. En línea.
Formato PDF. Disponible en http://mural.uv.es/mijuanlo/PracticasPROLOG.pdf
No hay comentarios:
Publicar un comentario