LGICA
Luis Eduardo Martn De La Pea
Anni Alejandra Piragauta Urrea
CONTENIDO
1.Introduccin
1. Paradigma de programacin
2. Historia
3. Filosofa del paradigma.
2.Programacin Lgica
1. Qu es?
2. Conceptos claves
3.Ventajas y Desventajas
4.Lenguajes de Programacin
5.Aplicaciones
INTRODUCCIN
Programacin Lgica
PARADIGMA DE PROGRAMACIN
Indica un mtodo mediante el cual resolver uno a
varios problemas claramente delimitados.
Programacin Lgica
Imperativo vs. Declarativo
Imperativo Declarativo
Programacin Lgica
HISTORIA
Finales
1930 1969 1972 1970
Clculos Forma Causal PROLOG SLD - resolution
Lambda de la Lgica Alain Colmerauer Robert Kowalski
Alonzo Church Cordell Green Philippe Roussel
Programacin Lgica
FILOSOFA DEL PARADIGMA
Programacin Lgica
PROGRAMACIN LGICA
Programacin Lgica
Qu es?
Paradigma de programacin basado en la lgica de primer orden.
Se puede ver como una deduccin controlada.
Programacin Lgica
Lgica Proposicional
Tambin llamada lgica de enunciados: toma como elemento bsico las frases
declarativas simples o proposiciones.
Proposiciones: Elementos de una frase que constituyen por s solos una unidad de
comunicacin de conocimientos y pueden ser considerados verdaderos o falsos.
Programacin Lgica
Lgica Proposicional
Sentencia Sentencia Atmica | Sentencia Compleja
Sentencia Atmica Verdadero | Falso | Smbolo Proposicional
Smbolo Proposicional P|Q|R|...
Sentencia Compleja Sentencia
| (Sentencia ^ Sentencia)
| (Sentencia v Sentencia)
| (Sentencia Sentencia)
| (Sentencia Sentencia)
P Q P P^Q PvQ P Q P Q
falso falso verdadero falso falso verdadero verdadero
falso verdadero verdadero falso verdadero verdadero falso
verdadero falso falso falso verdadero falso falso
verdadero verdadero falso verdadero verdadero verdadero verdadero
Programacin Lgica
Lgica de Primer orden
Tambin llamada lgica de predicados: es un sistema deductivo basado en un
Lenguaje Lgico Matemtico formal.
Programacin Lgica
Lgica de Primer orden
Sentencia Sentencia Atmica
| (Sentencia Conectiva Sentencia)
| Cuantificador Variable Sentencia
| Sentencia
Programacin Lgica
Clusulas de Horn - Alfred Horn (1951)
Secuencia de literales que contiene a lo sumo uno de sus literales positivos (disyuncin de
literales).
Programacin Lgica
Clusulas de Horn - Ejemplo
Programacin Lgica
Resolucin SLD - Robert Kowalski (Finales 70s)
SLD (Selective Linear Definite clause resolution) Es un mtodo de prueba por refutacin
que emplea el algoritmo de unificacin como mecanismo de base y permite la extraccin
de respuestas.
Programacin Lgica
Backtracking
Programacin Lgica
CONCEPTOS CLAVES
Hecho: Declaracin, clusula o proposicin cierta o falsa, el hecho establece una relacin
entre objetos y es la forma ms sencilla de sentencia
Pepito es Humano
Programacin Lgica
CONCEPTOS CLAVES
Regla: Implicacin o inferencia lgica que deduce nuevo conocimiento, la regla
permite definir nuevas relaciones a partir de otras ya existentes
x es mortal si x es humano
Programacin Lgica
CONCEPTOS CLAVES
Consulta: Se especifica el problema, la proposicin a demostrar o el objetivo.
Hecho
Regla
Programacin Lgica
VENTAJAS Y DESVENTAJAS
Programacin Lgica
VENTAJAS
Programacin Lgica
DESVENTAJAS
Altamente ineficiente.
Pocas reas de aplicacin
No existen herramientas de depuracin efectivas.
En problemas reales, es poco utilizado.
Si el programa no contiene suficiente informacin
para contestar una consulta responde false.
Programacin Lgica
LENGUAJES DE
PROGRAMACIN
Programacin Lgica
PROLOG
Programacin Lgica
Mercury
Fergus Henderson, Thomas Conway y Zoltan
Somogyi (1995)
Sintaxis parecida a PROLOG
Diseado para resolver aplicaciones del mundo
real de forma robusta.
Soporta polimorfismo
Un programa escrito en Mercury es ms rpido que
uno equivalente realizado en Prolog.
Programacin Lgica
OTROS LENGUAJES
CLP (FD)
CLAC(Logical Composition with the
Assistance of Computers) CSP (Constraint
Gdel Satisfaction Problem)
Curry Lambda Prolog
Ace
Logtalk
PALs
Actor Prolog Alma-0
Programacin Lgica
EJEMPLOS - PROLOG
Programacin Lgica
EJEMPLOS - PROLOG
13 .
Programacin Lgica
EJEMPLOS - Mercury
:- module fib.
:- interface.
:- import_module io.
:- implementation.
:- import_module int.
main(!IO) :-
fib(17,X),
io.write_string("fib(17, ", !IO),
io.write_int(X, IO),
io.write_string(")\n, !IO).
Programacin Lgica
EJEMPLOS - PROLOG
Programacin Lgica
APLICACIONES DEL
PARADIGMA
Programacin Lgica
APLICACIONES
Desarrollo de aplicaciones de inteligencia
artificial.
Prueba de teoremas
Construccin de Sistemas expertos
Procesamiento del lenguaje natural
Consultas lgicas basadas en reglas
Bsquedas en bases de datos
Sistemas de control de voz
Programacin Lgica
Anlisis de lenguaje natural
Programacin Lgica
REFERENCIAS
1. Programacin lgica
http://programacion-programacionlogica.blogspot.com.co/
https://en.wikipedia.org/wiki/Logic_programming
https://www.youtube.com/watch?v=SykxWpFwMGs
2. Lgica de primer orden
https://drive.google.com/file/d/0B7IRdmOoUVf5RFRBN2RJdDNlNm8/view
https://drive.google.com/drive/u/1/folders/0B7IRdmOoUVf5V2pxal81X3NQc2M
3. PROLOG
http://www.anselm.edu/homepage/mmalita/culpro/index.html
https://es.wikipedia.org/wiki/Prolog
4. Mercury
https://mercurylang.org/
Programacin Lgica
GRACIAS
Programacin Lgica