Anda di halaman 1dari 36

PROGRAMACIN

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.

Representa un enfoque particular o filosofa para


disear soluciones.

es el conjunto de principios subyacentes que dan


forma al estilo de un lenguaje de programacin.

Concepts, Techniques, and Models of Computer


Programming.

Programacin Lgica
Imperativo vs. Declarativo

Imperativo Declarativo

Cmo resolver el Qu hacer para


problema? resolver el problema?

Programacin modular Funcional


Programacin Lgica
estructurada Programacin reactiva
Orientada a eventos Lenguajes descriptivos

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

Aplicacin de reglas de la lgica


para inferir conclusiones a partir de
datos.

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.

Programa Lgica Control

Determina las Formas alternativas de


soluciones producidas ejecutar Lgica .

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.

Simple: Pepito es humano.


Compuesta: Pepito es hombre y pepita es mujer

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.

Incluye proposiciones lgicas, predicados y cuantificadores.

Ms expresiva de la Lgica proposicional.


Qu se afirma? (predicado o relacin)
De quin se afirma? (objeto)

Programacin Lgica
Lgica de Primer orden
Sentencia Sentencia Atmica
| (Sentencia Conectiva Sentencia)
| Cuantificador Variable Sentencia
| Sentencia

Sentencia Atmica Predicado (Trmino...) | Trmino = Trmino


Trmino Funcin(Trmino)
| Constante | Variable
Conectiva ^ |v| |
Cuantificador Sentencia
Variable a|x|s|
Predicado TieneColor | EstLloviendo | ...
Funcin Hombre | Humano | Mujer | ...

Programacin Lgica
Clusulas de Horn - Alfred Horn (1951)

Secuencia de literales que contiene a lo sumo uno de sus literales positivos (disyuncin de
literales).

Clusula definite: Clusula de Horn con exactamente un literal positivo.


Hecho: Clusula definite sin literales negativos.
Clusula objetivo: Sin ningn literal positivo. (consulta)

antecedente -> consecuente

Se escribe primero el consecuente luego el antecedente.

Programacin Lgica
Clusulas de Horn - Ejemplo

"A es hija de B si A es mujer y B es padre de A"

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.

El antecedente puede ser una conjuncin de condiciones que se denomina secuencia de


objetivos. Todos los objetivos terminan su ejecucin en xito ("verdadero"), o en fracaso
("falso").

Unificacin: Cada objetivo determina un subconjunto de clusulas susceptibles de ser


ejecutadas. Cada una de ellas se denomina punto de eleccin.

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

Puede mejorarse la eficiencia modificando el


componente de control sin tener que modificar la lgica
del algoritmo.
Relaciones multipropsito.
Simplicidad.
Generacin rpida de prototipos e ideas complejas.
Sencillez en la implementacin de estructuras complejas.
Potencia.

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

Alain Colmerauer y Philippe Roussel (Finales


de los 70s)
Proviene del francs PROgrammation en
LOGique.
Produccin interpretada
Se basa en Lgica de primer orden
Es declarativo
Backtracking

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.

:- pred main(io::di, io::uo) is det.

:- implementation.
:- import_module int.

:- pred fib(int::in, int::out) is det.

fib(X,Y):- (if X =< 2


then Y = 1
else fib(X - 1, Y1), fib(X - 2, Y2), Y = Y1
+ Y2
).

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

Anda mungkin juga menyukai