Вы находитесь на странице: 1из 21

13/09/2015

UNIVERSIDAD NACIONAL PEDRO RUIZ GALLO


Facultad de Ingeniera Civil, Sistemas y Arquitectura
Escuela Profesional de Ingeniera de Sistemas

GENERACION DE NUMEROS
PSEUDOALEATORIOS
Modelamiento y Simulacin

Ing. Csar Augusto Guzmn Valle

Objetivo de la sesin

Identificar los diferentes tipos de algoritmos para


la generacin de nmeros pseudoaleatorios.

13/09/2015

Mapa Conceptual del Curso


Colas con
un servidor

Modelado y
Simulacin
Proyectos
Simulacin

Series de
Nro. Aleato

Simulacin
X Eventos

Colas en
Serie

Inventarios

Colas en
Paralelo

Validacin
de Series
Generacin
de VA

Mapa Conceptual
Xi+1=(aXi+c) mod m
Tabla de Nros.
aleatorios

Fenmenos Fsicos

Procedimientos
Matemticos

Nmeros
Aleatorios

Validacin de
Series de NA

Variables
U (0,1)
Variables
Aleatorias

13/09/2015

Nmeros aleatorios
f(x)
f(x)

1,

0x 1

1
0,

en otro caso

F(x)

0,

x<0

x,

0x 1

1,

x<1

F(x)

Nmeros aleatorios

La probabilidad de observar un valor en un


particular intervalo es independiente del valor
previo observado.
Todo punto en el rango tiene igual probabilidad
de ser elegido.
Si el intervalo (0,1) es dividido en n subintervalos de igual longitud, el nmero esperado
de observaciones en cada intervalo es N/n. (N
nmero de observaciones totales).

13/09/2015

Caractersticas de un Generador de Nmeros


Aleatorios
Rol preponderante en el proceso de simulacin.
Para simular necesitamos de nmeros aleatorios
como semillas para generar muestras de V.A.

Caractersticas
aleatorios:

de un generador de nmeros

1) Muestrea valores de Distribucin Uniforme.


2) Asegura la NO Correlacin Serial.

Algunas Propiedades de Nmeros


Aleatorios
1. Distribucin Uniforme.
Cualquier
nmero
que
pertenezca al rango de inters
debe
tener
la
misma
probabilidad
de
resultar
sorteado.
2. NO Correlacin Serial.
La aparicin de un nmero en
la secuencia, no afecta la
probabilidad de que aparesca
otro (o el mismo) nmero.

13/09/2015

Ejemplo
La sucesin 1,2,3,4,5,1,2,3,4,5,1,2,3,4,5...
es uniforme
pero
est correlacionada.

Existen Tests que verifican las condiciones de


uniformidad y correlacin serial, temas que veremos
mas adelante.

Generador de nmeros aleatorios

El objetivo de cualquier esquema de generacin


es producir una secuencia de nmeros entre 0
y 1 que simule las propiedades ideales de
distribucin uniforme y de independencia.

13/09/2015

Generar nmeros que sean aleatorios por si mismos

Nmeros pseudoaleatorios

Nmeros que se comportan de manera muy


similar a nmeros aleatorios.

Casi todas las aplicaciones comerciales tienen estos nmeros pseudoaleatorios

13/09/2015

Nmeros pseudo-aleatorios

Los nmeros aleatorios son calculados a partir


de una semilla (seed) y una frmula.
El problema es que si el mtodo es conocido,
entonces la secuencia de nmeros aleatorios
puede ser replicada.
En la prctica ninguna funcin produce datos
aleatorios verdaderos -- las funciones producen
nmeros pseudo-aleatorios.

Propiedades deseables
1.
2.

3.
4.
5.
6.
7.
8.

Uniformemente distribuidos.
Estadsticamente independientes (no
correlacin).
Periodo largo (sin repeticin).
Reproducibles y mutables.
Sencillo en su implementacin.
Portabilidad.
Mtodo rpido de generacin.
Poca memoria para la generacin.

13/09/2015

Para realizar una simulacin se requieren nmeros aleatorios


en el intervalo (0,1), a os cuales se har referencia como ri, es
decir, una secuencia ri = {r1 , r2 , r3 , r4 ,.., rn } que contiene n
nmeros, todos ellos diferentes; n recibe el nombre de
periodo o ciclo de vida.

