Você está na página 1de 30

SIMULAÇÃO

Programa
1. Modelação de sistemas através da simulação
2. Software de simulação
3. Validade e credibilidade de modelos
4. Selecção de distribuições de probabilidade para os dados
5. Análise de resultados

Bibliografia
• Law, Averill and Kelton, W.David (2000). Simulation Modeling and
Analysis (3rd ed), McGraw-Hill, USA. (Caps. 1, 3, 5, 6.1-6.2, 13)
• Elder, Mark. Simulation Course Handbook, University of Strathclyde, UK.

SIMULAÇÃO – IDEIAS CHAVE

• Simulação é uma ferramenta estatística para analisar sistemas reais, que imita o
funcionamento lógico do sistema ao longo do tempo num modelo de computador
• A simulação permite analisar sistemas complexos que não é possível tratar com
modelos matemáticos que se possam resolver analiticamente
• A simulação não permite optimizar os parâmetros de um sistema e obter
respostas exactas
• A simulação tem inúmeras aplicações práticas
– produção ou serviços
– nível estratégico ou nível operacional
• Utilizar a simulação na prática requer:
– competências técnicas de simulação, estatística, programação, modelação de sistemas
– seguir uma metodologia de análise do sistema real
• Nesta disciplina:
– introdução à simulação discreta, modelação de sistemas, e análise de resultados
– aprendizagem tutorial de um software de simulação (SIMUL8)
– não são cobertos tópicos de cursos avançados de simulação:
geração de números aleatórios, redução de variância, planeamento de experiências

1
1. MODELAÇÃO DE SISTEMAS POR SIMULAÇÃO
1.1 Natureza da simulação

• simulação: é uma técnica estatística que utiliza um computador para imitar, ou


simular, operações de instalações ou processos reais de interesse.
• sistema: é a instalação ou processo real que interessa analisar, e sobre o qual
se conhecem as regras lógicas de funcionamento
• modelo do sistema: é o conjunto de relações matemáticas ou lógicas que
descrevem o funcionamento do sistema real, e que serve para analisar e avaliar
o comportamento do sistema
• simulação(2): consiste em fazer variar os parâmetros de entrada de um
modelo do sistema real e analisar o seu impacto nas medidas de desempenho
relevantes
• métodos de análise de modelos:
– dedução: são métodos matemáticos que permitem obter informações exactas sobre o
modelo, i.e. soluções analíticas (ex: álgebra, cálculo, teoria da probabilidade)
– simulação: são métodos estatísticos que permitem obter estimativas das verdadeiras
características do modelo, a partir da avaliação numérica do modelo em computador

Áreas de aplicações da simulação

• planear e analisar sistemas de produção


• avaliar a eficácia e os requisitos logísticos de armamento militar
• determinar requisitos de hardware e protocolos para redes de comunicação
• planear e operar sistemas de transportes
– aeroportos, portos, metros, auto-estradas, cruzamentos com semáforos
• planear e analisar serviços
– call centers, restaurantes fast food, hospitais, postos de correio
• reengenharia de processos (BPR)
• determinar regras de encomenda para gestão de stocks
• analisar sistemas económicos ou financeiros

2
O que é (e o que não é) a simulação

• a simulação não é uma técnica de optimização


• a simulação não produz uma solução por si só
• um modelo de simulação é executado e não resolvido
• a simulação permite aos analistas testar as suas propostas de solução
num modelo que duplique satisfatoriamente o sistema real
• a simulação é uma ferramenta de análise what if
• a simulação pertence à área científica da Investigação Operacional
• a simulação é uma ferramenta estatística
• para aplicar a simulação é preciso um método e uma metodologia
– método: procedimento ou técnica
– metodologia: práticas+procedimentos+regras
• o Simcity é uma simulação!

1.2 Sistemas, modelos e simulação

• sistema: é um conjunto de entidades (pessoas, máquinas, etc) que


actuam e interagem conjuntamente para cumprir um objectivo lógico
– aquilo que se designa por “sistema” depende dos objectivos em estudo
– o conjunto de entidades do sistema num estudo pode ser apenas um
subconjunto do sistema global de outro estudo

• estado do sistema: conjunto de variáveis necessárias para descrever o


sistema em qualquer instante de tempo, face aos objectivos do estudo
– sistema discreto: variáveis mudam instantaneamente em instantes discretos
– sistema dinâmico: variáveis mudam continuamente com o tempo

3
Modos de estudar um sistema

Sistema

Fazer experiências Fazer experiências


no sistema real num modelo do sistema

Modelo Modelo
físico matemático

Solução
Simulação
analítica

Vantagens e desvantagens
dos vários modos de estudar um sistema
Vantagens e desvantagens Aplicabilidade
utilizar o sistema real • resultados do estudo são válidos quando é possível alterar
• experiências são dispendiosas fisicamente o sistema e
observar os resultados
modelar o sistema • estudo não interfere com o quando o sistema real não
funcionamento do sistema real existe; ou não pode ser
• modelo pode não capturar a perturbado com experiências;
realidade do sistema e as ou é muito dispendioso fazê-lo
conclusões do estudo não serem
válidas
modelo físico • reproduz realidade à escala, em sistemas em que se estuda a
laboratório tecnologia (desenvolvimento,
• não é fácil fazer muitas engenharia)
modificações e estudar várias
configurações
modelo matemático • modelo pode ser manipulado e sistemas em que se estuda a
alterado facilmente organização lógica das
• alguns aspectos da realidade são operações (investigação
simplificados e aproximados operacional, gestão)
8

4
Vantagens e desvantagens
dos vários modos de estudar um sistema

Vantagens e desvantagens Aplicabilidade


solução analítica • solução é exacta e fechada quando o modelo é
(função dos parâmetros de entrada) suficientemente simples para se
• técnica de resolução pode ser poder usar técnicas matemáticas
computacionalmente difícil ou nem computacionalmente eficientes
existir
simulação • método de último recurso para permite estudar modelos
estudar modelos complexos complexos, intratáveis
• solução não é exacta e pressupõe analiticamente
valores concretos dos parâmetros

Classificação de modelos de simulação

• Modelos estáticos vs dinâmicos


