You are on page 1of 45

Optimització i Simulació

SIMULACIÓ
SIM Contingut

• Introducció
• Estudi de simulació
 Modelitzar
 Simular
 Analitzar
• Bibliografia

2
SIM Introducció

• Què trobem a google imatges?

• Què diu wikipedia?

Us de la simulació:

• Formar en l’execució de tasques (simulador de vol, “business


games”)
• Estudiar el comportament d’un sistema per:
 Predir el comportament (predicció del temps)
 Avaluar decisions (polítiques de gestió)
 Establir relacions entre variables del sistema
 Analitzar la sensibilitat del sistema
• Entretenir
3
SIM Introducció

Exemple 1: TFFF

Un sistema té 2 components, un està actiu i l’altre està de recanvi per si


falla el primer. Quan falla un component, passa immediatament a reparació
i el que està de recanvi passa a estar actiu. Un cop reparat un component,
passa a estar de recanvi. Només es pot reparar un component cada cop. El
sistema està operatiu mentre hi ha algun component en funcionament.

El temps de funcionament d’un component fins que falla (TFFF) és aleatori


amb igual probabilitat que sigui 1,2,3,4,5 o 6 dies, mentre que el temps de
reparació és de 2,5 dies.

Simuleu el comportament del sistema fins que deixi d’estar operatiu.

Sabríeu fer un programa informàtic per simular el sistema? I si el sistema


té més components?

4
SIM Introducció

Exemple 2: Centre d’atenció telefònica

A un centre d’atenció telefònica arriben trucades de clients per fer una


consulta. El temps entre dues trucades consecutives és de 1,2,3,4,5 o 6 min
amb igual probabilitat. La consulta pot ser de tipus A en el 60% dels casos o
de tipus B en el 40%. En el centre hi ha un operador. Els temps per atendre
cada tipus de consulta són, respectivament, de 2 i de 5 minuts.

Es vol estudiar el temps d’espera dels clients fins que són atesos en una
jornada de 12 hores.

5
SIM Introducció

• Què és un sistema?
Col·lecció d’elements (persones, màquines,...) que interactuen entre si amb
una finalitat lògica.
La definició d’un sistema pren sentit quan es vol estudiar alguna situació real.

• Estat d’un sistema


Conjunt de variables necessàries per descriure el sistema en cada instant de
temps.
Les variables escollides per definir l’estat d’un sistema depenen de l’objectiu
de l’estudi que es vulgui fer.

• Categorització dels sistemes


Els sistemes poden ser discrets o continus depenen de si les variables d’estat
canvien de forma instantània en instants de temps separats o de forma continua
en el temps.

6
SIM Introducció

• Formes d’estudiar un sistema

Sistema

Experimentar Experimentar
amb el sistema amb un model
real del sistema

Model Model
físic matemàtic

Solució
Simulació
analítica
Figura: Law i Kelton, 2000, pàg 4

7
SIM Introducció

• Què es un model d’un sistema?


Representació dels elements i del funcionament del sistema

• Perquè necessitem un model?

• Model de simulació:...

• Categorització del models de simulació:


 Estàtic vs. dinàmic
 Determinista vs. estocàstic
 Continu vs. discret

8
SIM Introducció

• Què és simular?
La simulació d’un sistema és operar un model del sistema.

Estudiant la operativa del model podem estudiar propietats corresponents al


comportament del sistema

• Tipus de simulacions
 Simulació discreta per esdeveniments: sol correspondre a la simulació de
models dinàmics discrets (estocàstics o deterministes)
 Simulació Monte-Carlo: sol correspondre a models estàtics estocàstics
 Simulació contínua

• Quan convé estudiar un sistema simulant?


 Sistemes amb comportament aleatori
 Observar el sistema real és costós
 Model matemàtic que no es pot resoldre o es molt costos validar-lo

9
SIM Introducció

• Avantatges de la simulació:
 Sistemes complexos
 Diferents configuracions del sistema
 Control sobre les condicions experimentals
 Rangs temporals

• Inconvenients de la simulació:

 En simulació estocàstica  moltes simulacions

 Cost de fer i executar el model

 Molts esforços en la presentació dels resultats

10
SIM Introducció

En aquest curs ens centrarem, principalment, en la simulació discreta per


esdeveniments per estudiar el comportament d’un sistema

Es tracta de l’estudi de sistemes en que les variables d’estat canvien


instantàniament en instants de temps separat (sistemes discrets).
Aquests instants de temps són els únics moments en que es succeeix
algun esdeveniment (passa alguna cosa)

A partir d’ara, el terme simulació es refereix generalment a


simulació discreta per esdeveniments.

11
SIM Introducció

Exemples de sistemes que s’estudien amb simulació discreta per


esdeveniments:

• Sistemes de cues

Sistema Servidors Client


Banc Assessor Client
Hospital Metges, infermeres, llits Pacients
Ordinador CPU, dispositius d’entrada/sortida Treballs
Fàbrica Màquines, operaris Articles, productes
Aeroport Portes, “fingers”, punts de seguretat Avions, passatgers
Xarxes de comunicació Nodes, connexions Missatges, paquets
Taula: Law i Kelton, 2000, pàg 95

• Sistemes amb presa de decisions

• Discretització de sistemes continus

12
SIM Estudi de simulació

Fases d’un estudi de simulació:

Modelitzar Simular Analitzar

Analitzar els resultats de l’experiment de


Desenvolupar el model de simulació Dissenyar i executar l’experiment de simulació
simulació

2. Recollir i 6. Seleccionar el 7. Establir les


1.Identificar
processar 3. Construir 4. Validar el
5. 8. Realitzar la 9. Interpretar i 10. Recomanar
i formular el Documentar disseny condicions
problema
les dades del el model model
el model simulació presentar resultats properes accions
sistema experimental d’execució

En el següents apartats detallarem algunes de les tasques de cada fase,


no totes.

13
SIM Modelitzar Modelitzar Simular Analitzar

Desenvolupar el model de simulació

1. 2. Recollir i
5.
Identificar i processar 3. Construir 4. Validar el
Documentar
formular el les dades el model model
el model
problema del sistema

14
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

2. Recollir i processar les dades del sistema

Tasques a fer:

a) Recollir les dades del sistema

b) Especificar els paràmetres del model

c) Determinar les distribucions de probabilitat de les variables aleatòries

15
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

2. b) Especificar els paràmetres d’un model amb aleatorietat

Tres maneres de generar els paràmetres del model:

 Ús de dades del passat (trace-driven simulation)  Només per verificar

 Distribucions empíriques

 Inconvenients: Irregularitats; no genera valors fora de l’interval en què es


troben els observats

 Distribucions teòriques:

 Inconvenient: algunes poden generar valors exageradament grans (→ truncar)

 Avantatges: revers dels inconvenients de les distribucions empíriques, facilitat


de modificació.

16
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

2. c) Determinar la distribució de probabilitat d’una variable aleatòria

 Recollir dades
 Representar histograma
 Suposar distribució, a partir de l’histograma i del coneixement del
sistema (per exemple: llei exponencial, llei de Poisson, llei normal)
 Validar distribució (tests estadístics)
Atenció als valors anòmals i atenció a la mostra (és prou representativa?)

17
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

3.Construir el model:
Els components d’un model de simulació són:

 Variables d’estat

 Rellotge

 Llista d’esdeveniments

 Comptadors estadístics

 Programa informàtic

18
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

Si el sistema és “senzill”, el model és “fàcil” de fer. Si no, ens anirà bé tenir


una guia amb les tasques que hem de fer

Tasques a fer per construir el model:


a) Identificar els elements del sistema per fer una simulació
b) Definir les variables d’estat
c) Definir la gestió del rellotge
d) Definir els esdeveniments que modifiquen l’estat del sistema
e) Definir com els esdeveniment modifiquen l’estat del sistema
f) Definir com es generen nous esdeveniments
g) Definir els comptadors estadístics
h) Obtenir mostres de les variables aleatòries
i) Programar el model
19
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

3. b) Definir les variables d’estat

 Definir el tipus de variable i el rang de valors que pot prendre

 La definició de l’estat no és única i depèn dels objectius de l’estudi

20
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

3. c) La gestió del rellotge en la simulació

 Què és el rellotge?

 Formes de gestionar el rellotge:


o Síncrona (fixed-increment time advance)

o Asíncrona (next-event time advance)

 Quina forma de gestió és millor?  en general asíncrona, però síncrona


si:
o El sistema només és “observable” a intervals regulars

o És més “barat” i no s’introdueixen errors inacceptables (interval massa gran


o massa petit)

21
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

3. d) Definir els esdeveniments que modifiquen l’estat del sistema

