Está en la página 1de 47

Universidad Nacional Autónoma de México

Facultad de Estudios Superiores Aragón

Investigación de Operaciones y Sistemas


Grupo: 2407

Simulación

Alatriste Valenzuela Agnes Paola


Tepetitla Rodríguez Angel
García Mendoza Jair Alonso
Rodríguez Cárdenas Axel Emmanuel
Rosas Hidalgo Ricardo

Prof. Jesús Ángel Romero Andalon

1
Introducción......................................................................................................................................................................... 4
LA SIMULACIÓN COMO TÉCNICA EXPERIMENTAL.................................................................................................5

Metodología de un estudio de simulación......................................................................................6


Métodos de simulación...................................................................................................................7
1. Métodos analíticos...................................................................................................7
2. Métodos continuos...................................................................................................8
3. Métodos discretos....................................................................................................8
4. Todos orientados a objetos......................................................................................8
Clasificación de tipos de simulación..............................................................................................9
- Simulación Continua:.................................................................................................9
- Simulación a eventos discretos:.................................................................................9
VENTAJAS DE LA SIMULACIÓN...........................................................................................10
Generación de Números Aleatorios a partir de una Distribución de Frecuencia dada.........................................................11

Números Pseudo-aleatorios..........................................................................................................11
Métodos de generación de números pseudo-aleatorios.................................................................12
Método de los cuadrados medios...............................................................................12
Método Congruenciales.............................................................................................12
Combinación de Algoritmos Congruenciales..............................................................14
Otros generadores más complicados.........................................................................15
Test para la Comprobación de la Uniformidad y la aleatoriedad..................................................16
Comprobación de la Uniformidad...............................................................................16
Contraste de Kolmogorov – Smirnov..........................................................................16
Test de la x 2.............................................................................................................. 17
Contraste de los pares consecutivos no solapados........................................................................17
Contraste de Aleatoriedad............................................................................................................18
Test de Rachas.......................................................................................................... 18
Prueba de Auto correlación..........................................................................................................18
Conceptos y parámetros que usamos en auto correlación.........................................19
Nivel de significancia..................................................................................................20
Pruebas de bondad y ajuste (chi cuadrada).........................................................................................................................21
Pruebas de bondad y ajuste (t-students)..............................................................................................................................23

¿Cómo funciona el método Montecarlo?......................................................................................24


El método Montecarlo para análisis de riesgos.............................................................................24
Principales ventajas...................................................................................................25

2
¿Cómo usar el método Monte Carlo?...........................................................................................25
Lenguajes para la simulación de computadora....................................................................................................................26

Características de los lenguajes de simulación.............................................................................27


Lenguajes de programación más utilizados..................................................................................28
Comandos de un simulador..........................................................................................................29
Diseño del experimento...................................................................................................................................................... 30

3
Introducción

Una simulación por computadora, un modelo de simulación por


computador o un modelo informatizado es un programa informático o una red
de ordenadores cuyo fin es crear una simulación de un modelo abstracto de un
determinado sistema. Las simulaciones por computadora se han convertido en
una parte relevante y útil de los modelo matemático de muchos sistemas naturales
de ciencias como la física, geofísica, astrofísica, química y la biología; así como de
sistemas humanos de economía, psicología y ciencias sociales. Además, se
emplea en el diseño de nueva tecnología para llegar a comprender mejor su
funcionamiento.

4
LA SIMULACIÓN COMO TÉCNICA EXPERIMENTAL
La práctica de la simulación es una técnica que no realiza ningún intento
específico para aislar las relaciones entre variables particulares, antes bien adopta
un punto de vista global desde el que se intenta observar cómo cambian
conjuntamente todas las variables del modelo con el tiempo. En todo caso, las
relaciones entre las variables deben obtenerse a partir de tales observaciones.
Esta concepción caracteriza la simulación como una técnica experimental de
resolución de problemas, lo que comporta la necesidad de repetir múltiples
ejecuciones de la simulación para poder entender las relaciones implicadas por el
sistema, en consecuencia el uso de la simulación en un estudio debe planificarse
como una serie de experimentos cuyo diseño debe seguir las normas del diseño
de experimentos para que los resultados obtenidos puedan conducir a
interpretaciones significativas de las relaciones de interés.

Los experimentos pueden llegar a tener un alto grado de sofisticación que requiera
la utilización de técnicas estadísticas de diseño de experimentos. En la mayor
parte de los casos los experimentos de simulación son la manera de obtener
respuestas a preguntas del tipo “¿qué pasaría sí?”, preguntas cuyo objetivo suele
ser evaluar el impacto de una posible alternativa que sirva de soporte a un
proceso de toma de decisiones sobre un sistema, proceso que puede
representarse esquemáticamente mediante el siguiente diagrama.

5
Volvemos a encontrar aquí, en la utilización de la simulación, las características de
lo que hemos denominado “ingeniería de sistemas”, es decir una visión
globalizadora que utiliza un modelo para combinando elementos de análisis y
diseño entender, por medio de experimentos, cómo un sistema existente funciona,
o cómo puede funcionar un sistema planeado, y prever cómo las modificaciones
del sistema pueden cambiar su comportamiento. La simulación, y los
experimentos de simulación, se convierten así en una herramienta de análisis de
sistemas, para entender cómo opera un sistema existente, o cómo puede operar
uno propuesto. La situación ideal, en la cual el investigador realizara los
experimentos sobre el sistema real es sustituida por una en la que el investigador
construye un modelo del sistema y experimenta sobre él mediante la simulación,
utilizando un ordenador, para investigar el comportamiento del modelo e
interpretar los resultados en términos del comportamiento del sistema objeto del
estudio.

La simulación, y el procedimiento experimental asociado, se convierten también


en una herramienta de diseño de sistemas, cuyo objetivo es la producción de un
sistema que satisfaga ciertas especificaciones. El diseñador puede seleccionar o
planear como deben ser las componentes del sistema y concebir cual debe ser la
combinación de componentes y relaciones entre ellas que determinan el sistema
propuesto. El diseño se traduce en un modelo cuyo comportamiento permite
inducir el del sistema previsto. El diseño se acepta cuando las previsiones se
ajustan adecuadamente a los comportamientos deseados, en caso contrario se
introducen las modificaciones pertinentes en el modelo y se repite el proceso.

Metodología de un estudio de simulación


La aplicación de la simulación a diferentes tipos de sistemas combinada con las
diferentes clases de estudio que se pueden realizar conduce a una gran cantidad
de variantes de la manera en que se puede realizar un estudio de simulación. Sin
embargo, hay determinados pasos básicos del proceso que pueden identificarse

6
como los constituyentes de lo que denominaremos la metodología de un estudio
de simulación, y son los siguientes

 Definición del problema Y planificación del estudio  Recogida de datos. 


Formulación del modelo matemático

 Construcción y verificación del programa para computador del modelo. 


Ejecuciones de prueba del modelo.

 validación del modelo.

 diseño de los experimentos de simulación

 Ejecución de los experimentos.

 Análisis de los resultados

El proceso no es, en general, secuencial, si no iterativo, en el que algunos


de los pasos pueden tener que repetirse en función de los resultados intermedios
tal como muestra la figura

7
Ningún estudio de simulación puede llevarse a cabo sin establecer
claramente una definición precisa del problema que se pretende resolver y los
objetivos del estudio. Los diseños alternativos del sistema que se han de estudiar
han de quedar claramente especificados, así como los criterios para evaluar
dichos diseños. Criterios que servirán de base al proceso de toma de decisiones
para elegir uno de los diseños. Para la formulación del modelo debe establecerse
su estructura definiendo cuales son los aspectos del funcionamiento del sistema
que son significativos para la resolución del problema que tenemos entre manos, y
que datos es necesario recoger para proporcionar al modelo la información
adecuada.

Métodos de simulación
Los 4 métodos de simulación más comunes son:

1. Métodos analíticos. Están basados en técnicas asociadas a la teoría de


colas, consistiendo esencialmente en nódulos ensamblados entre sí en una red
multinivel. La simulación analítica pone de manifiesto múltiples aspectos ligados a
la complejidad dinámica de los procesos en los que varios agentes compiten por
un mismo recurso, así como la variabilidad asociada a procesos de entrada-salida.
Los modelos analíticos proporcionan estimaciones sobre hechos agregados
estables con más precisión que el análisis proporcionado por series de datos.

2. Métodos continuos. En esta aproximación, el comportamiento de los


