Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
LENGUAJES DE SIMULACIN
TEMARIO
4.1 Lenguaje de simulacin y simuladores
4.2 Aprendizaje y uso del lenguaje de simulacin o un simulador
4.3 Casos prcticos de simulacin
4.3.1 Problemas con lineas de espera
4.3.2 Problemas con sistemas de inventario
4.4 Validacin de un simulador
4.4.1 Pruebas parametricas (Validacin del modelo, pruebas de hipotesis y pruebas de
estimacin).
4.4.2 Pruebas no parametricas
USO
LENGUAJE
DE
SIMULACINO
SIMULADOR
ALGORITMOS
El algoritmo de Simulacin Monte Carlo Crudo o Puro est fundamentado en la generacin de
nmeros aleatorios por el mtodo de Transformacin Inversa, el cual se basa en las distribuciones
acumuladas de frecuencias:
Determinar el valor de la V.A. para el nmero aleatorio generado de acuerdo a las clases
que tengamos.
Otra opcin para trabajar con Monte Carlo, cuando la variable aleatoria no es directamente el
resultado de la simulacin o tenemos relaciones entre variables es la siguiente:
Generador de nmeros aleatorios: como se generan los nmeros aleatorios es importante para
evitar que se produzca correlacin entre los valores mustrales.
Establecer lmites y reglas de muestreo para las fdp: conocemos que valores pueden adoptar las
variables.
Definir Scoring: Cuando un valor aleatorio tiene o no sentido para el modelo a simular.
Estimacin Error: Con que error trabajamos, cuanto error podemos aceptar para que una corrida
sea vlida?
Paralelizacin y vectorizacin: En aplicaciones con muchas variables se estudia trabajar con varios
procesadores paralelos para realizar la simulacin.
EJEMPLO PRACTICO I
Generando los valores aleatorios vamos a ver como se obtiene el valor de la demanda para cada
da, interesndonos en este caso como es el orden de aparicin de los valores. Se busca el
nmero aleatorio generado en la tabla de probabilidades acumuladas, unavez encontrado( si no es
el valor exacto, ste debe se menor que el de la fila seleccionada pero mayor que el de la fila
anterior), de esa fila tomada como solucin se toma el valor de las unidades (Cuando trabajamos
en Excel debemos tomar el lmite inferior del intervalo para busca en las acumuladas, para poder
Un sistema de colas estara definido cuando tengamos la siguiente informacion acerca de este:
Distribucion de probabilidad de los tiempos de servicio
Distribucion de probabilidad de los tiempos entre llegadas
Numero de servidores
Numero de filas
Conexiones entre servidores y filas
Disciplinas y restricciones de los servidores y filas (en caso de que existan)
Para este primer ejemplo se utilizara el modelo de lineas de espera que se muestra en la figura
siguiente. Como se puede apreciar, es un modelo bastante simple donde la disciplina de atencin
es FIFO (primero en llegar, primero en salir).
Tanto el tiempo de servicio como el tiempo entre llegadas siguen una distribucion exponencial
aunque con parametros diferentes, para el caso del tiempo entre llegadas tenemos =15 y para el
tiempo de servicio tenemos =10.
Aplicando el metodo de la transformada inversa a la distribucion exponencial (consultar Dyner etc.
al, 2008), tenemos que:
Donde corresponde a una observacin de una variable exponecial, _ es un numero aleatorio entre
cero y uno y es la media de la distribucion. Para la implementacion del sistema descrito en Excel,
abra una nueva hoja de calculo y configurela como se muestra en la figura.
En la celda B8 escriba la formula =ALEATORIO() y arrastre hasta la celda B23. Repita este
procedimiento para la columna G. En el paso anterior, se definio los numeros aleatorios a partir de
los cuales se generaran las observaciones de variables aleatorias de la simulacion.
Ahora, en la celda C8 escribe la formula =-LN(1-B8)/$B$4, y arrastre hasta la celda C23.
Como se puede apreciar, esta es la formula descrita anteriormente para obtener observaciones de
una variable exponencial. En este caso, se estan generando observaciones para la variable
aleatoria de tiempos entre llegadas.
En la celda D8 escribe la formula =C8, lo anterior significa que como es la primera llegada al
sistema, su tiempo de llegada (en el instante de tiempo en el que llego al sistema), sera igual a su
tiempo entre llegadas. Sin embargo, para la celda D9 la formula correspondiente es =C9+D8, ahora
arrastre la formula de D9 hasta D23; esta formula significa que despues de que llega el primer
cliente, el instante de tiempo en el que cualquier otro cliente llega al sistema sera el instante de
tiempo en el que entro el penltimocliente sumado el tiempo entre llegadas del ltimo cliente, es
decir, si el penultimo cliente entro al sistema en el instante t=4, y el tiempo entre llegadas del ultimo
cliente es dt=2, entonces este ultimo cliente entrara realmente al sistema en t=6.
La formula correspondiente a la celda E8 es =D8, esto significa que, al ser primer cliente, el
instante en el que llega al sistema sera el mismo instante en el que comienza el servicio; mas
adelante se presenta las formulas correspondientes al resto de clientes del sistema en esta
columna. Ahora en la celda F8 escriba la formula =E8-D8 y arrastrela hasta la celda F23, esto
corresponde al tiempo de espera del cliente antes de comenzar a ser atendido, note que D8 nunca
sera mayor que E8 ya que el valor minimo que puede tomar el tiempo de comienzo del servicio es
el tiempo de llegada, es decir, cuando un cliente llega al sistema y no tiene que hacer fila.
En la celda H8 escribe la formula =-LN(1-G7)/$B$5, y arrastrela hasta la celda H23, esta formula
indica cuanto tiempo tardara el servidor atendiendo al cliente actual. Ahora en la celda I8 escriba la
formula =E8+H8, esta formula indica el instante de tiempo en el que servidor termina de atender al
cliente actual y corresponde a la suma entre el instante que comienza el servicio y la cantidad de
tiempo que este toma.
Retomemos ahora la columna E, notese que esta solo esta definida en su posicion E8, esto porque
primero se requeria definir otros valores antes de poder determinar el instante en el que empieza
realmente el servicio. En un sistema como el aqui presentado se pueden tener dos casos para el
tiempo de comienzo del servicio, en primer lugar puede que el servidor se encuentre desocupado,
en este caso el tiempo de comienzo del servicio sera igual al tiempo de llegada al sistema y no
habra tiempo de espera. Sin embargo, si el servidor se encuentra ocupado, el tiempo de comienzo
del servicio sera igual al maximo entre el instante en que el servidor termine de atender al cliente
actual y el tiempo de llegada al sistema; por si el tiempo de fin del servicio del cliente actual es
igual a tfs=12 pero el tiempo de llegada del prximo cliente es tll=14, el tiempo de comienzo del
servicio del proximo cliente sera t=14 y el servidor tendra un ocio dt=2; por otro lado, si tfs=13 para
el cliente actual y el proximo cliente tiene un tll=10, el servidor no tendra ocio y el proximo cliente
debera esperar un intervalo de tiempo dt=3. De lo anterior se concluye que la formula para la celda
E9 debe ser=MAX(D9;I8), ahora arrastre esta formula hasta la celda E23.
Hasta este punto se tiene una simulacion de un sistema de lineas de espera con una fila y un
servidor, si se desea generar nuevas observaciones presione la tecla F9; como tarea al lector se
deja el calculo de:
Tiempo promedio en el sistema
Tiempo promedio de espera (sin incluir ceros)
Tiempo promedio de espera (incluyendo ceros)
Tiempo promedio de servicio
Tiempo promedio de ocio
Adicionalmente se plantea al lector elaborar, una simulacion en Excel que represente el sistema
que se muestra en la figura siguiente, donde p es la probabilidad de que un cliente se dirija a S1 o
a S2. Tanto el tiempo entre llegadas como los tiempos de servicio, se distribuyen exponencial con
los parametros que se muestran a continuacion.
Tiempo entre llegadas: =8
Tiempo de servicio S1: =13
Tiempo de servicio S2: =18
Probabilidad p: 0.63
VALIDACIN DE UN SIMULADOR
Tcnica de muestreo mal aplicada. Ejemplo: Tomar todos los datos de un sector no
representativo.
Datos mal digitados o mal almacenados.
El analista hace un acto de confianza en el equipo que tena los datos.
En la construccin
Uso de una imagen no adecuada del mundo real. (Usar matrices de punto para territorios,
lagos, bosque, cardumen, conglomerados; en lugar del espacio R2 por ej.)
La validacin consiste en 2 etapas:
1.
Validacin de los modelos de procesos simples; esto es validar la estructura interna del
modelo.
Se valida la salida de los procesos simples y en ello se hace uso de tcnicas de estadstica. Las
relaciones funcionales tambin deben validarse. Puede hacerse cuando se establece el modelo o
en la toma de datos .No debe tomarse relaciones funcionales desconocidas, o que no tengan ya un
grado de validez aceptable. Siempre ser posible validar las componentes o subsistemas porque
se habrn construido de manera modular para formar el modelo. En esta etapa se observar el
comportamiento del modelo en cada uno de esos procesos simples para asegurarse que cada
componente o subsistema esta bien simulado.
Validar el modelo de simulacin en su entorno, esto es validar los datos de salida.
Puede ser que la validez de la estructura sea buena, pero el resultado combinado de los
procesos simples sea casi mala.
Confrontar los resultados de la simulacin con las experiencias pasadas y con teoras
existentes al respecto:
No tomar posturas como: los resultados no me parecen correctos, pero si el modelo lo dice
yo lo acepto.
Si los resultados son absurdos, no tiene sentido continuar; cualquier otro anlisis no
convencer a los usuarios. Ningn modelo se ha aceptado si los resultados van contra la teora.
Anlisis de la capacidad de replicar los datos que se uso en su construccin. Esta rplica
no es tan importante ya que si replica los datos usados no significa que el modelo sea bueno; y, si
ni siquiera replica los datos usados es porque el modelo de simulacin obtenido, es malo.
Anlisis de la capacidad de predecir usando datos crticos no incluidos en los datos, o usar
datos histricos o datos que se obtienen del sistema real o de otro simulador ya probado.
Se espera que estas salidas no sean absurdas comparadas con la experiencia y la teora. Se
consulta la opinin de expertos en esta confrontacin del modelo con la realidad presente.
Ej. Simular la evolucin de una poblacin de chinchillas dndole poblacin mxima altsima, y
datos de poblacin existentes. Consulta a expertos en chinchillas.
El modelo debe correrse muchas veces antes de llegar a tener una probabilidad de
distribucin de la respuesta de un variable de salida.
VII Diseo de experimentos
Aqu se usan las reglas y los procedimientos que la estadstica considera para el diseo de
experimentos en general y que se aplica a disear experimentos a efectuar con el simulador.
El diseo se har orientado principalmente a los objetos que tiene el estudio o el programa en que
se inserta la construccin del simulador, o los objetivos de los usuarios que utilizarn el simulador,
y para lo cual ste fue diseado.
Se puede distinguir una etapa estratgica donde se decide el diseo de experimentos a usar por
ser el ms adecuado, y la etapa tctica donde se decide el cmo se llevara a la prctica los
experimentos del diseo a aplicar. Se ve aqu la distribucin de recursos, el uso del tiempo y del
personal.
VIII Ejecucin de los experimentos
Corresponde a la etapa operacional del diseo de experimentos.
IX Interpretacin
Se hacen las inferencias sobre el sistema real de los datos generados por el simulador.
X. Documentacin
Se debe indicar por escrito puntos tales como: los objetivos, las componentes y subsistemas,
variables de entrada y de salida, relaciones funcionales, el modelo formulado, la funcin de
desempeo, y lo pertinente hasta aqu (Diseo lgico del simulador).
Se debe documentar el programa computacional, los mdulos o las subrutinas, las inter-relaciones
entre mdulos y la conclusiones de la etapa de validacin (Diseo fsico del simulador).
Confeccionar un manual de procedimiento para el uso del simulador. Este resultar ms breve
cuanto ms amigable sea el ingreso y manejo del simulador. Deber contener alcances que
faciliten la inferencia al sistema real.
XII. Explotacin
Es dejar el simulador con los manuales y documentacin a disposicin del o los usuarios.
Pruebas de hiptesis
Una
Al realizar pruebas de hiptesis, se parte de un valor supuesto (hipottico) en parmetro
poblacional. Despus de recolectar una muestra aleatoria, se compara la estadstica muestral,
as como la media (x), con el parmetro hipottico, se compara con una supuesta media
poblacional. Despus se acepta o se rechaza el valor hipottico, segn proceda. Se rechaza el
valor hipottico slo si el resultado muestral resulta muy poco probable cuando la hiptesis es
cierta.
Etapas Para La Prueba De Hiptesis.
Etapa 1.- Planear la hiptesis nula y la hiptesis alternativa. La hiptesis nula (H0) es el valor
hipottico del parmetro que se compra con el resultado muestral resulta muy poco probable
cuando la hiptesis es cierta.
Etapa 2.- Especificar el nivel de significancia que se va a utilizar. El nivel de significancia del 5%,
entonces se rechaza la hiptesis nula solamente si el resultado muestral es tan diferente del valor
hipottico que una diferencia de esa magnitud o mayor, pudiera ocurrir aleatoria mente con
una probabilidad de 1.05 o menos.
Etapa 3.- Elegir la estadstica de prueba. La estadstica de prueba puede ser la estadstica
muestral (el estimador no segado del parmetro que se prueba) o una versin transformada de esa
estadstica muestral. Por ejemplo, para probar el valor hipottico de una media poblacional, se
toma la media de una muestra aleatoria de esa distribucin normal, entonces es comn que se
transforme la media en un valor z el cual, a su vez, sirve como estadstica de prueba.
Etapa 4.- Establecer el valor o valores crticos de la estadstica de prueba. Habiendo especificado
la hiptesis nula, el nivel de significancia y la estadstica de prueba que se van a utilizar, se
produce a establecer el o los valores crticos de estadstica de prueba. Puede haber uno o ms de
esos valores, dependiendo de si se va a realizar una prueba de uno o dos extremos.
Etapa 5.- Determinar el valor real de la estadstica de prueba. Por ejemplo, al probar un valor
hipottico de la media poblacional, se toma una muestra aleatoria y se determina el valor de la
media muestral. Si el valor crtico que se establece es un valor de z, entonces se transforma la
media muestral en un valor de z.
Etapa 6.- Tomar la decisin. Se compara el valor observado de la estadstica muestral con el valor
(o valores) crticos de la estadstica de prueba. Despus se acepta o se rechaza la hiptesis nula.
Si se rechaza sta, se acepta la alternativa; a su vez, esta decisin tendr efecto sobre otras
decisiones de los administradores operativos, como por ejemplo, mantener o no un estndar
de desempeo o cul de dos estrategias de mercadotecnia utilizar.
La distribucin apropiada de la prueba estadstica se divide en dos regiones: una regin
de rechazo y una de no rechazo. Si la prueba estadstica cae en esta ltima regin no se puede
rechazar la hiptesis nula y se llega a la conclusin de que el proceso funciona correctamente.
Al tomar la decisin con respecto a la hiptesis nula, se debe determinar el valor crtico en la
distribucin estadstica que divide la regin del rechazo (en la cual la hiptesis nula no se puede
rechazar) de la regin de rechazo. A hora bien el valor crtico depende del tamao de la regin de
rechazo.
PASOS DE LA PRUEBA DE HIPTESIS
1. Expresar la hiptesis nula
2. Expresar la hiptesis alternativa
3. Especificar el nivel de significancia
4. Determinar el tamao de la muestra
5. Establecer los valores crticos que establecen las regiones de rechazo de las de no rechazo.
6. Determinar la prueba estadstica.
7. Coleccionar los datos y calcular el valor de la muestra de la prueba estadstica apropiada.
8. Determinar si la prueba estadstica ha sido en la zona de rechazo a una de no rechazo.
9. Determinar
la
decisin
10 Expresar la decisin estadstica en trminos del problema.
estadstica.
Por otra parte, los lenguajes de simulacin ofrecen mayores ventajas, porque:
En esta parte haremos una descripcin sucinta de algunos paquetes y/o lenguajes de Simulacin
de los ms empleados en el medio.
LENGUAJES
El desarrollo de los lenguajes de Simulacin comenz a finales de los aos cincuenta;
inicialmente los lenguajes que se usaron en fueron los de propsito general, los cuales tenan las
siguientes ventajas:
El proceso se puede describir con tanta precisin como le sea posible en el lenguaje
conocido.
Se pueden realizar todas las depuraciones posibles.
Cualquier lenguaje de programacin puede ser empleado para trabajar en Simulacin, pero los
lenguajes especialmente diseados presentan las siguientes propiedades:
Los lenguajes precursores en Simulacin fueron los de propsito general, entre ellos por
mencionar solo algunos tenemos: FORTRAN, ALGOL, COBOL, RPG, BASIC, PASCAL, MODULA,
PL/1, etc. Los principales lenguajes utilizados en Simulacin son:
Simulacin de cambio continuo y de cambio discreto en computadoras hbridas H01; Simulacin
de incremento continuo con orientacin a ecuaciones directas con nfasis en ecuaciones
diferenciales DSL/90, MIMIC, BHSL, DIHYSYS y S/360 CSMP; Simulacin de incremento continuo
con simuladores orientados a bloques con nfasis en ecuaciones diferenciales MIDAS,
PACTOLUS, SCADS, MADBLOC, COBLOC y 1130 CSMP; Simulacin de incremento continuo con
simuladores orientados a bloques con nfasis en ecuaciones de diferencias DYNAMO, DYSMAP 2;
Simulacin de incremento discreto con orientacin a actividades CSL, CLP, GSP, GERT, FORSIM,
ESP, MONTECODE y MILITRAN; Simulacin de incremento discreto con orientacin a eventos
SIMSCRIPT, GASP, SIMCOM, SIMULATE y SIMPAC; Simulacin de incremento discreto con
orientacin a procesos SIMULA, OPS, SLAM y SOL; Simulacin de incremento discreto con
orientacin a flujo de transacciones GPSS y BOSS.
PAQUETES
Los paquetes son una versin depurada de los diferentes lenguajes de propsito general y
presentan algunas ventajas sobre los lenguajes de programacin generales: