martes, 13 de noviembre de 2012

T11. Lógica temporal lineal LTL

Está semana la tarea consistio en:

Elegir un inciso de los ejercicios del capitulo 14 Linear Temporal Logic LTL
yo elegí el 14.3.2

Como nos menciona el libro encontramos

What are the properties expressed by the following LTL formulas?
¿Cuáles son las propiedades expresadas por las siguente formula LTL?


Aquí encontramos los siguientes operadores: 



Por lo tanto la propiedad expresada quedaría de la siguente manera: 

  • Siempre hay A  implicado en la siguente A. 
  • Siempre hay  un estado A implicado en el siguiente estado A. 

Referencias: 

martes, 6 de noviembre de 2012

T10. Propiedades de modelos de verificación

La tarea en esta semena consistio en:
  • Inventen una expresión ω-regular con por lo menos dos símbolos y por lo menos dos operadores.
  • Dibujen el NBA que le corresponde.
Como ya antes vimos las propiedades pueden ser: 
  • Deterministas 
  • No Deterministas
Esta sería la expresión a representar :
(W + XY*V)*XY*

Los operadores utilizan diferentes funciones:
Asterisco(*): Esto es cuando algo se repiten  0 o mas veces.
Suma(+): Sirve para encontrar una cadena repetida.

Concatenación:


 Unión: 

Retorno: 


martes, 30 de octubre de 2012

T9. Sistema de Transiciones

Sistema registro de un cliente:

Como se compone:
Datos: Datos que se ingresaran al sistema  
Persona: Cliente del que se realizara el registro

Estados
Esperando Datos: Esperando a que se ingresen los datos
Existencia de Datos: Verificando si existen los datos
Datos validados: Los datos no existían en el sistema
Cliente registrado: El cliente esta registrado en el sistema

Estas son los diagramas de los componentes y acciones dentro del sistema

Ingreso datos del cliente
Emite mensaje si existe o no el cliente  

 Validar datos para dar de alta al cliente y registrar 




Diagrama de Transiciones
Este es el diagrama de transiciones donde los estados del sistema realizan una secuencia para poder llegar al objetivo que es registrar al cliente. 

Estados del sistema
Esperar 
Registrar

Transiciones:
1,2,3,4: Esperar datos, Comprobar existencia, Dar mensaje, validar datos, dar alta, esperar datos. 




domingo, 7 de octubre de 2012

T7. Aplicaciones de Lógica predictiva

Dentro de la logica predictiva encontramos diferentes formulas expresadas mediante los cuantores universales y existencias asi como logicos.
Una forma de aplicarla es mediante clausulas para resolver cada predicado o formulas formadas, en esta ocación definiremos la Clausula de Skolem o Skolemización.  
 
Sabemos que cualquier formula de lenguaje de enunciados puede reducirse a su forma normal conjuntiva(una conjuncion de disyunciones elementales o una disyuncion elemental). Estas disyunciones elementales son llamadas clausulas y la formula atomica o su negacion es llamada literal.

Una clausula es una disyunción finita L1 V L2 V V Ln de literales, donde L1 ≠ L2 ≠… Ln
Una clausula es positiva si consta solo de literales positivos, y negativa si todos sus literales son negativos. En la clausula positiva, al menos uno de los literales es verdadero.
En algunas ocasiones resulta conveniente hablar también de una "clausula vacía" que aparece en la inferencia cuando las premisas son incompatibles.

¿Qúe podemos hacer cuando queremos demostrar un hecho a partir de un conjunto de formulas con cuantificadores existenciales?
La respuesta está en transformar una fórmula con varios cuantificadores a una que solo tenga cuantificadores universales. Esto se puede hacer mediante skolemización.
La skolemización(por Toraf Skolem) tiene por objeto transformar una fórmula a otra equivalente en forma normal prenex.


 

¿Qué es la forma normal prenex(prenexa)?

Una fórmula prenex solo tiene cuantificadores  al comienzo de ésta. Por ejemplo:
xy z (P(x, y) à R(x, y, z)) es una fórmula prenex.
Una fórmula F de un lenguaje de primer orden está a en forma normal prenexa (o forma prenex) si es de la forma
 Q1 x1 Q2 x2   Qn xn G(x1; … ; xn)