procesos se simula utilizando ecuaciones diferenciales que reflejan la variación en
el tiempo de cada variable de estado. Una variable de estado podría ser la tasa de
llegada de órdenes o la tasa de procesamiento de un recurso. Estos modelos son
apropiados para modelizar procesos de gran volumen o producciones continuas.
Evidentemente, se ha de suponer que las variables de estado varían de forma
continua y diferenciable en el tiempo (generalmente, las ecuaciones diferenciales
se utilizan cuando el tamaño del paso del tiempo es pequeño). Se trata de
determinar los valores corrientes de las variables de estado hasta el momento en
el cual se alcanza un umbral que pone en marcha ciertas acciones. Las

8
ecuaciones diferenciales pueden tener en cuenta comportamientos de tipo
estocástico, y los modelos correspondientes han de ser capaces de modelizar
tanto los fenómenos de transición como los estados de equilibrio. Dos grandes
retos para los modalizadores que utilizan estas técnicas son el desarrollo de
ecuaciones que describen los comportamientos aleatorios dependientes del
tiempo, así como evaluar los resultados obtenidos mediante la resolución analítica
o numérica de dichas ecuaciones.

3. Métodos discretos. En este tipo de simulación, las variables de estado del


modelo evolucionan sobre un conjunto discreto de puntos, quizás aleatorio, del eje
de tiempos. En estos modelos, los flujos temporales entre los puntos del
mencionado conjunto compiten unos con otros por el uso de los recursos escasos.
Estos modelos permiten simular comportamientos aleatorios introduciendo
distribuciones de probabilidad discretas.; por ello, los resultados obtenidos por
estos modelos discretos son asimismo aleatorios, con lo que tan solo pueden ser
tomados como una estimación del comportamiento real, siendo necesario
múltiples aproximaciones y/o replicaciones para que el resultado obtenido, en
términos medios, se aproxime al real. En un proceso de simulación de tipo
discreto, se introducen en el modelo entidades que representan productos y
servicios, y que al competir por los recursos que permiten llevar a cabo las
actividades, los consumen. Es la técnica de simulación más natural para modelizar
y analizar procesos.

4. Todos orientados a objetos. Esta técnica de modelización contempla a


procesos, productos, servicios y recursos como si de objetos se tratara. Cada
objeto está formado por una combinación de información (atributos) y
procedimientos (métodos); ambos se combinan para crear un “ejemplar” del objeto
en cuestión.

Los métodos orientados a objetos reducen drásticamente los tiempos de


desarrollo de los modelos en el sentido de que no será preciso volver a construirlo
desde la base, se puede utilizar una plantilla versátil y reutilizarla. El propósito de
la simulación y modelización orientada a objetos es facilitar la posibilidad de crear

9
complejos submodelos que maximicen su ciclo de vida y permitan su integración
en otros modelos

Este método permite incorporar las técnicas anteriormente tratadas, tanto


analíticas como continuas y discretas, ya que para modelizar los flujos intermedios
entre los objetos; se puede recurrir a submodelos que utilicen dichas
herramientas.

Clasificación de tipos de simulación


La simulación se puede clasificar en tres tipos:

1. Simulación Continua

2. Simulación a eventos discretos

3. Simulación estadística o Método Monte Carlo

- Simulación Continua:
Modela sistemas continuos, donde el interés primordial son los cambios suaves.
Por ejemplo, el comportamiento de algunos parásitos (las fluctuaciones en el
número de su población con respecto a la población de sus anfitriones), la
posición relativa de un conjunto de astros, etc. Para ello se utilizan conjunto de
ecuaciones diferenciales que se resuelven simultáneamente.

- Simulación a eventos discretos:


Se aplica en sistemas discretos, donde el interés primario está en los eventos,
siendo las ecuaciones que los describen ecuaciones lógicas que expresan las
condiciones para que ocurra un evento. La simulación consiste en seguir los
cambios en el estado del sistema producidos por la sucesión de eventos. Un
evento describe la ocurrencia de un cambio en un instante de tiempo y por lo tanto
puede provocar un cambio en el valor de algún atributo de una entidad o de la
entidad en sí (crear o destruir una entidad, iniciar o detener una actividad), lo cual
requiere la construcción de un programa que permita seguir la secuencia de
eventos. Llamamos entidad a cualquier objeto de interés en el sistema, atributo
denota una propiedad de una entidad, y todo lo que provoque cambios en el

10
sistema se conocerá como actividad de este. El término estado del sistema indica
una descripción de todas las entidades, atributos y actividades según su existencia
en algún instante del tiempo. El progreso o desarrollo en el tiempo del sistema se
estudia siguiendo sus cambios de estado.

-Simulación estadística:

A veces llamada Método Monte Carlo, es el muestreo de los mundos posibles de


nuestro sistema, método que estudiaremos con más detalle.

VENTAJAS DE LA SIMULACIÓN
1. La simulación anticipa cómo un sistema puede responder a los cambios:
Esto permite analizar si la infraestructura existente puede manejar la nueva
situación planteada.

2. La simulación permite un análisis de las variaciones del sistema desde


una perspectiva más amplia: Los métodos convencionales de análisis, como los
modelos estadísticos matemáticos, no pueden dirigir eficientemente las
variaciones pues los cálculos se derivan de valores constantes. Mediante un
sistema que incorpora interdependencia, la simulación tiene en cuenta las
variaciones, así como la interacción entre los componentes y el tiempo.

3. La simulación promueve soluciones totales: Ya que permite modelar


sistemas completos.

4. La simulación es efectiva para el control de costes: Teniendo en cuenta


que las organizaciones tratan de responder rápidamente a los cambios en sus
mercados, un modelo de simulación válido puede ser un excelente instrumento
para evaluar respuestas rápidas y valorar varias soluciones para responder a las
cambiantes situaciones del mercado.

5. La simulación procura un enfoque cuantitativo para medir la actividad: La


simulación puede ayudar a cuantificar las medidas de actividad del sistema. Por
ejemplo, el objetivo de una empresa puede ser satisfacer al cliente, usando un

11
modelo de simulación, esta exigencia puede traducirse en el tiempo para
responder a la petición de un cliente, que puede ser designado como la medida de
actuación para satisfacer a la clientela. La simulación mide los puntos fuertes y los
débiles asociados al diseño de un nuevo producto o servicio y permite un mayor
análisis sobre parámetros como el tiempo al mercado, niveles de servicio,
exigencias de mercado, costes de transporte, etc.

6. Permite cuantificar el impacto sobre el tiempo total del proceso de las


actividades que no generan valor añadido: Tales como colas, retenciones y
revisiones reiterativas, que en ocasiones suponen un elevado porcentaje del ciclo
temporal del proceso.

7. Permite efectuar cambios en la simulación del proceso a lo largo del ciclo


de vida del producto para una estrategia de precios basada en el tiempo. El ciclo
de vida de los productos y servicios cada vez es más corto y los costes de
desarrollo, pruebas y marketing de estos no se recuperan hasta que no se
generan ingresos. Distribuir este coste entre las distintas etapas del ciclo de vida
del producto es crítico para la estrategia de establecimiento de precios del
producto. Mediante la modelización es posible conocer cuándo los costes totales
invertidos en desarrollo del producto pueden ser recuperados, lo cual constituye
una información valiosa en la estrategia de establecimiento de precios del
producto.

8. Permite a las organizaciones estudiar y reducir las oscilaciones de los


procesos definiendo las actividades de mayor impacto en la variación total de cada
proceso.

9. Permite evaluar posibles cambios en la organización. La modelización de


recursos y jerarquía de procesos permite la visualización y evaluación de las
posibles alternativas antes de tomar decisiones arriesgadas sobre cambios en la
organización.

Referencias:

12
 Rondon, I. La simulación como proceso experimental. Recuperado de:
https://www.academia.edu/34610249/LA_SIMULACI
%C3%93N_COMO_PROCESO_EXPERIMENTAL_EXPERIMENTOS_Y_ORDENADORES
 Fullana, C. y Urquía, E. Los modelos de simulación: una herramienta multidisciplinar de
investigación. Recuperado de:
https://repositorio.uam.es/bitstream/handle/10486/679256/EM_32_3.pdf?
sequence=1&isAllowed=y

Generación de Números Aleatorios a partir de una Distribución de


Frecuencia dada

Los números aleatorios son la base esencial de la simulación. Usualmente, toda la


