Está en la página 1de 17

Algoritmo para generar nmeros aleatorios

Mtodo del cuadrado medio


1. Elegir un nmero de 4 dgitos.
2. Elevar al cuadrado ese nmero, y agregar ceros a la izquierda si es necesario, hasta completar 8 dgitos.
3. Seleccionar los 4 dgitos del centro como el nmero al azar buscado.
4. Tomar el nmero seleccionado en 3, para repetir los pasos 2 y 3, hasta completar la cantidad de nmeros
requeridos, o la secuencia se repita.

Observacines:
- La secuencia puede terminar pronto, dependiendo del valor inicial que se tome.
- El mtodo es de difcil anlisis porque depende fuertemente del punto inicial.
- Ejemplos, tomando como semilla el nmero: 1237 y luego la semilla 5217.

X
0
= 1237 X
0
2
= 01530169 X
0
= 5217 X
2
0
= 27217089
X
1
= 5301 X
1
2
= 28100601 X
1
= 2170 X
2
1
= 04708900
X
2
= 1006 X
2
2
= 01012036 X
2
= 7089 X
2
2
= 50253921
X
3
= 0120 X
3
2
= 00014400 X
3
= 2539 X
2
3
= 06446521
X
4
= 0144 X
4
2
= 00020736 X
4
= 4465 X
2
4
= 19936225
X
5
= 0207 X
5
2
= 00042849 X
5
= 9362 X
2
5
= 87647044
X
6
= 0428 X
6
2
= 00183184 X
6
= 6470 X
2
6
= 41860900
X
7
= 1831 X
7
2
= 03352561 X
7
= 8609 X
2
7
= 74114881
X
8
= 3525 X
8
2
= 12425625 X
8
= 1148 X
2
8
= 01317904
X
9
= 4256 X
9
2
= 18113536 X
9
= 3179 X
2
9
= 10106041
X
1 0
= 1135 . . X
1 0
= 1060 . . . . . . . . .
X
1 1
= 2882 . . . . . . . . . . . . . . . . .
X
1 2
= 3059 . .
X
1 3
= 3574 . .
X
1 4
= 7734 . .
X
1 5
= 8147 . .
X
1 6
= 3736 . .

La ventaja principal de este mtodo es lo fcil de aplicar y de programar.
Si se quiere obtener nmeros en el intervalo |0,1), bastar tomar esa secuencia de dgitos con un cero y una coma delante
de ellos. Debe notarse que el cero a la izquierda es de importancia en este caso, ya que 5670 y 05670 generarn los
nmeros 0,567 y el 0,0567 que son muy diferentes.

Mtodo congruencial mixto.

Este mtodo, a partir de una semilla x
0
, calcula el siguiente nmero aleatorio a partir del ltimo que obtuvo, mediante la
relacin de recurrencia siguiente:

x
n+1
( ax
n
+ c ) (mdulo de m)

donde a, c y m son enteros positivos (a<m , c<m) y significa que:

x
n+1
es el residuo cuando ax
n
+ c se divide por m.

Entonces los valores posibles de x
n+1
son: 0, 1, ...., m-1 porque el resto de una divisin es menor que el divisor. As,
m representa el nmero deseado de valores diferente para la serie.

Ejemplo: Sea m = 8 , a=5 , c=7 y x
0
= 4

n x
n
5 x
n

+ 7 (5 x
n

+ 7) / 8 x
n+1

0 4 27 3 + 3/8 3
1 3 22 2 + 6/8 6
2 6 37 4 + 5/8 5
3 5 32 4 + 0/8 0
4 0 7 0 + 7/8 7
5 7 42 5 + 2/8 2
6 2 17 2 + 1/8 1
7 1 12 1 + 4/8 4
8 4 se repite 27 se repite
9 3 se repite
10 6 se repite
11 5 se repite

La secuencia obtenida es: 4, 3, 6, 5, 0, 7, 2, 1, ..... y luego la secuencia se repite. Se obtuvo 8 nmeros distintos, ya que:
m=8.

Una caracterstica que se desea de la sucesin de valores a obtener es que contenga exactamente una vez los nmeros
posibles. En el ejemplo anterior ello ocurri, pero no ocurre con cualquier valor de a, c y x
0
. ( Ejemplo: Sea a = 4, c
= 7, x
0
= 3 , m = 8 ).

