SEP DGEST
INSTITUTO TECNOLOGICO DE CERRO AZUL
MATERIA:
SIMULACIÓN TRABAJO: SIMULADOR PARA EL CENTRO DE INFORMACION I.T.C.A. CATEDRATICO: LIC.MARIA ALEJANDRA ROSAS TORO PRESENTAN: LUGO LEAL EDUARDO REYES ROMÁN ADOLFO SANTIAGO RIVERA EDGAR EUGENIO CARRERA: ING. EN SISTEMAS COMPUT COMPUTACIONAL ACIONALES ES CERRO AZUL, VER, A 11 DE ABRIL DEL 2011
I. INTRODUCCIÓN Una vez obtenida toda la información, es decir, los datos de entrada del sistema real, es necesario convertirlos en información, o datos de entrada del modelo de simulación. Un modelo de simulación tiene como objetivo principal lograr un mejor entendimiento de un sistema real. Pero resulta indispensable obtener el menor margen de error entre entre conseguidotransformando el
la realidad y lo simulado, esto puede ser modelo a base de variables aleatorias que
interactúen entre sí. Esta transformación a variables aleatorias será realizado, en este documento, mediante el método de la transformada inversa y utilizando la distribución exponencial; para esto fue necesario utilizar los números pseudoaleatorios del programa de la unidad anterior. Los números pseudoaleatorios son el ingrediente principal para obtener los valores para las variables que aleatorias.
II. FORMULACIÓN DEL PROBLEMA
PLANTEAMIENTO PLANTEAMIENTO DEL PROBLEMA Para realizar el sistema simulador de manejo de inventarios se requiere, no solo los números números aleatorios aceptables, sino también también los valores de de las variables aleatorias con una distribución deseada y el modelo de simulación sea más cercano a la realidad, dando como consecuencia mejores datos.
1
I. INTRODUCCIÓN Una vez obtenida toda la información, es decir, los datos de entrada del sistema real, es necesario convertirlos en información, o datos de entrada del modelo de simulación. Un modelo de simulación tiene como objetivo principal lograr un mejor entendimiento de un sistema real. Pero resulta indispensable obtener el menor margen de error entre entre conseguidotransformando el
la realidad y lo simulado, esto puede ser modelo a base de variables aleatorias que
interactúen entre sí. Esta transformación a variables aleatorias será realizado, en este documento, mediante el método de la transformada inversa y utilizando la distribución exponencial; para esto fue necesario utilizar los números pseudoaleatorios del programa de la unidad anterior. Los números pseudoaleatorios son el ingrediente principal para obtener los valores para las variables que aleatorias.
II. FORMULACIÓN DEL PROBLEMA
PLANTEAMIENTO PLANTEAMIENTO DEL PROBLEMA Para realizar el sistema simulador de manejo de inventarios se requiere, no solo los números números aleatorios aceptables, sino también también los valores de de las variables aleatorias con una distribución deseada y el modelo de simulación sea más cercano a la realidad, dando como consecuencia mejores datos.
1
OBJETIVOS Objetivo General Generar los valores de las variables aleatorias mediante los números pseudoaleatorios.
Objetivos específicos
Conocer los valores de la variable aleatoria con distribución exponencial.
Conocer el tipo de variable aleatoria que da como resultado el método método de transformada inversa con distribución exponencial.
PREGUNTAS DE LA INVETIGACIÓN 1. ¿Qué es una variable variable aleatoria? aleatoria? 2.
¿Para qué sirve una una variable variable aleatoria? aleatoria?
3. ¿Qué tipo de variables variables aleatorias hay? 4. ¿Cuántos métodos métodos existen para generar variables aleatorias? 5. ¿Cuáles son los pasos para generar una variable aleatoria? 6. ¿Cuáles son las ventajas de generar variables aleatorias?
JUSTIFICACIÓN Debido a que en un simulador se debe tener una mejor aproximación de la realidad, es necesario obtener un modelo en base a variables aleatorias y así poderlo aplicar al modelo de inventarios a realizar en el siguiente proyecto.
2
III. MARCO TEORICO DEFINICIÓN DE VARIABLE ALEATORIA Un modelo de simulación permite lograr un mejor entendimiento de prácticamente cualquier sistema. Para ello resulta indispensable obtener la mejor aproximación a la realidad, lo cual se consigue componiendo el modelo a base de variables aleatorias que interactúen entre sí. Podemos decir que las variables aleatorias son aquellas que tienen un comportamiento probabilístico en la realidad. Por ejemplo, el número de clientes que llegan cada hora a un banco depende del momento del día, del día de la semana y de otros factores: por lo general, la afluencia de clientes será mayor al mediodía que muy temprano por la mañana; la demanda será más alta el viernes que el miércoles; habrá más clientes un día de pago que un día normal, etc. Dadas estas características, las variables aleatorias deben cumplir reglas de distribución de probabilidad como éstas:
La suma de las probabilidades asociadas a todos los valores posibles de la variable aleatoria x es uno.
La probabilidad de que un posible valor de la variables x se presente siempre es mayor que o igual a cero.
El valor esperado de la distribución de la variable aleatoria es la media de la misma, la cual a su vez estima la verdadera media de la población.
Si la distribución de probabilidad asociada a una variable aleatoria está definida por más de un parámetro, dichos parámetros pueden obtenerse mediante un estimador no sesgado. Por ejemplo, la varianza de la población a2 puede ser estimada usando la varianza de una muestra que
3
es s2. De la misma manera, la desviación estándar de la población, a, puede estimarse mediante la desviación estándar de la muestra s.
TIPOS DE VARIABLES ALEATORIAS Podemos diferenciar las variables aleatorias de acuerdo con el tipo de valores aleatorios que representan. Por ejemplo, si habláramos del número de clientes que solicitan cierto servicio en un periodo de tiempo determinado, podríamos encontrar valores tales como 0,1,2,..., n,es decir, un comportamiento como el que presentan las distribuciones de probabilidad discretas. Por otro lado, si habláramos del tiempo que tarda en ser atendida una persona, nuestra investigación tal vez arrojaría resultados como 1.54 minutos, 0.0 28 horas o 1.37 días, es decir, un comportamiento similar al de las distribuciones de probabilidad continuas.Considerando lo anterior podemos diferenciar entre variables aleatorias discretas y variables aleatorias continuas.
Variables aleatorias discretas. Este tipo de variables deben cumplir con estos parámetros:
Algunas distribuciones discretas de probabilidad son la uniforme discreta, la de Bernoulli, la hipergeométrica, la de Poisson y la binomial (vea la figura 3.1). Podemos asociar a estas u otras distribuciones de probabilidad el comportamiento de una variable aleatoria. Por ejemplo, si nuestro propósito al analizar un muestreo de calidad consiste en decidir si la pieza bajo inspección es buena o no, estamos realizando un experimento con dos posibles resultados: la pieza es buena o la pieza es mala. Este tipo de comportamiento está asociado a una distribución de Bernoulli. Por otro lado, si lo que queremos es modelar el número de usuarios que llamarán a un teléfono de atención a clientes, el tipo de comportamiento puede 4
llegar a parecerse a una distribución de Poisson. Incluso podría ocurrir que el comportamiento de la variable no se pareciera a otras distribuciones de probabilidad conocidas. Si éste fuera el caso, es perfectamente válido usar una distribución empírica que se ajuste a las condiciones reales de probabilidad. Esta distribución puede ser una ecuación o una suma de términos que cumplan con las condiciones necesarias para ser consideradas una distribución de probabilidad.
Variables aleatorias continuas. Este tipo de variables se representan mediante una ecuación que se conoce como función de densidad de probabilidad. Dada esta condición, cambiamos el uso de la sumatoria por la de una integral para conocer la función acumulada de la variable aleatoria. Por lo tanto, las variables aleatorias continuas deben cumplir los siguientes parámetros: Pix) >0 P(x = a) = 0 f(x) = 1 P{a < x < b) = Pia< x < b) = f(x)
5
Entre las distribuciones de probabilidad tenemos la uniforme continua, la exponencial, la normal, la de Weibull, la Chi-cuadrada y la de Erlang (vea la figura 3.2). Al igual que en el caso de las distribuciones discretas, algunos procesos pueden ser asociados a ciertas distribuciones.
Por ejemplo, es posible que el tiempo de llegada de cada cliente a un sistema tenga una distribución de probabilidad muy semejante a una exponencial, o que el tiempo que le toma a un operario realizar una serie de tareas se comporte de manera muy similar a la dispersión que presenta una distribución normal. Sin embargo, debemos hacer notar que este tipo de distribuciones tienen sus desventajas, dado que el rango de valores posibles implica que existe la posibilidad de tener tiempos infinitos de llegada de clientes o tiempos de ensamble infinitos, situaciones lejanas a la realidad. Por fortuna, es muy poco probable de se presenten este tipo de eventos, aunque el analista de la simulación debe estar consciente de cómo pueden impactar valores como los descritos en los resultados del modelo. En las siguientes secciones revisaremos algunas herramientas útiles para lograr ese objetivo.
6
GENERACIÓN DE VARIABLES A LEATORIAS La variabilidad de eventos y actividades se representa a través de funciones de densidad para fenómenos continuos, y mediante distribuciones de probabilidad para fenómenos de tipo discreto. La simulación de estos eventos o actividades se realiza con la ayuda de la generación de variables aleatorias. Los principales métodos para generar las variables aleatorias son:
Método de la transformada inversa.
Método de convolución.
Método de composición.
Método de la transformación directa.
Método de aceptación y rechazo.
MÉTODO DE LA TRANSFORMADA INVERSA El método de la transformada inversa puede utilizarse para simular variables aleatorias continuas, lo cual se logra mediante la función acumulada f{x) y la generación de números pseudoaleatorios r. ~ 1/(0,1). El método consiste en: 1. Definir la función de densidad F(x) que represente la variable a modelar. 2.
Calcular la función acumulada F(x).
3. Despejar la variable aleatoria x y obtener la función acumulada inversa F(x)~1. 4. Generar las variables aleatorias x, sustituyendo valores con números pseudoaleatorios r¡ ~ 1/(0,1) en la función acumulada inversa. El método de la transformada inversa también puede emplearse para simular variables aleatorias de tipo discreto, como en las distribuciones de Poisson, de Bernoulli, binomial, geométrica, discreta general, etc. La generación se lleva a 7
cabo a través de la probabilidad acumulada P(x) y la generación de números pseudoaleatorios r¡ ~ U(0,1). El método consiste en: 1. Calcular todos los valores de la distribución de probabilidad p(x) de la variable a modelar. 2.
Calcular todos los valores de la distribución acumulada P{x).
3. Generar números pseudoaleatorios r¡ ~ 1/(0,1). 4. Comparar con el valor de P(x) y determinar qué valor de x corresponde a P(x).
Distribución uniforme A partir de la función de densidad de las variables aleatorias uniformes entre ayb,
Se obtiene la función acumulada
Igualando la función acumulada F(x) con el número pseudoaleatorios r. ~ 1/(0,1), y despejando x se obtiene:
8
Distribución exponencial A partir de la función de densidad de las variables aleatorias exponenciales con media 1/,
se obtiene la función acumulada
Igualando la función acumulada F(x) con el número pseudoaleatorior¡ ~ U(0, 1), y despejando x se obtiene:
Distribución de Bernoulli A partir de la distribución de probabilidad de las variables aleatorias de Bernoulli con media
se calculan las probabilidades para x = 0 y x = 1, para obtener
9
Acumulando los valores de p(x) se obtiene:
Generando números pseudoaleatorios r¡ ~ 1/(0,1) se aplica la regla:
MÉTODO DE CONVOLUCIÓN En algunas distribuciones de probabilidad la variable aleatoria a simular, V, puede generarse mediante la suma de otras variables aleatorias Xde manera más rápida que a través de otros métodos. Entonces, el método de convolución se puede expresar como: Y = X :+X 2 + ... +X k Las variables aleatorias de cuatro de las distribuciones más conocidas (de Erlang, normal, binomial y de Poisson) pueden ser generadas a través de este método, como se verá a continuación.
Distribución de Erlang La variable aleatoria /c-Erlang con media 1/A puede producirse a partir de la generación de k variables exponenciales con media 1//VA:
10
MÉTODO DE COMPOSICIÓN El método de composición ²conocido también como método mixto² permite generar variables aleatorias x cuando éstas provienen de una función de densidad fx que puede expresarse como la combinación convexa de m distribuciones de probabilidad f7(x). Entonces, la combinación convexa se puede expresar como:
Donde:
Algunas de las distribuciones más conocidas que pueden expresarse como una combinación convexa son: triangular, de Laplace y trapezoidal. El procedimiento general de generación es el siguiente: 1. Calcular la probabilidad de cada una de las distribuciones f¡(x). 2.
Asegurar que cada función f^(x) sea función de densidad.
3. Obtener, mediante el método de la transformada inversa, las expresiones para generar variables aleatorias de cada una de las distribuciones f¡(x). 4. Generar un número pseudoaleatorio r¡ que permita definir el valor de lA{x). 5. Seleccionar la función generadora correspondiente a la función f¡(x). 6. Generar un segundo número pseudoaleatorio f, y sustituirlo en la función generadora anterior para obtener Y.
11
Distribución triangular A partir de la función de densidad triangular
Calcular la probabilidad de cada uno de los segmentos de la función:
Ya que los segmentos por separado no son funciones de densidad, se ajustan dividiendo por su correspondiente p(x).
Expresando la función como una combinación convexa se obtiene:
Donde:
Primero integramos para aplicar el método de la transformada inversa a cada segmento de la función: 12
Luego, despejando x y sustituyendo en F(x) obtenemos:
r¡
Por último, al expresar la ecuación anterior incluyendo la función indicadora tenemos que:
l A(x)
MÉTODO DE TRANSFORMACIÓN DIRECTA
Utilizado para generar variables aleatorias normales, este método se basa en el teorema de Pitágoras. En la figura 3.15 se muestra la relación entre las variables involucradas en él.
Geométricamente
13
La suma de v variables aleatorias normales estándar sigue una distribución Chicua-drada con v grados de libertad:
La función de densidad de una variable aleatoria Chi-cuadrada con
2
grados de
libertad es la misma de una distribución exponencial con media igual a
2.
En
consecuencia, usando la ecuación obtenida por el método de la transformada inversa para generar variables aleatorias exponenciales, y sustituyéndola en la ecuación anterior se obtiene:
Se generan valores aleatorios uniformes del ángulo
6 entre
0 y 2nmediante el
método de la transformada inversa:
Y sustituyendo obtenemos:
Para cualquier variable aleatoria normal N.
Al despejar N y sustituir el valor de z previamente desarrollado, se llega a la expresión final para la generación de variables aleatorias normales:
14
Este procedimiento iniciarse también a través de la generación de la variable aleatoria z 1 ,lo cual dará lugar a la ecuación final
MÉTODO DE ACEPTACIÓN Y RECHAZO Cuando f(x) es una función acotada y x tiene un rango finito, como a x b, se utiliza este método para encontrar los valores de las variables aleatorias. El método consiste en normalizar el rango de f mediante un factor de escala c, luego definir a x como una función lineal de r, después se generan parejas de números aleatorios r1 , r 2 y por último si el número encontrado se elige al azar dentro del rango (a,b) y r b, se utiliza este método para encontrar los valores de las variables aleatorias. El método consiste en normalizar el rango de f mediante un factor de escala c, luego definir a x como una función lineal de r, después se generan parejas de números aleatorios r1 , r 2 y por último si el número encontrado se elige al azar dentro del rango (a,b) y r cf (x) se acepta, en caso contrario se rechaza. El problema de este método es la cantidad de intentos que se realizan antes de encontrar una pareja exitosa.
15
EXPRESIONES COMUNES DE ALGUNOS GENERADORES DE VARIABLES ALEATORIAS En la tabla 3.18 se presentan los generadores de variables aleatorias de las distribuciones de probabilidad más usuales. Tabla 3.18 Generadores de variables aleatorias
16
17
18
IV. RECOLECCION Y PROCESAMIENTO DE DATOS
a= 200*t + p= 200*2 + 13 = 413
TABLA DE NUMEROS PSEUDOALEATORIOS n
X
n
X
n
X
n
1
0.3690
20
0.5690 41
0.7690 61
0.9690
81
0.1690
2
0.3970
21
0.9970 42
0.5970 62
0.1970
82
0.7970
3
0.9610
22
0.7610 43
0.5610 63
0.3610
83
0.1610
4
0.8930
23
0.2930 44
0.6930 64
0.0930
84
0.4930
5
0.8090
24
0.0090 45
0.2090 65
0.4090
85
0.6090
6
0.1170
25
0.7170 46
0.3170 66
0. 9170
86
0.5170
7
0.3210
26
0.1210 47
0.9210 67
0.7210
87
0.5210
8
0.5730
27
0.9730 48
0.3730 6 8
0.7730
88
0.1730
9
0.6490
28
0.8490 49
0.0490 69
0.2490
89
0.4490
10
0.0370
29
0.6370 50
0. 2370 70
0.8370
90
0.4370
11
0.2810
30
0.0810 51
0.8810 71
0.6810
91
0.4810
12
0.0530
31
0.4530 5 2
0.8530 72
0.2530
92
0.6530
13
0.8890
32
0.0890 53
0.2890 73
0.4890
93
0.6890
14
0.1570
33
0.7570 54
0.3570 74
0. 9570
94
0.5570
15
0.8410
34
0.6410 55
0.4410 75
0. 2410
95
0.0410
16
0.3330
35
0.7330 56
0.1330 76
0.5330
96
0.9330
17
0.5290
36
0.7290 57
0.9290 77
0.1290
97
0.3290
18
0.4770
37
0.0770 5 8
0.6770 7 8
0.2770
98
0.8770
19
0.0010
38
0.8010 59
0.6010 7 9
0.4010
99
0.2010
20
0.4130
39
0.8130 60
0.2130
0.6130 100
80
X
n
X
0.0130
19
V. FORMULACION DEL MODELO MATEMATICO MÉTODO DE LA TRANSFORMADA INVERSA 1. Definir la función de densidad F(x) que represente la variable a modelar. (Distribución exponencial) =86 personas/4 hrs=21.5 personas/h=0.3583 personas/min 2.
para x>=0
Calcular la función acumulada F(x).
3. Despejar la variable aleatoria x y obtener la función acumulada inversa F(x)~1.
Pero como r sigue una distribución uniforme, entonces 1-r también sigue esta distribución. Por consiguiente:
20
4. Generar las variables aleatorias x, sustituyendo valores con números pseudoaleatorios r¡ ~ U(0,1) en la función acumulada inversa.
21
VI. ESTIMACION DE LOS PARAMETROS El número de muestras ha sido de 86, la cantidad de números pseudoaleatorios (ri) es de 100 para generar los valores de la variable aleatoria.=0.35 83 personas/min que entran en una biblioteca.
22
VII. FORMULACION DEL PROGRAMA DE COMPUTACION
importjavax.swing.*; public class Principal { public static void main(String[] args) { PseudoAl R = new PseudoAl (); Generador x= new Generador(); double U [] = new double [101]; U=R.Numeros(); x.InvExp(U); JOptionPane.showMessageDialog(null," \n\nLUGO
LEAL
\nREYESROMAN
EDUARDO
PROGRAMA
\nSANTIAGO
RIVERA
ADOLFO","FIN
REALIZADO EDGAR
POR:
EUGENIO DEL
PROGRAMA",JOptionPane.INFORMATION_MESSAGE); } }
23
public class PseudoAl { public double [] Numeros (){
double a=413, X=13, m=1000; double Pseudo[]= new double [101]; String Salida= "Numeros pseudoaleatorios\n\n n\t R\t\n"; for(int i=1;i<=100;i++) { X=(a*X%m); Pseudo[i]=X/m; } return (Pseudo); }
}
24
importjava.text.DecimalFormat; importjavax.swing.*; public class Generador { public static void InvExp(double Numeros[]) { double variable[] = new double[101]; String Salida="n\tNumeros\tVariable\t\n"; DecimalFormatformateador = new DecimalFormat("0.0000"); double sum=0, med; String Media=JOptionPane.showInputDialog(null,"Teclee el valor de la media ()","Generador",JOptionPane.QUESTION_MESSAGE); med=Double.parseDouble(Media); for(int i=1; i<=100;i++) { variable[i]=(-1/med)*Math.log(Numeros[i]); sum= sum+ variable[i]; Salida+=i+"\t"+formateador.format (Numeros[i])+"\t"+formateador.format (variable[i])+"\t\n";
} System.out.print(Salida); System.out.println("EL valor acumulado es:"+formateador.format (sum)); }
25
VIII. DISEÑO DE LOS EXPERIMENTOS i
i
1
0.3690
2.7825
27
0.1210
5.8944
2
0.3970
2.5783
28
0.9730
0.0764
3
0.9610
0.1110
29
0.8490
0.4569
4
0.8930
0.3158
30
0.6370
1. 2587
5
0.8090
0.5916
31
0.0810
7.0145
6
0.1170
5. 9882
32
0.4530
2.2101
7
0.3210
3.1714
33
0.0 890
6.7517
8
0.5730
1.554 2
34
0.7570
0.7770
9
0.6490
1.2066
35
0.6410
1. 2412
10
0.0370
9.2013
36
0.7330
0. 8669
11
0.2810
3.5428
37
0.7290
0.8822
12
0.0530
8.1983
38
0.0770
7.1559
13
0.8890
0.3284
39
0.8010
0.61 93
14
0.1570
5.1675
40
0. 8130
0.5778
15
0.8410
0.4833
41
0.76 90
0.7331
16
0.3330
3.06 90
42
0.5970
1.4397
17
0.5290
1.7772
43
0.5610
1.6133
18
0.4770
2.0660
44
0.6 930
1.0235
19
0.0010
1 9.2793
45
0. 2090
4.3690
20
0.4130
2.4681
46
0.3170
3. 2064
21
0.5690
1.5738
47
0.9210
0.2297
22
0.9970
0.0084
48
0.3730
2.7524
23
0.7610
0.76 23
49
0.0490
8.4173
24
0.2930
3.4261
50
0. 2370
4.01 81
25
0.0090
13.146 9
51
0.8810
0.3536
26
0.7170
0. 9285
52
0.8530
0.4438
i
i
53
0.2890
79
0.4010
3.4645
2.5504
26
54
0.3570
2.8747
80
0.6130
1.365 9
55
0.4410
2.2850
81
0.1690
4.9619
56
0.1330
5.6305
82
0.7970
0.6333
57
0.9290
0.2055
83
0.1610
5.0 973
58
0.6770
1.0887
84
0.4930
1.9739
59
0.6010
1.4210
85
0.6090
1.3841
60
0.2130
4.3161
86
0.5170
1. 8412
61
0.9690
0.0879
87
0.5210
1.8197
62
0.1970
4.5341
88
0.1730
4. 8966
63
0.3610
2.8436
89
0.4490
2.2348
64
0.0930
6.6290
90
0.4370
2.3104
65
0.4090
2.4952
91
0.4810
2.0427
66
0.9170
0.2418
92
0.6530
1.1894
67
0.7210
0.9130
93
0.6890
1.0397
68
0.7730
0.71 86
94
0.5570
1.633 2
69
0.2490
3.8803
95
0.0410
8.9148
70
0.8370
0.4966
96
0.9330
0.1936
71
0.6810
1.0723
97
0.3290
3.1027
72
0.2530
3.8358
98
0.8770
0.3663
73
0.4890
1.9966
99
0.2010
4.47 80
74
0.9570
0.1227
100
0.0130
1 2.1206
75
0.2410
3.9714
76
0.5330
1.756 2
77
0.1290
5.7157
78
0.2770
3.5829
IX. CONCLUSIONES 27
Se ha dado un recorrido detallado de los métodos de generación de variables aleatorias, proporcionando algoritmos eficientes y de fácil implementación de las principales familias de variables aleatorias (discretas y continuas). Esto dos tipos de variables aleatorias, que se han mencionado y dependiendo de qué tipo de variable aleatoria se requiera utilizar, será el tipo de método y distribución a utilizar. En relación al método y distribución desarrollada, también se tiene que seguir pasos importantes para la generación de la variable aleatoria; la variable aleatoria X debe ser generada a partir de números pseudoaleatorios, una función de distribución y una media (); esté método tiene relación con la distribución de poisson y la distribución de erlang.
28