Mostrando entradas con la etiqueta Verificación y validación de software. Mostrar todas las entradas
Mostrando entradas con la etiqueta Verificación y validación de software. Mostrar todas las entradas

martes, 6 de noviembre de 2012

Expresión ω-regular

Para ésta tarea se pidió que se creara una expresión ω-regular y a partir de ella creáramos un NBA (Nondeterministic Büchi Automaton).

Ésta expresión debía cumplir con 2 reglas:
  • Contar con 2 o más operadores(AND, OR, NOT, etc).
  • Contar con 2 o más símbolos( +, *, etc)
Mi expresión w-regular es la siguiente:


La NBA es la siguiente:


Referencias:
http://es.wikipedia.org/wiki/Expresi%C3%B3n_regular

martes, 30 de octubre de 2012

Sistemas de transicion

En esta entrada se modelara un sistema simple y lo representáramos mediante un sistema de transiciones o un grafo de programa, y para mas puntos si se queria, crear la representación en PROMELA. 

El sistema a modelar es la de un microondas:

Componentes.

  • Microondas: Este aparato funcion simplemente al oprimir los botones numericos y al darle en aceptar comienza a calentar la comida mediante giros.
  • Tabla numerica (para el tiempo de calentado): Esta parte del microondas es la que permite al sistema realizar su trabajo ya que si no se presiona un tiempo y al boton aceptar este no hace su trabajo
  • Personas: Este componente no forma parte del microondas (sistema) se implemento ya que sin el las entradas al microondas no serian posibles. Lo que hara es meter la comida y darle tiempo al microondas y oprimir aceptar para que esto funcione.
Microondas:

  • Estados:
-Standby: El microondas permanece esperando a que pongan comida
-Comida: La comida entra y se espera a que el tiempo acabe para calentarla.
-Calentando: El tiempo comienza y se inicia calentar, al terminar el microondas hace un sonido de terminado.
-Fin: La comida es devuelto caliente a la persona, y se regresa al estado de inicio.
  • Acciones Involucradas:
-Insertar comida: La persona inserta la comida al microondas.
-Teclea_tiempo: Se teclea el tiempo y se presiona aceptar para comenzar a calentar.
-Sonido: El microondas realiza un sonido para decir que a acabado

Aqui parte del grafo:

Tabla numerica
  • Estados:
-Inicio: La tabla numerica tiene un pequeño display donde muestra la hora a la espera de la hora.
-Timer: Al precionar aceptar, el timer hace una cuenta hacia atras hasta terminar calentando la comida.
  • Acciones Involucradas:
-Sonido: para poder sacar la comida.
-btn aceptar: Teclear el tiempo deseado y y oprimir aceptar para que empiece a calentar.

Aqui parte del grafo:

Persona:
  • Estados:
-Inicio: La persona se encuentra sin hacer nada hasta que le de hambre.
-Espera: La persona espera a que la comida este lista.
  • Acciones Involucradas:
-Insertar comida: La persona inserta la comida al microondas.
-Sonido/cancelar: La persona espera o cancela para poder sacar su comida.

Aqui la parte del grafo:

Estados:
0, 1 = Estados del componente Persona (Inicio, Espera)
A, B, C, D = Estados del componente Tostador(Standby, Comida, Calentando, Fin)
X, Y, Z = Estados del componente de las teclas (Stanby, Esperar, Sonido)

Acciones:
1, 2, 3, 4: meter_comida, sonido, Teclear, cancelar

Aqui el grafo completo:



martes, 23 de octubre de 2012

Red de petri

Bueno para esta semana se encargo realizar una Red de Petri, primer daremos un poco de introduccion:

Una Red de Petri es una simulación de un sistema, con eventos de forma paralela, concurrente o de manera distribuida, puede ser representada tanto matemáticamente o gráficamente.

Estos sistemas por lo general están compuestos por:
  • Transiciones: Estas transiciones están unidas por lo general a dos lugares o mas.
  • Lugares: Son los estados del sistema.
  • Marcas: Representación de los objetos dentro de los lugares.
Estas redes de petri tienen condiciones que se deben cumplir al momento de construirse:
  • Un arco une siempre lugares con transiciones y nunca dos lugares o dos transiciones.
  • Una transición puede ser destino de varios lugares y un lugar puede ser el destino devarias transiciones.
  • Una transición puede ser origen de varios lugares y un lugar puede ser origen de varias transiciones.
  • Los lugares pueden presentar marcas (una marca se representa mediante un punto en el interior del círculo).
  • Cada lugar tiene asociada una acción o salida. Los lugares que contiene marcas se consideran lugares activos. Cuando un lugar está activo sus salidas están a uno.
  • A las transiciones se les asocia eventos (funciones lógicas de las variables de entrada). Una transición se dice que está sensibilizada cuando todos su lugares origen están marcados.
  • Cuando ocurre un evento asociado a una transición (la función lógica se hace uno), se dice que la transición está validada.
Bien ahora vamos a realizar nuestra red de petri con la ayuda de python-snakes.


Bien lo que se hizo fue la del funcionamiento de un elevador

Estos son los estados:
  • Espera
  • BPS = Boton para subir
  • BPB = Boton para bajar
  • Abrirps = puerta se abre para subir
  • Cerrar = puerta se cierra para el viaje
  • P1 = Piso 1 
  • P2 = Piso 2
  • P3 = Piso 3 
  • Abrirpb = se abre elevador para bajar.
Estas son las transiciones:
  • Selec Pet = Selecciona peticion(para que llegue el elevador).
  • Esperabps = Espera la llegada si presiono BPS.
  • Esperabpb = Espera la llegada si presiono BPB.
  • Tiempo Subida = Tiempo para abordar el elevador.
  • Presion P1 = Se preciono la tecla P1.
  • Presion P2 = Se preciono la tecla P2.
  • Presion P3 = Se preciono la tecla P3.
  • Tiempo Bajada = Tiempo para bajar del elevador.
  • if btn <= 1 = esta es condicion por si otro boton esta presionado.



Aqui la imagen que me lanza python snake:





Aqui esta el codigo:


Referencias:
http://es.wikipedia.org/wiki/Red_de_Petri
Tutorial

martes, 18 de septiembre de 2012

Tarea 6: Logica predicativa

En esta semana nos toco escoger un problema y realizarlo del siguiente pdf: http://www.logicinaction.org/docs/ch4.pdf

El ejercicio que se escogio fue el 4.28, en el que dice:
Which quantifier occurrence binds which variable occurrences?
∀x(Px  ⇒ ∃xRxx)
Traducido:
Que cuantificador de ocurrencia se unen con la variable de ocurrencia?
∀x(Px  ⇒ ∃xRxx)

Aqui el arbol, con el fin de ver mejor el problema o la solucion que queremos encontrar:

Solucion:
Las dos "x" son ocurrencia del primer cuantificador "∀x".
Y las ultimas dos "x" de esta sentencia "∃xRxx" son ocurrencias del cuantificador existencial "∃x".

martes, 11 de septiembre de 2012

Lógica Predicativa

Para la realizacion de la tarea 5, se escogio un ejercicio del libro "Lean Symbolic Logic" de  Lewis Carroll.

Este es el ejercicio escogido, el numero 12:

Some holidays are rainy;
Rainy days are tiresome.

Damos una equivalencia simbolica, aqui lo que hice:
  • H(x) = holidays
  • R(x) = rainy
  • T(x) = tiresome
 Cuantificadores:
  • ∀ = Para todos.
  • ∃ = Por lo menos uno, alguno 
Ahora combinamos y este es el resultado:

 Some holidays are rainy;
∃xH(x) -> R(x)
 
Rainy days are tiresome.
∀xR(x) -> T(x)

Entonces podriamos decir que:

Some holidays are rainy and tiresome
  ∴∃xH(x) -> R(x)^T(x)

martes, 4 de septiembre de 2012

BDD: Diagrama de Decisión Binario

En esta semana la tarea es realizar las siguientes actividades:

1-. Crear una expresión Booleana
2-. Realizar un BDD con la misma
3-. Reducir el BDD a un ROBDD

La expresión Booleana a verificar es la siguiente:
y(x) = [(A ^ C) v (A v B)] ^ (¬B)

La tabla de verdad:



Aqui como queda el diagrama:



Unimos las C similares de 0 y 1


Como en las lineas de 1 de B las dos son iguales entonces eliminamos una C y unimos


El B como sus dos C son iguales a 0 entonces eliminamos uno y unimos

El B como sus dos resultados daran 0 entonces eliminamos el C.


Al final asi me queda:


martes, 28 de agosto de 2012

Aplicaciones de logica proposicional

¿Que es logica proposicionl?

La lógica proposicional es la más antigua y simple de las formas de lógica, es la parte que permite el razonamiento, a través de un mecanismo que primero evalúa sentencias simples y luego sentencias complejas, formadas mediante el uso de conectivos proposicionales, por ejemplo Y (AND), O (OR). Este mecanismo determina la veracidad de una sentencia compleja, analizando los valores de veracidad asignados a las sentencias simples que la conforman.

Una lógica proposicional es un sistema formal cuyos elementos más simples representan proposiciones, y cuyas constantes lógicas, llamadas conectivas, representan operaciones sobre proposiciones, capaces de formar otras proposiciones de mayor complejidad.

Una proposición es una sentencia simple que tiene un valor asociado ya sea de verdadero (V), o falso (F). Por ejemplo:
  • Hoy es martes
  • Hace frío
La lógica proposicional, permite la asignación de un valor verdadero o falso para la sentencia completa, no tiene facilidad par analizar las palabras individuales que componen la sentencia. Por este motivo, la representación de las sentencias del ejemplo, como proposiciones, sería:
  • hoy_es_martes
  • hace_frío
La proposiciones pueden combinarse para expresar conceptos más complejos. Por ejemplo:
  • hoy_es_martes y hace_frío.
A la proposición anterior dada como ejemplo, se la denomina fórmula bien formada (well-formed formula, wff). Una fórmula bien formada puede ser una proposición simple o compuesta que tiene sentido completo y cuyo valor de veracidad, puede ser determinado. La lógica proposicional proporciona un mecanismo para asignar valores de veracidad a la proposición compuesta, basado en los valores de veracidad de las proposiciones simples y en la naturaleza de los conectores lógicos involucrados.

Los conectadores básicos de la lógica proposicional, se dan en la siguiente tabla
NOMBRE
CONECTOR
SÍMBOLO
Conjunción
Disyunción
Negación
Implicación
Equivalencia
AND
OR
NOT
If-Then
Igual
^
v
~
=>
=


Límites de la lógica proposicional
La maquinaria de la lógica proposicional permite formalizar y teorizar sobre la validez de una gran cantidad de argumentos. Sin embargo, también existen argumentos que son intuitivamente válidos, pero cuya validez no puede ser probada por la lógica proposicional. Por ejemplo, considérese el siguiente argumento:
  • Todos los hombres son mortales.
  • Sócrates es un hombre.
  • Por lo tanto, Sócrates es mortal.

Como este argumento no contiene ninguna de las conectvias «no», «y», «o», etc., según la lógica proposicional, su formalización será la siguiente:
  • p
  • q
  • Por lo tanto, r

Pero esta es una forma de argumento inválida, y eso contradice nuestra intuición de que el argumento es válido. Para teorizar sobre la validez de este tipo de argumentos, se necesita investigar la estructura interna de las variables proposicionales. De esto se ocupa la lógica de primer orden.

Aplicaciones de la logica proposicional

Existen muchas aplicaciones de la logica proposicional aqui menciono algunas y explicare dos ejemplos sobre que tratan.

  1. El problema de los veraces y los mentirosos
  2. El problema de los animales
  3. El problema de los trabajos
  4. El problema de los cuadrados
  5. El problema del coloreado del pentágono
  6. El problema del palomar
  7. El problema de los rectángulos
  8. El problema de las 4 reinas
  9. El problema de Ramsey
  10. Comparación de los problemas

Problema de los veraces y los mentirosos

Enunciado: En una isla hay dos tribus, la de los veraces (que siempre dicen la verdad) y la de los mentirosos (que siempre mienten). Un viajero se encuentra con tres isleños A, B y C y cada uno le dice una frase:
  • A dice “B y C son veraces syss C es veraz”
  • B dice “Si A y B son veraces, entonces B y C son veraces y A es mentiroso”
  • C dice “B es mentiroso syss A o B es veraz”
Determinar a qué tribu pertenecen A, B y C.

Representación:
  • a, b y c representan que A, B y C son veraces
  • -a, -b y -c representan que A, B y C son mentirosos


El problema de las 4 reinas

Enunciado: Calcular las formas de colocar 4 reinas en un tablero de 4x4 de forma que no haya más de una reina en cada fila, columna o diagonal.

Representación: cij (1 ≤ i, j ≤ 4) indica que hay una reina en la
fila i columna j.


Logica proposicional en inteligencia artificial


La lógica proposicional toma un rol muy importante en el desarrollo de la inteligencia artificial.

HIPÓTESIS DE LA REPRESENTACIÓN DEL CONOCIMIENTO

Una visión muy frecuente (Aunque es controversial) entre los investigadores de la Inteligencia Artificial es que para que un sistema sea "artificial inteligente," debe contener un Componente que se puede entender como lingüístico (es decir, que puede ser expresado en algún lenguaje)
tales que:
  • Este componente contiene el conocimiento del sistema, y
  • Este componente conduce el comportamiento inteligente del sistema
Los AGENTES BASADOS EN EL CONOCIMIENTO
Un Agente Basado en Conocimiento (ABC) es aquel sistema que posee conocimiento de su mundo y que es capaz de razonar sobre las posibles acciones que puede tomar para cambiar el estado de su mundo.
El ABC es un conjunto de sentencias, representado mediante un lenguaje de representación de conocimiento.

EL ABC consiste principalmente en:

Base del conocimiento:
Es un sistema de oraciones que representan hechos acerca del mundo, expresado en un algún lenguaje de representación del conocimiento.
Cada hecho está representado por una sentencia u oración
Siempre que se ejecuta el programa del agente basado en el conocimiento, sucede dos cosas:
  • El programa informa a la Base de Conocimiento lo que percibe.
  • El programa pregunta a la Base de Conocimiento qué hacer, luego graba la respuesta.
  • La pregunta se responde mediante el razonamiento lógico.

Motor de inferencia

Deduce nuevas oraciones o sentencias a partir de las oraciones almacenadas en la base de conocimiento y de las nuevas percepciones

Adición de nuevo conocimiento





Bibliografias:
http://www.monografias.com/trabajos/iartificial/pagina4_1.htm
http://es.wikipedia.org/wiki/L%C3%B3gica_proposicional

aplicaciones: www.cs.us.es/~jalonso/cursos/li/temas/tema-14.pdf

aplicacion IA: http://www.monografias.com/trabajos51/inteligencia-artificial/inteligencia-artificial.shtml

martes, 21 de agosto de 2012

Tautologia

Primero que nada vamos a ver que es una tautologia:


Es una fórmula bien formada de un sistema de lógica proposicional que resulta verdadera para cualquier interpretación; es decir, para cualquier asignación de valores de verdad que se haga a sus fórmulas atómicas. La construcción de una tabla de verdad es un método efectivo para determinar si una fórmula cualquiera es una tautología o no.

Por lo tanto, para determinar si una fórmula cualquiera es una tautología, basta con considerar todas las posibles interpretaciones de las fórmulas atómicas, y calcular el valor de verdad del todo. Esto se logra mediante una tabla de verdad.

Ejercicio:

Esta tarea consistia en elaborar una tautologia con las siguientes condiciones:
  • 3 variables
  • 4 conectivos lógicos
  • Por lo menos 1 disyunción, 1 conjunción y 1 negación
Aqui la tabla de verdad:
1 = falso
0 = verdadero



 Aqui el arbol: