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 que contendrá información
suficiente para que se tomen correctas decisiones y se arrojen respuestas
correctas llamado “base del conocimiento” y otro que llevará las reglas, que validaran
las solicitudes para dar las respuestas.
PROGRAMACIÓN
LÓGICA
El lenguaje de programación PROLOG
(“PROgrammation en LOGique”) fue creado por Alain Colmerauer y sus
colaboradores alrededor de 1970 en la Universidad de Marseille-Aix. Se pretendía usar la lógica formal como base
para un lenguaje de programación, es decir, era un primer intento de diseñar un
lenguaje de programación que posibilitara al programador especificar sus problemas
en lógica. Lo que lo diferencia de los demás es el énfasis sobre la especificación
del problema.
Es un lenguaje para el procesamiento de
información simbólica. PROLOG es una realización aproximada del modelo de
computación de Programación Lógica sobre una máquina secuencial. Desde luego,
no es la única realización posible, pero sí es la mejor elección práctica, ya
que equilibra por un lado la preservación de las propiedades del modelo
abstracto de Programación Lógica y por el otro lado consigue que la
implementación sea eficiente.
El lenguaje PROLOG juega un importante
papel dentro de la Inteligencia Artificial, y se propuso como el lenguaje
nativo de las máquinas de la quinta generación ("Fifth Generation Kernel
Language", FGKL) que quería que fueran Sistemas de Procesamiento de
Conocimiento. La expansión y el uso de este lenguaje propició la aparición de
la normalización del lenguaje Prolog con la norma ISO (propuesta de junio de
1993).
PROLOG es un lenguaje de programación
para ordenadores que se basa en el enguaje de la Lógica de Primer Orden y que
se utiliza para resolver problemas en los que entran en juego objetos y
relaciones entre ellos. Por ejemplo, cuando decimos "Jorge tiene una
moto", estamos expresando una relación entre un objeto (Jorge) y otro objeto
en particular (una moto). Más aún, estas relaciones tienen un orden específico (Jorge
posee la moto y no al contrario). Por otra parte, cuando realizamos una
pregunta (¿Tiene Jorge una moto?) lo que estamos haciendo es indagando acerca
de una relación.
Además, usar reglas para describir relaciones:
"dos personas son hermanas si ambas son hembras y tienen los mismos
padres".
Una de las ventajas de la programación
lógica es que se especifica qué se tiene que hacer (programación declarativa),
y no cómo se debe hacer (programación imperativa). A pesar de esto, Prolog
incluye algunos predicados predefinidos metalógicos, ajenos al ámbito de la
Lógica de Primer Orden, (var, nonvar, ==, ...), otros extra-lógicos, que tienen
un efecto lateral, (write, get, ...) y un tercer grupo que nos sirven para
expresar información de control de como realizar alguna tarea ( el corte, ...
). Por tanto, Prolog ofrece un sistema de programación práctico que tiene
algunas de las ventajas de claridad y declaratividad que ofrecería un lenguaje
de programación lógica y, al mismo tiempo, nos permite un cierto control y
operatividad.
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:
ü Unificación
ü Estructuras de datos basadas en árboles
ü Backtracking automático
La sintaxis del lenguaje consiste en lo
siguiente:
ü Declarar hechos sobre objetos y sus
relaciones
ü Hacer preguntas sobre objetos y sus
relaciones
ü Definir reglas sobre objetos y sus
relaciones
OBJETIVOS PARA EL CUAL FUE CREADO
Entre los objetivos de la creación de Prolog está la evolución de los lenguajes, como también el bajo ”costo y facilidad' de programación que este puede ofrecer, ya que como su nombre lo indica PROLOG(PROgramming in LOGic), es un programa que usa la lógica para resolver los problemas. Por otra parte, el lenguaje está orientado para trabajar en aplicaciones de inteligencia artificial.
ESTRUCTURA
Un programa Prolog está formado por una secuencia de enunciados (cláusulas): hechos, reglas y variables.
Lo anterior se detalla a continuación:
HECHOS
Expresan relaciones entre objetos.
Supongamos
que queremos expresar el hecho de que "un coche tiene ruedas". Este
hecho, consta de dos objetos, "coche" y "ruedas", y de una relación
llamada "tiene".
La forma de representarlo en PROLOG es:
tiene(coche,ruedas).
Algunas características de los hechos son:
- Los nombres de objetos y relaciones deben comenzar con una letra minúscula.
- Primero se escribe la relación, y luego los objetos separados por comas y encerrados entre paréntesis.
- Al final de un hecho debe ir el carácter "." (punto).
El orden de los objetos dentro de la relación es arbitrario, pero debemos ser coherentes a lo largo de la base de hechos.
REGLAS
Las reglas se utilizan en Prolog para significar que
un hecho depende de uno o más hechos. Es la representación de las
implicaciones lógicas del tipo p ---> q (p implica q).
Algunas características son:
- Una regla consiste en una cabeza y un cuerpo, unidos por el signo " :- ".
- La cabeza esta formada por un único hecho.
- El cuerpo puede ser uno o más hechos (conjunción de hechos), separados por una coma (","), que actúa como el "y" lógico.
- Las reglas finalizan con un punto (".").
CONCLUSIÓN
Según el presente informe, se puede establecer que el lenguaje Prolog está orientado a la Inteligencia Artificial, usando la programación lógica. Gracias a su facilidad de programar y su sencilla sintaxis gramatical y numérica, se pueden escribir rápidamente y con pocos errores programas claramente leíbles, además cualquier usuario puede acceder a él si lo desea y sin problemas de entendimiento.
También utiliza pocos comandos en comparación con otros lenguajes de programación.
Por otra parte en este lenguaje al igual que otros, hay que tener en
cuenta la asociatividad de los operadores antes de trabajar con él.
Además Prolog se puede trabajar en diferentes sistemas operativos, tales como UNIX, MS-DOS, MAC-OS, entre otros.
Bibliografía:
Teresa Escrig; Julio Pacheco y Francisco
Toledo. 2001. El Lenguaje de Programación PROLOG.
Faraón Llorens Largo y Mª Jesús Castel
de Haro. 2001. LÓGICA DE PRIMER ORDEN, LÓGICA COMPUTACIONAL y AMPLIACIÓN DE
LÓGICA.
No hay comentarios:
Publicar un comentario