miércoles, 24 de julio de 2013

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: