Lógica Computacional
PROGRAMACIÓN LÓGICA.
Los programas se ejecutan verificando la presencia de una cierta
condición habilitadora y, cuando se satisface, ejecutan una acción apropiada.
También se le conoce como lenguaje con base en reglas.
BASES DE PROLOG.
La programación lógica es un intento de definir un estilo de
programación alternativo al estilo convencional de von Neumann. En él, el
programador describe indirectamente un proceso, definiendo un conjunto de
asertos o condiciones, las cuales deben ser satisfechas en orden a que el
proceso complete su tarea. El propio algoritmo resultante no está completamente
bajo el control del programador, sino que el programador debe conocer el
mecanismo de control subyacente para especificar un conjunto correcto de
asertos.
La programación lógica es, por su naturaleza poco corriente,
difícil de asimilar por las personas que se han formado en el estilo de von
Neumann. El lenguaje Prolog representa un estilo relativamente nuevo de
programación.
Diseñado principalmente para las aplicaciones de inteligencia
artificial, el estilo del Prolog
se basa en la noción de definir objetos y relaciones de
inferencia entre clases de objetos.
Tiene unos fuertes fundamentos teóricos en el cálculo de
proposiciones. Gran parte de la
reciente atención al Prolog se debe a su papel prominente en el
proyecto japonés de computadoras de la quinta generación.
El Prolog fue desarrollado a principios de los años 1970 por
Philippe Rousel, del Grupo de inteligencia Artificial de la Universidad de
Marsella. Su primer intérprete se implementó en 1972. debido a que el uso del
Prolog ha estado restringido a la comunidad de inteligencia artificial –la cual
tiene una consistencia relativamente pequeña en programación, comparada con la
de, por ejemplo, la comunidad de procesamiento de datosel lenguaje no es aún
ampliamente conocido. Además, por la misma razón, el Prolog no ha cambiado
dramáticamente desde su concepción, ni se ha hecho ningún esfuerzo por
estandarizarlo. Definido como un lenguaje de inteligencia artificial, el Prolog
se ha utilizado en los siguientes tipos de aplicaciones:
Prueba de teoremas y
resolución de problemas.
Lógica
matemática.
Comprensión
del lenguaje natural.
Sistemas
expertos.
Representación
del conocimiento.
Debido a que el estilo de la programación lógica es muy distinta
del de otros dominios de aplicación, Prolog no ha gozado de un amplio uso en
áreas distintas de la inteligencia artificial. Su estructura de ejecución
impone un estilo de programación diferente, el cual no se ha mostrado aún
efectivo en la programación numérica, aplicaciones de procesamiento de datos o
en la programación de sistemas.
Sintaxis
ESTRUCTURA
Un programa
Prolog está formado por una secuencia de enunciados (cláusulas): hechos, reglas
y variables.
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
(".").
·
Variables
Representan
objetos que el mismo PROLOG determina. Una variable puede estar instanciada o
no instanciada. Esta instanciada cuando existe un objeto representado por una
variable. De este modo, cuando preguntamos “Un coche tiene X ?,”
Prolog busca
en los hechos cosas que tiene un coche y respondería:
X = ruedas.
Instanciando la variable X con el objeto ruedas.
o
Los nombres de variables comienzan siempre
por una letra mayúscula.
Como ya
nombramos las cláusulas haremos el siguiente razonamiento lógico:
tiempo(lluvioso)
----> suelo(mojado)
suelo(mojado)
Que el suelo
esté mojado, es una condición suficiente de que el tiempo sea lluvioso, pero no
necesaria. Por lo tanto, a partir de ese hecho, no podemos deducir que esté
lloviendo (pueden haber regado las calles). La representación correcta en
Prolog, sería:
suelo(mojado)
:- tiempo(lluvioso).
suelo(mojado).
Cabe señalar
que la regla esta "al revés". Esto es así por el mecanismo de
deducción hacia atrás que emplea Prolog.
Bibliografia
(2012, 05). Pragmatica. BuenasTareas.com. Recuperado 05, 2012, de
http://www.buenastareas.com/ensayos/Pragmatica/4366325.html
No hay comentarios:
Publicar un comentario