Pseudo Aleatorios
Pseudo Aleatorios
Pseudo Aleatorios
CARRION”
FACULTAD DE INGENIERIA
ESCUELA DE FORMACION PROFESIONAL DE SISTEMAS Y COMPUTACION
CURSO:
Simulación
DOCENTE:
Ing. Oscar Clevorio Campos Salvatierra
TEMA:
Números Pseudoaleatorios
ALUMNOS:
ESPINOZA ESCALANTE, Jhanphol Erik
MANCILLA LOPEZ, Denys
SEMESTRE:
VI
Casi Aleatorio:
Una variable de Charly Brown pseudoaleatoria es una variable que ha sido creada a través de un
procedimiento determinista (por norma general un programa de ordenador o subrutina) el cual tiene como
entrada dígitos realmente aleatorios. La cadena pseudoaleatoria resultante suele ser más larga que la
cadena aleatoria original, pero menos aleatorio, es decir, con menos entropía.
Los mecanismos de generación de números aleatorios que se utilizan en la mayoría de los sistemas
informáticos son en realidad procesos pseudoaleatorios.
Campos de Aplicación:
Los generadores de números pseudoaleatorios son ampliamente utilizados en campos tales como el
modelado por computadora, estadística, diseño experimental, etc. Algunas de estas secuencias son lo
suficientemente aleatorias para ser útiles en estas aplicaciones.
Una de las utilidades principales de los números pseudoaleatorios tiene lugar en los campos de la
criptografía y de la esteganografía. Por ello se sigue investigando en la generación de dichos números,
empleando por ejemplo medidores de ruido blanco o analizadores atmosféricos, ya que
experimentalmente se ha comprobado que tienen una aleatoriedad bastante alta.
Asimismo, también destacan su uso 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 son muy difíciles de
hallar o irresolubles; mediante la generación de puntos basados en estos números, podemos hacer una
buena aproximación de la superficie /volumen total, encerrándolo en un cuadrado / cubo, aunque no lo
suficientemente buena.
Secuencia Pseudoaleatoria:
Por lo general, el interés no radica en generar un solo número aleatorio, sino muchos, reunidos en lo que
se conoce como secuencia aleatoria.
Las secuencias de pseudoruido se distinguen de las secuencias aleatorias de verdad en que muestran una
periodicidad. Es decir, están formadas por una serie periódica de números positivos y negativos, o bits, de
longitud N. A uno de estos bits de una secuencia de pseudoruido se le llama chip. Por lo tanto, a la velocidad
de la secuencia se le llama tasa chip, y se mide en chips por segundo (cps). Una secuencia de este tipo se
puede representar de la siguiente manera:
Los códigos de pseudoruido deben satisfacer, entre otras, las siguientes condiciones:
1. En cada periodo la cantidad de números positivos tiene que diferir de la cantidad de números
negativos en exactamente uno. Así pues, N es un número impar:
2. En cada periodo la mitad de las secuencias del mismo signo han de tener longitud 1, un cuarto ha
de tener longitud 2, un octavo ha de tener longitud 3, y así sucesivamente. Además, el número de
secuencias de números positivos tiene que ser igual al número de secuencias de números
negativos.
3. La función de autocorrelación es periódica y presenta valor binario.
La mayoría de los algoritmos de generadores pseudoaleatorios producen sucesiones que poseen una
distribución uniforme según varios tipos de pruebas. Las clases más comunes de estos algoritmos son
generadores lineales congruentes, generadores Fibonacci demorados, desplazamiento de registros con
retroalimentación lineal y desplazamientos de registros con retroalimentación generalizada. Entre los
desarrollos más recientes de algoritmos pseudoaleatorios se encuentran Blum Blum Shub, Fortuna, y el
Mersenne twister.
Se requiere de un cuidadoso análisis matemático para tener algún tipo de confianza en que un dado GPAN
genera números que son suficientemente "aleatorios" para ser útiles para el propósito para el que se los
precisa. Robert R. Coveyou del Oak Ridge National Laboratory escribió un artículo titulado «La generación
de números aleatorios es demasiado importante como para ser dejado al azar».
Períodos más cortos que lo esperado para algunos estados semilla; en este contexto dichos
estados semilla pueden ser llamados 'débiles'
Falta de uniformidad de la distribución
Correlación de valores sucesivos
Pobre distribución dimensional de la sucesión resultado
Las distancias entre la ocurrencia de ciertos valores están distribuidas de manera distinta que la
que corresponde a una sucesión aleatoria
Algunas secuencias de bits son 'más aleatorias' que otras
Los defectos que son exhibidos por los GPAN van desde un rango de lo imperceptible hasta lo
absolutamente obvio. El algoritmo de números aleatorios RANDU utilizado por décadas en grandes
computadoras tipo mainframe poseía serias deficiencias, y como consecuencia mucho del trabajo de
investigación producido en ese período es menos confiable de lo que podría haber sido.
Características:
Para generar un conjunto de números pseudoaleatorios se requiere diseñar un algoritmo de generación.
Lo que resulta difícil es que dicho algoritmo genere números pseudoaleatorios con periodo de vida
suficientemente grande y además pase sin problemas las pruebas de uniformidad e independencia. Por lo
cual se necesita:
Equidistribución. Los números pseudoaleatorios deben repartirse por igual, como correspondería
a una verdadera distribución uniforme.
Largo periodo. Todos los generadores de números pseudo aleatorios tienen un periodo a partir
del cual la secuencia de números se vuelve a repetir. Para evitar correlaciones no deseadas es
importante que el periodo sea largo para no llegar a agotar la secuencia en un cálculo concreto.
Repetivilidad. A veces se necesita repetir el cálculo con exactamente los mismos números pseudo
aleatorios (para hacer una comprobación, por ejemplo). Así que conviene que el generador
permite almacenar su estado.
Largas subsecuencias disjuntas. Si la simulación es muy extensa resulta conveniente subdividirla
en otras más pequeñas, para lo que es importante que sean estadísticamente independientes y
así se puedan recombinar sin introducir correlaciones.
Portabilidad. La rutina debe generar exactamente la misma secuencia de números pseudo
aleatorios no solamente por distintos lenguajes de programación si no también en distintas
máquinas.
Eficiencia. La generación de cada número pseudoaleatorio debe consumir muy poco tiempo.
Estadísticamente independientes.
Continuidad. Los números pseudoaleatorios generados deben ser continuos en lugar de discretos.
Media del conjunto. Debe ser igual a 1⁄2
Varianza del conjunto. Debe ser igual a 1⁄12
𝑋𝑖
𝑟𝑖 = 𝑖 − 1,2,3, … , 𝑛
𝑚−1
Métodos Congruenciales:
o Algoritmo de congruenciales multiplicativo:
El Método Congruencial Multiplicativo al igual que el congruencial mixto genera una sucesión
de números pseudos aleatorios en la cual el sucesor 𝑋𝑛+1 del número pseudo aleatorio es
determinado justo a partir de 𝑋𝑛 , de acuerdo a la siguiente relación de recurrencia:
Al igual que el generador anterior, en éste también se debe seleccionar adecuadamente los
valores de los parámetros 𝑎, 𝑋0 y, con el fin de asegurar un período largo para las sucesiones
generadas por este método.
𝑟𝑖 = 𝑋𝑖 /(𝑚 − 1)
Capítulo 2
Desarrollo de los números pseudoaleatorios:
Son números aleatorios que podemos generar bajo el uso de varios algoritmos para lo cual
utilizaremos el uso de distintos métodos de generación de estos códigos:
d. Después para iniciar de nuevo tendremos que tomas el X1 y la nueva semilla y realizar
todo el procedimiento de nuevo.
e. También la división.
Ceros a la
n X0 X1 X0 * X1 Xn + 1 ri
izquierda
1 9546 2567 24504582 24504582 5045 0.5045
2 2567 5045 12950515 12950515 9505 0.9505
3 5045 9505 47952725 47952725 9527 0.9527
4 9505 9527 90554135 90554135 5541 0.5541
5 9527 5541 52789107 52789107 7891 0.7891
6 5541 7891 43724031 43724031 7240 0.724
7 7891 7240 57130840 57130840 1308 0.1308
8 7240 1308 9469920 09469920 4699 0.4699
9 1308 4699 6146292 06146292 1462 0.1462
10 4699 1462 6869938 06869938 8699 0.8699
11 1462 8699 12717938 12717938 7179 0.7179
12 8699 7179 62450121 62450121 4501 0.4501
13 7179 4501 32312679 32312679 3126 0.3126
14 4501 3126 14070126 14070126 0701 0.0701
15 3126 0701 2191326 02191326 1913 0.1913
16 0701 1913 1341013 01341013 3410 0.341
17 1913 3410 6523330 06523330 5233 0.5233
18 3410 5233 17844530 17844530 8445 0.8445
19 5233 8445 44192685 44192685 1926 0.1926
20 8445 1926 16265070 16265070 2650 0.265
21 1926 2650 5103900 05103900 1039 0.1039
22 2650 1039 2753350 02753350 7533 0.7533
23 1039 7533 7826787 07826787 8267 0.8267
24 7533 8267 62275311 62275311 2753 0.2753
25 8267 2753 22759051 22759051 7590 0.759
26 2753 7590 20895270 20895270 8952 0.8952
27 7590 8952 67945680 67945680 9456 0.9456
28 8952 9456 84650112 84650112 6501 0.6501
29 9456 6501 61473456 61473456 4734 0.4734
30 6501 4734 30775734 30775734 7757 0.7757
n a X0 a * X0 Ceros a la izquierda Xn + 1 ri
1 6965 9777 68096805 0068096805 6809 0.6809
2 6965 6809 47424685 47424685 4246 0.4246
3 6965 4246 29573390 29573390 5733 0.5733
4 6965 5733 39930345 39930345 9303 0.9303
5 6965 9303 64795395 64795395 7953 0.7953
6 6965 7953 55392645 55392645 3926 0.3926
7 6965 3926 27344590 27344590 3445 0.3445
8 6965 3445 23994425 23994425 9944 0.9944
9 6965 9944 69259960 69259960 2599 0.2599
10 6965 2599 18102035 18102035 1020 0.102
11 6965 1020 7104300 07104300 1043 0.1043
12 6965 1043 7264495 07264495 2644 0.2644
13 6965 2644 18415460 18415460 4154 0.4154
14 6965 4154 28932610 28932610 9326 0.9326
15 6965 9326 64955590 64955590 9555 0.9555
16 6965 9555 66550575 66550575 5505 0.5505
17 6965 5505 38342325 38342325 3423 0.3423
18 6965 3423 23841195 23841195 8411 0.8411
19 6965 8411 58582615 58582615 5826 0.5826
20 6965 5826 40578090 40578090 5780 0.578
21 6965 5780 40257700 40257700 2577 0.2577
22 6965 2577 17948805 17948805 9488 0.9488
23 6965 9488 66083920 0066083920 6608 0.6608
24 6965 6608 46024720 0046024720 4602 0.4602
25 6965 4602 32052930 032052930 2052 0.2052
26 6965 2052 14292180 14292180 2921 0.2921
27 6965 2921 20344765 20344765 3447 0.3447
28 6965 3447 24008355 0024008355 2400 0.24
29 6965 2400 16716000 16716000 7160 0.716
30 6965 7160 49869400 49869400 8694 0.8694
4. Algoritmo Lineal.
Generación de 70 datos numéricos entre 0 y 1 con los siguientes parámetros
1. Usaremos los siguientes parámetros.
5. Usamos la formula
Y generamos el código.