Download Fundamentos de la Programación Lógica

Document related concepts

Mercury (lenguaje) wikipedia , lookup

Transcript
Programación Lógica y Funcional
Fundamentos de la Programación Lógica
MTI. Eduardo Cruz Romero
¿Qué es la Programación Lógica?
• La programación lógica es un paradigma de
programación basado en la lógica de primer
orden.
y ¿Qué es la lógica de Primer Orden?
• También llamada lógica de predicados o calculo
de predicados, es un sistema formal diseñado
para estudiar la inferencia en los lenguajes de
primer orden. Los lenguajes de primer orden son
a
su
vez,
lenguajes
formales
como
cuantificadores que alcanza solo a variables del
individuo,
con predicados y funciones cuyos
argumentos son solo constantes o variables del
individuo.
Predicados (1/2)
• Un predicado es una expresión lingüística que
puede conectarse con una o varias otras
expresiones para formar una oración.
“Marte es un planeta”
Predicados (2/2)
• En la lógica de primer orden, los predicados son
tratados como funciones. Una función es un
proceso que recibe un conjunto de cosas, las
procesa, y devuelve como resultado una única
cosa. A las cosas que entran a las funciones se les
llama argumentos, y a las cosas que salen,
valores o imágenes.
Clausulas de Horn
• Una Clausula de Horn es una secuencia de
literales que contiene a lo sumo un literal
positivo. Al escribirla en notación de Kowalski
tendrá una de estas cuatro formas:
Semántica de los Programas Lógicos
• Semántica proviene de un vocabulario griego que
puede traducirse como “significativo”. Se trata
de aquello perteneciente o relativo a la
significación de las palabras. Por extensión, se
conoce como semántica al estudio del significado
de los signos lingüísticos y de sus combinaciones.
Semántica Lógica
• La semántica lógica, por otra parte, se encarga
del análisis de los problemas lógicos de
significación, para esto estudia los (paréntesis,
cuantificación, etc.), las variables y constantes,
los predicados y las reglas.
Semántica de Prolog
• El programa Prolog se compone de unos hechos
(datos) y un conjunto de reglas, es decir,
relaciones entre objetos de la base de datos,
Prolog tiene una sintaxis y semántica simples.
Solo busca relaciones entre los objetos creados,
las variables y las listas, que son sus estructuras
básicas.
Representación Clausada del Conocimiento
• La representación del conocimiento y el
razonamiento es un área de la inteligencia
artificial
cuyo
objetivo
fundamental
es
representar el conocimiento de una manera que
facilite la inferencia (sacar conclusiones) a partir
de dicho conocimiento.
Todos los colibrís son aves.
Este colibrí es ave.
(Vx) C(x) -> A(x)
Consulta de una Base de Datos de Clausulas
• La forma general de una consulta consiste en una
secuencia de predicados que deben ser
satisfechos
conjuntamente
en
el
orden
especificado.
Espacio de Búsqueda
• Cuando se resuelve un problema, se busca la
mejor solución entre un conjunto de posibles
soluciones, al conjunto de todas las posibles
soluciones a un problema concreto se llama
espacio de búsqueda. Cada punto en el espacio
de búsqueda representa una posible solución.
Cada posible solución se le puede asociar un valor
que indicara como de buena es la solución para el
problema.
Referencias
• https://es.scribd.com/doc/48831859/Logica-de-Primer-Orden
• http://www.amzi.com/articles/code07_whitepaper.pdf
• http://www.uv.mx/aguerra/documents/2011-mpi-02.pdf
• http://gpd.sip.ucm.es/jaime/pl/sld.pdf
• https://prezi.com/6zmwikpt9zvr/copy-of-semantica-de-los-programas-logicos/