PROGRAMACIÓN LÓGICA

30
PROGRAMACIÓN LÓGICA

description

PROGRAMACIÓN LÓGICA. PROGRAMACIÓN LÓGICA. Programación paradigma imperativo: Función que a partir estado inicial define los valores del estado final luego de la evolución del algoritmo. - PowerPoint PPT Presentation

Transcript of PROGRAMACIÓN LÓGICA

Page 1: PROGRAMACIÓN LÓGICA

PROGRAMACIÓN LÓGICA

Page 2: PROGRAMACIÓN LÓGICA

PROGRAMACIÓN LÓGICA Programación paradigma imperativo:

Función que a partir estado inicial define los valores del estado final luego de la evolución del algoritmo.

Problema intrínseco: la presencia de la asignación hace que l valor denotado de una variable sea dependiente del lugar del programa en que esta ocurre.

Page 3: PROGRAMACIÓN LÓGICA

PROGRAMACIÓN LÓGICA Programación paradigma lógico: Permite

definir relaciones sobre ciertos dominios dados. Se sustenta en la idea de que un programa puede

ser descripto definiendo ciertas relaciones entre conjuntos de objetos, a partir de las cuales otras pueden ser calculadas empleando deducción.

Page 4: PROGRAMACIÓN LÓGICA

PROGRAMACIÓN LÓGICA Modo de programación no convencional Consiste en describir el problema en si mismo Concentrar el esfuerzo en su estructura lógica, sin

pensar en como resuelve la computadora Describir los conocimientos relevantes que una vez

especificados se someten al interprete que relaciona e infiere consecuencias lógicas que de ellas se derivan.

La programación en lógica se ocupa del "que" y no del "como" .

Page 5: PROGRAMACIÓN LÓGICA

PROGRAMACIÓN LÓGICA Según Robert Kowalski:

En programación lógica el "como" a cargo del interprete podemos decir:

Algoritmo = lógica + control

Algoritmo = lógica

Page 6: PROGRAMACIÓN LÓGICA

PROGRAMACIÓN LÓGICA Etapas del desarrollo de una programación lógica:

Planteo del problema en lenguaje natural impreciso. Mejorar especificación lenguaje natural preciso sin

ambigüedades. Especificación correcta en lenguaje formal y preciso.

PROLOG:(PROgramación in LOGic) fue desarrollado a partir de 1972 por Grupo de inteligencia artificial - Universidad de Marsella (A. Colmerauer y Ph, Roussel).

Page 7: PROGRAMACIÓN LÓGICA

PROGRAMACIÓN LÓGICA Programación lógico ligada a Inteligencia Artificial

con numerosas aplicaciones. Ej.: Demostración de teoremas: álgebra y geometría. Juegos: técnicas de exploración de espacios de

búsqueda . Robótica: diseño de robots inteligentes. Percepción visual: reconocimiento de contornos y

formas. Procesamiento del lenguaje natural:

reconocimiento y expresión. Sistemas expertos: capacidad de "aprender".

Page 8: PROGRAMACIÓN LÓGICA

INTRODUCCIÓN A PROGRAMACIÓN EN LÓGICA Un programa en lógica permite definir relaciones

sobre ciertos dominios dados. Ej.:

Nombre = Dominio que contiene nombre de personas.

PADRE (Nombre, Nombre)

PADRE (josé, julieta) PADRE (josé, virginia) PADRE (juan, raquel)

PADRE (julio, melina)

Page 9: PROGRAMACIÓN LÓGICA

INTRODUCCIÓN A PROGRAMACIÓN EN LÓGICA Según la definición el nombre en primer término,

es el padre del segundo y así es posible operar: con operaciones clásicas: restricciones (subconjuntos). proyecciones sobre dominios para definir nuevas

relaciones. preguntas de pertenencia.

Por su aspecto relacional no se introducen "direcciones" en el sentido clásico de datos.

Por el nivel de expresión es posible pasar del lenguaje natural a una programación en lógica

Page 10: PROGRAMACIÓN LÓGICA

INTERPRETACIÓN LÓGICA

Conceptos de lógica que se definen. Mecanismos de derivación a partir de reglas de inferencias. Unificación (realiza dicha operación en presencia de

variables).

REALIDAD

SISTEMA FORMAL

UNIVERSO O DOMINIOS

modelización

Interpretación

concreta o matemática)

Page 11: PROGRAMACIÓN LÓGICA

INTERPRETACIÓN LÓGICA

O sea un demostrar automático de teoremas y toma valor cuando existen parámetros reales y producen una respuesta.

PROGRAMA LÓGICO

CONJUNTO DE REGLAS EJECUCIÓN

EVALUACIÓN DE UNA

INTERROGACIÓN DE ALGUNA RELACIÓN DEFINIDA

O DEFINICIÓN DE TEORIA AXIOMÁTICA

Page 12: PROGRAMACIÓN LÓGICA

SINTAXIS DE LA PROGRAMACIÓN EN LÓGICA Proviene de la lógica de predicados de primer

orden y se dispone de: Un conjunto de elementos simples llamados

átomos. Los átomos están representados por caracteres

minúsculas (Ej.: a, b, julieta, 23, etc.). Un vocabulario V de variables (X, Y, Z).

Las variables están representadas-en mayúsculas (X, Y, Z).

Un vocabulario F de símbolos funcionales. Los símbolos funcionales se representan en

minúsculas.

Page 13: PROGRAMACIÓN LÓGICA

SINTAXIS DE LA PROGRAMACIÓN EN LÓGICA

Un vocabulario P de símbolos predicativos. Los símbolos predicativos en mayúsculas (Ej.: PADRE

(josé, julieta). Cualquier predicado puede negarse -PADRE (josé, julieta),

Un conjunto de conectivos.

. Un conjunto de cuantificadores.

X cuantificador universal (para todo X). X cuantificador existencial (existe un X)

Page 14: PROGRAMACIÓN LÓGICA

SINTAXIS DE LA PROGRAMACIÓN EN LÓGICA 

Page 15: PROGRAMACIÓN LÓGICA

SINTAXIS DE LA PROGRAMACIÓN EN LÓGICA El conjunto de sentencias que pueden construirse

usando definiciones anteriores constituye un lenguaje en lógica de primer orden.

Primer orden: no admite cuantificación sobre los predicados y funciones.

Page 16: PROGRAMACIÓN LÓGICA

SINTAXIS DE LA PROGRAMACIÓN EN LÓGICA 

Page 17: PROGRAMACIÓN LÓGICA

SINTAXIS DE LA PROGRAMACIÓN EN LÓGICA Cuando una variable está bajo el alcance de un

cuantificador, se dice ligada a él; caso contrario es libre.

Símbolo funcional muy especial y denotado por "." permite definir expresiones simbólicas (árboles binarios). Ej.:

Page 18: PROGRAMACIÓN LÓGICA

SINTAXIS DE LA PROGRAMACIÓN EN LÓGICA Visualizado como árboles tendría la siguiente

representación:

Para la definición recursiva de árboles es necesario considerar el nulo [ ] o "NIL".

.

.a

b c

.

..

r.

.

a p

.y

x f

Page 19: PROGRAMACIÓN LÓGICA

SEMÁNTICA DE LA PROGRAMACIÓN EN LÓGICA Interpretación: Sea R un programa en lógica

con sus vocabulario V de átomos, F de símbolos funcionales y P de significado predicativos Sea D un conjunto (dominio) dado.

Una interpretación I (D) sobre el programa R asigna a cada elemento de V, F, Y P los correspondientes elementos de D. Satisfacción lógica: Una interpretación I (D)

satisface a una fórmula, si su aplicación resulta verdadera.

Page 20: PROGRAMACIÓN LÓGICA

SEMÁNTICA DE LA PROGRAMACIÓN EN LÓGICA Consecuencia lógica o deducción:Una fórmula f es

consecuencia lógica o se deduce, de un conjunto de fórmulas R, si todo dominio D, toda interpretación I (D) que satisface a R, satisface también a f.

Permite determinar la forma en que los programas son evaluados.

Inferencia lógica: Conjunto inicial de fórmulas son sentencia válidas y se las llama axiomas. Los axiomas junto a las reglas de inferencia constituyen sistemas de formas.

Elemento de derivación sintáctica que a partir de conjunto de fórmulas permite derivar nuevas fórmulas.

Page 21: PROGRAMACIÓN LÓGICA

SEMÁNTICA DE LA PROGRAMACIÓN EN LÓGICA

AXIOMAS

• SENTENCIAS VÁLIDAS DEL LENGUAJE

DERIVACIÓN SINTÁCTICA

• REGLAS DE INFERENCIA

NUEVO CONJUNTO DE FÓRMULAS

• SISTEMA DE FÓRMULAS

Page 22: PROGRAMACIÓN LÓGICA

SEMÁNTICA DE LA PROGRAMACIÓN EN LÓGICA Regla básica de inferencias: De las fórmulas se

puede inferir B-. Un paso de inferencia corresponde a la aplicación de una regla para inferir una nueva fórmula.

Demostración: Será sucesión de F1, F2, ....Fnde fórmulas del lenguaje.

FI es axioma o de obtiene de fórmulas anteriores por aplicar una regla de inferencia. Teorema: Una fórmula F es un teorema si existe una

demostración en la que F es el último término de la sucesión.

Page 23: PROGRAMACIÓN LÓGICA

SEMÁNTICA DE LA PROGRAMACIÓN EN LÓGICA 

Page 24: PROGRAMACIÓN LÓGICA

SEMÁNTICA DE LA PROGRAMACIÓN EN LÓGICA Completitud: Sea P un programa en lógica y

Regla de resolución: Sean y símbolos predicativos, la regla provee:

Page 25: PROGRAMACIÓN LÓGICA

SEMÁNTICA DE LA PROGRAMACIÓN EN LÓGICA 

Page 26: PROGRAMACIÓN LÓGICA

SEMÁNTICA DE LA PROGRAMACIÓN EN LÓGICA 

Page 27: PROGRAMACIÓN LÓGICA

SEMÁNTICA DE LA PROGRAMACIÓN EN LÓGICA 

Page 28: PROGRAMACIÓN LÓGICA

PROGRAMAS LÓGICOS Un programa lógico es un conjunto de sentencia

o cláusulas. (hecho)(cláu. Horn - afirmación incondicional) (regla) (afirmación condicionada)

El conjunto de todas las cláusulas que tienen como cabeza el mismo predicado, constituye su definición.

B se denomina "cabeza" y los antecedentes "cuerpo"

Page 29: PROGRAMACIÓN LÓGICA

PROGRAMAS LÓGICOS Otra clausula que interesa es la denominada

"clausula objetivo" o "goal". Los compiladores de lenguajes lógicos son

interpretes capaces de llevar a cabo el proceso de inferencia con el fin de que los programas lógicos se ejecuten.

Cada alternativa de respuesta da lugar a una ramificación adicional que deberá ser explorada para obtener todas las soluciones alternativas al problema.

Page 30: PROGRAMACIÓN LÓGICA

PROGRAMAS LÓGICOS Recursividad: Un algoritmo es recursivo si está

definido en términos de si mismo. En un algoritmo recursivo se re ejecuta la totalidad del algoritmo desde el principio.

Casos característicos de recursividad: Reglas que tienen como antecedente el mismo

predicado que en la cabeza. En términos (objetos) compuestos que tienen como

argumento a los mismo términos.