PDF de programación - Programación Lógica

Imágen de pdf Programación Lógica

Programación Lógicagráfica de visualizaciones

Publicado el 21 de Agosto del 2018
241 visualizaciones desde el 21 de Agosto del 2018
815,9 KB
36 paginas
Creado hace 3a (31/10/2016)
PROGRAMACIÓN

LÓGICA

Luis Eduardo Martín De La Peña
Anni Alejandra Piragauta Urrea

CONTENIDO

1.Introducción

1. Paradigma de programación

2. Historia

3. Filosofía del paradigma.

2.Programación Lógica

1. ¿Qué es?

2. Conceptos claves

3.Ventajas y Desventajas

4.Lenguajes de Programación

5.Aplicaciones

INTRODUCCIÓN

Programación Lógica

PARADIGMA DE PROGRAMACIÓN

Indica un método mediante el cual resolver uno a

varios problemas claramente delimitados.

Representa un enfoque particular o filosofía para

diseñar soluciones.

“es el conjunto de principios subyacentes que dan

forma al estilo de un lenguaje de programación. ”

Concepts, Techniques, and Models of Computer

Programming.

Programación Lógica

Imperativo vs. Declarativo

Imperativo

Declarativo

¿Cómo resolver el

problema?

¿Qué hacer para

resolver el problema?

● Programación modular
● Programación

estructurada

● Orientada a eventos

● Funcional
● Lógica
● Programación reactiva
● Lenguajes descriptivos

Programación Lógica

HISTORIA

1930

Cálculos

Lambda

1969

1972

Finales

1970

Forma Causal

PROLOG

SLD - resolution

de la Lógica

Alain Colmerauer

Robert Kowalski

Alonzo Church

Cordell Green

Philippe Roussel

Programación Lógica

FILOSOFÍA DEL PARADIGMA

Aplicación de reglas de la lógica

para inferir conclusiones a partir de

datos.

Programación Lógica

PROGRAMACIÓN LÓGICA

Programación Lógica

¿Qué es?

Paradigma de programación basado en la lógica de primer orden.

Se puede ver como una deducción controlada.

Programa

Lógica

Control

Determina las

soluciones producidas

Formas alternativas de

ejecutar .

Lógica

Programación Lógica

Lógica Proposicional

• También llamada lógica de enunciados: toma como elemento básico las frases

declarativas simples o proposiciones.

• Proposiciones: Elementos de una frase que constituyen por sí solos una unidad de

comunicación de conocimientos y pueden ser considerados verdaderos o falsos.

• Simple: “Pepito es humano”.

• Compuesta: “Pepito es hombre y pepita es mujer”

Programación Lógica

Lógica Proposicional

Sentencia
Sentencia Atómica
Símbolo Proposicional
Sentencia Compleja

Sentencia Atómica | Sentencia Compleja
Verdadero | Falso | Símbolo Proposicional
P|Q|R|...
¬Sentencia

| (Sentencia ^ Sentencia)
| (Sentencia v Sentencia)
| (Sentencia Sentencia)
| (Sentencia Sentencia)

P

falso
falso

verdadero
verdadero

Q

falso

verdadero

falso

verdadero

¬P

verdadero
verdadero

falso
falso

P ^ Q

falso
falso
falso

verdadero

P v Q

falso

verdadero
verdadero
verdadero

P Q

P Q

verdadero
verdadero

falso

verdadero

falso
falso

verdadero

verdadero

Programación Lógica

Lógica de Primer orden

• También llamada lógica de predicados: es un sistema deductivo basado en un

Lenguaje Lógico Matemático formal.

• Incluye proposiciones lógicas, predicados y cuantificadores.

• Más expresiva de la Lógica proposicional.

• ¿Qué se afirma? (predicado o relación)

• ¿De quién se afirma? (objeto)

Programación Lógica

Lógica de Primer orden

Sentencia

Sentencia Atómica
| (Sentencia Conectiva Sentencia)
| Cuantificador Variable … Sentencia
| ¬Sentencia

Sentencia Atómica
Término

Conectiva
Cuantificador
Variable
Predicado
Función

Predicado (Término...) | Término = Término
Función(Término)
| Constante | Variable
^ |v| |
¬Sentencia
a | x | s | …
TieneColor | EstáLloviendo | ...
Hombre | Humano | Mujer | ...

Programación Lógica

Cláusulas de Horn

- Alfred Horn (1951)

Secuencia de literales que contiene a lo sumo uno de sus literales positivos (disyunción de

literales).

Cláusula ‘definite’: Cláusula de Horn con exactamente un literal positivo.

Hecho: Cláusula ‘definite’ sin literales negativos.

Cláusula objetivo: Sin ningún literal positivo. (consulta)

antecedente -> consecuente

Se escribe primero el consecuente luego el antecedente.

Programación Lógica

Cláusulas de Horn - Ejemplo

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

Programación Lógica

Resolución SLD

- Robert Kowalski (Finales 70’s)

SLD (Selective Linear Definite clause resolution) Es un método de prueba por refutación

que emplea el algoritmo de unificación como mecanismo de base y permite la extracción

de respuestas.

El antecedente puede ser una conjunción de condiciones que se denomina secuencia de

objetivos. Todos los objetivos terminan su ejecución en éxito ("verdadero"), o en fracaso

("falso").

Unificación: Cada objetivo determina un subconjunto de cláusulas susceptibles de ser

ejecutadas. Cada una de ellas se denomina punto de elección.

Programación Lógica

Backtracking

Programación Lógica

CONCEPTOS CLAVES

Hecho: Declaración, cláusula o proposición cierta o falsa, el hecho establece una relación

entre objetos y es la forma más sencilla de sentencia

“Pepito es Humano”

Programación Lógica

CONCEPTOS CLAVES

Regla: Implicación o inferencia lógica que deduce nuevo conocimiento, la regla

permite definir nuevas relaciones a partir de otras ya existentes

“x es mortal si x es humano”

Programación Lógica

CONCEPTOS CLAVES

Consulta: Se especifica el problema, la proposición a demostrar o el objetivo.

Hecho

Regla

Programación Lógica

VENTAJAS Y DESVENTAJAS

Programación Lógica

VENTAJAS

• Puede mejorarse la eficiencia modificando el

componente de control sin tener que modificar la lógica

del algoritmo.

• Relaciones multipropósito.

• Simplicidad.

• Generación rápida de prototipos e ideas complejas.

• Sencillez en la implementación de estructuras complejas.

• Potencia.

Programación Lógica

DESVENTAJAS

• Altamente ineficiente.

• Pocas áreas de aplicación

• No existen herramientas de depuración efectivas.

• En problemas reales, es poco utilizado.

• Si el programa no contiene suficiente información

para contestar una consulta responde false.

Programación Lógica

LENGUAJES DE
PROGRAMACIÓN

Programación Lógica

PROLOG

• Alain Colmerauer y Philippe Roussel (Finales

de los 70’s)

• Proviene del francés PROgrammation en

LOGique.

• Producción interpretada



Se basa en Lógica de primer orden

• Es declarativo

• Backtracking

Programación Lógica

Mercury

• Fergus Henderson, Thomas Conway y Zoltan

Somogyi (1995)

• Sintaxis parecida a PROLOG

• Diseñado para resolver “aplicaciones del mundo

real” de forma robusta.

• Soporta polimorfismo

• Un programa escrito en Mercury es más rápido que

uno equivalente realizado en Prolog.

Programación Lógica

OTROS LENGUAJES

• CLAC(Logical Composition with the

Assistance of Computers)

• Gödel

• Curry

• Ace



PALs

• Actor Prolog

• CLP (FD)

• CSP (Constraint

Satisfaction Problem)





Lambda Prolog

Logtalk

• Alma-0

Programación Lógica

EJEMPLOS - PROLOG

Programación Lógica

EJEMPLOS - PROLOG

13 .

Programación Lógica

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).

Programación Lógica

EJEMPLOS - PROLOG

Programación Lógica

APLICACIONES DEL

PARADIGMA

Programación Lógica

APLICACIONES

• Desarrollo de aplicaciones de inteligencia

artificial.

• Prueba de teoremas

• Construcción de Sistemas expertos

• Procesamiento del lenguaje natural

• Consultas lógicas basadas en reglas

• Búsquedas en bases de datos



Sistemas de control de voz

Programación Lógica

Análisis de lenguaje natural

Programación Lógica

REFERENCIAS

1. Programación lógica

○ http://programacion-programacionlogica.blogspot.com.co/
○ https://en.wikipedia.org/wiki/Logic_programming
○ https://www.youtube.com/watch?v=SykxWpFwMGs

2. Lógica 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/

Programación Lógica

GRACIAS

Programación Lógica
  • Links de descarga
http://lwp-l.com/pdf13102

Comentarios de: Programación Lógica (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad