Introducción al Modelado y Simulación
Introducción al Modelado y Simulación
CONTENIDO
REFERENCIAS
1
Sistemas, Modelado y Simulación(1)
Sistema
Computador
real
Modelado Simulació
n
Modelo
Sistema Real:
• La parte del mundo que nos interesa. Puede ser natural o artificial, existir ahora, en el pasado o el futuro.
• Ejemplos:
- Un biólogo puede estar interesado en el comportamiento de las abejas en una colonia (un sistema existente)
- Un ingeniero puede estar interesado en simular un nuevo sistema de transporte para la ciudad o un nuevo
diseño de computadores (un sistema planeado para el futuro)
• El sistema real es una fuente de datos de comportamiento
2
Sistemas, Modelado y Simulación(2)
T
• Ejemplos
– En el caso de la colonia de abejas X puede ser el
número de abejas de sexo femenino, o el número de
abejas obreras, etc.
– En el caso del computador X pudiese ser el número
de instrucciones procesadas por unidad de tiempo o
el número de operaciones de entrada-salida, etc.
Modelo:
• Conjunto de instrucciones para generar datos del
comportamiento del sistema
• Los modelos se expresan en terminos de ecuaciones
diferenciales, formalismos de descripción de eventos
discretos, etc.
• Modelaje Validación
• Simulación Verificación
3
¿Por qué usar la simulación?
4
Métodos de Estudio de un Sistema
Sistema
Experimentar Experimentar
con el sistema con un modelo
mismo del sistema
Modelos
Modelos
matemáticos
físicos
Solución
Simulación
analítica
5
Ventajas y Desventajas de la Simulación
6
Ejemplos de Simulación(1)
Sistemas de manufactura:
- Simulación de sistemas de distribución y control de inventarios a gran escala para mejorar el diseño de estos sistemas
- Simulación de las operaciones de una fábrica de acero para evaluar cambios en las prácticas de operación y en la capacidad y configuración de las maquinarias.
Sistemas públicos:
- Simulación del tráfico en una intersección con semáforos automáticamente controlados para determinar la mejor secuencia de operación
- Simulación de un sistema telefónico para determinar la capacidad adecuada para atender satisfactoriamente un número determinado de clientes
Sistemas sociales y económicos:
- Simulación de la dinámica socioeconómica de un país para predecir el efecto de decisiones económicas
- Simulación del mercado de valores para determinar estrategias rentables de inversión
7
Ejemplos de Simulación(2)
Sistemas de computación:
- Simulación de varios tipos de sistemas para evaluar rendimiento computacional
- Simulación de diseños alternativos de estrategias de multiprocesamiento
• Sistemas ambientales o ecológicos:
– Simulación de la contaminación del aire que se producirá en una población cercana al instalar una nueva planta industrial
– Simulación de los cambios climáticos producidos por aumentos de CO2 en la atmósfera
– Simulación de un bosque para determinar estrategias sustentables de manejo
– Simulación de la dinámica demográfica de una población
– Simulación de los cambios de usos de la tierra en una región de acuerdo a ciertas políticas de uso
– Simulación de la difusión de una enfermedad contagiosa
8
Descripción Informal de un modelo
Un modelo se describe informalmente mediante la
especificación de:
Componentes: las partes con las cuales el modelo es
construido.
Variables descriptivas: las herramientas que permiten
describir el estado o condición de los componentes a
través del tiempo (incluyen también los parámetros, que
son las características que permanecen constantes en el
modelo)
Interacciones entre los componentes: las reglas
mediante las cuales los componentes ejercen una
influencia el uno sobre el otro, alterando sus condiciones
de manera que determinan la evolución del
comportamiento del modelo a través del tiempo.
Componentes
Variables descriptivas
10
Ejemplo 1 descripción Informal(2)
Población Contaminación
+
+
+ + -
+ Industria
11
Ejemplo 2 descripción Informal(1)
• COMPONENTES
- Puerta de entrada 1
- Puerta de entrada 2
- Estación 1
- Estación 2
- Autobús
• VARIABLES DESCRIPTIVAS
– Puerta de entrada i (i =1,2):
• num_entrando_i: indica el número de personas que están entrando en
la estación i en un instante de tiempo. Rango en los enteros positivos
12
Ejemplo 2 descripción Informal(2)
– Estación i (i=1,2):
• num_esperando_i: indica el número de personas que están
esperando en la estación i por el autobús. Rango: enteros positivos
- Autobús:
• num_en_bus: indica el número actual de pasajeros en el autobús.
• tiempo_viaje: tiempo que el autobús toma para ir de una parada a la
otra. Es una variable aleatoria con rango los reales positivos.
• pasajeros_sale: número de pasajeros que se bajan del autobús en
la estación. Una variable aleatoria con rango de enteros no negativos.
- Parámetros:
• capacidad: indica el número máximo de pasajeros que puede llevar el
autobús.
• pi: la probabilidad de que un pasajero se baje del autobús en la estación i
• media y desviación: la media y la desviación estándar de
tiempo_viaje entre las estaciones. (reales positivos)
• Kentra y Ksale: el tiempo que toma para un pasajero entrar y salir del
autobús (reales positivos)
13
Ejemplo 2 descripción Informal(3)
14
Formato para la descripción informal del
modelo (1)
• COMPONENTES
Componente 1
Componente 2
.
.
Componente n
Esta sección debe de llevar una descripción general que enlace los componentes a las partes
conceptuales del sistema real.
• VARIABLES DESCRIPTIVAS
Componente 1
Variable 1.1
Variable 1.2
.
.
Variable 1.m
Componente 2
Variable 2.1
Variable 2.2
.
Variable 2.k
15
Formato para la descripción informal del
modelo (2)
Se debe de especificar el rango de cada variable e indicar el rol de la variable en la
descripción del componente
• PARÁMETROS
Parámetro 1
Parámetro 2
.
.
Parámetro x
Se especifica el rango del parámetro y se indica el rol que tiene en la estructura del modelo
• DIAGRAMA
Un diagrama donde los componentes se representen como cajas y las interacciones se
representen como flechas indicando la dirección causal.
16
Entendiendo la jerga...
17
Sistema Entidades Atributos Actividades Eventos Variables
de Estado
18
Tipos de modelos (1)
Población Número de
estudiantes
en clase los
viernes
tiempo tiempo
19
Tipos de modelos (2)
Nivel de Número de
agua en la trabajos en
represa cola
tiempo tiempo
Determinísticos Probabilísticos
salida salida
entrada entrada
• Aleatoriedad en la
• Los resultados del
entrada producen
modelo pueden
resultados también
predecirse con certeza
aleatorios en la salida
• Se necesitan una sola
• Se necesita varias
corrida
corridas
• Ejemplo: Regresión
• Ejemplo: Modelo del
lineal
clima 21
Tipos de modelos (4)
Lineal No-Lineal
salida
salida
entrada entrada
22
Tipos de modelos (5)
Estable Inestable
salida salida
promedio promedio
entrada entrada
23
Tipos de modelos (6)
Estáticos Dinámicos
Abiertos Cerrados
• La entrada es externa e
• No hay entrada externa
independiente del modelo
• Ejemplo: modelo poblacional
• Ejemplo: modelo
sin inmigración
poblacional
con migración
24
MECANISMO DE AVANCE DEL TIEMPO POR EVENTOS
Inicio
Programa
Inicialización principal
Mecanismo avance tiempo
1. Reloj = 0 0. Rutina de inicialización
2. Inicialice estado 1. Determine el tipo
del sistema y 1. Rutina de avance de tiempo del siguiente evento,
contadores 2. Rutina de eventos por ejemplo, i.
estadísticos i 2. Avance el reloj de
3. Inicialice lista Rutina evento i simulación
de eventos
1. Actualice el estado del sistema
2. Actualice contadores estadísticos Rutinas de librería
3. Genere eventos futuros y añadalos Genere variables
a la lista de eventos aleatorias
¿fin de la no
simulación?
si
25
Generador 1. Calcule estimadores
de Reportes Fin
2. Escriba reporte
Tipos de Simulación: Montecarlo
x 2 y 2 1; x,y 0 (1)
y 1 x2 (2)
26
Tipos de Simulación: Continua(1)
• Simulación continua: la de modelos de estado continuos
• Se describen por medio de ecuaciones diferenciales.
– Solución analítica: posible cuando las ecuaciones son
ordinarias, lineales y con coeficientes constantes.
– Solución numérica: Euler, Runge-Kutta, etc.
• Ejemplo: modelo de Lotka-Volterra de predador-presa:
x1= el número de individuos de la población presa
x2 = el número de individuos de la población predador
dx1
( r1 a12 x 2 ) x1 Presa
dt
dx2
( r2 a21 x1 ) x2 Predador
dt
• Solución numérica usando Euler
x1 (t dt ) x1 (t )
dx1
dt
x (t dt ) x2 (t )
dx2 2
dt
x1 (t dt ) x1 ( r1 x1 a12 x2 x1 )dt
x2 (t dt ) x2 ( r2 x1 a21 x2 x1 )dt
27
Tipos de Simulación: Continua(2)
Algoritmo
1. Lea los valores de los parámetros (ri, aij) y los valores
iniciales de las variables de estado (xi(0))
2. Inicialice los parámetros de control de la simulación: el
contador de tiempo de simulación (t), el tamaño del paso
(dt), el tiempo final de simulación (tf) y el intervalo del
tiempo de impresión (tp), los archivos de datos de salida
3. Para t= 0 hasta tf en pasos de dt
3.1 Calcule x1(t+dt) y x2(t+dt)
3.2 Si modulo(t,tp)=0 imprima archivo salida
3.3 t = t +dt
4. fin
En el ejemplo, para r1= 0.1 x1(0) = 100 a12= 0.003
r2= 0.15 x2(0) = 50 a21= 0.002
Modelo simple Predator-Presa
140
120
Población (núm.
100
individuos)
80 X1 (presa)
60 X2 (predador)
40
20
0
0
135
180
225
270
315
360
405
450
495
45
90
tiempo
28
Tipos de Simulación: Discreta
29
Ejemplo: Modelo de un Cola Simple
e0 e1 e2 e3 e4 e5
tiempo
0 t1 t2 c1 t3 c2
A1 A2 A3
S1 S2
31
Componentes de un modelo de
simulación discreta
• Estado del sistema: la colección de variables de estado
necesarias para describir el estado del sistema
• Reloj de simulación: variable global que representa el
tiempo simulado
• Lista de eventos: una lista que contiene el tiempo
siguiente en el que deberá ocurrir un evento
• Contadores estadísticos: variables usadas para almacenar
información estadística acerca del rendimiento del sistema
• Rutinas de inicialización
• Rutinas de avance del tiempo: determina el próximo
evento de la lista de eventos que habrá de ocurrir y avanza
el reloj de simulación hasta este tiempo
• Rutinas de eventos: subprograma que actualiza el estado
del sistema cuando un tipo particular de evento ocurre
• Rutinas de librería: subprogramas usados para generar
variables aleatorias
• Generador de reportes: calcula estimados de las medidas
de rendimiento del sistema y produce un reporte cuando
culmina la simulación.
• Programa principal: Invoca la rutina de avance del
tiempo para determinar el siguiente evento por ocurrir y
transfiere luego el control a la rutina correspondiente de
eventos para que actualice el estado del sistema
32
Medidas de rendimiento
q (n) ipi
i 0
iT
i 0
i
qˆ ( n )
T (n)
33
Ejemplo cálculo de q(n)
llegadas
salidas
iT
i 0
i (0 * 3.2) (1*2.3) (2 *1.7) (3 *1.4) 9.9
T(n)
En realidad, iT no es más que : Q(t)dt
i =0
i
0
T(n)
Q(t)dt
0
por lo que qˆ (n)
T ( n)
34
Utilización esperada del servidor, u(n)
llegadas
salidas
B(t )dt
De nuevo, u(n) 0
T ( n) 35
Explicación intuitiva, ejemplo (1)
36
Explicación intuitiva, ejemplo(2)
37
Explicación intuitiva, ejemplo(3)
38
Explicación intuitiva, ejemplo(4)
39
Explicación intuitiva, ejemplo(5)
40
Explicación intuitiva, ejemplo(6)
41
Explicación intuitiva, ejemplo(7)
42
Explicación intuitiva, ejemplo(8)
43
Implantación(1)
1 x
f ( x) e para x 0
• Para generar variables aleatorias distribuidas exponencialmente:
1.- Se invoca un generador de números aleatorios que genera
una variable aleatoria continua, uniforme entre 0 y 1, U(0,1)
1 si 0 x 1
f ( x)
0 eoc
Esto implica que,
f ([ x , x x ]) x , [ x , x x ] [0,1]
F ( x) P( X x)
44
Implantación (2)
Si X~exponencial:
x
1 t
F ( x ) e dt
0
F ( x) 1 e x
Si F(x) = U ~ U(0,1):
F ( x) U 1 e x
1 U e x
x
ln(1 U )
pero como 1-U es tan buena V.A. como U
podemos substituir 1-U por U :
x
ln(U )
x ln(U )
45
Programa Principal
Inicio {Simulación cola simple }
fin 6.
46
Procedimiento Inicializar
Procedimiento Inicializar; {Procedimiento Inicialización }
Comienzo {Inicializar}
fin {Inicializar}
47
Procedimiento Avance de Tiempo
Procedimiento AvanceReloj; {Avance del tiempo }
Comienzo {Avance}
1. MinTiempoProxEvento:= 1.0E+29;
2. TipoProximoEvento:=0;
3. Determine el tipo del próximo evento:
Para I:=1 hasta NumEventos
Si TiempoProxEvento[I]< MinTiempoProxEvento entonces
MinTiempoProxEvento:= TiempoProxEvento[I];
TipoProximoEvento:=I
fin si
fin para
fin {Avance}
48
Procedimiento Llegada
Procedimiento Llegada; {Procesa los eventos de llegada }
Inicio {Llegada}
fin si 2.1
de lo contrario
Comiezo {Salida}
de lo contrario
50
Procedimiento Reporte
Procedimiento Reporte; {Generador de reportes }
Comienzo {Reporte}
fin {Reporte}
51
Procedimiento ActualEstadisticaTemporal
Procedimiento ActualEstadisticaTemporal;
{Actualice sumadores de área para las estadísticas que tienen que ver
con promedios temporales }
(* ------------------------------------------------------*)
Función Expon;
{genera variables distribuidas exponencialmente. Se le pasa como
parámetro la Media de la exponencial, de acuerdo a lo declarado }
Comiezo {Expon}
fin {Expon}
52
Otro ejemplo: Simulación de un
Sistema de Inventario(1)
53
Simulación de un
Sistema de Inventario(2)
S I , Si I s
Z
0, Si I s
I es el nivel de inventario al comienzo de cada mes
• La demanda se satisface inmediamentamente si el nivel
de inventario lo permite. Si la demanda excede el nivel
de inventario, lo que resta queda pendiente y se satisface
en el futuro.
• Sea I(t) el nivel de inventario en el tiempo t,
I+ (t) = max{I(t),0}, el número de artículos fisicamente
en el inventario en el tiempo t
I- (t) = max{-I(t),0}, el número de artículos pendientes en
el tiempo t
I(t)
I+(t)
S
I-(t)
pedido llegada 54
pedido pedido
Simulación de un
Sistema de Inventario(3)
I
0
I (t )dt
n
Así que el costo promedio de manentimiento del inventario
es h*I+
• El costo por pedidos pendientes es de =500 por artículo
pendiente por mes. El promedio temporal de artículos
pendientes por mes durante los n meses es:
I
0
I (t )dt
n
Así que el costo promedio mensual por artículos pendientes
es I-
55
Simulación de un
Sistema de Inventario(4)
s 20 20 20 20 40 40 40 60 60
S 40 60 80 100 60 80 100 80 100
• Las variables de estado en este caso son el nivel de nventario, la
cantidad pedida y el tiempo desde el último evento
• Los eventos son:
– Llegada de una orden del proveedor (1)
– Demanda del producto por el cliente (2)
– Final de la simulación después de n meses (3)
– Evaluación del inventario (y la posibilidad de hacer un
pedido) a comienzo de cada mes (4)
• Se requieren 3 distribuciones de probabilidad para la simulación:
– Los tiempos entre demandas son exponenciales y se simulan
de la misma manera que en el modelo de cola
56
Simulación de un
Sistema de Inventario(5)
1, si u [0,1/6)
2, si u [1/6,1/2)
1
D F (u )
3, si u [1/2, 5/6)
4, si u [5/6,1 ]
1.00
0.80
0.60
F(D)
0.40
0.20
0.00
1 2 3 4
D
57
Simulación de un
Sistema de Inventario(6)
– El retardo en la entrega de pedidos es uniforme entre 0.5 y 1 mes:
• Se genera un numero U, U(0,1)
• El valor requerido es 0.5 + U x (1-0.5)
Llegada
pedido
Incremente el
nivel de inventario
Retorne
58
Simulación de un
Sistema de Inventario(7)
• El flujograma de la rutina de demanda:
Evento
demanda
Genere el tamaño
de la demanda
Decremente el nivel
de inventario por
este tamaño
Programe el
siguiente evento
demanda
Retorne
59
Simulación de un
Sistema de Inventario(8)
• El flujograma de la rutina de evaluación del inventario
Evento
Evaluación
Inventario
si no
¿I(t)<s?
Determine cantidad
a pedir [S-I(t)]
Calcule costos de
pedido y
estadísticas
Programe el
evento de llegada
de pedido
Programe el
siguiente evento
de evaluación
60
Retorne
Simulación de un
Sistema de Inventario(9)
• El flujograma de la rutina de actualización de los contadores estadísticos para promedios temporales
Actualización
acumuladores
0
Actualice área I (t) -
Actualice área I+(t)
Retorne
61
Simulación de un
Sistema de Inventario(10)
Algoritmo Progra ma Princi pa l
1. L e a pa rá me tros de e ntra da
2. Pa ra I de sde 1 hast a e l número de pol ít ica s re pita
2. 1. L ea la pol íti ca de inventa ri o (s, S)
2. 2. Asi gne val ore s inic ia le s a la simulac ión
2. 3 Re pit a
2. 3. 1 De t ermine e l ti empo de oc urre nc ia y e l ti po
del sigui ente e vento (Avanc e Reloj)
2. 3. 2. L la me la rut ina de a ct ua l iz ar prome dios
te mpora le s
2. 3. 3. E n c aso de que e l ti po de eve nt o sea :
1: L la me rut ina de e ve nto ll egada de pe di do
2: L la me rut ina de e ve nto de ma nda
3: L la me rut ina de re porte
4: L la me rut ina de e ve nto eva luac ión
hasta que t ipo de e ve nto se a 3
fi n 2
fi n
62