lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases...
Transcript of lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases...
![Page 1: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/1.jpg)
Programación
lógicaAngel David Corredor
Nicolás Gómez Gutiérrez
María Alejandra Robayo
Lenguajes de Programación
Universidad Nacional de Colombia
Presentada el: 19 de Junio de 2019
![Page 2: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/2.jpg)
Contenido
✓ Clasificación de lenguajes de programación✓ Filosofía del paradigma✓ Conceptos claves✓ Ventajas y desventajas✓ Lenguajes de programación lógica✓ Ejemplos en distintos lenguajes✓ Aplicaciones de este paradigma✓ Referencias/Bibliografía
![Page 3: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/3.jpg)
Lenguajes de programación
Imperativos Declarativos
Clasificación
¿Cómo llegar?Declaración de algoritmos que
solucionan el problema.
¿A dónde debo llegar?Descripción del problema.Utilización de inferencia.
![Page 4: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/4.jpg)
Lenguajes de programación
Imperativos
Orientados a Objetos
Por Procedimientos
Procesamiento En Paralelo
Declarativos
Funcionales
Lógicos
Relacionales
Funcionales
Lógicos
Relacionales
Clasificación
![Page 5: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/5.jpg)
Filosofía del paradigma
"Modelar problemas por medio de la abstracción, utilizando un sistema de lógica
formal que permite llegar a una conclusión por medio de hechos y reglas".
![Page 6: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/6.jpg)
● EsAve(pingüino)● EsAve(paloma)● EsAve(canario)● EsAve(loro)
Filosofía
![Page 7: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/7.jpg)
Filosofía del paradigma
No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que
el lenguaje de programación lógica lo resuelva a través de deducción controlada.
![Page 8: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/8.jpg)
EsAve(X) → Vuela(X)● EsAve(pingüino)● EsAve(paloma)● EsAve(canario)● EsAve(loro)
Filosofía
![Page 9: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/9.jpg)
EsAve(X) → Vuela(X)● EsAve(pingüino)● EsAve(paloma)● EsAve(canario)● EsAve(loro)
Filosofía
?¿
![Page 10: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/10.jpg)
Filosofía del paradigma
¿Qué problema resuelve?
Dado un problema S, resuelve si la afirmación A es solución o no de S (o en qué casos lo es).
![Page 11: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/11.jpg)
EsAve(X) → Vuela(X)
EsAve(X) ∧ no(X, pingüino) → Vuela(X)
● EsAve(pingüino)● EsAve(paloma)● EsAve(canario)● EsAve(loro)
Filosofía
![Page 12: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/12.jpg)
"Un programa lógico consta de un conjunto de fórmulas lógicas que expresan propiedades
satisfechas por un cierto problema."
Filosofía del paradigma
![Page 13: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/13.jpg)
● Lógica proposicional.
● Lógica de primer orden.
● Lógica de orden superior.
Conceptos clave
![Page 14: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/14.jpg)
Lógica proposicional
Conceptos clave
Proposición → Proposición Atómica | Proposición Compleja
Proposición atómica → Verdadero | Falso | Símbolo Proposicional
Símbolo proposicional → P | Q | R | …
Proposición compleja → ¬ Proposición
| ( Proposición ∧ Proposición )
| ( Proposición ∨ Proposición )
| ( Proposición ⇒ Proposición )
| ( Proposición ⇔ Proposición )
![Page 15: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/15.jpg)
Conceptos clave
Ejemplos:
5 + 20
Falso ∧ ( P ∨ Q )
( P ∧ Q ) ⇒ ¬ R
S
Lógica proposicional
![Page 16: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/16.jpg)
Lógica proposicional
Conceptos clave
Ejemplos:
5 + 20
Falso ∧ ( P ∨ Q )
( P ∧ Q ) ⇒ ¬ R
S
![Page 17: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/17.jpg)
Conceptos clave
Ejemplos:
5 + 20
Falso ∧ ( P ∨ Q ) Proposición compleja
( P ∧ Q ) ⇒ ¬ R Proposición compleja
S Proposición
Lógica proposicional
![Page 18: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/18.jpg)
Lógica de primer orden
Conceptos clave
Extiende la lógica proposicional permitiendo además el uso de cuantificadores y declarar predicados sobre diferentes objetos.
![Page 19: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/19.jpg)
Lógica de primer orden
Extiende la lógica proposicional permitiendo además el uso de cuantificadores y declarar predicados sobre diferentes objetos.
Conceptos clave
¿Cuantificadores?
![Page 20: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/20.jpg)
Cuantificadores
Operador sobre un conjunto de individuos permitiendo construir proposiciones sobre conjuntos.
Conceptos clave
Símbolo Nombre Lectura
∀ Cuantificador universal. Para todo...
∃ Cuantificador existencial. Existe un...
∃! Cuantificador existencial único. Existe exactamente un...
![Page 21: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/21.jpg)
Lógica de primer orden
Extiende la lógica proposicional permitiendo además el uso de cuantificadores (∀ / ∃ / ∃!) y declarar predicados sobre diferentes objetos.
Conceptos clave
¿Predicados?
![Page 22: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/22.jpg)
Predicados
Funciones sobre objetos que se usan para expresar propiedades o relaciones entre éstos.
Conceptos clave
p : A → Ba → b = P( a )
![Page 23: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/23.jpg)
Predicados
Funciones sobre objetos que se usan para expresar propiedades o relaciones entre éstos.
Conceptos clave
p : A → Ba → b = P( a )
EsAve(x)
![Page 24: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/24.jpg)
Predicados
Funciones sobre objetos que se usan para expresar propiedades o relaciones entre éstos.
Conceptos clave
p : C x D → Bc, d → b = P( c, d )
![Page 25: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/25.jpg)
Predicados
Funciones sobre objetos que se usan para expresar propiedades o relaciones entre éstos.
Conceptos clave
p : C x D → Bc, d → b = P( c, d )
Padre( x, y ) Estudia( x, y )
![Page 26: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/26.jpg)
Lógica de primer orden
Extiende la lógica proposicional permitiendo además el uso de cuantificadores (∀ / ∃ / ∃!) y declarar predicados (propiedades) sobre diferentes objetos.
Conceptos clave
![Page 27: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/27.jpg)
Lógica de primer orden
Ejemplos:
∀x ( Ave( x ) ∧ ¬no( x, pingüino ) ⇒ Vuela(x) )
∃x ( Vuela( x ) ∧ ¬Ave( x ) )
∃! x ( Ave( x ) ∧ ¬Vuela( x ) )
∀y ∃! x ( Madre( x, y ) )
Conceptos clave
![Page 28: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/28.jpg)
Lógica de orden superior
Extiende la lógica de primer orden, permitiendo reducir conjuntos (como podrían ser las proposiciones) a una variable sobre la cual se pueden expresar nuevas proposiciones o hacer uso de los cuantificadores.
∀P ∀x (Px ∨ ¬Px)
Conceptos clave
![Page 29: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/29.jpg)
Cláusula de horn
Disyunción de literales con máximo un literal positivo.
¬p ∨ ¬q ∨ ¬r … ∨ u
( p ∧ q ∧ r ... ) ⇒ u
Conceptos clave
![Page 30: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/30.jpg)
Conceptos clave
Consultas
ReglasHechos
![Page 31: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/31.jpg)
Hecho
Expresión atómica que verifica una relación sobre un objeto.
Por ejemplo: El loro es un ave.
Conceptos clave
![Page 32: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/32.jpg)
Reglas
Conjunto de proposiciones lógicas que permiten inferir el valor de verdad de una
nueva proposición.
Por ejemplo: Todas las aves tienen alas. Todos los animales que tienen alas, ponen huevos.
Conceptos clave
![Page 33: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/33.jpg)
Consultas
Proposición construida con el propósito de ser demostrada o de encontrar el conjunto de
valores que la convierten verdadera.
Por ejemplo: ¿El loro pone huevos?
Conceptos clave
![Page 34: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/34.jpg)
Aridad
Es un número que indica el número de variables individuales que utiliza el predicado para formar una oración.
Conceptos clave
Oración Predicado Aridad
Juan pasó. pasó(Juan) 1
Juan pasó el parcial. pasó(Juan, Parcial) 2
Juan pasó el parcial de cálculo. pasó(Juan, Parcial, Cálculo) 3
![Page 35: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/35.jpg)
Nombre según aridad
Conceptos clave
Aridad Nombre del predicado
0 Enunciado
1 Propiedad
2 (o más) Relación
![Page 36: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/36.jpg)
Recursión
Especificación de un proceso basado en su propia definición.
Conceptos clave
Presenta 2 elementos clave:
● Caso base.● Llamado recursivo.
![Page 37: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/37.jpg)
Conceptos clave: Recursión
factorial(0, 1)factorial(N, R) -> R = N * factorial(N-1)
![Page 38: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/38.jpg)
Conceptos clave: Recursión
factorial(0, 1)factorial(N, R) -> R = N * factorial(N-1)
mcd(N, 0, 0)mcd(A, B, C) -> mcdAux(A, B, C)
mcdAux(N, 1, 1)mcdAux(A, B, C) -> A < B ⋀ mcd(B, A, C)mcdAux(A, B, C) -> mcd(B, A%B, C)
![Page 39: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/39.jpg)
Unificación
Proceso ejecutado sobre una variable para poder ser usada en la evaluación de una
proposición.
Conceptos clave
![Page 40: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/40.jpg)
Conceptos clave: Recursión
factorial(0, 1)factorial(N, R) -> N1 = N-1 ⋀ factorial(N1, R1) ⋀ R = N * R1
mcd(N, 0, 0)mcd(A, B, C) -> mcdAux(A, B, C)
mcdAux(N, 1, 1)mcdAux(A, B, C) -> A < B ⋀ mcd(B, A, C)mcdAux(A, B, C) -> AB = A%B ⋀ mcd(B, AB, C)
![Page 41: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/41.jpg)
Motor de Inferencia
Conceptos clave
![Page 42: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/42.jpg)
EsAve(X) → Vuela(X)
EsAve(X) ∧ no(X, pingüino) → Vuela(X)
● EsAve(pingüino)● EsAve(paloma)● EsAve(canario)● EsAve(loro)
Conceptos clave
![Page 43: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/43.jpg)
Motor de Inferencia
Conceptos clave
Vuela(X)
EsAve(X)
X = pingüino X = loro
X = canario X = paloma
no(X, pingüino)
Vuela(paloma)?
![Page 44: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/44.jpg)
Motor de Inferencia
Conceptos clave
Vuela(X)
EsAve(X)
X = pingüino X = loro
X = canario X = paloma
no(X, pingüino)
Vuela(paloma)?
![Page 45: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/45.jpg)
Motor de Inferencia
Conceptos clave
Vuela(X)
EsAve(X)
X = pingüino X = loro
X = canario X = paloma
no(X, pingüino)
Vuela(paloma)?
![Page 46: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/46.jpg)
Motor de Inferencia
Conceptos clave
Vuela(X)
EsAve(X)
X = pingüino X = loro
X = canario X = paloma
no(X, pingüino)
Vuela(paloma)?
![Page 47: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/47.jpg)
Motor de Inferencia
Conceptos clave
Vuela(X)
EsAve(X)
X = pingüino X = loro
X = canario X = paloma
no(X, pingüino)
Vuela(paloma)?
![Page 48: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/48.jpg)
Motor de Inferencia
Conceptos clave
Vuela(X)
EsAve(X)
X = pingüino X = loro
X = canario X = paloma
no(X, pingüino)
Vuela(paloma)?
![Page 49: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/49.jpg)
Motor de Inferencia
Conceptos clave
Vuela(X)
EsAve(X)
X = pingüino X = loro
X = canario X = paloma
no(X, pingüino)
Vuela(pingüino)?
![Page 50: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/50.jpg)
Motor de Inferencia
Conceptos clave
Vuela(X)
EsAve(X)
X = pingüino X = loro
X = canario X = paloma
no(X, pingüino)
Vuela(gaviota)?
![Page 51: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/51.jpg)
Ventajas y desventajas
![Page 52: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/52.jpg)
Ventajas y desventajas
Abstracción del problema. ¿Ventaja o desventaja?
![Page 53: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/53.jpg)
Ventajas y desventajas
✓ Descripciones independientes de la implementación (unificación semántica).
![Page 54: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/54.jpg)
Ventajas y desventajas
✓ Descripciones independientes de la implementación (unificación semántica).
✓ Expresión simple y precisa de los problemas.
![Page 55: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/55.jpg)
Ventajas y desventajas
✓ Descripciones independientes de la implementación (unificación semántica).
✓ Expresión simple y precisa de los problemas.
¿Y la resolución de ese problema?
![Page 56: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/56.jpg)
Ventajas y desventajas
✓ Descripciones independientes de la implementación (unificación semántica).
✓ Expresión simple y precisa de los problemas.
✓ Puede llevar a una reducción de la complejidad.
![Page 57: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/57.jpg)
Ventajas y desventajas
✓ Descripciones independientes de la implementación (unificación semántica).
✓ Expresión simple y precisa de los problemas.
✓ Puede llevar a una reducción de la complejidad.
✘ Puede llegar a ser extremadamente ineficiente.
![Page 58: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/58.jpg)
Ventajas y desventajas
✓ Descripciones independientes de la implementación (unificación semántica).
✓ Expresión simple y precisa de los problemas.
✓ Puede llevar a una reducción de la complejidad.
✘ Puede llegar a ser extremadamente ineficiente.
¿Se puede optimizar la resolución de un problema?
![Page 59: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/59.jpg)
Ventajas y desventajas
✓ Descripciones independientes de la implementación (unificación semántica).
✓ Expresión simple y precisa de los problemas.
✓ Puede llevar a una reducción de la complejidad.
✓ Permite su optimización sin modificar el código.
✘ Puede llegar a ser extremadamente ineficiente.
![Page 60: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/60.jpg)
Ventajas y desventajas
✓ Descripciones independientes de la implementación (unificación semántica).
✓ Expresión simple y precisa de los problemas.
✓ Puede llevar a una reducción de la complejidad.
✓ Permite su optimización sin modificar el código.
✘ Puede llegar a ser extremadamente ineficiente.
✘ Dificultad en su depuración.
![Page 61: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/61.jpg)
Ventajas y desventajas
✓ Descripciones independientes de la implementación (unificación semántica).
✓ Expresión simple y precisa de los problemas.
✓ Puede llevar a una reducción de la complejidad.
✓ Permite su optimización sin modificar el código.
✘ Puede llegar a ser extremadamente ineficiente.
✘ Dificultad en su depuración.✘ Pocas herramientas disponibles.
![Page 62: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/62.jpg)
Ventajas y desventajas
✓ Descripciones independientes de la implementación (unificación semántica).
✓ Expresión simple y precisa de los problemas.
✓ Puede llevar a una reducción de la complejidad.
✓ Permite su optimización sin modificar el código.
✘ Puede llegar a ser extremadamente ineficiente.
✘ Dificultad en su depuración.✘ Pocas herramientas disponibles.
¿A dónde se va la base de conocimiento?
![Page 63: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/63.jpg)
Ventajas y desventajas
✓ Descripciones independientes de la implementación (unificación semántica).
✓ Expresión simple y precisa de los problemas.
✓ Puede llevar a una reducción de la complejidad.
✓ Permite su optimización sin modificar el código.
✓ Base de conocimiento fácilmente escalable.
✘ Puede llegar a ser extremadamente ineficiente.
✘ Dificultad en su depuración.✘ Pocas herramientas disponibles.
![Page 64: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/64.jpg)
Ventajas y desventajas
✓ Descripciones independientes de la implementación (unificación semántica).
✓ Expresión simple y precisa de los problemas.
✓ Puede llevar a una reducción de la complejidad.
✓ Permite su optimización sin modificar el código.
✓ Base de conocimiento fácilmente escalable.
✘ Puede llegar a ser extremadamente ineficiente.
✘ Dificultad en su depuración.✘ Pocas herramientas disponibles.✘ Inferencia limitada por su base
de conocimiento.
![Page 65: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/65.jpg)
Ventajas y desventajas
✓ Descripciones independientes de la implementación (unificación semántica).
✓ Expresión simple y precisa de los problemas.
✓ Puede llevar a una reducción de la complejidad.
✓ Permite su optimización sin modificar el código.
✓ Base de conocimiento fácilmente escalable.
✘ Puede llegar a ser extremadamente ineficiente.
✘ Dificultad en su depuración.✘ Pocas herramientas disponibles.✘ Inferencia limitada por su base
de conocimiento.
¿Y las aplicaciones?
![Page 66: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/66.jpg)
Ventajas y desventajas
✓ Descripciones independientes de la implementación (unificación semántica).
✓ Expresión simple y precisa de los problemas.
✓ Puede llevar a una reducción de la complejidad.
✓ Permite su optimización sin modificar el código.
✓ Base de conocimiento fácilmente escalable.
✘ Puede llegar a ser extremadamente ineficiente.
✘ Dificultad en su depuración.✘ Pocas herramientas disponibles.✘ Inferencia limitada por su base
de conocimiento.✘ Áreas de aplicación muy
específicas.
![Page 67: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/67.jpg)
Lenguajes de programación lógica
● Prolog
● Gödel
○ polimorfismo
○ metaprogramación
○ altamente declarativo
● Datalog (python)
![Page 68: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/68.jpg)
Ejemplo en Datalog
esAve( pingüino ).
esAve( paloma ).
esAve( canario ).
esAve( loro ).
vuela(x) :- x \= pingüino , esAve(x).
?- vuela( paloma ).
![Page 69: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/69.jpg)
Lenguajes de programación
Lenguajes que integran la programación funcional y lógica:
● λProlog
○ Derivado de Prolog
○ tipos polimórficos
○ módulos
○ tipos de datos abstractos
● Mercury
● Babel
● Escher (go)
● Curry
○ basado en Haskell
![Page 70: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/70.jpg)
Ejemplo en curry
EsAve X | X == "pinguino" = True
| X == "paloma" = True
| X == "canario" = True
| X == "loro" = True
| otherwise = False
Vuela X | EsAve X && X /= "pinguino" = True
| otherwise = False
main = Vuela "paloma"
![Page 71: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/71.jpg)
Lenguajes de programación
Lenguajes que integran la programación orientada a objetos y lógica:
● Logtalk
○ extensión de prolog
● Visual Prolog
● Actor Prolog
![Page 72: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/72.jpg)
Ejemplo en Prolog
esAve( pingüino ).
esAve( paloma ).
esAve( canario ).
esAve( loro ).
vuela(X) :- esAve(X) , X \== pingüino .
?- vuela( paloma ).
![Page 73: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/73.jpg)
Ejemplo en Prolog
separarmitad(L,L1,L2) :- separarmitadaux(L,[],[],L1,L2).
separarmitadaux([],L1,L2,L1,L2).
separarmitadaux([H|T],L1,L2,LL1,LL2) :- separarmitadaux(T,L2,[H|L1],LL1,LL2).
fusion([],L,L).
fusion(L,[],L).
fusion([H1|T1],[H2|T2],[H1|L]) :- H1 =< H2, fusion(T1,[H2|T2],L).
fusion([H1|T1],[H2|T2],[H2|L]) :- H1 > H2, fusion([H1|T1],T2,L).
ordenar([],[]).
ordenar([A],[A]).
ordenar(L,O) :- separarmitad(L,L1,L2), ordenar(L1,O1), ordenar(L2,O2), fusion(O1,O2,O).
![Page 74: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/74.jpg)
Aplicaciones de este paradigma
● Sistemas Expertos● Comprobación automática de teoremas● Inteligencia Artificial
○ Sistemas basados en reglas○ Reconocimiento de Lenguaje Natural○ Búsqueda de patrones
![Page 75: lógica Programación...No se busca un algoritmo que resuelva el problema, se proporcionan las bases para que el lenguaje de programación lógica lo resuelva a través de deducción](https://reader030.fdocuments.co/reader030/viewer/2022040922/5e9c275cb2f60f719e2ac1b7/html5/thumbnails/75.jpg)
Bibliografía/Referencias
● http://ferestrepoca.github.io/paradigmas-de-programacion/proglogica/logica_teoria/introduccion.html
● http://www.amzi.com/articles/code07_whitepaper.pdf● https://upcommons.upc.edu/bitstream/handle/2117/93325/TJTM1de2.pdf● http://diposit.ub.edu/dspace/bitstream/2445/64643/1/memoria.pdf