Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Librodesimulacion PDF
Librodesimulacion PDF
Enero - 2014
CONTENIDO
1.- Introducción a la simulación
3.-
3.- Generación de variables aleatorias
5.-
5.- Proyecto integrador
Apéndice A
Apéndice B
Simulación es una técnica numérica para conducir experimentos en una computadora digital. Estos
experimentos comprenden ciertos tipos de relaciones matemáticas y lógicas, las cuales son necesarias
para describir el comportamiento y la estructura de sistemas complejos del mundo real a través de
largos períodos de tiempo.
Esta definición muestra un sentido amplio en el cual incluye desde una maqueta, hasta
un sofisticado programa computacional. En un sentido más estricto, H. Maisel y G.
Gnugnoli define a la simulación de la siguiente manera:
Es una técnica numérica para realizar experimentos en una computadora digital. Estos experimentos
involucran ciertos tipos de modelos matemáticos y lógicos que describen el comportamiento de
sistemas de negocios, económicos, sociales, biológicos, físicos o químicos a tráves de largos períodos
de tiempo.
1
Es el proceso de diseñar y desarrollar un modelo computarizado de un sistema o proceso y conducir
experimentos con este modelo con el propósito de entender el comportamiento del sistema o evaluar
varias estrategias con las cuales se puede operar el sistema.
2
Obligando a establecer claramente las acciones o alternativas para resolver este
problema. Algunos expertos recomiendan resolver este problema:
De las tres alternativas, la última es la que presenta menos desventajas. Las otras
tienen la desventaja de ser excesivamente caras.
Para la realización del primer análisis, el cual comúnmente se le conoce como diseño
de experimentos de un factor simple, es necesario tomar en cuenta el tamaño de la
3
muestra, condiciones iniciales y la presencia o ausencia de auto correlación. Para el
segundo tipo de análisis, existe literatura suficiente que explica el tema de análisis de
varianza y técnicas de regresión como medios para evaluar la importancia y el efecto
de varias variables en los resultados de operación de un sistema. Para el tercer tipo de
análisis, generalmente se requiere utilizar algoritmos heurísticos de búsqueda como
los algoritmos de Hooke y Jeeves.
1.3.1.- VENTAJAS.
1.3.2.- DESVENTAJAS.
4
desarrolle y perfeccione, debido a la gran cantidad de datos significativos que no se
encuentran disponibles, requiriendo un análisis profundo para su identificación.
La palabra sistema es utilizada usualmente para definir un conjunto de cosas que están
interrelacionadas para cumplir con un objetivo. Esta forma de contemplar un todo y no
las partes aisladamente es lo que es conocido como el enfoque sistémico. Un sistema
está constituido por varios objetos los cuales poseen propiedades.
5
de la descripción externa el uso de términos de comunicación (intercambio de
información entre sistema, medio y dentro del sistema) y de control de la función del
sistema con respecto al medio (retroalimentación). La descripción externa es
funcional, describe el comportamiento del sistema por su interacción con el medio.
Las descripciones tanto internas como externas del sistema coinciden en gran medida
con descripciones mediante funciones continuas o discretas.
6
1.4.3.- DEFINICIÓN DE CONTROL.
7
Este enfoque para la construcción de un software, únicamente está enfocado al
sistema mismo, desde su formulación hasta su mantenimiento, pero no interviene la
parte operativa del mismo. En eso difiere de un modelo de simulación, el cual es
visualizado como un paquete que engloba desde su concepción hasta su operación.
Los pasos necesarios para realizar un estudio de simulación se requiere: 1) Definir el
sistema, 2) Formular el modelo, 3) Recopilar los datos, 4) Implementar el modelo en la
computadora, 5) Validar, 6)Experimentar, 7) Interpretar, y 8) Documentar.
Definir el sistema
Formular el modelo
D
o
c Recopilar datos
u
m
Implementar el modelo en la computadora
e
n
t Validar el modelo
a
r
Experimentar con el modelo
Una vez definido los resultados que se esperan obtener del estudio, el siguiente paso
es definir y construir el modelo con el cual se obtendrán los resultados deseados. En la
formulación del modelo es necesario definir todas las variables que forman parte de él,
8
sus relaciones lógicas y los diagramas de flujo que describan en forma completa al
modelo.
1.6.5.- VALIDAR.
1.6.6.- EXPERIMENTAR.
1.6.7.- INTERPRETAR.
En esta etapa se interpretan los resultados que arroja la simulación, y en base a estos
se toma una decisión. Obviamente estos resultados obtenidos de la simulación ayudan
a soportar decisiones del tipo semi-estructurado, es decir, la computadora en sí no
toma la decisión, sino que la información que aporta ayuda a tomar mejores
decisiones, y sistemáticamente obtener mejores resultados.
9
1.6.8.- DOCUMENTAR.
Son requeridos dos tipos de documentación para hacer un mejor uso del modelo de
simulación. La primera es la documentación técnica y la segunda documentación es el
manual del usuario para facilitar la interacción y el uso del modelo desarrollado.
Los eventos discretos son las acciones o resultados de experimentos que tienen como
resultado un número entero. Los productos defectuosos en un embarque, las
personas que entran a un banco, o los estudiantes que aprueban una determinada
asignatura, son algunos ejemplos de los mismos. Estos eventos discretos son simulados
haciendo uso de distribuciones de probabilidad con parámetros dados previamente.
Estos parámetros son recopilados en el proceso de experimentación, y la distribución
de probabilidad es seleccionada dependiendo del tipo de comportamiento de las
muestras analizadas.
Los eventos continuos son números reales (parte entera y parte fraccionaria) que son
usualmente son características físicas tales como: peso, altura, tiempo, temperatura,
presión.
Este modelo computacional cuenta con tres elementos primordiales que son: entrada,
proceso y salida. En este análisis del modelo computacional, la entrada se representa
por una variable de tipo discreto (valores enteros). La salida está formada por un grupo
de valores que representan la información resultante del proceso de simulación, la
cual es utilizada para la toma de decisiones en el problema real. El proceso es el
elemento en el cual está representada la manera de transformar las entradas en
salidas. En este proceso está especificado el diseño de lógica del proceso, en el cual
interviene una o varias funciones de probabilidad.
10
2
Números pseudoaleatorios
El mundo real es muy raro que sea determinístico, al estudiar un sistema y sus
influencias externas como la llegada de clientes a un banco y el comportamiento del
sistema como el tiempo de servicio bancario tienen un comportamiento aleatorio o
probabilístico. En la construcción de un modelo de simulación bancario es necesario
reproducir los efectos aleatorios del sistema, por lo cual es necesario incursionar en la
generación de números aleatorios o pseudo aleatorios, como también la manera de
poderlos generar y probar que dichos números tengan la aleatoriedad deseada.
La obtención artificial de los datos del tiempo de servicio viene a simplificar el modelo,
partiendo de una muestra significativa. A continuación se incursiona en el estudio de la
aleatoriedad y las pruebas estadísticas para garantizar que se cuenta con un generador
confiable.
Existen números aleatorios no uniformes los cuales pueden ser generados a partir de
números aleatorios uniformes. Por lo cual es importante enfocarse primero a la
generación de números aleatorios uniformes, para luego profundizar en la generación
de números aleatorios no uniformes.
11
Existen tres maneras ampliamente conocidas: 1) Provisión externa, 2) la generación
interna basada en un proceso físico, y 3) la generación interna basada en una relación
de recurrencia.
12
Para la generación de números aleatorios es necesario que tenga las siguientes
características:
Por lo que es común utilizar la relación de recurrencia la cual cumple con estos
requisitos, aunque algunos autores han observado que dichos números son pseudo
aleatorios (no son puramente aleatorios) por haber sido generados por relaciones de
recurrencia apoyadas en reglas deterministas. A continuación se muestran varios
métodos de generación de números pseudo aleatorios uniformes.
= +
Donde:
13
m= módulo (m mayor que X0, m mayor que a, y m mayor que c)
Dado un valor inicial de X0, se calcula el valor X1, el cual es resultado de obtener el
residuo de dividir aX0 + c entre m. Siendo X1 un valor entre cero y m-1. Generalizado
entonces tenemos que m representa el número de valores posibles diferentes a ser
generados. Y así sucesivamente se generan X2 a partir de X1, y X3 a partir de X2, y así
hasta realizar la generación de los números requeridos. Pero no necesariamente una m
grande garantiza un periodo largo.
El Dr. Donald Knuth en los 60s propuso la regla para la selección de a, c, y m y X0, lo
cual arroja una buena secuencia de números. Hoy en día los generadores más
eficientes tienen m = 232 para computadoras de 32 bits y m= 264 para computadoras de
64 bits, debido a que es el valor máximo para calcular la operación de módulo debido a
truncamiento. La siguiente tabla muestra los parámetros utilizados por las funciones
rand() predefinidas en los principales compiladores comerciales.
Fuente m A c
Numerical recipes 232 1,664,525 1,013,904,223
Borland C/C++ 232 22,695,477 1
Glibc (Gcc) 231 1,103,515,245 12,345
Ansi C 231 1,103,515,245 12,345
32
Borland Delphi 2 134,775,813 1
32
Microsoft Visual/Quick 2 214013 (343FD16) 2531011
C/C++ (269EC316)
48
Java's java.util.Random 2 25,214,903,917 11
14
Regla de Knuth para la selección de m, a, c, y X0.
Selección de m.
Seleccionar m de modo que sea el número primo más grande posible y que a su vez
sea menor que p, donde: p es la base del sistema binario y d es el número de bits de la
palabra de la computadora. Por ejemplo 231.
Selección de a.
Selección de c.
Selección de X0.
La selección de X0 es irrelevante.
Ejemplo.
Dado los valores de a=5, c=7, m=8 y X0=4 construir una secuencia de números pseudo
aleatorios, y determinar el periodo que tiene esta secuencia.
En este ejemplo se muestra que el generador cuenta con un periodo muy corto, ya que
X0 = 4, y vuelve a aparecer en X8 = 4, por lo que la secuencia tiene un periodo= 8.
15
2.1.2.- GENERADOR CONGRUENCIAL MULTIPLICATIVO.
=
Donde:
Las pruebas estadísticas son utilizadas para asegurar la aleatoriedad de los números
pseudo aleatorios generados. La hipótesis de rechazar o no un generador es el objetivo
de estas pruebas estadísticas. Garantizar que se cuenta con un generador confiable, es
un requisito inicial que se debe examinar. Existen una gran cantidad de pruebas
estadísticas las cuales parten de la idea de analizar estadísticamente los números
pseudo aleatorios los cuales se presume tienen un comportamiento uniforme. Existe
una gran gamma de pruebas de aleatoriedad, algunas simples de implementar
computacionalmente, otras más complejas.
PRUEBAS DE ALEATORIEDAD
Prueba de Yule
16
expresó que si una sucesión se comporta como aleatoria para las pruebas P1, P2, .., P3,
no se asegura en general que para Pn+1 no se encuentre una falla.
: =
: ≠
Esta prueba es utilizada para determinar que tan significativa es la diferencia entre las
frecuencias observadas y esperadas de uno o más categorías (subintervalos). La
diferencia entre las frecuencias esperadas y observadas son consideradas como el
error muestral. Las frecuencias observadas son calculadas a partir de un conteo de los
números que coinciden en un subintervalo determinado, y las frecuencias esperadas
están en función a una distribución de probabilidad teórica.
Para una secuencia de 100 números, y 5 subintervalos tenemos que: N=100, n=5, la FEi
= N/n = 100/5 = 20 para cualquier i. y la frecuencia observada es la cantidad de
números que coinciden en cada subintervalo.
La hipótesis de que todas las frecuencias son iguales en cada subintervalo se basa en
dividir el intervalo (0;1) en n subintervalos para luego realizar las comparaciones en
cada subintervalo entre la frecuencia esperada contra la frecuencia observada. Si son
17
estadístico que se utiliza es el cual hace uso de la letra griega ji (CHI), el cual es
parecidas entonces se dice que la muestra proviene de una distribución uniforme. El
Una vez obtenido el estadístico de la muestra se compara con el estadístico teórico
de la población ,
para rechazar o no la hipótesis que la secuencia de números
proviene de una distribución uniforme.
Donde:
,
es el estadístico teórico chi-cuadrada que proviene de la tabla Chi-Cuadrada
mostrada en el apéndice A, con un nivel de significancia α y n-1 grados de libertad.
0.64138 0.55837 0.81593 0.04994 0.61265 0.06787 0.30465 0.54264 0.81159 0.61163
0.47681 0.52127 0.69239 0.92006 0.37913 0.32035 0.37248 0.57836 0.19180 0.28920
0.79302 0.08124 0.53401 0.48201 0.03268 0.38087 0.68054 0.69251 0.60284 0.69351
0.64264 0.22409 0.80242 0.58071 0.31629 0.03585 0.46034 0.57039 0.15096 0.15523
0.64388 0.83371 0.04198 0.49796 0.16087 0.68317 0.39974 0.48571 0.93409 0.90760
0.59867 0.10238 0.57576 0.20976 0.25934 0.27937 0.74035 0.26204 0.06659 0.75064
0.08396 0.14600 0.07700 0.76808 0.90808 0.19125 0.71868 0.31794 0.81621 0.47948
0.93661 0.72871 0.96122 0.52904 0.18658 0.81139 0.71166 0.92589 0.23092 0.92253
0.81515 0.91642 0.93912 0.59072 0.38699 0.22783 0.54638 0.59725 0.30204 0.63166
0.07339 0.65144 0.81809 0.01614 0.86034 0.05137 0.50878 0.98290 0.41824 0.97056
Tabla 2.3.- Tabla con 100 números pseudoaleatorios para realizar pruebas de aleatoriedad
Ejemplo
Solución
Paso 1.- Determinar N, y n. Se cuenta con 100 números por lo que N=100, y se
determina arbitrariamente 5 subintervalos (n=5).
18
i Subintervalo FOi FEi
1 [0, 0.20) 20 20
2 [0.20, 0.40) 18 20
3 [0.40, 0.60) 21 20
4 [0.60, 0.80) 20 20
5 [0.80, 1.00) 21 20
20 − 20
+ 18 − 20
+ 21 − 20
+ 20 − 20
+ 21 − 20
6
= = = 0.3
20 20
,
= ./ ,7
= 9.49
19
2.2.1.2.- La prueba Kolmogorov-Smirnov.
Si esa probabilidad es grande no habrá por tanto razones estadísticas para suponer
que nuestros datos no proceden de una distribución, mientras que si es muy pequeña,
no será aceptable suponer ese modelo probabilístico para los datos.
20
Ejemplo:
Por lo que:
DIF[26]=0.17316
X[26]=0.69351
F[26]=0.86667
21
2.2.2.- DE ALEATORIEDAD. (CORRIDAS ARRIBA Y DEBAJO DE LA MEDIA Y LONGITUD
DE CORRIDAS).
0 # < 0.5E
A = B
1 # > 0.5
Una corrida es una sucesión del mismo evento escrita una o más veces, por ejemplo
una secuencia 0001100100 contiene 5 corridas es decir R=5, en donde: la primera
corrida es 000, la segunda 11, la tercera 00, la cuarta 1, y la quinta 00. Una vez
determinada el número de corridas se calcula el estadístico Z0 y se utiliza la
distribución normal para obtener la región critica. Para calcular el Z0 se utilizan las
siguientes fórmulas:
2, ,
FG = +1
, + ,
Donde FH es el valor promedio de las corridas, n1 es el número de veces que el primer
evento ha ocurrido, y n2 es el número de veces que el segundo evento ha ocurrido.
2, , 2, , − , − ,
G = I
, + ,
, + , − 1
L + ℎ − FG
K =
G̅
2, ,
ℎ = +0.5 # L < + 1
, + ,
2, ,
ℎ = −0.5 # L > + 1
, + ,
22
− 1.96 ≤ K ≤ 1.96 $,+
, $# ,
#$ %$ ℎ' ( )%-$?
Ejemplo:
2, ,
FG = +1
, + ,
23
213
17
442
FG = +1= + 1 = 15.73
13 + 17
30
2, , 2, , − , − ,
G = I
, + ,
, + , − 1
213
17
213
17
− 13 − 17
G = I
13 + 17
13 + 17 − 1
442
442 − 30
182104 182104
G = I =I =I = √6.977 = 2.641
30
29
900
29
26100
2, ,
<$+$% ,% ℎ $)$, $,
$( O(
% $ + 1
, + ,
213
17
442
P + 1Q = + 1 = 15.73
13 + 17
30
2, ,
ℎ = −0.5
R-$ L > + 1
, + ,
L + ℎ − FG
K =
G̅
24
2.2.3.- DE INDEPENDENCIA. (AUTOCORRELACIÓN, PRUEBA DE HUECOS, PRUEBA DE
PÓQUER, PRUEBA DE YULE).
Las pruebas de independencia son utilizadas para demostrar que los números pseudo
aleatorios son estadísticamente independientes entre sí. Estas pruebas se basan en la
siguiente hipótesis:
H0 : Xi es independiente
H1: Xi es dependiente
La correlación es una relación recíproca entre dos o más elementos en una secuencia.
La secuencia de números pseudo aleatorios aparentemente son aleatorios, pero
pudiera existir una relación entre ciertos números a partir de un número específico.
0 # 0 ≤ 1 ≤ ≤ 2 ≤ 1
A = T 1 $, #
,+%%
E
Una corrida es una sucesión del mismo evento escrita una o más veces, por ejemplo
una secuencia 0001100100 contiene 5 corridas es decir R=5, en donde: la primera
corrida es 000, la segunda 11, la tercera 00, la cuarta 1, y la quinta 00. Una vez
determinada el número de corridas se calcula el estadístico Z0 y se utiliza la
25
distribución normal para obtener la región crítica. Para calcular el Z0 se utilizan las
siguientes fórmulas:
2, ,
FG = +1
, + ,
Donde FH es el valor promedio de las corridas, n1 es el número de veces que el primer
evento ha ocurrido, y n2 es el número de veces que el segundo evento ha ocurrido.
2, , 2, , − , − ,
G = I
, + ,
, + , − 1
L + ℎ − FG
K =
G̅
2, ,
ℎ = +0.5 # L < + 1
, + ,
2, ,
ℎ = −0.5 # L > + 1
, + ,
Ejemplo:
26
Paso 3.- Se Calculan las corridas de la secuencia (leer B de izquierda a derecha y de
arriba hacia abajo).
1 1 1 0 1 0 0 1 1 1
0 1 1 1 0 0 0 1 0 0
1 0 1 0 0 0 1 1 1 1
2, ,
FG = +1
, + ,
213
17
442
FG = +1= + 1 = 15.73
13 + 17
30
2, , 2, , − , − ,
G = I
, + ,
, + , − 1
213
17
213
17
− 13 − 17
G = I
13 + 17
13 + 17 − 1
442
442 − 30
182104 182104
G = I =I =I = √6.977 = 2.641
30
29
900
29
26100
2, ,
<$+$% ,% ℎ $)$, $,
$( O(
% $ + 1
, + ,
213
17
442
P + 1Q = + 1 = 15.73
13 + 17
30
27
2, ,
ℎ = −0.5
R-$ L > + 1
, + ,
L + ℎ − FG
K =
G̅
La prueba estadística de póquer plantea La hipótesis nula que los números pseudo
aleatorios son independientes entre sí, siendo:
: = ,$)$, $,+$
: ≠ ,$)$, $,+$
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
28
Un número pseudoaleatorio (con máximo 5 digitos significativos) se representa como
una jugada:
X1 = 0.23123 se representa:
2 3 1 2 3
La lista de combinaciones existentes son: todas diferentes, un par, dos pares, tercia,
full, póquer, quintilla.
Las manos de póquer posibles a considerar son todas diferentes, un par, dos pares,
tercia, full, póquer y quintilla, las cuales servirán de criterio al momento de analizar
cada uno de los N números pseudo aleatorios. A continuación se muestra una tabla en
la cual se indica la probabilidad esperada de que cada una de las i manos, la cual se
utiliza para el cálculo de la frecuencia esperada (FEi).
29
Paso 2.- Calcular la frecuencia observada.
Una vez obtenido el estadístico de la muestra se compara con el estadístico teórico
de la población ,@
para rechazar o no la hipótesis que la secuencia de números
proviene de una distribución uniforme.
Donde:
,@
es el estadístico teórico chi-cuadrada que proviene de la tabla Chi-Cuadrada
mostrada en el apéndice A, con un nivel de significancia α y 3 grados de libertad.
30
B/A A1 A2 … An Subtotal
B1 A1B1 A2B2 … AnB1 B1
B2 A1B2 A2B2 AnB2 B2
…
Bm A1Bm A2Bm … AnBm Bm
A= A1 A2 An N
8 = I
" +
El coeficiente de asociación debe ser aplicado a una tabla de 2x2 usando la expresión:
×−?×
g =
×+ ×?
Clases A Α
B a b
β c d
Algunos problemas complejos han sido abordados para su solución práctica haciendo
uso de varias técnicas de probabilidad y muestreo, Las cuales se han agrupado bajo el
nombre de Monte Carlo el cual emplea un procedimiento antiguo que utiliza el
muestreo aleatorio que permite simular experimentos.
El método Monte Carlo es una técnica que está basada en la utilización de números
aleatorios y probabilidad para la investigación de problemas. Es empleado en una gran
variedad de campos incluyendo economía, finanzas, física, química, e ingeniería. Cada
campo utiliza el método de diferentes maneras, pero en esencia utiliza números
aleatorios para examinar algunos problemas y aproximar soluciones. Esta técnica se
31
emplea en sistemas complejos en las cuales otras técnicas son difíciles o imposibles de
aplicar.
Este método puede ser utilizado para describir cualquier técnica que aproxime
soluciones a problemas cuantitativos mediante el uso del muestreo estadístico.
2.3.1.- CARACTERÍSTICAS.
32
2.3.2.- APLICACIONES.
Utilizando el método de Monte Carlo para encontrar la solución, se utiliza la tabla de números
aleatorios formando parejas de dos dígitos (un valor para la abscisa y otra para la ordenada). Al
simular 200 puntos, se contabilizan aquellos puntos que se sitúan bajo la curva de la función.
Al terminar el proceso el conteo obtiene 69 que están ubicados bajo la curva, por lo que se
calcula
la la proporción 69/200 la cual da un resultado de 0.345 el cual es muy cercano a 0.333,
con un error de 0.012.
33
2.3.3.2.- Área Militar.
El mayor desarrollo del método de Monte Carlo se ha dado en el área militar, resolviendo los
siguientes tipos de problemas:
2.3.3.4.- Inventarios.
El inventario son bienes que son almacenados por una organización para ser utilizados en el
futuro. Casi todas las empresas cuentan con inventarios, los cuales representan gran cantidad
de dinero invertido. Minimizar los inventarios es una tarea crítica de cualquier administración
por lo que ha sido objeto de estudio durante muchos años, para minimizar los costos de
mantenimiento de un artículo en el inventario. Los costos de inventarios más representativos
son: conservación, pedido, faltante, y de adquisición.
Los costos de conservar o mantener un artículo están asociados a la tenencia física, en los
cuales se engloban los de almacenaje, seguros, robo, obsolescencia y el costo de capital sin
movimiento. El costo de conservación es uno de los costos más representativos del inventario.
El costo de pedido involucra los gastos asociados en el proceso de administrar las requisiciones
y órdenes de compra, envíos y transporte.
El costo de faltante es aquel que se incurre cuando el artículo requerido no está disponible.
Aquí se engloba la ganancia perdida y el costo de paro de la producción. Este costo es uno de
los más difíciles de estimar debido a su complejidad.
34
método de Monte Carlo para la realización de una aproximación numérica al problema del
inventario.
35
PROBLEMAS
= 9 + 13
4 9 = 4
= 9 + 13
8 9 = 4
= 9 + 13
16 9 = 4
= 7 + 21
64 9 = 7
0.234 0.456 0.678 0.789 0.982 0.123 0.345 0.456 0.479 0.895
0.907 0.002 0.345 0.789 0.897 0.951 0.234 0.380 0.404 0.678
0.800 0.963 0.255 0.607 0.045 0.783 0.405 0.899 0.277 0.341
0.456 0.234 0.214 0.897 0.234 0.567 0.787 0.342 0.455 0.657
0.989 0.001 0.998 0.343 0.456 0.651 0.725 0.543 0.739 0.346
0.881 0.101 0.305 0.232 0.777 0.238 0.223 0.534 0.446 0.650
2.6.- Simule el tiempo de proceso de 200 piezas considerando que el tiempo de proceso de
una pieza sigue la función de probabilidad:
i
# 0 ≤ i ≤ 5
50 E
.i
= j10 − i
# 10 ≤ i ≤ 30
50
36
3
Generación de variables aleatorias
Una variable aleatoria es una variable cuyo valor depende del resultado de un
experimento aleatorio. Las variables aleatorias discretas toman un conjunto de valores
finitos de valores, los cuales son enteros no negativos (usualmente utilizados para
conteo).
37
distribuciones discretas generalmente se utilizan en la práctica como resultado de
redondear medidas continuas basada en una escala discreta.
.i
= )1 − )
k
i
= )1 − )
1 − )
= μ =
)
Y varianza igual a:
1 − )
m = n = =
) )
% = 1 − )
k
o,%
i =
o,1 − )
o,%
38
/* Genera una variable aleatoria geometrica con parámetro q (probabilidad de fracaso) */
int geometrica(double q) {
double r;
int x ;
r=rand();
return(x);
s+i−1 u
.i
= r t ) 1 − )
k
i
s1 − )
= μ =
)
Y varianza igual a:
s1 − )
m = n = =
) )
39
)=
m
)
s= = m =
1 − )
1 −
m −
m
Si k es un entero y q = (1-p) entonces la variable aleatoria binomial negativa está dada
por:
∑u o,%
o,∏u %
/* Genera una variable aleatoria binomial negativa con parámetros q (probabilidad de fracaso) y k (total de éxitos) */
double r, tr;
int x, i ;
tr=1.0;
for(i=1;i<=k;i++) {
r=rand();
tr = tr * r;
return(x);
= μ = ,)
Y varianza igual a:
40
m = n = ,)1 − )
,=
− m
− m
)=
Para generar la variable aleatoria binomial se aplica el método de rechazo en el cual se
inicia con los valores conocidos de p y n, y realiza un conteo de los n números
pseudoaleatorios, que sean menores o iguales a p.
i = 1 # % ≤ )E E
O% ?($ ($+
% ? ,
( i = i { B
i = 0 # % > )
double r ;
int x, i ;
x=0;
for(i=1;i<=n;i++) {
r=rand();
if (r <= p) x=x+1;
return(x);
41
3.2.4.- DISTRIBUCIÓN HIPERGEOMÉTRICA.
|}~ |}~
. i
= k k
|}
Donde:
0 ≤ i ≤ ")
0 ≤ , − i ≤ "1 − )
= μ = ,)
Y la varianza igual a:
"−,
m = n = ,)1 − )
r t
"−1
" = " − 1
" ) −
) =
" − 1
42
Se aplica el método de rechazo en la generación de la variable aleatoria
hipergeométrica, que involucra un proceso de n iteraciones, realizando un conteo de
los elementos pertenecientes a la clase I. En cada iteración determina a que clase
pertenece el elemento, para luego calcular la probabilidad que se utilizará en la
siguiente iteración. A continuación se presenta la lógica utilizada para el cálculo de la
variable aleatoria hipergeométrica.
/* Genera una variable aleatoria hipergeometrica con parámetros tn, ns, y p (probabilidad de éxito ) */
double r;
int x, s;
x=0;
for(i=1;i<=ns;i++) {
r = rand();
else s=0;
tn = tn – 1;
return(x);
k
. i
= $
i!
Donde x=0,1,2,… y >0
Donde x ≥ 0
43
= μ =
Y la varianza igual a:
m = n =
Y el valor + = −o,%
double r, a,b;
int x, i ;
a=Math.exp(-lambda);
b=1.0D;
x=0;
do {
b = b * rand();
if (b < a) { return x; }
x = x + 1;
while (true);
44
3.3.- Variables aleatorias continuas.
1
. i
= T ? − # ≤ i ≤ ? E
0 # > i > ?
+?
= μ =
2
Y varianza igual a:
? −
m = n =
12
La variable aleatoria uniforme es obtenida al aplicar el método de la transformada
inversa dando como resultado:
i−
i
= =%
?−
Despejando x se obtiene la variable aleatoria uniforme:
45
Esta variable aleatoria uniforme es una función que es dependiente de los valores a,b,
y r, donde a corresponde al límite inferior, b el límite superior, y r es un número
pseudoaleatorio entre 0 y 1, y la variable x corresponde a un número real que tiene un
comportamiento uniforme, que puede ser implementado computacionalmente para la
simulación de números uniformes.
/* Genera una variable aleatoria uniforme con parámetros a (limite inferior), y b (límite superior) */
double r,x;
r = rand();
x = a + (b –a)*r;
return(x);
. i
= $ k
Donde: > 0 9 i ≥ 0.
Y varianza igual a:
46
1
1
m = n = i −
$ k i = =
1
=
Aplicando la transformada inversa se tiene lo siguiente:
# i
= 1 − $ k
$,+
, $# ∶ 1 − i
= $ k
Igualando a r se obtiene:
% = $ k
1
O% ?($ ($+
% $i)
,$, ( i = − r t o, %
= −o, %
double r,x;
r = rand();
x = -ex * Math.log(r) ;
return(x);
47
3.3.3.- DISTRIBUCIÓN GAMMA.
u i u
$ k
. i
=
s − 1
!
s
= μ =
Y varianza igual a:
s
m = n =
s s
= = I , $#)$,
s #$
?+ $,$:
m
s=
m
s
= = m =
m
Con la restricción de generar variables aleatorias con valores de k que no sean enteros.
48
/* Genera una variable aleatoria gamma con parámetros lambda y k */
int i;
tr=1.0D;
for(i=1;i<=k; i++) {
r = rand();
tr = tr * r;
x = (-1/lambda)* Math.log(tr);
return(x);
μ = μ
n = n
1 y
k
. i
= P Q $
z
nk √2п
Donde: -∞<x<∞
49
μk = 0, 9 nk = 1,
La función de densidad de una distribución normal estandarizada tiene como valores a
1
.'
= $
√2п
Donde: -∞<z<∞
Para convertir una distribución normal a una estandarizada se utiliza el valor de z que
es igual a:
i − μk
' =
nk
= μ = μk
Y varianza igual a:
m = n = nk
i = μ + n % − 6
50
/* Genera una variable aleatoria normal con parámetros media y desviacion) */
int i;
int k=12;
tr = 1.0D;
for (i=1;i<=k;i++) {
r = rand();
tr = tr * r;
return(x);
i
= L
i = L
51
La dificultad en este método radica en que en algunas ocasiones es muy difícil
encontrar la transformada inversa debido a que no es posible integrarse
analíticamente (ej. distribución normal o gama). Cuando se presenta este caso se
puede intentar el uso de propiedades estadísticas como el límite central o la propiedad
de convolución, como alternativas matemáticas exploratorias.
i = ? i + ⋯ ?u i u
Donde i $# -, O% ?($ ($+ % R-$ #$ + $,$ $. , )%$O $,+$.
.i
= ) . i
,$ ) ≥ 0 9 ) = 1
52
Ejemplo.
1 + i, − 1 ≤ i < 0E
.i
=
1 − i, 0 ≤ i ≤ 1
Solución:
k
1 + i
i
= 1 + i
i =
2
k
1 − i
i
= 1 + i
i + 1 − i
i = 1 −
2
1 + i
% = i
=
2
Despejando x se obtiene que:
i = √2% − 1
0 ≤ % ≤ 12
−1 ≤ i ≤ 0
1 − i
% = i
= 1 −
2
Despejando x se obtiene que:
i = 1 − 21 − %
53
Sujeta a las restricciones siguientes:
1 ≤ % ≤ 1
2
0≤i≤1
√2% − 1, 0 ≤ % ≤ 12
i=T E
1 − 21 − %
, 1 ≤ % ≤ 1
2
i
= . i
i
í
= i
∗ "
Donde f(x) es la función de probabilidad propuesta, los límites superior e inferior será
de acuerdo al intervalo calculado y la N es la cantidad total de datos analizados.
54
4
Lenguajes de Simulación
Una vez realizada el análisis del sistema a simular, es necesario describir las
especificaciones del modelo en términos de relaciones lógicas. Para el diseño de la
arquitectura del modelo se debe tomar la decisión de desarrollar el sistema mediante
un lenguaje de programación, o bien utilizar un simulador ya existente.
Los lenguajes de programación tienen sus inicios en los años cincuentas, los primeros
lenguajes de programación fueron desarrollados para propósito general, pero
enfocados a diferentes nichos de oportunidad. El lenguaje Fortran fue utilizado
ampliamente por científicos y matemáticos por su facilidad de implementar
expresiones matemáticas, en cambio, el lenguaje Cobol, tuvo su aceptación en la
administración, debido a su facilidad para el manejo de grandes volúmenes de datos.
55
4.1.2.- LENGUAJES DE PROGRAMACIÓN DE PROPÓSITO ESPECÍFICO.
• Proporcionar
roporcionar instrucciones para la generación de variables aleatorias uniformes
y no uniformes.
• Incluir instrucciones para el manejo de reloj
reloj.
• La elaboración de un informe de resultados de la simulación.
• Reportar los errores de lógica e inconsistencias encontradas.
4.1.3.1.- GPSS
SS (General Purpose Simulation System).
El lenguaje fue creado por Geoffrey Gordon a finales de la década de los cincuentas, y
tiene como objetivo principal la modelación de sistemas discretos. El sistema a simular
se debe describir utilizando una secuencia de bloques que representan las actividades,
Un grupo de transacciones fluye por esa secuencia descrita por los bloques. Es decir
transacciones y bloques son dos elementos básicos. Por ejemplo en un sistema
bancario a simular, las transacciones son las personas que acuden al banco, y van
fluyendo por todas las instalaciones, y los bloques representan una operación, tal es el
caso de la entrada o salida, la atención del cajero, o la espera.
La empresa
presa Minuteman Software (www.minutemansoftware.com)
( por más de veinte
años proporciona software para simulaci
simulación. Actualmente distribuye el producto GPSS
World™ versión 5.2.2 comercialmente y también presenta una versión académica.
académica
56
4.1.3.2.- SIMSCRIPT.
4.1.3.3.- SIMULA.
4.1.3.4.- PROMODEL.
Permite
ermite simular mediante animaciones cualquier tipo de sistemas:
s Manufactura,
anufactura,
logística, manejo de materiales, bandas de transporte, grúas viajeras, ensamble, corte,
talleres, logística, etc.
57
La empresa comercial ProModel Corporation ((www.promodel.com.mx) Promueve Prom la
utilización de la Simulación y Optimización como una respuesta rápida a los problemas
de decisión en las empresas,, generando ahorros sustanciales, a través de la simulación.
4.1.3.5.- ARENA.
El lenguaje de simulación GPSS es de gran ayuda para iniciar con esta actividad, un
lenguaje que a pesar de surgir en los años cincuentas está todavía vigente con muy
pocas modificaciones, y ha sido fuente de inspiración para otros simuladores tales
tal
como: Promodel y Arena que proporcionan ambientes más robustos y ayu ayudas
das visuales
que sustituyen la programación.
58
Este software está basado en el lenguaje GPSS que fue desarrollado por Geoffrey
Gordon en los años sesentas, y ha contribuido con importantes conceptos que hoy en
día están presentes en los principales software de simulación comerciales.
GPSS World™ está diseñado para entregar respuestas rápidas y confiables con el
menor esfuerzo. La mayoría de los sistemas pueden ser modelados de varias maneras
utilizando GPSS World™. A menudo se utiliza un subconjunto de instrucciones.
Instrucción Descripción
FUNCTION Definición de funciones.
STORAGE Definición de número de servidores.
MATRIX Definición de matrices.
EQU Asignación numérica a variables.
INITIAL Inicialización de variables.
TABLE Definición de histogramas.
VARIABLE Definición de operaciones.
FVARIABLE
59
Instrucciones para la lógica del programa.
Instrucción Descripción
SEIZE Simulación de inicio de proceso y captura del servidor.
ENTER
PREEMPT
RELEASE Simulación de fin de proceso y liberación del servidor.
LEAVE
RETURN
QUEUE Simulación de entrada de transacciones a un almacén.
ENTER
LINK
DEPART Simulación de salida de transacciones de un almacén.
ENTER
UNLINK
GENERATE Simulación de entrada de transacciones al sistema.
SPLIT
TERMINATE Simulación de salida de transacciones del sistema.
ADVANCE Simulación de diversos tipos de proceso.
ASSEMBLE
MATCH
GATHER
TRANSFER Simulación de control de flujo de transacciones
TEST
GATE
LOGIC
SELECT
LOOP
BUFFER
SAVEVALUE Bloques de operaciones aritméticas.
MSAVEVALUE
ASSIGN
INDEX
PRIORITY
TABULATE Bloques de creación de estadísticas.
Tabla 4.2.- Instrucciones de GPSS para la lógica del programa.
Instrucción Descripción
END Control de la simulación
START
SIMULATE
60
4.2.1.2.- DISEÑO Y CODIFICACIÓN DEL MODELO.
Tiempo de Tiempo de
servicio TS1 servicio TS2
Proceso 1 Proceso 2
Las variables aleatorias utilizadas en este sistema son tres: el tiempo de entre llegadas
(TE), el tiempo de servicio del proceso 1 (TS1), y el tiempo de servicio del proceso 2
(TS2). La variables aleatorias uniformes y no uniformes pueden ser generadas en GPSS,
siendo las variables aleatorias no uniformes las que requieren una particular
especificación adicional. Para simplificar primero utilizaremos variables aleatorias
uniformes. La variable aleatoria del tiempo entre llegadas, es descrita dentro del
bloque GENERATE, y el tiempo de servicio de cada proceso es descrita en el bloque
ADVANCE.
Simulación de n transacciones.
Para simular un sistema que lleve a cabo n transacciones atendidas, se utiliza como
medida de control de la simulación a las instrucciones TERMINATE y START. En la
instrucción TERMINATE se utiliza el operando A, para representar la cantidad que se
tiene que decrementar del contador de finalización inicializado con la instrucción
START. EL siguiente ejemplo muestra la aplicación de este concepto, tomando como
61
base un modelo con características similares al visto en el anterior diagrama de
bloques.
En este modelo considera que la capacidad de lavado y secado es infinita debido a que no se tiene definida la capacidad en el
servicio de lavado y secado, siendo atendidos los vehículos sin tener que hacer cola, debido a que existe un número infinito de
espacio y servidores para lavar y secar. El reporte de resultados de la simulación arroja información de una atención “ideal” como
una medida exploratoria inicial.
62
Para llevar a cabo la simulación de 100 vehículos atendidos es necesario el uso de la
instrucción de control START 100. El operando 100 inicializa el contador de finalización
en 100, el cual se irá decrementando en 1 cada vez que una transacción pase por el
bloque TERMINATE 1.
Código GPSS.
ADVANCE 5,2 ; Simula el proceso de lavado exterior con un tiempo de servicio de U(5,2)
ADVANCE 6,3 ;Simula el proceso de secado exterior con un tiempo de servicio de U(6,3)
START 100 ;Inicia el proceso de simulación de 100 vehículos atendidos iniciando el contador de finalización igual a 100.
63
Diagrama de bloques para un lavado de autos (100 vehiculos atendidos) Capacidad: 2 Lava, 6 Seca
GENERATE 15,5
TERMINATE 1
En el diagrama de bloques se representa la captura del servidor por medio del bloque
ENTER, y la liberación del servidor con el bloque LEAVE. Es evidente que para liberar
un servidor (espacio) es necesario que exista previamente su captura del mismo por
medio del ENTER. Pero es conveniente subrayar, que cuando se termina de lavar un
vehículo, si existe un espacio disponible para ser secado se podrá mover, de lo
contrario seguirá esperando el tiempo necesario, hasta que exista un espacio
disponible para el secado (como se muestra en la lógica), y mientras tanto el servidor
que lavó el vehículo estará de ocioso.
64
Código GPSS.
ADVANCE 5,2 ; Simula el proceso de lavado exterior con un tiempo de servicio de U(5,2)
ADVANCE 6,3 ;Simula el proceso de secado exterior con un tiempo de servicio de U(6,3)
START 100 ;Inicia el proceso de simulación de 100 vehiculos atendidos iniciando el contador de finalización igual a 100.
Solución: Para modelar este sistema es preciso determinar dos secuencias de bloques,
la primera designada para simular los vehículos, y la segunda para simular el
funcionamiento de un reloj para controlar el periodo simulado.
65
Diagrama de bloques de un lavado de autos (jornada de 8 horas) Capacidad: 2 Lava, 6 Seca
GENERATE 15,5
TERMINATE
Figura 4.4.- Diagrama de bloques para un lavado de autos. Simula jornada de 8 horas
66
Código GPSS.
ADVANCE 5,2 ; Simula el proceso de lavado exterior con un tiempo de servicio de U(5,2)
ADVANCE 6,3 ;Simula el proceso de secado exterior con un tiempo de servicio de U(6,3)
Una vez realizada la simulación, arroja un reporte de resultados con estadísticas para
conocer el comportamiento del modelo.
Una línea de espera, también conocida usualmente como una cola, es modelada en
GPSS por dos instrucciones: QUEUE y DEPART para la delimitación física de la cola.
Estas instrucciones únicamente generan una estadística del comportamiento de la
67
línea de espera, y no participan en la modificación de su comportamiento. El reporte
de resultados presenta una estadística de las colas definidas, proporcionado datos
tales como:
Estos datos sirven para detectar los tiempos de un proceso, cuellos de botella al
proporcionar un servicio, y ayuda en la formulación de experimentos para la
optimización de los servicios.
Una transacción al fluir por el sistema tendrá que esperar cuando tenga que hacer
frente a un servicio limitado. Estos servicios simulados por las instrucciones ENTER y
LEAVE, o las instrucciones SEIZE y RELEASE, se ven detenidas formando una línea de
espera, que el diseñador del modelo debe de representar para conocer a fondo lo que
está sucediendo en este trayecto. Conocer los tiempos de recorrido de las
transacciones por una parte del sistema también se pueden modelar con el QUEUE y
DEPART.
Diagrama de bloques de un lavado de autos utilizando QUEUE y DEPART (100 AUTOS ATENDIDOS)
Figura 4.6.- Diagrama de bloques para un lavado de autos. Incluye Queue y Depart.
68
CÓDIGO GPSS.
GENERATE 15,5
QUEUE 15,5
DEPART ESTANCIA,1
TERMINATE 1
START 100
La sección “QUEUE” proporciona los datos estadísticos de todas las colas definidas en
el modelo, presentando esta información en una matriz, en la cual los renglones son
las colas definidas en el programa, y las columnas son los datos estadísticos
recopilados en la simulación efectuada al momento de realizar la corrida.
Datos estadísticos.
# Columna Significado
(inglés)
1 QUEUE Nombre o número de la cola (definida con las instrucciones QUEUE y DEPART).
2 MAX Contenido máximo de la cola durante el periodo de simulación.
3 CONT Contenido de la cola al finalizar la simulación.
4 ENTRY Contador TOTAL de transacciones que pasaron por la cola.
5 ENTRY(0) Contador de transacciones que no tuvieron que hacer cola.
6 AVE. CONT. Transacciones promedio que tuvieron que esperar en la cola.
7 AVE. TIME Tiempo promedio que las transacciones tuvieron que esperar en la cola.
8 AVE (-0) Tiempo promedio que las transacciones tuvieron que esperar en la cola, no se consideran aquellas
transacciones que no tuvieron que esperar.
9 RETRY Número de transacciones que esperan a que se cumpla una condición específica.
69
Ejemplo: Diseñar un modelo para simular el funcionamiento de un lavado de
automóviles en el cual se realizan dos procesos en serie: lavado exterior, y secado
exterior. El tiempo entre llegadas de los vehículos tiene un comportamiento uniforme
con una media de 15 ± 5 minutos. El tiempo de servicio de lavado exterior tiene un
comportamiento uniforme con una media de 5 ± 2 minutos, y se tienen 2 espacios
para lavar de manera simultánea. El tiempo de secado exterior es de 6 ± 3 minutos, y
se cuentan con 6 espacios para secado de forma simultánea. Se desea simular una
jornada de 8 horas de trabajo continuo. No se cuenta con espacio entre el área de
lavado y el área de secado. Se desea conocer la cantidad de espacios promedio en
espera para entrar a la sección de lavado, y el tiempo promedio que un vehículo tarda
en todo el proceso.
70
Diagrama de bloques de un lavado de autos (jornada de 8 horas) Capacidad: 2 Lava, 6 Seca
GENERATE 15,5
QUEUE ESTANCIA,1
QUEUE ELAVAR,1
ENTER
SECA,2
DEPART ESTANCIA,1
Código GPSS.
ADVANCE 5,2 ; Simula el proceso de lavado exterior con un tiempo de servicio de U(5,2)
71
LEAVE LAVA,1 ;Libera un espacio de lavado
ADVANCE 6,3 ;Simula el proceso de secado exterior con un tiempo de servicio de U(6,3)
DEPART ESTANCIA,1 ;Sale de la espera de lavado y secado (finaliza los dos procesos)
Datos estadísticos.
# Columna Significado
(inglés)
1 STORAGE Nombre del servicio.
2 CAP Capacidad máxima del servicio. (definida con la instrucción STORAGE).
3 REM Número de servidores disponibles al finalizar la simulación.
4 MIN Número mínimo de servidores utilizados en toda la simulación.
5 MAX Número máximo de servidores utilizados en toda la simulación.
6 ENTRIES Total de transacciones atendidas por los servidores durante toda la simulación.
7 AVL Disponibilidad del servicio al finalizar la simulación (1-disponible, 0-no disponible).
8 AVE.C Tiempo promedio de servicio.
9 UTIL Porcentaje de utilización del servicio durante toda la simulación.
10 RETRY Transacciones en espera de una condición específica.
11 DELAY Transacciones en espera.
Estos datos estadísticos son utilizados para tomar decisiones relativas a la capacidad
instalada y sus efectos colaterales en la formación de líneas de espera. El estudio de
diversos escenarios con distintas capacidades, obligan a la experimentación cuyos
resultados permiten al analista la determinación de la cantidad óptima de servidores,
sujeta a las restricciones propias del modelo.
72
Al ejecutar la primera simulación del modelo, el reporte de resultados muestra al inicio
la información del tiempo de la simulación. Iniciando con el reloj en cero, y finalizando
el reloj en 480 (480 minutos). También indica la cantidad de instrucciones tipo bloque
(no contabiliza las definiciones, ni las instrucciones de control. La cantidad definidas de
instalaciones (no se utiliza ninguna) y por último la cantidad de servicios simultáneos
(storage).
La sección “QUEUE” muestra los datos estadísticos de las dos líneas de espera
definidas (ESTANCIA y ELAVAR). La cola ESTANCIA proporciona la información de la
estancia en las instalaciones. Se muestra que el tiempo promedio de esa estancia es de
casi 11 minutos. La cola ELAVAR muestra que ningún vehículo tuvo que esperar para
entrar al proceso de lavado. También se muestra que entraron 31 vehículos al sistema.
En el servicio de secado que cuenta con una capacidad de seis de manera simultánea,
también los datos muestran una capacidad excedente, debido a que únicamente la
utilización fue de 6.2%, y máximo estuvo ocupado 1 a la vez.
Esta primera corrida del modelo, pone de manifiesto la situación en la que trabaja este
sistema, viendo claramente que se puede optimizar, modificando la cantidad de
servidores, ahorrando así costos, o bien abre la posibilidad de nuevos servicios que
73
puede proporcionar con la misma cantidad de trabajadores. Si se modifica la capacidad
instalada. (lava=1, seca = 1) en las instrucciones STORAGE, al ejecutar el modelo, se
muestran los resultados siguientes:
GPSS World proporciona una librería PLUS que contiene funciones prefinidas de las
principales distribuciones teóricas, ahorrando al programador la implementación de
estos generadores. El programador tendrá que implementar aquellos generadores
para distribuciones empíricas haciendo uso de la instrucción FUNCTION.
74
Generadores disponibles en la librería PLUS de GPSS.
Distribución Sintaxis
Beta REAL=BETA(STREAM,MIN,MAX,SHAPE1,SHAPE2)
Binomial ENTERO=BINOMIAL(STREAM,TRIALCOUNT,PROBABILITY).
Binomial Negativa ENTERO=NEGBINOM(STREAM,SUCCESSCOUNT,PROBABILITY).
Exponencial REAL=EXPONENTIAL(STREAM,LOCATE,SCALE).
Gamma REAL=GAMMA(STREAM,LOCATE,SCALE,SHAPE).
Geométrica ENTERO=GEOMETRIC(STREAM,PROBABILITY).
Laplace REAL=LAPLACE(STREAM,LOCATE,SCALE).
LogLaplace REAL=LOGLAPLACE(STREAM,LOCATE,SCALE,SHAPE).
LogLogistica REAL=LOGLOGIS(STREAM,LOCATE,SCALE,SHAPE).
Logistica REAL=LOGISTIC(STREAM,LOCATE,SCALE).
LogNormal REAL=LOGNORMAL(STREAM,LOCATE,SCALE,SHAPE).
Normal REAL=NORMAL(STREAM,MEAN,STDDEV).
Normal inversa REAL=INVGAUSS(STREAM,LOCATE,SCALE,SHAPE).
Pareto REAL=PARETO(STREAM,LOCATE,SCALE).
Pearson tipo V REAL=PEARSON5(STREAM,LOCATE,SCALE,SHAPE).
Pearson tipo VI REAL=PEARSON6(STREAM,LOCATE,SCALE,SHAPE1,SHAPE2).
Poisson ENTERO=POISSON(STREAM,MEAN).
Triangular REAL=TRIANGULAR(STREAM,MIN,MAX,MODE).
Uniforme REAL=UNIFORM(STREAM,MIN,MAX).
Uniforme Discreta ENTERO=DUNIFORM(STREAM,MIN,MAX).
Valor extremo A REAL=EXTVALA(STREAM,LOCATE,SCALE).
Valor extremo B REAL=EXTVALB(STREAM,LOCATE,SCALE).
Weibull REAL=WEIBULL(STREAM,LOCATE,SCALE,SHAPE).
Weibull inversa REAL=INVWEIBULL(gen,LOCATE,SCALE,SHAPE).
ADVANCE Normal1,24,4
Para simular el tiempo entre llegadas de componentes a ser manufacturados que tiene
GENERATE Exponential1,0,30
75
El tiempo entre llegadas es calculado utilizando la función predefinida EXPONENTIAL la
cual utiliza 3 argumentos: STREAM (El número de generador uniforme a utilizar),
LOCATE (desplazamiento), y SCALE (expande o contrae la distribución).
Para simular el tiempo de servicio de un proceso que tiene una distribución dada por:
Frecuencia 0.05 0.13 0.16 0.22 0.29 0.15
Tiempo en 10 14 21 32 38 45
minutos
Una vez definida la función se puede utilizar desde la lógica del programa haciendo uso
de la instrucción ADVANCE.
ADVANCE FN$PROCESO
Cada vez que llegue una transacción a este bloque se calculará un tiempo de servicio
basado en la función PROCESO, y realizará el retardo correspondiente al tiempo
calculado. Para hacer referencia a la función se utiliza en el parámetro A de advance el
prefijo FN$ seguido del nombre de la función definida (PROCESO).
Las transacciones siguen un flujo determinado por la lógica del programa. Esta lógica
hasta el momento en los ejemplos vistos, ha sido secuencial, pero en ocasiones es
necesario diseñar flujos diferentes dependiendo de ciertas condiciones. Para cambiar
el flujo dentro del programa existen instrucciones que transfieren las transacciones a
puntos específicos, uno de ellos es la instrucción TRANSFER.
76
La inspección como pieza clave en el aseguramiento de la calidad.
Se utiliza para cambiar el flujo que siguen las transacciones dada una condición
determinada. Esta instrucción de bloque cuenta con nueve modos diferentes de
operación (incondicional, fraccional, both, all, pick, función, parámetro, subrutina,
simultáneo).
Modo INCONDICIONAL. Es utilizado cuando todas las transacciones que lleguen a este
bloque son transferidas incondicionalmente a otra parte del programa. Para utilizarlo
se utiliza únicamente el operando B para especificar la etiqueta hacia donde se deben
dirigir todas las transacciones.
….
….
77
Modo FRACCIONAL. Se utiliza en casos de que se conozca que un porcentaje de
transacciones sigue un camino y el resto sigue otro camino.
….
….
….
….
78
…
Modo ALL. Este modo es la generalización del modo BOTH, en el cual se permiten la
especificación de más de 2 destinos, con la restricción que estos destinos estén
espaciados de manera idéntica en el modelo. El operando A se escribe la palabra ALL,
en el operando B se describe el primer destino a probar, si es rechazado, calcula con el
operando D, cada D instrucciones a partir del bloque B, hasta llegar al bloque C. Es
decir primero prueba el bloque B si es rechazado prueba el bloque B+D, si es
rechazado prueba el bloque B+2D y asi sucesivamente hasta llegar al bloque C.
Ejemplo:
….
ADVANCE 5,2
RELEASE OPERA1
TRANSFER,FIN
ADVANCE 5,2
RELEASE OPERA2
TRANSFER,FIN
ADVANCE 5,2
RELEASE OPERA3
TRANSFER,FIN
FIN TERMINATE
79
Modo PICK. Este modo es utilizado cuando se desea enviar la transacción activa a un
bloque seleccionado de manera aleatoria, dado un rango de bloques. En el operando A
se escribe la palabra PICK, y el operando B y C son usados para especificar el rango de
los bloques a ser candidatos para su selección.
….
ADVANCE 3,1
ADVANCE 4,1
….
En este ejemplo se describen cuatro bloques ADVANCE que son candidatos a ser
seleccionados cuando la transacción activa llegue al bloque TRANSFER. Si
aleatoriamente se selecciona al segundo bloque, se transfiere la transacción y ejecuta
del segundo bloque en adelante. Si aleatoriamente selecciona el primero, pues
ejecutará posteriormente las siguientes instrucciones.
TRANSFER FN,LUGAR,3 ;TRANSFIERE LA TRANSACCION HACIA EL NO. DE BLOQUE DADO POR : LUGAR()+3
80
Modo PARÁMETRO. El destino de la transacción activa se calcula utilizando un
parámetro y un incremento dado. Para usar este modo el operando A debe contener la
letra P, el operando B especifica el parámetro a utilizarse, y el operando C describe el
incremento utilizado en el cálculo (opcional).
TRANSFER P,PAR1,2 ;TRANSFIERE LA TRANSACCION HACIA EL NO. DE BLOQUE DADO POR : PAR1 +2
Para el uso de este modo, es necesario que el operando A contenga la palabra SBR, el
operando B describe la etiqueta del bloque destino, y el operando C es un parámetro
en el cual se almacenará el número del bloque de retorno (este operando es opcional).
TRANSFER SBR,SUBR1,PARAM ; Transfiere las transacciones a la subrutina sbr1 y guarda este bloque en PARAM
….
TRANSFER P,PARAM ; FINALIZA LA SUBRUTINA SBR1, Y regresa la transacción al sgte bloque de PARAM
81
Modo SIMULTÁNEO. El modo simultáneo transfiere la transacción activa hacia uno de
dos destinos especificados en los operandos B y C, seleccionando el destino por medio
del contenido de un indicador de retraso especificado en el operando D. En el
operando A se escribe la palabra SIM.
El indicador de retraso tiene dos valores posibles prendido (set) o apagado (reset). El
indicador de retraso de una transacción es prendido cuando una transacción es
rechazada por un bloque; y se quedará prendido hasta que la transacción entre al
modo simultáneo del transfer. Después del transfer el indicador de retraso se apagará.
TRANSFER SIM,NORET,RET ; Transfiere las transacciones a los bloques destino NORET O RET…
….
GATE 0 A,B
Operaciones permitidas.
• U (ocupada),
• NU (desocupada).
82
Condicionado a servidores simultáneos (almacenamientos). Los servidores
simultáneos declarados con la instrucción STORAGE y en combinación con las
instrucciones ENTER y LEAVE permite analizar su estado:
• SF (¿está lleno?).
• SNF (¿no está lleno?).
• SE (¿está vacío?).
• SNE (¿no está vacío?).
Condicionado a un valor lógico. Permite el control del flujo de las transacciones dado
ciertas condiciones independientes de las entidades, es decir políticas establecidas
para permitir o negar el acceso. Para usarse se debe apoyar en otra instrucción LOGIC
que abrirá o cerrará el acceso.
• LS (¿está prendido?),
• LR (¿está apagado?).
83
4.3.2.- PROBLEMAS CON SISTEMAS DE INVENTARIO.
84
Modelo I.- EOQ (Economic Order Quantity).-
Quantity). Determina el tamaño óptimo de pedido,
considerando costos incurridos. Presenta 2 variantes: Con faltantes y sin faltantes.
faltantes
Ell modelo EOQ que no permite faltantes parte de los supuestos siguientes: Demanda
constante (d), no permite faltantes, costo de mantener el inventario (Cm), costo de
pedir (Cp), costo de adquisición (Cu) tiempo de entrega igual a cero (no existe
demoras). Laa ecuación del costo en un periodo (t1) es:
+ ®
®
= 8- ∗ ® + 8) + 8 ∗
8®
2
El número total del períodos
odos y el tiempo t están en función de la demanda (D) y la
cantidad de inventario (Q).
<
"ú$%
$%
+
+( $ )$%
# " =
®
®
¢ $)
+ =
<
Calculando el costo total por unidad de tiempo se tiene que:
8
#+
+
+( )
%
)
% -, $ + $)
8¢®
= " ∗ 8®
85
®
< y< z ∗ ®
8¢®
= °8- ∗ ® + 8) + 8 ∗ ±
® 2
< ®
8¢®
= 8- ∗ < + 8) ∗ r t + 8 ∗ r t
® 2
Para encontrar el Q óptimo será necesario minimizar el costo total, haciendo uso del
cálculo diferencial
8¢®
=0
®
< 1
−8) r t + r t 8 = 0
® 2
2 ∗ < ∗ 8)
® = I
8
En el modelo EOQ que si permite faltantes, la ecuación del costo de un periodo está en
función de Q (cantidad a pedir) y S (Faltante permitido), incorporando el costo por
faltantes (Cf).
+ ²k +
8®,
= 8- ∗ ® + 8) + 8 ∗ r t + 8. ∗ r t
2 2
Por medio de semejanza de triángulos se encuentran los valores de Imax, t1, t2.
²k = ® −
®−
+ =
<
+ =
<
86
Sustituyendo en C(Q,S), los valores encontrados la ecuación del costo de un periodo
queda de la siguiente forma:
® −
8®,
= 8- ∗ ® + 8) + 8 ∗ P Q + 8. ∗ P Q
2< 2<
<
8
#+
+
+( )
% -, $ + $)
8¢®,
= r t ∗ 8®,
< ® −
8¢ ®, = r t ³8- ∗ ® + 8) + 8 ∗ P Q + 8. ∗ P Q´
® 2< 2<
< ® −
8¢®,
= ³8- ∗ < + 8) r t + 8 ∗ P Q + 8. ∗ P Q´
® 2® 2®
Una vez obtenida la ecuación se calcula el mínimo costo, es posible derivar con
respecto a Q, y con respecto a S, obteniendo dos ecuaciones:
8¢®,
=0
®
−2 ∗ < ∗ 8) + 8 ∗ ® − 8 ∗ + 8. ∗ = 0
8¢®,
=0
−8 ∗ ® + 8 ∗ + 8. ∗ = 0
2 ∗ < ∗ 8)8. + 8
®∗ = I
8. ∗ 8
2 ∗ < ∗ 8) ∗ 8
∗ = I
8. ∗ 8. + 8
87
Modelo II.- LEP (Lot Economic Production).-
Production). También conocido como el modelo EPQ
(Economic Production Quantity) fue desarrollado por E. W. Taft en 1918, para conocer
la cantidad óptima de producción, la cual minimiza los costos asociados
asociados.. Este modelo
es utilizado
tilizado cuando la producción de los productos está a cargo de la misma empresa,
produciendo hasta llegar a un nivel máximo de inventarios, suspende la producción
hasta que la demanda agote las existencias,
existencias inicia de nuevo la producción.
+ $)
$)
+
+( $( )$%
+ = + + +
Donde:
+ = + $)
$ )%
-
)%
- ó,, ℎ#+ (($p% ( ²k
+ + +
∗ ²k
8 ®
= 8- ∗ ® + 8
+ 8 ∗ r t
2
<
²k = ® ∗ r1 − t
L
®
+ + + = r t
<
88
Sustituyendo en C(Q) se tiene:
® <
y< z ∗ P® ∗ y1 − L zQ
· º
8 ®
= 8- ∗ ® + 8
+ 8 ∗ ¶ ¹
2
µ ¸
<
8
#+
+
+( )
% -, $ + $)
8¢®
= r t ∗ 8®
<
P® ∗ y1 − L zQ
< · º
8¢®
= 8- ∗ < + 8
∗ r t + 8 ∗ ¶ ¹
® 2
µ ¸
8¢®
=0
®
−8
∗ < 8 <
+ r t ∗ r1 − t = 0
® 2 L
2 ∗ < ∗ 8
®∗ = I
<
8 ∗ 1 − L
89
IIb- LEP Si permite faltantes.
Donde:
+7 = + $) $, R-$ #$ )% - $ ( # )% - + # .(+,+$#
+ + +
∗ ²k +@ + +7
∗
8 ®,
= 8- ∗ ® + 8
+ 8 ∗ r t + 8. ∗ P Q
2 2
<
²k = r® ∗ r1 − t − t
L
+ = G¾
» ²k
+ = +@ = +7 =
¼½
1 1
+ + + = ²k ∗ r + t
< L − <
< 1 1
+ + + = r® ∗ r1 − t − t ∗ r + t
L < L − <
1 1
+@ + +7 = ∗ r + t
< L − <
90
El costo de mantener el inventario es:
+ + +
∗ ²k 8 1 1
8 ∗ r t = r t ∗ ³²k ∗ r + t´ ∗ ²k
2 2 < L − <
8 1 1
= r t ∗ ²k
∗r + t
2 < L − <
8 < 1 1
=r t ∗ r® ∗ r1 − t − t ∗ r + t
2 L < L − <
1 1
∗ r +
+@ + +7
∗ < L − <
t
8. ∗ P Q = 8. ∗ ¿ À
2 2
8. ∗ 1 1
= P Q∗r + t
2 < L − <
8 < 1 1
8®,
= 8- ∗ ® + 8
+ r t ∗ r® ∗ r1 − t − t ∗ r + t +
2 L < L − <
8. ∗ 1 1
P Q∗r + t
2 < L − <
<
8¢®,
= r t ∗ 8®,
< 8 <
1
8¢®,
= 8- ∗ < + 8
∗ r t + r t ∗ r® ∗ r1 − t − t ∗ ° ±
® 2∗® L <
1−L
8. ∗ 1
+P Q∗° ±
2∗® <
1−L
8¢®,
=0
®
91
−8
∗ < 8 < 8 ∗ 1 8. ∗ 1
+ r t ∗ r1 − t − P Q ∗ ° ± − P Q ∗ ° ±=0
® 2 L 2 ∗ ® < 2 ∗ ® <
1−L 1−L
2 ∗ 8
∗ < 8 + 8.
®∗ = I I
< 8.
8 ∗ 1 − L
8¢®,
=0
8 ∗ 8. ∗
−8 + + =0
< <
® ∗ 1 − L
® ∗ 1 − L
2 ∗ 8
∗ < < 8
∗ = I I1 −
I
8. L 8 + 8.
Modelo III.- Probabilístico (EOQ con demanda variable).- Este modelo está basado en
una demanda variable que tiene un comportamiento normal. El modelo es una
adaptación del modelo EOQ, en la cual la Demanda (D) está dada por los parámetros
estadísticos media (µ) y desviación estándar (σ) que siguen una distribución normal :
92
2 ∗ μ ∗ 8)
8,+ )$ % ® = I
8
1
Á=
<
y® z
93
4.3.2.2.- EJEMPLO DE SIMULACIÓN DE UN MODELO DE INVENTARIO BASADO EN
PUNTO DE RE ORDEN.
Se desea simular un sistema de inventario por un periodo de 100 dias. Este sistema
tiene una política con un punto de reorden igual a 600 unidades y una cantidad a
ordenar de 500 unidades. El inventario inicial es de 700 unidades. Se tiene una
demanda diaria con un comportamiento uniformemente distribuido entre 40 y 63
unidades. El tiempo de entrega de la orden es de una semana (5 dias).
Solución:
Las variables que son utilizadas deben definirse previamente, las cuales deben
almacenar los siguientes datos:
• Inventario. (Stock)
• Demanda diaria. (Demanda)
• Punto de reorden. (Point)
• Cantidad a ordenar. (EOQ)
La instrucción INITIAL se utiliza para inicializar variables que serán utilizadas dentro de
la lógica del programa. Es utilizado para definir variables globales, las cuales se utilizan
en combinación con las instrucciones SAVEVALUE (actualiza la variable), y la
instrucción TEST (Compara el valor de variables).
INITIAL X$DEMANDA,0 ; Se inicializa la demanda diaria = 0 unidades. (se calculará cada dia en el proceso)
94
OPERACIONES ARITMÉTICAS REALIZADAS EN LA LÓGICA DEL PROGRAMA.
Tabla 4.25.-Código GPSS que muestra la instrucción SAVEVALUE para el cálculo de la demanda .
Una vez que se tiene el valor de la demanda diaria se debe disminuir el inventario
existente, utilizando la siguiente instrucción:
Tabla 4.26.-Código GPSS que muestra la instrucción SAVEVALUE para disminuir el stock .
Del mismo modo al momento que el pedido realizado llegue, es necesario actualizar el
inventario existente, haciendo de la instrucción siguiente:
Tabla 4.27.-Código GPSS que muestra la instrucción SAVEVALUE para incrementar el stock .
95
Condicionante para disminuir el inventario existente.
SI la política es de espera, se puede simular haciendo uso de una instrucción TEST para
asegurarse de esa espera.
TEST GE X$STOCK,X$DEMANDA
Tabla 4.28.-Código GPSS que muestra la instrucción TEST para comparar el stock vs demanda.
96
MODELADO DEL SISTEMA DE INVENTARIOS.
DEMANDA = DUNIFORM(1,40,63)
STOCK < POINT F
F
v STOCK >=
DEMANDA
ADVANCE 5
TERMINATE 1
TERMINATE
Código GPSS.
OTRA TEST L X$STOCK,X$POINT ; Si el STOCK < POINT Entonces avanza, de lo contrario espera a que se cumpla la condición
SAVEVALUE STOCK+,X$EOQ ;Recibe el pedido y actualiza el inventario existente STOCK = STOCK + EOQ
97
TRANSFER ,OTRA ;Repite el ciclo (se transfiere la transacción al bloque etiquetado con OTRA
TERMINATE
TEST GE X$STOCK,X$DEMANDA ;Si el STOCK > DEMANDA Entonces avanza, de lo contrario espera a que se cumpla
Al finalizar los 100 dias simulados se tiene un inventario final de 614 unidades, y la
última demanda diaria (la del día 100) fue de 50 unidades.
Esta instrucción permite definir e inicializar una tabla para almacenar una distribución
de frecuencias (histograma). Esta instrucción tiene la siguiente sintaxis:
Tabla 4.30.-Código GPSS para definir la tabla INVENTARIO usando la instrucción TABLE.
98
El nombre de la tabla es INVENTARIO, en el operando A se especifica el dato a tabular,
el operando B es el límite superior del primer intervalo, el operando C es el tamaño del
intervalo, y el operando D es la cantidad de intervalos.
Tabla 4.31.-Código GPSS para definir la tabla VENTAS usando la instrucción TABLE.
Una vez definida la tabla haciendo uso de la instrucción TABLE, es posible con la
instrucción TABULATE registrar los datos. La instrucción TABULATE tiene la siguiente
sintaxis:
TABULATE A,B
Tabla 4.32.-Código GPSS para tabular datos en la tabla INVENTARIO definida previamente.
Tabla 4.33.-Código GPSS para tabular datos en la tabla VENTAS definida previamente.
99
Código GPSS (incluye histogramas).
OTRA TEST L X$STOCK,X$POINT ; Si el STOCK < POINT Entonces avanza, de lo contrario espera a que se cumpla la condición
SAVEVALUE STOCK+,X$EOQ ;Recibe el pedido y actualiza el inventario existente STOCK = STOCK + EOQ
TRANSFER ,OTRA ;Repite el ciclo (se transfiere la transacción al bloque etiquetado con OTRA
TERMINATE
TEST GE X$STOCK,X$DEMANDA ;Si el STOCK > DEMANDA Entonces avanza, de lo contrario espera a que se cumpla
100
En el reporte de resultados aparece una sección en la cual presenta las dos tablas
definidas: INVENTARIO y VENTAS con su datos respectivos.
101
4.4.- VALIDACIÓN DE UN SIMULADOR.
Personal involucrado
102
Propósitos Descripción
Escenarios Crea alternativas de acción para conocer sus consecuencias.
Predictivos Predice resultados que serán comparados con otros métodos
predictivos.
Entrenamiento Transmite conocimientos en un ambiente controlado.
Hipótesis y teorías Generan hipótesis y explicaciones a ideas surgidas en la
experimentación.
Universos inexistentes Estudio de sistemas que no existen en la realidad.
Criterios Descripción
Validación interna Establece una estabilidad y consistencia entre las corridas del
modelo.
Validación superficial Impresiones subjetivas de aspectos relevantes de la realidad.
Validación variable-parámetro Análisis de sensibilidad realizando comparaciones con valores
de las variables-parámetros.
Validación de eventos Establece similitudes de eventos.
Validación de hipótesis Realiza pruebas de hipótesis .
Los modelos de simulación son imitaciones aproximadas de sistemas del mundo real y
deben ser validados para asegurar la confiabilidad.
Las variables de entrada son datos que se alimentan al modelo, son predeterminadas y
proporcionadas independientemente del sistema que se modela. Las variables de
proceso. son variables utilizadas para realizar el proceso, describen el estado del
sistema en cualquier instante. Pueden estar relacionadas con otras variables. Las
variables de salida son las variables que intenta predecir el modelo, representan los
resultados de la simulación.
Si hay datos del sistema actual, estos se pueden utilizar para compararlos con los
resultados del modelo. Es lo que se conoce como validación de resultados. Los
103
resultados se deben revisar para verificar su coherencia y consistencia de acuerdo con
el funcionamiento esperado del sistema.
El análisis de sensibilidad debe realizarse para detectar que factor tiene un efecto
mayor sobre los resultados del modelo para mejorar su representación si fuera
necesario.
La verificación.
Existen varias técnicas para verificar el modelo, verificar por un experto, examinar la
lógica de los diagramas de flujo, examinar las salidas que estén dentro de rangos
razonables, prueba con varios conjuntos de datos de entrada, y todas las técnicas que
propone la ingeniería de software son aplicables en el modelo de simulación.
La validación.
104
Las metas que persigue la validación se visualizan como tácticas y estratégicas. Las
metas tácticas realizan una caracterización y minimización de la incertidumbre y los
errores dentro del modelo computacional; y las estratégicas buscan incrementar la
confianza en la capacidad cuantitativa predictiva.
La validación debe ser diseñada y conducida por personal experto en las ciencias
computacionales y experimentadores del área de estudio, estableciendo un fuerte lazo
desde la concepción del modelo, hasta la etapa de la documentación, seguido de un
análisis de fortalezas y debilidades.
La validación debe estar diseñada para captar los aspectos físicos relevantes, las
condiciones iniciales, y las condiciones de acotamiento y los datos auxiliares tales
como supuestos y la medición de los datos de entrada, y en lo posible la incorporación
de las características de las imperfecciones.
Realizar una jerarquía de las medidas experimentales que presentan un alto nivel de
dificultad computacional.
105
Procedimientos de análisis de incertidumbre para estimar la aleatoriedad y errores de
sesgo correlacionados. El uso de métodos modernos estadísticos para estimar la
aleatoriedad y errores de sesgo en las variables de entrada y de salida. Y en lo posible
conducir experimentos utilizando técnicas de diagnóstico.
Métricas de validación.
106
• Se debe depender de la incertidumbre debido a la falta de mediciones
experimentales de cantidades computacionales necesarias y la propia
incertidumbre de los parámetros experimentales.
Inferencias típicas.
Sistema
Sistema
107
En la inferencia débil no se superponen los
Caso III.- Inferencia débil – Gran extrapolación dominios de aplicación y validación. Se realiza
una gran extrapolación en términos de
direcciones de las meta-coordenadas debido
C a: Cambios recientes en la complejidad física,
o Dominio de introducción de nuevos acoplamientos físicos,
m o la introducción de acoplamientos entre
aplicación
p subsistemas o componentes del sistema.
l Extrapolación
e
j
i
d
Dominio de validación
a
d
Sistema
108
3. Cuando el valor del parámetro proviene de consideraciones externas, tales
como especificaciones de diseño o ingeniería. En esta situación, el objetivo
usual de la prueba de hipótesis es probar el cumplimiento de las
especificaciones.
PRUEBAS DE HIPÓTESIS.
La hipótesis nula, representada por H0, es la afirmación sobre una o más características
de poblaciones que al inicio se supone cierta (es decir, la creencia a priori).
109
Proceso de la prueba de hipótesis estadística
Población
Muestreo
Muestra aleatoria
La hipótesis nula conocida como H0 es el supuesto que indica que el valor del
parámetro es constante y que no sufre cambios. Es planteada generalmente con la
intención de rechazarla.
110
Errores de Tipo I y II.
Los errores que se pueden cometer al realizar una prueba de hipótesis son los
siguientes:
Una buena prueba estadística es aquella prueba en que permite tomar una decisión
con un error mínimo de error. Es decir que los valores α y β tiene valores mínimos.
Mostrando la decisiones en términos de esos errores tenemos que:
Al rechazar una hipótesis nula verdadera se incurre en el error de tipo I, mientras que
no rechazar la hipótesis nula cuando es falsa se incurre en el error de tipo II. El error de
tipo I (α) está bajo control del investigador y es establecido antes de realizar la prueba,
también se le conoce como el nivel de significancia, y el (1-α) es conocido como el nivel
de confianza o la probabilidad de que el parámetro esté dentro de este intervalo de
confianza.
El error de tipo II (β) varía con respecto a α, debido a varias causas entre las cuales se
destaca el tamaño de la muestra, la prueba estadística, el diseño elegido y la magnitud
del efecto. A (1-β) se le conoce también como la potencia, es decir la probabilidad de
no cometer el error de tipo II.
111
Estadístico de prueba.
Región de rechazo.
La región de rechazo o región crítica es aquella en que contiene valores del estadístico
de prueba en que la hipótesis nula es rechazada. Esta región depende de la
distribución de probabilidad del estadístico de prueba utilizado. El punto crítico es el
que divide la región crítica de la no crítica, y depende su valor de la distribución de
probabilidad utilizada.
112
PROCEDIMIENTO PARA REALIZAR LAPRUEBA DE HIPÓTESIS.
Paso 6.- Comparar el valor del estadístico de prueba y el valor crítico, para decidir si se
rechaza o no la hipótesis nula.
i̅ − μ
Ho:µ≤µ0 Z > Zα
K= n
,
H1:µ>µ0
√
Ho:µ≥µ0 Z > -Zα
H1:µ<µ0
Ho:µ=µ0 Z < -Zα/2 ó Z > Zα/2
H1:µ≠µ0
i̅ − μ
Ho:µ≤µ0 T > tα,n-1
¢= #
,
H1:µ>µ0
√
Ho:µ≥µ0 T < -tα,n-1
H1:µ<µ0
Ho:µ=µ0 T < -tα/2,n-1 ó T > tα/2,n-1
H1:µ≠µ0
113
Prueba de hipótesis para σ2 de una población normal.
> ,
Prueba de hipótesis Estadístico utilizado Rechazar Ho si
, − 1
#
2 2
Ho:σ ≤ σ 0
=
σ < ,
2 2
H 1: σ > σ 0
Ho: σ ≥ σ20
2
> ,
2 2
H o: σ = σ 0
2 2
H 1: σ ≠ σ 0
K > K
Prueba de hipótesis Estadístico utilizado Rechazar Ho si
) − Å
K=
Ho: π ≤ π0
ÆÅ 1 − Å
K < -K
H1: π > π0
n
Ho: π ≥ π0
K > K
Prueba de hipótesis Estadístico utilizado Rechazar Ho si
i̅ − i̅
− μ
Ho: µ1−µ2 ≤ µ0
K=
K < -K
H1: µ1−µ2 > µ0
n n
I
, + ,
Ho: µ1−µ2 ≥ µ0
Prueba de hipótesis para µ1−µ2 cuando ÇfÈ É Çff son desconocidas e iguales.
¢ > ¢,
Prueba de hipótesis Estadístico utilizado Rechazar Ho si
i̅ − i̅
− μ
Ho: µ1−µ2 ≤ µ0
¢=
1 1 ¢ < -¢,
H1: µ1−µ2 > µ0
~ Æ, + ,
Ho: µ1−µ2 ≥ µ0
¢ < -¢/, ó ¢ > ¢/,
H1: µ1−µ2 < µ0
Ho: µ1−µ2 = µ0 Donde:
~ =
Ê
Ê
H1: µ1−µ2 ≠ µ0
Ê
, = , + , − 2
114
Prueba de hipótesis para µ1−µ2 cuando ÇfÈ É Çff son desconocidas y diferentes.
¢ > ¢,
Prueba de hipótesis Estadístico utilizado Rechazar Ho si
i̅ − i̅
− μ
Ho: µ1−µ2 ≤ µ0
¢=
¢ < -¢,
H1: µ1−µ2 > µ0
# #
I +
Ho: µ1−µ2 ≥ µ0
, ,
¢ < -¢/. ó ¢ > ¢/,
H1: µ1−µ2 < µ0
Ho: µ1−µ2 = µ0
H1: µ1−µ2 ≠ µ0
# #
Donde:
, + ,
,=
# #
r t r t
, ,
· + º
, − 1 , − 1
µ ¸
¢ > ¢,
Prueba de hipótesis Estadístico utilizado Rechazar Ho si
̅
H o : µd ≤ 0
¢=
Ë √,
¢ < -¢,
H 1: µ d > 0
H o : µd ≥ 0
1
H 1 : µd ≠ 0
̅ =
i − 9
,
∑
i − 9 − ̅
Ë = I
,−1
Donde:
? = , − 1
115
Prueba de hipótesis para π −π de poblaciones binomiales.
Si tenemos dos series de valores de una variable continua obtenidas en dos muestras
independientes: X1, X2,..Xn, Y1, Y2, …., Ym, procedemos a ordenar conjuntamente todos
los valores en sentido creciente, asignándoles su rango, corrigiendo con el rango
medio los empates. Calculamos luego la suma de rangos para las observaciones de la
primera muestra SX, y la suma de rangos de la segunda muestra SY. Si los valores de la
población de la que se extrajo la muestra aleatoria de X se localizan por debajo de loa
valores de Y, entonces la muestra de X tendrá probablemente rangos más bajos, lo que
se reflejará en un valor menor de Sx del teóricamente probable.
Esta prueba nos permite comparar nuestros datos con una mediana teórica (por
ejemplo un valor publicado en un artículo). Para efectuar esta prueba se calculan las
diferencias en valor absoluto |Xi-M0| y se ordenan de menor a mayor, asignándoles su
rango (número de orden). Si hubiera dos o más diferencias con igual valor (empates),
se les asigna el rango medio (es decir que si tenemos un empate en las posiciones 2 y 3
se les asigna el valor 2.5 a ambas).
116
5
Proyecto integrador
Al llevar a cabo un estudio de simulación es necesario contar con una guía que define
las actividades a desarrollar. En el capítulo 1 se señalaron las 8 etapas que el ingeniero
debe seguir para conseguir este propósito. Si se compara con las etapas del desarrollo
de un sistema computacional, es notorio que existen actividades que en el estudio de
simulación se deben realizar una vez concluido el modelo computacional, es decir que
son actividades que un usuario realiza al momento de utilizarlo, tal como la
experimentación y la interpretación de los resultados.
117
5.1.1.- SIMULACIÓN DE MANUFACTURA DE RELOJES ELECTRÓNICOS.
La primera etapa consiste en definir el sistema que se desea simular, para realizarlo es
necesario realizar un análisis preliminar. Este análisis exploratorio tradicionalmente se
lleva a cabo realizando un recorrido por toda la empresa. Este recorrido nos muestra
todos los procesos que se realizan, y las problemáticas que se enfrentan diariamente
para realizar sus actividades operativas. La estructura organizacional es un buen inicio
para identificar al personal clave que cuenta con información valiosa para incluir en el
modelo de simulación.
Gerente
Las entrevistas a este personal, es pieza fundamental para definir el sistema y sus
interacciones con otros sistemas, y los resultados que se esperan obtener del estudio
de simulación.
Para la definición del sistema, se puede seguir con una técnica enfocada a identificar lo
siguiente:
118
Proceso Salidas
Entradas
2 1
Las entradas del sistema, están en función de las salidas identificadas del sistema. Es
decir los datos requeridos que serán procesados para proporcionar las salidas del
sistema. Las entrevistas y los recorridos muestran que todo inicia cuando el cliente
realiza una orden. Las órdenes llegan durante el transcurso del día, las cuales pasan
directamente a manufactura, y luego se empacan y son enviadas al cliente.
Identificando como variables de entrada: las los tiempos entre llegadas de las órdenes,
tamaño de la orden, los tiempos de manufactura, y los tiempos de empacado.
119
almacén
Tiempo entre
llegadas de las
Ordenes
órdenes
pendientes de
Almacén
empacar
Cantidad de
relojes por orden
Ordenes
entregadas
Manufactura Empacado
Tiempo de
manufactura
Proceso de simulación
Tiempo de
empacado
120
5.1.1.3.- RECOPILAR LOS DATOS.
La facilidad o dificultad para obtener los datos, puede influir el desarrollo y la formulación del modelo. Es importante definir con
claridad y exactitud los datos que el modelo requiere para la producción de los resultados deseados. Usualmente, los datos
requeridos se pueden obtener de registros históricos, de opiniones de expertos, o de la experimentación.
Tiempo entre llegadas de las órdenes. Una estadística realizada con datos históricos de
6 meses, muestra que tiene un promedio entre llegadas de 15 minutos con un
comportamiento exponencial.
Capacidad del almacén. Se cuenta con un almacén para almacenar los relojes
producidos en manufactura, el cual tiene una capacidad de 4000 relojes, y deberá con
contar con un inventario mínimo de 1000 relojes al iniciar el funcionamiento de la
empresa.
121
5.1.1.4.- IMPLEMENTAR EL MODELO EN LA COMPUTADORA.
Con el modelo definido, el siguiente paso es decidir el lenguaje de programación a utilizar ya sea uno de propósito general o un
paquete de propósito específico, para procesarlo en la computadora y obtener los resultados deseados.
Los relojes que son manufacturados son enviados al almacén que tiene una capacidad
de 4000 relojes, y el proceso inicia con un inventario inicial en el almacén de 1000
relojes.
122
Modelo.
GENERATE ,,,1,10
GENERATE 0.75,0.08334,1
ENTER ALMACEN,1000
ENTER ALMACEN,60
TERMINATE
TERMINATE
GENERATE 8
TERMINATE 1
Código GPSS.
TERMINATE
;--------------------------------------------------------------------------------------------------------------------------------------------
GENERATE ,,,1,10 ;Genera una transacción que realiza la carga de inventario inicial
TERMINATE
;--------------------------------------------------------------------------------------------------------------------------------------------------
Reporte de resultados.
123
Figura 5.6.- Reporte de resultados.
Una vez que se ha verificado el buen funcionamiento de estos tres segmentos, ahora
nos concentraremos en la simulación de las órdenes atendidas.
Las órdenes tienen un tiempo entre llegadas que sigue una distribución exponencial
con media de 15 minutos, y el tamaño de la orden viene dada por una distribución de
frecuencias:
Frecuencia 0.10 0.25 0.30 0.15 0.12 0.05 0.03
RELATIVA
Tamaño de 6 12 18 24 30 36 48
la orden
124
Para crear una variable aleatoria TAMANO es necesario primero calcular la distribución
de frecuencias acumulada obteniendo la siguiente tabla:
Frecuencia 0.10 0.35 0.65 0.80 0.92 0.97 1.0
ACUMULADA
Tamaño de 6 12 18 24 30 36 48
la orden
Para realizar el empacado, los relojes se tienen que retirar del almacén, si no se
encuentran en existencia entonces la orden no es atendida. El tiempo de empacado es
calculado por la variable TIEMPO que está en función de la cantidad de relojes a
empacar. TIEMPO = 0.0034 + (P1*0.0028).
125
Modelo.
GENERATE (EXPONENTIAL(1,0,0.25))
ASSIGN 1,1,TAMANO
S$ALMACEN ≥ P1
F
V
LEAVE ALMACEN,P1
atendidas
ADVANCE V$TIEMPO
TERMINATE
.10,6/.35,12/.65,18/.80,24/.92,30/.97,36/1.0,48
126
NOHAY TERMINATE ;La orden no es posible atenderse debido a que hay faltantes
TERMINATE
TERMINATE
Tabla 5.2.- Código GPSS para el diagrama de bloques de la figura 5.5 y 5.7
Reporte de resultados.
127
C
B.- Llegaron 169 órdenes, de las cuales 168 fueron procesadas y enviadas a los clientes,
y 1 orden quedó en el proceso de empacado.
D.- La línea de espera para el proceso de empacado, durante toda la simulación tuvo
máximo 3 ordenes en espera, de las 169 ordenes que llegaron al proceso de empaque
103 ordenes no tuvieron que esperar, y las ordenes que esperaron tuvieron un tiempo
de espera promedio de 0.070 horas (0.070 horas x 60 minutos=4.2 minutos).
128
5.1.1.5.- VALIDAR EL MODELO.
En esta etapa es posible detallar deficiencias en la formulación del modelo o en los datos alimentados al modelo, siendo las
formas más comunes de validar el modelo las siguientes:
4. La comprobación de falla del modelo de simulación al utilizar datos que hacen fallar al sistema real.
5. La aceptación y confianza en el modelo de la persona que hará uso de los resultados que arroje el experimento de
simulación.
Los modelos de simulación son imitaciones aproximadas de sistemas del mundo real y
deben ser validados para asegurar la confiabilidad.
En lo relativo a la exactitud con que se predicen las variables aleatorias, como los
tiempos entre llegadas de las ordenes, los tiempos de producción, y los tiempos de
empaque, las variables aleatorias utilizadas deben ser revisadas debido a ajustes en
las maquinarias y mejoras en los instructivos de trabajo que impactan
significativamente con respecto a los datos históricos con los cuales se contaba en ese
momento.
129
El gerente general propone incluir en el modelo, variables aleatorias relacionadas a los
procesos de mantenimiento de maquinaria, actualizar las variables aleatorias
utilizadas, con los comportamientos actuales, y una política de control de inventarios.
5.1.1.8.- DOCUMENTAR.
Son requeridos dos tipos de documentación para hacer un mejor uso del modelo de simulación. La primera es la documentación
técnica y la segunda documentación es el manual del usuario para facilitar la interacción y el uso del modelo desarrollado.
130
concepción hasta su implementación, que permiten asegurar un mantenimiento para
que el sistema computacional para incluir y modificaciones que surgen a través del
tiempo.
131
5.1.2.- SIMULACIÓN DE UN SISTEMA DE CONTROL DE CALIDAD.
La primera etapa consiste en definir el sistema que se desea simular, para realizarlo es
necesario realizar un análisis preliminar. Este análisis exploratorio tradicionalmente se
lleva a cabo realizando un recorrido por toda la empresa. Este recorrido nos muestra
todos los procesos que se realizan, y las problemáticas que se enfrentan diariamente
para realizar sus actividades operativas. La estructura organizacional es un buen inicio
para identificar al personal clave que cuenta con información valiosa para incluir en el
modelo de simulación.
Organigrama de la empresa
Gerente
Las entrevistas a este personal, es pieza fundamental para definir el sistema y sus
interacciones con otros sistemas, y los resultados que se esperan obtener del estudio
de simulación.
Para la definición del sistema, se puede seguir con una técnica enfocada a identificar lo
siguiente:
132
Identificar las salidas del sistema.
• Maximizar la producción.
• Minimizar productos defectuosos.
• Minimizar el desperdicio.
Las entradas del sistema, están en función de las salidas identificadas del sistema. Es
decir los datos requeridos que serán procesados para proporcionar las salidas del
sistema. Las entrevistas y los recorridos muestran el proceso de fabricación, el cual
está sujeta a la llegada de las órdenes durante el transcurso del día, las cuales pasan
directamente a manufactura basada en tres procesos principales, al final de cada
proceso se realiza una inspección que asegura el retiro de la línea los componentes no
conformes. Una proporción de componentes no conforme tiene la oportunidad de ser
re trabajados en el mismo proceso que lo rechazó, pero la otra proporción es enviada
directamente al desperdicio.
Identificando como variables de entrada: los tiempos entre llegadas de las órdenes,
los tiempos de manufactura, y las estadísticas de las inspecciones.
133
Recibe Proceso 1
orden
V
F
Inspección ok Retrabajo
V
F
Proceso 2
V
F
Scrap
F
Inspección ok Retrabajo
Proceso 3
V
F
F
Inspección ok Retrabajo
Envia orden
134
5.1.2.2.- FORMULAR EL MODELO.
Una vez definido los resultados que se esperan obtener del estudio, el siguiente paso es definir y construir el modelo con el cual se
obtendrán los resultados deseados. En la formulación del modelo es necesario definir todas las variables que forman parte de él,
sus relaciones lógicas y los diagramas de flujo que describan en forma completa al modelo.
Tiempo entre
llegadas de las
Producción
órdenes
Proceso 1 Inspección
Tiempo de
manufactura
Productos
defectuosos
s
Tiempo de c
Proceso 2 Inspección
inspección r
a
p Desperdicios
Parámetros de
inspección
Proceso 3 Inspección
Producto
terminado
Proceso de simulación
135
El 60% de los componentes enviados a retrabajar no es posible retrabajarlos dado sus
características, por lo tanto son reenviados directamente al desperdicio (scrap) y
únicamente el 40% restante es posible aplicarle el re-trabajo.
El tiempo del tercer proceso sigue una distribución normal con media de 24 minutos y
una desviación estándar de 4 minutos.
136
5.1.2.4.- IMPLEMENTAR EL MODELO EN LA COMPUTADORA.
Con el modelo definido, el siguiente paso es decidir el lenguaje de programación a utilizar ya sea uno de propósito general o un
paquete de propósito específico, para procesarlo en la computadora y obtener los resultados deseados.
85% 95%
80%
% %
conforme? conforme? conforme? TERMINATE 1
20% 15% 5%
40% % 40%
% 40%
137
Código GPSS.
0,0/.05,10/.18,14/.34,21/.56,32/.85,38/1.0,45
138
Reporte de resultados
139
Interpretación de los resultados para verificación.
Descripción Cantidad
Producto terminado 100
Scrap 38
En espera para realizar el proceso 1 26
Realizando el proceso 1 1
En espera para realizar el retrabajo en el proceso 1 2
Realizando el proceso 2 1
Total generados 168
Scrap generado
Descripción Cantidad
Scrap del proceso 1 23
Scrap del proceso 2 15
Scrap del proceso 3 0
Total generado 38
4. La comprobación de falla del modelo de simulación al utilizar datos que hacen fallar al sistema real.
5. La aceptación y confianza en el modelo de la persona que hará uso de los resultados que arroje el experimento de
simulación.
140
Una vez incluidas estos ajustes en el modelo, se procederá a experimentar con el
mismo, agregando el grado de complejidad del sistema incorporando un sistema de
inspección que le permita detectar variables significativas que repercuten en la calidad
de los productos. Esto nos obliga a realizar otra iteración regresando de nuevo a la
definición del sistema, para incluir las necesidades que surgen en esta revisión. Es
clásico que un modelo no se realice a la primera, debido a que es un proceso iterativo
que irá afinando poco a poco el modelo, en la medida que vayan surgiendo variables
significativas.
5.1.2.8.- DOCUMENTAR.
Son requeridos dos tipos de documentación para hacer un mejor uso del modelo de simulación. La primera es la documentación
técnica y la segunda documentación es el manual del usuario para facilitar la interacción y el uso del modelo desarrollado.
141
5.1.3.- SIMULACIÓN DE UN SUPERMERCADO.
La primera etapa consiste en definir el sistema que se desea simular, para realizarlo es
necesario realizar un análisis preliminar. Este análisis exploratorio tradicionalmente se
lleva a cabo realizando un recorrido por toda la empresa. Este recorrido nos muestra
todos los procesos que se realizan, y las problemáticas que se enfrentan diariamente
para realizar sus actividades operativas. La estructura organizacional es un buen inicio
para identificar al personal clave que cuenta con información valiosa para incluir en el
modelo de simulación.
Organigrama de Supermercado
Gerente
Las entrevistas a este personal, es pieza fundamental para definir el sistema y sus
interacciones con otros sistemas, y los resultados que se esperan obtener del estudio
de simulación.
Para la definición del sistema, se puede seguir con una técnica enfocada a identificar lo
siguiente:
142
Identificar las salidas del sistema.
Las entradas del sistema, están en función de las salidas identificadas del sistema. Es
decir los datos requeridos que serán procesados para proporcionar las salidas del
sistema. Las entrevistas y los recorridos muestran el proceso que siguen los clientes
desde que llegan, compran y se retiran. Identificando como variables de entrada: los
tiempos entre llegadas de las clientes, los tiempos para entrar y salir del
supermercado, los tiempos de selección de artículos, la cantidad de artículos
seleccionados, los tiempos requeridos para el pago de los artículos, el tamaño del
estacionamiento, la cantidad de carritos y cestas, y la cantidad de cajas disponibles
para realizar el pago respectivo.
143
Identificar el proceso del sistema.
Llega cliente
No
Hay donde Se retira el
estacionarse cliente
Si
Camina al super
No
Si
Camina al auto
Selecciona carrito Selecciona artículos
144
carga sus artículos al auto y abandona el estacionamiento. Se cuenta con la política de
no permitir que salgan las cestas del supermercado.
Tiempo entre
llegadas de los
clientes
Capacidad en
estacionamiento Se estaciona
Utilización de
servicios
Entra al super
Tiempo de entrar
y salir del super
Sel carrito o
cesta Tiempo prom de
compra
Capacidad de
cajas y tiempo
Proceso de simulación
Tiempo entre llegadas de los clientes. El tiempo entre llegadas de los clientes tiene un
comportamiento exponencialmente distribuido. La primera media hora (0-30 min)
tiene una tasa de 600 clientes x hora, la siguiente hora (30-90 min) arriban 900 clientes
145
, la siguiente hora (90-150) arriban 450 y después (150-adelante) se mantiene una tasa
de 300 clientes x hora.
Tiempos para entrar y salir del supermercado. El cliente una vez que se estaciona tarda
un promedio de 60 segundos para entrar al supermercado, y cuando sale del
supermercado tarda un tiempo de 60 segundos para llegar al auto. Aquellos clientes
que salen con carrito, lo dejan abandonado el carrito en el estacionamiento.
Tiempo para el pago de los artículos (cajas). El cliente una vez que finaliza la selección
de los artículos a comprar se forma en la fila que contiene el menor número de
personas para realiza el pago en las cajas destinadas a ello. Se cuenta con una caja
rápida para aquellos que traen 10 o menos artículos, pero también existen 17 cajas
normales. El tiempo para realizar el pago está en función de la cantidad de artículos y
la forma de pago correspondiente. Se tarda dos segundos por cada artículo y
dependiendo de la forma de pago se tarda 25 segundos (efectivo), 30 (cheque), o 35
segundos para pago con tarjeta de crédito.
146
5.1.3.4.- IMPLEMENTAR EL MODELO EN LA COMPUTADORA.
Con el modelo definido, el siguiente paso es decidir el lenguaje de programación a utilizar ya sea uno de propósito general o un
paquete de propósito específico, para procesarlo en la computadora y obtener los resultados deseados.
GENERATE (EXPONENTIAL(1,0,60)),,,300
GENERATE
(EXPONENTIAL(1,0,40)),,18000,900 TRANSFER
BOTH,,BYE TERMINATE
GENERATE
(EXPONENTIAL(1,0,80)),,54000,450
GENERATE
(EXPONENTIAL(1,0,120)),,90000
V
ENTER PARK
ARTS <= 10
QUEUE QCESTA
ADVANCE 600
F ENTER CESTA
SAVEVALUE CLTES+,1
QUEUE QCARRITO
DEPART QCESTA
ASSIGN ARTS,V$QTY
ENTER CARRITO
ASSIGN CARGA,
ASSIGN FPAGO,V$FORMA CESTA
DEPART QCARRITO
ASSIGN
CARGA,CARRITO A
147
A B
ASSIGN FPAGO,V$FORMA
ADVANCE V$TPAGO
ADVANCE V$TPAGO
RELEASE CRAPIDA
GENERATE 600
LEAVE P$CARGA RELEASE P$CNORMAL
TABULATE HCLTES
TABULATE HARTS TABULATE HARTS
TERMINATE
148
Código GPSS.
INITIAL X$CLTES,0
CINICIAL EQU 1
CFINAL EQU 17
GENERATE (EXPONENTIAL(1,0,60)),,,300
TRANSFER,INICIO
GENERATE (EXPONENTIAL(1,0,40)),,18000,900
TRANSFER,INICIO
GENERATE (EXPONENTIAL(1,0,80)),,54000,450
TRANSFER,INICIO
GENERATE (EXPONENTIAL(1,0,120)),,90000
TRANSFER,INICIO
ENTER PARK
TEST LE P$ARTS,10,MASD10
QUEUE QCESTA
DEPART QCESTA
149
QUEUE QRAPIDA
SEIZE CRAPIDA
DEPART QRAPIDA
ADVANCE V$TPAGO
RELEASE CRAPIDA
LEAVE P$CARGA
TABULATE HARTS
TABULATE HTIME
SAVEVALUE CLTES-,1
ADVANCE 600
LEAVE PARK
TRANSFER,BYER
DEPART QCARRITO
QUEUE P$CNORMAL
SEIZE P$CNORMAL
DEPART P$CNORMAL
ADVANCE V$TPAGO
RELEASE P$CNORMAL
TABULATE HARTS
TABULATE HTIME
SAVEVALUE CLTES-,1
ADVANCE 600
LEAVE P$CARGA
LEAVE PARK
BYEN TERMINATE
150
BYER TERMINATE
BYEF TERMINATE
GENERATE 600
TABULATE HCLTES
TERMINATE 1
START 180
Tabla 5.4.- Código GPSS para el diagrama de bloques de la figura 5.17 y 5.18
Reporte de resultados.
151
152
Figura 5.19.- Reporte de resultados.
153
Interpretación de los resultados para verificación.
La simulación del funcionamiento del supermercado se realizó para las primeras tres horas de
operación. (108000 décimas de segundo). Llegaron 1812 clientes (300+900+450+162) de los
cuales todos encontraron lugar para estacionar su vehículo. En esas tres horas, compraron
1400 clientes (1280 clientes ≥10 artículos, y 120 clientes < 10 artículos). En promedio se tuvo
356.8 clientes en el supermercado, seleccionando un promedio de 46.72 artículos y tardando
un promedio de compra de 35 minutos (21158.8 décimas de segundo).
Para utilizar las cestas y los carritos no tuvieron que hacer fila los clientes, el máximo número
de cestas utilizadas fue de 8 de las 70 disponibles. El máximo número de carritos utilizados fue
de 516 de los 650 disponibles. El porcentaje de utilización de las cestas fue de 2.7% y el
porcentaje de utilización de los carritos fue de 55.5%.
El estacionamiento que tiene capacidad para 650 vehículos, el máximo número de lugares
utilizados fue de 522, teniendo un porcentaje de utilización de 55.9%.
Es notorio que la problemática se centra en el servicio de las cajas normales. Para analizar su
comportamiento, se realizaron corridas modificando la cantidad de cajas normales disponibles,
presentando los resultados siguientes:
154
5.1.3.5.- VALIDAR EL MODELO.
En esta etapa es posible detallar deficiencias en la formulación del modelo o en los datos alimentados al modelo, siendo las
formas más comunes de validar el modelo las siguientes:
4. La comprobación de falla del modelo de simulación al utilizar datos que hacen fallar al sistema real.
5. La aceptación y confianza en el modelo de la persona que hará uso de los resultados que arroje el experimento de
simulación.
155
puesto en términos que el tomador de decisiones pueda comprender, y en base a ellos
fundamentar sus decisiones. Las mejoras a cualquier sistema parten de un proceso
iterativo en que se incluyen nuevas variables con el fin de obtener información
desconocida que logre comprender el comportamiento del sistema y sus
repercusiones al momento de incluir o actualizar algún proceso.
5.1.3.8.- DOCUMENTAR.
Son requeridos dos tipos de documentación para hacer un mejor uso del modelo de simulación. La primera es la documentación
técnica y la segunda documentación es el manual del usuario para facilitar la interacción y el uso del modelo desarrollado.
156
A
Apéndice
Z .00 .01 .02 .03 .04 .05 .06 .07 .08 .09
0.0 .0000 .0040 .0080 .0120 .0160 .0199 .0239 .0279 .0319 .0359
0.1 .0398 .0438 .0478 .0517 .0557 .0596 .0636 .0675 .0714 .0753
0.2 .0793 .0832 .0871 .0910 .0948 .0987 .1026 .1064 .1103 .1141
0.3 .1179 .1217 .1255 .1293 .1331 .1368 .1406 .1443 .1480 .1517
0.4 .1554 .1591 .1628 .1664 .1700 .1736 .1772 .1808 .1844 .1879
0.5 .1915 .1950 .1985 .2019 .2054 .2088 .2123 .2157 .2190 .2224
0.6 .2257 .2291 .2324 .2357 .2389 .2422 .2454 .2486 .2517 .2549
0.7 .2580 .2611 .2642 .2673 .2703 .2734 .2764 .2794 .2833 .2852
0.8 .2881 .2910 .2939 .2967 .2995 .3023 .3051 .3078 .3106 .3133
0.9 .3159 .3186 .3212 .3238 .3264 .3289 .3315 .3340 .3365 .3389
1.0 .3413 .3438 .3461 .3485 .3508 .3531 .3554 .3577 .3599 .3621
1.1 .3643 .3665 .3686 .3708 .3729 .3749 .3770 .3790 .3810 .3830
1.2 .3849 .3869 .3888 .3907 .3925 .3944 .3962 .3980 .3997 .4015
1.3 .4032 .4049 .4066 .4082 .4099 .4115 .4131 .4147 .4162 .4177
1.4 .4192 .4207 .4222 .4236 .4251 .4265 .4279 .4292 .4306 .4319
1.5 .4332 .4345 .4357 .4370 .4382 .4394 .4406 .4418 .4429 .4441
1.6 .4452 .4463 .4474 .4484 .4495 .4505 .4515 .4525 .4535 .4545
1.7 .4554 .4564 .4573 .4582 .4591 .4599 .4608 .4616 .4625 .4633
1.8 .4641 .4649 .4656 .4664 .4671 .4678 .4686 .4693 .4699 .4706
1.9 .4713 .4719 .4726 .4732 .4738 .4744 .4750 .4756 .4751 .4767
2.0 .4772 .4778 .4783 .4788 .4793 .4798 .4803 .4808 .4812 .4817
2.1 .4821 .4826 .4830 .4834 .4838 .4842 .4846 .4850 .4854 .4857
2.2 .4861 .4864 .4868 .4871 .4875 .4878 .4881 .4884 .4887 .4890
2.3 .4893 .4896 .4898 .4901 .4904 .4906 .4909 .4911 .4913 .4916
2.4 .4918 .4920 .4922 .4925 .4927 .4929 .4931 .4932 .4934 .4936
2.5 .4938 .4940 .4941 .4943 .4945 .4946 .4948 .4949 .4951 .4952
2.6 .4953 .4955 .4956 .5957 .4959 .4960 .4961 .4962 .4963 .4964
2.7 .4965 .4966 .4967 .4968 .4969 .4970 .4971 .4972 .4973 .4974
2.8 .4974 .4975 .4976 .4977 .4977 .4978 .4979 .4979 .4980 .4981
2.9 .4981 .4982 .4982 .4983 .4984 .4984 .4985 .4985 .4986 .4986
3.0 .4987 .4987 .4987 .4988 .4988 .4989 .4989 .4989 .4989 .4990
157
Distribución chi-cuadrada (df )
γ\α 0.995 0.990 0.975 0.950 0.500 0.050 0.25 0.010 0.005
1 0.00 0.00 0.00 0.00 0.45 3.84 5.02 6.63 7.88
2 0.01 0.02 0.05 0.10 1.39 5.99 7.38 9.21 10.60
3 0.07 0.11 0.22 0.35 2.37 7.81 9.35 11.34 12.84
4 0.21 0.30 0.48 0.71 3.36 9.49 11.14 13.28 14.86
5 0.41 0.55 0.83 1.15 4.35 11.07 12.83 15.09 16.75
158
Tabla K-S (ÐÑ,Ò
n\α 10% 5% 1%
1 0.950 0.975 0.995
2 0.776 0.842 0.929
3 0.642 0.708 0.829
4 0.564 0.624 0.734
5 0.510 0.563 0.669
50 0.118 0.226
60 0.172 0.207
70 0.160 0.192
80 0.150 0.180
90 0.141
100 0.134
159
B
Apéndice
Instrucción Descripción
EQU Asignación numérica de variables.
FUNCTION Definición de funciones.
FVARIABLE Definición de operaciones.
INITIAL Inicialización de variables.
MATRIX Definición de matrices.
STORAGE Definición de número de servidores.
TABLE Definición de histogramas.
VARIABLE Definición de operaciones.
Sintaxis.
NOMBRE EQU A
Etiqueta/Operandos:
Etiqueta/Operando Descripción
NOMBRE Nombre de la variable. Se declara el nombre de la variable que almacena el valor de la expresión declarada
en el operando A. Es una etiqueta requerida.
A Es una expresión. Es un operando requerido, que debe ser una expresión.
160
Instrucción FUNCTION. Define las reglas de búsqueda de datos en una tabla. Existen varios tipos de funciones. La tipo C es un
caso especial que busca el valor en la tabla, seguida de una interpolación lineal. El uso de esta instrucción para definir
distribuciones de probabilidad ha sido reemplazada por una librería predefinida distribuciones de probabilidad.
Sintaxis.
Etiqueta/Operandos:
Etiqueta/Operando Descripción
NOMBRE Es un nombre de la entidad a representar. Es una etiqueta que declara el nombre de la función. Es una
etiqueta requerida.
A Es un argumento de la función. Este operando requerido y debe ser un nombre, un número entero, string,
expresión, o SN.
B Función. Es un operando requerido el cual es declarada mediante el tipo de la función (una letra) , seguida
inmediatamente de pares de datos.
Tipos de funciones.
Letra Descripción
C Describe una función continua.
D Describe una función discreta.
E Describe una función discreta basada en atributos.
L Describe una función basada en una lista.
M Describe una función basada en una lista de atributos.
Instrucción FVARIABLE. Utilizada para definir variables que almacenan números reales (punto flotante), resultado de una
operación aritmética.
Sintaxis.
NOMBRE FVARIABLE A
Etiqueta/Operandos:
Etiqueta/Operando Descripción
NOMBRE Es un nombre de la entidad a representar. Es requerido.
A Es una expresión aritmética. Es requerida.
Instrucción INITIAL. Inicializa entidades especiales (Matrix, Logicswith, Savevalue, un elemento de Matrix).
Sintaxis.
INITIAL A,B
Etiqueta/Operandos:
Etiqueta/Operando Descripción
A Es un Logicswitch, Savevalue o un elemento de Matrix expresado como SNA, o el nombre de la entidad
Matrix. El operando A debe tener la forma de una clase LS, X, o MZ. o el nombre de una matriz. Es
requerido, y el operando debe ser un nombre, un LSPosInteger, LS$Name, XPosInteger, X$Name,
MXPosInteger(m,n) or MX$Name(m,n). Coordinates (m,n) debe ser un nombre o un numero entero
positivo..
B Es el valor a ser asignado o puede ser omitido. Es un operando opcional con valor predeterminado de 1. El
operando debe ser nulo, número, string, nombre o no especificado.
161
Instrucción MATRIX. Define una entidad de tipo Matrix.
Sintaxis.
Etiqueta/Operandos:
Etiqueta/Operando Descripción
NOMBRE Nombre de la entidad. Es requerido. El operando debe ser un nombre.
A Operando no utilizado. Asegura la compatibilidad con versiones anteriores.
B Número elementos en la primera dimensión de la matriz (renglones). Es un operando requerido, y debe ser
un número entero positivo.
C Número de elementos de la segunda dimensión de la matriz (columnas). Es un operando requerido, y debe
ser un número entero positivo.
D Número de elementos en la tercera dimensión de la matriz. Es un operando opcional, y debe ser un número
entero positivo.
E Número de elementos en la cuarta dimensión de la matriz. Es un operando opcional, y debe ser un número
entero positivo.
F Número de elementos en la quinta dimensión de la matriz. Es un operando opcional, y debe ser un número
entero positivo.
G Número de elementos en la sexta dimensión de la matriz. Es un operando opcional, y debe ser un número
entero positivo.
Sintaxis.
NOMBRE STORAGE A
Etiqueta/Operandos:
Etiqueta/Operando Descripción
NOMBRE Es el nombre de la entidad servidor. Es un operando requerido, y debe ser el nombre de la entidad de
servicio.
A Capacidad máxima de servidores. Es un operando requerido, y debe ser un número entero positivo.
Sintaxis.
Etiqueta/Operandos:
Etiqueta/Operando Descripción
NOMBRE Es el nombre de la entidad histograma. Es una etiqueta requerida, y debe ser el nombre. Este nombre está
limitado a 32 caracteres.
A Es el argumento de la tabla. Es un operando opcional. Es el dato a ser tabulado en el histograma. Este
operando debe ser un nombre, número, string, expresión, o SNA. Es ignorado por ANOVA (análisis de
varianza), pero debe ser especificado cuando se utiliza el bloque TABULATE.
B Límite superior del primer intervalo. Es el argumento máximo que causa que el primer intervalo sea
actualizado. Este operando es requerido, y debe ser un número o un string.
C Tamaño del intervalo. Es la diferencia entre el límite superior y el límite inferior del intervalo. Es un
operando requerido. Este operando debe ser un número o un string.
D Número de intervalos. Es un operando requerido, y debe ser un número entero positivo.
162
Instrucción VARIABLE. Utilizada para definir variables, resultado de una operación aritmética.
Sintaxis.
NOMBRE VARIABLE A
Etiqueta/Operandos:
Etiqueta/Operando Descripción
NOMBRE Es el nombre de la variable. Es una etiqueta requerida, y debe ser el nombre
A Es una expresión. Es un operando requerido. Debe ser una expresión.
Instrucción Descripción
ADVANCE Simula un tiempo de retardo en la transacción.
ASSEMBLE Espera y destruye las transacciones relacionadas.
ASSIGN Asigna o actualiza un parámetro de la transacción.
BUFFER Coloca a la transacción activa en una cadena de eventos actuales.
DEPART Simula la salida de un almacén.
ENTER Simula la captura de un servidor o servidores.
GATE Altera el flujo de la transacción en base un estado de la entidad.
GATHER Una transacción espera a una transacción relacionada.
GENERATE Simulación de entrada de transacciones al sistema.
INDEX Actualiza un parámetro de la transacción activa.
LEAVE Simula la desocupación de un servidor o servidores.
LINK Coloca la transacción activa en un lugar dentro una cadena de usuario usando PEPS
(primera entrada, primeras salida) , o UEPS (última entrada, primera salida).
LOGIC Actualiza el estado de una entidad tipo Logicswitch.
LOOP Modifica un parámetro y controla el destino de una transacción activa, basado en el
resultado.
MATCH Simula la espera de una transacción la llegada de otra transacción.
MSAVEVALUE Actualiza un elemento de una matriz.
PREEMPT Desplaza una transacción a diferentes servidores.
PRIORITY Asigna una prioridad a la transacción activa.
QUEUE Simula la entrada de un almacén.
RELEASE Libera un facilitador (servidor unitario).
RETURN Libera el facilitador que es propiedad de una transacción.
SAVEVALUE Actualiza el valor de la entidad Savevalue.
SEIZE Captura un facilitador (servidor unitario).
SELECT Selecciona una entidad y coloca un número de entidad dentro del parámetro de la
transacción activa.
SPLIT Reproduce transacciones, con las mismas características de la transacción padre.
TABULATE Tabula datos en un histograma.
TERMINATE Simula la salida de transacciones del sistema.
TEST Compara valores y controla el destino de la transacción activa.
TRANSFER Transfiere la transacción activa a otra parte del programa.
UNLINK Retira la transacciones de una cadena del usuario.
163
Instrucción ADVANCE. Simula un tiempo de retardo en la transacción. instrucción GENERATE crea transacciones que entran al
proceso de simulación. Se puede considerar a este bloque como una puerta a través de la cual entran las transacciones al sistema.
No existe restricción de la cantidad de bloques GENERATE que pueda contener un modelo de simulación.
Sintaxis.
ADVANCE A,B
Operandos.
Operando Descripción
A Tiempo promedio (media) de retardo.. Es un operando requerido. Este operando debe ser un nombre,
string, expresión, o número.
B Desviación con respecto a la media. Es un operando opcional. Este operando debe ser nombre, string,
expresión, número, SNA o nulo. El valor predeterminado es igual a 0.
Sintaxis.
ASSEMBLE A
Operandos.
Operando Descripción
A Contador de transacciones. Es un operando requerido. Este operando debe ser un nombre, entero positivo,
expresión, o SNA.
Sintaxis.
ASSIGN A,B,C
Operandos.
Operando Descripción
A Número de parámetro de la transacción activa. Es un operando requerido. Este operando debe ser nombre,
entero positivo, expresión, SNA, o nulo.
B Valor. Es un operando requerido. Este operando debe ser nombre, número, string, expresión o SNA.
C Número de función. Es un operando opcional. Este operando debe ser nulo, nombre, entero positive,
expresión o SNA.
Sintaxis.
BUFFER
Operandos.
Sin operandos.
164
Instrucción DEPART. Simula la salida de un almacén. Este bloque registra estadísticas que indican la salida del almacén (cola). Este
es el punto de finalización para la toma de estadísticas de las colas que se formaron. El bloque DEPART se utiliza como
complemento del bloque QUEUE (entrada al almacén).
Sintaxis.
DEPART A,B
Operandos.
Operando Descripción
A El nombre del cola (almacén). Es un operando requerido. Este operando debe ser un nombre, un entero
positivo, expresión o SNA.
B Número de unidades a salir de la cola (almacén). Es un operando opcional. De forma predeterminada tiene
asignado el valor de 1. Este operando debe ser nulo, nombre, entero positivo, string, expression, o SNA.
Instrucción ENTER. Simula la captura de un servidor o servidores. La transacción deberá esperar en este bloque hasta que un
servidor esté disponible para que la transacción sea atendida capturando la atención del servidor. La instrucción LEAVE se utiliza
complemento para liberar el servidor ocupado. Estos servidores deben ser definidos utilizando la instrucción STORAGE.
Sintaxis.
ENTER A,B
Operandos.
Operando Descripción
A Nombre del servidor. Es un operando requerido. Este operando debe ser un nombre, número entero
positivo, expresión, o un SNA.
B Número de servidores a ocupar. El operando es opcional, con un valor predeterminado de 1. Este operando
debe ser nulo, nombre, numero entero positivo, expresión o un SNA.
Sintaxis.
GATE O A,B
Operandos.
Operando Descripción
O Es un operador condicional. Es la condición requerida de la entidad para ser probada como una prueba
exitosa. Es un operador requerido, y debe ser FNV, FV, I, LS, LR, M, NI, NM, NU, SE, SF, SNE, SNF, SNV, SV, o
U.
A El nombre o número de la entidad a ser probada. El tipo de entidad es implicada por el operador
condicional. Este operando debe ser nombre, número entero positivo, expresión, o SNA.
B Número de bloque destino cuando la prueba no es exitosa. El operando es opcional, y este operando debe
ser nulo, nombre, entero positivo, expresión o SNA.
Operadores condicionales.
Operador Descripción
FNV Servidor descrito en el operando A no se encuentra disponible. (Facility not available).
FV Servidor descrito en el operando A se encuentra disponible (Facility available).
I El servidor descrito en el operando A debe ser interrumpido. (Interrupt).
LS El logicswitch descrito en el operando A es puesto en estado set. (Logic set).
LR El logicswitch descrito en el operando A es puesto en estado reset. (Logic reset).
M El bloque match descrito en el operando A, tiene una transacción en espera condicional. (Match).
NI Servidor descrito en el operando A no debe ser interrumpido. (Not interrupt).
NM EL bloque match descrito en el operando A, no tiene una transacción en espera condicional. (Not match).
NU El servidor descrito en el operando A no debe ser utilizado para la prueba.
SE El almacenamiento descrito en el operando A debe estar vacio. (Storage empty).
165
SF El almacenamiento descrito en el operando A debe estar lleno. (Storage full).
SNE El almacenamiento descrito en el operando A no debe estar vacio. (Storage not empty).
SNF El almacenamiento descrito en el operando A no debe estar lleno. (Storage not full).
SNV El almacenamiento descrito en el operando A no está disponible (Storage not available).
SV El almacenamiento descrito en el operando A está disponible (Storage available).
U El servidor descrito en el operando A está en uso (Use).
Instrucción GATHER. Una transacción espera a una transacción relacionada. Se encarga de sincronizar las transacciones
pertenecientes al mismo conjunto de ensamble.
Sintaxis.
GATHER A
Operandos.
Operando Descripción
A Contador de transacciones.- Operando requerido que debe ser nombre, número entero positivo, expresión
o SNA.
Instrucción GENERATE. La instrucción GENERATE crea transacciones que entran al proceso de simulación. Se puede considerar a
este bloque como una puerta a través de la cual entran las transacciones al sistema. No existe restricción de la cantidad de
bloques GENERATE que pueda contener un modelo de simulación. La instrucción GENERATE se utiliza con su complemento
TERMINATE.
Sintaxis.
GENERATE A,B,C,D,E
Operandos.
Operando Descripción
A Tiempo promedio (media) entre llegadas. Es un operando opcional. Este operando debe ser un nombre,
string, expresión, número, SNA o nulo. El valor predeterminado es igual a 0.
B Desviación con respecto a la media. Es un operando opcional. Este operando debe ser nombre, string,
expresión, número, SNA o nulo. El valor predeterminado es igual a 0.
C Tiempo en que se generará la primera transacción. Es un operando opcional. Este operando debe ser
nombre, string, expresión, número, SNA o nulo. El valor predeterminado es igual al operando A.
D Límite de generación de transacciones. Es un operando opcional. Este operando debe ser nombre, string,
expresión, número entero positivo, SNA o nulo. El valor predeterminado es igual a infinito.
E Nivel de prioridad. Es un operando opcional. Este operando debe ser nombre, string, expresión, número
entero, SNA o nulo. El valor predeterminado es igual a 0.
Sintaxis.
INDEX A,B
Operandos.
Operando Descripción
A Número del parámetro. Es un parámetro con un valor. Este operando es requerido, y debe ser nombre,
número entero positivo, expresión o SNA.
B Valor numérico. Es un número que será agregado al contenido del parámetro. Este operando debe ser
nombre, número, expresión o SNA.
166
Instrucción LEAVE. Simula la desocupación de un servidor o servidores.
Sintaxis.
LEAVE A,B
Operandos.
Operando Descripción
A Nombre del servidor. Es un operand requerido, y debe ser nombre, número entero positivo, expresión o
SNA.
B Número de servidores a desocupar. Es un operando opcional, con un valor predeterminado de 1. Este
operando debe ser nulo, nombre, número entero positivo, expresión o SNA.
Instrucción LINK. Coloca la transacción activa en un lugar dentro la cadena usando FIFO (primera entrada, primeras salida) , o LIFO
(última entrada, primera salida).
Sintaxis.
LINK A,B,C
Operandos.
Operando Descripción
A Número de la cadena de usuario. Es la entidad cadena la cual recibe la transacción entrante. Es un operando
requerido, y debe ser un nombre, número entero positivo, expresión, o SNA.
B Orden de la cadena. Es la política para agregar transacciones a la cadena. Este operando es requerido y
debe ser LIFO (Última entrada, primera salida), FIFO (Primera entrada, primera salida).
C Localización del próximo bloque. Es la instrucción bloque destino para que las transacciones que sean
encontradas con el indicador Link de la cadena dentro del estado apagado (reset). Este operando es
opcional, y debe ser nulo, nombre, número entero positivo, expresión o SNA.
Sintaxis.
LOGIC O A
Operandos.
Operando Descripción
O Operador lógico. Es un operador requerido, y debe ser S (Set), R (Reset), o I (Inverted).
A Entidad logicswitch. Es un operando requerido que debe ser nombre, número entero positivo, expresión, o
SNA.
167
Instrucción LOOP. Modifica un parámetro y controla el destino de una transacción activa, basado en el resultado.
Sintaxis.
LOOP A,B
Operandos.
Operando Descripción
A Párametro que contiene el contador. Es un operando requerido, y debe ser nombre, número entero
positivo, expresión o SNA.
B Etiqueta del bloque a transferir la transacción. Decrementa en 1 al contador, si es diferente de cero irá al
bloque especificado en este operando; de lo contrario procede la transacción al siguiente bloque. Este
operando es opcional, y debe ser nulo, nombre, número entero positivo, expresión o SNA.
Instrucción MATCH. Simula la espera de una transacción la llegada de otra transacción. Un par de bloques MATCH provoca que las
transacciones del mismo conjunto de ensamble se esperen una a la otra.
Sintaxis.
MATCH A,B,C,D
Operandos.
Operando Descripción
A Etiqueta de bloque a transferir la transacción. Conjuga comparando con el conjunto de ensamble. Es un
operando requerido y debe ser nombre, número entero positive, expresión o SNA.
Sintaxis.
MSAVEVALUE A,B,C,D
Operandos.
Operando Descripción
A Nombre de la matriz seguido opcionalmente por un + (Incrementa), o – (decrementa). Es un operando
rquerido que debe ser nombre, número entero positivo, expresión o SNA.
B Número de renglón de la matriz. Es un operando requerido que debe ser nombre, número entero positivo,
expresión o SNA.
C Número de columna de la matriz. Es un operando requerido que debe ser nombre, número entero positivo,
expresión o SNA.
D Valor a actualizar. Es un operando requerido que debe ser nombre, número entero positivo, expresión o
SNA.
168
Instrucción PREEMPT. Desplaza una transacción a diferentes servidores.
Sintaxis.
PREEMPT A,B,C,D,E
Operandos.
Operando Descripción
A Nombre o número del servidor. Es un operando requerido que debe ser nombre, número entero positive,
expresión o SNA.
B Modo de prioridad. Es un operando opcional. PR es utilizado para la modalidad de prioridad. Si no se
declara funciona com el modo de interrupción.
C Nombre o número de bloque. Es el nuevo destino de la transacción que actualmente es dueña del servidor.
Es un operando opcional, y debe ser nulo, nombre, número entero positivo, expresión o SNA.
D Número de parámetro. Es el parámetro de la transacción removida para recibir el tiempo residual si la
transacción es removida de FEC. Es un operando opcional, y debe ser nulo, nombre, número entero
positivo, expresión o SNA.
E Modo de remover. Remueve la transacción del contenedor del servidor. Es un operand opcional, y debe ser
RE o nulo. Si se especifica RE se debe especificar el destino en el operando C.
Sintaxis.
PRIORITY A,B
Operandos.
Operando Descripción
A Valor de la prioridad. Es un operando requerido, y debe ser nombre, entero, string, expresión o SNA.
B Opción de buffer. Es un operando opcional. Este operando debe ser BU.
Instrucción QUEUE. Simula la entrada de un almacén. Para cada bloque QUEUE, se requiere un bloque DEPART (simula la salida
del almacén). Este bloque se utiliza para obtener estadísticas en el reporte de resultados que permiten ilustrar el tiempo de espera
que realizan las transacciones para capturar la atención de un servidor. Este bloque QUEUE se debe complementar con el bloque
DEPART. Se puede visualizar al bloque QUEUE como el punto de inicio de la línea de espera (Cola) para la toma de datos
estadísticos.
Sintaxis.
QUEUE A,B
Operandos.
Operando Descripción
A Nombre o número de la cola (almacén). Es un operando requerido, que debe ser nombre, número entero
positivo, expresión o SNA.
B Número de unidades que entran a la cola (almacén). El valor predeterminado es 1. Es un operand opcional
que debe ser nulo, nombre, número entero positive, expresión, o SNA.
169
Instrucción RELEASE. Libera un facilitador (servidor unitario). Permite simular la liberación del servidor, proceso o instalación que
había sido capturado anteriormente con el bloque SEIZE.
Sintaxis.
RELEASE A
Operandos.
Operando Descripción
A Nombre o número del facilitador (Servidor unitario). Es un operando requerido. Este operando debe ser
nombre, número entero positivo, expresión o SNA.
Sintaxis.
RETURN A
Operandos.
Operando Descripción
A Nombre o número del facilitador (Servidor unitario). Es un operando requerido. Este operando debe ser
nombre, número entero positivo, expresión o SNA.
Sintaxis.
SAVEVALUE A,B
Operandos.
Operando Descripción
A Nombre del Savevalue opcionalmente Seguido de + (incrementar) o – (decrementar). Es un operando
requerido, y debe ser nombre, número entero positivo, expresión o SNA.
B Es el valor a almacenar, incrementar o decrementar. Es un operando requerido, y debe ser nombre,
número, string, expression o SNA.
Instrucción SEIZE. Captura un facilitador (servidor unitario). Simula la captura de un servidor, proceso o instalación. Internamente
funciona con una variable interna lógica que determina si está ocupado o desocupado. Si una transacción llega a este bloque y el
facilitador está desocupado, lo pone en estado ocupado, y hasta que la transacción pase por el bloque RELEASE, pondrá de nuevo
al facilitador como desocupado. El bloque SEIZE trabaja en conjunto con el bloque RELEASE.
Sintaxis.
SEIZE A
Operandos.
Operando Descripción
A Nombre o número de la facilidad (servidor unitario). Es un operando requerido, que debe ser nombre,
número entero positivo, expresión o SNA.
170
Instrucción SELECT. Selecciona una alternativa (entidad) que satisface una condición determinada, colocando esta alternativa
como parámetro de la transacción activa.
Sintaxis.
SELECT O A,B,C,D,E,F
Operandos.
Operando Descripción
O Operador condicional o lógico. Es un operador requerido, siendo permitidos los siguientes: FNV, FV, I, LS, LR,
NI, NU, SE, SF, SNE, SNF, SNV, SV, U, E, G, GE, L, LE, MIN, MAX, or NE.
A Nombre o número de parámetro. Que recibe el número de la entidad seleccionada. Es un operando
requerido y debe ser nombre, número entero positive, expresión o SNA.
B El límite inferior de la alternativa (entidad). Es un operando requerido, y debe ser nombre, número entero
positivo, o SNA.
C El límite superior de la alternativa (entidad). Es un operando requerido y debe ser nombre, número entero
positivo, o SNA.
D El valor de referencia para el operando E cuando se encuentra en modo condicional. Es un operand opcional
que debe ser número, entero positive o SNA. No debe ser utilizado con MAX o MIN.
E Nombre de SNA por investigar. Especifica el atributo de la entidad en el modo condicional. El tipo de SNA
implica el tipo e entidad. No se debe especificar el operando E, ya que se realiza automáticamente la
búsqueda en el rango . Es un operando opcional que debe ser nulo o SNA.
F Ubicación a la cual entrará la transacción si se cumple la condición. Es un operando opcional que debe ser
nulo, nombre, número entero positivo, expresión o SNA.
Instrucción SPLIT. Reproduce transacciones, con las mismas características de la transacción padre.
Sintaxis.
SPLIT A,B,C
Operandos.
Operando Descripción
A Número de transacciones adicionales a crear. Número de transacciones relacionadas a ser creadas. Es un
operando requerido y debe ser nombre, número entero positivo, expresión o SNA.
B Bloque destino. Es el bloque destino de las transacciones a crear. Este operando es opcional y debe ser nulo,
nombre, número entero positivo, expresión o SNA.
C Parámetro que recibe el número de serie. Es un parámetro que recibirá el número de serie. Es un operando
opcional que debe ser nulo, nombre, número entero positivo, expresión o SNA.
Instrucción TABULATE. Tabula datos en un histograma . Este bloque se coloca para obtener una distribución de frecuencia de los
datos interesados. Este bloque hace referencia a una tabla que está definida con la instrucción TABLE la cual contiene los datos,
rangos y la amplitud de la distribución a generar. Todas las transacciones que pasan por este bloque son utilizadas para crear el
histograma cuyos datos están definidos con una tabla.
Sintaxis.
TABULATE A,B
Operandos.
Operando Descripción
A Nombe o número de una tabla. Es un operando requerido, y debe ser nombre, número entero positivo,
expresión o SNA.
B Factor de peso. Es un operando opcional, y debe ser nulo, nombre, número, expresión o SNA.
171
Instrucción para el bloque TERMINATE. Se utiliza para remover las transacciones activas del proceso de simulación. Se puede
considerar a este bloque como una puerta a través de la cual salen las transacciones del sistema. Esta instrucción hace lo
contrario al bloque GENERATE. Opcionalmente también puede reducir el contador de finalización de la simulación. No existe
restricción de la cantidad de bloques TERMINATE que pueda contener un modelo de simulación (El sistema puede tener varias
puertas de salida).
Sintaxis.
TERMINATE A
Operandos.
Operando Descripción
A Cantidad decremental del contador de finalización. Es un operando opcional. Este operando debe ser un
nombre, expresión, número entero positivo, SNA o nulo. El valor predeterminado es igual a 0.
Instrucción TEST. Compara valores y controla el destino de la transacción activa. El bloque TEST es utilizado para realizar
comparaciones con valores SNA, y controlar el destino de la transacción basado en el resultado de la comparación realizada. El
bloque TEST proporciona dos modos de operación (condicional e incondicional). En el condicional la transacción realiza una espera
hasta que una condición se cumpla. Cumpliendo esta condición la transacción fluye al siguiente bloque. En el modo incondicional
envía la transacción al bloque nombrado en el operando C si la condición no se cumple, o de lo contrario envía la transacción al
siguiente bloque.
Sintaxis.
TEST O A,B,C
Operandos.
Operando Descripción
O Operador relacional. Es un operador requerido, siendo uno de la siguiente lista: E (igual), G (mayor), GE
(mayor o igual), L (menor), LE (menor o igual) , o NE (diferente).
A Valor de prueba. Es un operando requerido, y debe ser un nombre, número, string, expresión o SNA.
B Valor de referencia. Es un operando requerido, y debe ser nombre, número, string, expresión o SNA.
C Bloque destino. Es operando opcional y debe ser nulo, nombre, número entero positivo, expresión o SNA.
Instrucción TRANSFER. Transfiere la transacción activa a otra parte del programa. La instrucción TRANSFER cambia el flujo de la
transacción activa a una ubicación determinada dentro de la lógica del programa.
Sintaxis.
TRANSFER A,B,C,D
Operandos.
Operando Descripción
A Modo de transferencia. Es un operand opcional y debe ser uno de la siguiente lista: BOTH, ALL, PICK, FN, P,
SBR, SIM, fracción, nombre, nulo o SNA.
B Número o ubicación del bloque. Es un operando opcional, que cuando el modo es P debe ser nombre o
número. Este operando en los demás casos debe ser nombre, nulo o SNA.
C Número o ubicación del bloque. Debe ser el valor de increment cuando está en modo P o FN. Este operando
debe ser nulo, nombre o SNA.
D Número del incremento del bloque cuando el modo es ALL. El valor predeterminado es 1. Este operando
debe ser nulo, nombre o número entero positivo, expresión, o SNA.
172
Instrucción UNLINK. Retira las transacciones de una cadena del usuario. Este bloque es utilizado en combinación con bloque LINK.
Sintaxis.
UNLINK O A,B,C,D,E,F
Operandos.
Operando Descripción
O Operador relacional. Es un operador opcional que relaciona al operando D y E para que ocurra el retiro. Este
operando debe ser nulo, E (igual), G (mayor), GE (mayor o igual), L (menor), LE (menor o igual) or NE
(diferente).
A Nombre de la cadena de usuario de donde se retirarán las transacciones. Es un operando requerido y debe
ser un nombre, número entero positivo, expresión o SNA.
B Bloque destino. Es un operando requerido en el cual se declara el bloque destino hacia donde se dirigirán
las transacciones retiradas. Este operando debe ser nombre, número entero positivo, expresión, o SNA.
C Número máximo de transacciones a retirar. Es un operando opcional, que tiene como valor predeterminado
ALL (todas). Este operando debe ser ALL, nulo, nombre, número entero positivo, o SNA.
D Valor de prueba. Este valor es un operando opcional utilizado para llevar a cabo la prueba, o si se utiliza
BACK retira iniciando desde el final de la cadena. Este operando debe ser nulo, nombre, número entero
positivo, expresión o SNA.
E Valor de referencia. Es un valor que utiliza el operando D para la comparación. Este operando es opcional y
debe ser nulo, nombre, número, string, expresión o SNA.
F Bloque destino. Es el destino para la transacción entrante si no existe ninguna transacción que retirar de la
cadena de usuario. Este operando es opcional y debe ser nulo, nombre, número entero positivo, expresión
o SNA.
173
Referencias bibliográficas
Azarang Mohamad A,García Dunna Eduardo, Simulación y análisis de modelos estocásticos, 1ª Edición, McGraw-Hill, Inc.,
México, 1996.
Badri Masood A., A simulation model for multi-product inventory control management, SAGE Publications, 1999.
Banks, J. & Carson, J.S., Discrete event system simulation, Prentice-Hall, Englewood Cliffs, N.J., 1984.
Box George E., Hunter J. Stuart, Hunter William G., Estadística para investigadores: diseño, innovación y descubrimiento, 2ª
Edición, Reverté, Barcelona,2008.
Chitale R. H., Random process, 1ª Edition, Technical Publications Pune, India ,2008.
Corder Gregory W., Foreman Dale I., Nonparametric statistics for Non-statisticians,Wiley & Sons,USA, 2009.
Corte González A., Inferencia estadística bayesiana,tesis de grado en matemáticas, España,2013.
Coss Bu,Raúl, Simulación un enfoque práctico,Limusa,México,2003.
Miller Irwin, Freund John E., Probabilidad y estadística para ingenieros, 1ª Edición, Reverté, México, 2004.
Hermann Charles F., Validation problems in games and simulations with special reference to models of international
politics,Behavioral Science volume 12,1967
Hillier F., Lieberman G., Introducción a la investigación de operaciones, 5ª Edición, McGraw-Hill, Inc.,México, 1991.
Hillier F., Lieberman G., Introducción a la investigación de operaciones, 9ª Edición, McGraw-Hill Inc., México, 2010.
Johnson L., Montgomery D., Operations research in production planning, scheduling and inventory control, Wiley, New
York,1974.
Kleijnen Jack P.C., Verification and validation of simulation models, European Journal of Operational Research, 1995.
Knuth Donald E., The art of computer programming Vol II, 2a Edition,Addison-Wesley, USA,1981.
Lujan Villarreal Gonzalo, Un entorno de aprendizaje y una propuesta de enseñanza de simulación de eventos discretos con
gpss, tesis de grado, Universidad Nacional de la Plata, Argentina,2013.
Mesa Páez L. F.,Rivera Lozano, Romero Dávila, Descripción general de la inferencia bayesiana y sus aplicaciones en los
procesos de gestión,2ª Edición, Universidad del Rosario,Colombia,2011.
Minuteman Software, GPSS Reference Manual, Minuteman Software, 2010.
Minuteman Software, GPSS Tutorial Manual, Minuteman Software, 2010.
Montgomery Douglas C., Runger George C., Applied statistics and probability for engineers, 5 ª Edition, Wiley, USA, 2011.
Montgomery Douglas C., Kowalsky Scott M., Design and Analysis of experiments, 7ª Edition, Wiley, USA, 2011.
Montgomery Douglas C., Statistical quality control, 7ª Edition, Wiley, USA, 2012.
Naylor,Balintfy,Burdick y Kong Shu, Técnicas de simulación en computadoras, Limusa, México, 1971.
Nolberto Sifuentes V. A., Ponce Aruneri M. E.,Estadística inferencial aplicada, 1ª Edición, Universidad Nacional Mayor de
San Marcos, Perú,2008.
Oberkampf William L., Verification and validation in computational simulation, 2004 Transport task force Meeting,Utah,
2004.
Posada Hernández G. J., Buitrago Cardona M. V., Estadística,1ª Edición, Fundación Universitaria Luis Amigó, Colombia,2008.
Raczynski,Stanislaw., Simulación por computadora, 1ª Edición, Megabyte, México, 1993.
Rice Stephen V,Markowitz,Marjanski,Bayley., The Simscript III programming languages for modular objected-orient
simulation, Proceedings of the 2005 winter simulation conference,2005.
Robinson Stewart, Simulation: The practice of model development and use,1 Edition, Willey, USA, 2004.
Ross, Sheldon M., Simulación, 2ª Edición, Prentice Hall, México, 1997.
Ross, Sheldon M., Simulation, 5ª Edition, Academic-Press,USA, 2013.
Schriber Thomas G., Simulation using GPSS, Wiley,USA,1974.
Shannon,Robert, E., Simulación de sistemas. Diseño, desarrollo e implantación, Trillas,México, 1988.
Shannon,Robert, E., Simulación de sistemas, Diseño, desarrollo e implantación, Trillas, México, 1992.
Singh V.P.,System modeling and simulation, 1ª edition, New-Age Intl,New Delhi, 2009.
Starr M., Miller D., Inventory control: theory and practice,Prentice-Hall,New Jersey,1962.
Taha Hamdy, A., Investigación de operaciones, 2ª Edición, Alfaomega, México,1991.
Walpole Ronald E., Myers, Myers, Probabilidad y estadística para ingenieros, 6ª Edición, Prentice-Hall,1999.
174