Donde  Qi ϵ { } es abierta y G(x1;…; xn) es abierta Es decir, una formula en forma prenex esta formada por un bloque inicial de cuanticadores seguido por una formula abierta.
Una fórmula prenex solo tiene cuantificadores  al comienzo de ésta. Por ejemplo:
 xy z (P(x, y) à R(x, y, z)) es una fórmula prenex.
Objetivo: Restringir la complejidad sintáctica de las formulas de primer orden, sin perder expresividad. Trabajaremos con fórmulas cerradas.
  • Primer paso: Trasladar los cuanticadores a la izquierda obteniendo un forma normal prenexa.
  • El siguiente paso es eliminar los cuanticadores existenciales hasta obtener una f fórmula universal (es decir, una fórmula en forma prenex que s solo contiene cuanticadores universales).
  • La fórmula universal obtenida al de estas transformaciones es una forma de Skolem de la fórmula inicial.
  • El proceso de eliminación aumenta el lenguaje con nuevos símbolos de función y nuevas constantes.
  • En general, NO existe equivalencia entre la fórmula obtenida y la fórmula inicial, aunque se conserva la consistencia de la formula original.
Funciones y constantes de Skolem
Para eliminar los cuanticadores existenciales de una formula en forma prenexa aplicamos las siguientes reglas:
Por cada bloque
x1…  xn y (x1;…; xn; y)
  • Introducir un nuevo símbolo de función g (aridad n), y rescribir como
x1 … xnF(x1; …; xn; g(x1; …; xn))
(Decimos que x1… xn F(x1;…; xn; g(x1;…; xn)) se obtiene a partir de
x1…xnyF (x1; xn; y) introduciendo una función de Skolem).
  • Por cada bloque del tipo xF (x) añadir una nueva constante c y rescribir como F(c). (Se dice que F(c) se obtiene a partir de x F(x) introduciendo una constante de Skolem).
  • G se denomina una función de Skolem y c una constante de Skolem.
  • La introducción de funciones y constantes de Skolem conserva la consistencia. Es decir, dada una fórmula F, si F’ se obtiene a partir de F introduciendo una función o una constante de Skolem, entonces,
F tiene un modelo    F’ tiene un modelo.
  • Además, la introducción de funciones y constantes de Skolem, no aumenta el conocimiento deducible en el lenguaje original.
Es decir,
Si F es una fórmula cerrada de un lenguaje de primer orden L y F’ se obtiene a partir de F introduciendo una función o una constante de Skolem, entonces para toda fórmula H del lenguaje L se tiene:
F’ |= H ↔ F |= H
Ejemplos
xyz (Padre de (y; x) ^ Padre de (z; y))
+Dependencia de y con respecto a x: Elegimos mediante una función f1:
xz (Padre de (f1(x); x) ^ Padre de (z; f1(x)))
+ Dependencia de z con respecto a x: Elegimos mediante una función f2:
x (Padre de (f1(x); x) ^ Padre de (f2(x); f1(x)))
+ La fórmula universal
x (Padre de (f1(x); x) ^ Padre de (f2(x); f1(x)))
es una Forma de Skolem de la fórmula inicial.
 Clausulas
Sea L un Lógica de primer orden.
+ Una fórmula F es un literal si es una fórmula atómica o la negación de una fórmula atómica.
+ Una cláusula es una disyunción de literales. Por tanto, es una fórmula abierta.
+ Como en el caso de la lógica proposicional, identificaremos una clausula con el conjunto de los literales que aparecen en ella.
+ Denotaremos por □  a la clausula vacía.
+ Dada una formula F de L una forma clausal de F es un conjunto de clausulas S (no necesariamente del lenguaje L) tal que
F tiene un modelo ↔  S tiene un modelo
Forma clausal
Para obtener una forma clausal de una fórmula F(x1;…; xn) seguimos los siguientes pasos:
1. Obtener el cierre universal de F(x1;…; xn). Es decir, la fórmula G dada por x1…xn F(x1;…; xn).
2. Obtener una forma de Skolem de G. Dicha forma de Skolem es una fórmula universal G(S) .
3. Eliminar los cuantificadores universales de G(S).  Así obtenemos una formula abierta H.
4. Obtener una forma normal conjuntiva de H (siguiendo el mismo procedimiento que en el caso proposicional). Dicha forma será:
 
