PROGRAMACIÓN LÓGICA - GitHub Pages€¦ · paradigmas de programaciÓn paradigma de programacion...

Post on 25-Aug-2020

11 views 0 download

Transcript of PROGRAMACIÓN LÓGICA - GitHub Pages€¦ · paradigmas de programaciÓn paradigma de programacion...

PROGRAMACIÓNLÓGICA

TABLA DE CONTENIDO

CLASIFICACIÓN DE PARADIGMAS DE PROGRAMACIÓN

PARADIGMA DE PROGRAMACION

LOGICA

01

03

02

05

06

CONCEPTOS CLAVES

LENGUAJES DE PROGRAMACIÓN LÓGICA

APLICACIONES DE LA PROGRAMACIÓN LÓGICA

04 VENTAJAS Y DESVENTAJAS

CLASIFICACIÓN DE PARADIGMAS DE PROGRAMACIÓN

01

CLASIFICACIÓN

IMPERATIVOS

LENGUAJES DE PROGRAMACIÓN

DECLARATIVOS

CLASIFICACIÓN

IMPERATIVOS●●●

LENGUAJES DE PROGRAMACIÓN

DECLARATIVOS●●●

PARADIGMA DE PROGRAMACION LOGICA

02

FILOSOFIA DEL PARADIGMA

¿QUÉ TRATA DE RESOLVER?

ALGORITMO LÓGICA CONTROL

CARACTERÍSTICAS DEL PARADIGMA

CONCEPTOS CLAVES03

La mayoría de los lenguajes de programación lógica se basan en la teoría lógica de primer orden, aunque

también incorporan algunos comportamientos de orden superior.

LÓGICAPROPOSICIONAL

LÓGICA DE PRIMER ORDEN

LÓGICA DE ORDEN SUPERIOR

CONCEPTOS DE LÓGICA

PROPOSICIÓN LÓGICA SIMBÓLICACÁLCULO DE PREDICADOS

LÓGICA PROPOSICIONAL

EJEMPLOS

∧ ⇒

∧ ⇒

EJEMPLOS

∧ ⇒

∧ ⇒

REGLAS HECHOBASE DE

CONOCIMIENTO

LOGICA DE PRIMER ORDEN

Caracteristicas¿Qué son?

Utilidad●

LOGICA DE PRIMER ORDEN

CUANTIFICADORES

SIMBOLO NOMBRE SIGNIFICADO

∃!

F: X→Y x→y = F(x)

F: U✖V→Y u,v→y = F(u,v)

PREDICADOS

LÓGICA DE ORDEN SUPERIOR

∀ ∀ ∨

CLÁUSULAS DE HORN

∨ ∨ ∨

∧ ∧ ⇒

CLÁUSULA ‘DEFINITE’ HECHO CLÁUSULA OBJETIVO

EJEMPLO CLÁUSULAS DE HORN

∨ ∨∧ ⇒

hija(A, B) :- mujer(A), padre(B A)

UNIFICACIÓN Y BACKTRACKING

cláusulas de Horn"Si es verdad el antecedente, entonces es verdad el

consecuente"

UNIFICACIÓN

punto de elecciónsubconjunto de cláusulas susceptibles de ser ejecutadas, estas a su vez son puntos de elección.

BACKTRACKING

unificación deshace todo lo

ejecutado

∨ ∨ →

A

B C D

Falso Falso Falso Falso FalsoFalso Falso

A

B C D

Falso Falso Falso Falso FalsoFalso Falso

A

B C D

Falso Falso Falso Falso FalsoFalso Falso

A

B C D

Falso Falso Falso Falso FalsoFalso Falso

A

B C D

Falso Falso Falso Falso FalsoFalso Falso

A

B C D

Falso Falso Falso Falso FalsoFalso Falso

A

B C D

Falso Falso Falso Falso FalsoFalso Falso

A

B C D

Falso Falso Falso Falso FalsoFalso Falso

A

B C D

Falso Falso Falso Falso FalsoFalso Falso

A

B C D

Falso Falso Falso Falso FalsoFalso Falso

A

B C D

Falso Falso Verdadero Falso FalsoFalso Falso

A

B C D

Falso Falso Verdadero Falso FalsoFalso Falso

A

B C D

Falso Falso Verdadero Falso FalsoFalso Falso

A

B C D

Falso Falso Verdadero Falso FalsoFalso Falso

A

B C D

Falso Falso Verdadero Falso FalsoFalso Falso

A

B C D

Falso Falso Verdadero Falso FalsoFalso Falso

A

B C D

Falso Falso Verdadero Falso FalsoFalso Falso

A

B C D

Falso Falso Verdadero Falso FalsoFalso Falso

A

B C D

Falso Falso Verdadero Falso FalsoFalso Falso

MOTOR DE INFERENCIA

∧ →

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(paloma)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(paloma)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(paloma)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(paloma)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(paloma)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(paloma)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(paloma)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(paloma)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(paloma)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(paloma)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(paloma)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(paloma)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(pinguino)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(pinguino)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(pinguino)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(pinguino)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(pinguino)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(pinguino)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(pinguino)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(pinguino)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(pinguino)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(pinguino)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(aguila)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(aguila)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(aguila)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(aguila)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(aguila)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(aguila)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(aguila)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(aguila)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(aguila)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(aguila)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(aguila)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(aguila)

Vuela(X)

EsAve(X)

X = pinguino X = paloma X = loro

no(X, pinguino)

Vuela(aguila)

RECURSION

VENTAJAS Y DESVENTAJAS

04

VENTAJAS

DESVENTAJAS

LENGUAJES DE PROGRAMACIÓN LÓGICA

05

PROLOG

● Es el lenguaje más representativo de la programación Lógica

● Se basa en lógica de primer orden

● Está basado en cláusulas de Horn

● Es un lenguaje de programación declarativo

PROLOG

Notebook : https://swish.swi-prolog.org/p/EjemploProLog.swinb

EJEMPLO 2

EJEMPLO 2

DATALOG (PYTHON)

DATALOG (PYTHON)

GÖDEL (programming language)

●●

●●

●Kurt Gödel

GÖDEL (programming language)

APLICACIONES DE LA PROGRAMACIÓN LÓGICA

06

APLICACIONES

SlidesgoFlaticon Freepik

Please keep this slide for attribution.

GRACIAS!

BIBLIOGRAFIA

● http://blog.koalite.com/2013/08/que-es-la-programacion-logica/● http://diposit.ub.edu/dspace/bitstream/2445/64643/1/memoria.pdf● https://ferestrepoca.github.io/paradigmas-de-programacion/proglogica/logica_teoria/lang.

html● https://www.monografias.com/trabajos106/logica-primer-orden/logica-primer-orden.sht

ml● http://www.it.uc3m.es/jvillena/irc/practicas/estudios/Lenguajes_Logicos.pdf● https://swish.swi-prolog.org/p/EjemploProLog.swinb● https://en.wikipedia.org/wiki/G%C3%B6del_(programming_language)