Los ri constituyen la parte medular de la simulacin de


procesos estocsticos y generalmente se utilizan para generar
variables aleatorias, tanto continuas como discretas.

Para simular el comportamiento de una o ms variables


aleatorias es necesario contar con un conjunto
suficientemente gran de ri , para tener al menos un periodo de
vida. (n= 231 2200)

Porque manejar una gran


cantidad de ri ?

Queremos simular el tiempo de atencin a clientes


en un banco que tiene 5 cajeros en paralelo y
cada uno atiende aprox. 50 clientes diarios. Para
simular el tiempo de atencin se requiere un
generador de variable aleatoria en funcin de ri ,
por ejemplo Ti= 5 + 2ri . Cuantos ri se necesitan?
Diario: 5 * 50 = 250
Semanal: 5 * 250 = 1250
Donde queda el tiempo que demora cada cliente en llegar.
Diario: 5 * 50 = 250
Semanal: 5 * 250 = 1250

2500ri

13/09/2015

Para bueno resultados en necesario realizar


varias replicas, corriendo cada una con nmeros
pseudoaleatorios diferentes.

Del ejemplo anterior en nueve replicas cuantos ri


se necesitarias?

Por esto es necesario generar nmeros


pseudoaleatorios con algoritmos determinsticos.

Generar un conjunto de ri es una tarea relativamente


sencilla; el lector puede generar su propio algoritmo;
lo dificil es:
Un conjunto de ri con periodo de vida suficientemente
grande (N).
Pase sin problemas las pruebas de uniformidad e
independencia, para evitar:

Que los nmeros no estn uniformemente distribuidos


Que los nmeros sean discretos en vez de continuos
Que la media del conjunto sea muy alta o muy baja (1/2).
Que la varianza del conjunto sea muy alta o muy baja (1/12)

13/09/2015

Tcnicas para generar nmeros


aleatorios

La mayora de los mtodos (generadores)


comienzan con un nmero inicial (semilla), a
este nmero se le aplica un determinado
procedimiento y as se encuentra el primer
nmero random.
Usando este nmero como entrada, el
procedimiento es repetido para lograr un
prximo nmero random.
Y as siguiendo.

Algoritmos determinsticos para


generacin de ri

Algoritmos no congruenciales
Cuadrados

medios
Productos medios
Multiplicador constante

Algoritmos congruenciales
Lineal
Congruencial

lineal
Congruencial multiplicativo
Congruencial aditivo
No

lineales

10

13/09/2015

Algoritmos No Congruenciales

Algoritmo de cuadrados medios


1.
2.

3.

4.

Seleccionar una semilla X0 con D dgitos (D>3)


Sea Y0 = resultado de elevar X0 al cuadrado; sea Xi =
los D dgitos del centro, y sea el ri = 0.D digitos del
centro.
Sea Yi = resultado de elevar Xi al cuadrado; sea Xi+1 =
los D dgitos del centro, y sea el ri = 0.D dgitos del
centro para toda i= 1,2,3,,n
Repetir este paso hasta obtener los n nmeros ri
deseados.

Nota: Si no es posible obtener los D dgitos del centro del


numero Yi, agregue ceros a la izquierda del numero Yi

11

13/09/2015

Ejemplo

Generar los primeros 5 nmeros ri a partir de


una semilla X0 = 5735, de donde se puede
observar D= 4 dgitos
Xi

ri

= 32890225

8902

0.8902

Y1=(8902)2 = 79245604

2456

0.2456

0319

0.0319

= 101761

0176

0.0176

Y4=(0176)2 = 030976

3097

0.3097

Y0
Y2

=(5735)2
=(2456)2

Y3

= 06031936

=(0319)2

El algoritmo de cuadrados medios


generalmente es incapaz de generar una
secuencia de ri con periodo de vida n
grande.

12

13/09/2015

Algoritmo de productos medios


Seleccionar una semilla X0 con D dgitos (D>3)
Seleccionar una semilla X1 con D dgitos (D>3)
Sea Y0 = X0 *X1 ; sea X2 = los D dgitos del centro, y sea ri
= 0.D dgitos del centro.
Sea Yi = Xi *Xi+1 ; sea Xi+2 = los D dgitos del centro, y sea
ri+1 = 0.D dgitos del centro para toda i= 1,2,3,,n
Repetir el paso 4 hasta obtener los n nmeros ri
deseados.

