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.
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.