estáticos o sistema é representado num instante particular de tempo
(ou em que a variável tempo não desempenha nenhum papel)
dinâmicos a evolução do sistema é representada ao longo do tempo

• Modelos determinísticos vs estocásticos


determinísticos parâmetros e solução descrita por valores concretos
estocásticos parâmetros e solução são probabilísticos (aleatórios)
solução serve apenas como estimativa das características do sistema

• Modelos discretos vs contínuos


discretos variáveis de estado variam em instantes particulares de tempo
contínuos variáveis de estado variam continuamente no tempo

simulação discreta Æ sistemas DINÂMICOS, ESTOCÁSTICOS e DISCRETOS

10

5
1.3 Simulação discreta

• simulação por eventos discretos (ou simulação discreta): método de


modelação da evolução de um sistema com o tempo, em que as
variáveis de estado mudam instantaneamente em instantes
particulares (discretos) de tempo
• evento: é uma ocorrência instantânea que pode provocar uma
mudança de estado do sistema

• Exemplo: serviço de atendimento com um servidor


– objectivo do estudo:
clientes servidor
• estimar o tempo médio de espera na fila
– tipos de entidades: cliente; servidor
– variáveis de estado:
• estado do servidor (livre ou ocupado)
• número de clientes na fila à espera de atendimento
• instante de chegada de cada cliente ao sistema
– eventos:
• chegada de um cliente
• partida de um cliente (no fim do serviço)
11

Mecanismos de avanço de tempo

• os modelos de simulação discreta são dinâmicos, logo:


– é necessário manter um registo do tempo simulado ao longo da simulação
– é necessário um mecanismo para avançar o tempo de um instante para outro

• relógio de simulação: é a variável de um modelo de simulação que


regista o valor actual do tempo simulado
– não tem unidade explícita Æ mesma unidade dos parâmetros de entrada
– tempo simulado ≠ tempo de computador de execução da simulação
– tempo simulado ≠ tempo real

• métodos de avanço de tempo:


– fixed increment (avanço por incremento fixo de tempo)
– next event (avanço para o próximo evento)

12

6
Métodos de avanço de tempo

• Avanço por incremento fixo

tempo
0 e1 ∆t 2∆t e2 e3 3∆t e4 4∆t

• Avanço para o próximo evento

tempo
e1 e2 e3 e4
0

1. o relógio é inicializado a zero e são determinados os instantes dos eventos futuros;


2. o relógio é avançado para o instante do próximo evento a ocorrer;
3. o estado do sistema é actualizado de acordo com esse evento, e os instantes de
novos eventos são determinados
4. os passos 2 e 3 são repetidos, até cumprir uma condição de paragem pre-estabelecida

13

Exemplo: sistema de atendimento com um servidor,


avanço de tempo pelo mecanismo next-event

• ti = tempo de chegada do cliente i (t0=0)


• Ai = ti-ti-1 = tempo entre chegadas dos clientes i-1 e i
• Si = tempo de atendimento do cliente i no servidor
• Di = tempo de espera do cliente i na fila
• ci = ti+Di+Si = tempo de partida do cliente i
• ek = tempo do k-ésimo evento de qualquer tipo (chegada ou partida)

e1 e2 e3 e4 e5
tempo
t1 t2 c1 t3 c2
0

A3
A1 A2

S1 S2

14

7
Implementação de um modelo de simulação discreta:
componentes e organização
• Componentes de um modelo de simulação discreta:

Variáveis: Rotinas:
– ESTADO DO SISTEMA: conjunto – rotina de inicialização: subprograma que inicializa
de variáveis que descrevem o o estado do sistema no instante 0
estado do sistema num instante de – rotina de gestão de tempo: subprograma que
tempo determina o próximo evento da lista de eventos e
avança o relógio de simulação
– RELÓGIO DE SIMULAÇÃO: – rotinas dos eventos: subprogramas (um por tipo de
variável que regista o instante evento) que actualizam o estado do sistema quando
actual do tempo simulado ocorre um evento
– LISTA DE EVENTOS: lista com o – biblioteca de rotinas: conjunto de subprogramas
próximo instante de tempo em que que geram observações aleatórias das distribuições
de probabilidade que são utilizadas pelo modelo
cada tipo de evento vai ocorrer
– gerador de relatórios: subprograma que calcula no
– contadores estatísticos: variáveis fim da simulação (a partir dos contadores
que guardam informação estatísticos) medidas de desempenho do sistema e
estatística, recolhida ao longo da produz um relatório
simulação, sobre o desempenho do – programa principal: subprograma que chama a
sistema rotina de gestão de tempo e passa o controlo para a
correspondente rotina do evento; este programa
também verifica as condições de paragem e chama
o gerador de relatórios no fim da simulação

15

Início
Rotina de inicialização Programa principal

1. Relógio de simulação = 0 0. Chama rotina de inicialização


2. Inicializa estado do sistema
e contadores estatísticos Rotina de gestão de tempo
3. Inicializa lista de eventos
1. Chama rotina de gestão de tempo 1. Determina tipo do
próximo evento (k)
2. Chama rotina do evento k
2. Avança o relógio da
simulação
Rotina do evento k
1. Actualiza estado do sistema
2. Actualiza contadores estatísticos Biblioteca de rotinas
3. Gera eventos futuros e adiciona-
Gera valores aleatórios
os à lista de eventos

Simulação Não
terminada?

Sim
Gerador de relatórios

1. Calcula medidas de desempenho


2. Escreve relatório

Fim 16

8
Notas sobre modelos de simulação discreta

• Entidades e atributos:
– o sistema é compostos por um conjunto de entidades
• ex: pessoas, peças, máquinas, veículos
– as entidades são caracterizadas por atributos
• atributos são informações individuais das entidades
• os atributos são também variáveis de estado
• ex: tempo de chegada do cliente ao sistema, tipo de cliente, tamanho da peça

• Abordagens alternativas à modelação por simulação:


– método do escalonamento de eventos ilustrado atrás
– método da interacção de processos óptica da “vida” das entidades
– método das 3 fases (ou método ABC) utilizado pelo SIMUL8

17

