lunes, 20 de agosto de 2012

Tautología

Para esta semana, la tarea fue crear una tautología. Introduciendo un poco en el tema hablaremos del concepto de tautología.


"En lógica, una tautología 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"

Para esta tarea hubo algunos requerimientos:
  • Utilizar 3 variables en la expresión
  • Utilizar 4 conectivos lógicos
La expresión que inventé fue la siguiente:

((p v q) v r) -> (p^¬q), la siguiente tabla corresponde a la tabla de verdad de esta expresión, esta expresión fue mi primer intento para crear una tautología y como pueden observar no fue exitoso, pero me sirvió para verla y pensar que podría cambiar para que fuera tautología.



Hice un cambio pequeño y la nueva expresión quedo: (p^¬q) -> ((p v q) v r), con esto podemos ver que se logró crear una tautología.



Ahora veamos el árbol correspondiente a la tautología anterior.



miércoles, 8 de agosto de 2012

Automatización y Control de Sistemas Dinámicos

Proximamente..

Verificación y Validación de Software


Verificación y Validación de Software
La verificación y validación de Software sirven para valorar y mejorar la calidad de los productos de trabajo generados durante el desarrollo y modificación del software. 
Existen dos tipos de verificación, formal y del ciclo de vida. La verificación formal es una demostración matemática de la concordancia del código fuente con sus especificaciones y la del ciclo de vida es el proceso de determinar el grado de los productos de trabajo de una fase dada del ciclo de desarrollo cumplen con las especificaciones establecidas en las fases anteriores.
La validación es la evaluación del software al final del proceso de desarrollo del software para determinar su conformidad con los requisitos IEEE.
V&V implican la valoración de los productos para determinar el apego a las especificaciones, incluyen:
  • Especificaciones de requisitos
  • Documentación del diseño
  • Estándares del lenguaje de instrumentación
  • Estándares organizacionales
  • Expectativas del usuario


Fallos en Software
Existen muchísimos errores que se pueden presentar en un software, el origen de este concepto es por un fallo en el hardware. En 1968, en la primera conferencia organizada por la OTAN sobre el desarrollo de software se definió el concepto de Crisis de Software donde se dijo que desarrollar un software era algo complejo que tenía probabilidad de que aparecieran errores.
Algunos accidentes graves que se han presentado:
  • La Mariner 1 (1962). Fue la primera misión de la NASA para sobrevolar Venus. El cohete no duró más de 5 minutos en vuelo cuando se desvió de su trayectoria y fue autodestruido. El motivo de este fallo fue la omisión de un guión '-' en el programa que controlaba el cohete.

  • Therac-25 (1985-1987). La Atomic Energy of Canada Limited creó una máquina de radioterapia para uso en la medicina. Se registraron seis accidentes en los que los pacientes tuvieron alta sobredosis de radiación. En las investigaciones se responsabilizó al software por un código indocumentado y con fallos.

  • AT&T (1990): La empresa AT&T perdió unos $60 millones de dólares al dejar aproximadamente a 60.000 clientes sin comunicación en llamadas de larga distancia. El motivo de esta caída fue debido a los interruptores que se reseteaban cada pocos segundos debido a un fallo en una actualización del software. Este fallo provocaba una caida cascada entre los diferentes interruptores.

  • Chips Pentium (1994): Un error en el juego de instrucciones en los chip Pentium repercutió en la empresa $475 millones de dólares de costes en recogida y reenvío de procesadores. El error se reproducía al realizar una división con coma flotante en el que a partir del cuarto dígito decimal no daba valores correctos. Este fallo empezó a llamarse “bug de FDIV“.

Encontré también una página de Top 10 de los errores de software más costosos, está muy interesante les dejo el link.

Referencias:



Aplicación de una red neuronal


En la actualidad, hay grandes amenazas en el correo electrónico como virus, troyanos, gusanos y el flujo de mensajes no solicitados conocidos como Spam. El Spam se utiliza para anunciar productos y servicios de calidad dudosa. En un estudio de Microsoft Network y America Online, Inc. se reportó un total diario de 2.4 millones de Spam en e-mails entrantes. 

El aprendizaje automático es una base de investigación para la inteligencia artificial. El modelo de aprendizaje conexionista (basado en redes neuronales), está inspirado en una simplificación del sistema neuronal biológico (cerebral). Una red neuronal artificial está conformada por elementos de cálculo aritmético (neuronas) conectadas entre sí. 

Mi idea de proyecto consiste en detectar Spam en el correo electrónico por medio de redes neuronales, esto debido al excesivo Spam que existe en los correos electrónicos que nos causan muchas molestias al momento de abrir el correo y tener mensajes publicitarios no solicitados, cadenas de la suerte, virus, entre otras cosas que causan que revisar el correo sea una molestia.



Referencias:


viernes, 20 de mayo de 2011

lunes, 16 de mayo de 2011