4 x
n
+ 7
0 3 19 3
1 3 19 3

Y se repite el mismo valor 3; la secuencia obtenida tiene largo 1 ).

Hay algunas reglas para elegir los valores de a y c que garantizan la propiedad de que contenga exactamente una vez los
nmeros posibles. (NO hay restriccin sobre la semilla, porque la eleccin de sta slo afecta a la sucesin en cuanto al
punto en que comienza a salir y no en la progresin de los nmeros).

Si el computador que se usara tiene tamao de palabra de b bits, la eleccin normal de m es: m = 2
b
, 2
16
= 62236, 2
15
=
32768, 2
14
= 16384.

Con esta eleccin de m se puede asegurar que cada nmero posible ocurre exactamente una vez antes que se repita, si
es que se seleccionan:
a = 1, 5, 9, 13, 17,....
c = 1, 3, 5, 7, 9, 11,.....

Si el computador cuenta con tamao de palabra de d dgitos, la eleccin normal de m es 10
d
y se garantiza la misma
propiedad si se elige:

a = 1, 21, 41, 61,....
c = 1, 3, 7, 9, 11, 13, 17, 19,..... (los enteros positivos impares excepto aquellos que terminan con 5).

Ejemplo: Sea m = 2
15
= 32768 , a=5 , c=3 , x
0
= 12
n x
n
5x
n
+3 x
n+1

0 12 63 63
1 63 318 318
2 318 1593 1593
3 1593 7968 7968
4 7968 39843 7075
5 7075 35378 2610
6 2610 13053 13053
7 13053 65268 32500
8 32500 162503 31431
9 31431 157158 26086
10 26086 130433 32129
11 32129 160648 29576
12 29576 147883 16811
13 16811 84058 18522
14 18522 92613 27077
15 27077 135388 4316
... ... ... ...

La secuencia de 16 nmeros de 5 dgitos es:
00063 00318 01593 07968 07075 02610 13053 32500 31431 26086 32129 29576
16811 18522 27077 04316

Y los nmeros aleatorios obtenidos en el intervalo |0 , 1) son:
0,00063 0,00318 0,01593 0,07968 0,07075 0,02610 0,13053 0,32500 0,31431
0,26086 0,32129 0,29576 0,16811 0,18522 0,27077 0,04316


Ejemplo: Sea m = 100 , a = 21 , c = 3 , x
0
= 15. Entonces: x
n+1
= 21x
n
+3
La secuencia de valores obtenida es:

N Xn 21xn+3 Xn+1 N Xn 21xn+3 Xn+1 N Xn 21xn+3 Xn+1
0 15 318 18 34 77 1620 20 68 99 2082 82
1 18 381 81 35 20 423 23 69 82 1725 25
2 81 1704 4 36 23 486 86 70 25 528 28
3 4 87 87 37 86 1809 9 71 28 591 91
4 87 1830 30 38 9 192 92 72 91 1914 14
5 30 633 33 39 92 1935 35 73 14 297 97
6 33 696 96 40 35 738 38 74 97 2040 40
7 96 2019 19 41 38 801 1 75 40 843 43
8 19 402 2 42 1 24 24 76 43 906 6
9 2 45 45 43 24 507 7 77 6 129 29
10 45 948 48 44 7 150 50 78 29 612 12
11 48 1011 11 45 50 1053 53 79 12 255 55
12 11 234 34 46 53 1116 16 80 55 1158 58
13 34 717 17 47 16 339 39 81 58 1221 21
14 17 360 60 48 39 822 22 82 21 444 44
15 60 1263 63 49 22 465 65 83 44 927 27
16 63 1326 26 50 65 1368 68 84 27 570 70
17 26 549 49 51 68 1431 31 85 70 1473 73
18 49 1032 32 52 31 654 54 86 73 1536 36
19 32 675 75 53 54 1137 37 87 36 759 59
20 75 1578 78 54 37 780 80 88 59 1242 42
21 78 1641 41 55 80 1683 83 89 42 885 85
22 41 864 64 56 83 1746 46 90 85 1788 88
23 64 1347 47 57 46 969 69 91 88 1851 51
24 47 990 90 58 69 1452 52 92 51 1074 74
25 90 1893 93 59 52 1095 95 93 74 1557 57
26 93 1956 56 60 95 1998 98 94 57 1200 0
27 56 1179 79 61 98 2061 61 95 0 3 3
28 79 1662 62 62 61 1284 84 96 3 66 66
29 62 1305 5 63 84 1767 67 97 66 1389 89
30 5 108 8 64 67 1410 10 98 89 1872 72
31 8 171 71 65 10 213 13 99 72 1515 15
32 71 1494 94 66 13 276 76 100 15 318 18
33 94 1977 77 67 76 1599 99 101 18 381 81