1.
2.
3.

4.

5.

Nota: Si no es posible obtener los D dgitos del centro del


numero Yi, agregue ceros a la izquierda del numero Yi

Ejemplo

Generar los primeros 5 nmeros ri a partir de


una semilla X0 = 5015 y X1= 5734, de donde
se puede observar D= 4 dgitos
Xi

ri

Y0=(5015)(5734)= 28756010

7560

0.7560

Y1=(5734)(7560)= 43349040

3490

0.3490

Y2=(7560)(3490)= 26384400

3844

0.3844

Y3=(3490)(3844)= 13415560

4155

0.4155

Y4=(3844)(4155)= 15971820

9718

0.9718

13

13/09/2015

Algoritmo de Multiplicador constante


Seleccionar una semilla X0 con D dgitos (D>3)
Seleccionar una constante (a) con D dgitos (D>3)
Sea Y0 = X0 *a ; sea X1 = los D dgitos del centro, y sea
ri = 0.D dgitos del centro.
Sea Yi = Xi *a ; sea Xi+1 = los D dgitos del centro, y sea
ri+1 = 0.D dgitos del centro para toda i= 1,2,3,,n
Repetir el paso 4 hasta obtener los n nmeros ri
deseados.

1.
2.
3.

4.

5.

Nota: Si no es posible obtener los D dgitos del centro


del numero Yi, agregue ceros a la izquierda del numero
Yi

Ejemplo

Generar los primeros 5 nmeros ri a partir de


una semilla X0 = 9803 y con la constante a=
6965, de donde se puede observar D= 4
dgitos
Xi

ri

Y0=(6965)(9803)= 68277895

2778

0.2778

Y1=(6965)(2778)= 19348770

3487

0.3487

Y2=(6965)(3487)= 24286955

2869

0.2869

Y3=(6965)(2869)= 19982585

9825

0.9825

Y4=(6965)(9825)= 68431125

4311

0.4311

14

13/09/2015

Algoritmos Congruenciales

Algoritmo lineal
Este algoritmo es el mas usado, genera una serie de nmeros
aleatorios mediante la siguiente ecuacin recursiva:
Xi =(a Xi + c) mod (m) i=0,1,2,,n
Donde: Xo es la semilla, a es la constante multiplicativa, c es
una constante aditiva y m es el mdulo; todos los valores
deben ser nmeros enteros.
Es importante sealar que la ecuacin genera una secuencia
de nmeros enteros y que para obtener nmeros
pseudoaleatorios (0,1) se requiere la siguiente ecuacin:
ri = Xi / (m-1)

i= 1,2,3,,n

15

13/09/2015

Ejemplo

Generar 4 nmeros entre 0 y 1 con los siguientes


parmetros X0 = 37, a= 19, c= 33 y m = 100
Xi

ri

X1=(19*37+33) mod 100= 36

36/99

0.3636

X2=(19*36+33) mod 100= 17

17/99

0.1717

X3=(19*17+33) mod 100= 56

56/99

0.5656

X4=(19*56+33) mod 100= 97

97/99

0.9797

Los valores de Xo, a, c, m deben cumplir ciertas condiciones


no ser tomados de forma arbitraria

m= 2g
a= 1 + 4k
K debe ser entero
c relativamente primo a m
g debe ser entero

Bajo estas condiciones se obtiene un periodo de vida


mximo: N= m = 2g
Ejemplo: realizar un algoritmo donde se genere 64
nmeros pseudoaleatorios

16

13/09/2015

Ejemplo

Generar nmeros entre 0 y 1 con los siguientes parmetros X0 = 6, k= 3,


g= 3 y c = 7

N=?; N= 2g = 23 = 8

a=?; a= 1+ 4(k) = 1 + 4(3) = 13


X0=6
X1=(13*6+7) mod 8= 5

5/7

0.714

X2=(13*5+7) mod 8= 0

0/7

0.000

X3=(13*0+7) mod 8= 7

7/7

1.000

X4=(13*7+7) mod 8= 2

2/7

0.285

X5=(13*2+7) mod 8= 1

1/7

0.142

X6=(13*1+7) mod 8= 4

4/7

0.571

X7=(13*4+7) mod 8= 3

3/7

0.428

X8=(13*3+7) mod 8= 6

6/7

0.857

Algoritmo Congruencial Multiplicativo


Este algoritmo surge del algoritmo congruencial lineal cuando
c=0; mediante la siguiente ecuacin recursiva:
Xi =(a Xi + c) mod (m) i=0,1,2,,n
Xi =(a Xi) mod (m) i=0,1,2,,n

Es importante sealar que la ecuacin genera una secuencia de


nmeros enteros y que para obtener nmeros pseudoaleatorios
(0,1) se requiere la siguiente ecuacin:
ri = Xi / (m-1)

i= 1,2,3,,n

17

13/09/2015

Condiciones a cumplir
g
m= 2
a= 3 + 8k o a= 5 + 8k
K= 0,1,2,3,
Xo debe ser un numero impar
g debe ser entero
Bajo estas condiciones se obtiene un periodo
de vida mximo: N= k/4 = 2g-2

Ejemplo

Generar nmeros entre 0 y 1 con los siguientes parmetros X0 = 17, k= 2,


g= 5

a=?; a= 5+ 8(k) = 5 + 8(2) = 21

X0=17
X1=(21*17) mod 32= 5

5/31

0.1612

X2=(21*5) mod 32= 9

9/31

0.2903

X3=(21*9) mod 32= 29

29/31

0.9354

X4=(21*29) mod 32= 1

1/31

0.3225

X5=(21*1) mod 32= 21

21/31

0.6774

X6=(21*21) mod 32= 25

25/31

0.8064

X7=(21*25) mod 32= 13

13/31

0.4193

X8=(21*13) mod 32= 17

17/31

0.5483

18

13/09/2015

Algoritmo Congruencial Aditivo


Este algoritmo requiere una secuencia previa de n
numero enteros Su ecuacin recursiva es:
Xi =(Xi-1 + Xi-n) mod (m) i=n+1,n+2,n+3,,N

Es importante sealar que la ecuacin genera una


secuencia de nmeros enteros y que para obtener
nmeros pseudoaleatorios (0,1) se requiere la siguiente
ecuacin:
ri = Xi / (m-1)

Ejemplo

Generar 7 nmeros entre 0 y 1 a partir de las siguiente secuencia de


nmero enteros: 65, 89, 98, 03, 69; m= 100

Para generar r1, r2, r3, r4, r5, r6, r7, antes es necesario generar x6, x7, x8, x9, x10,
x11, x12,

X6=(X5*X1) mod 100= (69+65)mod100= 34

34/99

0.3434

X7=(X6*X2) mod 100= (34+89)mod100= 23

23/99

0.2323

X8=(X7*X3) mod 100= (23+98)mod100= 21

21/99

02121

X9=(X8*X4) mod 100= (21+03)mod100= 24

24/99

0.2424

X10=(X9*X5) mod 100= (24+69)mod100= 93

93/99

0.9393

X11=(X10*X6) mod 100= (93+34)mod100= 27

27/99

0.2727

X12=(X11*X7) mod 100= (27+23)mod100= 50

50/99

0.5050

19

13/09/2015

Algoritmo Congruencial Cuadrtico


Este algoritmo tiene la siguiente ecuacin recursiva:
Xi+1 =(aXi 2 + bXi + c) mod (m) i=0,1,2,3,,N

Es importante sealar que la ecuacin genera una


secuencia de nmeros enteros y que para obtener
nmeros pseudoaleatorios (0,1) se requiere la siguiente
ecuacin:
ri = Xi / (m-1)

Condiciones a cumplir
g
m= 2
a debe ser un numero par
c debe ser un numero impar
g debe ser entero
(b-1)mod 4= 1
Bajo estas condiciones se obtiene un periodo
de vida mximo: N= m

20

13/09/2015

Ejemplo

Generar suficientes nmeros hasta alcanzar el periodo de vida,


considerando los parmetros Xo = 13, m = 8, a = 26, b = 27 y c = 27

X1= (26*132+27*13+27)mod8= 4
X2= (26*42+27*4+27)mod8= 7
X3= (26*72+27*7+27)mod8= 2
X4= (26*22+27*2+27)mod8= 1
X5= (26*12+27*1+27)mod8= 0
X6= (26*02+27*0+27)mod8= 3
X7= (26*32+27*3+27)mod8= 6
X8= (26*62+27*6+27)mod8= 5
X9= (26*52+27*5+27)mod8= 4

21

Вам также может понравиться