Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Lógicas para Aplicaciones Software
04/19/00 Lógicas para Aplicaciones Software María Alpuente Frasnedo Depto. de Sistemas Informáticos y Computación U. Politécnica de Valencia 1
2
Desarrollo de Programas
04/19/00 Desarrollo de Programas Ingeniería de Software Bases de Datos Ingeniería de Conocimiento Inteligencia Artificial Procesamiento de Lenguajes Comprensión L. Natural Sistemas Operativos 1
3
Lógica y Bases de Datos Lenguaje de Definición de Datos
Lenguaje de Actualización Lenguaje de Interrogación Comprobación de Restricciones de Integridad MODELO RELACIONAL = REPRESENTACION POR TABLAS Nombre Cargo Cuotas Fecha Nacim Fecha Ingreso Paloma Presidenta /1/ /1/94 Claudia Secretaria /11/99 12/11/99 Gonzalo Tesorero /11/ /11/99 Club(Paloma, Presidenta, 1000, 3/1/94, 3/1/94) Club(Claudia, Secretaria, 1000, 12/11/99, 12/11/99) Club(Gonzalo,Tesorero, , 12/11/99, 12/11/99)
4
LENGUAJES DE CONSULTA RELACIONAL = SIMBOLISMO DEL CP 1 Orden
Club Nombre Cargo Cuotas Fecha Nacim Fecha Ingreso Paloma Presidenta /1/ /1/94 Claudia Secretaria /11/99 12/11/99 Gonzalo Tesorero /11/ /11/99 Dirección Nombre Calle Número Ciudad Paloma Dr. Palos 7 Sagunto Claudia Dr. Palos 7 Sagunto Gonzalo Vechia Pisa Tramvia ?- Club(x,y,z,u,v), Dirección(x,’Dr. Palos’,n,c) ( Cálculo Relacional de Tuplas)
5
BD = Interpretación de una teoría lógica
BD “Deductiva” = Teoría lógica Club(Paloma, Presidenta, 3/1/94) Club(Claudia, Secretaria, 12/11/99) Club(Gonzalo,Tesorero, 12/11/99) Cuota(x,1000) Club(x,y,z) Ingreso_Club(x,z) Club(x,y,z)
6
Desarrollo de Programas
04/19/00 Desarrollo de Programas Ingeniería de Software Bases de Datos Ingeniería de Conocimiento Inteligencia Artificial Procesamiento de Lenguajes Comprensión L. Natural Sistemas Operativos 1
7
Lógicas para Aplicaciones Software
La lógica proporciona una formulación simbólica e independiente del dominio de las leyes del pensamiento humano Este doble carácter de la lógica hace posible mecanizar sus técnicas y métodos
8
Lógicas para Aplicaciones Software (cont.)
PROBLEMA: La lógica clásica se desarrolló para estudiar objetos matemáticos bien definidos, consistentes e inmutables -carácter estático- Sus nuevas aplicaciones requieren formas más dinámicas (y menos perfectas) de lógica Los métodos de la lógica, en general, resultan caros en términos computacionales -> es necesario reducir sus costes sin perder sus buenas propiedades lógicas
9
Lógicas para Aplicaciones Software (cont.)
SOLUCIÓN: Lógica Computacional (Lógicas para Aplicaciones Software) Lógicas con la expresividad y la potencia computacional adecuadas para: Modelar el conocimiento impreciso, incompleto, contradictorio, revisable, dinámico, distribuido... Razonamiento no monótono, aproximado, probabilístico...
10
Lógicas para Aplicaciones Software
04/19/00 Lógicas para Aplicaciones Software Lógicas para el Desarrollo de Programas Lógicas para la Ingeniería del Software Lógicas para la Ingeniería del Conocimiento y las BDs Lógicas para el Razonamiento aprox. y probabilistico Lógicas para la Concurrencia Lógicas para el Control y las Com. Lógicas para el Diseño de Lenguajes (e.g. visuales) 1
11
Algunos Ejemplos... Lógicas para el Desarrollo de Programas L. Clausal
04/19/00 Algunos Ejemplos... Lógicas para el Desarrollo de Programas L. Clausal Lógicas para la Ingeniería del Software L. Ecuacional Lógicas para la Ingeniería del Conocimiento y las BDs L. Modal Lógicas para el Razonamiento aprox. y probabilistico L. Probabilística Lógicas para la Concurrencia L. Temporal Lógicas para el Control y las Com L. Lineal, L. Difusa Lógicas para el Diseño de Lenguajes (e.g. visuales) L. Pictórica 1
12
Lógicas para Aplicaciones Software
04/19/00 Lógicas para Aplicaciones Software Lógicas para el Desarrollo de Programas Lógicas para la Ingeniería del Software Lógicas para otras Aplicaciones Software 1
13
Lógicas para el Desarrollo de Programas:
04/19/00 Lógicas para el Desarrollo de Programas: IDEA TRADICIONAL: LÓGICA usada como herramienta de representación de las propiedades de los programas y para razonar sobre éstas (especificación, verificación y documentación del código) I D E A O R I G I N A L !!!!!: LÓGICA = LENGUAJE DE PROGRAMACIÓN 2
14
P R O G R A M A C I Ó N D E C L A R A T I V A
15
Ciclo de Vida Clásico MANTENIMIENTO
ANALISIS DISEÑO IMPLEMENTAC Programa VALIDACIÓN TEST - TEST -
16
Ciclo de Vida con Prototipado
ANALISIS Especific IMPLEMENTAC Programa (informal) TEST - / PROTOTIPADO MANTENIMTO. VALIDACIÓN Prototipo
17
Programación Automática
ANALISIS Especific OPTIMIZACIÓN REQUERIM Formal MECÁNICA (Prototipo) . Programa VALIDACIÓN MANTENIMTO.
18
Lógicas para Aplicaciones Software
04/19/00 Lógicas para Aplicaciones Software Lógicas para el Desarrollo de Programas Lógicas para la Ingeniería del Software Lógicas para otras Aplicaciones Software 1
19
Lógicas para la Ingeniería del Software:
04/19/00 Lógicas para la Ingeniería del Software: IDEA POPULAR: Los Métodos Formales son lenguajes, técnicas y herramientas basados en las matemáticas (generalmente lógica y álgebra) y utilizados para especificar y verificar sistemas software especificación verificación programa si o no 2
20
La Trilogía del Software:
04/19/00 La Trilogía del Software: Requisitos Programas Datos Componentes Software Procesos Sofware 4
21
Lógicas para Aplicaciones Software
04/19/00 Lógicas para Aplicaciones Software Lógicas para el Desarrollo de Programas Lógicas para la Ingeniería del Software Lógicas para otras Aplicaciones Software 1
22
Lógicas para otras Areas de Especialización en Software:
04/19/00 Lógicas para otras Areas de Especialización en Software: Lógicas para la Ingeniería del Conocimiento y las BDs Lógica modal: epistémica, temporal, dinámica, ... Lógicas para el Razonamiento aprox. y probabilistico Lógica geométrica, lógica probabilística Lógicas para el Control y las Comunicaciones: Lógica lineal, lógica difusa Lógicas para la Programación Visual Lógica diagramática, lógica pictórica 2
23
LOGICA DIFUSA (Fuzzy Logica )
*** una LOGICA Multivaluada (en vez de binaria) *** En LÓGICA CLÁSICA: 0 or 1, blanco o negro, si o no; (en términos del ALGEBRA BOOLEANA: cada elemento está en un conjunto o en otro, pero no en ambos) La LOGICA DIFUSA permite valores entre 0 y 1, tonos del gris, (pertenencia parcial a un conjunto) Se usa para soportar el RAZONAMIENTO APROXIMADO en SISTEMAS EXPERTOS: inferencias lógicas sobre propiedades y relaciones imprecisas. EJEMPLOS: optimización automática del ciclo de lavado de una lavadora en función de la carga, cantidad de detergente, etc; control de ascensores, electrodomésticos, cámaras, instrumentación de automóviles, aeronaves y armamento nuclear.
24
Lógica Difusa 0.7 El agua está fría
04/19/00 Lógica Difusa Los hechos pueden ser ciertos hasta un cierto grado 0.7 El agua está fría En lógica difusa, las fórmulas tienen un valor de verdad entre 0 y 1 Aplicaciones en Control Difuso, Robótica, S. Expertos 1
25
04/19/00 Lógica Difusa (cont.) x elemento; S conjunto; Sx nº real entre 0 y 1 (denotando el grado en que x pertenece a S) (AB)x = max (Ax,Bx) (AB)x = min(Ax,Bx) (A)x = 1 - Ax F conjunto de las proposiciones falsas;T verdaderas. t(p)= (1-Fp+Tp)/2 (verdad de p) t(a) = 1 - t(a) t(ab) = min(t(a),t(b)) t(ab) = max(1-t(a),t(b)) 1
26
Lógica Lineal why not (borrado) ! of course (copiado - replicación)
04/19/00 Lógica Lineal Nuevas conectivas lógicas (exponenciales): ! of course (copiado - replicación) why not (borrado) Separación en dos clases de las conectivas estándar : y (conjunción acumulativa y alternativa) y (disyunción directa y tensorial ) 1
27
A —o B y A —o C NO IMPLICA A —o B C
04/19/00 Lógica Lineal (cont.) Una premisa, en lógica clásica, puede usarse tantas veces se quiera (A, A B) B ... pero A es verdad aún En la vida real, la implicación es causal —o (las condiciones se modifican tras su uso: acción, reacción) EJEMPLO: A gastar 100 ptas. en tabaco, B comprar “ducados”, C comprar “celtas” A —o B y A —o C NO IMPLICA A —o B C 1
28
A —o B y A —o C IMPLICA A —o B & C
04/19/00 Lógica Lineal (cont.) Se cumple, en cambio: A —o B y A —o C IMPLICA A —o B & C La conjunción & tiene carácter alternativo, pero NO es una disyunción! Se puede demostrar a la vez A & B—o A y A & B—o B (tampoco es un if_then_else) APLICACIONES: Control de recursos (de máquina) A ‘está libre el canal A’ B, C procesos que pueden fluir por el canal 1
29
EXISTENCIAL (sometimes, posibilidad)
04/19/00 Lógica Modal Nuevas conectivas lógicas (cuantif. modales): UNIVERSAL (always, necesidad) EXISTENCIAL (sometimes, posibilidad) para formalizar el tiempo, las creencias, etc.. Ejemplo: estudiante(A) profesional(A) 1
30
Introducción a la Lógica Modal María Alpuente
Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia Camino de Vera s/n Apdo Valencia (España) E.mail: URL:
31
Lógicas no Estándar (Modificaciones y Extensiones de la Lógica Clásica)
Lógica multi-valuada (N valores) Lógica Parcial Lógica Difusa Lógica Intuicionista Lógicas Modales MODIFICAN GENERALIZAN
32
Lógicas Modales GENERALIZAN la lógica clásica introduciendo dos conectivas lógicas adicionales (u operadores modales): UNIVERSAL (necesidad) ◊ EXISTENCIAL (posibilidad) que permiten formalizar: la necesidad el tiempo las creencias, etc.. IDEA: la verdad es un concepto relativo que depende de los ‘mundos posibles’
33
Lógicas Modales (cont.)
(◊ A =def A) Interpretaciones A necesariamente es verdad A siempre será verdad A debe suceder A cuando termina el programa, es verdad A es conocido que A se cree que se cumple A Interpretaciones ◊ A posiblemente es verdad A a veces será verdad A puede suceder A existe una ejecución del programa que termina siendo A verdad no se conoce el opuesto de A no se cree que se cumple el opuesto de A
34
Lógicas Modales (cont.)
Lógicas Temporales (lógicas del tiempo) A (always A) ◊ A (sometimes A) Lógicas Dinámicas (lógicas de la acción, lógica modal para razonar acerca de las acciones y procesos) Lógicas Epistémicas (lógicas del Conocimiento y de la Creencia/Ignorancia)
35
Lógicas Modales (cont.)
(TEORÍA DE MODELOS, caso proposicional) Un marco de interpretación (frame) es un par F=(W,R) donde: W es un conjunto no vacío (Universo de puntos o mundos posibles) R es una relación binaria sobre W (Relación de accesibilidad) Sea P un conjunto de fórmulas. Un modelo para P sobre un marco F=(W,R) es una terna M=(W,R,V) donde: V es una aplicación de P en 2W (el conjunto de los subconjuntos de W) que asigna a cada p P el subconjunto de puntos w W en los que p es verdad
36
Lógicas Modales (cont.)
(TEORÍA DE MODELOS, caso proposicional) La relación ‘la fórmula A es verdad en el punto w en el modelo M’ (en símbolos M =w A) se define recursivamente como sigue: (M =w false) M =w p si w V(p) M =w (A) si (M =w AM =w) M =w A si wRt implica que M =t A para todo t W
37
Lógicas Modales (cont.)
(TEORÍA DE MODELOS, caso proposicional) ‘La fórmula A es verdad en el modelo M=(W,R,V) si es verdad en todos los puntos del modelo’ (M = A si M =w A para todo w W) ‘La fórmula A es verdad en el marco F=(W,R) si es verdad en cada modelo M=(W,R,V)’ (F= A si M =A para todo M=(W,R,V)) ‘La fórmula A es válida si es verdad en cada marco’ (= A si F= A para todo F)
38
Lógicas Modales (cont.)
(TEORÍA DE MODELOS, caso proposicional) ‘La fórmula A es verdad en el mundo w si A es verdad en todos los mundos posibles accesibles desde w’. ‘La fórmula ◊A es verdad en el mundo w si A es verdad en alguno de los mundos posibles accesibles desde w’.
39
Lógicas Multimodales M =t A para todo t W
Son lógicas cuyos lenguajes tienen más de un operador modal. Se utilizan colecciones de símbolos {[i] | i I} cada uno de los cuales corresponde a un operador universal Los operadores existenciales duales son <i> y se definen como [i] si A es una fórmula, entonces [i]A e <i>A también lo son Un marco multimodal es F=(W, {Ri | i I}) donde las Ri son relaciones Ri W x W para cada i I M =w[i]A si w Ri t implica que M =t A para todo t W
40
Una Axiomatización de la Lógica (Multi-)Modal
El sistema axiomático más simple es K(a) (Prior 65): AXIOMAS: algún conjunto de axiomas de la lógica clásica K(a): ([a]A ^ [a](A B )) [a]B REGLAS DE INFERENCIA Modus Ponens Necesidad A |- [a] A Axiomas adicionales: D(a): [a]A <a>A T(a): [a]A A 4(a): [a]A [a][a]A 5(a): <a>A [a]<a>A B(a): A [a]<a>A G(a): [a]([a]A [a]A (a): <a>A [a]A
41
Lógicas del Tiempo discreto o continuo? lineal, paralelo o ramificado?
TOPOLOGÍA del tiempo discreto o continuo? (tiempo continuo: hay un momento entre cada dos) lineal, paralelo o ramificado? (cada rama corresponde a una posible historia del mundo. Puede haber ramificaciones en el futuro -pasado único- o también en el pasado -distintos pasados-) acotado o sin acotar? circular?
42
Lógicas del Tiempo (cont)
TAXONOMIAS Aproximación de primer orden -argumento extra para el tiempo- Aproximaciones modales Discrete & Linearly Ordered Time (next, since, until) Branching Time Dense Time Interval Logic Terminología: tensers: partidarios aprox. modal detensers: partidarios aprox. primer orden Las dos aproximaciones son rivales: (F significa ‘en el futuro’) F existe x. p(x) existe x. F p(x) Para el detenser las fórmulas de primer orden correspondientes son: existe t. posterior(t,now) & existe x. p(x,t) existe x existe t. posterior(t,now) & p(x,t) y son equivalentes en lógica de primer orden (las cosas allí tienen una existencia atemporal)
43
Lógicas Temporales A (always A) ◊ A (sometimes A)
La misma sentencia puede tener diferentes valores de verdad en distintos momentos del tiempo Los elementos de W son los momentos del tiempo sRt significa: s ocurre después de t (antes de t) A (always A) A será verdad en todos los tiempos futuros (A fue verdad en todos los tiempos del pasado) ◊ A (sometimes A) A será verdad en algún tiempo del futuro (A fue verdad en algún tiempo del pasado)
44
Lógica Dinámica Es una lógica multimodal Se asocia un operador modal [i] con cada instrucción i de un lenguaje de programación sRt significa: hay una ejecución del programa que empieza en s y termina en t [i] A (tras ejecutarse la instrucción i, es verdad A) <i> A (hay una ejecución de la instrucción i, que termina siendo verdad A) W es el conjunto de los distintos estados de un proceso computacional ________________ (L. dinámica simple:) A (cada ejecución del programa que termina acaba en un estado en el que es verdad A) ◊ A (hay alguna ejecución del programa que termina en un estado en el que es verdad A)
45
Lógica Dinámica (cont.)
Se usa un conjunto de constructores dinámicos: composición secuencial (;) (con elemento neutro ID, el programa que no hace nada) unión () (elección indeterminista) repetición finita de un programa (*) ejecución inversa (-1) (t;t -1 es el programa que no cambia nada) Axiomas adicionales: 1: [t;t’]A [t][t’]A 2: {ID}A A for {ID}=<ID>,[ID] 3: [tt’]A [t]A^[t’]A 4: [t*]A A^ t[t*]A
46
Lógicas del Conocimiento y de la Creencia
Los operadores modales se interpretan como conocimiento o creencia A (se conoce A (se cree A)) ◊ A (no se conoce el opuesto de A (no se cree el opuesto de A)) Existen variantes multimodales [i] A (el agente i conoce o cree A) <i> A (el agente i no conoce o no cree el opuesto de A)
47
Deducción Modal Automática
Para automatizar la lógica modal es posible: desarrollar métodos de deducción modal traducir a otras lógicas (con teorías ecuacionales y sorts) Los resultados estándar (completitud, etc) son muy complejos en lógica modal: no existe una forma normal para las fórmulas modales ◊ (p ^q) el concepto de unificación se debe generalizar (e.g., p y ◊p son contradictorios, mientras que ◊p y ◊p no lo son) la contradicción puede estar sumergida varios niveles (e.g., ◊p y ◊p) o escondida en varias cláusulas (e.g., (p v q), ◊p y ◊q) los cuantificadores y operadores modales interaccionan
48
Traducción a lógica clásica
T(w,p(t1,...,tn)) = p’(w,t1,...,tn) T(w,A) = T(w,A) T(w,AvB) = T(w,A) v T(w,B) T(w,xA) = xT(w,A) T(w,A) = w’(R(w,w’) v T(w’,A)) Teorema. Sea L una logica multimodal. Sea A una fórmula cerrada. A es insatisfacible en L sii T(wo,A) es insatisfacible en lógica de primer orden.
49
Programación Lógica Modal y Temporal
Modal Prolog (Molog) Temporal Prolog (MetaTem, Tempura) IDEA. Extender HCL con conectivas modales o temporales: Fp (en el futuro, p será siempre verdad) Pp (en el pasado, p fue siempre verdad) ◊p = p v Fp v Pp p = ◊p
50
Sintaxis de un Prolog Temporal
Un programa es un conjunto de cláusulas Una cláusula es una cláusula ordinaria o una cláusula always Una cláusula always es p, donde p es una cláusula ordinaria Una cláusula ordinaria es una cabeza H o un H A, donde A es un cuerpo Una cabeza es un átomo o FA o PA, donde A es una conjunción de cláusulas ordinarias Un cuerpo es un átomo, una conjunción de cuerpos o un FA o PA, donde A es un cuerpo Un objetivo es un cuerpo
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.