Guión

Anuncio
UNIVERSIDAD CARLOS III DE MADRID
Ingeniería Informática
Investigación Operativa
Práctica 6: Simulación
Guión práctico: Generación de Números Aleatorios y Simulación
Monte Carlo
Curso 08/09
Objetivo: Aprender a utilizar herramientas de simulacion en Excel
para resolver problemas con incertidumbre.
La mayoria de las decisiones que tomamos en nuestra vida involucran incertidumbre. Tomar en cuenta la probabilidad de los posibles escenarios es
fundamental si deseamos maximizar un bene…cio o minimizar una pérdida en
cualquiera de nuestras actividades cotidianas. A gran escala, muchas compañias
utilizan simulación Monte Carlo para mejorar sus ganacias u optimizar sus procesos. Por ejemplo, General Motors, Procter and Gamble y Elly Lilly usan simulación para estimar el retorno promedio y el riesgo de lanzar un nuevo producto
al mercado, así como para determinar la capacidad óptima de las plantas que utilizan para fabricar sus diferentes productos. Excel es una poderosa herramienta
de simulación y análisis que permite resolver una gran cantidad de problemas,
incluyendo aquellos que involucran incertidumbre. En esta práctica aprenderemos a utilizar algunas de las funciones de Excel para el tratamiento de este tipo
de problemas. Para realizar la práctica haremos uso del …chero practica6.xls
que se puede descargar de la página web de la asignatura o desde aula global.
Parte 1: ¿Cómo generar números aleatorios en excel?
En esta sección de la práctica vamos a aprender a generar números aleatorios
que se distribuyen uniformemente entre 0 y 1, es decir, la probabilidad de obtener cualquier número entre 0 y 1 será la misma en cada momento Excel genera
esta tipo de números a través del comando ALEATORIO(). Para aprender
a utilizar esta función utilizaremos la hoja de trabajo "simula1". El objetivo es generar 100 números aleatorios y determinar la fracción de esos números
que estan entre 0 y 0.25, 0.25 y 50, 0.50 y 0.75 y, …nalmente, entre 0.75 y 1.0.
1
Figura 1
Para ello se deberá generar un escenario similar al de la …gura 1. En esta hoja
rellenamos el conjunto de celdas C3:C102 con la formula ALEATORIO().
En la columna F aparecen las etiquetas correspondientes a los intervalos de interés, del lado derecho, para la celda F5, por ejemplo, emplearemos la función
CONTAR.SI(C3:C102;"<=0.25), lo que nos proporciona la cantidad de elementos entre 0 y 0.25; repetimos esta misma operación para las celdas F6 a
F8 teniendo en cuenta en descontar los elementos ya contabilizados en el primer
intervalo.
Parte 2: ¿Cómo simular valores de una variable aleatoria discreta?
Supongamos que la demanda de cierto tipo de producto esta dada por una
variable aleatoria discreta de acuerdo a la siguiente tabla:
Tabla1
Demanda
10000
20000
40000
60000
Probabilidad
0,10
0,35
0,30
0,25
2
La cuestión es como simular en excel la demanda de este producto las veces
que sea necesario para corroborar que sigue dicha dsitribución de probabilidades.
En la primera parte de esta práctica aprendimos a generar números aleatorios
con la propiedad de que su probabilidad se distribuye uniformemente entre el 0
y el 1, por lo tanto, si aprovechamos esta propiedad y asociamos cada posible
valor de probabilidad con una demanda, entonces la respuesta llega de manera
natural. Así por ejemplo, en la siguiente tabla se especi…ca que la demanda de
10000 unidades de producto ocurrira el 10 % de las veces y así para cada valor
de demanda indicado en la tabla 1.
Tabla2
Demanda
10,000
20,000
40,000
60,000
Número aleatorio
x<0.1
0.1 x < 0;45
0;45 x < 0;75
0;75 x
Para dar comienzo a esta simulación es necesario abrir la hoja "simula2",
en este ejercicio se deberá generar un escenario parecido al que se muestra en la
…gura 2. Tal y como en simula1, generamos 100 numeros aleatorios en el conjunto
de celdas C3:C102, posteriormente, al lado izquierdo de esta columna, generaremos otra columna con la demanda correspondiente acorde al valor del número
aleatorio generado. Así por ejemplo, números aleatorios mayores o iguales que
0 y menores que 0.1, tendrán asociada una demanda de 10,000. Para asociar la
demanda correspondiente a cada número utilizaremos la función de excel BUSCARV(), por lo tanto generaremos 100 ensayos o repeticiones de la demanda
del producto copiando de la celda B3 al rango de celdas B4:B102 la fórmula
BUSCARV(C3;lookup;2). Finalmente, en el rango de celdas G9:G11 utilizaremos de nuevo la función CONTAR.SI() para determinar la cantidad de
elementos (números aleatorios) que caen en la categoría de interés y a los que
se asignará el valor discreto de la variable demanda.
Parte 3: ¿Cómo simular valores de una variable aleatoria que
se distribuye como una normal?
La distribución normal es una de las más importantes distribuciones de probabilidad por sus aplicaciones prácticas. Excel permite simular valores de una
distribución normal con media y desviación estandar ; a través de la función
DISTR.NORM.INV(ALEATORIO();mean;sigma). En este ejercicio se
hará uso de la hoja "simula3". Supongamos que deseamos simular 200 ensayos
de una variable aleatoria normal con media 40,000 y desviación estandar de
10,000, para ello generamos 200 números aleatorios, por ejemplo en el rango de
celdas C3:C200. Recuerda que estos numeros siguen una istribución uniforme
en el intervalo [0,1] y que son generados a través de la función ALEATORIO(). Ahora copiamos de la celda B3 al rango de celdas B4:B200 la fórmula
3
Figura2
4
Figura3
DISTR.NORM.INV(C3;mean;sigma), con este procedimiento generamos
una columna de valores (200 ensayos) de una variale aleatoria normal con las
características deseadas. La función de excel genera un número aleatorio con
distribción normal, tal que la probabilidad de obtener dicho valor corresponda
al valor de nuestro número aleatorio uniforme, en otras palabras, si tenemos un
número aleatorio uniforme, digamos 0.8466, este número representa el percentil
85 de una variable aleatoria normal con media 40,000 y desviación estandar
10,000. El escenario que debe obtenerse es similar al de la …gura 3.
Parte 4: Optimización bajo incertidumbre
Supon que eres el encargado de producción en una compañia que se dedica
a producir tarjetas para el dia de San Valentín. Debido a la crisis el dueño de
la empresa desea producir las tarjetas tomando en cuenta la incertidumbre en
el mercado de ventas, de tal forma que sus ganancias no se vean afectadas por
este factor. Para ello te proporciona la siguiente tabla (tabla 3) con información
de la demanda del producto.
5
Tabla 3
Demanda
10000
20000
40000
60000
Probabilidad
0,10
0,35
0,30
0,25
Con dicha información el dueño te encarga la tarea de averiguar la cantidad
de tarjetas que deben ser producidas para el próximo San valentín. En otras
palabras, ¿Cuántas tarjetas hay que producir para que la ganancia esperada sea
máxima?.
Para resolver el problema lo primero que se debe tener en cuenta es que,
de acuerdo a la tabla 3, la demanda se comporta como una variable aleatoria
discreta, el resto será utilizar adecuadamente Excel y utilizar lo aprendido hasta
ahora para encontrar la respuesta. Como datos adicionales se sabe que el precio
de venta de cada tarjeta es de 4 euros y el costo por producir cada una de
ellas es de 1.50 euros. Además, se sabe que el costo por cada tarjeta que no se
venda es de 0.20 euros, a este costo le llamaremos costo por inventario. La idea
básica para resolver este problema es simular el escenario para cada valor de
demanda (10,000, 20,000, 40,000 y 60,000) un determinado número de veces. De
esta manera podremos determinar el escenario de producción que nos permita
obtener en el máximo valor promedio de ganancia. Este ejercicio de simulación
se llevará a cabo en la hoja "simula 4".
Vamos a generar una hoja de cálculo similar a la de la …gura 4, para ello
colocamos las etiquetas correspondientes a las variables del problema en el rango de celdas B1:B11 y los valores correspondientes en el rango C1:C11. En
el rango de celdas G3:G6 aparece el límite inferior del valor de probabilidad
para cada valor de la demanda. El precio de venta y los parámetros de costo
pueden ser introducidos en el rango de celdas C4:C6. Ahora introducimos un
valor de producción de 40,000 en la celda C1 como primer ensayo. Posteriormente en la celda C2 generamos un número aleatorio uniforme con ayuda de la
función ALEATORIO() y simulamos, en la celda C3, el valor de la demanda
correspondiente a través de la fórmula BUSCARV(C2;lookup;2).
Note que el número de unidades vendidas es la mínima cantidad entre la
cantidad de tarjetas producidas y la demanda. Así, los ingresos por venta están
calculads en la celda C8 con la fórmula MIN(producción, demanda), donde
producción y demanda son los nombres asignados a las celdas C1 y C3, respectivamente. Por otro lado, si se producen más tarjetas de las que se demandan, el
número de unidades sobrantes ( inventario) será la diferencia entre producción
menos demanda.
La expresión unidad_disp_cost*SI(produccion>demanda;produccióndemanda;0) se utilizará para calcular el costo total por tarjetas sobrantes,
dicha expresión se introduce en la celda C10. Finalmente, en la celda C11,
6
Figura 4
el bene…cio total o ganancia es calculado con la fórmula ingresos_totalescosto_total-costo_inventario.
Hasta ahora, con lo que hemos aprendido, necesitariamos oprimir F9 muchas
veces (digamos 100 para este ejercicio) para cada escenario de producción y
calcular la ganancia esperada, sin embargo, utilizaremos una tabla de análisis
como la mostrada en la …gura 5 para ahorrarnos todo ese trabajo.
Para generar la tabla de análisis, en el rango de celdas A16:A115 introducimos los números de 1 a 100, correspondientes a nuestros 100 ensayos o
experimentos. Luego, en el rango de celdas B15:E15 introducimos los posibles
escenarios de producción. Lo que deseamos es calcular la ganacia neta promedio
para cada ensayo y para cada escenario de producción, para ello copiamos el
contenido de la celda C11 en la celda A15. A continuación seleccionamos el
rango de celdas (tabla) A15:E114 y pinchamos el comando Datos para seleccionar tabla del menú de opciones correspondiente. Aparecerá una tabla de 2
7
Figura 5
8
Figura 6
entradas como en la …gura 6, en ella seleccionamos cualquier celda en blanco
(digamos I14) como celda de entrada (columna) y la celda C1 como celda de
entrada (…la). Una vez hecho esto, pinchamos OK y automáticamente Excel
genera las 100 simulaciones para cada escenario de producción.
Ahora introducimos en la celda B13 la fórmula PROMEDIO(B16:B116)
y la copiamos sobre el rango de celdas C13:E13, con esta operación se han calculado las ganancias promedio para cada escenario de producción. Si repetimos
el mismo mecanismo, pero ahora utilizando la fórmula DESVEST(), obtendremos la desviación estandar correspondiente a la ganancia obtenida en la
simulación. Si pinchamos F9, se calculan de manera automática 100 iteraciones
(o las iteraciones que nosotros …jemos) para cada nivel de producción. Observa
que producir 40,000 tarjetas es la mejor decisión que podría tomarse, pues nos
reporta ganancia esperada, así que ya sabes que responder al jefe.
Con los valores de la media y de la desviación estandar obtenidos en las simulaciones, es posible calcular intervalos de con…anza para la ganancia promedio.
Por ejemplo, un intervalo de con…anza al 95 % para la ganancia promedio, para
9
un determinado número de simulaciones, puede ser calculado con la siguiente
expresión:
p D:S
media= 1;96
NS
D.S = Desviación estandar
NS = Número de simulaciones
Cuestionario
1. Supon que su jefe es algo despistado en probabilidades y desea saber
con exactitud la ganancia para la proxima temporada de San valentín.
¿Qué le responderían ustedes?. (Generar la respuesta en simula 4)
2. Un pequeño supermercado está tratando de determinar cuántas copias
de una revista de computación deben ser pedidas al distribuidor cada semana. Se tiene conocimiento que la demanda de la revista esta
governada por la variable aleatoria discreta de acuerdo a la siguiente
tabla:
Demanda Probabilidad
15
0.1
20
0.20
25
0.30
30
0.25
35
0.15
Como información adicional se tiene que el supermercado paga 1
euro por cada copia de la revista y lo venden a un precio de 1.95
euros. Además, ellos pueden retornar cada revista que nos se vende
a un precio de 0.50 euros. ¿Cuántas copias de la revista deben ser
adquiridas para maximizar la ganancia promedio?.
Nota: Esta práctica esta basada en el libro Microsoft Excel Data
Analysis and Busines Modeling by Wayne L. Winston.
10
Descargar