domingo, 26 de agosto de 2012

Aplicaciones de lógica proposicional

Hoy en día nos preguntamos para que  sirven las proposiciones lógicas o la lógica en si. Pues existen  diferentes aplicaciones  y  ademas de ser bastante util en sistemas informaticos. Aquí unos cuantos ejemplos del porque debemos estudiarlo:


Problemas de clarificación mediante reglas:

Uno de los ejemplos mas sencillos es sobre las características especiales ya sean de objetos, animales, personas entre otras y por medio de la lógica proposicional sabremos quien es quien con respecto a las entradas dadas o series de reglas . Por ejemplo:


1-. Esta cosa piensa razonablemente
2-. Esta cosa tiene vida
3-. Esta cosa se mueve
4-. Esta cosa no tiene un tamaño mayor a los 2 mts de altura
5-. Esta cosa ladra
6-. Esta cosa tiene significante pelaje
7-. Esta cosa esta hecha de plástico
8-. Esta cosa hace ruido

Y con base de ciertas reglas o clasificadores como estos:

1-. Esta cosa hace ruido, no mide mas de 2 mts, tiene vida y se mueve. Entonces es humano o perro
2-. Esta cosa hace ruido, tiene tamaño inferior a dos mts no tiene vida. Entonces esto es un objeto
3-. Esta cosa tiene significante pelaje, y ladra. Entonces es perro
4-. Esta cosa piensa rasonablemente, Entonces es humano

Problemas de Búsquedas


Y a través de diferentes hechos, deducimos por medio de lógica proposicional, que si tal cosa es lo que es o descubrimos que es lo que nos mostraron o es en realidad.

Hecho1 : Hace ruido // Entonces es humano o perro u objeto
Hecho 2:  Se mueve //Entonces es humano o perro u objeto
Hecho 3 : Tiene vida: // Entonces es humano o perro pero no objeto
Hecho 3: Piensa Razonablemente  // Entonces es humano y no perro

Entonces esto es Humano


Referencia para esto: http://www.cs.us.es/~jalonso/cursos/li/temas/tema-14.pdf



Otra de las aplicaciones mas interesante es sobre algún reconocimiento de lenguaje natural humana, aunque esta tenga sus diferentes tipos de limitaciones.

En si es necesario la lógica proposicional para hacer esto, como se haria en si?'

Se necesitaría una serie de base de datos o series de reglas como en el ejemplo anterior, y dar restricciones con respecto a lo que se este hablando.

Reglas tipo:

1-. No repetir lo mismo
2-. No sonar tanto como psicológico (Esto quiere decir que en si el programa lógico haga preguntas como "Y usted como se siente con eso")

3-. Tipo de persona, ya sea genero, animo entre otras.

Hoy en día aun se sigue intentando hacer que un programa lógico trate lo mas razonablemente posible a utilizar un lenguaje mas normal que el formal.










Referencias:
http://www.cs.us.es/~jalonso/cursos/li/temas/tema-14.pdf
http://web.ing.puc.cl/~jabaier/iic2212/lp3.pdf
Imagenes:
http://engage.intel.com/servlet/JiveServlet/showImage/102-31450-2-106156/LOGICA1.JPG
http://www.robotikka.com/wp-content/uploads/2012/08/vidaartificial_clip_image002.jpg

sábado, 18 de agosto de 2012

Tautología



Mi primer intento fallido

P Q k PvQ Q^K 1v2 ¬K 3v4
0 0 0 0 0 0 1 1
0 0 1 0 0 0 0 0
0 1 0 1 0 1 1 1
0 1 1 1 0 1 0 1
1 0 0 1 0 1 1 1
1 0 1 1 0 1 0 1
1 1 0 1 1 1 1 1
1 1 1 1 1 1 0 1


Pasamos al bueno:

Exprecion de la Proposición:

P = ((PvQ)v¬(Q^K))^(Kv(Qv¬K))

Tabla de Verdad:

P
Q
k
PvQ
Q^K
¬(Q^K)
¬K
(PvQ)v¬(Q^K)
(Qv¬K)
Kv(Qv¬K)
((PvQ)v¬(Q^K))^(Kv(Qv¬K))
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1


