Buscar este blog

miércoles, 28 de septiembre de 2011

Paradigma Logico

 El paradigma lógico Tiene como característica principal la aplicación de las reglas de la lógica para inferir conclusiones a partir de datos. Conociendo la información y las condiciones del problema, la ejecución de un programa consiste en la búsqueda de un objetivo dentro de las declaraciones realizadas. 

Esta forma de tratamiento de la información permite pensar la existencia de “programas inteligentes” que puedan responder, no por tener en la base de datos todos los conocimientos, sino por poder inferirlos a través de la deducción. La importancia del concepto de declaratividad en este paradigma, permite encuadrarlo dentro de los paradigmas declarativos. Al separar el control y la lógica, el programa se transforma en un conjunto de declaraciones formales de especificaciones que deben ser correctas por definición. Un programa lógico no tiene un algoritmo que indique los pasos que detallen la manera de llegar a un resultado, sino que está formado por expresiones que describen la solución (o más precisamente, la “declaran”). De esta manera, la clave para hacer un programa lógico es poder explicitar una declaración que describa correctamente la solución del problema. Principales características El paradigma tiene sus fundamentos en las teorías de la lógica proposicional. De ellas, se toman en particular las Cláusulas de Horn, que son una forma de lógica de predicados con una sola conclusión en cada cláusula y un conjunto de premisas de cuyo valor de verdad se deduce el valor de verdad de la conclusión: una conclusión es cierta si lo son simultáneamente todas sus premisas. Por su esencia declarativa, un programa lógico no tiene un algoritmo que indique los pasos que detallen la manera de llegar a un resultado, sino que es el sistema internamente el que proporciona la secuencia de control. No existe el concepto de asignación de variables, sino el de unificación. No hay un “estado” de las variables que se vaya modificando por sucesivas asignaciones, generalmente asociadas a posiciones de memoria, sino que las variables asumen valores al unificarse o “ligarse” con valores particulares temporalmente y se van sustituyendo durante la ejecución del programa. Un programa lógico contiene una base de conocimiento sobre la que se hacen consultas. La base de conocimiento está formada por hechos, que representan la información del sistema expresada como relaciones entre datos, y por reglas lógicas que permiten deducir consecuencias a partir de combinaciones entre los hechos y, en general, otras reglas. Se construye especificando la información del problema real en una base de conocimiento en un lenguaje formal y el problema se resuelve mediante un mecanismo de inferencia que actúa sobre ella. Así pues, una clave de la programación lógica es poder expresar apropiadamente todos los hechos y reglas necesarios que definen el dominio de un problema.

En otros paradigmas, las salidas son funcionalmente dependientes de las entradas, por lo que el programa puede verse abstractamente como la implementación de una transformación de entradas en salidas. En cambio, la programación lógica está basada en la noción de que el programa implementa una relación, en vez de una transformación. Los predicados son relaciones, que al no tener predefinido una “dirección” entre sus componentes, permiten que sus argumentos actúen indistintamente como argumentos de entrada y salida. Esta característica se denomina inversibilidad. A su vez, a diferencia de las funciones donde está la restricción del a unicidad de la imagen para un elemento determinado del dominio, una relación permite vincular a cada elemento con muchos otros elementos, permitiendo soluciones alternativas. Dado que las relaciones son más generales que las transformaciones, la programación lógica es potencialmente de más alto nivel que la de otros paradigmas. Internamente, existe un mecanismo, un “motor”, que actúa como control de secuencia. Durante la ejecución de un programa va evaluando y combinando las reglas lógicas de la base de conocimiento para lograr los resultados esperados. La implementación del mecanismo de evaluación puede ser diferente en cada lenguaje del paradigma, pero en todos los casos debe garantizar que se agoten todas las combinaciones lógicas posibles para ofrecer el conjunto completo de respuestas alternativas posibles a cada consulta efectuada. El más difundido se denomina backtracking, que utiliza una estrategia de búsqueda primero en profundidad. La recursividad como estrategia lógica para encontrar soluciones, junto con la utilización de listas para representar conjuntos de valores, son dos características típicas de los programas lógicos. Los lenguajes del paradigma lógico, en general incluyen herramientas para realizar soluciones polimórficas y manejar el concepto de orden superior, entendido como la capacidad de un lenguaje para manejar su propio código como una estructura de datos más. Son un conjunto de funcionalidades que dotan de una enorme expresividad y potencia a los programas. Existen también otras herramientas más complejas, como las que buscan incrementar la eficiencia o las que abren a la posibilidad de meta programación, que requieren de una cuidadosa utilización ya que se introducen en el interior del sistema mismo y permiten alterar la naturaleza declarativa del paradigma. Campo de aplicación El paradigma es ampliamente utilizado en las aplicaciones que tienen que ver con la Inteligencia Artificial, particularmente en el campo de sistemas expertos y procesamiento del lenguaje humano. Un sistema experto es un programa que imita el comportamiento de un experto humano. Por lo tanto contiene información (es decir una base de conocimientos) y una herramienta para comprender las preguntas y encontrar la respuesta correcta examinando la base de datos (un motor de inferencia). En el caso del procesamiento del lenguaje humano se trata de dividir el lenguaje en partes y relaciones y tratar de comprender su significado. Para plantear los problemas en términos del paradigma se definen reglas lógicas entre las diferentes partes. También es útil en problemas combinatorios o que requieren gran cantidad o amplitud de soluciones alternativas, dada la naturaleza combinatoria del mecanismo de backtracking y como lenguaje de prototipación y programación exploratoria. Otros casos de utilidad práctica del paradigma son: • Paralelización automática de programas. • Programación distribuida y multiagente. • Validación automática de programas. • Prototipado rápido de aplicaciones. • Bases de datos deductivas. • Acceso a bases de datos desde páginas Web. Historia y lenguajes La base conceptual de la lógica proposicional es desarrollada por Alfred Horn, en los años 50, en forma independiente al desarrollo computacional, al publicar “Sobre sentencias las cuales son verdaderas de la unión directa de las álgebras”, en la cual presenta un modelo lógico para el tratamiento de oraciones del lenguaje natural, donde se explican las luego denominadas “cláusulas de Horn”. En la primera mitad de la década del 70, en base a las cláusulas de Horn, surgen las primeras versiones de lenguajes lógicos como una herramienta para resolver ciertos problemas en el área de la inteligencia artificial, originalmente vinculados al tratamiento computacional del lenguaje natural. Más concretamente, en 1972, en la Universidad de Marsella, Alain Colmerauer, Philippe Roussel y un grupo de investigadores presentan el lenguaje de programación lógica Prolog. Luego se va perfeccionando el lenguaje y se escribe el compilador. Pocos años después se definen los principios que constituyen al Paradigma Lógico como un paradigma de programación, con la participación determinante de Robert Kowalski. Inicialmente se trataba de un lenguaje totalmente interpretado hasta que, a mediados de los 70, David H.D. Warren desarrolló un compilador capaz de traducir Prolog en un conjunto de instrucciones de una máquina abstracta denominada Warren Abstract Machine, o abreviadamente, WAM. Desde entonces Prolog es un lenguaje semi-interpretado. En 1979, en la Universidad de Edimburgo se escribe un nuevo compilador para el Prolog, adaptándolo al paradigma lógico planteando la ecuación Lógica + control + estructuras de datos = programas y se sigue perfeccionando el lenguaje. Aunque con ciertas dificultades iniciales, debido principalmente a la novedad del paradigma y a la escasa eficiencia de las implementaciones disponibles, el lenguaje se fue expandiendo rápidamente, sobre todo en Europa y en Japón. Prolog recibió un gran empuje en 1981, cuando el Instituto Japonés para la Nueva Generación de Tecnología Informática eligió a la programación lógica como su tecnología de software diferencial, y comenzó un proyecto para proveer la tecnología de hardware complementaria en la forma de máquinas de inferencia lógica rápidas (proyecto de ordenadores de quinta generación). En 1995, el lenguaje se normaliza con el correspondiente estándar ISO. En la actualidad Prolog se ha convertido en una herramienta de desarrollo de software práctica y de gran aceptación para la que se dispone de múltiples compiladores, tanto comerciales como de libre distribución. PROLOG El Prolog es el lenguaje emblemático del paradigma lógico. Su evolución no puede separarse de la historia misma del paradigma. El lenguaje Prolog no fue realmente diseñado como tal, sino que más bien fue evolucionando mayoritariamente en las Universidades de Marsella y Edimburgo, como una herramienta experimental de inteligencia artificial. Debido a la falta de una definición común, varios dialectos de Prolog evolucionaron. De ellos, el dialecto de Edimburgo es aceptado ampliamente como estándar. Desde entonces, el lenguaje Prolog ha sido implementado con diferentes versiones y desarrollado por distintos fabricantes, manteniendo la misma base del lenguaje, pero con pequeñas variantes y herramientas adicionales para facilitar la programación.

6 comentarios:

  1. hola, gracias por la informacion, me podrias auxiliar, sabras de un sistema basado en el paradigma logico??? te agradecere tu ayuda

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. MEJOR VISITA XVIDEOS :v

    ResponderEliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar