Descargar la presentación
La descarga está en progreso. Por favor, espere
1
PROGRAMACIÓN LÓGICA
2
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.
3
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.
4
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" .
5
Algoritmo = lógica + control
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
6
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).
7
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".
8
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)
9
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
10
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 concreta o matemática) modelización SISTEMA FORMAL Interpretación UNIVERSO O DOMINIOS
11
INTERPRETACIÓN LÓGICA
PROGRAMA LÓGICO CONJUNTO DE REGLAS EJECUCIÓN EVALUACIÓN DE UNA INTERROGACIÓN DE ALGUNA RELACIÓN DEFINIDA O sea un demostrar automático de teoremas y toma valor cuando existen parámetros reales y producen una respuesta. O DEFINICIÓN DE TEORIA AXIOMÁTICA
12
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.
13
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)
14
SINTAXIS DE LA PROGRAMACIÓN EN LÓGICA
Se convienen las siguientes definiciones: Término: una constante (átomo), variable o función cuyos argumentos son también términos. Predicado: símbolo de predicado, antepuesto a uno o más términos separados por comas y encerrados entre paréntesis Ej.: 𝑃𝑟𝑒𝑑𝑖𝑐𝑎𝑑𝑜⟶𝑠í𝑚𝑏𝑜𝑙𝑜 𝑑𝑒 𝑝𝑟𝑒𝑑𝑖𝑐𝑎𝑑𝑜 𝑡é𝑟𝑚𝑖𝑛𝑜, 𝑡é𝑟𝑚𝑖𝑛𝑜, … Fórmula: expresión que puede contener uno o más predicados junto con conectivos y cuantificadores. Regla o sentencia: es una fórmula con sus variables ligadas.
15
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.
16
SINTAXIS DE LA PROGRAMACIÓN EN LÓGICA
Ej.: 𝐶𝑂𝑀𝑃𝑅𝑂 𝑗𝑢𝑎𝑛𝑎, 𝑙𝑖𝑏𝑟𝑜 ∩ 𝐶𝑂𝑀𝑃𝑅𝑂 𝑗𝑢𝑎𝑛𝑎, 𝑐𝑢𝑎𝑑𝑒𝑟𝑛𝑜 Se interpreta: juana compró un libro y un cuaderno. 𝑇𝐼𝐸𝑀𝑃𝑂 𝑙𝐼𝑢𝑣𝑖𝑎 → ∽𝑉𝐴 𝐴𝐿 𝐶𝐼𝑁𝐸 𝑐𝑎𝑟𝑙𝑜𝑠 Se interpreta: Si llueve carlós no va al cine. ∀𝑥 𝑃 𝑥 significa: que el predicado P se satisface para todo x. ∃𝑥 𝑃 𝑥 significa: existe al menos un x el cual satisface P.
17
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.: [𝑎. [𝑏. 𝑐𝑙] [[[𝑥. 𝑡] .𝑦] . [𝑟𝑒 𝑎. 𝑝 ]]
18
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". . r a p y x f . a b c
19
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.
20
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.
21
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
22
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, ....Fn de 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. :−𝐹
23
SEMÁNTICA DE LA PROGRAMACIÓN EN LÓGICA
Deducción lógica: Sea F una fórmula y R un conjunto de fórmulas. Se dice que F es lógicamente deducible lógicamente a partir de R. 𝑅:= 𝐹 𝑅:− 𝐹 Si existe una sucesión de fórmulas 𝐹𝐼, 𝐹2,…,𝐹𝑛 tal que 𝐹=𝐹𝑛 y cada 𝐹𝑖 es: Un axioma. O una fórmula de R. O deducible de una fórmula precedente de la sucesión. Las fórmulas de R se llaman hipótesis. Consistencia: Un sistema formal en el que exista el símbolo de negación "∽" se dice que es consistente si no existe una fórmula F en el sistema tal que pueda deducirse 𝐹 𝑦 ∼𝐹.
24
SEMÁNTICA DE LA PROGRAMACIÓN EN LÓGICA
Completitud: Sea P un programa en lógica y 𝑃 𝐶𝑙á𝑢𝑠𝑢𝑙𝑎𝑠 𝑑𝑒𝑙 𝑝𝑟𝑜𝑔𝑟𝑎𝑚𝑎 𝑄 𝑅𝑒𝑔𝑙𝑎 𝑑𝑒 𝑖𝑛𝑓𝑒𝑟𝑒𝑛𝑐𝑖𝑎 𝑃 :− 𝑝 ( 𝑝 𝑒𝑠 𝑑𝑒𝑑𝑢𝑐𝑖𝑏𝑙𝑒 𝑑𝑒 𝑃) 𝑃 := 𝑝 (𝑃 𝑒𝑠 𝑐𝑜𝑛𝑠𝑒𝑐𝑢𝑒𝑛𝑐𝑖𝑎 𝑙ó𝑔𝑖𝑐𝑎 𝑑𝑒 𝑝) Regla de resolución: Sean A1,A2,…,An y 𝐵1,𝐵2,…,𝐵𝑚 símbolos predicativos, la regla provee: ∼ 𝐴1,…,…𝐴𝑘,…,𝐴𝑛 𝐴𝐾⟵𝐵1,…,𝐵𝑚 ∼ 𝐴1,…,𝐴𝑘−1,𝐵1,…,𝐵𝑀,𝐴𝑘+1,…,𝐴𝑛
25
SEMÁNTICA DE LA PROGRAMACIÓN EN LÓGICA
La aplicación de la regla induce una nueva cláusula producto de la cancelación del predicado Ak. Casos particulares de la regla: ∼𝐴 ∼𝐴 𝐴⟵𝐵 𝐴 ∼𝐵 [] Teorema: La regla de resolución es completa. Teorema: Prueba por contradicción o reducción al absurdo Sea F una fórmula y R un conjunto de fórmulas, F es deducible lógicamente a partir de R si el conjunto formado por R con los ∼𝐹 es inconsistente: 𝑅:−𝐹si R unión (∼F) es inconsistente = Principio de resolución de Robinson.
26
SEMÁNTICA DE LA PROGRAMACIÓN EN LÓGICA
Cláusulas de Horn: Pueden tener como máximo una conclusión y en las cuales pueden re expresarse cualquier cláusula de forma general. Pueden adoptar las siguientes formas: 𝐵⟵𝐴1,𝐴2,…,𝐴𝑛 (Implicaciones) B⟵ (Afirmaciones) ⟵A1,A2,…,An (Negaciones) Cuando una implicación no tiene antecedente (condición) se denomina afirmación. (nada condiciona al consecuente). Si no tiene consecuente (conclusión) es en realidad una negación. Una cláusula sin antecedente ni consecuente es vacía [ ] y representa una contradicción. Regla genérica, si el predicado Al, A2,…, son ciertos implican B es una regla o sentencia.
27
SEMÁNTICA DE LA PROGRAMACIÓN EN LÓGICA
Sustitución: Es un conjunto de asignaciones de tipo 𝑋 := 𝑡 donde X es una variable y t un término. No puede existir más de una asignación. Ej.: {X := juan, Y := maría} Aplicaciones de sustitución: Dada una sustitución x y un predicado P, a aplicación de x a P produce un nuevo predicado Px y que corresponde al predicado inicial P, donde toda variable asignada en x es cambiada por el término correspondiente. Unificador: Dada dos expresiones del lenguaje, Ej.: predicados P1 y P2, se llama unificadora una sustitución x que cumple: Elx = E2x en la aplicación de la sustitución da la misma expresión.
28
B se denomina "cabeza" y los antecedentes "cuerpo"
PROGRAMAS LÓGICOS Un programa lógico es un conjunto de sentencia o cláusulas. 𝐵⟵ (hecho)(cláu. Horn - afirmación incondicional) 𝐵⟵𝐴1,𝐴2,…,𝐴𝑛 (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"
29
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.
30
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.
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.