lunes, 29 de febrero de 2016

Pruebas de verificación

PRUEBAS DE VERIFICACIÓN


Una vez que se ha creado o se puede usar un generador es importante verificar si los números generados poseen las características mencionadas. La comprobación de tales características se realiza mediante ciertas pruebas estadísticas, que son las siguientes:



  1. Prueba de medias: 


Consiste en verificar que los números generados tengan una media estadísticamente igual a 1/2, de esta manera, se analiza la siguiente hipótesis:
pruebamedias
Paso 1: Calcular la media de los n números generados
prmedias1.1
Paso 2: Calcular los límites superior e inferior de aceptación
limites
Paso 3: Si el valor de x se encuentra entre li^ y ls, aceptamos que los números tienen una media estadísticamente igual a 1/2 con un nivel de aceptación 1 – a.
2. Pruebas de varianza:
Consiste en verificar si los números aleatorios generados tienen una varianza de 0.083, del tal forma que la hipótesis queda expresada como:
Varianza
Paso 1 Calcular la varianza de los n números generados V(x)
pruebavarrr1
Paso 2 Calcular los límites superior e inferior de aceptación
pruevarrr2
Paso 3 Si V(x) se encuentra entre los valores de liv^ y lsv^, aceptamos la hipótesis nula.
3. Pruebas de Independencia:
Las pruebas de independencia consisten en demostrar que los números generados son estadísticamente independientes entre sí, esto es, que no dependen uno de otro. Para esto se propone la siguiente hipótesis:
independ
Prueba de corridas
independ
Paso 1: Clasificar cada número aleatorio con respecto al anterior, de acuerdo con:
corridasss
Paso 2: Calcular el número de corridas observadas h. Una corrida se forma por un conjunto de números aleatorios consecutivos del mismo signo.
Paso 3: Calcular E(h) y V(h) de acuerdo con:
Corridas22
donde n es el número de datos generados
Paso 4: Calcular el estadístico z:
estadistico
si z es menor que el valor crítico Zα/2 se acepta la hipótesis de independencia.

Fuentes de Información:
http://www.unamerida.com/archivospdf/337%20Lectura6.3.1.pdf

Números pseudoaleatorios

Generación de números pseudoaleatorios




En los experimentos de simulación es necesario generar valores para las variables aleatorias representadas estas por medio de distribuciones de probabilidad. Para poder generar entradas estocásticas (probabilisticas) para un modelo de simulación, se debe contar con un generador de números pseudoaleatorios. Con estos y métodos de generación de variables aleatorias, se pueden simular las entradas incontrolables para un modelo de simulación.

Inicialmente los números aleatorios se generaban en forma manual o mecánica utilizando técnicas como ruedas giratorias, lanzamientos de dados, barajas. También existen métodos aritméticos que permiten generan un gran conjunto de números aleatorios, pero el advenimiento de la computadora ha permitido crear generadores que permitan generar de manera sucesiva todo los números aleatorios que se requieran. Un número pseudoaleatorio no es más que el valor de una variable aleatoria x que tiene una distribución de probabilidad uniforme definida en el intervalo (0, 1).   

MÉTODOS PARA GENERAR NÚMEROS PSEUDOALEATORIOS.

1. Métodos Manuales: son los métodos más simples y lentos, ejemplo de estos métodos son lanzamientos de monedas, dados, cartas y ruletas. Los números producidos por estos métodos cumplen las condiciones estadísticas mencionadas anteriormente, pero es imposible reproducir una secuencia generadas por estos métodos. 
2. Tablas de números aleatorios: estos números se pueden generar por medio de una hoja de cálculo o por cualquier generador de cualquier lenguaje de programación razón por la cual su comportamiento es totalmente determinístico.
3. Mediante el computador digital: existen tres métodos para producir números aleatorios mediante un computador: 
  • Provisión externa. 
  • Generación interna a través de un proceso físico aleatorio. 
  • Generación por medio de una regla de recurrencia. 


MÉTODOS ARITMÉTICOS PARA GENERAR NÚMEROS PSEUDOALEATORIOS. 

1. Métodos de Cuadrados Medios: el procedimiento de obtención de números pseudoaleatorios con este tipo de generador es el siguiente: 
• Se define una semilla. 
• Se eleva la semilla al cuadrado. 
• Dependiendo de la cantidad de dígitos que se desea tenga el número pseudoaleatorio, se toman de la parte central del número resultante en el paso anterior el número de dígitos requeridos. 
Si no es posible determinar la parte central, se completa el número agregando ceros al principio o al final. 
• Debe tenerse en cuenta que se desean números pseudoaleatorios entre 0 y 1, en consecuencia el resultado se debe normalizar, es decir, si los números son de dos dígitos se normaliza dividiendo por 100, si es de tres dígitos por mil y así sucesivamente.  

2. Método de Producto medio: este método es un poco similar al anterior pero se debe comenzar con dos semillas cada una con k dígitos, el número resultante se toma como las cifras centrales del producto de los dos números anteriores. 

3. Método del producto medio modificado: consiste en usar una constante multiplicativa en lugar de una variable. Es decir Xn+1 = (K*Xn). Debe notarse que los métodos anteriores tienen periodos relativamente cortos, los cuales son afectados grandemente por los valores iniciales que se escojan, además son estadísticamente insatisfactorios. También debe tenerse en cuenta que un generador con un periodo corto no sirve para hacer un número considerado de ensayos de simulación. 

MÉTODOS CONGRUENCIALES 

Se han desarrollado básicamente tres métodos de congruenciales para generar números pseudoaleatorios, los cuales se derivan del empleo de diferentes versiones de la relación fundamental de congruencia. El objetivo de cada uno de los métodos es la generación en un tiempo mínimo, de sucesiones de números aleatorios con periodos máximos. 
Los métodos congruenciales son: el aditivo, el multiplicativo y el mixto. 

1. Método Congruencial Aditivo: calcula una sucesión de números pseudoaleatorios mediante la relación Xn+1= Xn +Xn-k (mod M). Para usar este método se necesitan k valores iniciales, siendo k entero. Las propiedades estadísticas de la secuencia tienden a mejorarse a medida que k se incrementa. Este es el único método que produce periodos mayores que M. 

2. Método Congruencial Multiplicativo: calcula una sucesión Xn de enteros no negativos, cada uno de los cuales es menor que M mediante la relación Xn+1= a.Xn (mod M). Es un caso especial de la relación de congruencia en que c=0, este método se comporta de manera satisfactoria estadísticamente, es decir, los números generados por medio de este método están unifórmente distribuidos, y no están correlacionados. Este método tiene un periodo máximo menor que M, pero se pueden imponer condiciones en a y X0 de tal forma que se obtenga el periodo máximo. Desde el punto de vista computacional es el más rápido de todos. 

3. Método Congruencial Mixto o Lineal: los generadores congruenciales lineales generan una secuencia de números pseudoaleatorios en la cual el próximo número pseudoaleatorio es determinado a partir del último número generado, es decir, el número pseudoaleatorio Xn+1 es derivado a partir del número pseudoaleatorio Xn La relación de recurrencia para el generador congruencial mixto es Xn+1 =(a Xn+c) mod m, en donde:
• X0 = es la semilla 
• a =el multiplicador 
• c = constante aditiva 
• m = el modulo (m > X0, a,c) 
• X0, a, c >0 
Esta relación de recurrencia nos dice que Xn+1 es el residuo de dividir a Xn+c entre el modulo. Lo anterior significa que los valores posibles de Xn+1 son 0,1,2,3 ....m-1, es decir, m representa el número posible de valores diferentes que pueden ser generados.  

Fuente de información:
https://carlosmarquez.files.wordpress.com/2012/02/unidad-4-generacion-de-numeros-pseudoaleatorios1.pdf

Generación de variables aleatorias

Generación de variables aleatorias



Las variables aleatorias son aquellas que tiene un comportamiento probabilístico en la realidad. Por ejemplo, el número de clientes que llegan cada hora a un banco depende del momento del día, del día de la semana y de otros factores.
En muchos experimentos a los resultados del experimento se pueden asignar valores numéricos.
Una variable aleatoria es una regla que asigna un número a cada resultado de un experimento. Estos números se denominan los valores de la variable aleatoria. 

La generación de cualquier variable aleatoria se va a basar en la generación previa de una distribución uniforme (0,1). Y las transformaciones de dichos números generados en valores de otras distribuciones.
La mayoría de las técnicas utilizadas para la generación se pueden agrupar en:
Ø Método de la transformada inversa
Ø Método de aceptación-rechazo
Ø Método de composición
Ø Método de convolución