1.4 Exemplos de simulação manual

• Exemplos de simulação “manual”


– introdução da mecânica da simulação
– introdução dos conceitos de evento, estado do sistema e relógio da simulação
– ilustração o cálculo de medidas de desempenho do sistema

• Exemplo 1: Serviço de atendimento de clientes com um servidor


• Exemplo 2: Serviço de atendimento de clientes com dois servidores
• Exemplo 3: Sequenciamento de tarefas num job-shop

18

9
Exemplo 1
Serviço de atendimento de clientes com um servidor

• Funcionamento do sistema (barbearia):


– os clientes chegam à barbearia, e esperam num sofá se o barbeiro estiver ocupado
– o barbeiro serve os clientes por ordem de chegada
– o cliente abandona a barberia após o corte de cabelo terminar

fila de espera cliente a


ser
atendido
chegada de
clientes ao ... servidor
sistema

saída de
clientes do
sistema

19

Exemplo 1

• Dados para a simulação do sistema: Número Instante de Tempo de


– instantes de chegada dos clientes ao sistema do cliente chegada (min) serviço (min)
– tempo de duração do serviço de cada cliente
1 3.2 3.8

• Pedido: 2 10.9 3.5


– simular manualmente este sistema até todos os 3 13.2 4.2
clientes serem atendidos
– calcular as seguintes medidas de desempenho: 4 14.8 3.1
• tempo médio de permanência dos clientes no
sistema 5 17.7 2.4
• tempo médio de espera dos clientes
• número médio de clientes no sistema 6 19.8 4.3
• número médio de clientes em espera
• taxa de ocupação do servidor 7 21.5 2.7

8 26.3 2.1
• Começar por:
– identificar variáveis de estado 9 32.1 2.5
– identificar eventos 10 36.6 3.4

20

10
evento evento
CHEGADA PARTIDA

Marca próximo Sim Fila ficou Não


evento de chegada vazia?

Subtrai 1 ao
Sim Servidor Não número na fila
ocupado?
Regista tempo de Calcula o tempo de
espera=0 para este espera do cliente que
cliente inicia o serviço
Adiciona 1 ao servidor=livre
número na fila Adiciona 1 ao número Adiciona 1 ao número
de clientes que de clientes que
passaram na fila passaram na fila
Guarda tempo de
chegada deste cliente Marca evento de
servidor=ocupado
partida deste cliente

Desloca clientes na
Marca evento de
fila uma posição para
partida deste cliente
a frente

Volta ao prog. Volta ao prog.


principal principal
21

Exemplo 2
Serviço de atendimento de clientes com dois servidores

• Funcionamento do sistema (agência de viagens):


– dois agentes trabalham em paralelo no balcão de uma agência de viagens
– ao chegarem, os clientes formam uma única fila à espera do primeiro agente livre
– se ambos os agentes estiverem livres, o cliente escolhe o Agente 1
• Dados:
– tempo entre chegadas:
• Os tempos entre chegadas de clientes seguem uma distribuição exponencial negativa com
valor esperado de 2.0 minutos.
• Estes tempos podem ser gerados a partir de números aleatórios uniformes entre 0 e 1 com a
seguinte fórmula:
x = –µ *ln(1-r), onde r~U(0, 1), µ:valor esperado
• Use a seguinte cadeira de números aleatórios para valores de r:
0.829 0.434 0.814 0.920 0.667 0.528 0.947 0.093 0.295 0.503 0.139 0.098 0.478
• Assuma que o primeiro cliente chega no instante 0.
– tempo de serviço:
• Os tempos médios de serviço são iguais para os dois agentes.
• Os tempos de serviço têm duas parcelas:um tempo constante de 1 minuto para o contacto
inicial; um tempo variável uniforme entre 0.5 e 2.0 minutos.
• Para gerar valores aleatórios uniformemente distribuídos entre A e B pode usar-se a fórmula:
x = A+(B-A)*r, onde r~U(0, 1), A:limite inferior, B:limite superior
• Use a seguinte cadeia de números aleatórios para r:
0.269 0.841 0.252 0.763 0.019 0.216 0.090 0.814 0.334 0.321 0.265 0.813 0.996

22

11
Exemplo 2

• Pedido:
– simular manualmente este sistema até 10 clientes completarem o serviço
– calcular as seguintes medidas de desempenho:
• taxa de ocupação de tempo dos dois agentes Cliente Tempo entre Instante de Tempo de
nº chegadas chegada serviço
• tempo médio de espera dos clientes
1 – 0.00 1.90
• tempo médio de permanência dos clientes no sistema
2 3.53 3.53 2.76
• número médio de clientes na fila de espera 3 1.14 4.67 1.88
• número médio de clientes no sistema ... ... ... ...
• Sugestões: 13

– começar por calcular instantes de chegada e tempos de serviço


– para a simulação manual, utilizar um quadro com as seguintes entradas:
relógio da tipo de cliente nº próxima nº de nº de nº de estado do próx. estado do próx.
simulação evento chegada clientes na clientes no agentes agente 1 saída 1 agente 2 saída 2
fila sist. ocup.
0.00 – – 0.00 0 0 0 livre – livre –
0.00 chegada 1 3.53 0 1 1 ocup (cli 1) 1.90 livre –
1.90 partida 1 3.53 0 0 0 livre – livre –
3.53 chegada 2 4.67 0 1 1 ocup (cli 2) 6.29 livre –
... ... ... ... ... ... ... ... ... ... ...
... partida 10

23

Exemplo 3
Sequenciamento de tarefas num job-shop

• Funcionamento do sistema: Tipo Máquinas


– quatro tipos de peças são processadas numa oficina com três peça
máquinas (Torno, Fresadora, Rectificadora)
1 T, F, R, F
– cada tipo de peça tem uma sequência de operações distinta
2 F, T, R
– das peças a aguardar processamento numa máquina, é escolhida
primeiro aquela que tiver menor tempo de operação 3 R, T, F, T
– neste momento há 4 tarefas a realizar: 4 peças, uma de cada tipo 4 F, R, T, R
• Dados:
– sequência de operações (máquina e tempo de processamento)
• Pedido:
– simular manualmente este sistema até processar todas as tarefas Tipo Tempos proc.
– calcular as seguintes medidas de eficiência: peça (min)
• tempo total de processamento (ou makespan) 1 2, 4, 2, 1
• tempo médio de fluxo das tarefas
2 3, 3, 1
• tempo médio de espera das tarefas
• taxa média de ocupação das máquinas 3 3, 2, 2, 5
4 5, 4, 2, 3
• Nota: este problema poderia ser generalizado com
– chegadas de peças ao sistema com intervalos de tempo probabilísticos
– tempos de processamento probabilísticos
– adopção de outras regras de sequenciamento
24

12
1.5 Passos num estudo de simulação

• A programação de um modelo de simulação é apenas uma parte do


trabalho global de um estudo de simulação.
• Deve ser seguida uma metodologia consistente:
1. Formular o problema 4. Construir programa em 7. Planear
e planear o estudo computador e verificar experiências

2. Recolher dados e 5. Executar corridas


8. Executar corridas
conceber um modelo de teste

3. Modelo 6. Modelo 9. Analisar


Sim Sim
conceptual programado resultados
válido? válido?
Não Não
10. Documentar, apresentar
e usar os resultados

25

1.6 Outros tipos de simulação

• Tipos de simulação
– Simulação por eventos discretos
– Simulação contínua
– Simulação discreta e contínua combinadas
– Simulação de Monte Carlo

• Simulação contínua
– modelação da evolução de um sistema no tempo, em que as variáveis de
estado mudam continuamente no tempo
– habitualmente o modelo envolve equações diferenciais que definem as
taxas de variação das variáveis de estado com o tempo
– técnicas de integração numérica de equações intratáveis analiticamente:
método de Euler, método de Runge-Kutta

26

13
Simulação discreta e contínua combinada

• Simulação discreta e contínua combinada


– aplicável quando o sistema não é nem inteiramente discreto ou contínuo
– há três tipos de integração de simulação contínua com simulação discreta:
1. um evento discreto pode provocar uma mudança discreta no valor de uma variável contínua
2. um evento discreto pode provocar uma alteração da relação que governa a variação de uma
variável contínua
3. uma variável de estado contínua ao atingir um determinado limite pode causar a ocorrência de
um evento discreto

• Exemplo: chegada de petroleiros a um porto, onde o petróleo é descarregado


para um tanque e daí é escoado para uma refinaria
– evento discreto: chegada de um barco
– variáveis contínuas
• nível de petróleo nos petroleiros
• nível do tanque
• (são governadas por equações diferenciais, dadas as taxas de descarga e consumo)
– eventos discretos provocados pela variação das variáveis contínuas:
• o barco considera-se descarregado quando o nível atinge 5% da capacidade
• a descarga do barco é interrompida se o tanque encher
• a descarga do barco só é retomada quando o nível do tanque desce abaixo de 80%
27

1.7 Vantagens, desvantagens e armadilhas da


simulação

• Vantagens da simulação
– é a única via de análise possível de sistemas reais complexos e com
elementos estocásticos, que não são fielmente descritos por modelos
matemáticos que se possam avaliar analiticamente
– permite estimar o desempenho de um sistema existente com condições de
funcionamento diferentes
– permite comparar configurações alternativas de um dado sistema, para
verificar qual cumpre melhor os objectivos estipulados (análise what if)
– permite manter melhor controlo das experiências a realizar do que seria
possível se se alterasse o próprio sistema real
– permite estudar o funcionamento do sistema ao longo de um horizonte
temporal extenso em “tempo comprimido”
• lembrar: relógio de simulação ≠ relógio de tempo real

28

14
Desvantagens da simulação

– cada corrida de um modelo estocástico de simulação produz apenas


estimativas das verdadeiras características do modelo para valores
particulares dos parâmetros de entrada
• são necessárias várias corridas do modelo para cada conjunto de valores dos
parâmetros
• a simulação permite apenas comparar um número fixo de configurações
alternativas de um modelo e não é uma ferramenta adequada para optimizar o
modelo
– o desenvolvimento de modelos de simulação pode ser dispendioso e
demorar algum tempo, se o sistema em análise for muito complexo
– o grande volume de resultados numéricos produzidos por um estudo de
simulação e o efeito persuasivo de um modelo animado podem levar a
confiar cegamente nos resultados da simulação
• se o modelo não for válido, os resultados da simulação, por mais
impressionantes que sejam, não conduzem a conclusões úteis sobre o sistema
real

29

Armadilhas da simulação

– utilizar a simulação, quando outra técnica é a mais adequada


– não definir claramente os objectivos no início de um estudo de simulação
– desapropriado nível de detalhe do modelo
– falhas de comunicação com os gestores durante o estudo
– má compreensão da simulação por parte dos gestores
– olhar um estudo de simulação principalmente como um exercício de utilização de
software em computador
– não incluir na equipa pessoas com conhecimento de estatística e metodologia da
simulação
– adoptar software de simulação desapropriado
– acreditar que software que seja fácil de usar, e não requeira programação, dispensa
competência técnica e metodológica
– não recolher dados de boa qualidade no sistema real
– não incorporar correctamente as fontes de aleatoriedade do sistema real
– escolher arbitrariamente distribuições de probabilidade para os dados
– correr um modelo de simulação uma única vez e tomar os resultados obtidos como “a
verdadeira resposta”
– adoptar medidas de desempenho erradas

30

15
2. SOFTWARE DE SIMULAÇÃO
2.1 Software simulação vs Linguagens programação
• Vantagens de software específico para simulação:
– redução de tempo e de custo de programação porque as rotinas e componentes
básicos necessários para construir um modelo de simulação já estão incluídos
– a sintaxe da linguagem de programação está adaptada à simulação
– os modelos de simulação são mais fáceis de modificar no futuro
– detecção automática de erros comuns de programação

• Vantagem das linguagens de programação genéricas:


– a maior parte dos programadores conhece linguagens genéricas mas não uma
linguagem de simulação
– as linguagens genéricas como o C ou C++ produzem código mais eficiente (i.e.
executado em menos tempo)
– as linguagens genéricas são mais flexíveis e adaptáveis
– em geral o compilador de uma linguagem genérica tem menor custo (embora o custo
total do projecto possa ser mais elevado)

