lunes, 14 de marzo de 2011

MÉTODOS DE GENERACIÓN DE NÚMEROS ALEATORIOS


El objetivo de cualquier esquema de generación (generador),  es producir una secuencia de números entre 0 y 1 que simule las propiedades ideales de distribución uniforme y de independencia.


Un problema básico que nos encontramos habitualmente es el de obtener secuencias de números uniformemente distribuidos en un intervalo .

La diferentes posibilidades para resolver dicho problema son:

i) Buscar en tablas de números aleatorios publicadas (libros, internet ...);

ii) Observar un proceso físico tal como la desintegración radiactiva, el ruido eléctrico ...;

iii) Los lenguajes de programación y las hojas electrónicas incluyen una función para generarlos

iv) Mediante algorismos de generación de números aleatorios

Las principales ventajas de los generadores de números aleatorios son:

- Rapidez
- Comodidad
- Reproducibilidad
- Portabilidad


Y la desventaja fundamental:

- Las secuencias obtenidas no son realmente aleatorias, ya que se obtienen con operaciones deterministas. Solo podemos obtener secuencias pseudo-aleatorias, que a su vez satisfacen algunos criterios de aleatoriedad adecuados.

Los números generados deben cumplir ciertas características para que sean válidos. Dichas características son:

1. Uniformemente distribuidos.
2. Estadísticamente independientes.
3. Su media debe ser estadísticamente igual a 1/2.
4. Su varianza debe ser estadísticamente igual a 1/12.
5. Su periodo o ciclo de vida debe ser largo.
6. Deben ser generados a través de un método rápido.
7. Generados a través de un método que no requiera mucha capacidad de almacenamiento de la computadora.


Normalmente se utilizan números enteros, ya que su aritmética es exacta y rápida. Se generan enteros entre 0 y , y da valores reales en el intervarlo




En general los algoritmos utilizan relaciones de recurrencia del tipo
en el caso de recurrencia simple, o bien
para el caso de una recurrencia de orden .

Se necesitará dar un valor inicial para comenzar el algoritmo (
valores para recurrencias de orden ).
Estos generadores son los más utilizados y los más conocidos. Se basan en la relación de recurrencia
donde es el multiplicador y el módulo.

- Hay
valores posibles de , entre 0 i .

- La secuencia es periodica: cuando vuelve a aparecer un número por segunda vez, la secuencia se vuelve a repetir. El periodo depende de los valores de
, y , así como del valor inicial; nótese que el máximo posible es .

Recordemos que lo que nos interesa para trabajar con un buen generador de números aleatorios es que la distribución de los números obtenidos tiene que ser uniforme, no deben de haber correlaciones entre los terminos de la secuencia, el periodo debe ser lo más largo posible, y el algorismo debe ser de ejecución rápida.
Las limitaciones más importantes de los generadores son su periocidad (normalmente el periodo no suele ser más grande de y la posible presencia de correlaciones entre términos consecutivos de la secuencia. Una manera sencilla de suprimir éstas limitaciones es desordenar un poco la secuencia mediante el siguiente procedimiento:
Se parte de un generador que da enteros aleatorios entre 0 y
, y en primer lugar se genera con el GCL un vector que contiene una lista de enteros aleatorios , así como un entero aleatorio . Se determina el índice.







El elemento de la lista se da como un nuevo nombre aleatorio, y se reasigna a la variable el valor . El valor de se renueva con el GCL, y se vuelve a repetir los pasos desde la determinación del índice .
En estos generadores cada nuevo número entero aleatorio , se obtiene manipulando los bits del número anterior, . En lenguaje C, esto se puede hacer facilmente utilizando operadores sobre bits, .
Las grandes ventajas de estos generadores es que son generadores muy rápidos que tienen un periodo muy largo. La fomentación teorica en la que se basan es diferente a la de los GCL. Los generadores de Fibonacci se basan en una recurrencia del tipo
donde son enteros dados y denota alguna de las operaciones . Este tipo de generador precisa iniciar (con otro generador) y mantener una lista de los últimos números generados.

Otros tipos de generadores los podemos encontrar en:

- W.H. Press, S.A. Teukolski, W.T. Vetterling i B.P. Flannery, Numerical Recipes in C, Cambridge University Press.
-D.E. Knuth, The Art of computing programming, 2: Seminumerical Algorithms, Addison-Wesley.
Antes de aceptar un nuevo generador hace falta verificar que satisface una série de pruebas, lo que llamaremos pruebas de aleatoriedad.



METODOS PARA GENERAR NUMEROS ALEATORIOS NO UNIFORMES
En los modelos estocásticos existirán una o más variable aleatorias interactuando. Estas variables siguen distribuciones de probabilidad teóricas o empíricas, diferentes a la distribución uniforme (0-1). Para generar números que sigan el comportamiento de éstas variables, se pueden utilizar algunos métodos como los siguientes:
1. Método de la transformada inversa
2. Método de rechazo
3. Método de composición, y
4. Procedimientos especiales
 

MÉTODO DE LA TRANSFORMADA INVERSA.
El método de la transformada inversa utiliza la distribución acumulada F(x) de la distribución que se va a simular. Puesto que F(x) esta definida en el intervalo (0-1), se puede generar un número aleatorio uniforme R y tratar de determinar el valor de la variable aleatoria para cual su distribución acumulada es igual a R, es decir, el valor simulado de la variable aleatoria que sigue un distribución de probabilidad f(x), se determina al resolver la siguiente ecuación.
F(x) = R ó x = F^-1 (R)
La dificultad principal de este método descansa en el hecho de que en algunas ocasiones es difícil encontrar la transformada inversa. Sin embargo si esta función inversa ya ha sido establecida, generando números aleatorios uniformes se podrán obtener valores de la variable aleatorio que sigan la distribución de probabilidad deseada.


Pruebas de aleatoriedad
Éstas consisten basicamente en realizar dos tipos de pruebas, empíricas y teoricas. Si los generadores superan estas pruebas, podremos asegurar que estamos ante un generador de números aleatorios bastante competente

Pruebas empíricas (sobre la muestra de la secuencia)

- Test de uniformidad: hace falta que los valores esten uniformemente distribuidos en
. Se puede realizar un test . Alternativamente, podemos estimar los momentos de orden y comprobar que se aproximan a sus correspondientes valores teoricos, .

- Test serial: se generan parejas de valores
, y se comprueba si se distribuyen uniformemente en el cuadrado .

- Test de correlaciones: se determina la correlación entre números separados
lugares en la secuencia, . Su valor tendría que acercarse a 1/4.

Pruebas teoricas (sobre toda la secuencia): La sencillez de los generadores de congruencia lineal permiten demostrar propiedades importantes:

- Para determinar valores de
i se obtienen secuencias de periodo máximo . Por ejemplo, si es una potencia de 2, bastará con que sea impar y sea igual a un múltiple de 4 mas 1.

- Test espectral: si se forman vectores con
valores consecutivos,
estos forman hiperplanos paralelos en el espacio k-dimensional. La separación entre los planos tiene que ser la mínima posible.
El problema a tratar será el de obtener una secuencia con densidad de probabilidad dada , definida en el intervalo a partir de una secuencia de números con distribución uniforme .

HISTORIA Y DEFINICIÓN DE LOS NÚMEROS ALEATORIOS

Un número aleatorio es aquel obtenido al azar, es decir, que todo número tenga la misma probabilidad de ser elegido y que la elección de uno no dependa de la elección del otro. El ejemplo clásico más utilizado para generarlos es el lanzamiento repetitivo de una moneda o dado ideal no trucado.

Los primeros juegos de azar tuvieron su origen en el 3500 AC con la utilización de huesos en Egipto y otros lugares, dichos huesos pueden ser considerados como los antecesores de los dados.
En el si XVII, un noble francés, Antoine Gombauld (1623-16222), puso en tela de juicio el fundamento matemático del éxito y del fracaso de las mesas de juegos. Por tal motivo dirigió su duda al matemático francés Blaise Palscal (1623-16662): “¿Cuáles son las probabilidades de que salgan dos seieses por lo menos una vez en veinticuatro lanzamiento de un par de dados?”, Blaise resolvió el problema. Más tarde y con la ayuda del famoso matemático Pierre de Fermat (1601-1665) y los dos anteriores dieron vida a la primera revista académica dedicada a la probabilidad.
Más tarde Jacob Bernoulli, Abraham Moivre, el reverendo Thomas Bayes y Joseph Lagrange inventaron formulas y tecnicas de porbabilidad. Para el siglo XIX Pierre Simon, Marquez de Laplace unifico esas primera ideas y formulo la primera teoría de probabilidad. Hoy día la teoria de probabilidad es ampliamente utilizada en areas de ingeniería, ciencias y administración.
La historia formal de los números aleatorios surge en la dÉcada de los cuarenta, con el método de simulación de montecarlo, von neuman, metropolis, ulam y lehmer pueden ser nombradoe como los pioneros en este campo.
Ante la venida de los computadores se hizo posible el generar números speudo- aleatorios para reemplazar los métodos físico utilizados hasta el momento.
FUENTE:http://ciruelo.uninorte.edu.co/pdf/ingenieria_desarrollo/8/numeros_aleatorios.pdf

lunes, 28 de febrero de 2011

Simulación

La simulación es el proceso de diseñar un modelo de un sistema real y llevar a término experiencias con él, con la finalidad de comprender el comportamiento del sistema o evaluar nuevas estrategias -dentro de los límites impuestos por un cierto criterio o un conjunto de ellos - para el funcionamiento del sistema

Clasificacion de los Modelos

La clasificación de los modelos se da de la siguiente manera:


1. MODELOS SIMBÓLICOS: Son más específicos que los modelos verbales. Ellos representan un puente útil en el proceso de simbolizar un modelo verbal. Estos aíslan las variables y representan la realidad a través de símbolos, los que tienen generalmente un carácter matemático o lógico. Estos pueden clasificarse en:

1.1 Modelos matemáticos: Son más rigurosos; se valen de variables cuantitativas, como fórmulas para representar las partes de un proceso o un sistema. También son los más abstractos y a la vez, los más fáciles de usar debido a que todas las relaciones están expresadas con precisión, reduciendo asi la posibilidad de malas interpretaciones por los usuarios del modelo. Estos modelos a su vez se clasifican en:
 1.1.1 Modelos cuantitativos: es aquel cuyos principales símbolos representan números. Son los más comunes y útiles en los negocios.
1.1.2 Modelos cualitativos: aquel modelo cuyos símbolos representan en su mayoría a Cualidades no numéricas. Una fuente importante es la teoría de conjuntos.
1.1.3 Modelo Probabilístico: aquellos basados en la estadística y probabilidades (donde se incorpora las incertidumbres que por lo general acompañan nuestras observaciones de eventos reales). Este modelo se clasifica en discreto y continuo.
·         Modelo probabilístico continuos: Representan sistemas cuyos cambios de estado son graduales. Las variables intervinientes son continuas.
·         Modelo probabilístico discreto: Representan sistemas cuyos cambios de estado son de a saltos. Las variables varían en forma discontinua.
·          Modelo estocástico: Representan sistemas donde los hechos suceden al azar, lo cual no es repetitivo. No se puede asegurar cuáles acciones ocurren en un determinado instante. Se conoce la probabilidad de ocurrencia y su distribución probabilística. (Por ejemplo, llega una persona cada 20 ± 10 segundos, con una distribución x probable dentro del intervalo).
1.1.4 Modelo Deterministico: corresponde a aquel modelo cuantitativo que no contiene consideraciones probabilísticas.
 1.1.5 Modelo Descriptivo: cuando el modelo simplemente describe una situación del mundo real en términos matemáticos, descripción que puede emplearse para exponer una situación con mayor claridad, para indicar como pueden reajustarse o aún para determinar los valores de ciertos aspectos de la situación.
 1.1.6 Modelo Optimizador: corresponde al modelo ideado para seleccionar entre varias alternativas, de acuerdo a determinados criterios, la más óptima.
 1.1.7 Modelo estático: Utilizados para representar sistemas cuyo estado es invariable a través del tiempo. El modelo estático puede ser:
·         Modelo numérico: Se tiene el comportamiento numérico de las variables intervinientes. No se obtiene ninguna solución analítica.
·         Modelo analítico: La realidad se representa por fórmulas matemáticas. Estudiar el sistema consiste en operar con esas fórmulas matemáticas (resolución de ecuaciones).
1.1.8 Modelo dinámico: Utilizados para representar sistemas cuyo estado varía con el tiempo. Estos pueden ser:
·         Modelo numérico: Se tiene el comportamiento numérico de las variables intervinientes. No se obtiene ninguna solución analítica.
·         Modelo analítico: La realidad se representa por fórmulas matemáticas. Estudiar el sistema consiste en operar con esas fórmulas matemáticas (resolución de ecuaciones).
1.2. Modelos verbales: Explicación con palabras de lo fundamental de una realidad.

2. MODELOS MENTALES: Son un conjunto de conceptos que conforman la estructura mental a través de la cual percibimos el mundo exterior y las experiencias personales.

Este conjunto de conceptos es el producto de la enseñanza, los patrones culturales, la experiencia y el entrenamiento.

3. MODELOS FÍSICOS: Representan la entidad estudiada en cuanto a su apariencia y, hasta cierto punto, en cuanto a sus funciones. Las actividades del sistema se reflejan en las leyes físicas que subyacen el modelo. Estos se clasifican en:

3.1.1 Modelo icónico: Tienen aspecto de realidad pero no se comportan efectivamente en la forma real.
3.1.2 Modelo analógico: Exhiben el comportamiento real de la entidad estudiada pero no tiene el mismo aspecto.
3.1.3 Modelo digital: El objeto se codifica en cifras organizadas en estructura de datos. Las relaciones de correspondencia son matemáticas, estadísticas o geométricas.
3.1.4 Modelo estático: Corresponden a los modelos a escala así como los modelos icónicos.
3.1.5 Modelo dinámico: Corresponden a los modelos analógicos.

Fuente: “Introducción a la Simulación”. Disponible en < http://wwwdi.ujaen.es/asignaturas/computacionestadistica/pdfs/tema1.pdf>.

Ventajas y Desventajas de la Simulación

VENTAJAS

·         No es necesario interrumpir las operaciones de la compañía.
·         Proporciona muchos tipos de alternativas posibles de explorar.
·         La simulación proporciona un método más simple de solución cuando los                      procedimientos matemáticos son complejos y difíciles.
·         La simulación proporciona un control total sobre el tiempo, debido a que un                     fenómeno se puede acelerar.
·         Auxilia el proceso de innovación ya que permite al experimentador observar y jugar con el sistema.
·         Una vez construido el modelo se puede modificar de una manera rápida con el fin de analizar diferentes políticas  o escenario. Permite análisis de sensibilidad
·         Generalmente es más barato mejorar el sistema vía simulación que hacerlo en el sistema real.
·         Es mucho más sencillo visualizar y comprender los métodos de simulación que los métodos puramente analíticos. Da un entendimiento profundo del sistema
·         Los métodos analíticos se desarrollan casi siempre relativamente sencillos donde suele hacerse un gran número de suposiciones simplificaciones, mientras que en los métodos de simulación es posible analizar sistemas de mayor complejidad o con menor detalle.
·         En algunos casos,  la simulación es el único medio para lograr una solución.
·         Da soluciones a problemas "sin" solución analítica
·         Permite analizar el efecto sobre el rendimiento global de un sistema, de pequeños cambios realizados en una o varias de sus componentes
·         A partir de la experimentación con un modelo, es posible analizar los efectos sobre el sistema real de cambios organizativos, o de cambios en la gestión de la información.
·         El análisis del modelo del sistema puede permitir la sugerencia de posibles mejoras del sistema real, así como detectar las variables más influyentes en el rendimiento del mismo.
·         Permite la experimentación en condiciones que podrían ser peligrosas o de elevado coste económico en el sistema real.
·         La simulación suele ser utilizada también con una perspectiva pedagógica para ilustrar y facilitar la comprensión de los resultados que se obtienen mediante las técnicas analíticas.


·         En resumen:
·         Permite responder muy satisfactoriamente a preguntas del tipo “qué ocurriría si realizamos este cambio en ...”
·         Contribuye a la reducción del riesgo inherente a la toma de decisiones.
DESVENTAJAS
1. Un buen modelo de simulación puede resultar bastante costoso; a menudo el proceso de desarrollar un modelo es largo y complicado.
2. La simulación no genera soluciones óptimas a problemas de análisis cuantitativos, en técnicas como cantidad económica de pedido, programación lineal o PERT. Por ensayo y error se producen diferentes resultados en repetidas corridas en el computador.
3. Los directivos generan todas las condiciones y restricciones para analizar las soluciones. El modelo de simulación no produce respuestas por si mismo.
4. Cada modelo de simulación es único. Las soluciones e inferencias no son usualmente transferibles a otros problemas.
5 Siempre quedarán variables por fuera y esas variables (si hay mala suerte) pueden cambiar completamente los resultados en la vida real que la simulación no previó… en ingeniería se “minimizan riesgos, no se evitan”.
6.    La simulación es imprecisa, y no se puede medir el grado de su imprecisión.
7.    Los resultados de simulación son numéricos; por tanto, surge el peligro de atribuir a los números un grado mayor de validez y precisión.
8.    Los modelos de simulación en una computadora son costosos y requieren mucho tiempo para desarrollarse y validarse.
9.    Se requiere gran cantidad de corridas computacionales para encontrara soluciones,  lo cual representa altos costos.
10. Es difícil aceptar los modelos de  simulación y difícil de vender
11. Los modelos de simulación no dan soluciones  óptimas.
12. La solución de un modelo  de simulación  puede dar al análisis  un falso sentido de seguridad.
13. Requiere "largos" periodos de desarrollo