n
^ Cj
j=1
 Siendo cada Cj una clausula.
5. La forma clausal de F es el conjunto de clausulas
S = {C1;…; Cn
Ejemplo
+Forma clausal:
{{¬Hermano(x, F1(x)), u = F2(x), Padre de (F2(x), u)}}
 xz(x < z -->y(x < y ^ y < z))
+Forma clausal
((¬(x < z) ˅ x < f (x, z)) ^ (¬(x < z)  ˅ f (x, z) < z))
+ O también
{{¬(x < z), x < f (x, z)}, {¬(x < z), f (x; z) < z)}}



domingo, 16 de septiembre de 2012

Principios de demostraciones de validez

Esta es mi tarea 5 correspondiente a la clase de validación y verificación de Software. La tarea consistió en elegir un ejercicio del pdf logicination y resolverlo, el mio es el 4.18 sobre Fórmulas, situaciones e imágenes donde con una imagen podemos representar diferentes semánticas. 

Exercise 4.18 Consider the following picture:


Use G for the property of being a girl, H for the property of being a hat, and W for the relation of wearing (so that W xy expresses that x is wearing y). Now do the following:

(1) Give a predicate logical formula that is true for the situation in the picture.
(2) Give a predicate logical form

Ejercicio 4.18 considere la siguiente imagen, utilice:
  • G para la propiedad de ser una chica, 
  • H para la propiedad de ser un sombrero 
  • W para la relación de usando (para W(xy) expresa que x está usando y).
Ahora lo siguiente:

(1) Dar una fórmula de lógica predicada que es cierto para la situación en la imagen.

Para esta parte también utilizaremos nuevamente los cuantificadores, en este caso solo utilice uno de la siguiente manera:
  • : Todos, para todos
  • En la imagen se muestran diferentes enunciados que podrían representarse por lógica predictiva, esta es una de ellas: 
  • Todas las chicas están usando sombrero 
      x(Gx ^Hy ^Wxy)
(2) Dar una fórmula lógica predicada que es falsa por la situación en la imagen
  • Algunas chicas no usan sombrero.  
 Gx(¬Wxy->Hy )
 
 

domingo, 9 de septiembre de 2012

Lógica predictiva

En esta semana la tarea a entregar es sobre lógica predictiva(predicados) o lógica de primer orden, dentro del libro "Symbolic Logic" debíamos escoger proposiciones compuestas y obtener de ahí lo que son las proposiciones de lógica predictiva.

Esté es mi par de proposiciones:
  • Some pictures are not first attempts;(Algunas imágenes no son los primeros intentos)
  • No first attempts are really good.(Ninguno de los primeros intentos son  buenos)
Las expresiones que utilice son las siguientes:
  • F(x)= imágenes 
  • G(x)= primeros intentos
  • H(x)= son buenos
Expresiones:
Se  utilizan los cuantificadores para expresar el conjunto de proposiciones.
  • : Todos, para todos 
  • : Por lo menos uno, algunos, algunas
Ahora las proposiciones de lógica predictiva son las que se muestran enseguida:
  • F(x) -> ¬G(x)
  • ¬G(x) -> H(x)
Como ninguno fue un intento bueno, algunas imágenes no son buenas. 
  • Conclusión:  F(x)-> ¬H(x).

martes, 4 de septiembre de 2012

Tarea 4.Diagramas Binarios de Decisión

Para esta tarea el problema a resolver es:
  • Inventen una expresión Booleana(Usando por mínimo 3 variables y 4 conectivos básicos)
  • Construyan y dibujen su BDD.
  • Reduzcan el BDD resultante a un ROBDD.
  • Dibujen el ROBDD resultante.
BDD (Diagrama de Decisión Binario)
Un diagrama de decisión binario (DDB) es un grafo acíclico dirigido con
Uno o dos nodos terminales etiquetados con 0 o 1

Expresión Booleana
Mi expresión a representar es la siguiente:
(x2 ^ x3) v (x1 ^ x3)

Tabla lógica:

Árbol Binario de Decisión: 


BDD: 
Este es mi Diagrama de Decisión Binario que dio como resultado.  


Reducción a ROBDD y ROBDD resultante 
En el PDF: "An Introduction to Binary Decision Diagrams" por Henrik Reif Andersen, se mencionan tres condiciones para el orden y reducción:
  • Las variables deben estar ordenadas
  • Los nodos deben ser únicos
  • Solo tests no redundantes deben estar presentes

Referencias: 
"An Introduction to Binary Decision Diagrams"

martes, 28 de agosto de 2012

Aplicaciones de logica propocional

Una de las formas de definir la lógica proposicional es como lo vimos en clase anteriormente es el estudio de las formas de razonamiento donde su validación depende solamente de las propiedades verdadero o falso.

De manera informal, una proposición se define como una frase que puede ser considerada
Verdadera y que no se puede descomponer en otras frases Verdaderas o Falsas, y estas a su ves pueden ser simples o compuestas.

Ejemplo: 
Luis es inteligente y estudioso = Proposición Compuesta
Llueve si y solo si esta nublado = Proposición Compuesta
Luis es inteligente = Proposición simple

Para poder relacionar distintas proposiciones se utilizan los conectivas como las siguientes:
Existe un lenguaje para la logica proposicional representado por el siguiente conjunto de simbolos: 




Existe un orden de precedencia entre los operadores: ¬, ∧, ∨, ⇒y⇔ 
  
Cada uno de los conectores o constantes lógicas se define semánticamente mediante
una tabla de verdad que muestra sus posibles valores veritativos según los casos. 
Aplicaciones:
Se necesita tener un lenguaje con una sintaxis y semántica bien definida.
Se puede utilizar dentro de las matematicas como:
  • Definición de objetos matemá́ticos: conjunto, números naturales, nú́meros reales.
  • Definición de teorías matematicas: teoria de conjuntos, teoria de los numeros naturales. 
En Circuitos logicos:
La aplicación de la logica proposicional es dentro de circuitos electricos  digitales y es posible en virtud del isomorfismo a la relación de igualdad que existe entre dos objetos.




Teoria de la computación: complejidad descriptiva, y algoritmos de aproximación.
    
En Inteligencia Artificial:
Representación de conocimiento, razonamiento con sentido comú́n.
Referencias: 
Aplicaciones de la logica proposicional 
Conceptos principales
Logica-Proposicional-para-Informitica
Clases lógica
circuitos-lgicos-presentation

martes, 21 de agosto de 2012

Lógica proposicional; formas normales

Tautología
Una expresión lógica es una tautología si es verdadera para todas las asignaciones posibles.

Nota: 
Si P → Q es una tautología se le llama implicación y se escribe P ⇒Q
Si P ↔ Q es una tautología se dice que es una doble implicación, se escribe P ⇔ Q






La validez es parte de una tautología ya que se da en el razonamiento y puede realizarse mediante las tablas de verdad.


Tarea 2. Ejemplo de Tautología
Aquí esta mi tautología esta esta dada por 3 variables de entrada p,q y r, para realizarla primeramente declare las proposiciones estas son compuestas ya que contienen conectivos lógicos. 

Premisas

P1= p ->q
P2=r -> q
P3 = p V r -> q
PT= q
 Tabla de verdad
 


Referencias:
www.fdi.ucm.es/profesor/rmartine/.../logica_tema1_4.pd

lunes, 13 de agosto de 2012

Introducción a la verificación formal

La prueba de software se conoce también como verificación y validación (V&V).
Es asegurar que el sistema de software cumpla las necesidades del usuario
 
Diferencias: 
  • Verificación: 
Se conoce como un conjunto de actividades que aseguran que el software implementa correctamente una función especifica, esto nos lleva a cuestionar, ¿Estamos construyendo el producto correctamente?. El software debe estar conforme a las especificaciones.
  • Validación:  
¿Se esta construyendo el producto adecuado?"El software debe hacer lo que el usuario requiere. 

Verificación estática y dinámica
  •  Verificación dinámica: Se refiere al ejercicio y observación del comportamiento del producto (prueba). 
  • Verificación estática: Se refiere al análisis de la representación estática del sistema para descubrir problemas. 
Los procesos de validación y verificación se inician con revisiones de requerimientos, luego se realizan revisiones del diseño e inspecciones de código hasta llegar a la prueba del producto.

El objetivo del proceso de V&V es garantizar la seguridad de que el sistema software esta “hecho para un propósito “, lo cual significa que el sistema debe ser suficientemente bueno para su uso establecido.
  
Pruebas de programas 
Las técnicas dinámicas también conocidas como testing(prueba) se basa en ejercitar una implementación. 
  • Puede revelar la presencia de errores no su ausencia
  • Una prueba exitosa consiste en descubrir uno o mas errores
  • Solo se considera la técnica de validación para requerimientos no-funcionales
  • De se usada en conjunto con la verificación estática 
  •  Pruebas estadística: Pruebas diseñadas para reflejar la frecuencia de las entradas del usuario.Usadas para estimación de la confiabilidad. 
  • Prueba de defectos: Pruebas diseñadas para descubrir defectos en el sistema. Una prueba de defectos exitosa es aquella que revela la presencia de defectos en el sistema.  
Depuración 
  • La prueba de defectos y la depuración son distintos procesos
  • La prueba de defectos se refiere a la confirmación de la presencia de errores
  • La depuración se refiere a la localización y reparación de estos errores.
  • La depuración involucra la formulación de una hipótesis acerca del comportamiento del programa y la prueba de la hipótesis para encontrar los errores en el sistema.  
Fases de pruebas
  • Pruebas de unidades: prueba de componentes individuales. 
  • Pruebas de módulos: prueba de conjuntos de componentes dependientes.
  • Pruebas de sub-sistemas: prueba de colecciones de módulos integrados en sub-sistemas.
  • Prueba del sistema: prueba del sistema completo ante de su entrega
  • Prueba de aceptación: pruebas de los usuarios para verificar que el sistema cumple con los requerimientos. Llamado en ocasiones prueba alfa.  
Ejemplos de mala validación.

1. Marinero sin rumbo (1962)
 
Coste: 18,5 millones de dólares.

Desastre:
El cohete Mariner 1, en una investigación espacial destinada a Venus, se desvió de su trayectoria de vuelo poco después de su lanzamiento. El control de la misión destruyó el cohete pasados 293 segundos desde el despegue.

Causa:
Un programador codificó incorrectamente en el software una fórmula manuscrita, saltándose un simple guión sobre una expresión. Sin la función de suavizado indicada por este símbolo, el software interpretó como serias las variaciones normales de velocidad y causó correcciones 
erróneas en el rumbo que hicieron que el cohete saliera de su trayectoria.  El fallo del Pentium en las divisiones largas (1993)
 


Coste: 475 millones de dólares, credibilidad de Intel.

Desastre: el promocionadísimo chip de Intel, Pentium, producía errores al dividir números en coma flotante que se encontraban en un rango determinado. Por ejemplo, dividiendo 4195835,0/3145727,0 se obtenía 1,33374 en lugar de 1,33382, un error del 0,006%. Aunque el error afectaba a pocos usuarios, se convirtió en una pesadilla en cuanto a sus relaciones públicas; con unos 5 millones de chips en circulación, Intel ofreció reemplazar los Pentium sólo de aquellos clientes que demostraran que necesitaban alta precisión en sus cálculos. Finalmente, reemplazó los chips de todos los que lo solicitaron.

Causa: El divisor en la unidad de coma flotante contaba con una tabla de división incorrecta, donde faltaban cinco entradas sobre mil, y que provocaba estos errores en los redondeos. 
Referencias:  
Validación y Verificación  
Pruebas