31

2.2 Classificação de software de simulação

• Tipos de software de simulação (TRADICIONALMENTE)


– linguagens de simulação
– simuladores de aplicações específicas
linguagens de •linguagens derivadas das linguagens genéricas
simulação •modelos são programados
•mais flexíveis mas mais difíceis de usar
simuladores •modelos são desenvolvidos com interfaces gráficas (menus, caixas de diálogo, ícones)
para aplicações específicas (produção, hospitais, call centers, etc)
•mais fáceis de aprender e usar mas menos flexíveis

• O software de simulação moderno é híbrido :


– as linguagens permitem construir os modelos graficamente e incluem componentes de
modelos pré-definidos
– os simuladores tornaram-se mais generalistas e incluem uma pseudo-linguagem para
programar alguns aspectos dos modelos

• Tipos de software de simulação (ACTUALMENTE)


– software de simulação genérico
– software de simulação orientado para aplicações específicas
32

16
Componentes de modelos
incluídos habitualmente no software de simulação
• As entidades,
– são criadas (chegam ao sistema), interagem com outras entidades ao atravessar parte
do sistema, e depois são depois destruídas (saem do sistema)
– distinguem-se pelos seus atributos, que são elementos de informação que todas
possuem
– requisitam recursos (entidades permanentes) para algum serviço ou processamento
– ficam retidas em filas de espera enquanto os recursos estão ocupados com outras
entidades

Tipo de sistema Entidades Atributos Recursos Filas de espera

referência, data máquinas,


Produção peça Filas, lotes
de entrega trabalhadores

Comunicações mensagem destino, tamanho nós, ligações Filas, buffers

número do vôo, pistas, portas de


Aeroporto avião Filas
peso embarque
Agência de contrato, nome, tipo de vendedores,
Filas
seguros participação seguro empregados

33

2.3 Características de software de simulação

Características gerais • tamanho e complexidade dos modelos que permite construir


• facilidade de utilização
• velocidade de execução
• importação e exportação de dados (bases dados, Excel)
• suporte de simulação discreta e contínua combinadas
• possibilidade de chamar rotinas externas
• custo
Requisitos de hardware • processador e memória requeridos
e software • sistemas operativos suportados
Animação gráfica • animação concorrente (à medida que decorre a simulação)
• gráficos em 3D
Capacidades • qualidade do gerador de números aleatórios
estatísticas • distribuições de probabilidade suportadas
• cálculo de resultados com significado estatístico
Suporte e • formação
documentação • suporte técnico
• documentação
Relatórios e gráficos • possibilidade de definir resultados a incluir nos relatórios
• criação de gráficos: histogramas, time plots, pie charts 34

17
2.4 Exemplos de software de simulação

• Software genérico

Software Companhia Tipo de software


Arena Rockwell Simulador
Extend Imagine That Simulador
SIMUL8 Visual Thinking Simulador
AweSim Symix Linguagem gráfica
MicroSaint Micro A&D Linguagem gráfica
GPSS/H Wolverine Linguagem
SLX Wolverine Linguagem
MODSIM III CACI Linguagem OO
SIMPLE++ Tecnomatix Linguagem OO

• Listas de software de simulação


– http://www.lionhrtpub.com/orms/surveys/Simulation/Simulation.html
– http://www.idsia.ch/~andrea/simtools.html
35

Exemplos de software orientado para aplicações

Tipo de aplicação Software Companhia


Produção Arena Packaging Edition Rockwell
Extend+Manufacturing Imagine That
AutoMod AutoSimulations
ProModel Promodel Corp
QUEST Deneb
WITNESS Lanner Group
Redes de COMNET III CACI
comunicação IT DecisionGuru MIL 3
OPNET Modeler MIL 3
Serviços Arena Business Edition Rockwell
Extend+BPR Imagine That
ServiceModel Promodel Corp
SIMPROCESS CACI
Serviços de saúde MedModel Promodel Corp
Call centers Arena Call Center Edition Rockwell

36

18
Programa em linguagem de simulação (SLAM)
1 GEN,OREILLY,TV INSP. AND ADJUST.,,1;
2 LIMITS,2,2,50;
3 NETWORK;
7 CREATE,UNFRM(3.5,7.5),,1;
8 ACTIVITY;
9
10
INSP QUEUE(1);
ACT(2)/1,UNFRM(6.,12.);INSPECTION
Modelo em linguagem gráfica (Awesim)
11 GOON;
12 ACT,,.85,DPRT;85 DEPART
13 ACT,,.15,ADJT;15 ARE RE-A
14 DPRT COLCT,INT(1),TIME IN SYSTEM;
15 ACTIVITY;
16 TERM;
17 ADJT QUEUE(2);
18 ACT/2,UNFRM(20.,40.),,INSP;ADJUSTMENT
19 END;
20 INIT,0,480;
21 MONTR,TRACE,0,60,ATRIB(1),NNQ(1),NNQ(2);
22 FIN;

Modelo gráfico (SIMUL8)

37

3. VALIDADE E CREDIBILIDADE DE MODELOS

• verificação (debugging): teste da passagem de um modelo conceptual para a


sua implementação numa linguagem de programação [ou modelador gráfico]
• validação: teste da passagem do sistema real para o modelo, face aos
objectivos particulares a estudar
• credibilidade: correcção dos resultados do modelo de simulação aos olhos dos
gestores ou clientes
– um modelo válido pode não ser credível
– um modelo credível pode não ser válido!

Validação +
Credibilização Verificação Validação Credibilização

Resultados
Programa
Modelo Resultados usados na
Sistema de
1, 2, 3 conceptual 4 simulação 5, 6, 7 “correctos” tomada de
8, 9 Vender decisão
resultados
à Gestão

38

19
3.2 Nível de detalhe de modelos de simulação

• Nível de detalhe do modelo: é a porção de aspectos do sistema real que são


incluídos no modelo
– quando maior o nível de detalhe, maior o tempo e o custo de modelação
– alguns aspectos podem ser desprezados sem prejuízo dos objectivos do estudo

• O nível de detalhe que o modelo deve capturar:


– é determinado pelos objectivos do estudo de simulação
– deve ser consistente com os dados disponíveis para “alimentar” o modelo
– é um compromisso entre “realismo” e custo
– deve abranger aspectos que credibilizem o modelo, mesmo que sejam irrelevantes
para a sua validação

• Em sistemas complexos o estudo pode ser hierárquico:


– primeira aproximação por via analítica ou com modelo de simulação “grosseiro”
– segunda aproximação com maior detalhe, apenas incorporando os factores relevantes

39

Exemplos de modelos com diferentes níveis de detalhe

• Sistema: produção job-shop, com m máquinas e n tipos de peças


– conjunto de máquinas de diferentes tipos
– diferentes tipos de peças, com distintas sequências de operação

• opções de nível de detalhe:


– quanto ao tempo de setup
• não considerar tempos de setup
• considerar um tempo de setup médio constante e incluí-lo no tempo de serviço
• considerar o tempos de setup função do último tipo de peça produzido e do
próximo tipo de peça a produzir
– quanto à movimentação de stocks entre máquinas
• considerar ou não tempos de movimentação entre máquinas
• considerar ou não limitação de espaço de stock

40

20
Exemplos de modelos com diferentes níveis de detalhe

• Sistema: caixas de supermercado, com n filas e n servidores

• opções de nível de detalhe:


– quanto à selecção da fila
• clientes escolhem uma fila aleatoriamente
• clientes escolhem a fila mais curta
• clientes escolhem a fila mais curta e mudam de fila se alguma fila próxima ficar
mais curta
– modelar ou não filas especiais
• filas expresso para pequeno volume de compras
• filas prioritárias para grávidas
– modelar ou não situações de excepção
• interrupção para verificar preço não marcado

41

3.3 Como validar e credibilizar modelos de simulação

• recolher no sistema real dados com “qualidade” (fiáveis e representativos)


• listar pressupostos e fontes de informação de todos os elementos do modelo
• interagir regularmente com a Gestão e outras pessoas que lidam com o sistema real
– os gestores devem compreender e concordar com os pressupostos do modelo
– demonstrar que o modelo foi verificado e validado
– criar na Gestão um sentimento de posse do estudo de simulação
• utilizar métodos quantitativos
– testes de ajuste de distribuições de probabilidade aos dados
– análise de sensibilidade da influência individual de parâmetros sobre medidas de desempenho
– análise de sensibilidade conjunta de vários factores (design of experiments)
• criar um modelo animado

42

21
4. SELECÇÃO DE DISTRIBUIÇÕES DE
PROBABILIDADE PARA OS DADOS
• O comportamento aleatório do sistema é recriado no modelo com a
caracterização dos dados com distribuições de probabilidade
• Tipos de distribuições de probabilidade
– distribuições teóricas
– distribuições empíricas
• Fontes de aleatoriedade:
Tipo de sistema Fontes de aleatoriedade
Produção tempos de processamento
tempo entre falhas de uma máquina
tempo de reparação de máquinas
tamanho de lotes de encomenda
proporção de defeitos
Comunicações tempo entre chegadas de mensagens
tipo de mensagem
tamanho da mensagem
Transportes tempo de carga de navios
tempo entre chegadas de passageiros ao metro
43

Importância da escolha da distribuição

• Exemplo: sistema de produção com uma máquina e uma fila de espera


– tempo entre chegadas: segue distribuição exponencial com média de 1 minuto
– tempo de serviço: existem 200 observações, mas a distribuição é desconhecida
– experiência:
• são ajustadas 5 distribuições distintas às observações
• simulação do sistema com 100 corridas independentes até processar 1000 peças

Tempo médio Número médio Proporção


Distribuição ajustada de espera em espera esperas ≥ 20min
ao tempo de serviço
min relativo n relativo % relativo
Exponencial 6.71 1.5 6.78 1.5 6.4% 4.9
Gama 4.54 1.0 4.60 1.0 1.9% 1.5
Weibull 4.36 1.0 4.41 1.0 1.3% 1.0
Lognormal 7.19 1.6 7.30 1.7 7.8% 6.0
Normal 6.04 1.4 6.13 1.4 4.5% 3.4

– conclusão: os resultados são muito díspares, apesar de todas as distribuições


ajustadas serem estatisticamente válidas
44

22
4.1 Distribuições teóricas úteis para a simulação

• Problema: existem dados recolhidos no sistema real (obervações) mas


desconhece-se a distribuição de que provêm (se alguma!)

• Ajuste de uma distribuição teórica a um conjunto de observações:


1. selecção de um tipo de distribuição localização (µ)
2. estimação dos parâmetros da distribuição escala (σ)
3. aplicação de testes estatísticos à qualidade de ajuste forma

• Distribuição de tempos tipicamente encontrada na prática:


– só valores x>0
– assimétrica com cauda à direita
função distribuição de
função f(x) F(x) probabilidade
densidade (probabilidade acumulada)
de probabilidade probabilidade de 1
ocorrerem valores
muito elevados
não há valores
negativos
x x 45

Algumas distribuições contínuas úteis para a simulação


UNIFORME U(a, b) EXPONENCIAL expo(µ)

f(x) f(x)
σ=µ (elevada variabilidade)

1/(b-a) 1/µ P(x ∈ [0.025µ, 3.7µ]) = 95%

x µ x
a µ b
valores equiprováveis tempo entre chegadas
entre a e b independentes

NORMAL N(µ, σ) WEIBULL weibull(α, β)

f(x) f(x) weibull(α<1, 1)


P(x ∈ [µ-2σ, µ+2σ]) = 95% weibull(α>1, 1)
weibull(1, β)
=expon(β)
µ x x

efeito resultante da influência de tempo de serviço, tempo


muitos factores independentes até falha (MTBF)
46

23
4.2 Distribuições empíricas

• Distribuição empírica: distribuição especificada directamente pelos dados


observados
– vantagem: é possível gerar valores aleatórios sem ajustar uma distribuição teórica
– desvantagem: não são gerados valores maiores do que os observados

