LENGUAJE PROLOG
UNIVERSIDAD AZTECA
MATERIA: INTELIGENCIA ARTIFICIAL
TEMA: LENGUAJE PROLOG
CATEDRÁTICO: JESÚS GUSTAVO ABARCA RUIZ
7º A
INGENIERÍA EN SISTEMAS COMPUTACIONALES
INTRODUCCIÓN
lenguaje prolog es un lenguaje de programación lógica es un
paradigma de los lenguajes de programación en el cual los programas se consideran como una serie de aserciones lógicas. El
programa especifica 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.
¿QUÉ ES PROLOG?
Prolog
es un lenguaje lógico, utilizado para programar en el campo de la inteligencia artificial. Sus características son bastante
peculiares ya que no sigue la filosofía estructurada ni la orientada a objetos.
Algunas de las cosas llamativas que podemos encontrar en el mismo es que no hay
bucles.
PERSPECTIVA DEL
LENGUAJE
El programa prolog 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 interprete 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.
Comentarios entre /*
*/.
UN EJEMPLO MÁS
EXTENSO
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
El
orden de evaluación es secuencial.
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,
implicaiones 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, nl y write.
EL LENGUAJE SE BASA
PRINCIPALMENTE EN:
Hechos algo que
siempre es verdadero.
Reglas algo que para
que sea verdadero se tienen que cumplir aquellas condiciones del cuerpo de la
regla.
CARACTERÍSTICAS DEL LENGUAJE PROLOG
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.
APLICACIÓN
Aplicaciones actuales
del Lenguaje PROLOG
Prolog se puede
utilizar para resolver, básicamente, cualquier tipo de problema.
Principalmente es
útil en la gestión de Juegos, en Inteligencia Artificial y Sistemas Expertos,
como lenguaje especialmente pensado para construir bases de conocimientos
basados en la lógica que forman parte importante de cualquier agente
inteligente, en la construcción de Compiladores e Intérpretes, en el
Reconocimiento del Lenguaje Natural.
VENTAJAS:
- · Habilidad para calcular de forma procedural. Las ventajas de la forma declarativa son claras (es más fácil pensar las soluciones y muchos detalles procedurales son resueltos automáticamente por el propio lenguaje) y podemos aprovecharlas.
·
Facilidad
para programar ya que se pueden escribir programas rápidamente con pocos
errores originando programas claramente legibles, aun si no se conoce bien el lenguaje.
·
Prolog
utiliza un mecanismo de búsqueda independiente de la base de hechos.
Es una buena
estrategia puesto que garantiza el proceso de todas las posibilidades.
DESVENTAJAS:
- Prolog algunas veces es incapaz de reconocer que un problema es inaplicable o insuficiente. Si el programa no contiene suficiente información para contestar una consulta, es incapaz de reconocerlo y responde no.
CONCLUSIÓN
El lenguaje prolog es un lenguaje de programación diferente a los
demás lenguajes su solución al problema lo resuelve mediante la descripción estructurada de datos, sus relaciones y objetivos por ser un lenguaje declarativo; y el
proceso por el cual ejecuta la tarea no se establece de forma explícita en el programa,
sino que se determina por el proceso de traducción del lenguaje. es un
lenguaje que nos prepara para la interacción entre máquina y humano, ya que por
medio de este podemos ingresar datos a la base de conocimiento; con hechos y
relaciones además de aplicar reglas, para empezar a consultarle a la máquina y
nos devuelva una respuesta o resultado.
GLOSARIO
Tuplas: La tupla es un tipo de dato secuencial. Sirve
para agrupar, como si fueran un único valor, varios valores.
Bucles: En programación, un bucle o instrucción
de control repetitiva (o iterativa) permite ejecutar una o más
instrucciones varias veces, es decir, permite ejecutar un bloque de
instrucciones repetidamente, escribiéndolas una sola vez en el algoritmo (o programa ) reduciendo de este modo el código del mismo.
BIBLIOGRAFÍA
https://www.somosbinarios.es/prolog-el-lenguaje-de-programacion-logico/
http://computerscienceusgp.blogspot.com/2013/07/aplicaciones-del-lenguaje-prolog.html
https://desarrolloweb.com/articulos/1573.php







