sábado, 17 de noviembre de 2018

Lenguaje prolog






  
 LENGUAJE PROLOG
UNIVERSIDAD AZTECA
MATERIA: INTELIGENCIA ARTIFICIAL
TEMA: LENGUAJE PROLOG
CATEDRÁTICO: JESÚS GUSTAVO ABARCA RUIZ
7º A
INGENIERÍA EN SISTEMAS COMPUTACIONALES
 ALUMNA: ANA LÓPEZ DÍAZ

18/11/2018







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.





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.

  • Los motores de inferencia poseen algunos límites.




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










































No hay comentarios:

Publicar un comentario