aleatoriedad involucrada en el modelo se obtiene a partir de un generador de
números aleatorios que produce una sucesión de valores que supuestamente son
realizaciones de una secuencia de variables aleatorias independientes e
idénticamente distribuidas.

Posteriormente estos números aleatorios se transforman convenientemente para


simular las diferentes distribuciones de probabilidad que se requieran en el
modelo. En general, la validez de los métodos de transformación depende
fuertemente de la hipótesis de que los valores de partida son realizaciones de
variables aleatorias, pero esta suposición realmente no se cumple, puesto que los
generadores de números aleatorios son simplemente programas determinísticos
que intentan reproducir una sucesión de valores que parezca aleatoria.

13
Números Pseudo-aleatorios
El método más conveniente y más fiable de generar números aleatorios es utilizar
algoritmos determinísticos que posean alguna base matemática sólida. Estos
algoritmos producen una sucesión de números que se asemeja a la de una
sucesión de realizaciones de variables aleatorias, aunque realmente no lo sea. Es
por ello que este tipo de números se denominan pseudo-aleatorios y el algoritmo
que los produce se llama generador de números pseudo-aleatorios.

Definición: Un generador de números pseudo-aleatorios es una estructura G = (X,


x0, T, U, G), donde X es un conjunto finito de estados x 0 ∈ X es el estado inicial
(semilla), la aplicación T: X  X es la función de transición, U es el conjunto finito
de posibles observaciones, y G: X  U es la función de salida.

Básicamente, el funcionamiento de un generador de números pseudo-aleatorios


es el siguiente. Se elige una semilla inicial cualquiera x 0 = T(xn-1). Cada uno de
estos valores proporciona un número pseudo-aleatorio u n definido a través de
alguna relación un = g(xn). Claramente, la sucesión de estados es periódica, puesto
que X es finito.

En algún momento, ocurrirá que xj = xi para algún j > i, y a partir de ese instante,
xj+k = xi+k, y por lo tanto, uj+k = ui+k, para todo k ≥ 0. El periodo es el menor entero
p>0 tal que para algún entero τ ≥ 0, se verifica que x p+k = xk, para todo k ≥ τ .

Claramente, el periodo de un generador no puede exceder el cardinal del espacio


de estados. Una buena propiedad para un generador es que su periodo esté
cercano a |X|.

Un buen generador de números pseudo-aleatorios debería tener las siguientes


prioridades:

 Por encima de todo, la sucesión de valores que proporcione debería


asemejarse a una sucesión de realizaciones independientes de una
variable aleatoria.
 Los resultados deben ser reproducibles, en el sentido de que comenzando
con las mismas condiciones iniciales debe ser capaz de reproducir la

14
misma sucesión. Esto nos puede permitir depurar fallos del modelo o
simular diferentes alternativas del modelo en las mismas condiciones
obteniendo una comparación más precisa. Los procedimientos físicos no
permiten que los resultados sean reproducibles.
 La sucesión de valores generales debe tener un ciclo no repetitivo tan largo
como sea posible.
 El generador debe ser rápido y ocupar poca memoria interna.

Métodos de generación de números pseudo-aleatorios


Método de los cuadrados medios
Este método comienza tomando un número al azar, x 0, de 2n cifras (originalmente los
autores proponían 4 cifras) que al elevarlo al cuadrado resulta un número de hasta 4 n
cifras. Si es necesario se añaden ceros a la izquierda para que el número resultante tenga
exactamente 4n cifras. Sea x1 el número resultante de seleccionar las 2 n cifras centrales
2
de x 0; el primer número aleatorio u 1 se obtiene poniendo un punto decimal delante las 2 n
cifras de x1. A continuación x2 y u2 se generan a partir, de x1 del mismo modo. Así
sucesivamente.

Este método tiene dos inconvenientes principales:

 Tiene una fuerte tendencia a degenerar a cero rápidamente (probar, por ejemplo, con x 0 =
1009).
 Los números generados pueden repetirse cíclicamente después de una secuencia corta.

x 0=3708 → x 0 =13|7492|64 → x 1=7492 →u1=0.7492


2

x 1=7492→ x 1=56|1300|64 → x 2=1300 →u2=0.1300


2

x 2=1300 → x 2=1|6900|00 → x3 =6900→ u3=0.6900


2

x 3=6900 → x 3=47|6100|00 → x 4=6100 → u4 =0.6100


2

x 4 =6100→ x 4=47|2100|00 → x5 =2100→ u5=0.2100


2

x 5=2100 → x 5=4|4100|00 → x 6=4100 →u6 =0.4100


2

x 6=3708 → x 6 =16|8100|00 → x 7 =8100→ u7 =0.8100


2

15
x 7=3708 → x 7 =65|6100|00 → x 8=6100→ u8=0.6100
2

Método Congruenciales
Los principales generadores de números pseudo-aleatorios utilizados hoy en día son los
llamados generadores congruenciales lineales. Un método congruencial comienza con un
valor inicial (semilla) x 0, y los sucesivos valores x n ,n ≥ 1 se obtienen recursivamente con la
siguiente fórmula:

x n=a x n−1 +b módulo m

Donde a, m y b son enteros positivos que se denominan, respectivamente, el multiplicador, el


módulo y el incremento. Si b = 0, el generador se denomina multiplicativo; en caso contrario se
xi
llama mixto. La sucesión de números pseudo-aleatorios un , n ≥1 se obtiene haciendo ui= .
m

Como el siguiente resultado demuestra, cada x i, está completamente caracterizado por a,b,m
y x 0.

Los valores generados por un método congruencial verifican:

an −1
x n=a n x 0 +b mod m
a−1

Pues n = 1, tenemos que x 1=a x 0 +b . Ahora, para n = 2, se tiene que

x 2=a x 1+ b mod m

¿ a ( a x 0 +b−km ) +b mod m

¿ a2 x 0+ b ( a+1 )−akmmod m

2
¿ a x 0+ b ( a+1 ) mod m

Por recurrencia; se tiene que

x 3=a 3 x 0 +b ( a 2+ a+1 ) mod m

…..

16
x n=a 3 x 0 +b ( an−1+…+ a+1 ) mod m

n
3 a −1
¿ a x 0 +b mod m
a−1

Por lo tanto, la primera objeción que se le puede hacer a este método, objeción común a
todos los generadores de números pseudo-aleatorios, es que la sucesión de los valores
x n no es en absoluto aleatoria. Sin embargo, posteriormente veremos que si elegimos los
parámetros iniciales convenientemente, la sucesión {un } puede asemejarse a una
sucesión de números aleatorios.

La segunda objeción es que los valores ui pueden tomar sólo los valores 0,
1 2 m−1 2 3
, , …, , luego no hay posibilidad de generar un valor, por ejemplo entre y .
m m m m m
Tomando m suficientemente grande m ≥109 , el conjunto de posibles valores es
suficientemente denso en |0,1| como para que la sucesión asemeje a la de una variable
continua uniforme en dicho intervalo.

Ejemplo:

Consideremos el generador congruencial x n=5 x n−1+1 mod 9 con x 0=1.

n xn un n xn un n xn un
0 1 - 2 3 0.333 4 0 0
1 6 0.6666 3 7 0.7777 5 1 0.1111

Consideremos el generador congruencial x n=5 x n−1+3 mod16 con x 0=7 .

n xn un n xn un n xn un n xn un
0 7 - 5 10 0.625 10 9 0.563 15 4 0.25
1 6 0.375 6 5 0.312 11 0 0 16 7 0.4375
5
2 1 0.0625 7 12 0.75 12 3 0.1875 17 6 0.375
3 8 0.5 8 15 0.937 13 2 0.125 18 1 0.0625
5
4 11 0.6875 9 14 0.875 14 13 0.8125 19 8 0-5

17
Combinación de Algoritmos Congruenciales
Los algoritmos congruenciales se pueden combinar para aumentar el periodo del ciclo de
generación. Estas combinaciones se basan en los siguientes resultados:

Si U 1 … U k son variables aleatorias u(0 ,1), entonces la parte fraccional de U i +… U k


también sigue una distribución u( 0 ,1).

U 1 +U 2 +…+U k −[ U 1 +U 2 +… U k ] u(0 , 1)

Si u1 ,u 2 , … , uk están generados por algoritmos congruenciales con ciclos de periodo


c 1 , c2 , … , c k, respectivamente, entonces la parte fraccional de u1 +u2 +…+u k tiene un ciclo
de periodo m . c . m. {c1 , c 2 , … , c k } .

El algoritmo combinado de Wichmann y Hill (1982, 1984) tiene un periodo de orden 10 12.
El generador es:

x i=171 xi−1 mod 30269

y i=172 y i−1 mod 30307

z i=170 z i−1 mod 30323

Y tomar:

ui = ( 30269
xi
+
y
+
zi
30307 30323 )−[
ix
+
y
+
i z
30269 30307 30323
]
i i

Otros generadores más complicados


Aunque los generadores congruenciales son los más utilizados en la práctica, se han
desarrollado otros tipos de generadores con la intención de obtener periodos más largos y
mejores propiedades estadísticas. A menudo, sin embargo, un generador congruencial
con parámetros elegidos adecuadamente puede funcionar tan bien que otras alternativas
más complicadas.

Los generadores congruenciales pueden generalizarse a recursiones lineales de orden


mayor, considerando la siguiente relación:

x n=( ai x n−1 +…+ ak x n−k ) mod m ,

18
Donde el orden k y el módulo m son enteros positivos, y los coeficientes a j son enteros
variando ente −( m−1) y (m−1). Es la n-ésima iteración, el estado es el vector
xn
( x n , x n−1 , … ., x n+k −1 ) ∈ Z km. La función de salida se puede definir simplemente como un = .
m

El estudio de este generador se asocia al estudio del polinomio característico

k k−1
P ( z )=z −a 1 z −…−a k

Sobre el cuerpo finito Z m. Cuando m es primo y el polinomio sobre Z m, el periodo del


generador es mk −1 (periodo máximo posible en esta clase de generadores).

Referencias

 Taha, H.A., (1991), Investigación de Operaciones, 2ª Edición, Alfaomega S.A., México.


 Winston, Investigación de Operaciones, Gpo. Editorial Iberoamérica.

19
Pruebas de bondad y ajuste (chi cuadrada)
Test de la x 2
Dada la muestra u1 , … ,u n y un nivel de significación ∝, el test consiste en los siguientes
pasos:

1
1. Dividir el intervalo (0, 1) en k clases disjuntos de la misma amplitud . Para cada
k
clase C j, contar el número de elementos O j , que cae en dicha clase,
2. Comparamos las frecuencias observadas en cada clase con las que
correspondían según la distribución teórica. Se considera el estadístico:

2
n
k (O j − )
k
T =∑
j−1 n
k

Se demuestra que, para n grande, T sigue una distribución x2 con k – 1 grados de


libertad.

2 2
3. Se rechaza la hipótesis de uniformidad si T > x k−1, ∝, donde x k−1 ,∝ es el percentil de
2
orden 1 - ∝ de la distribución x k−1.

Se utiliza para decidir cuando un conjunto de datos se ajusta a una distribución


dada

-A-Considérese una muestra aleatoria de tamaño n de la distribución de una


variable aleatoria X dividida en k clases exhaustivas e incompatibles, y sea Ni  i =
1, 2, …, k. el número de observaciones en la i-ésima clase. Considérese la
hipótesis nula

H0: F(x)=F0(x)

20
en donde el modelo de probabilidad propuesto F 0(x) se encuentra especificado de
manera completa, con respecto a todos los parámetros.

Es posible, pues, calcular pi: probabilidad de obtener una observación en la i-ésima


clase, bajo H0. Es obvio, también, que

Sea ni la realización de Ni para i = 1,2,…, k de manera que

La probabilidad de obtener de manera exacta n i observaciones en la i-ésima clase


es

Dado que existen k categorías mutuamente excluyentes con probabilidades p 1, p2,


…, pk; entonces bajo la hipótesis nula la probabilidad de la muestra agrupada es
igual a la función de probabilidad de una distribución multinomial determinada.

 Para deducir una prueba estadística para H 0, considérese el caso de k = 2. Este


es el caso de la distribución binomial con x = n 1, p = p1, n-x =n2 y 1-p =p2. Sea la
variable aleatoria estandarizada:

para n grande, esta variable aleatoria se distribuye según una N(0;1). Además


sabemos que el cuadrado de una variable aleatoria N(0,1) se distribuye según una
chi-cuadrado con un grado de libertad. Entonces el estadístico

21
Si se sigue este razonamiento, puede demostrarse que para k≥2 categorías
distintas

Nótese que Ni es la frecuencia observada en la i-ésima clase y np i la esperada


bajo la hipótesis nula.

Esta estadística recibe el nombre de prueba de bondad de ajuste chi-cuadrada de


Pearson.

Si existe una concordancia perfecta entre las frecuencias observadas y las


esperadas, el estadístico tendrá un valor igual a cero; por otra parte si las
discrepancias entre estas frecuencias son grandes, el estadístico tomará un valor,
también muy grande. Por ello se desprende que para un valor dado del error de
tipo I, la región crítica estará en el extremo superior la distribución chi-cuadrada
con k-1 grado de libertad.

Una ventaja de la prueba de bondad de ajuste chi-cuadrada es que para valores


grandes de n, la distribución límite chi-cuadrada de la estadística, es
independiente de la forma que tenga la distribución F 0(x) propuesta en la hipótesis
H0. Como consecuencia de esto se tiene que la prueba de bondad se utiliza
también para distribuciones de probabilidad en las que F 0(x) es continua. Sin
embargo, debe insistirse en que la prueba de bondad es discreta, en el sentido de
que ésta compara frecuencias que se observan y se esperan para un número finito
de categorías.

De acuerdo con lo anterior, si F0(x) es continua, la prueba no compara las


frecuencias que se observan aisladas con la función de densidad propuesta tal y
como implica la hipótesis nula; sino, más bien, la comparación se lleva a cabo
22
aproximando la distribución continua bajo H0 con un número finito de intervalos de
clase.

No obstante, esta prueba es un procedimiento razonablemente adecuado para


probar suposiciones de normalidad siempre y cuando el tamaño de la muestra sea
suficientemente grande.

¿Qué tan grande debe ser el tamaño de la muestra? Se ha encontrado que


con n igual a 5 veces el número de clases, los resultados son aceptables. Una
regla conservadora es que ninguna clase tenga una frecuencia inferior a 5; si esto
sucediera, se agruparían clases vecinas.

A menos que se especifique una hipótesis alternativa que consista en un modelo


alternativo particular F1(x), la potencia de la prueba (probabilidad de que un valor
se encuentre en la región crítica cuando H 0 es falsa) es muy difícil de determinar.
Por otra parte, puede demostrarse que la potencia tiende a 1 cuando n tiende  a
infinito. Esto implica que cuando n es muy grande es casi seguro que se rechaza
H0, pues es muy difícil especificar una F0(x) lo suficientemente cercana a la
distribución. Por tanto esta prueba es cuestionable para muestras muy grandes.

Recuérdese que el modelo de probabilidad propuesto F 0(x) se especificó


completamente. Por regla general, solo se conoce la normalidad de F 0(x),
necesitándose estimar la media y la varianza, en consecuencia las frecuencias
esperadas npi; i =1,2,…,k no pueden determinarse.

Sea T el estadístico del parámetro desconocido θ de F 0(x). Tanto Ni (frecuencias


observadas) como npi(T) frecuencias esperadas son variables aleatorias, donde
pi(T) indica que la probabilidad bajo la hipótesis nula es función del estadístico T
de θ.

Puede demostrarse que si T es el estimador de máxima verosimilitud de θ,


entonces:

23
en donde r es el número de parámetros que se está intentando estimar.

Pruebas de bondad y ajuste (t-students)

La prueba t-Student se utiliza para contrastar hipótesis sobre medias en


poblaciones con distribución normal. También proporciona resultados aproximados
para los contrastes de medias en muestras suficientemente grandes cuando estas
poblaciones no se distribuyen normalmente (aunque en este último caso es
preferible realizar una prueba no paramétrica). Para conocer si se puede suponer
que los datos siguen una distribución normal, se pueden realizar diversos
contrastes llamados de bondad de ajuste, de los cuales el más usado es la prueba
de Kolmogorov. A menudo, la prueba de Kolmogorov es referida erróneamente
como prueba de Kolmogorov-Smirnov, ya que en realidad esta última, sirve para
contrastar si dos poblaciones tienen la misma distribución. Otros tests empleados
para la prueba de normalidad son debidos a Saphiro y Wilks.
Existen dos versiones de la prueba t-Student: una que supone que las varianzas
poblacionales son iguales y otra versión que no asume esto último. Para decidir si
se puede suponer o no la igualdad de varianza en las dos poblaciones, se debe
realizar previamente la prueba F-Snedecor de comparación de dos varianzas.
La prueba t-Student fue desarrollada en 1899 por el químico inglés William Sealey
Gosset (1876-1937), mientras trabajaba en técnicas de control de calidad para las
destilerías Guiness en Dublín. Debido a que, en la destilería, su puesto de trabajo
no era inicialmente de estadístico y su dedicación debía estar exclusivamente
encaminada a mejorar los costes de producción, publicó sus hallazgos
anónimamente firmando sus artículos con el nombre de "Student".

