Sunteți pe pagina 1din 7

Prctica #1: Introduccin a la simulacin

En esta prctica realizaremos dos actividades. La primera es la simulacin de un juego de dados llamado CRAPS. Esta simulacin se basa en la aplicacin de los conceptos de probabilidad y distribucin de probabilidad. La siguiente actividad es una introduccin a la simulacin de Montecarlo. Como se discuti en clase, la simulacin de Montecarlo es una simulacin esttica que representa el estado del sistema en un punto particular en el tiempo (Banks et al. 1999). Los mtodos de Montecarlo permiten experimentar con un modelo por medio del muestreo estadstico y se aplican auna amplia gama de problemas que van desde la optimizacin de funciones complejas hasta la solucin de ecuaciones integrales complicadas. Simulacin de Craps Craps es un popular juego de dados en el cual un jugador lanza un par de dados hasta que gane o pierda de acuerdo con las siguientes reglas: Gana si: Obtiene 7 u 11 en el primer lanzamiento Obtener 4, 5, 6, 8, 9 o 10 en el primer lanzamiento y repetir lo obtenido en el primer lanzamiento antes de obtener un 7 Pierde si: Obtener 2, 3 o 12 en el primer lanzamiento Obtener 7 en un lanzamiento posterior, antes de obtener lo lanzado en la primera ocasin A continuacin se presenta la funcin de distribucin de probabilidad para el lanzamiento de los dados. Sea Z la suma del resultado de ambos dados, usando dos dados sin sesgo tenemos que la probabilidad de que Z = i se presenta en la tabla siguiente.

i P(Z = i)

2 1/36

3 2/36

4 3/36

5 4/36

6 5/36

7 6/36

8 5/36

9 4/36

10 3/36

11 2/36

12 1/36

Ahora tenemos que la probabilidad de ganar en el primer lanzamiento es: 8 ( = 7) ( = 11) = =0 2 36 Ahora bien, si el jugador obtiene un 5 en el primer lanzamiento, el espacio de posibles estados estar compuesto todas las formas de sacar 5 y todas las formas de sacar 7, ya que cualquier otro resultado no me afecta el estado del juego, as tenemos que la probabilidad de ganar, obteniendo 5 en el primer lanzamiento es: 4 5= 36 5=4 7=6 = 10 4 4 16 = = 10 36 360

Extendiendo el anlisis anterior a los dems nmeros, tenemos que: i 4 5 6 8 9 10 11 11 Prob ganar 9/324 16/360 25/396 25/396

9 10 16/360

10 9 9/324

As, la probabilidad total de ganar un juego de craps ser: 8 9 16 25 25 16 9 = 0 49 36 324 360 396 396 360 324 Ahora se procede a elaborar un modelo que permita simular un juego de craps, la herramienta que usaremos ser Microsoft Excel. Comencemos por abrir Excel, se recuerda al lector que debe configurar las opciones de seguridad de su versin de Excel para permitir la ejecucin de macros. Configure la primera hoja de clculo u Hoja1 para que quede tal cual se muestra en la figura siguiente.

En esta hoja de clculo agregue un botn. Aparecer una venta como la siguiente

Seleccione un nombre para la macro y de click en Nuevo, entrar a la vista de cdigo de Excel.

Ser en esta ventana donde ingresaremos el cdigo de la simulacin. Para el juego de craps necesitamos simular el lanzamiento de dos dados, suponiendo que los dos dados no estn sesgados, los lanzamientos seguirn una distribucin de probabilidad uniforme donde la probabilidad de que se obtenga cualquier nmero del dado ser igual a 1/6.

FDP Lanzamiento de dados


0,5 0,4 0,3 0,2 0,1 0,0 1 2 3 4 5 6

Para simular el juego de craps agregamos el siguiente cdigo AL INTERIOR de la macro, se supone que el lector tiene un conocimiento bsico de Visual Basic: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Dim Dim Dim Dim Dim Dim Dim dado1 As Integer dado2 As Integer suma As Integer objetivo As Integer i As Long ganadas As Long perdidas As Long

If IsNumeric(Sheets(1).Cells(2, 2)) Then corridas = Round(CDbl(Sheets(1).Cells(2, 2))) ganadas = 0 perdidas = 0 objetivo = 0 For i = 1 To corridas

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46

dado1 = Int(Rnd() * 5 + 1) dado2 = Int(Rnd() * 5 + 1) suma = dado1 + dado2 If suma = 7 Or suma = 11 Then ganadas = ganadas + 1 ElseIf suma = 2 Or suma = 3 Or suma = 12 Then perdidas = perdidas + 1 Else objetivo = suma Do dado1 = Int(Rnd() * 5 + 1) dado2 = Int(Rnd() * 5 + 1) suma = dado1 + dado2 If suma = objetivo Then ganadas = ganadas + 1 Exit Do ElseIf suma = 7 Then perdidas = perdidas + 1 Exit Do End If Loop End If Next i Sheets(1).Cells(3, Sheets(1).Cells(4, Sheets(1).Cells(3, Sheets(1).Cells(4, End If 2) 2) 3) 3) = = = = ganadas perdidas ganadas / corridas perdidas / corridas

Las lneas 1 a 7 corresponden a declaracin de variables, en las lneas 11 a 13 se hace una inicializacin de las variables, en la lnea 15 comienza el ciclo que se ejecutar tantas veces como corridas haya ingresado el usuario, en las lneas 17 a 19 se simula un lanzamiento de dados, en las lneas 21 a 24 se determina si se gana o se pierde en el primer lanzamiento, en caso de que no haya ni victoria ni derrota en el primer lanzamiento, se ejecuta el cdigo a partir de las lneas 26 a 38; en la lnea 26 se determina cual es el lanzamiento que debe obtener el jugador para ganar, en la lnea 27 se entra a un ciclo sin condicin de parada el cual se detendr cuando haya una victoria o una derrota, ntese que en estas lneas se simulan lanzamientos repetidos hasta que se obtenga un lanzamiento objetivo o el 7. En las lneas 42 a 45 se presenta la informacin de la simulacin en la hoja de clculo. Se recomienda al lector comparar los resultados analticos con los resultados simulados, adems de experimentar con diferentes nmeros de corridas.

Simulacin de Montecarlo Los mtodos de Monte Carlo fueron introducidos en los 40s por John von Neumann y Stanislaw Ulam. Estos mtodos se basan en un muestreo aleatorio para producir sus resultados; de ah que su desarrollo ha estado ligado al de los computadores. El nombre Monte Carlo fue acuado por von Neumann en referencia al casino Monte Carlo en Mnaco. El escenario que usaremos para introducir los mtodos de Monte Carlo es el siguiente; suponga que una empresa ABC est interesada en conocer cuntas utilidades va a obtener si lanza un nuevo producto al mercado, teniendo en cuenta que hay incertidumbres asociadas al tamao de mercado y gastos. Para realizar este anlisis utilizaremos simulacin de Monte Carlo para estimar las ganancias. En primer lugar, tenemos que: = donde supondremos que las entradas dependen slo del nmero de ventas multiplicadas por la ganancia unitaria, esta ganancia tiene en cuenta todos los costos en los que se incurre en la produccin, mercadeo, costos de transaccin, etc. As tenemos que = . Para nuestro ejemplo, supongamos que GananciaUnitaria vara entre $47 y $53. La empresa tiene una estructura de mercadeo mediante la cual contacta a potenciales compradores para ofrecer sus productos, sin embargo, no todos se convertirn en compradores; es as como tenemos la siguiente ecuacin para los ingresos: = Donde tenemos que Contactos corresponde al nmero de clientes potenciales que contacta la empresa y TasaCompra representa cuntos de estos Contactos efectivamente compran el producto. Los egresos de la compaa son los siguientes, en primer lugar supongamos, que de acuerdo a un estudio de mercadeo, se determino que se incurre en un costo por cada contacto que se hace a un cliente potencial, este costo unitario lo llamaremos CostoContacto; adicionalmente se tienen unos costos de produccin totales llamados CostosProduccin, los cuales vamos a asumir constantes por simplicidad. As tenemos que los egresos de la empresa son: =

Adicionalmente, la empresa supone que su costo unitario de contacto variar entre $0.2 y $0.8, el nmero de clientes contactados que pasan a ser compradores oscilar entre 1% y 5%, y el nmero de clientes potenciales estar entre 1200 y 1800. As tenemos que las entradas para la simulacin de Monte Carlo sern Contactos, TasaCompra, CostoContacto y

GananciaUnitaria ya que los dems parmetros se suponen constantes. Para este ejemplo
supondremos que las variables siguen una distribucin de probabilidad uniforme A continuacin se describe como implementar el modelo aqu planteado en Excel; abra una nueva hoja de clculo y configrela como se muestra en la figura. Despus introduzca en las celdas A2, B2, C2, D2, E2 y G2 la respectiva frmula: Para A2 Para B2 Para C2 Para D2 ALEATORIO()*($K$2 - $J$2) ALEATORIO()*($K$3 - $J$3) ALEATORIO()*($K$4 - $J$4) ALEATORIO()*($K$5 - $J$5) Para E2 = 800 Para G2 = A2 * C2 * D2 - (E2 + A2 * B2) = = = = $J$2 $J$2 $J$2 $J$2 + + + +

Como se puede apreciar en la figura siguiente, tenemos ya una primera simulacin de las ganancias, ahora es necesario generar ms simulaciones, para esto arrastramos cada una de las frmulas hasta la fila 1000, tenga en cuenta que para la columna H debe insertar dos filas con el nmero 800 antes de poder arrastrarlo, esto para evitar que Excel lo interprete como un consecutivo. Se recomienda al lector realizar un histograma de los resultados, as como calcular los estadsticos principales (media, desviacin estndar, curtosis, etc.).

S-ar putea să vă placă și