• En cas de simulació asíncrona:

 Són els esdeveniments que fan canviar l’estat del sistema

 Fàcils d’identificar en models senzills; no tant en models complexos

 Simplificar els esdeveniments que són conseqüència directa d’altres


esdeveniments

22
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

3. h) Obtenir mostres d’una variable aleatòria

• Fonts de dígits aleatoris


 Sistemes físics:

 Mètode congruencial (Lehmer, 1951)  Nombres pseudo-aleatoris


Prender un valor inicial o llavor, s0, i calcular la successió de valors:
 si+1 = (a + b ⋅ si) mod L
 yi = si/L
Màxima longitud del cicle: L
23
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

3. h) Obtenir mostres d’una variable aleatòria (continuació 1)

• Procediment general:
Supòsits:

 Tenim una font de dígits equiprobables i independents

 Coneixem la funció de distribució, F(x), de la variable aleatòria

Procediment:

1. Generar valor y, distribuït uniformement a [0, 1] (y ~ U(0,1))

2. Determinar antiimatge de y per F → x = F-1(y)

Veure exemples a “Procediment general aplicat a lleis específiques”

24
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

3. h) Obtenir mostres d’una variable aleatòria (continuació 2)

Es pot utilitzar sempre el procediment general?  NO, altres procediments:

• Aproximacions ad hoc

Exemple llei Normal:


𝑡𝑡 ′ = −2 · ln 𝑦𝑦 ′ · sin 2𝜋𝜋 · 𝑦𝑦′′
 Mostra de t ~ N(0, 1)  Fórmules de Box-Müller �
𝑡𝑡 ′′ = −2 · ln 𝑦𝑦 ′ · cos 2𝜋𝜋 · 𝑦𝑦′′

 Mostra de x ~ N(µ,σ)  x = µ + t ⋅ σ

25
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

3. h) Obtenir mostres d’una variable aleatòria (continuació 3)

• Acceptació-rebuig:
Sigui f(x) la densitat de probabilitat de la variable aleatòria X,

 Especifiquem una funció t(x) que sigui més gran o igual que f(x) per tot x, amb
+∞
𝑐𝑐 = ∫−∞ 𝑡𝑡 𝑥𝑥 𝑑𝑑𝑑𝑑 < ∞

 Definim:
1
𝑟𝑟 𝑥𝑥 = · 𝑡𝑡 𝑥𝑥 , (r(x) és, clarament, una densitat de probabilitat)
𝑐𝑐

 Algorisme per generar una mostra de la variable aleatòria X:

1. Generar una mostra, z, corresponent a r(x)


2. Generar y ~ U[0,1]
3. Si y ≤ f(z)/t(z)  Acceptem la mostra: X = z
Altrament Rebutgem la mostra: anar a 1 i tornar a intentar
26
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

3. i) Programa informàtic del model

El programa informàtic ha d’incloure les següents funcions:

 Font de dígits equiprobables (nombres pseudo-aleatoris)

 Generadors de mostres de variables aleatòries

 Avançar el rellotge de la simulació

 Determinar el proper esdeveniment

 Funcions per processar cada tipus d’esdeveniment, que actualitzin


l’estat del sistema i la llista d’esdeveniments

 Registre dels comptadors estadístics

 Donar els resultats de la simulació

27
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

3. i) Programa informàtic del model (continuació 1)

• Llenguatge de programació (Python, C++,…)

Estructura del programa:


 Inicialització de variables
 Iterativament:
o Determinar el proper esdeveniment
o Avançar el rellotge
o Afegir nous esdeveniments a la llista d’esdeveniments
o Modificar l’estat del sistema
o Actualitzar comptadors estadístics

 Donar els resultats

28
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

3. i) Programa informàtic del model (continuació 2)

• Llenguatge de programació (Python, C++,…)

Exemple 1 (TFFF):

Llista d'esdeveniments
Rellotge Estat Comentari
Avaria Fi reparació

0 0 0+3=3 - Inicialitzem la simulació


3 1 3+4=7 3 + 2,5 = 5,5 1 component funcionant i l'altre en reparació
5,5 0 7 - Els 2 components ok, la propera avaria és en t = 7
7 1 7 + 6 = 13 7 + 2,5 = 9,5 1 funcionant i 1 en reparació
9,5 0 13 - Tots 2 ok
13 1 13 + 1 = 14 13 + 2,5 = 15,5 El proper esdeveniment és d’avaria en t = 14

14 2 Els 2 components avariats  el sistema deixa d'estar operatiu

29
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

3. i) Programa informàtic del model (continuació 3)

• Llenguatge de programació (Python, C++,…)

Avantatges i inconvenients:

 Flexibilitat màxima

 Cost baix del programari

 Molta feina de programació

30
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

3. i) Programa informàtic del model (continuació 4)

• Programari especialitzat:
Llenguatges de simulació, VIMSs (Visual Interactive Modeling and
Simulation), orientats a processos, en què normalment la descripció del
funcionament del sistema s’introdueix mitjançant la descripció del flux de
cada tipus d’unitat (process approach) i que incorporen:
 “Lògica” de la simulació
 Simulació d’elements típics (màquines, cues, cintes transportadores,
etc.)
 Variables aleatòries
 Funcions estadístiques
 Interfície gràfica per a modelització
 Animació (útil per a posta a punt i presentacions) i presentació gràfica
de resultats (de vegades).
31
SIM Modelitzar
Desenvolupar el model de simulació

1.Identificar i 2. Recollir i
3. Construir el 4. Validar el 5. Documentar el
formular el processar les
model model model
problema dades del sistema

3. i) Programa informàtic del model (continuació 5)

• Programari especialitzat:

Avantatges i inconvenients:

 Requereix menys temps per a la posta a punt i l’explotació del model

 Cost d’adquisició elevat

 Temps d’aprenentatge

 Menys flexibilitat

Programari: Arena, Witness, SAS, Simul8

32
SIM Simular Modelitzar Simular Analitzar

Dissenyar i executar l’experiment de


simulació

6. Seleccionar el 7. Establir les


8. Realitzar la
disseny condicions
simulació
experimental d’execució

33
SIM Simular
Dissenyar i executar l’experiment de
simulació

6. Seleccionar el 7. Establir les


8. Realitzar la
disseny condicions
simulació
experimental d’execució

Un experiment de simulació és un prova o un conjunt de proves per estudiar


el comportament del sistema.

Factors que condicionen el disseny del pla d’explotació:

• Objectius de la simulació: què es vol estudiar? Quines magnituds


representen millor el comportament del sistema?

• Configuracions del sistema: es vol estudiar el comportament de


configuracions diferents per seleccionar-ne la millor?

• No sempre cal provar totes les combinacions de valors que caracteritzen


una configuració: disseny d’experiments

34
SIM Simular
Dissenyar i executar l’experiment de
simulació

6. Seleccionar el 7. Establir les


8. Realitzar la
disseny condicions
simulació
experimental d’execució

6. Seleccionar el disseny experimental

Tasques a fer:

a) Decidir les magnituds que volem observar

b) Decidir les variables d’entrada que més influeixen en el


comportament de les magnituds a observar.

c) Evitar simulacions innecessàries

d) Documentar el disseny experimental

35
SIM Simular
Dissenyar i executar l’experiment de
simulació

6. Seleccionar el 7. Establir les


8. Realitzar la
disseny condicions
simulació
experimental d’execució

6. c) Evitar simulacions innecessàries


PREMISSA: El sistema ha de disposar de capacitat suficient

• Taxa d’entrada λ: esperança matemàtica del nombre d’unitats que


arriben a un punt del sistema (per unitat de temps)

• Taxa de servei µ: esperança matemàtica del nombre d’unitats que poden


ser processades (capacitat) en aquest mateix punt del sistema (per unitat
de temps)

• Anàlisi de capacitats del sistema: en tots els punts del sistema s’ha de
complir que λ ≤ µ (i si hi ha irregularitats, λ < µ )

36
SIM Simular
Dissenyar i executar l’experiment de
simulació

6. Seleccionar el 7. Establir les


8. Realitzar la
disseny condicions
simulació
experimental d’execució

7. Establir les condicions d’execució

Tasques a fer:

a) Decidir si el sistema està en règim transitori o permanent

b) Seleccionar les condicions inicials de cada simulació. En cas de


sistemes em règim permanent, determinar el període de “warm-up”

c) Decidir la llargada i les condicions de finalització de cada simulació

d) Determinar el número de simulacions independents: depèn de la


variabilitat dels resultats i de la precisió desitjada (a més variabilitat i
més precisió, major nombre d’experiments)

37
SIM Simular
Dissenyar i executar l’experiment de
simulació

6. Seleccionar el 7. Establir les


8. Realitzar la
disseny condicions
simulació
experimental d’execució

7. a) Decidir si el sistema està en règim transitori o permanent


Es diu que un sistema està en règim permanent quan les probabilitats dels estats
que pot adoptar són independents del temps.
Si no, es diu que està en règim transitori.

• Estudi del règim transitori


 Una sola simulació dóna una informació molt limitada → es fan simulacions
diverses i es calculen valors mitjans.

• Estudi del règim permanent


 Cal realment estudiar el règim permanent?

 Cal eliminar el període transitori (warmup period): Law i Kelton (vegeu


bibliografia).

 Dificultat: necessitem valors independents.


38
SIM Simular
Dissenyar i executar l’experiment de
simulació

6. Seleccionar el 7. Establir les


8. Realitzar la
disseny condicions
simulació
experimental d’execució

7. a) Decidir si el sistema està en règim transitori o permanent (continuació)

 Com obtenir observacions independents?

o Repetició de simulacions

o Formació de lots en períodes consecutius

39
SIM Analitzar Modelitzar Simular Analitzar

Analitzar els resultats de l’experiment de


simulació

9. Interpretar i presentar 10. Recomanar properes


resultats accions

40
SIM Analitzar
Analitzar els resultats de l’experiment
de simulació

9. Interpretar i presentar 10. Recomanar properes


resultats accions

9. Interpretar i presentar resultats

Tasques a fer en el cas d’un model estocàstic:

a) Calcular els estimadors de les magnituds que volem observar (mitjana,


variància,...).

Per estimar la mitjana d’una variable → fer n simulacions independents

b) Calcular els interval de confiança del estimadors

c) Construir gràfics i histogrames de les mostres obtingudes

41
SIM Analitzar
Analitzar els resultats de l’experiment
de simulació

9. Interpretar i presentar 10. Recomanar properes


resultats accions

9. b) Calcular els interval de confiança del estimadors

• Comprovar que les mostres obtingudes són independents

• La independència de les simulacions permet calcular l’interval de


confiança de l’estimador:

a) Si les observacions procedeixen d’una població distribuïda


𝜎𝜎�
normalment, l’IC és: 𝑥𝑥 ± 𝑡𝑡𝑛𝑛−1,1−𝛼𝛼/2 ·
𝑛𝑛
b) Si no es compleix el supòsit de distribució normal → agrupar les dades
en lots per obtenir valors distribuïts normalment (teorema del límit
central)

42
SIM Estudi de simulació

Fases d’un estudi de simulació:

Modelitzar Simular Analitzar

Analitzar els resultats de l’experiment de


Desenvolupar el model de simulació Dissenyar i executar l’experiment de simulació
simulació

2. Recollir i 6. Seleccionar el 7. Establir les


1.Identificar
processar 3. Construir 4. Validar el
5. 8. Realitzar la 9. Interpretar i 10. Recomanar
i formular el Documentar disseny condicions
problema
les dades del el model model
el model simulació presentar resultats properes accions
sistema experimental d’execució

43
SIM Bibliografia

Monogràfics

• Law, A.M. (2007). Simulation modeling & analysis, 4th ed. McGraw-Hill, New York.

Probablement, el text més complet. Especialment recomanable el capítol 6, sobre generació de


les entrades del model.

• Ross, S.M. (2006). Simulation (4th ed.). Academic Press.

Tractament parcial, molt enfocat cap als aspectes estadístics. Recomanable el cap. 8, sobre
tècniques de reducció de la variància.

General

Són textos d’introducció a la investigació operativa, en què una part del llibre es
refereix a la simulació.

• Hillier, F.S.; Lieberman, G.J. (2010). Introducción a la Investigación de Operaciones.


McGraw-Hill (9ª ed.).

• Taha, H.A. (2004). Investigación de Operaciones, una introducción. Pearson


Educación (7ª ed.). En anglès: 8th ed. Prentice-Hall, 2007.

44
SIM Bibliografia

Altres

• Kelton, W.D.; Sadowski, R.P.; Sturrock, D.T. (2007). Simulation with Arena,
4th ed. McGraw-Hill, New York.
Arena és un programari. El llibre no és un manual d’Arena, sinó una introducció a la
simulació que fa ús d’Arena com a vehicle. En qualsevol cas, la presentació està
fortament vinculada al programa.

45

You might also like