Ejemplo prueba de bondad y ajuste (t-student)


Se tienen los siguientes datos experimentales correspondientes a 17 individuos de
los que se ha recogido el valor que presentan en dos variables, una de ellas
cuantitativa con distribución normal considerada como variable respuesta (Rta), y
la otra variable dicotómica considerada como variable explicativa (Exp). Los datos
se presentan de forma que en las filas hay varios individuos para facilitar la
lectura:

24
Calcular un intervalo de confianza al 90% para la diferencia de medias asumiendo
igualdad de varianzas y no asumiendo la igualdad de éstas y realizar el siguiente
contraste:

mediante la prueba t-Student para dos medias en los dos supuestos de igualdad y
no igualdad de varianzas.
Cálculo de los estadísticos descriptivos básicos
Para los datos del ejemplo se tiene que los tamaños muestrales son: n1 = 7 y n2 =
10. Las medias y las desviaciones típicas para los dos grupos son:

donde x1i indica los valores de la variable Rta para el grupo 1 y x2i indica los
valores de la variable Rta para el grupo 2.
Cálculo del IC90% para la diferencia de medias suponiendo igualdad de
varianzas
Para calcular el IC90% para la diferencia de medias se necesita calcular el error
estándar de la diferencia de medias que, en el supuesto de igualdad de varianzas,
tiene la expresión:

25
donde s^2 recibe el nombre de varianza conjunta (“pooled variance”), que tiene
por expresión:

Con lo que:

En segundo lugar para calcular el IC deseado se necesita el valor de la t-Student


t1-a/2; gl para a = 0.10 (confianza del 90%) y con grados de libertad g = (n1 - 1) +
(n2 – 1) = (n1 + n2 – 2) = 15, que resulta ser t1- a/2;gl = 1.7531, con lo que el
intervalo de confianza buscado es:

que cubre al valor de cero para la diferencia de medias poblacionales de los dos
grupos.
Cálculo de la prueba t-Student para la diferencia de medias suponiendo
igualdad de varianzas
Para llevar a cabo el contraste requerido se construye el estadístico de contraste
experimental t dado por:

que bajo la hipótesis nula sigue una distribución t-Student con grados de libertad gl
= (n1 - 1) + (n2 – 1) = (n1 + n2 – 2) = 15, que tiene asociado un p-valor de 0.9412.

26
Contraste de Kolmogorov – Smirnov
El test de K – S es un test de bondad de ajuste que se utiliza para determinar si
los datos de una determinada muestra se ajustan a una hipotética distribución.

Dada una muestra aleatoria simple x 1 , … , x n, la función de distribución empírica de


la muestra es:

n
1
F n ( x )= ∑ I x ≤ x =¿ valores x i ≤ x∨ ¿ ¿
n i=1 i
n

Las hipótesis son;

H 0 : Fn =F 0 H i :F n ≠ F 0

Donde F 0 es la hipotética función de distribución. El estadístico de contraste para


el test K – S es:
¿
D n = x ∈ R ¿ F n ( x )−F 0 ( x )∨.

La distribución Dn está tabulada. La región crítica del contraste es [ Dn , x , + ∞ ) , donde


Dn ,∝ es el percentil de orden 1−∝ de la distribución de D n.

En nuestro caso particular, F 0 es la función de distribución de una v.a. u( 0 ,1), y


por lo tanto, se puede comprobar que el estadístico de Kolmogorov-Smirnov para
contrastar la uniformidad de la muestra u1 , … ,u n viene dado por:

D n=máx ¿ ¿
I ≤ i≤ n

Siendo u(i) el i-ésimo menor valor de la muestra.

27
Test de Rachas
Dada la muestra u1 , … ,u n se construye una sucesión formada por 0 y 1 del
siguiente modo: en la posición i se coloca un 0 si x i+1 < x i y se coloca un 1 si x i+1 > x i.
Cada grupo consecutivo sea 0’s o 1’s se denomina racha. Se demuestra que, para
n suficientemente grande, el número de rachas R sigue una distribución normal.

2n−1 2 16 n−29
R N( ,σ = )
3 90

El estadístico de contraste sería:

2 n−1
R−
3
Z=


16n−29
90

Que sigue una distribución N (0, 1). Para un nivel de significación α , se rechaza la

hipótesis de aleatoriedad si |Z|>Z α .


2

Prueba de Auto correlación


Correlación es la relación recíproca entre dos o más cosas (elementos). A veces un grupo
de números generados pueden parecer aleatorios, pero existe una relación entre cada
cierto número de ellos a partir de alguno específico.

Amplitud de auto correlación: Es la distancia que existe entre los números de la lista que
tiene la relación entre sí. Se da cada n-ésimo número aleatorio e inicia en el elemento i.

Esta prueba se aplica con la suposición de los números aleatorios tiene una distribución
uniforme e independiente sobre el intervalo de 1 a 0.

Conceptos y parámetros que usamos en auto correlación


Para analizar la correlación general para todos los pares sucesivos de números aleatorios
se utiliza la estadística:

Densidad de probabilidad

28
m
1
P= ∑ r ∗r
M +1 k=0 (i+km ) [ i+( k+1) m ]

Dónde:

 N es el total de números en toda la serie; Tamaño de la muestra.


 i es el primer número donde empieza la amplitud de auto correlación.
 m es la amplitud de la auto correlación.
 M es el entero mayor tal que i+ ( M + 1 )∗m< N

Este valor, se obtiene de acuerdo a los valores dados cuidando que se cumpla la
condición. Es un parámetro de la fórmula:

M =Truncar {( N −1 )
m
−1 }
Cumpliéndose la condición:i+ ( M + 1 )∗m< M

Desviación estándar de la auto correlación:

σ pim= √
13 M +7
12(M +1)

Donde σ pim es la Desviación estándar de la densidad de probabilidad.

La estadística para determinar la significancia de la auto correlación para la secuencia


propuesta de M + 1 números es:

ρℑ −0.25
Z=
σ pim

Z significancia de la auto correlación que tiene una distribución Normal, con media cero y
una varianza de uno, bajo la suposición de independencia.

Nivel de significancia

Si se define el nivel de significancia por medio de


αyZ α el valor de Z hace que:
1−
2

α
(
P Z ≥Z
1−
α
2 ) =
2

29
α
Se utiliza ( puesto que se va a tomar en cuenta ambos lados del área bajo la curva).
2

Para determinar la auto correlación se establecen las siguientes Hipótesis;

 Hipótesis Nula: H 0= ρℑ=0 . Los números aleatorios están correlacionados (No son
aleatorios).
 Hipótesis Alternativa: H 0= ρℑ ≠ 0 Los números aleatorios no están correlacionados
(Sí son aleatorios).

 Criterio de Rechazo. |Z 0|>Z 1− α


2

Entonces, si |Z|>Z 1− α se rechaza la hipótesis de aleatoriedad y si |Z 0|≤ Z 1− α se acepta la


2 2

hipótesis de aleatoriedad.

Referencias

 https://webs.um.es/mpulido/miwiki/lib/exe/fetch.php?media=wiki:simt1b.pdf
 https://www.dm.uba.ar/materias/probabilidades_estadistica_C/2004/1/PyEC08.pdf
 https://bibdigital.epn.edu.ec/bitstream/15000/5707/1/T574.pdf

30
Método Montecarlo
La simulación de Monte Carlo permite ver todos los resultados posibles de las
decisiones que tomamos y evaluar el impacto del riesgo. Este método de
simulación es de gran utilidad para la gerencia de riesgos de cualquier tipo de
organización. También resulta de importancia para los Project Managers que
tengan que gestionar riesgos en proyectos de envergadura.

Se trata de una técnica matemática computarizada, que permite tener en cuenta el


