II Números Pseudoaleatorios EJ2016

Embed Size (px)

Citation preview

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    1/20

    Unidad IINúmeros Pseudo-Aleatorios.

    Introducción

    Los números aleatorios son un ingrediente básico en la simulación de lamayoría de los sistemas discretos. La mayoría de los lenguajes decomputadora tienen una subrutina o función que permite generar un númeroaleatorio. De manera análoga, los lenguajes de simulación generan númerosaleatorios que son usados para generar tiempos de evento y otras variablesaleatorias.

    En este capitulo se utiliza el término pseudo para implicar que el acto mismo dela generación de números aleatorios por un método dado, remueve el potencial

    para la aleatoriedad verdadera. Si el método es conocido, el conjunto denúmeros aleatorios puede ser repetido. Las secuencias de números pseudo-aleatorios no muestran ningún patrón o regularidad aparente desde un puntode vista estadístico, aunque estos hayan sido generados por un algoritmocompletamente determinista, en el que las mismas condiciones inicialesproducen siempre el mismo resultado. Los mecanismos de generación denúmeros aleatorios que se utilizan en la mayoría de los sistemas informáticosson en realidad procesos pseudo-aleatorios.

    Una de las utilidades principales de los números pseudo-aleatorios se lleva acabo en el llamado método de Montecarlo, con múltiples utilidades, por ejemplo

    para hallar áreas / volúmenes encerradas en una gráfica y cuyas integrales sonmuy difíciles de hallar o irresolubles; mediante la generación de puntosbasados en estos números, podemos hacer una buena aproximación de lasuperficie /volumen total, encerrándolo en un cuadrado / cubo, aunque no losuficientemente buena. Asimismo, también destacan en el campo de lacriptografía. Por ello se sigue investigando en la generación de dichosnúmeros, empleando por ejemplo medidores de ruido blanco o analizadoresatmosféricos, ya que experimentalmente se ha comprobado que tienen unaaleatoriedad bastante alta.

    2.1 Métodos de generación de números Pseudoaleatorios

    Existen multitud de métodos para la generación de números pseudo-aleatoriosque tengan valor entre 0 y 1, cada uno de estos métodos puede considerarseadecuado siempre y cuando el conjunto de números generados cumpla con laspruebas de aleatoriedad, que se verán más adelante. Entre los métodos masutilizados podemos mencionar:

    2.1.1 Métodos No Congruenciales

    Entre los métodos no congruenciales, se encuentran el de cuadrado de medios,el de producto de medios y el de multiplicador constante.

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    2/20

    Algoritmo de cuadrado de medios

    Este método fue propuesto en la década de los 40’s por John von Neumann yMetropolis [1]. El procedimiento consiste en lo siguiente:

    1. Seleccionar un numero de inicio (X0), llamado semilla con d  dígitos (d >  3)

    2. Elevar X0 al cuadrado, completar el número de dígitos con ceros a laizquierda, de manera que sea el doble de d ; sea X1 los d  dígitos del

    centro y sea d r i   .0 .

    3. Sea Yi el resultado de elevar al cuadrado a Xi (los dígitos del centro) y

    d r i   .01   de los dígitos obtenidos.

    4. Repetir el paso 3 hasta obtener los n númerosir   deseados.

    Ejemplo:

    Generar los primeros 5 númerosir   a partir de una semilla X0 =5735,

    observando que se utilizan 4 dígitos.

    0342.0

    1017.0

    0319.0

    0342

    1017

    0319

    10342890)1017(

    00101761)0319(

    06031936)2456(

    2456.0245679245604)8902(

    8902.0890232890225)5735(

    5

    4

    3

    5

    4

    3

    2

    4

    2

    3

    2

    2

    22

    2

    1

    11

    2

    0

     X 

     X 

     X 

    r  X Y 

    r  X Y 

     

    Este algoritmo generalmente es incapaz de generar una secuencia deir   con

    periodo de vida de n grande.

    Algoritmo de producto de medios

    Este método es semejante al anterior, la diferencia entre ambos radica en queeste último requiere de dos semillas para iniciar. Ambas semillas deben ser delmismo número de dígitos. El procedimiento consiste en lo siguiente:

    1. Seleccionar un número de inicio (X0), llamado semilla cond 

     dígitos (d > 

     3).2. Seleccionar otra semilla (X1), con d  dígitos (d >  3).3. Sea Y0 = X0*X1, sea X2 = los dígitos d  del centro, completando el numero

    de dígitos con ceros a la izquierda, de manera que sea el doble de d ; y

    sea d r i   .0 .

    4. Sea Yi = Xi*Xi+1; sea Xi+2 (los dígitos del centro) y d r i   .01   de los dígitos

    obtenidos.

    5. Repetir el paso 4 hasta obtener los n númerosir   deseados.

    Ejemplo:

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    3/20

    Generar los primeros 5 númerosir   a partir de las semillas X0 =5015 y X1 

    =5734, observando que se utilizan 4 dígitos.

    9718.0

    4155.0

    3844.0

    9718

    4155

    3844

    15971820)4155)(3844(

    13415560)3844)(3490(

    26384400)3490)(7560( 3490.0349043349040)7560)(5734(

    7560.0756028756010)5734)(5015(

    5

    4

    3

    5

    4

    3

    4

    3

    2

    221

    110

     X 

     X 

     X 

    Y  r  X Y 

    r  X Y 

     

    Algoritmo de multiplicador constante

    Este algoritmo es semejante al anterior, la diferencia ahora radica en que esteúltimo considera que una de las semillas permanezca constante. Ambassemillas deben ser del mismo número de dígitos. El procedimiento consiste en

    lo siguiente:

    1. Seleccionar un número de inicio (X0), llamado semilla con d  dígitos (d >  3).

    2. Seleccionar una constante (K), con d  dígitos (d >  3).3. Sea Y0 = K*X0, sea X1 = los dígitos d  del centro, completando el numero

    de dígitos con ceros a la izquierda, de manera que sea el doble de d ; y

    sea d r i   .0 .

    4. Sea Yi = K*Xi; sea Xi+1 (los dígitos d  del centro) y d r i   .01   de los dígitos

    obtenidos.

    5. Repetir el paso 4 hasta obtener los n números ir 

     deseados.

    Ejemplo:

    Generar los primeros 5 númerosir   a partir de las semillas X 0  =9803 y la

    constante K  =6965, observando que se utilizan 4 dígitos para cada una.

    4311.0

    9825.0

    2869.0

    4311

    9825

    2869

    68431125)9825)(6965(

    19982585)2869)(6965(

    24286955)3487)(6965(

    3487.0348719348770)2778)(6965(

    2778.0277868277895)9803)(6965(

    5

    4

    3

    5

    4

    3

    4

    3

    2

    221

    110

     X 

     X 

     X 

    r  X Y 

    r  X Y 

     

    Los mecanismos de generación de números aleatorios que se utilizan en lamayoría de los sistemas informáticos son en realidad procesos pseudo-aleatorios.

    2.1.2 Métodos Congruenciales

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    4/20

    Entre los métodos congruenciales, se encuentran el lineal, el multiplicativo, eladitivo y el congruencial no lineal cuadrático.

    Algoritmo lineal

    Este algoritmo fue propuesto en 1951 por D.H. Lehmer [2]. Se considera que esel algoritmo mas ampliamente utilizado para generar números aleatorios.Muchos otros métodos han sido propuestos y son revisados por Bratley, Foxand Schrage [3], Law and Kelton [4] y por Ripley [5].

    Este método produce una secuencia de enteros X1, X2, … entre cero y m-1, deacuerdo a la siguiente relación recursiva:

    ,...2,1,0,mod)(1     imcaX  X  ii  

    El valor inicial X 0  es llamado la semilla, a es la constante multiplicadora, c  es el

    incremento y m es el módulo. Para lograr que el algoritmo tenga un largoperiodo de vida n, es necesario que estos parámetros cumplan con lo siguiente:

    ,2 g m    ,41   k a   k y g son enteros y c primo relativo a m

    Es importante señalar que este algoritmo recursivo genera una secuencia denúmeros enteros {0, 1, 2, 3, … , m-1}, y para obtener los números pseudo-aleatorios en el intervalo (0, 1) se requiere hacer:

    nim

     X 

      i

    i   ,,...2,1,0,1  

    Para comprender mejor la mecánica de este algoritmo, el procedimientoconsiste en lo siguiente:

    1. Seleccionar un número de inicio (X0), llamado semilla con d  dígitos (d >  1).

    2. Sea Y0 = (a*X0+c) mod m .

    3. Sea Yi  = (a*Xi+c) mod m; sea Xi+1 = Yi  y )1/(1     m X r  ii .

    4. Repetir el paso 3 hasta obtener los n númerosir   deseados.

    Ejemplo:

    Generar los primeros 5 númerosir   a partir de las semillas X 0  =37, a=17, c =33,

    y m=64.

    9206.063/58

    1429.063/9

    6349.063/40

    5864mod)339*17(

    964mod)3340*17(

    4064mod)3323*17(

    3651.063/232364mod)3322*17(

    3492.063/222264mod)3337*17(

    5

    4

    3

    5

    4

    3

    22

    11

     X 

     X 

     X 

    r  X 

    r  X 

     

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    5/20

    Algoritmo Multiplicativo 

    Es el mismo que el algoritmo congruencial lineal, solo que con c =0, de maneraque la ecuación recursiva se reduce a:

    nimaX  X  ii   ,,...2,1,0,mod)(1    

     A diferencia del algoritmo congruencial lineal, este tiene la ventaja que sepuede reducir una operación en el procedimiento, por lo que la secuencia es lamisma. Los parámetros de arranque son X 0 , a y m y deben cumplir con lascondiciones siguientes:

    ,2 g m    ,83   k a     k  y g  son enteros y X 0  debe ser impar.

    Ejemplo:

    Generar los primeros 5 númerosir   a partir de las semillas X 0  =10, a=7, y m=13.

    4615.013/6

    9231.013/12

    8462.013/11

    613mod)12*7(

    1213mod)11*7(

    1113mod)9*7(

    6923.013/9913mod)5*7(

    3846.013/5513mod)10*7(

    5

    4

    3

    5

    4

    3

    22

    11

     X 

     X 

     X 

    r  X 

    r  X 

     

    Algoritmo Congruencial Aditivo 

    Es semejante al algoritmo congruencial lineal, solo que utiliza una secuenciaprevia de n números enteros x 1, x 2 , x 3, …, x n, como entrada, de manera que lanueva secuencia de números generada x n+1, x n+2 , x n+3, …, y la ecuaciónrecursiva utilizada es:

    ,...3,2,1,mod)( 1       nnnim X  X  X  niii  

    Los números r i  generados se obtienen:

    1

    m

     X r    ii  

    Ejemplo:

    Generar los 10 números pseudo-aleatoriosir   a partir de las semillas siguientes

     X 1 =65, X 2  =89, X 3 =98, X 4 =03, X 5  =69. Para generarlos se sigue elprocedimiento:

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    6/20

    8888.099/93

    9595.099/95

    7171.099/71

    88100mod)9395(100mod)(

    95100mod)2471(100mod)(

    71100mod)2150(100mod)(

    5050.099/5050100mod)2327(100mod)(

    2727.099/2727100mod)3493(100mod)(9393.099/93

    2424.099/24

    2121.099/21

    93100mod)6924(100mod)(

    24100mod)321(100mod)(

    21100mod)9823(100mod)(

    2323.099/2323100mod)8934(100mod)(

    3434.099/3434100mod)6569(100mod)(

    5

    4

    3

    101415

    91314

    81213

    271112

    161011

    5

    4

    3

    5910

    489

    378

    2267

    1156

     X  X  X 

     X  X  X 

     X  X  X 

    r  X  X  X 

    r  X  X  X r 

     X  X  X 

     X  X  X 

     X  X  X 

    r  X  X  X 

    r  X  X  X 

     

    Algoritmo No lineal Cuadrático 

    Es semejante al algoritmo congruencial lineal, solo que se tiene una constantemás por el término cuadrático, la del término lineal y el término independiente.La ecuación recursiva se define como:

    nimcbX aX  X  ii i ,,...2,1,0,mod)(  2

    1    

     A diferencia del algoritmo congruencial lineal, este tiene la necesidad deincrementar una operación en el procedimiento, pero la secuencia essemejante. Los parámetros de arranque son: X 0 , a, b, c  y m y deben cumplircon las condiciones siguientes:

    ,2 g 

    m    , _  par numeroa    ,14mod)(   ab   , _ impar numeroc    g  es

    entero y X 0  debe ser impar.

    Ejemplo:

    Generar los primeros 5 númerosir   a partir de la semilla X 0  =27, y las

    constantes a=12, b=13, c =43, y m=64.

    0317.063/2

    8730.063/55

    9524.063/60

    264mod)4327*1327*12(

    5564mod)4327*1327*12(

    6064mod)4327*1327*12(3968.063/252564mod)4327*1327*12(

    8571.063/545464mod)4327*1327*12(

    5

    4

    3

    2

    5

    2

    4

    2

    3

    2

    2

    2

    1

    2

    1

     X 

     X 

     X r  X 

    r  X 

     

    2.2 Pruebas estadísticas de aleatoriedad.Una secuencia de números aleatorios, R1, R2,…, debe tener dos propiedadesestadísticas importantes de manera de validar si los números obtenidos sonaptos para utilizarse en un estudio de simulación.

    Las pruebas que deben realizarse para esta validación, se agrupan en lassiguientes:

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    7/20

    1. Prueba de media y varianza.2. Pruebas de uniformidad.3. Pruebas de independencia

    2.2.1 Prueba de media y varianza

    Cada numero aleatorio R i   es una muestra independiente extraída de unadistribución continua uniforme entre cero y uno. Esto es, la función dedensidad de probabilidad (pdf) esta dada por:

    10,0

    10,1)(

     x

     x x f    

    La pdf de la función es mostrada en la siguiente figura:

    El valor esperado de Ri esta dado por:

    2

    1

    0

    1

    2)(

    1

    0

    2

      x

     xdx R E   

    Y para la varianza está dado por:

    12

    1

    4

    1

    3

    1

    4

    1

    0

    1

    32

    1)()()(

    1

    0

    32

    222

      xdx x R E  R E  RV   

    La prueba de media consiste en determinar el promedio de los n números quecontiene el conjunto R , mediante la definición, es decir:

    n

    i

    i R

    n R

    1

    Posteriormente se calculan los límites de aceptación inferior y superior con lasecuaciones siguientes:

     

      

     

    n z  LI 

     R12

    1

    2

    12/   

     

      

     

    n z  LS 

     R12

    1

    2

    12/   

    Si el valor promedio de R  se encuentra entre los limites de aceptación,concluimos que no se puede rechazar que el conjunto R , tiene un valoresperado de 0.5 con un nivel de aceptación de 1- α. En caso contrario serechaza el conjunto R .Para el cálculo de los limites de aceptación se utiliza el estadístico Z α/2 , el cualse determina por medio de la tabla de distribución normal estándar (también sepuede usar las funciones DISTR.NORM.INV de Excel y norminv de Matlab,

    como se verá en la práctica)

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    8/20

    Ejemplo:Considere los 30 números del conjunto R  que se presentan a continuación, ydetermine si tienen un valor esperado de 0.5 con un nivel de aceptación de95%.

    0.587301587 0.365079365 0.142857143 0.349206349 0.8412698410.031746032 0.317460317 0.603174603 0.047619048 0.285714286

    0.746031746 0.523809524 0.301587302 0.396825397 0.555555556

    0.698412698 0.984126984 0.253968254 0.206349206 0.952380952

    0.904761905 0.682539683 0.46031746 0.619047619 0.777777778

    0.349206349 0.634920635 0.920634921 0.571428571 0.222222222

    El conjunto R  contiene 30 números, por lo tanto n=30. Un nivel de aceptacióndel 95% implica que α=5%. Enseguida procedemos a calcular el promedio delos números y los limites de aceptación.

    )20.2222222210.57142857...50.3650793670.58730158(30

    1

    30

    11   30

    11     i

    i

    n

    i

    i   R Rn R

    0.51111111)15.3333333(30

    1 R  

     Ahora se calculan los límites de aceptación inferior y superior con lasecuaciones siguientes:

     

      

     

     

      

     

    )30(12

    1

    2

    1

    12

    1

    2

    12/2/        z 

    n z  LI 

     R 

    0.396698930.103301075.0)30(12

    1)96.1(21

     

      

      R LI   

     

      

     

     

      

     

    )30(12

    1

    2

    1

    12

    1

    2

    12/2/        z 

    n z  LS 

     R 

    0.603301070.103301075.0)30(12

    1)96.1(

    2

    1

     

      

     

     R LS   

    Como el valor promedio: 0.51111111 R  se encuentra entre los límites deaceptación, se concluye que no se puede rechazar que el conjunto de 30

    números R  tiene un valor esperado de 0.5 con una aceptación de 95%.

    La otra propiedad, que se menciono debe satisfacer el conjunto R, es que susnúmeros tengan una varianza de 1/12. La prueba consiste en primerodeterminar la varianza de los n números que contiene el conjunto el conjunto R  mediante la siguiente ecuación:

    2

    1

    )(1

    1)(   R R

    n RV 

    n

    i

     

     

    Después se calculan los límites de aceptación inferior y superior con las

    ecuaciones siguientes:

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    9/20

    )1(12

    2

    1,2/

    )(

      n

     LI    n RV  

       

    )1(12

    2

    1,2/1

    )(

      n

     LS    n RV  

       

    Si el valor de la varianza del conjunto de números se encuentra entre los limitesde aceptación, decimos que no se puede rechazar que el conjunto R  tiene unavarianza de 1/12 con un nivel de aceptación de 1- α ; de lo contrario, se rechazaque el conjunto r tiene una varianza de 1/12. Los estadísticos correspondientesa la función chi-cuadrada se obtienen de las tablas correspondientes al nivel designificancia y los grados de libertad correspondientes.(En Excel se tiene lafunción PRUEBA.CHI.INV y en Matlab el valor se obtiene con la función chiinv)

    Ejemplo:Considere los 30 números del conjunto R  y el nivel de significancia que sepresentaron en el ejemplo anterior.El conjunto R  contiene 30 números, por lo tanto n=30. Un nivel de aceptación

    del 95% implica que α=5%. Enseguida procedemos a calcular la varianza delos números y los limites de aceptación correspondientes.

    230

    1

    2

    1

    )5111111.0(130

    1)(

    1

    1)(  

     

      ii

    n

    i

    i   R R Rn

     RV   

    2230

    1

    )5111111.0-0.2222222(...)5111111.070.58730158(29

    1)(    

    i

     RV   

    0.07352499)(    RV   

    0.04733045348

    0471.16

    )29(12)29(12)1(12

    2

    29,975.0

    2

    29,2/05.01

    2

    1,2/1

    )( 

               

    n LI   n

     RV   

    0.13138591348

    45.7223

    )29(12)29(12)1(12

    2

    29,025.0

    2

    29,2/05.0

    2

    1,2/

    )(  

             

     

    n LS    n RV   

    Dado que el valor de la varianza esta entre los limites de aceptación, podemosdecir que no se puede rechazar que el conjunto de 30 números R tiene unavarianza de 1/12=0.08333.

    2.2.3 Pruebas de uniformidad

    Una de las propiedades más importantes que deben satisfacer los númerospseudo-aleatorios de un conjunto R  es la uniformidad. Algunas de las pruebasque tratan de corroborar si los números del conjunto R son uniformes, es decir,si se pueden considerar aleatorios, son varias, aquí se van a considerar lassiguientes:

    1. Chi-cuadrada2. Kolmogorov-Smirnov

    Prueba Chi-cuadrada

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    10/20

    Con esta prueba se busca determinar si los números del conjunto R  seencuentran uniformemente distribuidos en el intervalo (0, 1). Para ello esnecesario dividir el intervalo en un número s de subintervalos, que se

    recomienda que sea  N  s  . Una vez hecha la división, se clasifican cada unode los números del conjunto R en los s subintervalos. La cantidad de números

    del conjunto R que se encuentran en cada subintervalo se le conoce comofrecuencia observada (Oi ), y a la cantidad de números que se espera encontraren cada subintervalo se le llama frecuencia esperada (E i ); en teoría esta últimaseria N/s. Con los valores de obtenidos de Oi  y E i  se determina el estadístico dechi-cuadrada de la muestra con la expresión:

     s

    i   i

    ii

     E 

    O E 

    1

    22

    0

    )(    

    Si el valor estadístico de 20

        es menor al valor en la tabla para 2 1,    s    , entonces

    no se puede rechazar que el conjunto de números R  sigue una distribuciónuniforme. En caso contrario, se rechaza que el conjunto R  sigue unadistribución uniforme.

    Ejemplo:Realizar la prueba chi-cuadrada al siguiente conjunto de R , que contiene 100numeros. Considerar un nivel de confianza de 95%.

    0.950 0.615 0.058 0.015 0.838 0.193 0.497 0.727 0.795 0.137

    0.231 0.792 0.353 0.747 0.020 0.682 0.900 0.309 0.957 0.012

    0.607 0.922 0.813 0.445 0.681 0.303 0.822 0.838 0.523 0.894

    0.486 0.738 0.010 0.932 0.379 0.542 0.645 0.568 0.880 0.199

    0.891 0.176 0.139 0.466 0.832 0.151 0.818 0.370 0.173 0.299

    0.762 0.406 0.203 0.419 0.503 0.698 0.660 0.703 0.980 0.6610.456 0.935 0.199 0.846 0.709 0.378 0.342 0.547 0.271 0.284

    0.019 0.917 0.604 0.525 0.429 0.860 0.29 0.445 0.252 0.469

    0.821 0.410 0.272 0.203 0.305 0.854 0.341 0.695 0.876 0.065

    0.445 0.894 0.199 0.672 0.190 0.594 0.534 0.621 0.737 0.988

    Para aplicar la prueba de una manera mas clara, se recomienda hacer unatabla como la siguiente:

    Intervalo Oi   s

    n E i    

    i

    ii

     E 

    O E   2)(  

     

    [0.00-0.10) 9 10 0.1

    [0.10-0.20) 10 10 0.0[0.20-0.30) 9 10 0.1

    [0.30-0.40) 9 10 0.1

    [0.40-0.50) 11 10 0.1

    [0.50-0.60) 9 10 0.1

    [0.60-0.70) 12 10 0.4

    [0.70-0.80) 9 10 0.1

    [0.80-0.90) 13 10 0.9

    [0.90-1.00) 9 10 0.1

    Con lo que el estadístico es:

     s

    i   i

    ii

     E O E 

    1

    2

    20   0.20.10.90.10.40.10.10.10.10.00.1)(    

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    11/20

    El cual es menor que el estadístico para chi-cuadrada del 95% de aceptación.

    9.162 9,05.0      , por lo que se puede concluir que no se puede rechazar que los

    números R  siguen una distribución uniforme.

    Prueba Kolmogorov-Smirnov

    Con esta otra prueba también se busca determinar si los números del conjuntoR  se encuentran uniformemente distribuidos en el intervalo (0, 1). Serecomienda aplicar a conjuntos de números R  pequeños, n

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    12/20

    De acuerdo con la tabla de valores para la prueba de Kolmogorov-Smirnov, elvalor critico correspondiente a n=10  es D0.10,10  =0.368, que resulta mayor queel valor D=0.199; por lo tanto, se concluye que los números del conjunto R sedistribuyen de manera uniforme.

    2.2.3 Pruebas de independencia

    La Otra propiedad importante que deben satisfacer los números de un conjuntoR es la independencia. A continuación se comentan algunas de las pruebasque tratan de corroborar si los números del conjunto R son independientes, esdecir, si se puedan considerar aleatorios. Las pruebas que se van a considerarson:

    3. Corridas arriba y abajo4. Corridas encima y debajo de la media

    Estos procedimientos se basan en determinar una secuencia de números (S)

    que solo contienen unos y ceros de acuerdo con la comparación de loselementos del conjunto R.

    Prueba de corridas arriba y abajo

    Para este método, se hace la comparación entre los números r i y r i+1.Posteriormente se determina el numero de corridas observadas, C0 (unacorrida equivale a cada conjunto de ceros o unos consecutivos). Luego secalcula el valor esperado y la varianza del número de corridas y el estadísticoZ 0 , mediante las ecuaciones:

    3

    )12(0

    nC     90

    )2916(20

      nC    

    0

    00

    0

    C C  Z 

     

       

    Si el estadístico Z 0  queda fuera del intervalo –z/2 ≤ z0 ≥ z/2, se concluye quelos números del conjunto R no son independientes, de lo contrario, no se puederechazar que el conjunto R es independiente.Para la construcción de la secuencia de unos y ceros, se coloca un cero si elnúmero r i+1 es menor o igual al número anterior r i: en caso de ser mayor que elnumero r i anterior, se coloca un uno. A continuación se da una tabla de

    números aleatorios para encontrar la secuencia de ceros y unos.

    0.587301587 0.365079365 0.142857143 0.349206349 0.841269841

    0.031746032 0.317460317 0.603174603 0.047619048 0.285714286

    0.746031746 0.523809524 0.301587302 0.396825397 0.555555556

    0.698412698 0.984126984 0.253968254 0.206349206 0.952380952

    Considerando la secuencia de los 20 números del conjunto anterior (utilizandorenglón por renglón), la secuencia de unos y ceros es:S={0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1}

    Debe aclararse que para este método la secuencia S tendrá solo n-1 números,es decir 19. Esto se debe a que el primer número (que es el 0.587301587) notiene un número anterior con el cual compararlo. Para contar las corridas, debe

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    13/20

    recordarse que una corrida es una secuencia de puros unos o cerosconsecutivos, a continuación se marcan las corridas correspondientes a lasecuencia S.S={0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1}Contando el número de secuencias subrayadas, se obtiene que las corridas

    son 10.

    Ejemplo:Realizar la prueba de corridas arriba y abajo con un nivel de aceptación de95% para el siguiente conjunto R de 40 números pseudo-aleatorios:0.5828 0.4329 0.5298 0.7833 0.7942 0.4154 0.7680 0.4387 0.3200 0.7446

    0.4235 0.2259 0.6405 0.6808 0.0592 0.3050 0.9708 0.4983 0.9601 0.2679

    0.5155 0.5798 0.2091 0.4611 0.6029 0.8744 0.9901 0.2140 0.7266 0.4399

    0.3340 0.7604 0.3798 0.5678 0.0503 0.0150 0.7889 0.6435 0.4120 0.9334

    Realizando la secuencia de unos y ceros de acuerdo a la comparación con elanterior, que puede ser renglón por renglón o columna por columna, en este

    caso se sigue la primera. La secuencia S correspondiente usando cadarenglón, se obtiene:S={ 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0,1, 0, 1, 0, 0, 1, 0, 0, 1}Donde el número de corridas es 26 y como la aceptación es del 95%. Loscálculos se presentan a continuación:

    333.263

    79

    3

    )1)40(2(0

    C     788.690

    )29)40(16(20

    C    

    0.1278788.6

    333.26260  

     Z   

    Que resulta estar dentro del intervalo del estadístico para el nivel de rechazo

    del 5% (=0.05), que corresponde a –1.96= z0.05/2  ≤ Z0 = -0.1278 ≤ z0.05/2 =1.96, por lo que no se puede rechazar los números del conjunto R sonindependientes.

    Prueba de corridas encima y debajo de la media

    En esta prueba se compara a cada elemento del conjunto de números R, con lamedia para una distribución uniforme (0.5). Posteriormente se determina elnumero de corridas observadas, C0, así como la cantidad de ceros obtenidos,n0, así como la cantidad de unos, n1. C0 es el número de corridas, obtenidas de

    la misma manera que en la prueba anterior, además debe cumplirse que n0 +n1 = N. Luego se calcula el valor esperado y la varianza del número de corridasdel conjunto y con las mismas el estadístico Z0 a partir de las ecuacionessiguientes:

    2

    12 100

    n

    nnC    

    )1(

    )2(22

    10102

    0

    nn

    nnnnnC    

    2

    0

    0

    0

    0

    C C  Z 

     

       

     Al igual que en la anterior prueba, considerando un nivel de rechazo , si dicho

    estadístico queda fuera del intervalo –z/2 ≤ Z0 ≥ z

    /2, se concluye que losnúmeros del conjunto R no son independientes, de lo contrario, no se puede

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    14/20

    rechazar que el conjunto R es independiente. La secuencia de unos y ceros seconstruye asignando un cero si el numero r i es menor o igual que 0.5 y un uno en caso contrario. A continuación se da una tabla de números pseudo-aleatorios para encontrar la secuencia de ceros y unos.

    0.587301587 0.365079365 0.142857143 0.349206349 0.8412698410.031746032 0.317460317 0.603174603 0.047619048 0.285714286

    0.746031746 0.523809524 0.301587302 0.396825397 0.555555556

    0.698412698 0.984126984 0.253968254 0.206349206 0.952380952

    Considerando la secuencia de los 20 números del conjunto anterior (utilizandorenglón por renglón), la secuencia de unos y ceros es:S={1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1}

    El número de corridas se determina de la misma manera que en el anterior. Eneste caso son 11 corridas y se tienen 11 ceros y 9 unos.

    Ejemplo:Realizar la prueba de corridas encima y debajo de la media con un nivel deaceptación de 90% para el siguiente conjunto R de números aleatorios:q=round(v*10000)/100000.5828 0.4329 0.5298 0.7833 0.7942 0.4154 0.7680 0.4387 0.3200 0.7446

    0.4235 0.2259 0.6405 0.6808 0.0592 0.3050 0.9708 0.4983 0.9601 0.2679

    0.5155 0.5798 0.2091 0.4611 0.6029 0.8744 0.9901 0.2140 0.7266 0.4399

    0.3340 0.7604 0.3798 0.5678 0.0503 0.0150 0.7889 0.6435 0.4120 0.9334

    Realizando la secuencia de unos y ceros de acuerdo a la comparación con elanterior, que puede ser renglón por renglón o columna por columna, en estecaso se sigue la primera. La secuencia S correspondiente usando cadarenglón, se obtiene:S={ 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0,0, 1, 0, 1, 0, 0, 1, 1, 0, 1}Donde el número de corridas es 27, el número de ceros es 19 y el número deunos es 21 y como la aceptación es del 90%. Los cálculos se presentan acontinuación:

    3.205.040

    792

    2

    1

    40

    )18)(22(20

    C    

    Que resulta que están dentro del intervalo del estadístico para el nivel de

    rechazo del 10% (=0.1), que corresponde a –1.645= z0.1/2  ≤ Z0 = 0.98 ≤ z0.1/2 =1.645, por lo que no se puede rechazar los números del conjunto R sonindependientes.

     Algunas consecuencias de las propiedades de uniformidad e independenciason las siguientes:

    1. Si el intervalo (0, 1) se divide en n clases, o subintervalos de igual

    magnitud, el número de observaciones esperado en cada intervalo esN/n, donde N es el número total de observaciones.

    98.009.3

    03.3

    54.9

    3.20170  

     Z 

    54.962400

    595584

    )39(1600

    )752(792

    )140(40

    )40)18)(22(2)(18)(22(22

    2

    0

    C  

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    15/20

    2. La probabilidad de encontrar un valor en un intervalo particular esindependiente del valor anterior determinado.

    Para asegurar que dichas propiedades deseables sean alcanzadas, un numerode pruebas pueden ser desarrolladas (afortunadamente, las pruebasapropiadas son ya realizadas por la mayoría de los software de simulación

    comerciales).

    2.3 Método de Monte Carlo.

    El método de Monte Carlo ha sido utilizado por siglos, sin embargo, durante la2ª Guerra Mundial este fue utilizado para simular los aspectos probabilísticosde la difusión de neutrones (que fue la primera aplicación real). Se le conoceasí por la capital de Mónaco (la capital mundial de los casinos), por el uso delos juegos de azar.

    2.3.1 Características

    Los métodos que no son de Monte Carlo involucran ecuaciones ODE/PDE quedescriben al sistema. Los métodos de Monte Carlo son técnicas estocásticascomo los juegos de azar. Están basados en el uso de números aleatorios yestadísticas de probabilidad para simular problemas. Algunas veces se puede llamar Método de Monte Carlo si se utilizan númerosaleatorios para examinar el problema que se está resolviendo.Por ejemplo, la resolución de ecuaciones que describen las interacciones dedos átomos. Esto sería factible sin necesidad de utilizar el método de MonteCarlo. Sin embargo, la resolución de las interacciones de miles de átomos queutilizan las mismas ecuaciones es imposible.Sin embargo, las soluciones son imprecisas y puede ser muy lenta si se deseauna mayor precisión.

    Función de Densidad de ProbabilidadEn primer lugar, tendríamos que determinar la función de densidad deprobabilidad (Probability Density Function o PDF). A continuación, realizar unmuestreo aleatorio del PDF. Mantenemos registro de cada simulación realizaday de las cuentas correspondientes.Una función de densidad de probabilidad (o la función de distribución deprobabilidad) es una función f definida en un intervalo (a, b) y que tiene lassiguientes propiedades:

    Los Componentes de Simulación de Monte Carlo

      Funciones de Distribución de Probabilidad (pdf) - el sistema físico (omatemático) debe ser descrito por un conjunto de funciones PDF.

      Generador de Números Aleatorios - un conjunto de números aleatoriosdistribuidos uniformemente en el intervalo de la unidad debe estardisponible.

      Regla de Muestreo - una procedimiento para el muestreo de lasfunciones pdf especificadas, asumiendo que se debe dar ladisponibilidad de números aleatorios en el intervalo unidad.

      Anotando (o Contando) - los resultados deben ser acumulados en

    recuentos totales o calificaciones de las cantidades de interés.

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    16/20

      Estimación de Error - debe determinarse una estimación del errorestadístico (varianza) como una función del número de pruebas y otrascantidades.

      Técnicas de Reducción de la Varianza - métodos para reducir lavarianza en la solución estimada para reducir el tiempo de cómputo en la

    simulación de Monte Carlo.  Paralelización y Vectorización - algoritmos que permita que los métodos

    de Monte Carlo puedan ser implementados de manera eficiente enarquitecturas de computadoras avanzadas.

    2.3.2 AplicacionesLa importancia actual del método Montecarlo se basa en la existencia deproblemas que tienen difícil solución por métodos exclusivamente analíticos onuméricos, pero que dependen de factores aleatorios o se pueden asociar a unmodelo probabilístico artificial (obtención de áreas de figuras no comunes,resolución de integrales de difícil solución, minimización de funciones, etc.).

    Gracias al avance en diseño de los ordenadores, los cálculos Montecarlo queen otro tiempo hubieran sido inconcebibles, hoy en día se presentan comoasequibles 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 enla precisión implica aumentar N en 100 veces. La base es la generación denúmeros pseudo-aleatorios de los que nos serviremos para calcularprobabilidades. En el caso que presentamos hemos hecho uso de lafunción rand() incluida en Matlab como generador de números pseudo-aleatorios. Las pruebas realizadas, algunas de las cuales se llevaron a cabo enel tema 2.2, verifican su calidad a la hora de calcular números pseudo-aleatorios sin tendencia aparente a la repetición ordenada.

    EjemploAproximación de PiPodemos aproximar Pi (=3.14159) mediante la generación de dos númerospseudo-aleatorios para las componentes x  y y de un vector simulado. Entoncespodemos obtener, mediante el uso de teorema de Pitágoras, si estascoordenadas se encuentran dentro o fuera del círculo de radio unitario.Contamos estos aciertos, y después de hacer esto muchas veces (100 o más),podemos obtener un valor estimado de Pi.La precisión de la estimación depende de la cantidad de "vectores". Un código

    de ejemplo podría ser (suponiendo que se fija el radio = 1):Código Matlab:aciertos=0;

    n=100;

    for i=1:n

    x(i)=rand();

    y(i)=rand();

    dist=sqrt(x(i)^2+y(i)^2);

    if dist

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    17/20

    valorpi=4*aciertos/n;

    disp(valorpi);

    Aproximación de una Area (integral de una función f(x)De la misma manera podemos aproximar el valor de una area mediante la

    generación de dos números pseudo-aleatorios para las componentes x  y y delas coordenadas de un punto. Entonces se puede obtener, mediante el uso deteorema del concepto de pertenencia, si estas coordenadas se encuentrandentro o fuera del área buscada. Contamos estos aciertos, y después de haceresto muchas veces (100 o más), podemos obtener un valor estimado del áreapedida.La precisión de la estimación depende de la cantidad de "puntos". Un código deejemplo podría ser (suponiendo que se utiliza una función f(x) = x2):Código:aciertos=0;

    n=100;

    for i=1:nx(i)=rand();

    y(i)=rand();

    if y(i)

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    18/20

     –   Los números aleatorios generados deben ser uniformes.Este punto y el primero de ellos son poco relacionada.Para lograr una mayor uniformidad, se deben estableceralgunas correlaciones entre los números aleatorios.

     –   El RNG debe ser eficiente. Debe ser vectorizable con bajo

    costo operativo. Los procesadores en sistemas paralelos,no deben ser obligados a comunicarse entre sí.

    2.3.3 Solución de ProblemasLos resultados obtenidos en el punto anterior proveen la motivación paraaplicar el Método de Monte Carlo, ya que indican que con un númerosuficientemente alto de experimentos, es posible estimar el parámetro deseadoincurriendo en pequeño error con alta probabilidad, y permiten cuantificarasintóticamente la relación entre dos valores importantes en la aproximación(error y probabilidad) a través de la distribución normal. Sin embargo, espreciso ser cauteloso en la aplicación práctica del método, ya que las

    implementaciones reales no verifican las hipótesis de algunos teoremas. Por unlado, las limitaciones computacionales imponen un límite superior a los valoresde n que se pueden emplear (y cuando se emplean números pseudo-aleatorios, la naturaleza cíclica de estos hace que no sea posible obtener unacantidad arbitraria de muestras independientes).

    EjemploSupongamos que tenemos un satélite, que para su funcionamiento depende deque al menos 2 paneles solares de los 5 que tiene disponibles estén enfuncionamiento, y queremos calcular φ la vida útil esperada del satélite (eltiempo promedio de funcionamiento hasta que falla, usualmente conocido en laliteratura como MTTF - Mean Time To Failure). Supongamos que cada panelsolar tiene una vida útil que es aleatoria, y está uniformemente distribuida en elrango [1000 hs, 5000 hs] (valor promedio: 3000 hs). Para estimar por MonteCarlo el valor de φ, haremos n experimentos, cada uno de los cuales consistiráen sortear el tiempo de falla de cada uno de los paneles solares del satélite, yobservar cual es el momento en el cuál han fallado 4 de los mismos, esta es lavariable aleatoria cuya esperanza es el tiempo promedio de funcionamiento delsatélite. El valor promedio de las n observaciones nos proporciona unaestimación de φ. 

    ExperimentoNo. Tiempo de Falla dePanel 1 Panel 2  Panel 3  Panel 4  Panel 5  Satélite, X

    1 3027 1738 2376 4685 4546 4546

    2 4162 4029 4615 3455 3372 4162

    3 3655 2896 1378 4010 4144 4010

    4 2573 2649 2117 3956 1281 2649

    5 2977 2724 1355 2268 3262 2977

    6 3756 4190 1749 3398 2581 3756

    Prom. - Sn/n=3683

    Ejercicio 1

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    19/20

    Supongamos que se desea aproximar el valor de la base de los logaritmosNeperianos (e=2.71828183…), se utiliza una función: 

     xe x f     )(  

    Cuya integral (área bajo la curva) se define como:

    eeeedx x f  

      x   11

    0

    1

    )(  011

    0    

    Que de acuerdo al método de Montecarlo corresponde a:

     N 

     N 

    edx x f     ac  1

    1)(1

    Y por lo tanto, la aproximación de e:

     N 

     N e

    ac

    1

    2.4 Problemas1. Encontrar 20 números pseudo-aleatorios por el método no congruencial indicado,de acuerdo con los siguientes parámetros, elabore la tabla correspondiente:

    a) Por el método de cuadrado de medios, con semilla de 6727.b) Por el método de producto por factor constante, con semilla 7531 y factor

    constante de 5379.c) Por el método de producto de medios, con semillas de 4219 y 3753.d) Por el método de producto por factor constante, con semilla 5571 y factor

    constante de 3753.

    e) Por el método de cuadrado de medios, con semilla de 1017.f) Por el método de producto de medios, con semillas de 4491 y 8245

    2. Encontrar 20 números pseudo-aleatorios a partir de la ecuación generadoraindicada y los parámetros incluidos, elabore la tabla correspondiente:

    a) ,32mod)1113(1     ii   X  X  con semilla x0=19

    b) ,64mod)21(1     ii   X  X  con semilla x0=13.

    c) ,32mod)19(1   ii   X  X    con semilla x0=27.

    d) ,32mod)1521( 11       iii   X  X  X   con semillas x0=21 y x1=43.

    e) ,32mod)17(1     ii   X  X  con semilla 25

    f) ,...3,2,1,64mod)( 1 

        nnni X  X  X  niii  con 4 semillas x1=51, x2=23,x3=27 y x4=43.

    3. Realizar la prueba de la media y la varianza, además de la indicada en cada punto,con el respectivo nivel de aceptación, al conjunto de números que se da acontinuación:

    0.0645 0.8065 0.6452 0.0968

    0.1613 0.5161 0.4839 0.5806

    0.3871 0.8710 0.4516 0.6774

    0.2258 0.3226 0.0323 0.9032

    0.1935 0.4194 0.7742 0.7419

    a) La prueba de corridas arriba y abajo con un nivel de aceptación del 90%.b) La prueba de chi-cuadrada con un nivel de aceptación del 95%.

  • 8/17/2019 II Números Pseudoaleatorios EJ2016

    20/20

    c) La prueba de corridas encima y debajo de la media con una aceptación del95%.

    d) La prueba de Kolmogorov-Smirnov con un nivel de aceptación del 90%.e) La prueba de Póker con una aceptación del 95%.

    4. Realizar la aproximación de la integral de la función indicada, utilizando el conjuntode números que se da en las tablas siguientes, la tabla A es x y la tabla B es y.

    a) f(x)=x3 b) f(x)=x2 c) f(x)=xx d) f(x)=e-x 

    Tabla A Tabla B0.2525 0.7325 0.9659 0.9576 0.9677 0.6129 0.2581 0.9355

    0.3756 0.6556 0.2962 0.6997 0.4839 0.1290 0.8065 0.4516

    0.1075 0.9811 0.7734 0.958 0.0000 0.6774 0.3226 1.0000

    0.1556 0.2557 0.8147 0.7764 0.5484 0.1935 0.8710 0.5161

    0.4211 0.5382 0.3736 0.2796 0.0645 0.7419 0.3871 0.0323