Está en la página 1de 2

Sistemas de Programacin Lgicos -El Lenguaje Prolog

Resumen:
La programacion lgica considera al programa y a sus entradas como aseveraciones lgicas acerca del mundo, y al
procedimiento de hacer explcitas las consecuencias como un proceso de inferencia. La relacin entre lgica y algoritmo esta
resumida en la ecuacin de Robert Kowalski:
Algoritmo = Lgica + Control
Prolog se le utiliza fundamentalmente como un lenguaje rpido para elaborar prototipos y en tareas donde hay que
manejar signos, como en el diseo de compiladores y en el anlisis gramatical del lenguaje natural. Tambin se le ha
utilizado en el diseo de aplicaciones de sistemas expertos en las reas legal, financiera y otras.

Palabras Clave:

Introduccion.- Representacin correspondiente a Prolog el consecuente


o cabeza, esta del lado izquierdo; los antecedentes o
En cuanto base de conocimientos lgica, el programa cuerpo, a la derecha. Una clausula en Prolog se leera
Prolog tiene las siguientes caractersticas: como Para demostrar (la cabeza), demuestre (el
cuerpo).
El programa consta de una secuencia de oraciones, que
guardan una relacin implcita de coyuncion. Todas las Con el fin de mantener este tipo de lectura intuitiva junto
variables tienen cuantificacin universal implcita y con nuestra notacin lgica, nos comprometeremos a
cuando las variables aparecen en oraciones distintas se escribir las clausulas de Prolog empleando una
consideran como diferentes. implicacin en sentido izquierdo. Por ejemplo, la segunda
clausula de la definicin de Miembro se convierte en:
Se aceptan nicamente oraciones en forma de clausula
de Horm. Es decir, las oraciones son atmicas, o bien una
implicacin que no tiene antecedentes negados y un
consecuente atmico.

Los trminos pueden ser signos de constante, variables o La definicin de Miembro puede servir para responder a
trminos funcionales. diversos tipos de consultas. Puede utilizarse para
confirmar que es verdadera. Adems puede enumerar los
En una consulta puede haber conjunciones, disyunciones, tres valores de x que hagan verdadera a . Tambin
variables y trminos funcionales. pueden buscar el valor de x tal que es verdadera.
Tambin puede servir para enumerar las listas para las
En vez de utilizar antecedentes negados en sus
cuales es verdadera.
implicaciones, en Prolog se emplea un operador de
negacin como falla: una meta no P se considera Los diseadores de Prolog realizaron su implantacin con
demostrada si el sistema no logra demostrar P. el fin de contar con un modelo sencillo y de rpida
ejecucin:
Desarrollo
o Todas las inferencias se realizan por
Se cuenta con una gran cantidad de predicados
encadenamiento hacia atrs, con bsqueda
incorporados para aritmtica, de entrada/salida y
preferente por profundidad. Es decir cuando en el
diversas funciones del sistema y de la base de
proceso de demostracin de una oracin se tope con
conocimientos. En la notacin de Prolog ,la meta X es
un callejn sin salida, Prolog retroceder al paso
4+3 se alcanza cuando X se vincula a 7. Por el contrario,
inmediato anterior que ofrezca opciones.
no es posible demostrar la meta 5 es X+Y, puesto que las
o El orden de bsqueda a travs de los conjuntos de
funciones integradas no tienen facultad para la resolucin
un antecedente es siempre de izquierda a derecha,
arbitraria de ecuaciones.
y las clausulas de la base de conocimientos se
El siguiente es un ejemplo del empleo del programa aplican en orden, de la primera a la ultima.
Prolog en la relacin Miembro, expresados ambos en
o La verificacin de ocurrencia se omite en la rutina
notacin normal de lgica de primer orden y en formato
de unificacin.
que utiliza Prolog:
Aunque la omisin de la verificacin de ocurrencia podra
restar confiabilidad a Prolog, en la practica los errores se
producen muy rara vez. El empleo de la bsqueda
preferente por profundidad no permite a Prolog ser
completo, debido a las rutas infinitas que crean las
oraciones circulares.
Los programadores debern tener presente las grande sustitucin al implementar variables lgicas capaces de
ventajas de Prolog es que el modelo de ejecucin es lo recordar su vinculacin actual. En todo instante, las
suficientemente sencillo como para que un programador variables de un programa estn vinculadas o
con la capacitacin necesaria pueda incorporar desvinculadas a cierto valor. En conjunto, tales variables
informacin de control y producir as un programa y valores definen de manera implcita una sustitucin.
eficiente.
Desde luego, se produce solo una sustitucin a la vez,
La ejecucin de un programa Prolog se realiza de dos pero no necesitamos ms. La sustitucin es la correcta
maneras: por interpretacin y por compilacin. para la ruta actual en el rbol de bsqueda. La ampliacin
de la ruta solo puede aadir nuevas vinculaciones de
La primera consiste en que en vez de construir la lista variables, puesto que si se intentara aadir una
de todas las respuestas posibles para cada submeta, vinculacin distinta a una variable que ya este vinculada,
antes de proceder con la siguiente, los intrpretes de dar como resultado una falla en la unificacin. Si llegara
Prolog generan una respuesta y una promesa para a fallar una ruta de la bsqueda, Prolog retroceder a un
generar el resto una vez que la respuesta en cuestin punto de eleccin previo, y posiblemente all deba
haya sido explorada totalmente. A esta promesa se le desvincular algunas variables. Para ello, es necesario que
denomina punto de eleccin. Una vez que la bsqueda lleve un registro de todas las variables vinculadas en una
preferente por profundidad concluye su exploracin de las pila que se conoce con el nombre de pista.
posibles soluciones aportadas por la respuesta en
cuestin y retrocede al punto de eleccin, este se Bibliografia
expande para producir as una nueva respuesta para la
submeta y el nuevo punto de eleccin. Jonathan Muoz Aleman (15/01/2016) Sistemas de
razonamiento logico SlideShare recuperado de:
Esta manera de proceder permite ahorrar tiempo y https://es.slideshare.net/GeekMelomano/sistemas-de-
espacio. razonamiento-lgico-1240772

Conclusion

La Sencilla implantacin del ENACADENAMIENTO-HACIA-


ATRS invierte bastante tiempo en la generacin de
sustituciones y en aplicarlas a las listas de consulta.
Prolog elimina la necesidad de un tipo de datos de

También podría gustarte