riesgo en análisis cuantitativos y tomas de decisiones. Comenzó a utilizarse en la
Segunda Guerra Mundial, y debe su nombre a la ciudad de Mónaco, conocida por
sus casinos. Actualmente, se usa en muchos sectores, desde los proyectos de Oil
& Gas, hasta las finanzas o la manufactura. En la simulación de Montecarlo se
trabaja, habitualmente, con programas informáticos como Excel o R Studio.

¿Cómo funciona el método Montecarlo?

Este método de simulación se basa en crear modelos de posibles resultados


mediante la sustitución de un rango de valores (una distribución de probabilidad)
para cualquier factor con incertidumbre inherente.

Después, calcula los resultados una y otra vez, cada vez usando un grupo
diferente de valores aleatorios de las funciones de probabilidad. De esta forma,
dependiendo del número de riesgos o incertidumbres y de los rangos
especificados, pueden ser necesarios miles de recálculos para completar la
simulación.

31
El método Montecarlo para análisis de riesgos

En el análisis de riesgos se utilizan distribuciones de probabilidad. Es decir,


probabilidad de que un riesgo ocurra o se materialice. Esta es una forma mucho
más realista de describir la incertidumbre en las variables de un análisis de riesgo.

En función de los cálculos de las distribuciones de probabilidad, la simulación


ofrece una visión muy completa de lo que puede suceder. Los resultados de la
simulación muestran no sólo lo que puede suceder, sino lo probable que es un
resultado.

Principales ventajas

El simulador Monte Carlo tiene muchas ventajas respecto a otro tipo de análisis
deterministas. Entre ellos podemos destacar:

- Ofrece resultados gráficos. Gracias a los datos que genera una


simulación Monte Carlo, es fácil crear gráficos de diferentes resultados y las
posibilidades de que sucedan. Esto es importante para comunicar los
resultados a otras personas interesadas.

- Análisis de sensibilidad. En este método resulta más fácil ver qué


variables introducidas tienen mayor influencia sobre los resultados finales.

- El análisis de escenario. Usando la simulación Monte Carlo, los analistas


pueden ver exactamente los valores que tienen cada variable cuando se
producen ciertos resultados. Esto resulta muy valioso para profundizar en
los análisis.

- Correlación de variables de entrada. También permite modelar relaciones


interdependientes entre diferentes variables de entrada. Esto es importante

32
para averiguar con precisión la razón real por la que, cuando algunos
factores suben, otros suben o bajan paralelamente.

¿Cómo usar el método Monte Carlo?

Debido al tamaño y complejidad de los proyectos que justifican el uso de este


análisis, en los pequeños no se usa, este se realiza mediante computador, siendo
totalmente inviable hacerlo a mano. De todas formas, es recomendable entender
el método de cálculo que hay detrás de estos programas de simulación.

En cualquier proyecto hay dos elementos que tienen un comportamiento no


determinista:

- Las tareas. Las cuales tienen un valor medio y una variabilidad de acuerdo
con una distribución estadística, que permite relacionar un determinado
valor de plazo o coste a un porcentaje de representatividad.
- Los riesgos. Sujetos a una probabilidad de ocurrencia y a un impacto. Si
tenemos un riesgo con una probabilidad de ocurrencia del 15%, y un
impacto de 1000€ y 1 día, diremos que el 15% de las veces que se ejecute
el proyecto, este va a durar un día más y costar 1000€ más, el 85% de las
veces restantes no.

Teniendo definidas las distribuciones estadísticas de todas las tareas y riesgos, es


posible calcular un valor determinado para cada tarea o riesgo mediante la
generación de múltiples números aleatorios de 0 a 100, asemejando el número
aleatorio al porcentaje de representatividad del valor de la tarea, o a la
probabilidad de ocurrencia del riesgo. Al final, esto permite calcular una duración o
coste total del proyecto para cada valor aleatorio.

Si repetimos este cálculo un número suficientemente alto de veces (sobre 1000


puede ser correcto), podemos obtener varios valores de plazo y coste para el
proyecto; los cuales pueden representarse en un gráfico de Pareto mostrando el

33
número de veces que ha aparecido en el análisis un determinado valor de plazo o
coste. A partir de este gráfico podemos acabar calculado la distribución estadística
que sigue el proyecto en su conjunto, y por tanto determinar el porcentaje de las
veces que este va a cumplir una determinada restricción.

A partir de aquí, el criterio para determinar si una planificación es factible, es mirar


si el porcentaje de veces que se cumple la restricción es superior o inferior al
margen de confianza definido por la organización. Si es inferior significa que la
planificación no es factible, y que por tanto deberemos modificar esta hasta
conseguir que lo sea, o acabar determinando que el proyecto no es posible con las
restricciones impuestas.
Ejemplos sencillos son: el mecanismo básico de la difusión y el establecimiento
del equilibrio térmico entre dos sistemas que se ponen en contacto a distinta
temperatura. Estos dos ejemplos nos mostrarán el significado de proceso
irreversible y fluctuación alrededor del estado de equilibrio.

La explicación de la ley exponencial decreciente en la desintegración de una


sustancia radioactiva en otra estable. Comprender, a partir de un modelo simple
de núcleo radioactivo, que su desintegración es un suceso aleatorio, con mayor o
menor probabilidad dependiendo de la anchura de las barreras de potencial que
mantienen confinadas a las partículas que componen el núcleo.

Otros ejemplos relevantes son: el estudio de un sistema con un número pequeño


de estados como paso previo al estudio del comportamiento de un material
paramagnético bajo la acción de un campo magnético y a una determinada
temperatura, dos ejemplos de aplicación de la transformación de una variable
discreta. Por último, estudiaremos el comportamiento de un material dieléctrico
como ejemplo de aplicación de transformación de una variable aleatoria continua.

La variable aleatoria

Se denomina variable aleatoria, a una variable X que puede tomar un conjunto de


valores {x0, x1, x2, ... xn-1}, con probabilidades {p0, p1, p2, ... pn-1}. Por ejemplo,
en la experiencia de lanzar monedas, los posibles resultados son {cara, cruz}, y

34
sus probabilidades son {1/2, 1/2}. En la experiencia de lanzar dados, los
resultados posibles son {1, 2, 3, 4, 5, 6} y sus probabilidades respectivas son {1/6,
1/6, 1/6, 1/6, 1/6, 1/6}.

Realicemos ahora la experiencia de hacer girar una ruleta y apuntar el número del
sector que coincide con la flecha. En la ruleta de la izquierda de la figura los
resultados posibles son {0, 1, 2, 3, 4, 5, 6, 7}, y la probabilidad de cada resultado
es 1/8. En la ruleta de la derecha de la figura los posibles resultados son {0, 1, 2,
3}, y las probabilidades respectivas {1/4, 1/2, 1/8, 1/8}, proporcionales al ángulo
del sector.

En los tres primeros ejemplos, la variable aleatoria X se dice que está


uniformemente distribuida, ya que todos los resultados tienen la misma
probabilidad. Sin embargo, en el último ejemplo, la variable aleatoria X, no está
uniformemente distribuida.

El problema crucial de la aplicación de los métodos de Montecarlo es hallar los


valores de una variable aleatoria (discreta o continua) con una distribución de
probabilidad dada por la función p(x) a partir de los valores de una variable
aleatoria uniformemente distribuida en el intervalo [0, 1), proporcionada por el
ordenador o por una rutina incorporada al programa.

Para simular un proceso físico, o hallar la solución de un problema matemático es


necesario usar gran cantidad de números aleatorios. El método mecánico de la
ruleta sería muy lento, además cualquier aparato físico real genera variables

35
aleatorias cuyas distribuciones difieren, al menos ligeramente de la distribución
uniforme ideal. También, se puede hacer uso de tablas de cifras aleatorias
uniformemente distribuidas, comprobadas minuciosamente en base a pruebas
estadísticas especiales. Se emplean solamente cuando los cálculos
correspondientes a la aplicación del método de Montecarlo se realizan a mano, lo
que en estos tiempos resulta inimaginable. En la práctica, resulta más conveniente
emplear los denominados números pseudoaleatorios, se trata de números que se
obtienen a partir de un número denominado semilla, y la aplicación reiterada de
una fórmula, obteniéndose una secuencia {x0, x1, x2, ... xn} de números que
imitan los valores de una variable uniformemente distribuida en el intervalo [0, 1).

Variable aleatoria discreta

Para simular la ruleta situada a la derecha de la figura, se procede del siguiente


modo: se hallan las probabilidades de cada resultado, proporcionales al ángulo de
cada sector y se apuntan en la segunda columna, la suma total debe de dar la
unidad. En la tercera columna, se escriben las probabilidades acumuladas.

Se sortea un número aleatorio γ uniformemente distribuido en el intervalo [0, 1), el


resultado del sorteo se muestra en la figura. En el eje X se sitúan los distintos
resultados que hemos nombrado x0, x1, x2, x3 . En el eje vertical las
probabilidades en forma de segmentos verticales de longitud igual a la
probabilidad pi de cada uno de los resultados, dichos segmentos se ponen unos a
continuación de los otros, encima su respectivo resultado xi. Se obtiene así una
función escalonada. Cuando se sortea una variable aleatoria γ, se traza una recta
horizontal cuya ordenada sea γ. Se busca el resultado cuya abscisa sea la

36
intersección de dicha recta horizontal y del segmento vertical, tal como se señala
con flechas en la figura. Si el número aleatorio γ está comprendido entre 0.25 y
0.75 se obtiene el resultado denominado x1.

La tabla describe el sorteo de una variable discreta, siendo γ una variable aleatoria
uniformemente distribuida en el intervalo [0,1).

Una vez visto un caso particular, el problema general puede formularse del
siguiente modo:

Si X es una variable aleatoria discreta cuyos posible resultados son {x0, x1, x2 , ...
xn-1} y sean {p0, p1, p2, ... pn} sus respectivas probabilidades. Al sortear un
número aleatorio γ, uniformemente distribuido en el intervalo [0, 1), se obtiene el
resultado xi, si se verifica la siguiente condición

37
Referencias

EALDE Business School. (2020, 26 agosto). En qué consiste el método de


simulación de Monte Carlo. https://www.ealde.es/metodo-simulacion-monte-carlo/

Garriga, A. (2020, 16 noviembre). Método de Montecarlo en proyectos. Recusos


en project management. https://www.recursosenprojectmanagement.com/metodo-
de-montecarlo/#%C2%BFComo_realizamos_el_metodo_de_Montecarlo

Pruebas de bondad de ajuste y análisis de tablas de contingencia. (s. f.).


Anonimo. Recuperado 25 de julio de 2021, de
http://www.juntadeandalucia.es/averroes/centros-tic/14002996/helvia/aula/
archivos/repositorio/250/295/html/estadistica/bondad.htm

38
Lenguajes para la simulación de computadora.

En un principio, los programas de simulación se elaboraban utilizando algún


lenguaje de propósito general, como ASSEMBLER, FORTRAN, ALGOL o PL/I. A
partir de la década de 1960 hacen su aparición los lenguajes específicos para
simulación como GPSS, GASP, SIMSCRIPT, SLAM.
En la última década del siglo pasado la aparición de las interfaces gráficas
revolucionó el campo de las aplicaciones en esta área, y ocasionaron el
nacimiento de los simuladores.

 En lo práctico, es importante utilizar la aplicación que mejor se adecúe al tipo de


sistema a simular, ya que de la selección del lenguaje o simulador dependerá el
tiempo de desarrollo del modelo de simulación. Las opciones van desde las hojas
de cálculo, lenguajes de tipo general (como Visual Basic, C++ o Fortran),
lenguajes específicos de simulación (como GPSS, SLAM, SIMAN, SIMSCRIPT,
GAS y SSED), hasta simuladores específicamente desarrollados para diferentes
objetivos (como SIMPROCESS, ProModel, Witness, Taylor II y Cristal Ball).

Los lenguajes de simulación facilitan enormemente el desarrollo y ejecución de


simulaciones de sistemas complejos del mundo real. Los lenguajes de simulación
son similares a los lenguajes de programación de alto nivel, pero están
especialmente preparados para determinadas aplicaciones de la simulación. Así
suelen venir acompañados de una metodología de programación apoyada por un
sistema de símbolos propios para la descripción del modelo por ejemplo mediante
diagramas de flujo u otras herramientas que simplifican notablemente la
modelización y facilitan la posterior depuración del modelo.

Características de los lenguajes de simulación

 Los lenguajes de simulación proporcionan automáticamente las


características necesarias para la programación de un modelo de simulación, lo

39
que redunda en una reducción significativa del esfuerzo requerido para programar
el modelo.
 Proporcionan un marco de trabajo natural para el uso de modelos de
simulación. Los bloques básicos de construcción del lenguaje son mucho más
afines a los propósitos de la simulación que los de un lenguaje de tipo general.
 Los modelos de simulación son mucho más fácilmente modificables.
 Proporcionan muchos de ellos una asignación dinámica de memoria
durante la ejecución.
 Facilitan una mejor detección de los errores.
 Los paquetes de software especialmente diseñados para simulación
contienen aplicaciones diversas que facilitan al simulador las tareas de
comunicaciones, la depuración de errores sintácticos y de otro tipo de errores, la
generación de escenarios, la manipulación “on-line” de los modelos, etc.
 Simuladores de alto nivel
 Muy fáciles de usar por su interface gráfica
 Restringidos a las áreas de manufactura y comunicaciones
 Flexibilidad restringida puede afectar la validez del modelo

Entre estos lenguajes específicos podemos nombrar los siguientes: MIDAS,


DYSAC, DSL, GASP, MIMIC, DYNAMO, GPSS, SIMULA, CSSL (Continuous
System Simulation Language), CSMP, ACSL (Advanced Conrinuous Simulation
Language), DARE-P and DARE-Interactive, C-Simscript, SLAM, SIMAN, SIMNON,
SIMSCRIPT-II-5, ADA, GASP IV, SDL.
Muchos de estos lenguajes dependen fuertemente de los lenguajes de propósito
general como es el caso de SLAM o SIMAN que dependen de Fortran para las
subrutinas.

Lenguajes de programación más utilizados

40
-GPSS es un caso especial de un lenguaje de simulación de propósito especial,
altamente estructurado que está orientado a la transacción, un caso especial de
una orientación basada en procesos más general. El GPSS fue diseñado para la
simulación simple de sistemas de colas tales como trabajos de taller. A diferencia
de los otros lenguajes de simulación, GPSS tiene varias implementaciones
incluyendo GPSS/H y GPSS/PC, ambos de los cuales serán discutidos más
adelante.

-SIMSCRIPT II.5 Es un lenguaje de simulación con orientación al evento y al


proceso, es híbrido porque posee facilidades para simulación de sistemas
discretos y continuos. Un programador SIMSCRIPT 11.5 consiste de las siguientes
partes: • Preamble • Main program • Rutinas de eventos. • Rutinas ordinarias.
Fue utilizado en el pasado en grandes y complejas simulaciones, como es el caso
de los modelos no orientados a colas; por ejemplo, modelos de combates
militares. Se encuentra disponible en versión PC destacando su ambiente de S 11
VIGRAPHICS. SIMSCRIPT 11.5 está basado en entidades, atributos y conjuntos.
Visualiza el mundo a ser simulado como un conjunto de entidades que pueden ser
descritas a través de sus atributos y los eventos que aparecen en el tiempo.

-SIMAN V está escrito en C, aunque las primeras versiones del lenguaje fueron
escritas en FORTRAN. Modela un sistema discreto usando la orientación al
proceso; es decir, en un modelo de sistema particular, se estudian las entidades
que se mueven a través del sistema. Una entidad para SIMAN es un cliente, un
objeto que se mueve en la simulación y que posee características únicas
conocidas como atributos. Los procesos denotan la secuencia de operaciones o
actividades a través del que se mueven las entidades, siendo modeladas por el
diagrama de bloques.

-SLAM es un lenguaje de simulación por el cual se pueden construir modelos con


orientación al proceso o al evento. La parte de SLAM que se orienta a los
procesos emplea una estructura reticular compuesta por símbolos de nodos y

41
ramas tales como colas, servidores y puntos de decisión. Modelamiento significa
incorporar esos símbolos a un modelo de red que representa el sistema y en
donde las entidades (ítems) pasan a través de la red. SLAM contiene un
procesador que convierte la representación visual del sistema a un conjunto de
sentencias.
SIMAN V, SIMSCRIPT II.5, y el SLAM son lenguajes de simulación de alto nivel
que tienen constructor especialmente diseñados para facilitar la construcción de
modelos. Estos lenguajes proveen al analista de simulación con una opción de
orientación basada en procesos o basada en eventos, o un modelo usando una
mezcla de las dos orientaciones. A diferencia del FORTRAN, estos tres lenguajes
proveen la administración de la lista de eventos futuros, generador interno de
variables aleatorias, y rutinas internas para la obtención de estadísticas (estas
características para las implementaciones del GPSS mencionadas previamente).
Se pueden lograr calculo complejos en ambas implementaciones del GPSS y
estos tres lenguajes.

-SLAMSYSTEM contiene al lenguaje de simulación SLAM II. El SLAM II está


basado en el FORTRAN y contiene al lenguaje GASP como un subconjunto.

-GASP es un conjunto de subrutinas en FORTRAN para facilitar las simulaciones


orientadas a la secuencia de eventos. Cerca de 30 subrutinas y funciones que
proveen numerosas facilidades, incluyendo: • Rutinas de avance del tiempo, •
Gestión de listas de eventos futuros, • Adición y remoción de entidades. •
Colección de estadísticas. • Generadores de variables aleatorias. • Reporte
estándar. El programador únicamente provee un programa main, una rutina de
actualización, rutinas de eventos, generadores de reportes personalizados y una
subrutina denominada EVNTS. El programa main debe incluir la sentencia CALL
GASP; siendo GASP una subrutina que determina el eminente evento, invocando
a EVNTS escrita por el usuario y obtiene el índice NEXT.
El SIMSCRIPT II.5 por otro lado, contiene un subconjunto de un completo lenguaje
científico de simulación comparable con el FORTRAN, C o C++.

42
-MODSIM III es un descendiente del lenguaje que la compañía de productos CACI
originalmente diseñado por la armada de los Estados Unidos. Hereda mucha de
su sintaxis del MODULA-2 y del ADA, ciertas características del ADA y sus
conceptos de simulación del SIMSCRIPT y el SIMULA. Algunas de las
características de la simulación orientada al objeto fueron originalmente vistas en
el SIMULA y el SMALLTALK.

Comandos de un simulador

Los comandos se utilizan solo en GPSS/PC para construir programas e interactuar


con simulaciones. Estos comandos usualmente se utilizan en la parte inferior de la
pantalla de GPSS/PC. Aquí vemos en detalle algunos de los comandos más
utilizados.

-ANOVA: calcula los intervalos de confianza y realiza el análisis de varianza en


valores guardados en el archivo de resultados. ANOVA A, B. C A: Especificación
de archivo en DOS que contiene los resultados de simulación y niveles de
tratamiento organizado en columnas (archivo de resultados) B: Numero de la
columna en el archivo de resultado que contiene las variables dependientes para
un análisis de varianza. (Default = 1.) El operando debe de ser nombre, Numero
entero o nulo (opcional). C: Numero de columna en el archivo de resultados que
contiene los niveles de tratamiento para que sea asociada con cada resultado.
(Default = 2.) El operando debe de ser nombre, numero entero o nulo (opcional).

-CONTINUE: permite continuar con una corrida de simulación interrumpida.


CONTINUE DELETE El comando DELETE remueve instrucciones o bloque en un
programa de GPSS. DELETE A, B A: Numero de línea (límite inferior). El
operando debe ser el número de línea (requerido). B: Numero de línea final (límite
superior) El operando debe ser el número de línea (opcional).

43
-DELETE 10,100: Este comando remueve todas las instrucciones o bloques
inclusive, entre líneas 10 y 100 de un programa de GPSS.

-DISPLAY: permite ver el listado de un programa en la pantalla de GPSS.


DISPLAY A, B A: Número de línea inicial (límite inferior). El operando debe de ser
el número de línea (opcional) B: Numero de línea final (límite superior) El
operando debe ser el número de línea (opcional). DISPLAY Permite ver el listado
de un programa en la pantalla. DISPLAY 10, 150 Permite ver en la pantalla el
listado de un programa desde la línea 10 hasta la línea 150.

-DOS: permite salir temporalmente de un programa de simulación y entrar a DOS.


Para regresar a GPSS se utiliza EXIT.

-EDIT: permite modificar una línea de un programa de GPSS. EDIT A A: Número


de línea por modificar (requerido).

-PLOT: permite obtener en la pantalla resultados en forma gráfica. PLOT A, B, C,


D Argumento de la gráfica. El operando debe de ser SNA (requerido). B: Valor
máximo del eje Y. El operando debe ser número entero (requerido). C: Tiempo de
inicio de la gráfica. El operando debe de ser 0 o número entero (requerido). D:
Tiempo final de la gráfica. El operando debe ser número entero (requerido).

PLOT XSINV,500,0,28800 Permite ver la gráfica de un SAVEVALUE con el


nombre INV. La gráfica tendrá el valor máximo de 500 en el eje Y. El tiempo de
inicio de la gráfica es 0 y el tiempo final es de 28800.

-RENUMBER: permite remunerar todas las líneas de un programa de GPSS.


RENUMBRE A; B. A: Número de línea con la que se desea iniciar. Default = 10
(opcional). B: Incremento de número de línea. Default = 10 (opcional).

44
-REPORT: permite definir el nombre de un archivo en DOS que recibirá el informe
no formateado. REPORT A; B; COMENTARIOS Especificación del archivo en
DOS que recibirá el reporte no formateado. B: NOW, para escribir un reporte no
formateado inmediatamente. El operando debe ser NOW o nulo (opcional).

Referencias.
 SIMULACION: UNIDAD IV. LENGUAJES DE SIMULACIÓN (simulacionkarla.blogspot.com)
 https://hopelchen.tecnm.mx/principal/sylabus/fpdb/recursos/r94297.PDF
 https://paginaanibal.es.tl/unidad-4.htm

Diseño del experimento

Nosotros pensamos el realizar el método simplex, ya que se nos hizo el más fácil
de programar porque se hace más fácil por el método de matrices y con métodos
simples para la realización de las iteraciones básicas para poder desarrollarlo.

45
Lo que hará nuestro programa es encapsular la información en matrices para su
manipulación, además que se impondrán números aleatorios para su realización y
sea funcional para x números de operaciones, una vez en la matriz esta ira
haciendo los cálculos correspondientes para identificar la variable pivote, y de ahí
que renglón o columna tomara para su hacer los cálculos correspondientes, y así
ira calculando pivotes, y calculando los valores hasta llegar al resultado.

El programa está hecho para poder llegar al resultado de manera más fácil
además que puede agregar n factores a la matriz lo que lo hace un programa
eficiente, está pensado para la realización del método simplex de una manera
rápida eficaz y correcta.

Panadería

Para ejemplificar el presente trabajo, se procederá a simular el siguiente ejemplo


practico sobre una fabrica de pan:

Una fábrica de pan reparte diferentes tipos de panes a varias tiendas de la ciudad,
los más famosos son sus panes gigantes que pueden ser de pan blanco y pan
dulce. Los panes se venden por docena,los blancos dejan una ganancia de $25
por unidad de venta mientras que los panes dulces dejan de ganancia $60 por
unidad de venta.

Ambos panes tienen ingredientes en común, una docena de pan blanco requiere
2kg de harina y 1L de agua mientras que para los panes dulces se requieren 3kg
de harina y 1L de agua.

Cada semana encargan diferentes cantidades de harina debido a que en el lugar


donde se ubican hay un solo distribuidor que no siempre tiene la misma
disponibilidad, de la misma forma hay días en que el agua escasea y tienen que
reducir el agua disponible para hacer los panes.

Si quieren maximizar sus ganancias recibidas al final de una semana que están
sujetas a la disponibilidad de materia prima de esas semanas. ¿Cuál es la
cantidad de panes blancos y panes de dulce que deben hacer para lograr el
objetivo?

46
Conclusión
La simulación es, sin duda, una herramienta muy útil para el desarrollo de ensayos
o experimentos que se pueden repetir una y cuántas veces sea necesario para
comprobar diferentes hipótesis o datos incompletos que se pueden obtener
mediante este medio. La aleatoriedad que es parte de cada simulación, permite
que todas las variables y posibilidades sean parte, sin dejar nada fuera ni excluir
ningún dato, así como ver de una manera más gráfica o visual los resultados que
se esperan.
Conociendo los diferentes métodos de simulación se puede hacer más fácil
dependiendo de lo que sea que necesitemos, al igual que conociendo el tipo, será
más fácil saber el tipo de datos que necesitamos que la simulación arroje.
En definitiva, todo esto se vuelve más sencillo si se conoce algún lenguaje de
programación o se tiene la experiencia con algún simulador que facilita aún más la
labor de realizar una simulación que requiera cierto nivel de programación sin
conocer por completo un lenguaje formal.

47

También podría gustarte