Professional Documents
Culture Documents
SIMULACIÓN
SCD-1022
PRÁCTICA 1
Modelación de un sistema------------------------------------------------------------------------------------------------------3
PRÁCTICA 2
Generador de números pseudoaleatorios----------------------------------------------------------------------------------8
PRÁCTICA 3
Pruebas de aleatoriedad a números pseudoaleatorios-----------------------------------------------------------------11
PRÁCTICA 4
Método de Montecarlo-----------------------------------------------------------------------------------------------------------18
PRÁCTICA 5
Generación de variables aleatorias continuas----------------------------------------------------------------------------23
PRÁCTICA 6
Pruebas estadísticas a variables aleatorias-------------------------------------------------------------------------------28
PRÁCTICA 7
Aplicación de la simulación-----------------------------------------------------------------------------------------------------35
PRÁCTICA 8
Representación de variables en un sistema-------------------------------------------------------------------------------37
PRÁCTICA 9
Representación de la metodología de simulación-----------------------------------------------------------------------41
PRÁCTICA 10
Programación de un sistema que aplique variables aleatorias-------------------------------------------------------43
PRÁCTICA 11
Implementación de un proyecto final----------------------------------------------------------------------------------------47
INTRODUCCIÓN
Esta asignatura agrupa los conocimientos necesarios para modelar y simular sistemas
discretos y lineales, abarcando desde la generación de números aleatorios, pasando
por métodos para la generación de variables aleatorias, hasta la construcción de
modelos de simulación.
Es por esto que se requiere tener un manual de prácticas que permita al estudiante y
al profesor aplicar los conocimientos teóricos en las prácticas que aquí se presentan.
Son 11 prácticas que comprenden todo el temario de la materia de Simulación, las
prácticas se enfocan en el área de sistemas para que el alumno se familiarice más
con el campo de modelos matemáticos aplicados a cómputo.
Simulación [SCD-1022]
Práctica 1
MODELACIÓN DE UN SISTEMA
Observaciones: Esta práctica incluye a la Práctica # 1 del temario de
Simulación que dice “Modelar un sistema real y aplicar las etapas de un
proyecto de simulación”.
1.- OBJETIVO
Modelar un sistema que será entregable como proyecto final, iniciando con la etapa de Definición del
sistema hasta llegar a la etapa de Documentación.
Colección de datos:
Es importante que se definan con claridad y exactitud los datos que el modelo va a requerir para
producir los resultados deseados.
Validación:
A través de esta etapa es posible detallar deficiencias en la formulación del modelo o en los datos
alimentados al modelo. Las formas más comunes de validar un modelo son:
o La opinión de expertos sobre los resultados de la simulación.
o La exactitud con que se predicen datos históricos.
o La exactitud en la predicción del futuro.
o La comprobación de falla del modelo de simulación al utilizar datos que hacen fallar al sistema
real.
o La aceptación y confianza en el modelo de la persona que hará uso de los resultados que
arroje el experimento de simulación.
Verificación y Validación:
Se pueden producir errores en cualquiera de las fases del proceso de desarrollo de un programa:
o Validación: consiste en comprobar que tanto el algoritmo como el programa cumplen la
especificación del problema; responde a la pregunta: estamos resolviendo el problema
correcto?
o Verificación: se refiere a la comprobación de que son correctos y completos; responde a la
pregunta: ¿estamos resolviendo el problema de forma correcta?
Una parte importante de la verificación y la validación es la ejecución del programa con distintos
conjuntos de datos:
o Modo interactivo: el usuario introduce los valores de los datos durante la ejecución del
programa (desde el teclado), y se muestra la salida producida por el programa directamente al
usuario (normalmente en una pantalla).
o Procesamiento por lotes: el usuario debe preparar un archivo que contenga el programa, los
datos y quizá ciertas órdenes; la ejecución se lleva a cabo sin ninguna interacción con el
usuario.
Manejo de errores:
Simulación [SCD-1022]
Los errores pueden detectarse en distintas fases del procesamiento del programa y provocar la
detención del proceso.
o Errores sintácticos o errores en tiempo de compilación.
o Puntuación incorrecta o palabras claves escritas incorrectamente; se detectan en
tiempo de compilación y normalmente hacen imposible completar la compilación y
ejecutar el programa.
o Errores en tiempo de ejecución.
o Dividir por cero en una expresión aritmética; pueden no ser detectados hasta que ha
comenzado la ejecución del programa.
o Errores lógicos.
o Surgen en el diseño del algoritmo o en la codificación del programa que implemente el
algoritmo; no ocurre ningún error durante la compilación o la ejecución del programa,
pero la salida producida no es correcta.
Experimentación:
La experimentación con el modelo se realiza después que éste haya sido validado. La experimentación
consiste en generar los datos deseados y en realizar un análisis de sensibilidad de los índices
requeridos.
El proceso de prueba:
Consiste en ejecutar un programa varias veces con datos de entrada distintos para los que se conoce
los resultados correctos. Este proceso es importante para evaluar la corrección de un programa. Los
datos de prueba deben seleccionarse cuidadosamente, de forma que se pruebe cada parte del
programa.
Interpretación:
En esta etapa del estudio, se interpretan los resultados que arroja la simulación y con base a esto se
toma una decisión. Es obvio que los resultados que se obtienen de un estudio de simulación ayuda a
soportar decisiones del tipo semi-estructurado.
Documentación:
Dos tipos de documentación son requeridos para hacer un mejor uso del modelo de simulación.
o Documentación del tipo técnico
o Manual del usuario, con el cual se facilita la interacción y el uso del modelo desarrollado.
Simulación [SCD-1022]
Dependiendo del tamaño del grupo, se harán equipos de a lo más 6 integrantes, a cada equipo se le
asignará un proyecto al inicio del curso, el cuál desarrollará durante el curso de simulación, para esta
práctica, los equipos deberán ir realizando las etapas que correspondan a su proyecto final, para que
cuando termine el curso, se concluya con todas las etapas de simulación y puedan entregar un
proyecto de calidad. Los proyectos los definirá cada profesor que imparta la asignatura.
5. RESULTADOS
Se espera que al finalizar esta competencia, los alumnos tengan bien identificadas las distintas etapas de un
proyecto de simulación y puedan aplicar las etapas pertinentes a su proyecto final hasta este momento del
curso.
Simulación [SCD-1022]
6. CONCLUSIONES
Esta práctica es de gran importancia para el alumno ya que es el inicio de su proyecto final y sin estas
herramientas le sería muy difícil terminar favorablemente su proyecto de materia.
7.- BIBLIOGRAFÍA
1. ROSS,Sheldon M.Simulación, Segunda Edición, Prentice Hall, México. 1997.
2. BANKS, J. & Carson, J.S. Discrete event system simulation, Ed. Prentice-Hall, Englewood
Cliffs, N.J.1984.
Simulación [SCD-1022]
Práctica 2
GENERADOR DE NÚMEROS PSEUDOALEATORIOS
Observaciones: Esta práctica incluye a la Práctica # 2 del temario de
Simulación que dice “Implementar un generador de números
pseudoaleatorios que dé un periodo completo y que genere más de 4000
números”.
1.- OBJETIVO
Implementar un programa que permita generar números pseudoaleatorios con un ciclo de vida de al
menos 210 valores distintos.
Para poder realizar una simulación que incluya variabilidad dentro de sus eventos, es preciso generar
una serie de números que sean aleatorios por si mismos, y que su aleatoriedad se extrapole al modelo
de simulación que se esta construyendo.
Para realizar una simulación, se requiere de números aleatorios en el intervalo (0,1), a los cuales se
hará referencia como ri, i.e., una secuencia r i= r1, r2, r3, … , rn que contiene n números, todos ellos
diferentes; n recibe el nombre de periodo o ciclo de vida del generador que creó la secuencia ri.
Para simular el comportamiento de una o mas variables aleatorias es necesario contar con un conjunto
suficientemente grande de ri que permita, por ejemplo, que la secuencia tenga al menos un periodo de
vida de n = 231 = 2 147 483 648.
Ejemplo: Suponga que queremos simular el tiempo de atención a clientes en un banco que tiene 5
cajeros en paralelo, cada uno de los cuales atiende aproximadamente a 50 clientes diarios. Para
simular el tiempo de atención se requiere un generador de variables aleatorias en función de ri, por
ejemplo, Ti = 5 + 2ri, expresando minutos para toda i = 1 hasta n. Para simular el tiempo de atención de
manera aislada, i.e., sin considerar el tiempo transcurrido desde la llegada de éstos, serán necesarios 5
* 50 = 250 números r i para simular un día. Si deseáramos simular 5 días se necesitarían 250 * 5 = 1250
ri. ahora bien si consideramos el tiempo de llegada de los clientes, necesitaríamos de 250 r i para simular
el tiempo transcurrido desde la llegada al banco de los 250 clientes al día y 250 * 5 = 1250 números r i
para simular el correspondiente al total de clientes atendidos durante 5 días
Por lo tanto se requieren 2500 números pseudoaleatorios r i para simular la operación del banco en los 5
días.
Simulación [SCD-1022]
o Cuadrados Medios
o Productos Medios
o Multiplicador Constante
o Lineal
o Congruencial Multiplicativo
o Congruencial Aditivo
o Congruencial No Lineal
o Blum, Blum y Shub
Cuadrados Medios
Requiere un número entero detonador (semilla) con D dígitos, el cual es elevado al cuadrado para
seleccionar del resultado los D dígitos del centro; el primer número ri se determina simplemente
anteponiendo el “0.” a esos dígitos. Para obtener el segundo ri se sigue el mismo procedimiento, solo
que ahora se elevan al cuadrado los D dígitos del centro que se seleccionaron para obtener el primer ri.
Éste método se repite hasta obtener n números ri.
Algoritmo:
Ejemplo:
Generar los primeros 15 números ri a partir de la semilla X0 =5894. Observemos que D= 4 dígitos
Congruencial Aditivo
Este algoritmo requiere una secuencia previa de n números enteros x1, x2, x3,…, xn para generar una
nueva secuencia de números enteros que empieza en xn+1, xn+2, xn+3,…. Su ecuación recursiva es:
ri = xi/(m-1)
Simulación [SCD-1022]
Ejemplo:
Sean x1=65, x2=89, x3=98, x4=03, x5=69. Para generar r 1, r2, r3, r4, r5, r6 y r7, antes es necesario generar x6,
x7, x8, x9, x10, x11, x12.
5. RESULTADOS
Al finalizar los programas, el alumno deberá ser capaz de analizar qué tipo de algoritmo es mejor ante
situaciones que requieren generar un cierto periodo de vida de números pseudoaleatorios.
6. CONCLUSIONES
Ésta práctica es la base para generar variables aleatorias discretas y continuas, por lo que es muy importante
que aprenda a generar sus NPA con los algoritmos vistos en clases para que en la siguiente unidad los pueda
utilizar en sus programas.
7.- BIBLIOGRAFÍA
1. ROSS,Sheldon M.Simulación, Segunda Edición, Prentice Hall, México. 1997.
2. BANKS, J. & Carson, J.S. Discrete event system simulation, Ed. Prentice-Hall, Englewood
Cliffs, N.J.1984.
Simulación [SCD-1022]
Simulación [SCD-1022]
Práctica 3
PRUEBAS DE ALEATORIEDAD A NÚMEROS
PSEUDOALEATORIOS
Observaciones: Esta práctica incluye a la Práctica # 3 del temario de
Simulación que dice “Aplicar las pruebas de aleatoriedad, uniformidad e
independencia a las series obtenidas en la práctica anterior, utilizando un
lenguaje de programación o una aplicación”.
1.- OBJETIVO
Aplicar diferentes pruebas de aleatoriedad que cumplan las propiedades deseadas de uniformidad e
independencia a los números pseudoaleatorios para poder aceptar o rechazar el número dado.
Desde hace ya algunos años, se utilizan computadoras digitales para implementar programas a los que
llamamos generadores de números pseudoaleatorios o simplemente generadores, los cuales mediante
reglas deterministas y operaciones aritméticas muchas veces sencillas, producen sucesiones de
números que se asemejan en un sentido limitado, a las obtenidas mediante un experimento aleatorio y
que se denominan sucesiones de números pseudoaleatorios.
Se conocen muchas implementaciones diferentes para generar números pseudoaleatorios que hacen
uso de una gran variedad de técnicas y algoritmos que comprenden desde el uso de algoritmos de
congruencias lineales hasta otros asociados con autómatas celulares, algoritmos de criptografía de
curvas elípticas, etcétera.
La actual utilización de series muy grandes de números pseudoaleatorios en muchas aplicaciones, así
como algunos episodios de resultados dudosos, obtenidos debido a la baja calidad de los generadores
utilizados, ha fortalecido la necesidad de contar con mejores y cada vez más eficientes pruebas de la
calidad. El campo de investigación de las pruebas de calidad de generadores de números
pseudoaleatorios (y por supuesto, también de su implementación), es tan activo que prácticamente no
hay mes en el que no se reporten en la literatura científica nuevas pruebas de calidad que utilizan una
gran variedad de criterios y técnicas (teoría de la información, técnicas estadísticas, power spectrum,
gambling tests, sistemas físicos, entropía, etc.).
Simulación [SCD-1022]
Las pruebas de calidad de los generadores de números pseudoaleatorios se pueden dividir en:
Pruebas de aleatoriedad
Para comprobar si los números aleatorios obtenidos cumplen las propiedades deseadas de uniformidad
e independencia se deben realizar una serie de pruebas.
o Prueba de frecuencia.
o Pruebas de series.
o Prueba de autocorrelación.
o Prueba de saltos.
o Prueba de poker.
o H0: Ri ~ U[0,1]
o H1: Ri ≠ U[0,1]
La hipótesis nula supone que la secuencia de números obtenidos está distribuida uniformemente en el
intervalo [0,1].
La prueba básica a la que se debiera someter cualquier nuevo generador de números aleatorios es la
de uniformidad. Existen dos métodos para realizar esta prueba:
o Prueba de Kolmogorv-Smirnov.
o Prueba de chi-cuadrado.
Para una muestra de R1, R2, ...,RN la función de distribución acumulada, SN(x), está definida por:
SN(x) = (número de R1, R2, ...,RN que son ≤ 1)/N
o Se obtiene D = max(D+,D-)
o Se compara con el valor de la tabla para un α dado.
Sean 5 números 0,44, 0,81, 0,14, 0,05, 0,93 generados por algún método.
o La cantidad de aleatorios esperados en cada una de las clases del histograma será de cinco
datos como mínimo.
o Para aplicar esta prueba se necesita un conjunto de (N) aleatorios que sean calculados con el
generador que se desea probar, y ejecutar los siguientes pasos: (N >= 50)
2.- Calcular el número de datos esperados en cada clase del histograma suponiendo aleatorios
idealmente uniformes.
3.- Calcular el estadístico Chi-cero cuadrado con las diferencias entre las cantidades de aleatorios
esperados (Ei) y los observados realmente (Oi) en cada una de las (n) clases del histograma, según la
muestra que se inspecciona.
4.- Se establece el nivel máximo de variación del estadístico que se calcula (ji-cero) cuando los grados
de libertad son iguales al número de clases menos uno; y la significación de la prueba es alfa. Estos
valores se encuentran tabulados para la prueba de la Chi-cuadrada.
5.- Se compara el estadístico calculado con el máximo permitido que leyó de tablas; si es menor
entonces se concluye que no hay evidencia estadística para afirmar que los aleatorios de la muestra no
tienen una distribución uniforme. Si es mayor no se acepta la hipótesis de uniformidad en los aleatorios
generados.
Paso 1.- Se organizan los datos en un histograma, supongamos con 10 clases de igual longitud,
encuentre la cantidad de aleatorios que cae en cada clase. En este caso los resultados se muestran a
continuación:
Paso 2.- Calcular los datos esperados en cada clase si el generador fuese completamente uniforme.
En ese caso en cada clase se esperan la misma cantidad de números es decir 100/10=10; en general
se esperan Ei datos en cada clase donde
Con esto se verifica que se cumple con las condiciones de Chi-cuadrada que son: N > = 50 y Ei > = 5.
Por tanto se puede aplicar la prueba.
Paso 3.- Calcular el estadístico chi-cero cuadrada con las diferencias entre la cantidad esperada y la
observada en cada una de las clases.
Tabla 3: de Chi-cuadrada
Simulación [SCD-1022]
Paso 4.- El valor máximo aceptable se lee de tablas para un alfa de 0.05 y grados de libertad 10-1=9;
cuyo valor es: 16.9 (tabla para Chi-cuadrada).
Paso 5.- Como 16.9 > 1.2 entonces no hay evidencia estadística para rechazar la hipótesis de
uniformidad en los números generados. Por tanto se acepta la uniformidad en ellos.
5. RESULTADOS
Tener una lista de números a los que se les ha aplicado las pruebas necesarias para aceptar o rechazar
los números generados.
6. CONCLUSIONES
Ésta práctica ayuda a que el estudiante proponga números que al menos se distribuyan uniformemente para
que la generación no se cargue en un pequeño intervalo.
Simulación [SCD-1022]
7.- BIBLIOGRAFÍA
1. ROSS,Sheldon M.Simulación, Segunda Edición, Prentice Hall, México. 1997.
2. BANKS, J. & Carson, J.S. Discrete event system simulation, Ed. Prentice-Hall, Englewood
Cliffs, N.J.1984.
Simulación [SCD-1022]
Práctica 4
MÉTODO DE MONTECARLO
Observaciones: Esta práctica incluye a la Práctica # 4 del temario de
Simulación que dice “Aplicar el método de Montecarlo para la solución de una
integral utilizando números pseduoaleatorios de la práctica anterior”.
1.- OBJETIVO
Comprender el funcionamiento y posibles aplicaciones del método de Montecarlo en la simulación y
ejemplificar con los juegos que requieren el uso de números aleatorios, probabilidad y estadística.
Bajo el nombre de Método Monte Carlo o Simulación Monte Carlo se agrupan una serie de
procedimientos que analizan distribuciones de variables aleatorias usando simulación de números
aleatorios.
El Método de Monte Carlo da solución a una gran variedad de problemas matemáticos haciendo
experimentos con muestreos estadísticos en una computadora. El método es aplicable a cualquier tipo
de problema, ya sea estocástico o determinístico.
Generalmente en estadística los modelos aleatorios se usan para simular fenómenos que poseen algún
componente aleatorio. Pero en el método Monte Carlo, por otro lado, el objeto de la investigación es el
objeto en sí mismo, un suceso aleatorio o pseudo-aleatorio se usa para estudiar el modelo.
A veces la aplicación del método Monte Carlo se usa para analizar problemas que no tienen un
componente aleatorio explícito; en estos casos un parámetro determinista del problema se expresa
como una distribución aleatoria y se simula dicha distribución. Un ejemplo sería el famoso problema de
las Agujas de Bufón.
La simulación de Monte Carlo también fue creada para resolver integrales que no se pueden resolver
por métodos analíticos, para solucionar estas integrales se usaron números aleatorios. Posteriormente
se utilizó para cualquier esquema que emplee números aleatorios, usando variables aleatorias con
distribuciones de probabilidad conocidas, el cual es usado para resolver ciertos problemas estocásticos
y determinísticos, donde el tiempo no juega un papel importante.
El algoritmo de Simulación Monte Carlo Crudo o Puro está fundamentado en la generación de números
aleatorios por el método de Transformación Inversa, el cual se basa en las distribuciones acumuladas
de frecuencias:
3. Determinar el valor de la V.A. para el número aleatorio generado de acuerdo a las clases que
tengamos.
4. Calcular media, desviación estándar error y realizar el histograma.
5. Analizar resultados para distintos tamaños de muestra.
Otra opción para trabajar con Monte Carlo, cuando la variable aleatoria no es directamente el resultado
de la simulación o tenemos relaciones entre variables es la siguiente:
Las principales características a tener en cuenta para la implementación o utilización del algoritmo son:
o El sistema debe ser descripto por 1 o más funciones de distribución de probabilidad (fdp)
o Generador de números aleatorios: como se generan los números aleatorios es importante para
evitar que se produzca correlación entre los valores muestrales.
o Establecer límites y reglas de muestreo para las fdp: conocemos que valores
o pueden adoptar las variables.
o Definir Scoring: Cuando un valor aleatorio tiene o no sentido para el modelo a simular.
o Estimación Error: Con que error trabajamos, cuanto error podemos aceptar para que una
corrida sea válida?
o Técnicas de reducción de varianza.
o Paralelización y vectorización: En aplicaciones con muchas variables se estudia trabajar con
varios procesadores paralelos para realizar la simulación.
Ejemplo:
Tenemos la siguiente distribución de probabilidades para una demanda aleatoria y queremos ver qué
sucede con el promedio de la demanda en varias iteraciones:
Simulación [SCD-1022]
Utilizando la distribución acumulada (F(x) es la probabilidad que la variable aleatoria tome valores
menores o iguales a x) podemos determinar cuál es el valor obtenido de unidades cuando se genera un
número aleatorio a partir de una distribución continua uniforme. Este método de generación de variable
aleatoria se llama Transformación Inversa.
Generando los valores aleatorios vamos a ver como se obtiene el valor de la demanda para cada día,
interesándonos en este caso como es el orden de aparición de los valores. Se busca el número
aleatorio generado en la tabla de probabilidades acumuladas, una vez encontrado (si no es el valor
exacto, éste debe se menor que el de la fila seleccionada pero mayor que el de la fila anterior), de esa
fila tomada como solución se toma el valor de las unidades (Cuando trabajamos en Excel debemos
tomar el límite inferior del intervalo para busca en las
acumuladas, para poder emplear la función BUSCARV(),
para 42 sería 0, para 43 0,100001 y así sucesivamente).
Ejemplo: Supongamos que el número aleatorio generado
sea 0,52, ¿a qué valor de unidades corresponde? Nos
fijamos en la columna de frecuencias acumuladas, ese
valor exacto no aparece, el siguiente mayor es 0,70 y
corresponde a 48 unidades. Se puede apreciar mejor en el
gráfico, trazando una recta desde el eje de la frecuencia
hasta que intersecta con la línea de la función acumulada,
luego se baja a la coordenada de unidades y se obtiene el
valor correspondiente; en este caso 48. Cuando trabajamos con variables discretas la función
acumulada tiene un intervalo o salto para cada variable (para casos prácticos hay que definir los
intervalos y luego con una función de búsqueda hallar el valor). Para funciones continuas se puede
hallar la inversa de la función acumulada.
En la siguiente tabla, vemos como a medida que aumenta el numero de simulaciones, el valor simulado
se acerca al valor original de la media y desviación estándar, además de la disminución del error típico.
Si deseamos reproducir, mediante números aleatorios, la tirada sucesiva de una moneda, debemos
previamente asignarle un intervalo de números aleatorios a CARA y otro a CRUZ, de manera de poder
interpretar el resultado de la simulación. Tales intervalos se asignan en función de las probabilidades de
ocurrencia de cada cara de la moneda. Tenemos así:
Después, al generar un número aleatorio a partir de la función RAN de la calculadora, por ejemplo,
obtenemos el resultado simulado. Así, si obtenemos el número aleatorio 0,385, observamos que está
incluido en el intervalo asignado a CARA.
5. RESULTADOS
Que el alumno aplique ésta técnica en la unidad 5: Proyecto integrador.
Simulación [SCD-1022]
6. CONCLUSIONES
Ésta práctica le sirve al alumno a concluir de forma satisfactoria su proyecto integrador de materia, ya que es
muy importante aplicar el método de Montecarlo a los proyectos.
7.- BIBLIOGRAFÍA
1. ROSS,Sheldon M.Simulación, Segunda Edición, Prentice Hall, México. 1997.
2. BANKS, J. & Carson, J.S. Discrete event system simulation, Ed. Prentice-Hall, Englewood
Cliffs, N.J.1984.
Simulación [SCD-1022]
Práctica 5
GENERACIÓN DE VARIABLES ALEATORIAS CONTINUAS
Observaciones: Esta práctica incluye a la Práctica # 5 del temario de
Simulación que dice “Generar variables aleatorias continuas utilizando los
números pseudoaleatorios probados en la práctica 3, implementarlo en un
lenguaje de propósito general”.
1.- OBJETIVO
Crear un programa que permita simular a través de variables aleatorias discretas los t tiempos de
llegada de n clientes a un supermercado.
Reglas:
1. La suma de las probabilidades asociadas a todos los valores posibles de la variable aleatoria es 1.
2. La probabilidad de que un posible valor de la variable x se presente siempre es mayor o igual a 0.
3. El valor esperado de la distribución de la variable aleatoria es la media de la misma, la cual a su
vez estima la verdadera media de la población.
P(X) = 0
∑ pi=1
i=0
P(a ≤ x ≤ b) =
b
∑ pi= p a+ …+ pb
i=a
Suponga que queremos generar el valor de una Variable Aleatoria Discreta X con función de masa de
probabilidad:
∑ p j=1
j
Para esto generamos un número aleatorio U; es decir, U está distribuido uniformemente en el intervalo
[0,1] y sea
X0 si U < P0
X1 si P0 ≤ U < P0 + P1
Simulación [SCD-1022]
…
Xj si
X=
j−1 j
∑ pi ≤U ≤ ∑ pi
i=1 i=1
Y entonces, X tiene la distribución deseada. Podríamos escribir lo anterior en forma algorítmica como:
Así, una forma de generar el proceso es generar estos tiempos entre llegadas. Así, si generamos n
números aleatorios U1, U2,…, Un y Xi = (-1/ƛ)(log Ui), entonces Xi se puede considerar como el tiempo
entre el (i - 1) - ésimo y el i-ésimo evento en el proceso Poisson.
Como el tiempo real del j-ésimo evento será igual a la suma de los primeros j tiempos entre llegadas,
los valores generados por los primeros tiempos de evento son:
j
∑ Xi j=1, 2, …
i=1
Si quisiéramos generar las primeras T unidades de tiempo del proceso Poisson podemos seguir el
procedimiento:
Generemos de manera sucesiva los tiempos entre las llegadas y nos detenemos cuando su suma
exceda a T. con el siguiente algoritmo se generan todos los tiempos de eventos que ocurren en (0,T) de
un proceso Poisson con razón ƛ.
En el algoritmo, t se refiere al tiempo, I es el número de eventos que han ocurrido hasta el instante t, y,
S (I) es el tiempo del evento más reciente.
Algoritmo: Generación de las primeras T unidades de tiempo de un proceso de Poisson con razón ƛ:
Paso 1: t = 0; I = 0;
Paso 2: generamos un número aleatorio U
Paso 3: t = t – logU; si t > T terminar
Paso 4: I = I + 1; S (I) = t
Paso 5: Ir al paso 2
El valor final de I en el algoritmo anterior representará el número de eventos que ocurren hasta el
instante T, y los valores S(1), S(2), …, S(I) serán los I tiempos de evento en orden creciente.
Crear un programa utilizando el procesos de Poisson para generar variables aleatorias discretas que
nos indiquen cuántos clientes llegan a un supermercado en un tiempo T = 12. Esto permite visualizar el
comportamiento de llegada de los clientes a un supermercado en el lapso de 12 horas
5. RESULTADOS
Al terminar la práctica, el alumno debe ser capaz de identificar claramente el comportamiento de un
proceso Poisson para los t tiempos de llegada de n clientes.
6. CONCLUSIONES
Ésta práctica aplica los conocimientos previos de la generación de números aleatorios y aprende a
identificar la diferencia entre variables aleatorias contínuas y variables aleatorias discretas.
7.- BIBLIOGRAFÍA
1. ROSS,Sheldon M.Simulación, Segunda Edición, Prentice Hall, México. 1997.
2. BANKS, J. & Carson, J.S. Discrete event system simulation, Ed. Prentice-Hall, Englewood
Cliffs, N.J.1984.
Simulación [SCD-1022]
Práctica 6
PRUEBAS ESTADÍSTICAS A VARIABLES ALEATORIAS
Observaciones: Esta práctica incluye a la Práctica # 6 del temario de
Simulación que dice “Implementar pruebas estadísticas a las variables
generadas en las 2 prácticas anteriores”.
1.- OBJETIVO
Aplicar las pruebas estadísticas de promedios a las variables aleatorias generadas con los métodos de
Poisson o la distribución binomial en la práctica anterior.
Las variables aleatorias no uniformes (normal, exponencial, Poisson, etc), se obtienen a partir de
números uniformes por lo que se debe poner énfasis con respecto al generador de números
pseudoaleatorios, ya que la deficiencia estadística de una distribución no uniforme se deberá
exclusivamente a un generador eficiente.
PRUEBAS ESTADISTICAS.
o PRUEBA DE PROMEDIOS
La función de probabilidad más simple es la distribución uniforme que se caracteriza por ser constante
en el intervalo (0,1) y cero fuera de él. También se llama “RECTANGULAR”
Densidad uniforme:
1 si 0 < X < 1
f(x) =
0 si 0 > X > 1
F(x) = X
E(x) = ½
VAR = 1/12
Conociendo los parámetros de la distribución uniforme, es posible plantear una prueba de hipótesis de
promedios para probar que los números pseudoaleatorios provienen de un universo uniforme con
media 0.5
Simulación [SCD-1022]
Para realizar la prueba se requiere una muestra de tamaño N de números pseudoaleatorios. Se evalúa
se promedio aritmético.
Media = U1 + U2 +..... Un / N
Zo = ( (Media – ½ ) √ n ) / √1/12
α = nivel de significancia
Si /Zo/ < Zα/2 no se rechaza la hipótesis de que los números provienen de una distribución uniforme
PRUEBA DE FRECUENCIAS
Una de las pruebas más importantes es la prueba de frecuencias sobre los números pseudoaleatorios.
Si estas frecuencias son bastante parecidas, entonces provienen de una distribución uniforme.
X2
El estadístico usado es 0 = (chi- cuadrada) y se obtiene con la expresión
2
FOi FEi
X2
0 FEi
X2
Este estadístico 0 se compara con:
Simulación [SCD-1022]
2 La cual representa una variable aleatoria chi cuadrada con n-1 grados de libertad y un
X
, n 1 nivel de significancia de α
Si
X2 X 2
0 , n 1
Entonces, no se puede rechazar la hipótesis de que la muestra proviene de una
distribución uniforme.
Devuelve la probabilidad de una variable aleatoria continua siguiendo una distribución chi cuadrado de
una sola cola. La distribución γ2 está asociada a una prueba γ2. Utilice la prueba γ2 para comparar los
valores observados con los esperados. Por ejemplo, un experimento genético podría estar basado en la
hipótesis de que la próxima generación de plantas presentará un conjunto determinado de colores. Al
comparar los resultados observados con los resultados esperados, puede decidir si su hipótesis original
es válida.
Sintaxis:
DISTR.CHI(x;grados_de_libertad)
Observaciones
PRUEBA.CHI
Sintaxis:
PRUEBA.CHI(rango_actual;rango_esperado)
Rango_actual es el rango de datos que contiene observaciones para probar frente a valores esperados.
Rango_esperado es el rango de datos que contiene la relación del producto de los totales de filas y
columnas con el total global.
Observaciones
Simulación [SCD-1022]
PRUEBA.CHI.INV
Devuelve para una probabilidad dada, de una sola cola, el valor de la variable aleatoria siguiendo una
distribución chi cuadrado. Si el argumento probabilidad = DISTR.CHI(x;...), entonces
PRUEBA.CHI.INV(probabilidad,...) = x. Utilice esta función para comparar los resultados observados
con los resultados esperados, a fin de decidir si la hipótesis original es válida.
Sintaxis:
PRUEBA.CHI.INV(probabilidad;grados_de_libertad)
Observaciones
PRUEBA.CHI.INV usa una técnica iterativa para calcular la función. Dado un valor de probabilidad,
PRUEBA.CHI.INV itera hasta que el resultado tenga una exactitud de ± 3x10^-7. Si PRUEBA.CHI.INV
no converge después de 100 iteraciones, la función devuelve el valor de error #N/A.
Aplicar las pruebas estadísticas que permitan aceptar o rechazar una variable aleatoria continua o
discreta.
Disponemos de una hoja de cálculo con las horas trabajadas durante una semana por los
trabajadores de una plan ta de procesado de fruta de una empresa según los diferentes
cargos que ocupa.
Queremos crear una tabla dinámica que muestre, para cada empleado de la empresa, en páginas
individuales, el total de horas trabajadas en cada uno de las funciones durante la última semana.
Sitúate en una de las celdas que contienen los datos y ve a Datos (Menú principal), Asistente para
tablas dinámicas. Se iniciará el Asistente, que consta de cuatro cuadros de diálogo consecutivos.
En el primer cuadro de diálogo (paso 1 de 4) se solicita el origen de los datos a organizar en forma de
tabla dinámica, en éste caso, dejamos la opción preseleccionada (Lista o base de datos de Microsoft
Excel) y pulsamos siguiente.
En el siguiente cuadro de dialogo (paso 2 de 4) permite seleccionar el rango de celdas en el que están
situados los datos a organizar.
En la parte derecha de la ventana se muestra un botón para cada campo de la lista y en la parte
izquierda aparece el área en donde se diseñará la tabla, que está dividida en cuatro secciones
(PÁGINA, FILA, COLUMNA y DATOS), en las que se pueden colocar los distintos campos, pulsando
sobre el botón del campo y arrastrándolo a una sección.
A la hora de organizar los datos en nuestro ejemplo deberá tenerse en cuenta lo siguiente:
1. El campo que se coloque en la sección PÁGINA aparecerá en forma de una lista desplegable desde
la que se podrá seleccionar aquel elemento del que se desee mostrar el resumen. Existirá además la
posibilidad de mostrar el resumen correspondiente a cada empleado en una hoja diferente.
Simulación [SCD-1022]
2. El campo que se coloque en la sección FILA mostrará sus elementos como encabezados o títulos de
las filas en la tabla
3. El campo que se coloque en la sección COLUMNA, mostrará sus elementos como encabezados de
las columnas de la tabla
4. En cuanto al campo que se coloque en la sección DATOS, sus datos se someterán a una
determinada operación de cálculo: Suma (es la que se ofrece por defecto cuando los datos de este
campo son todos numéricos), Contar (la que se ofrece por defecto en los demás casos), Promedio,
Mínimo, Máximo, Producto, etc.
En nuestro ejemplo, por tanto, colocaremos los campos del siguiente modo:
Notas:
a) La forma elegida aquí para organizar los datos sólo es una de entre todas las posibles. Cabe
organizar los datos de otra manera; no obstante, hemos de procurar que la forma elegida sea la más
clara y fácil de interpretar.
b) Aunque los datos de una tabla dinámica tienen el mismo aspecto que cualquier hoja de cálculo, no
se pueden introducir ni editar los datos directamente en ella. Para modificar sus resultados deberán
modificarse forzosamente los datos a partir de los cuales se ha creado.
c) No obstante, las tablas dinámicas no se actualizan automáticamente cuando los datos de origen
cambian, sino que, cambiados los datos fuente es necesario seleccionar con el botón derecho del ratón
una celda cualquiera de la tabla y elegir la opción Actualizar datos del menú contextual
correspondiente.
d) Una vez creada la tabla dinámica, se puede cambiar fácilmente su diseño arrastrando los botones
sombreados con los nombres de los campos a otras posiciones de la tabla (por esta razón se llaman
“dinámicas”, precisamente)
5. RESULTADOS
Al terminar la práctica, el estudiante entenderá de una mejor manera que no todas las variables aleatorias que
se creen con un generador de variables aleatorias pueden ser aceptadas, para lo cual debemos aplicar ciertas
pruebas estadísticas.
6. CONCLUSIONES
Ésta práctica nos ayuda a analizar cuando una variables aleatoria discreta o continua la podemos tomar como
válida o rechazarla.
7.- BIBLIOGRAFÍA
1. ROSS,Sheldon M.Simulación, Segunda Edición, Prentice Hall, México. 1997.
2. BANKS, J. & Carson, J.S. Discrete event system simulation, Ed. Prentice-Hall, Englewood
Cliffs, N.J.1984.
Simulación [SCD-1022]
Práctica 7
APLICACIÓN DE LA SIMULACIÓN
Observaciones: Esta práctica incluye a la Práctica # 7 del temario de
Simulación que dice “Identificación y análisis de un sistema en donde se
puede aplicar la simulación”.
1.- OBJETIVO
El alumno identifique y realice un análisis de sistemas reales donde se puedan aplicar las etapas y
conceptos de la simulación tanto en el campo de las ciencias exactas como en el campo del área de
ingeniería
Aplicaciones de la simulación:
o Análisis del impacto ambiental .
o Análisis y diseño de sistemas de comunicaciones.
o Evaluación del diseño de organismos prestadores de servicios públicos (por ejemplo:
hospitales, oficinas de correos, telégrafos, casas de cambio, etc.).
o Análisis de sistemas de transporte terrestre, marítimo o por aire.
Simulación [SCD-1022]
Mostrar en un video la corrida de un programa que este simulando el tráfico de una ciudad, en el que
coloquemos diferentes criterios de tráfico, como pueden ser calles cerradas, mas semáforos, etc. Con
el fin de que el alumno identifique claramente lo que es un proceso de simulación de eventos discretos
o continuos. El software que se puede utilizar para la simulación es starlogo o en internet, visitando la
siguiente página: http://www.traffic-simulation.de/
5. RESULTADOS
El alumno identifique más áreas de aplicación de la simulación en la vida cotidiana.
6. CONCLUSIONES
Ésta práctica ayuda al alumno a identificar sistemas que requieren ser simulados.
7.- BIBLIOGRAFÍA
1. ROSS,Sheldon M.Simulación, Segunda Edición, Prentice Hall, México. 1997.
2. BANKS, J. & Carson, J.S. Discrete event system simulation, Ed. Prentice-Hall, Englewood
Cliffs, N.J.1984.
3. http://www.traffic-simulation.de/ (visitada en Julio 2013)
Simulación [SCD-1022]
Práctica 8
REPRESENTACIÓN DE VARIABLES EN UN SISTEMA
Observaciones: Esta práctica incluye a la Práctica # 8 del temario de
Simulación que dice “Identificación y representación de cada uno de los
eventos y variables de un sistema simulado”.
1.- OBJETIVO
Identificar las variables (tiempo, edad, llegadas, etc.) y eventos (atendido, llegada, en espera, etc.) que
están dentro de un sistema simulado.
En procesos, Son aquellas variables que permiten conocer y controlar los procesos. Las variables
pueden ser:
o Temperatura
o Presión
o Nivel
o Caudal
o Distancia
o Posiciones
o Torque
Variable independiente: variables que el investigador manipula y/o mide para ver los efectos que
produce sobre otra variable.
Variable moderadora: tipo de variable independiente que se manipula y/o mide para comprobar si
modifica la relación entre la variable independiente y la variable dependiente. Se incluye para ver sus
efectos sobre la variable dependiente, pero el investigador le da un papel secundario
Variable de control: es un tipo de variable independiente que no se manipula sino que se mantiene
constante para neutralizar sus efectos sobre la variable dependiente (ya que en un experimento no es
posible estudiar simultáneamente todas las variables independientes)
Variables dependientes: variables cuyos valores van a depender de los valores de la o las variables
independientes
Variable independiente
Variable moderadora
Variable mediadora Variable dependiente
Variable aleatorizada
Causas
1. Definir los indicadores a utilizar para cada dimensión (y componente) que se desee medir
2. Definir los extremos generales de variación de los indicadores
3. Definir los extremos de cada intervalo de medición de los indicadores
4. Definir los instrumentos de medición de cada indicador
5. Definir las condiciones operacionales de la medición de cada indicador
Simulación [SCD-1022]
En general las variables pueden ser medidas de formas diferentes y no todas conducen a resultados
equivalentes
La medición puede ser un proceso sumamente complejo cuando se trata de variable s de múltiples
dimensiones, componentes y condiciones específicas de medición
El concepto de sistema de evento discreto tiene por finalidad identificar a sistemas en los que los
eventos que cambian el estado del mismo ocurren en instantes espaciados en el tiempo, a diferencia
de los sistemas cuyo estado puede cambiar continuamente en el tiempo (como la posición de un
vehículo en movimiento). Aunque aparentemente simples, los sistemas de eventos discretos, pueden
modelar muchos de los fenómenos que enfrentan los responsables de la administración de los
procesos productivos en una empresa. Por ejemplo, los inventarios de cualquier producto sólo se
alteran ante la ocurrencia de alguno de dos eventos: (1) ingreso de un lote de abastecimiento, o (2)
retiro de cierta cantidad del producto para satisfacer el pedido de un cliente, de la misma manera como
el dinero disponible en cualquier cuenta bancaria sólo puede cambiar a consecuencia de un depósito, o
a consecuencia de un retiro Rico (1992)
Los primeros intentos para simular sistemas de eventos discretos, datan de la década de los años 60,
donde se desarrollan las primeras simulaciones en ordenador para planear proyectos de gran
envergadura, aunque a un costo alto y utilizando lenguajes de propósito general (a menudo
FORTRAN). Las primeras herramientas para facilitar el uso de la simulación de evento discreto
aparecen en la forma de lenguajes de simulación en la década de los años 70, aunque la programación
en estos lenguajes se realiza todavía por medio de comandos escritos en un archivo. Lenguajes como
GPSS, SIMSCRIPT, SLAM y SIMAN tienen una amplia difusión en los años 80, paralela a una gran
producción científica relacionada con las posibles aplicaciones de la simulación de evento discreto, y el
desarrollo de métodos para el análisis de experimentos por simulación, para generar por ordenador la
ocurrencia de eventos siguiendo patrones probabilísticos, y para permitir que el motor del lenguaje
pueda modelar una gama amplia de aplicaciones.
Actualmente se pueden distinguir en el mercado dos tipos de paquetes para simulación de evento
discreto: los de propósito general y los orientados hacia alguna aplicación o sector industrial específico.
Entre los paquetes más conocidos de propósito general, se pueden mencionar a Arena, Simul8,
GPSS/H, AweSim, y MODSIM III, mientras que entre los paquetes con orientación hacia alguna
aplicación se puede mencionar a AutoMod, ProModel, SIMFACTORY II.5, QUEST y Arena Packaging
Edition para manufactura, COMNET III y OPNET Modeler para redes de comunicaciones,
SIMPROCESS, ProcessModel, ServiceModel y Arena Business Edition para analizar flujos en procesos
de negocios, y MedModel para servicios del cuidado de la salud. Los paquetes mencionados permiten
la programación en un ambiente gráfico por medio de módulos, y pueden incorporar animación a sus
modelos, lo que además de facilitar la programación del modelo de simulación, se constituye en una
herramienta valiosa para la verificación y demostración de las capacidades del modelo.
Acceso a internet
Java Virtual Machine
Cada que se manipule algún evento descrito anteriormente, manipularemos las siguientes variables
Main Inflow
Truck Percentage
Politeness factor
Simulation Speed
Desired Velocity
Acceleration a
Deceleration b
Time Gap T
Minimum gap s0
Realiza un reporte de lo que sucede en cada evento y con las diferentes variables que intervienen en la
simulación del flujo vehicular.
5. RESULTADOS
El alumno al finalizar la practica podrá comprender cada uno de los eventos simulados en control de tráfico,
ya sea si un automóvil ha llegado, si un auto grande, si les toco un semáforo, etc., así como las variables que
influyen en el tráfico: número de autos que llegaron en un tiempo t con razón ƛ.
6. CONCLUSIONES
Esta práctica es muy interactiva por lo que el alumno podrá observar en tiempo real cada uno de los eventos y
variables que intervienen en la simulación del control de tráfico vehicular.
7.- BIBLIOGRAFÍA
1. ROSS,Sheldon M.Simulación, Segunda Edición, Prentice Hall, México. 1997.
2. BANKS, J. & Carson, J.S. Discrete event system simulation, Ed. Prentice-Hall, Englewood
Cliffs, N.J.1984.
3. http://www.traffic-simulation.de/ (visitada en Julio 2013)
Simulación [SCD-1022]
Práctica 9
REPRESENTACIÓN DE LA METODOLOGÍA DE
SIMULACIÓN
Observaciones: Esta práctica incluye a la Práctica # 9 del temario de
Simulación que dice “Análisis y representación de un sistema real empleando
la metodología de simulación”.
1.- OBJETIVO
El alumno debe analizar y desarrollar las diferentes etapas de un modelo de simulación para el
proyecto integrador de materia.
Los pasos para realizara la simulación de un sistema, de manera secuencial consiste en:
La identificación y análisis del objetivo se refiere a definir plenamente el sistema que se estudiará, las
entidades que conforman el sistema, las variables exógenas (independientes o de entrada), las variables
endógenas (dependientes o de estado), las variables de salida, los atributos, las interrelaciones existentes, los
supuestos (ya que no se pueden reflejar todas las condiciones del sistema), el entorno, los límites y el objetivo
del sistema.
La recolección de datos es la parte más lenta y costosa, ya que exige tiempo y dedicación por parte del
responsable de dicha recolección. También es la que reflejará el éxito de los resultados según la calidad de la
información, reflejada por el grado de certeza de ésta.
El diseño del modelo de simulación es donde aterrizaremos los conocimientos e información de los dos
puntos anteriores, dentro de una mezcla que constituirá un reflejo de la esencia del sistema, así como de los
cambios deseados en los parámetros y variables para ver distintos escenarios de éste.
La construcción del modelo de simulación está enfocado, a la captura del código en la computadora y que
refleje el diseño del modelo.
Simulación [SCD-1022]
La validación y verificación consiste en despejar todas las dudas que se tengan respecto a la credibilidad del
diseño del modelo, el programa computacional y su funcionamiento.
La simulación es el proceso de repetir el comportamiento del sistema mediante el modelo, bajo diferentes
condiciones en su operación o en sus estímulos; ésta por lo general se realiza aprovechando los medios
computacionales, debido a la rapidez y precisión que brindan.
El análisis de la simulación es la fase donde se estudian los resultados obtenidos mediante varias corridas y
se detectan soluciones al objetivo planteado para el sistema.
Las alternativas de solución generadas es la parte final del proceso y consiste en enmarcar el análisis dentro
de distintas perspectivas para brindar los caminos que puede tomar la empresa.
5. RESULTADOS
Al concluir esta práctica, el alumno ya será capaz de analizar y representar claramente al menos las primeras
tres etapas del modelo de simulación aplicadas a su proyecto final de materia.
6. CONCLUSIONES
Ésta práctica ayuda a que el alumno aplique tres etapas de modelos de simulación a problemas reales.
7.- BIBLIOGRAFÍA
1. ROSS,Sheldon M.Simulación, Segunda Edición, Prentice Hall, México. 1997.
2. BANKS, J. & Carson, J.S. Discrete event system simulation, Ed. Prentice-Hall, Englewood
Cliffs, N.J.1984.
Simulación [SCD-1022]
Práctica 10
PROGRAMACIÓN DE UN SISTEMA QUE APLIQUE
VARIABLES ALEATORIAS
Observaciones: Esta práctica incluye a la Práctica # 10 del temario de
Simulación que dice “Representación, análisis y programación en el
comportamiento de variables aleatorias que representan un evento dentro de
un sistema”.
1.- OBJETIVO
Que el alumno pueda representar en un sistema simulado todos los temas vistos de este curso, desde
variables aleatorias y las etapas de un modelo de simulación.
Programación:
La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas
computacionales. El código fuente es escrito en un lenguaje de programación. El propósito de la
programación es crear programas que exhiban un comportamiento deseado. El proceso de escribir
código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del
lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesariamente
otras tareas tales como el análisis y diseño de la aplicación (pero sí el diseño del código), aunque sí
suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.
Para crear un programa, y que la computadora lo interprete y ejecute las instrucciones escritas en él,
debe usarse un lenguaje de programación. En sus inicios las computadoras interpretaban sólo
instrucciones en un lenguaje específico, del más bajo nivel, conocido como código máquina, siendo
éste excesivamente complicado para programar. De hecho sólo consiste en cadenas de números 1 y 0
(sistema binario). Para facilitar el trabajo de programación, los primeros científicos que trabajaban en el
área decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o letras
provenientes del inglés; las codificaron y crearon así un lenguaje de mayor nivel, que se conoce como
Assembly o lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add
(sumar). En realidad escribir en lenguaje ensamblador es básicamente lo mismo que hacerlo en
lenguaje máquina, pero las letras y palabras son bastante más fáciles de recordar y entender que
secuencias de números binarios. A medida que la complejidad de las tareas que realizaban las
computadoras aumentaba, se hizo necesario disponer de un método sencillo para programar.
Simulación [SCD-1022]
Entonces, se crearon los lenguajes de alto nivel. Mientras que una tarea tan trivial como multiplicar dos
números puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto
nivel bastará con solo una. Una vez que se termina de escribir un programa, sea en ensamblador o en
un lenguaje de alto nivel, es necesario compilarlo, es decir, traducirlo a lenguaje máquina.
La programación debe perseguir la obtención de programas de calidad. Para ello se establece una
serie de factores que determinan la calidad de un programa. Algunos de los factores de calidad más
importantes son los siguientes:
o Corrección. Un programa es correcto si hace lo que debe hacer tal y como se estableció en las
fases previas a su desarrollo. Para determinar si un programa hace lo que debe, es muy
importante especificar claramente qué debe hacer el programa antes de desarrollarlo y, una vez
acabado, compararlo con lo que realmente hace.
o Claridad. Es muy importante que el programa sea lo más claro y legible posible, para facilitar
así su desarrollo y posterior mantenimiento. Al elaborar un programa se debe intentar que su
estructura sea sencilla y coherente, así como cuidar el estilo en la edición; de esta forma se ve
facilitado el trabajo del programador, tanto en la fase de creación como en las fases posteriores
de corrección de errores, ampliaciones, modificaciones, etc. Fases que pueden ser realizadas
incluso por otro programador, con lo cual la claridad es aún más necesaria para que otros
programadores puedan continuar el trabajo fácilmente. Algunos programadores llegan incluso a
utilizar Arte ASCII para delimitar secciones de código. Otros, por diversión o para impedir un
análisis cómodo a otros programadores, recurren al uso de código ofuscado.
o Eficiencia. Se trata de que el programa, además de realizar aquello para lo que fue creado (es
decir, que sea correcto), lo haga gestionando de la mejor forma posible los recursos que utiliza.
Normalmente, al hablar de eficiencia de un programa, se suele hacer referencia al tiempo que
tarda en realizar la tarea para la que ha sido creado y a la cantidad de memoria que necesita,
pero hay otros recursos que también pueden ser de consideración al obtener la eficiencia de un
programa, dependiendo de su naturaleza (espacio en disco que utiliza, tráfico de red que
genera, etc.).
Análisis de sistemas.
El análisis de sistemas es la ciencia encargada del análisis de sistemas grandes y complejos y la
interacción entre esos sistemas. Esta área se encuentra muy relacionada con la Investigación de
operaciones. También se denomina análisis de sistemas a una de las etapas de construcción de un
sistema informático, que consiste en relevar la información actual y proponer los rasgos generales de la
solución futura.
Modelado.
Teoría de sistemas de cómputo es la base de modelado para sistemas complejos, los cuales se dividen
en tres conceptos básicos: unidades, procesos y estructuras. Una vez que se han identificado esos
Simulación [SCD-1022]
componentes, se genera un modelo de teoría de juegos. Este modelo después puede ser llevado a la
simulación.
5. RESULTADOS
Al terminar ésta práctica, los alumnos después de realizar el análisis de variables y eventos que intervienen
en un sistema simulado, deberán ser capaces de poder implementar todas las técnicas vistas en clases.
6. CONCLUSIONES
En ésta práctica los alumnos deben ser capaces de analizar, diseñar e implementar un sistema con eventos.
Simulación [SCD-1022]
7.- BIBLIOGRAFÍA
1. ROSS,Sheldon M.Simulación, Segunda Edición, Prentice Hall, México. 1997.
2. BANKS, J. & Carson, J.S. Discrete event system simulation, Ed. Prentice-Hall, Englewood
Cliffs, N.J.1984.
Simulación [SCD-1022]
Práctica 11
IMPLEMENTACIÓN DE UN PROYECTO FINAL
Observaciones: Esta práctica incluye a la Práctica # 11 del temario de
Simulación que dice “Implementar un modelo (líneas de espera o sistema de
inventario) utilizando una herramienta o lenguaje de simulación”.
1.- OBJETIVO
Implementar un programa en Java, C o cualquier otro lenguaje de programación de los distintos
modelos de colas aplicándolo al área de sistemas computacionales.
Estudiadas por primera vez por A. K. Erlang en 1913: análisis de los servidores telefónicos. Área de
conocimiento denominada teoría de colas (cola es otra denominación para líneas de espera). Problema
de decisión: equilibrio entre el costo de suministrar un buen servicio y el costo de tiempo de espera de
los clientes.
Características de la llegada:
Distribución de la llegada:
o Poisson
o Otras
Tamaño de la población:
o Limitada
o Ilimitada
Llegadas aleatorias:
o Los clientes llegan en forma aleatoria.
o Distribución discreta.
o X es el número de llegadas durante una unidad de tiempo determinada (una hora, un minuto,
etc.)
o E{x} = número promedio de llegadas por unidad de tiempo.
Distribución de Poisson:
Número de llegadas que ocurren en un intervalo de tiempo, por ejemplo, número de clientes que llegan
en 15 minutos. Media = ƛ (po ejemplo 5/hora).
La función de probabilidad:
−ƛ k
e ƛ
P x =k =
( )
k!
Simulación [SCD-1022]
Ejemplo: En una instalación de servicio llegan los clientes de acuerdo a una distribución Poisson con
una tasa de 4/minuto. ¿Cuál es la probabilidad de que al menos un cliente llegue en cualquier intervalo
dado de 30 segundos?
4 2 clientes
ƛ 30 seg= =
2 30 segundos
−2 0
e 2
P ( X=0 )= =0.1353
0!
P { X ≥ 1 }=1−P { x =0 }=1−0.1353=0.8647
5. RESULTADOS
Al terminar ésta práctica el alumno habrá aplicado los conocimientos adquiridos para el control de líneas de
espera en un sistema simulado.
6. CONCLUSIONES
Ésta práctica permite aplicar los conocimientos adquiridos en todas las competencias de la materia ya que es
un proyecto integrador y requiere de todos los conceptos, métodos y técnicas vistas en el curso.
7.- BIBLIOGRAFÍA
Simulación [SCD-1022]
2 Hoja de cálculo. 1
3 Procesador de textos 1
4 Proyector digital 1
Lenguaje de programación Java
5 1
7 Acceso a Internet 1
IDE NetBeans 7.3, JGrasp o JCreator 4.5
8 1
Reproductor de video
9 1
Software de simulación Arena o Promodel
10 1
Java Virtual Machine
11 1
DATOS GENERALES
FECHA DE
ELABORÓ Y/O ACTUALIZÓ DESCRIPCIÓN DE LA ACTUALIZACIÓN
ACTUALIZACION
LIC. IVAN RAFAEL SÁNCHEZ JUÁREZ SE CREÓ POR PRIMERA VEZ ESTE MANUAL DE PRÁCTICAS EN EL MES DE AGOSTO DE 2013, PARA LA DIVISIÓN DE SISTEMAS
15/08/2013
COMPUTACIONALES DEL ITSMT