Procedimientos ms habituales para validar un simulador

Validar un simulador es establecer el grado de exactitud que tienen los datos entregados por ste al contrastarlos con
resultados conocidos del sistema real; para concluir si el simulador representa bien al sistema real o no, o bien en qu
grado lo representa.


Ejemplo 1.- Al validar la salida de un simulador, ante situaciones iguales, dadas a ste y dadas en la realidad, una de las
variables entreg los siguientes valores F(x
1
,.....x
n
), que se indican junto a los del sistema real R(x
1
,.....x
n
).

x
1
...... x
n
F(x
1
,.....x
n
) R(x
1
,.....x
n
)

Hay diferencia significativa entre lo
entregado por el simulador y lo que
ocurri en el sistema real?
15.2 14.7
32.5 30.2
109.4 107.9
10.6 16.1
7.5 5.0
18.6 16.2
29.5 25.9
Lo observado en el
sistema real.
Lo esperado, salida del
simulador.



Aplicacin del test de Chi-cuadrado.

7

(v
0
-v
e
)
2

= 0,25 + 5,29 + 2,25 + 30,25 + 6,25 + 5,76 + 12,96 =
i=1 v
e
14,7 30,2 107,9 16,1 5,0 16,2 25,9

= 0,0170 + 0,1751 + 0,0208 + 0,0208 + 1,8789 + 1,2500 + 0,3556 + 0,5004
= 4,1978

En la tabla de _
2
con 7-1=6 grados de libertad y con o = 0.95 entrega: 12.592

Como valor de tabla es > valor calculado, se concluye que no hay discrepancia al nivel 5%.


Observacin: Si el valor de tabla < al valor calculado, hay discrepancia al nivel del 5%. Y se concluye que esos datos no
provienen de la misma funcin. Test de chi cuadrado para bondad de ajuste.


Ejemplo 2.- La siguiente lista de valores muestra la salida de una variable de un simulador ante sucesivas corridas en
iguales condiciones.

1) 35
2) 45
3) 41
4) 44
5) 42
6) 36
7) 38
8) 40
9) 40

Determine un intervalo que contenga el promedio de los
valores que tomar esa variable en sucesivas corridas, bajo
iguales condiciones, y un o = 0.95
Se asume que hay normalidad en los datos; los datos
provienen de una distribucin normal.

x
p
= 361 / 9 = 40,11111 ; Es el Promedio de la muestra de tamao 9.

1
) (
2
9
1 2

=

=
n
x xi
s
i
= | | 01 . 0 01 . 0 46 . 4 9 . 16 56 . 3 12 . 15 79 . 0 9 . 23 12 . 26
8
1
+ + + + + + + +

359 , 11
8
87 , 90
= =

s = 3,37

As, la desviacin estndar estimada del promedio de la muestra es:

12 , 1
9
37 , 3
= =
n
s


y el intervalo es x 1.8595 *
n
o

1.8595 Es el valor t de tabla con 8 grados de libertad, porque n es pequeo. Cuando n es grande coincide con la
normal.
El intervalo pedido es:


40,11 1,8595 * 1,12 = ( 38,02 , 42,19 ) longitud del intervalo es: 4,1653


Para un o = 0,75 el intervalo pedido es:

40,11 0,7064 * 1,12 = ( 39,32 , 40,90 ) longitud del intervalo es: 1,5823

donde 0,7064 es el valor obtenido de tabla.

Ejemplo 3.- Se espera que los valores que tome cierta variable de salida de un simulador estn uniformemente
distribuidos en [10 , 21) , y en sucesivas corridas del simulador los valores que entrega para esa
variable son:

19,24 12,54 20,50
20,58 16,51 15,04
11,54 16,13 20,23
16,47 17,53 15,55
14,58 18,05 11,01
18,20 14,76 11,12
10,97 16,19 13,30
19,12 11,46 17,47
15,76 13,65 10,77
12,95 18,70 10,50 30 datos!

Son estos valores uniformemente distribuidos entre 10 y 21?

Anlisis por intervalos.

N Intervalo: Frecuencia observada: Frecuencia esperada:
1 [ 10 ,11 ) = 3 30/11 = 2,72
2 [ 11 , 12 ) = 4 30/11 = 2,72
3 [ 12 , 13 ) = 2 30/11 = 2,72
4 [ 13 , 14 ) = 2 30/11 = 2,72
5 [ 14 , 15 ) = 2 30/11 = 2,72
6 [ 15 , 16 ) = 3 30/11 = 2,72
7 [ 16 , 17 ) = 4 30/11 = 2,72
8 [ 17 , 18 ) = 2 30/11 = 2,72
9 [ 18 , 19 ) = 3 30/11 = 2,72
10 [ 19 , 20 ) = 2 30/11 = 2,72
11 [ 20 , 21 ) = 3 30/11 = 2,72
Total =30

Aplicacin del test de _
2
para ver la bondad del ajuste de los valores observados a los valores esperados.

=

=
11
1
2
0
) (
i
e
e
v
v v
0,0273 + 0,5939 + 0,1939 + 0,1939 + 0,1939 + 0,0273 + 0,5939 + 0,1939
+ 0,0273 + 0,1939 + 0,0273

= 0,0273 * 4 + 0,5939 * 2 + 0,1939 * 5 = 2,2665

Valor tabla x
2
con 10 grados de libertad es: 18,307 , y o = 0,95

Como valor tabla > valor calculado, se concluye que no hay diferencia significativa entre las frecuencias obtenidas por
intervalo y las frecuencias esperadas. Por lo que la variable en estudio entrega valores uniformemente distribuidos.


Ejemplo 4.- Para una variable de salida X se espera valores normalmente distribuidos con media 10 y o = 1/2 , y las
salidas de 30 observaciones, son:

10,63
9,89
10,11
10,63
9,66
9,41
9,46
10,28
9,90
10,49
11,32
10,51
9,83
9,31
8,83
9,94
10,62
10,52
10,97
9,23
10,36
10,13
10,47
10,70
10,40
10,08
9,64
9,74

Los datos originales tienen:

54 . 0
325 . 0
29
7723 . 8
1
) (
09 . 10
30
30 . 302
2
2
=
= =

=
= = =

s
n
x x
s
n
x
x
i
i

9,96 9,82

Los datos van de 8,83 a 11,32 ~ 2,5 ; con longitud del intervalo = 2,5/10 =0,25. Esto nos da los intervalos a considerar:
8,83+0,25 = 9,08 y se toma 9,05 por comodidad. Los puntos siguientes estn a distancia 0,25.

Observado Esperado
( - , 9.05 ) = 0.033 =1/30 0,0287
[ 9.05 , 9.30 ) = 0.033 0,0521
[ 9.30 , 9.55 ) = 0.100 0,1033
[ 9.55 , 9.80 ) = 0.100 0,1605
[ 9.80 , 10.05 ) = 0.200 0,1952
[ 10.05 , 10.30 ) = 0.133 0,1860
[ 10.30 , 10.55 ) = 0.200 0,1385
[ 10.55 , 10.80 ) = 0.133 0,0809
[ 10.80 , 11.05 ) = 0.033 0,0369
[ 11.05 , 11.30 ) 0.000 0,0132
[ 11.30 ,+ ) = 0.033 0,0047
Suma = 1,000

Para obtener los valores esperados:

i) Se obtuvo los intervalos equivalentes en la curva normal N(0,1) y para ello se hizo as:
x + o * N ( 0 , 1 ) ~ N( x , o ) = N(10,1/2)
10 + 1/2 * N ( 0, 1 ) = 9.05
N( 0 , 1 ) = - 1.9

Es decir el punto 9,05 de N(10,1/2) equivale al punto 1,9 de N(0,1). Esto se hizo para los 9,05 9,30 9,55 .... 11,05
11,30 y se obtuvo los puntos de la tabla siguiente.
ii) De tabla se obtuvo el valor de la probabilidad de cada uno de los intervalos formados, y se form la tabla siguiente; que
es la que tiene los valores esperados.

Intervalo de N(0,1) Esperado
( - , -1.9) 0.0287
[ -1.9, -1.4 ) 0.0521
[ -1.4 , -0.9) 0.1033
[ -0.9 , -0.4 ) 0.1605
[ -0.4 , 0.1 ) 0.1952
[ 0.1 , 0.6 ) 0.1860
[ 0.6 , 1.1 ) 0.1385
[ 1.1 , 1.6 ) 0.0809
[ 1.6 , 2.1 ) 0.0369
[ 2.1 , 2.6 ) 0.0132
[ 2.6 , + ) 0.0047
1.0000

Ahora se aplica el Test de chi-cuadrado:

( )

30 , 0
2
e
e o
v
v v
En tabla _
2
con 10 grados de libertad y o = 0.95 da: 18.307
el valor calculado es menor que el valor obtenido de tabla. No hay diferencias significativas entre lo observado y lo
esperado al nivel 95%.
Los valores de la salida son valores normalmente distribuidos N(10,1/2)


Etapas en el desarrollo de un simulador.

Recordemos que las etapas nombradas para desarrollar un simulador son: 1) Iidentificacin del problema, 2)
Delimitacin del sistema, 3) Formulacin del modelo, 4) Preparacin de datos, 5) Construccin del modelo, 6)
Validacin, 7) Diseo de experimentos, 8) Ejecucin de experimentos, 9) Interpretacin (Inferencia), 10) Documentacin
Comentaremos a continuacin las etapas que siguen a las etapas del diseo, que son las 3 primeras, y son las que con ms
detalle se han desarrollado hasta aqu.


IV) Etapa IV: Preparacin de datos, o bien obtencin de datos.

- Consiste en la identificacin y captacin de los datos que requiere el modelo, de acuerdo a la formulacin que se
haya hecho en las etapas anteriores del diseo.
Los datos son para:
- Las relaciones funcionales, ya sea para determinar la forma de stas, completar su forma o expresin, o para
precisar algn parmetro que en ella se tenga.
- Las variables estocsticas, que de ellas se deber determinar su funcin de distribucin de probabilidades, tanto
para variables continuas como discretas. Determinar tablas de probabilidades o asociarles una funcin de densidad
de probabilidad conocida, como:

La normal N( , o)

De Poisson p(x ; ) = e
-

x
/x! ; x = 0, 1, 2,....

Hipergeometric p(N, n, k, x) =
|
|
.
|

\
|
|
|
.
|

\
|

|
|
.
|

\
|
n
N
x n
k N
x
k

La Polinomial, etc., etc.

-Las relaciones funcionales podran ser, rectas obtenidas por regresin lineal o ajuste de curvas.
-En las relaciones funcionales se debe fijar todos los parmetros que tenga; a menos que se haya dejado como una
variable de entrada al simulador.

- Los datos a usar pueden ser:
- Datos empricos
- Datos obtenidos con distribucin tericas.
El usar datos empricos es en general ms conveniente, pero puede implicar que el modelo quede influido por
factores que se dieron en el tiempo de gestacin de ellos y no vuelvan a repetirse. Ejemplo: perodo de sequa
prolongado, poco usual, que influir sobre parmetros del rbol.
- En cuanto a la cantidad de datos a obtener se debe equilibrar el costo de obtencin de ellos con los beneficios que
se tendra de tener esa cantidad de datos.


V. Construccin del modelo

Es llevar el modelo que se tiene del simulador a un lenguaje de programacin disponible en el computador a usar o en
las configuraciones disponibles, y que debe conocer su programacin. Luego que se tiene el programa fuente del
modelo, escrito en el lenguaje elegido, probarlo y depurarlo desde el punto de vista computacional, hasta obtener una
versin satisfactoria.
Para construir el programa se sugiere usar construccin en mdulos, y programar de manera estructurada estos
mdulos para finalmente ponerlos en interaccin.


VI. Validacin

Es esta etapa se trata de establecer, y si es posible aumentar, el nivel aceptable de confiabilidad de las inferencias
efectuadas sobre el sistema real.
La validacin tiene el concepto de grado, no es un resultado dicotmico, no es un si o no, no es vlido o invlido, no es
correcto o incorrecto.
Esta etapa es importante porque el usuario debe tener confianza en que los resultados que se deriven de las corridas y
del uso del simulador sean confiables, y en qu medida son confiables.
Todo modelo contiene simplificaciones, por lo que ningn modelo es absolutamente correcto en el sentido que exista
una correspondencia exacta entre l y el sistema real. Esto hace que siempre se tenga el problema de la validacin.

Fuentes de error

En la formulacin del modelo:
Que se excluya variables relevantes, o un atributo (esto es ms dramtico).
Que se incluya variables irrelevantes (es menos dramtico).
Mala eleccin de una funcin de distribucin de probabilidad para una variable.
Mal establecimiento de alguna relacin funcional o de los parmetros del modelo.

En los datos usados
- Toma de datos con margen de error relativo importante.
- Tcnica de muestreo mal aplicada. Ejemplo: Tomar todos los datos de un sector no representativo.
- Datos mal digitados o mal almacenados.
El analista hace un acto de confianza en el equipo que tena los datos.

En la construccin
- Errores en los programas (de lgica, mal uso del lenguaje).
- El tiempo real se simula mal.
- Uso de una imagen no adecuada del mundo real. (Usar matrices de punto para territorios, lagos, bosque,
cardumen, conglomerados; en lugar del espacio R
2
por ej.)

La validacin consiste en 2 etapas:

1) Validacin de los modelos de procesos simples; esto es validar la estructura interna del modelo.
- Se valida la salida de los procesos simples y en ello se hace uso de tcnicas de estadstica.
- Las relaciones funcionales tambin deben validarse. Puede hacerse cuando se establece el modelo o en la toma de
datos.
- No debe tomarse relaciones funcionales desconocidas, o que no tengan ya un grado de validez aceptable.
- Siempre ser posible validar las componentes o subsistemas porque se habrn construido de manera modular para
formar el modelo.
- En esta etapa se observar el comportamiento del modelo en cada uno de esos procesos simples para
asegurarse que cada componente o subsistema esta bien simulado.

2) Validar el modelo de simulacin en su entorno, esto es validar los datos de salida.
- Puede ser que la validez de la estructura sea buena, pero el resultado combinado de los procesos simples sea
casi mala.
- Confrontar los resultados de la simulacin con las experiencias pasadas y con teoras existentes al respecto:
- No tomar posturas como: los resultados no me parecen correctos, pero si el modelo lo dice yo lo acepto.
- Si los resultados son absurdos, no tiene sentido continuar; cualquier otro anlisis no convencer a los usuarios.
Ningn modelo se ha aceptado si los resultados van contra la teora.
- Para modelos de importancia, de envergadura deber consultarse la opinin de expertos.

Anlisis de sensibilidad
En las 2 etapas de la validacin (de estructura y de los datos de salida) se debe hacer anlisis de sensibilidad.
Para ello, se vara los valores de 1 o 2 variables de entrada y se observa la respuesta del modelo. Es de cuidado cuando el
modelo es muy sensible a una pequea variacin de una variable, y en general el modelo no es bueno cuando ello
ocurre.
Efectuar anlisis de sensibilidad de las variables dependientes ante cambios de las variables independientes.
- Con un simulador se puede realizar muchos anlisis de sensibilidad por el grado de control sobre las variables de
entrada (Mtodo Turing ). Luego consultar a expertos, si es posible.

- Anlisis de la capacidad de replicar los datos que se uso en su construccin. Esta rplica no es tan importante ya
que si replica los datos usados no significa que el modelo sea bueno; y, si ni siquiera replica los datos usados es
porque el modelo de simulacin obtenido, es malo.

- Anlisis de la capacidad de predecir usando datos crticos no incluidos en los datos, o usar datos histricos o datos
que se obtienen del sistema real o de otro simulador ya probado.
Se espera que estas salidas no sean absurdas comparadas con la experiencia y la teora. Se consulta la opinin de
expertos en esta confrontacin del modelo con la realidad presente.
Ej. Simular la evolucin de una poblacin de chinchillas dndole poblacin mxima altsima, y datos de poblacin
existentes. Consulta a expertos en chinchillas.

- El modelo debe correrse muchas veces antes de llegar a tener una probabilidad de distribucin de la respuesta de
un variable de salida.

También podría gustarte