1 / 50

María Alpuente Frasnedo Depto. de Sistemas Informáticos y Computación U. Politécnica de Valencia

Lógicas para Aplicaciones Software. María Alpuente Frasnedo Depto. de Sistemas Informáticos y Computación U. Politécnica de Valencia http://www.dsic.upv.es/~alpuente.html. Desarrollo de Programas. Ingeniería de Software. Bases de Datos. Ingeniería de Conocimiento.

zody
Download Presentation

María Alpuente Frasnedo Depto. de Sistemas Informáticos y Computación U. Politécnica de Valencia

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lógicas para Aplicaciones Software María Alpuente Frasnedo Depto. de Sistemas Informáticos y Computación U. Politécnica de Valencia http://www.dsic.upv.es/~alpuente.html

  2. Desarrollo de Programas Ingeniería de Software Bases de Datos Ingenieríade Conocimiento Inteligencia Artificial Procesamiento de Lenguajes Comprensión L. Natural Sistemas Operativos

  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 1000 3/1/94 3/1/94 Claudia Secretaria 1000 12/11/99 12/11/99 Gonzalo Tesorero 1000 12/11/99 12/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, 1000, 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 1000 3/1/94 3/1/94 Claudia Secretaria 1000 12/11/99 12/11/99 Gonzalo Tesorero 1000 12/11/99 12/11/99 Dirección Nombre Calle Número Ciudad Paloma Dr. Palos 7 Sagunto Claudia Dr. Palos 7 Sagunto Gonzalo Vechia 7 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 Ingeniería de Software Bases de Datos Ingenieríade Conocimiento Inteligencia Artificial Procesamiento de Lenguajes Comprensión L. Natural Sistemas Operativos

  7. Lógicas para Aplicaciones Software • La lógica proporciona una formulaciónsimbólica e independiente del dominio de las leyes del pensamiento humano • Este doble carácter de la lógica hace posiblemecanizarsus 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 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)

  11. 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

  12. 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

  13. Lógicas para el Desarrollo de Programas: IDEA TRADICIONAL: LÓGICAusada 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

  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 ANALISISEspecific.IMPLEMENTAC.Programa (informal) TEST -  /  PROTOTIPADO MANTENIMTO. VALIDACIÓN Prototipo

  17. Programación Automática ANALISIS Especific.OPTIMIZACIÓN REQUERIM.FormalMECÁNICA (Prototipo) . Programa VALIDACIÓN MANTENIMTO.

  18. 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

  19. 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 yverificar sistemas software especificación verificación si o no programa

  20. Componentes Software Procesos Sofware La Trilogía del Software: Requisitos Programas Datos

  21. 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

  22. Lógicas para otras Areas de • Especialización en Software: • Lógicas para la Ingeniería del Conocimiento y las BDsLógica modal:epistémica, temporal, dinámica, ... • Lógicas para el Razonamiento aprox. y probabilisticoLó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

  23. LOGICA DIFUSA (Fuzzy Logica ) *** una LOGICAMultivaluada(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 DIFUSApermite 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 Los hechos pueden ser ciertos hasta un cierto grado 0.7El 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

  25. Lógica Difusa (cont.) x elemento; S conjunto; Sx nº real entre 0 y 1 (denotando el grado en que x pertenece a S) (AB)x = max (Ax,Bx) (AB)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(ab) = min(t(a),t(b)) t(ab) = max(1-t(a),t(b))

  26. 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 )

  27. 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

  28. 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

  29. 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)

  30. Introducción a laLógica ModalMaría Alpuente Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia Camino de Vera s/n Apdo. 22.012 46.071 Valencia (España) E.mail: alpuente@dsic.upv.es URL: http://www.dsic.upv.es/users/elp/alpuente.html

  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. InterpretacionesA 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 Lógicas Modales (cont.) • (◊A=def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 dela 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 =wfalse) • M =wp si w  V(p) • M =w(A) si (M =wAM =w) • M =w A si wRt implica que M =tA 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 • 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 =tA para todo t  W

  40. Una Axiomatización de laLó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 • 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

  43. Lógicas Temporales • 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: [tt’]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 soncontradictorios, 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

More Related