Вы находитесь на странице: 1из 21

Ingeniería Informática

UNT

Programación Lógica

Paradigma de Programación Lógica

Sesion01 Practica

Abril 2019 Ing. Victor Jaime Polo Romero


Programación Declarativa

■ El paradigma de programación declarativa en


contraposición con la imperativa está basada
en el desarrollo de programas en los que se
especifica un conjunto de condiciones o
proposiciones, describen el problema y detallan
su solución, pero no indican cómo encontrarla.
Imperativo vs. Declarativo

Imperativo Declarativo

¿Cómo resolver el ¿Qué hacer para


problema? resolver el problema?
Orígenes de la Lógica
■ Antigua Grecia
– Competencia en Filosofía y Retórica
– La lógica fue usada para formalizar la
deducción.
– Deducción: derivación de conclusiones a partir
de premisas
– Retórica, incluía el estudio de la lógica para que
los debates siguieran las mismas reglas.
Orígenes
■ Las reglas de la lógica fueron clasificadas y nombradas.
■ Silogismo:
– Premisa: Todos los hombres son mortales
– Premisa: X es un hombre
– Conclusión: por lo tanto, X es mortal
– Si las premisas son verdaderas la conclusión es
verdadera.
Orígenes

Fundadores Lógica Fecha


Aristóteles Teoría Silogística 384-322 a.c
Avances Descartes y Leibnitz Racionalismo S. XVII
George Boole Lógica y Álgebra S.XIX
Frege, Cantor, Peano, Russell Lógica Matemática S.XX
Orígenes

■ De forma paralela a mediados del siglo XX se desarrollan las computadoras.

■ Alan Turing
– ¿Pueden las máquinas pensar?

■ Inteligencia Artificial
■ 5ª Generación de Computadoras
– PROLOG
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 Formas alternativas de


soluciones producidas ejecutar Lógica .

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.

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


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

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.


Cláusulas de Horn - Ejemplo

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


PROLOG

■ PROgramming LOGic
■ Surgió a principios de 1970.
■ Su creación fue motivada por la necesidad de los investigadores
de Inteligencia Artificial y sus ramas:
– Computación Simbólica
– Prueba de Teoremas 5ª Generación de
– Sistemas Basados en reglas Computadoras
– Procesamiento de lenguaje Natural
PROLOG Philippe Rousse
Philippe Rousse

■ Robert Kowalski proporcionó la base teórica.


■ Colmerauer y Philippe Rousse, iniciaron la
programación de Prolog, desarrollando el primer
intérprete, y David Warren de la Universidad de
Edinburgh desarrolló el primer compilador
ProLog. Lenguaje de Programación Lógica de
propósito general.
■ Raíces en la lógica de primer orden, o lógica de predicados.
PROLOG
■ Se conocen como lenguajes basados en reglas.
■ Al ejecutar las declaraciones lógicas del programa, se crea un
conjunto con todas las posibles soluciones al problema que se
especifica.

Reglas
Resultados

Hechos Máquina de
Inferencia
PROLOG

■ Basado en la lógica de predicados


– Partiendo de la lógica proposicional
Mamifero
Animal Proposición Valor de Verdad
Pato P: Pato es Mamífero FALSO
Gato G: Gato es Mamífero VERDADERO
Perro M: Perro es Mamífero VERDADERO
Pez Pe: Pez es Mamífero FALSO
Conejo C: Conejo es Mamífero VERDADERO
PROLOG
■ El predicado común de las oraciones es:
EsMamífero
■ Lo utilizamos con una variable
■ EsMamífero(X)
– Asi X puede tomar valores como
■ Gato
■ Perro
■ Conejo
Hechos

■ Así podemos establecer los hechos


■ EsMamífero(Conejo)
■ EsMamífero(Perro)
■ EsMamífero(Gato)

■ y después preguntar EsMamífero(X) y


■ Los resultados mostrarían a Conejo, Perro y Gato.
Reglas

■ Las reglas nos indican las condiciones que deben cumplirse para que se dispare la
regla y arroje una condición.
■ Ejemplo:
– Si es Mamífero entonces tiene patas y dientes
– Mamífero(X) Patas(X), Dientes(X).
■ Si preguntamos Mamífero(Gato)
– Nos dará como resultado: Patas(Gato), Dientes(Gato)
Próxima sesión

Software SWI- PROLOG


■ Se puede bajar de la página
– www.swi-prolog.org
Fin

Вам также может понравиться