Después de obtener los datos del sistema real, es necesario convertirlos en información o datos de entrada del modelo de simulación. Es posible distinguir dos tipos de información:
1. Información determinística. Esta información entra directamente al modelo con su valor correspondiente en el sistema real.
2. Información probabilística. Es necesario crear modelos de simulación que imiten el comportamiento de esas variables.
Al crear un modelo de simulación debemos ser capaces de tomar ese comportamiento y modelarlo. Los números aleatorios son la base en los modelos de simulación donde hay variables estocásticas, ya que dichos números son la herramienta para generar eventos de tipo probabilístico. La metodología consiste en la creación matemática de expresiones sencillas partiendo de lo que se conoce como generación de números aleatorios uniformes entre O y 1.
Fuentes de información:
http://simulacionunilibre.blogspot.mx/2011/04/generacion-de-variables-aleatorias.html}

Pasos para simular

PASOS PARA REALIZAR UNA SIMULACIÓN



1. Identificación y análisis del objetivo que se quiere desarrollar: Se define el sistema que se desarrollará y se estudiará. Las entidades y variables que lo conforman.

2. Recopilación de datos: Es la parte mas lenta y costosa en desarrollar, ya que se necesita recolectar información de calidad para realizar una certera simulación.

3. Diseño del modelo de simulación: Es donde se refleja la información y los conocimientos obtenidos anteriormente, lo que creará la esencia del sistema. Y cambios deseados en parámetros y variables.

4. Desarrollo o Construcción del modelo de simulación: Es donde se captura y codifica el sistema en la computadora, y esto debe reflejar el diseño del modelo.

5. Validación y verificación: Aquí es donde se aclaran todas las dudas que se tengan sobre el sistema desarrollado respecto a la credibilidad del diseño del modelo, su funcionamiento y la codificación del programa funcional.

6. Simulación: Es el proceso de repetir el comportamiento del sistema mediante el modelo, bajo diferentes condiciones del modelo o en su operación. Y esto es realizado mediante el aprovechamiento de medios computacionales.

7. Análisis del modelo de la simulación: Es donde se estudian los resultados obtenidos mediante varias corridas de la simulación y se detectan soluciones al objetivo planteado para el sistema.

8. Alternativas de solución generadas: Es la última parte del proceso de una simulación, y consiste en enmarcar el análisis dentro de distintas perspectivas para los caminos en cada sistema para los diferentes caminos que puede tomar la empresa.

Fuentes de información:
*http://tesis.uson.mx/digital/tesis/docs/7444/Capitulo4.pdf
*http://webdelprofesor.ula.ve/ingenieria/hhoeger/simulacion/PARTE3.pdf

Método de Montecarlo

Método de Montecarlo:



El método Montecarlo es un método numérico que permite resolver problemas físicos y matemáticos mediante la simulación de variables aleatorias. Lo vamos a considerar aquí desde un punto de vista didáctico para resolver un problema del que conocemos tanto su solución analítica como numérica. El método Montecarlo fue bautizado así por su clara analogía con los juegos de ruleta de los casinos, el más célebre de los cuales es el de Montecarlo, casino cuya construcción fue propuesta en 1856 por el príncipe Carlos III de Mónaco, siendo inaugurado en 1861.
La importancia actual del método Montecarlo se basa en la existencia de problemas que tienen difícil solución por métodos exclusivamente analíticos o numéricos, pero que dependen de factores aleatorios o se pueden asociar a un modelo probabilística artificial (resolución de integrales de muchas variables, minimización de funciones, etc.). Gracias al avance en diseño de los ordenadores, cálculos Montecarlo que en otro tiempo hubieran sido inconcebibles, hoy en día se presentan como asequibles para la resolución de ciertos problemas. En estos métodos el error ~ 1/√N, donde N es el número de pruebas y, por tanto, ganar una cifra decimal en la precisión implica aumentar N en 100 veces. La base es la generación de números aleatorios de los que nos serviremos para calcular probabilidades. Conseguir un buen generador de estos números así como un conjunto estadístico adecuado sobre el que trabajar son las primeras dificultades con la nos vamos a encontrar a la hora de utilizar este método. En el caso que presentamos hemos hecho uso de la función random() incluida en la clase Math que la máquina virtual Java trae por defecto como generador. Las pruebas realizadas, algunas de las cuales se propondrán como ejercicio, verifican su calidad a la hora de calcular números aleatorios sin tendencia aparente a la repetición ordenada.



Conclusiones:
El método de MonteCarlo es muy útil e importante para cálculos con variables o factores aleatorios, este modelo se puede asociar como un modelo de probabilística artificial. Por ejemplo para los casinos es muy útil para hacer que la "casa" nunca pierda, y esto es porque ellos cálculan y predicen y dicen por este método cuando habrá un cierto ganador.

Fuente de Información:
https://www.uam.es/personal_pdi/ciencias/carlosp/html/pid/montecarlo.html