viernes, 17 de julio de 2015

PROLOG


ESCUELA SUPERIOR POLITÉCNICA AGROPECUARIA DE MANABÍ
MANUEL FÉLIX LÓPEZ


CARRERA INFORMÁTICA

    SEMESTRE  SÉPTIMO           PERIODO  ABR 2015/SEP 2015

TEMA:

PROLOG


MATERIA:

INTELIGENCIA ARTIFICIAL II


AUTOR:

CARLOS A. ZAMBRANO VIDAL

FACILITADORA:

ING. HIRAIDA SANTANA



CALCETA,  JULIO 2015


INTRODUCCIÓN
La inteligencia artificial y la lingüística computacional está asociado a un lenguaje de programación lógica que es orientado a la especificación de relaciones para responder consultas, es por esto que en la presente se realiza una investigación de estas especificaciones que dan a conocer lo que es prolog, sabiendo que en el área de inteligencia artificial es muy utilizado debido a su eficiencia, para esto en el presente informe se presenta información que es de mucha ayuda para entender el lenguaje prolog y cada una de sus funciones.
PROLOG
Prolog es un lenguaje de programación simple, pero poderoso. Se basa en nociones matemáticas de relaciones de inferencia. Es un lenguaje declarativo e interpretado, esto quiere decir que el lenguaje se usa para representar conocimientos sobre un determinado dominio y las relaciones entre objetos de ese dominio.
Un programa en ProLog consiste de una base de hechos de relaciones lógicas y detalles que se cumplen para la aplicación. Dicha base de datos no tiene una estructura impuesta, ni un procedimiento o clase principal. Escribir un programa en ProLog consiste en declarar el conocimiento disponible acerca de los objetivos, además de sus relaciones y sus reglas. En lugar de correr en un programa para obtener una solución, se hace una pregunta, el programa revisa la base de datos para encontrar la solución a la pregunta. Si existe más de una solución, ProLog hace backtracking para encontrar soluciones distintas. El propio sistema es el que deduce las respuestas a las preguntas que se le plantean, dichas respuestas las deduce del conocimiento obtenido por el conjunto de reglas dadas. La ejecución de ProLog consiste en una búsqueda en profundidad de un árbol conteniendo todas las posibles soluciones. Para cada una de ellas se evaluará su validez. La estructura de un programa en ProLog es lógica y directa.
Prolog está orientado a la resolución de problemas mediante el cálculo de predicados, basado en:
·         Preguntas a la base de datos.
·         Pruebas matemáticas.
El programa prolog específica cómo debe ser la solución, en vez de dar el algoritmo para su resolución. La solución se obtiene mediante búsqueda aplicando la lógica de predicados que se compone de unos hechos (datos) y un conjunto de reglas, es decir, relaciones entre objetos de la base de datos.
La ejecución del programa cargado en memoria consiste en realizar una pregunta de forma interactiva: el intérprete generará por inferencia los resultados que se deducen a partir del contenido de la base de datos.
Prolog tiene una sintaxis y semántica simples. Sólo busca relaciones entre los objetos creados, las variables y las listas, que son sus estructuras básicas.
CARACTERÍSTICAS DEL LENGUAJE PROLOG
1) Basado en lógica y programación declarativa.
2) No se especifica cómo debe hacerse, sino qué debe lograrse.
3) Una característica importante en ProLog y que lo diferencia de otros lenguajes de programación, es que una variable sólo puede tener un valor mientras se cumple el objetivo.
4) El programador se concentra más en el conocimiento que en los 
algoritmos.
-¿Qué es conocido? (hechos, reglas)
-¿Qué preguntar? (Cómo resolverlo)
En ProLog, se llega a una solución infiriéndola desde algo ya conocido. 

OBJETOS DE DATOS
Tipos de datos primitivos: variables y constantes:
§  Enteros
§  Reales
§  Caracteres
Los identificadores con minúscula representan hechos, los que van con mayúscula variables. El alcance de una variable es la regla donde aparece.
·         Tipos de datos estructurados:
§  Átomos: constantes y variables de cadena.
§  Listas, representadas entre [ ].
·         Tipos definidos por el usuario. Las reglas para definir relaciones pueden actuar como tipos de usuario.
REPRESENTACIÓN DE ALMACENAMIENTO
Las reglas y hechos son almacenadas en memoria como listas enlazadas. La ejecución de prolog consiste en una búsqueda en profundidad de un árbol conteniendo todas las posibles soluciones. Para cada una de ellas se evaluará su corrección. La búsqueda se puede hacer más eficiente mediante la poda del árbol de búsqueda (corte).

CONTROL DE SECUENCIA
·         Expresiones, operaciones aritméticas y operadores relacionales. Not ().
·         Enunciados
§  Hechos, relaciones que se expresan en una consulta. Son tuplas con un nombre de predicado y unos argumentos.
§  Reglas, implicaciones que se expresan en una operación consult.
§  Preguntas, sucesión de términos que finalizan con un punto.
§  Cortes, (!), fuerza el retroceso en la búsqueda. Esto puede impedir que se encuentren ciertas soluciones, pero puede hacer más eficiente la búsqueda.
·         Entrada y salida.

SUBPROGRAMAS Y GESTIÓN DE ALMACENAMIENTO
Prolog tiene dos modos:
·         Modo consulta, se introducen nuevas relaciones (hechos) en el almacenamiento dinámico de la base de datos.
·         Modos pregunta, se ejecuta un intérprete basado en pilas para evaluar las preguntas del usuario.

CONCLUSIONES
Prolog es un lenguaje de programación muy utilizado debido a su eficiencia en el área de inteligencia artificial, funcionando como una base de hechos de relaciones lógicas y detalles que se cumplen para la aplicación. Luego de hacer el estudio se dan a notar factores que hacen que este lenguaje de programación especifique cómo dar solución, en vez de dar el algoritmo para su resolución. La solución se obtiene mediante búsqueda aplicando hechos (datos) y un conjunto de reglas.
BIBLIOGRAFÍAS
Desarrollador web. 2010. Prolog. (En línea). Consultado, 16 jul 2015. Formato HTML. Disponible en: http://www.desarrolloweb.com/
Russell, s.2008.inteligencia artificial un enfoque moderno. Segunda edición. Pearson education. Madrid-España.



No hay comentarios:

Publicar un comentario