Aquí tenemos la representación en forma de árbol




martes, 7 de agosto de 2012

Introduccion a la Verificacion y Validacion de Software

Verificación y Validación de Software



Un software listo, ideal, terminado es cuando este producto a pasado a través de diferentes tipos de prueba, además se a construido o desarrollado de manera correcta.



Que es la Validación:


Validación se refiera a las pruebas que se realiza al producto ya finalizado, en este caso el software cumple o realiza las especificaciones que pide el usuario ya teniendo el producto terminado.

De manera tradicional las pruebas que se utilizan durante el ciclo del desarrollo del software es meramente validación ya anteriormente mencionado.


Tipos de validación

Objetiva: Especificaciones formales
Interpretativa: Actividades diseñadas para corregir errores de tipo conceptual y de contexto




Métodos de validación

Informalreuniones
Testing
Pruebas de campoActuación en paralelo con experto.
Subsistemas
Análisis de sensibilidad. Sistemas con incertidumbre: cambios provocados.


Criterios de la validación:

1-. Cuántos casos de prueba.
Š2-. Cómo se generan estos casos de prueba.
3-. Establecer una proporción entre casos fáciles, medios y
difíciles.
Š4-. Cómo comparar los resultados con los de un experto.
Š5-. Cómo se mide la realización de un experto humano en ese
campo.
6-. Cómo evaluar el sistema cuando distintos expertos opinan
distintas cosas.
Š7-. Si se generan distintas respuestas cómo se consideran.


Resultados de la validación:

Exactitud u aceptabilidad de soluciones.
Š Adecuación al problema.
ŠIdentificar los diferentes tipos de errores





Que es la Verificación:



El papel de la verificación comprende comprobar que el software está de  acuerdo con su especificación. Se comprueba que el sistema cumple los  requerimientos funcionales y no funcionales que se le han especificado.


Criterios a considerar:

Consistencia
Precisión
Completud


Tipos de inconsistencias al realizar la verificación en el momento de ejecutar la verificación en alguna de las etapas:

Estructural: 
-> Si tiene alguna regla innecesaria
-> inalcanzable
-> se cicla
-> no se ejecuta
entre otras

Algunos ejemplos de errores estructurales

1-. x*y = z,   y*x = z
2-.x = z, z = y, x = y

Lógicas:
Reglas con concluciones redundantes
Las reglas ocultan otras
Reglas con conclusiones ilógicas


Semántica:
Variables con valores no validos
Incoherencia en patrones y reglas

Pasos en conjunto de la verificación y la validación:

1-. Verificar si el sistema es completo y preciso
2-. Evaluar el sistema durante el ciclo de construcción del mismo
3-.Diseñar la validación final del sistema
4-. Corregir los errores pertinentes no encontrados con anterioridad




En que nos ayuda la Verificación y la Validación?

Nos ayuda a que sean seguros los sistemas terminados, que han seguido ciertos reglamentos en el desarrollo del producto en sus diferentes etapas de construcción, además que cumplen las especificaciones requeridas.

Esto ayuda al programador a reducir el riesgo de problemas que pueda tener el producto terminado en este caso el programa hasta un cierto nivel, además de detectar diferentes tipos de errores durante la construcción del software.


La Verificación y la Validación son dos terminos en donde se suele mal interpretar en su significado.

Pruebas de Verificación y Validación del software:


Problemas que se pudieron haber evitado: 

Problema de Equipaje del aeropuerto internacional de denver




En 1994  se probo el sistema automatizado de equipaje de las cuales algunas no funcionaron como se esperaba esto por el mal administración en cada una de las fases, con ayuda de la verificación se pudo evitar el retraso de la inauguración hasta el 2005 y el gasto innecesario de los recursos



Referencias:

http://www.buzzle.com/editorials/4-5-2005-68117.asp
http://www.giaa.inf.uc3m.es/docencia/II/IConocimiento/tema6.pdf
http://www.ctr.unican.es/asignaturas/Ingenieria_Software_4_F/Doc/M7_09_VerificacionValidacion-2011.pdf

http://www.scribd.com/doc/79808328/BAE1