• Exemplo:
– fizeram-se n observações do tempo de serviço: X1, X2, …, Xn
– as observações foram agrupadas em 4 intervalos intervalos: (ai-1, ai]

intervalo frequência frequência


freq. acumulada F(x)
absoluta relativa
acumulada 1 1
(a0, a1] n1 n1/n
(a1, a2] n2 (n1+n2)/n
(a2, a3] n3 (n1+n2+n3)/n
(a3, a4] n4 (n1+n2+n3 +n4)/n
a0 a1 a2 a3 a4 x a0 a1 a2 a3 a4 x
TOTAL n 1
Função distribuição
Histograma
obtida por interpolação
47

Geração de valores aleatórios


com uma dada distribuição de probabilidade
• Geração de valores aleatórios a partir de distribuições de probabilidade
1. geração de números aleatórios, i.e. valores aleatórios com distribuição U(0, 1)
2. transformação inversa da função de distribuição: x=F-1(u)
f(x)

Densidade de
probabilidade
Weibull (1.5, 6) exemplo

x
u
Densidade de

F(x)
probabilidade

1 1
1
U (0, 1)

Distribuição de
probabilidade
nos aleatórios
Weibull (1.5, 6)
g(u)

x
0
1

2 amostras aleatórias
48

24
O perigo de substituir uma distribuição pela sua média

PELA TEORIA DAS FILAS DE ESPERA EXEMPLO: Sistema com 1 servidor e 1 fila
• num sistema do tipo M/G/1 com
– tempo entre chegadas C, que segue uma
distribuição exponencial negativa com valor 1. Versão probabilística
esperado 1/λ • tempo entre chegadas:
– tempo de serviço S, que segue uma qualquer C ~ ExpNeg (1.00, 1.002)
distribuição de probabilidade, com valor 1/λ = E(C) =1.00 min
esperado E(S) e variância Var(S)
– apenas 1 servidor e 1 fila de espera • tempo de serviço
S ~ ExpNeg (0.99, 0.992)
E(S) = 0.99 min
• o tempo médio de espera dos clientes na Var(S) = 0.992 min2
fila é dado por:
Æ TME=98.01 minutos
λ(Var(S) + [E(S)]2 )
TME =
2[1 - λE(S)] 2. Versão determinística
• C=1.00 determinístico
• interpretação: tanto o valor esperado como
a variância afectam o TME • S=0.99 determinístico
– TME aumenta se E(S) aumentar (é intuitivo) Æ o tempo de espera é obviamente zero!
– TME aumenta se Var(S) aumentar
(como S>0, uma Var(S) elevada significa que Substituir uma variável probabilística pelo
é relativamente grande a probabilidade de valor determinístico do seu valor esperado
ocorrerem tempos de serviço elevados!)
pode conduzir a resultados errados!
49

5. ANÁLISE DE RESULTADOS

• Análise de resultados: consiste na estimação, ou caracterização


estatística, das verdadeiras medidas de desempenho do modelo
– a simulação é uma técnica estatística de amostragem em computador
– a análise de resultados exige pelo menos tanta atenção quanto o
desenvolvimento do modelo

É errado executar um modelo uma única vez durante um tempo arbitrário


e aceitar os resultados como “A Resposta”.

50

25
5.1 Medidas de desempenho típicas
• número médio de entidades na fila de espera (ou tamanho médio da fila)
• número máximo de entidades na fila de espera
• tempo médio de espera das entidades na fila
• proporção de tempo em que houve pelo menos n clientes na fila

• taxa de ocupação do servidor


• número médio de entidades em processamento

fila 1 servidor 1 fila 2 servidor 2


chegada de entidades
entidades processadas

SISTEMA

• número de entidades processadas pelo sistema (contagem das entidades)


• número médio de entidades no sistema
• tempo médio de permanência das entidades no sistema
• tempo de espera total médio das entidades (soma dos tempos de espera)

51

Cálculo das medidas de desempenho

Medida de desempenho Definição Estimativa


n n

Tempo médio de espera das ∑ Di ∑D i

entidades na fila d ( n ) = lim i =1


dˆ (n ) = i =1
n →∞ n n
∞ K

Número médio de entidades ∞ ∑ i ⋅T i ∑c k

na fila q(n ) = ∑ i ⋅ pi qˆ (n ) = i =0
qˆ 2 (n ) = k =0

i =0 T (n ) K

Taxa de ocupação do S
servidor u(n ) uˆ (n ) =
T (n )

n : número de entidades simuladas


T(n) : tempo total da simulação até observar as n entidades Por amostragem:
Di : tempo de espera na fila da entidade i K : número de observações
pi : proporção de tempo em que estiveram i entidades na fila (Σpi=1) efectuadas no tempo T(n)
Ti : intervalo de tempo em que estiveram i entidades na fila (ΣTi=T(n)) ck : número de entidades na fila
u(n) : proporção de tempo em que o servidor esteve ocupado na observação k
S : intervalo de tempo em que o servidor esteve ocupado (S≤T(n))

52

26
Níveis de variabilidade dos resultados da simulação

• Dois níveis de variabilidade dos resultados da simulação:


1. Numa corrida Æ variabilidade entre entidades
2. Entre corridas independentes Æ variabilidade entre períodos de tempo

• EXEMPLO 1: Número total de peças produzidas


– é um valor único de uma corrida, mas varia entre corridas
– numa corrida resulta de uma contagem
– entre corridas calcula-se a média

• EXEMPLO 2: Tempo médio de espera na fila


– o tempo de espera varia de entidade para entidade
– numa corrida calcula-se a média dos tempos das entidades
– entre corridas calcula-se a média das médias

53

Intervalo de confiança para a média


de uma variável aleatória
• Como caracterizar a variabilidade entre corridas de X?
– X: medida de desempenho que se pretende estimar
– N: número de corridas do modelo (com números aleatórios independentes)
• O valor esperado da média amostral, ou “média de longo prazo”, de X pode ser
estimado a partir de N observações independentes

• Com nível de confiança de 95% (α=5%):


– grandes amostras (N>25), distribuição qualquer
X ± z(α / 2) ⋅ S / N
z(α=5%) = 2
– pequenas amostras, distribuição normal t(α=5%, N=5) = 2.8
t(α=5%, N=20) = 2.1
X ± t N −1(α / 2) ⋅ S / N

média da amostra desvio padrão da amostra


1 N 1
X = ⋅ ∑ Xi
N
S= ⋅ ∑ ( X i − X )2
N i =1 N − 1 i =1
54

27
5.2 Análise de resultados de um sistema

• Parâmetros a seleccionar para a recolha de resultados


1. período de aquecimento (warm-up)
2. período de recolha de resultados • repetições da simulação do mesmo modelo
3. número de corridas independentes do modelo • em cada corrida são utilizadas sequências
distintas de números aleatórios para gerar
tempos independentes
• mais repetições Æ maior precisão dos
número de corridas intervalos de confiança
independentes

modelação análise
CORRIDA DA SIMULAÇÃO
do sistema de resultados

warm-up período de recolha de


resultados
• período em que são registadas estatísticas
• tempo até o sistema atingir um
• tempo de duração da simulação com o sistema a
regime estável representativo
funcionar numa sucessão de estados típicos
• durante este período não são
• deve ter a duração do período que se quer analisar
recolhidas estatísticas
(dia, semana, mês) ou um múltiplo deste
55

A simulação como técnica Resultados


caracterizados
de amostragem estatística probabilisticamente

Parâmetros de entrada sd
x ± t(n) ⋅
caracterizados n
por distribuições de
probabilidade

1. Geração de 2. Geração de 3. Recolha de resultados em


4. Análise de
números amostras corridas independentes
resultados
aleatórios aleatórias do modelo
de números aleatórios ∈[0, 1]

Tempo entre chegadas Tempo de espera


período de recolha de resultados

Resultados independentes
Cadeias independentes

para a média das corridas


Intervalos de confiança
Amostras aleatórias

Tempo de serviço Tempo no sistema


EXECUÇÃO DO MODELO

EXECUÇÃO DO MODELO

Tempo entre falhas Tamanho da fila


...

Tempo de reparação Ocupação do servidor

Nº entidades
...
processadas
warm-up

...

56

28
Selecção dos parâmetros de recolha de resultados

• Como determinar o período de warm-up?


– executar a simulação durante um tempo arbitrário
– verificar num gráfico o tempo em que as medidas de interesse demoram a “estabilizar”
• Como determinar a duração da simulação?
– deve ser um intervalo múltiplo do período de interesse para o estudo
• ex: objectivo é a produção semanal Æ período de 1 semana, 2 semanas, 1 mês
– deve incluir várias repetições de eventos intermitentes ou imprevistos
• ex: manutenção e avarias de máquinas
• Como seleccionar o número de corridas da simulação?
1. Começar com 5 corridas independentes de cada cenário
2. Determinar IC para as medidas de desempenho de interesse para o estudo
3. Verificar a precisão da medida (amplitude do intervalo de confiança)
4. Se a amplitude não for suficientemente baixa, aumentar o número de corridas

warm-up
Tamanho da fila
Tempo no sistema
etc

time
57

5.3 Comparação de configurações alternativas


de um sistema
• Comparação entre duas configurações, ou cenários, avaliadas por medidas de
desempenho correspondentes, X1 e X2, dadas pelos intervalos de confiança:

Obter estas medidas com as


∆1 ∆2
IC1 : x1 ± IC2 : x 2 ± mesmas sequências de
números aleatórios em
2 2 ambos os cenários!

∆1 < ∆ 2 – menor amplitude: menor variabilidade de X1,


comportamento mais regular da configuração 1
IC1 ∩ IC2 = ∅ – intervalos disjuntos: com nível de confiança de 95%
pode dizer-se que as duas configurações têm distintos
desempenhos
IC1 ∩ IC2 ≠ ∅ – intervalos que se intersectam: não pode ser rejeitada a
hipótese de as medidas X1 e X2 terem o mesmo valor!

58

29
Nº peças produzidas por semana
Corrida Cenário 1 Cenário 2 EXEMPLO – Comparação de Layouts
1 293 261
2 274 264
3 196 230
4 254 287 • Como estimar a quantidade de produção semanal?
5 203 287 – dois cenários: dois layouts propostos para a fábrica
6 228 316
7 234 285
– 30 corridas independentes com duração=1 semana+warm-up
8 228 257 – os resultados variam entre corridas:
9 300 273
10 210 334 Min Max Média DP
11 234 242 Cenário 1 189 315 245.8 33.1
12 216 320
13 218 301 Cenário 2 188 334 270.5 33.3
14 315 292
15 239 288 – o Desvio Padrão mede a variabilidade dos resultados
16 246 271 individuais entre corridas
17 189 274
18 220 285
19 229 253 • Qual a segurança de adoptar a média observada como
20 259 265
21 273 239 estimativa da produção semanal?
22 265 298 – intervalo de confiança para a Média, com 95% de confiança:
23 248 223
24 280 319
– Média ± 2.DP/√n
25 232 235 DP/√n Intervalo de Confiança
26 212 260
27 238 225 Cenário 1 33.1/√30 = 6.0 245.8±12.0 = [233.8, 257.8]
28 300 188 Cenário 2 33.3/√30 = 6.1 270.5±12.2 = [258.3, 282.7]
29 287 246
30 254 298 59

Interpretação do resultado do exemplo

• Significado do IC da média amostral


– caracteriza a produção mensal a longo prazo
– eventualmente numa semana particular a produção pode não cair dentro do IC
– mas com 95% de confiança a produção média de “muitas” semanas ficará no IC
• Comparação de alternativas
a) se os intervalos de confiança forem disjuntos: as alternativas diferem
b) se os intervalos de confiança se intersectarem: as alternativas não se distinguem

a) b)

NESTE EXEMPLO : CENÁRIO 2 É MELHOR.

• Como seleccionar o número de corridas da simulação para comparar cenários?


1. Começar com 5 corridas independentes de cada cenário
2. Determinar IC para a média de ambos os cenários
3. Verificar se há intersecção dos IC
4. Se houver, aumentar o número de corridas para verificar se os IC se separam

60

30

Você também pode gostar