Simulação de Sistemas - SimuCAD

Propaganda
Simulação de
Sistemas
Parte 1
Introdução à Simulação
Parte 2
INPUT/OUTPUT : Entrada e Saída
de Simulação
Material preparado por Miguel Antonio Bueno
da Costa (Mian), para dar suporte à disciplina
de graduação “Simulação Aplicada à
Engenharia de Produção”, do Departamento
de Engenharia de Produção, da Universidade
Federal de São Carlos.
São Carlos,início da primavera de 2002
Grupo SimuCAD ! www.simucad.dep.ufscar.br
1. Introdução à Simulação
" Simulação [ETIM lat. Simulatio,onis] S.f. ação ou efeito de simular... 3 imitação do
funcionamento de um processo por meio do funcionamento de outro 4 teste, experiência
ou ensaio em que se empregam modelos para simular o ser humano, em especial em casos
de grande perigo de vida... " s.analógica teste ou experiência em que os modelos
empregados têm comportamento análogo ao da realidade " s. digital experiência ou ensaio
constituído por uma série de cálculos numéricos e decisões de escolha limitada, executados
de acordo com um conjunto de normas preestabelecidas e apropriadas à utilização de
computadores ... [Dicionário HOUAISS da língua portuguesa, 1a. Edição, pág. 2575,
Editora Objetiva, 2001]
Simulação de Sistemas é uma técnica tradicional da Pesquisa Operacional. É uma das
ferramentas mais importantes e úteis para analisar o projeto e a operação de sistemas
complexos.
Normalmente, a simulação de sistemas é utilizada quando não é possível fazer
experimentações no sistema real (devido, por exemplo, ao longo tempo necessário
para realizar o experimento, ou ao alto custo do experimento ou, ainda, à dificuldade
de tratar fisicamente o experimento). A simulação é utilizada, também, quando não é
possível desenvolver um modelo que solucione o problema através de técnicas da
Pesquisa Operacional que otimizam a solução, como a Programação Linear e a
Programação Dinâmica, dentre outras. Neste sentido existe uma forte afirmação de
M.Fox [1990] que diz : "Se existe um algoritmo que otimiza a solução, utilize-o".
Por outro lado, segundo G.Gordon [1978], a quantidade de problemas que podem ser
resolvidos matematicamente é limitada. As técnicas matemáticas requerem que o
problema possa ser expresso num modelo matemático, de formato particular. Ao se
estudar um problema é essencial considerar os métodos analíticos primeiro, e
verificar se o grau de abstração, necessário para obter uma solução analítica , não é
muito severo. Quando não for possível gerar soluções para um sistema por meios
analíticos, é necessário utilizar métodos de computação numérica, por exemplo a
simulação.
R.Shannon [1975] comenta que, ao contrário de muitas tecnologias que são
classificadas de acordo com a disciplina na qual ela se origina (física ou química por
exemplo), a simulação pode ser aplicada a todas as disciplinas. Incontáveis trabalhos,
relatórios, teses de mestrado e doutorado, revistas e livros mostram vários campos de
aplicação para a Simulação, como negócios, economia, marketing, educação,
política, ciências sociais, ciência comportamental, relações internacionais,
transportes, estudos urbanos, e muitos sistemas produtivos dos mais diferentes
setores da economia.
Segundo T.Naylor [1971] o uso moderno do verbo “simular” tem origem no trabalho
de Von Newman & Ulam que, em 1940, associaram a expressão Análise de Monte
Carlo a uma técnica matemática que foi utilizada para solucionar certos problemas de
blindagem em reatores nucleares. O tratamento experimental desses problemas seria
muito caro e uma abordagem analítica seria muito complicada.
A análise ou método de Monte Carlo consiste na amostragem experimental com
números randômicos. A simulação e o método de Monte Carlo se confundem. Ambos
são técnicas de computação numérica. Porém, segundo G.Gordon [1978], a
simulação é aplicada em modelos dinâmicos, enquanto a análise de Monte Carlo é
aplicada a modelos estáticos.
Em síntese, os modelos de simulação são valiosos e necessários, uma vez que
fórmulas fechadas e equações analíticas raramente conseguem descrever, de forma
adequada, sistemas reais complexos [Widman,1990]. Uma grande vantagem da
Simulação é permitir estudos de sistemas reais sem modificá-los, com velocidade e
baixo custo. Alternativas de mudanças para o sistema podem ser tentadas e estudadas
de forma sistemática sem interferir no sistema real [Baker,1982].
A rápida evolução do software e do hardware nos últimos tempos tem facilitado
muito o desenvolvimento de simuladores. Esses simuladores podem ser de grande
valia quando decisões precisam ser tomadas num sistema que não é completamente
conhecido devido às diversas interações existentes no mesmo.
1.1 Definições para Simulação de Sistemas
Existe um grande número de definições para simulação. A seguir são apresentadas
algumas delas, provenientes de livros clássicos sobre o assunto, e uma definição
particular nossa. São feitas, também, algumas colocações relevantes na busca de
elucidar o que vem a ser simulação de sistemas.
R.Shannon : "Simulação é o processo de desenvolvimento de um modelo de um
sistema real, e a condução de experimentos nesse modelo, com o propósito de
entender o comportamento do sistema e/ou avaliar várias estratégias (com os
limites impostos por um critério ou conjunto de critérios) para a operação do
sistema". [Shannon,1975]
T.Naylor : "Simulação é uma técnica numérica para realizar experiências em
um computador digital, envolvendo certos tipos de modelos lógicos que
descrevem o comportamento de um sistema econômico ou de negócios (ou um
aspecto parcial de um deles) sobre extensos intervalos de tempo". [Naylor,1971]
G.Gordon : "Simulação de sistemas é a técnica de solucionar problemas
observando o desempenho no tempo de um modelo dinâmico do sistema".
[Gordon,1978]
A definição de T.Naylor especifica experimentações em computadores, enquanto
que, tanto a definição dada por R.Shannon quanto a fornecida por G.Gordon são
amplas o suficiente para englobarem os modelos físicos dinâmicos. Nesses modelos
os resultados são derivados de medidas físicas, em vez de computações numéricas.
Porém, segundo G.Gordon [1978], normalmente as pessoas referem-se à simulação
em termos de modelos matemáticos e computações numéricas.
Na nossa opinião simulação de sistemas "é o processo de construção de um
modelo representativo de um sistema real, e a experimentação no mesmo. Os
resultados das experimentações, após análises, apresentam uma visão futura do
sistema. As informações geradas auxiliam nas tomadas de decisão, necessárias
no momento presente, e contribuem para uma melhor compreensão do sistema
estudado".
Além de auxiliar na tomada de decisão, é importante enfatizar a contribuição da
simulação para a compreensão do sistema estudado pois, como afirma D.Knuth
[1969], "...freqüentemente nos enganamos, pensando saber mais do que realmente
sabemos sobre uma coisa, até que tentamos simulá-la num computador". Através da
simulação o usuário pode comparar seus resultados com os do sistema e validar seus
próprios processos de raciocínio.
A simulação de sistemas é, portanto, uma metodologia experimental que busca
descrever o comportamento de um sistema. Esta metodologia constrói formas de
quantificar o comportamento observado, prevendo o comportamento futuro. A
proposta da simulação é produzir dados (e ela é uma grande geradora de números)
que, quando analisados, identificarão importantes aspectos do sistema estudado,
auxiliando na explicação, compreensão e melhoria do mesmo.
Segundo G.Doukidis [1987] a função primária de um modelo de simulação é
examinar como o sistema se comporta durante um período de tempo. Para atingir este
objetivo, o modelo deve providenciar facilidades, para representar o estado atual do
sistema, e várias pré-condições que, se satisfeitas, irão resultar num estado futuro.
Outra colocação bastante construtiva para se compreender melhor o que é simulação
de sistemas é dada por M.Shubik [1960] que diz : "Simulação de um sistema ou de
um organismo é a operação de um modelo (ou simulador) que representa esse
sistema ou organismo. O modelo é passível de manipulações que seriam difíceis de
levar a cabo na entidade que ele representa, quer pelo custo, quer pela
impossibilidade de fazê-las. As propriedades concernentes ao comportamento de um
sistema podem ser inferidas estudando-se a operação do modelo".
1.2 O Processo de Simulação
Entende-se por processo de simulação o desenvolvimento de um modelo de
simulação, a experimentação do mesmo e a implementação dos resultados.
R.Shannon [1975] coloca que o desenvolvimento de um processo de simulação é
mais uma extensão das artes do que das ciências. Esta característica talvez explique a
dificuldade de se apresentar um mecanismo sistemático para que um usuário
interessado possa desenvolver simulações. Apesar das dificuldades, pode-se
estabelecer os elementos que participam de um modelo de simulação e alguns passos
que, se seguidos, podem ajudar um “modelista”, mesmo novato, a ter um bom
desempenho no desenvolvimento de simulações.
Todo modelo de Simulação possui, de forma combinada ou isolada, os seguintes
elementos [Shannon,1975] :
•
Componentes : são as partes (ou subsistemas) integrantes do sistema.
Entende-se por sistema, um conjunto de objetos, que interagem entre si, para
atingir um objetivo comum.
•
Parâmetros e Variáveis : são elementos do sistema que recebem valores. Os
parâmetros podem receber valores arbitrários, enquanto que as variáveis
recebem valores associados à função a qual elas estão atreladas. Existem dois
tipos de variáveis : Endógenas (Dependentes) e Exógenas (Independentes).
Variáveis endógenas são aquelas produzidas dentro do sistema ou resultantes
de causas internas. São também chamadas variáveis de estado (pois mostram
o estado do sistema) ou variáveis de saída (pois são responsáveis por gerar e
apresentar os resultados oriundos do sistema). Variáveis exógenas, também
chamadas variáveis de entrada, são originárias de (ou produzidas por) causas
externas.
•
Relações Funcionais : são normalmente apresentadas na forma de
equações matemáticas , que relacionam as variáveis endógenas com as
exógenas. Essas relações podem ser de ordem determinística (onde para uma
dada entrada existe uma única saída) ou estocástica (onde para uma dada
entrada existe(m) incerteza(s) associada(s) à saída).
•
Restrições : são limitações, impostas pelo “modelista” ou pela natureza do
problema, que restringem os valores das variáveis.
•
Objetivos : é o estabelecimento das metas do sistema e como elas podem
ser avaliadas. A manipulação do modelo é orientada de forma a satisfazer
esses objetivos.
1.2.1 Terminologia da Simulação
A terminologia utilizada na simulação não é única, mas há uma certa tendência geral
em aceitar a que é apresentada a seguir.
a) Modelo : é a representação de um sistema. Existem várias formas de se
classificar modelos. M.A.B.Costa [2001] apresenta uma explanação sintética
sobre modelos, reproduzida a seguir. Os modelos são tipificados como
icônicos (representação fiel do sistema, geralmente em escala diferente da
real), analógicos (as propriedades do sistema são representadas por outras
equivalentes) e simbólicos (as propriedades do sistema são representadas por
símbolos). Outro tipo de classificação separa os modelos em estáticos e
dinâmicos. Os modelos estáticos não consideram explicitamente a variável
tempo, possuem relações determinísticas e são, normalmente, tratados por
técnicas analíticas. Os modelos dinâmicos tratam com interações variáveis no
tempo (o estudo do sistema em um certo instante interfere no estado do
sistema no instante seguinte). Também existe uma caracterização importante
para os modelos, que diz respeito às situações discreta e contínua. Um
modelo discreto sofre alterações repentinas no tempo. As mudanças no estado
do sistema são expressas em termos do estado do sistema no início do
período. As mudanças durante um intervalo de tempo são calculadas e é
deduzido um novo estado do sistema para o final deste período e início do
seguinte. Um modelo contínuo sofre constantes e suaves alterações no tempo.
Uma situação bastante comum é tratar um sistema contínuo como sendo uma
seqüência de pequenas alterações discretas no tempo. Por fim, também são
diferenciados os modelos determinísticos dos estocásticos. Os modelos
determinísticos não tratam variáveis randômicas e as características
operacionais envolvem relações exatas. Quando pelo menos uma variável do
sistema se comporta de forma probabilística, diz-se tratar de um modelo
estocástico.
b) Entidade : também chamada de transação, é um elemento essencial para o
modelo. Cada tipo de entidade (pessoa ou objeto) possui um ciclo de vida,
onde estados ativos e passivos se alternam. Uma entidade pode ser
classificada como temporária ou permanente. As entidades temporárias
entram no sistema, percorrem o seu ciclo de vida e abandonam o sistema. As
entidades permanentes executam a sua função sem abandonar o sistema. A
chegada de entidades ao sistema é gerada por um procedimento externo, ou
de acordo com a necessidade imposta pelo estado do sistema. Na visão da
simulação discreta convencional, as entidades temporárias são criadas
primeiro. Elas engajam atividades e requisitam recursos. Uma vez terminada
a atividade, a entidade é removida. Trata-se de uma transação passiva, onde
nenhum mecanismo considerado “inteligente” é assumido ou modelado.
c) Atributo : são as propriedades características de cada entidade.
d) Atividade: é uma seqüência de procedimentos que causa mudança no
sistema. A atividade corresponde a um estado ativo, comum a uma ou mais
entidades (ou classe de entidades). A duração de uma atividade pode ser
determinística ou estocástica. Assume-se que uma atividade é indivisível.
Uma vez iniciada, ela não é mais interrompida. Segundo R.Reddy [1986] , as
atividades podem ser físicas ou cognitivas. As atividades físicas são as formas
convencionais de atividades, em torno das quais a simulação tem sido
desenvolvida. As atividades cognitivas são formas de tomada de decisão
racional e inteligente. Da mesma forma que as atividades físicas, as
atividades cognitivas possuem tempo finito de duração, que pode ser
randômico ou dependente das informações e/ou decisões do sistema.
e) Evento : as atividades são iniciadas e terminadas por eventos. Eventos são
instantes no tempo, enquanto atividades possuem durações no tempo. Evento
é o ponto no tempo no qual acontece alguma mudança no sistema modelado.
O processamento de um evento é realizado por uma rotina. Normalmente a
ocorrência de um evento dispara a ocorrência de outro(s) evento(s). Da
mesma forma que as atividades, os eventos podem ser físicos ou cognitivos.
As rotinas associadas aos eventos físicos são análogas às rotinas dos eventos
tradicionais da simulação discreta. Os eventos cognitivos envolvem
processamento de conhecimento, análogo ao procedimento cognitivo
desempenhado pelo tomador de decisão. Rotinas de eventos cognitivos irão
conter conhecimentos, representados por regras de produção e heurísticas,
que serão processados quando uma decisão precisar ser tomada
[Reddy,1986].
f) Acumuladores: são variáveis que permitem medir o desempenho do sistema.
Possuem esse nome porque vão acumulando valores no tempo, para depois
receberem tratamento de análise e gerar as estatísticas da simulação.
g) Relógio : variável que marca o tempo da Simulação.
h) Lista de Eventos Futuros: estrutura de dados que armazena os eventos
previstos para ocorrer no futuro. Esses eventos são armazenados por ordem
cronológica de ocorrência.
i) Cenário: uma experimentação estruturada, com um conjunto de
configurações de dados e de entidades do sistema. Pode-se construir vários
cenários para testar várias hipóteses (Torres, 2002).
j) Replicação: é a execução do modelo no computador.
k) Rodada: é o período compreendido entre o início e o fim da replicação.
l) Variáveis de Estado: é o conjunto de variáveis que identificam o estado do
sistema em um determinado instante de tempo.
m) Recurso: é uma entidade estática do modelo que serve entidades dinâmicas.
Esse atendimento pode ser feito simultaneamente a várias entidades. Uma
entidade pode solicitar parte da capacidade ou a capacidade total do recurso
(Torres, 2002).
n) Filas: constituem locais de espera onde as entidades dinâmicas esperam sua
vez de seguir através do sistema. As filas podem ser chamadas de áreas de
espera ou pulmões (buffers). Depois de dar entrada na fila a entidade é
retirada seguindo algum tipo de critério, por exemplo, FIFO (First In First
Out), LIFO (Last In Last Out), HVF (High Value First), LVF (Lower Value
First) ou um critério aleatório (Torres,2002).
1.2.2 Uma Metodologia para Desenvolver Simulações
Em linhas gerais a metodologia de trabalho adotada pela simulação de sistemas não
difere da metodologia apresentada pela pesquisa operacional. Mesmo porque a
simulação é uma técnica da pesquisa operacional que, junto com a programação
linear, ocupa um lugar de destaque em termos de utilização prática, se comparada às
demais técnicas. A figura 1 apresenta uma forma de visualizar as diversas etapas de
um processo de simulação e suas interações.
Figura 1: Etapas do Processo de Simulação (figura adaptada da referência Law &
Kelton, 1991)
A seguir são comentadas as etapas do processo tradicional da simulação de sistemas.
1.2.2.1 Definição do Problema e Plano de Estudo
Não é possível solucionar um problema sem conhecê-lo a fundo. Como primeiro
passo é preciso definir claramente os objetivos relacionados ao problema a ser
resolvido. Não é raro acontecer do pesquisador resolver "corretamente o problema
errado". R.Shannon [1975] faz uma afirmação que, sem dúvida, se encaixa
perfeitamente nos dias de hoje. Ele diz: "...milhões de dólares são gastos anualmente
trazendo respostas sofisticadas e elegantes para questões erradas".
A formulação de um problema é um processo contínuo através do estudo do mesmo.
Novas informações surgem e trazem novas restrições, alteram objetivos e fornecem
novas alternativas de investigação. Essas informações devem ser utilizadas para
atualizar continuamente a formulação e definição do problema.
A formulação do problema é uma etapa vital para todo o processo de simulação.
Deve ser feita com muito cuidado e competência. Nessa fase cada informação
relevante deve ser analisada a fim de definir o problema no nível de objetivos,
restrições e complexidade.
É importante lembrar que o mundo é muito complexo. As situações-problema
contêm, normalmente, um grande número de variáveis, parâmetros, relacionamentos,
restrições e metas. Entretanto, se somente alguns aspectos são de interesse do estudo,
muitas características do sistema real podem ser ignoradas. Trata-se, portanto, de
abstrair da situação real os aspectos relevantes, formando uma versão idealizada do
evento real.
Deve-se pensar o projeto de simulação como o desenvolvimento de um grande
modelo simples. Conforme as metas estabelecidas vão sendo atingidas, novos
problemas vão sendo identificados, obtendo-se um maior realismo. Isso levará à
revisões do modelo e, conseqüentemente, obtenção de melhores soluções. Trata-se
portanto de um enriquecimento contínuo do modelo.
O problema formulado dependerá da técnica e experiência do “modelista” em obter
informações e do seu relacionamento junto ao usuário. Este relacionamento ditará a
velocidade com que o modelo atingirá o ponto desejado de realismo.
O “modelista” deve conhecer formas de extrair, do usuário, informações suficientes e
consistentes a respeito do problema tratado. Existem metodologias específicas para
auxiliar nesta etapa, que podem ser encontradas em publicações ligadas às áreas de
análise de sistemas , de gerenciamento de projetos, e de aquisição de conhecimento
(Inteligência Artificial).
Em termos práticos, W.D.Kelton e outros (1998) colocam algumas questões que
deveriam ser feitas e respondidas para facilitar a identificação dos objetivos da
simulação, descrever o sistema de estudo, estabelecer o grau e necessidade de
animação, definir as entradas e saídas do modelo e estabelecer os elementos de
gestão do projeto de simulação. As questões são as seguintes:
•
O que deve conter o modelo de simulação?
•
Qual o nível de detalhes necessário?
•
Quais os recursos primários do sistema?
•
Quais as atividades e processos associados ao sistema?
•
Existem diagramas de fluxo e de processo disponíveis?
•
Eles estão atualizados?
•
Esses diagramas são seguidos ou são somente prescrições?
•
Sob quais condições eles não são seguidos?
•
Existem restrições físicas, tecnológicas ou legais na operação do sistema?
•
Essas restrições podem ser alteradas?
•
Os procedimentos do sistema estão bem definidos?
•
Como são tomadas as decisões?
•
Existem dados disponíveis?
•
Quem vai cuidar da coleta de dados?
•
Quem vai cuidar do projeto de levantamento de dados, caso não existam
dados disponíveis?
•
Qual tipo de animação é necessário?
•
Quem vai verificar e validar o modelo, e como o fará?
•
Quais as saídas necessárias?
•
Quão geral ou específico deve ser o modelo?
•
Quem vai fazer as análises de resultados?
•
Quantos e quais cenários devem ser considerados?
•
Quais os pontos de controle do projeto (milestones)?
W.D.Kelton e outros (1998) comentam que esta lista não é exaustiva mas pode
oferecer uma idéia geral do nível de detalhes necessários.
1.2.2.2
Coleta de Dados e Representação do Problema
Após estabelecer a situação a ser tratada, deve-se passar para a fase de representação
da mesma. Trata-se, no caso da simulação, de transladar o sistema real para um
diagrama de fluxo lógico. O diagrama representará o problema através de
associações feitas entre as entidades e as atividades.
Um diagrama bastante conhecido é o Diagrama Ciclo Atividade (Ativity Cycle
Diagram - ACD). Esses diagramas são constituídos por Filas e Atividades, cujos
relacionamentos estabelecem o Ciclo de Vida de cada entidade participante do
sistema. Detalhes da estrutura ACD podem ser obtidos na obra de Clementson (1982)
e na de Pidd (1996).
A utilização de um ACD é indicada para sistemas que possuem forte estrutura de
filas. Todas as entidades envolvidas, a cada instante da simulação, estarão sempre em
uma das situações : ativada (participando da execução de uma atividade) ou
esperando numa fila. O Estado de um sistema modelado é definido pela situação de
cada entidade componente. Um ciclo de vida é utilizado para descrever uma
seqüência de situações nas quais uma entidade deverá atuar.
Em linhas gerais a representação dos diagramas ACD é feita através de "círculos" e
"retângulos", simbolizando respectivamente filas e atividades. Os retângulos
representam atividades (estados ativos) que envolvem, normalmente, a coparticipação de diferentes entidades. As durações dessas atividades são definidas
baseadas em funções, probabilísticas ou não. Os círculos representam filas (estados
passivos), compostas de entidades que aguardam alguma mudança no sistema. Essas
mudanças acontecem com a ocorrência de um evento, que liberará outras entidades
que poderão ser utilizadas na realização de uma atividade comum.
No clássico exemplo do PUB apresentado nas figuras seguintes, pode-se ter uma
visão desses diagramas e uma idéia do processo de construção dos mesmos.
Exemplo aproveitado da referência Paul & Balmer (apud Costa, 2001).
O “PUB” consiste num bar inglês que envolve as seguintes entidades: clientes,
garçom, copo e porta. O leitor pode reparar que uma entidade pode ser tanto um ser
humano como um objeto. Pode ser também uma entidade concreta ou abstrata. Por
exemplo, uma informação que circula num sistema pode ser entendida como uma
entidade abstrata. Também pode ser temporária no sistema (o cliente por exemplo)
ou permanente (o copo). Cada entidade possui o que se chama de “ciclo de vida da
entidade”. Esse ciclo de vida mostra toda a sequência de atividades da qual a
entidade participará. Uma atividade envolve, na maioria das vezes, mais de uma
entidade. Por exemplo, como será visto a seguir, a atividade “Servir” envolverá um
cliente, um garçom e um copo. Na falta de qualquer uma dessas entidades a atividade
“Servir” não se realizará.
No estudo de qualquer sistema é muito importante definir o grau de abstração no qual
se deseja trabalhar. Esse grau de abstração definirá a complexidade do modelo.
Recomenda-se que se inicie o desenvolvimento do modelo da forma mais simples
possível, envolvendo somente as variáveis que realmente são necessárias para
representar o problema a ser estudado. Na medida que os resultados da simulação
não forem respondendo às questões colocadas, diminui-se o grau de abstração do
modelo, acrescentando-se novas variáveis ao mesmo. Nesse exemplo a complexidade
tratada será pequena mas suficiente para atender à situação que se deseja analisar,
que é o tamanho da fila de espera dos clientes aguardando atendimento. É comum
num problema de fila o interesse pelas medidas de tempo de espera e quantidade
média de clientes na fila.
No “PUB” o cliente chega, a partir de uma fila de clientes que estão fora do bar
(“Outside”), entra no sistema e nesse momento são gerados dois valores: um que
especifica o quanto ele vai beber (quantidade de “drinks”) e outro que estabelece o
intervalo entre a sua chegada e a do próximo cliente. Participam da atividade
“Chegada” duas entidades, o cliente e a porta. O cliente entra no bar e fica numa fila
de espera, aguardando ser servido. Após ser servido, ele está pronto para beber.
Encerrada a atividade “Beber”, e de acordo com a quantidade de “drinks” gerada, ele
volta para a fila de espera ou sai do sistema, indo para a fila “Outside”. A fila
“Outside” funciona como fonte e sumidouro de entidades. A entidade garçom pode
participar da atividade “Servir” ou da atividade “Lavar”, caso contrário ele entra na
fila de garçons ociosos. O copo participa da atividade “Servir”, “Beber” e “Lavar”.
Quando está parado ele está em uma das filas de copos “Sujos” ou “Limpos”. Para
todas as atividades são gerados tempos de processamento, que podem seguir
qualquer tipo de distribuição, por exemplo, uma Normal, Triangular, Erlang,
Weibull, Uniforme, etc.
Uma restrição importante a ser respeitada na construção de um ACD diz que as
atividades e as filas devem aparecer intercaladas no diagrama. Não podem ocorrer
atividades em seqüência. Entre elas deve haver uma fila. E vice-versa. No exemplo,
para contornar essa questão, serão criadas duas filas “fantasmas” chamadas “OK” e “
OK’ “. Nas filas “fantasmas” o tempo de espera é nulo. Dado esse contexto, criam-se
os ciclos de vida individuais de cada entidade.
*Obs.: O diagrama ACD é composto de apenas dois tipos de símbolos:
ATIVIDADE
FILA
Ciclo de Vida do Cliente
Ciclo de Vida do Copo
SERVIR
CHEGADA
BEBER
OK’
Espera
Outside
OK
Limpos
SERVIR
Sujos
LAVAR
BEBER
Ciclo de Vida do Garçom
Ciclo de Vida da Porta
SERVIR
Fechada
Ocioso
CHEGADA
LAVAR
Após desenhar os diagramas individuais, para ter uma visão do sistema todo basta
agrupar os ciclos de vidas através das atividades comuns. No exemplo obtém-se o
seguinte diagrama:
PUB
Fechada
CHEGADA
Espera
Outside
OK
SERVIR
BEBER
OK’
Ocioso
Limpos
LAVAR
Sujos
Um diagrama apresentado na forma de um ACD é o primeiro passo para se utilizar
uma ferramenta computacional de geração de códigos automática. No caso o
“software” eLSE (‘extended Lancastar Simulation Environment”) gera todos os
códigos na linguagem PASCAL, criando automaticamente o programa que simulará
o PUB. O passo seguinte é levantar os dados que serão responsáveis pelo
estabelecimento das distribuições que representam a chegada de clientes, tempos das
atividades e quantidade de “drinks” de cada cliente. É preciso estabelecer também o
cenário que se deseja simular, especificando os parâmetros de entrada, como a
quantidade de garçons e quantidade de copos. Feito isso, roda-se o programa, obtémse os resultados e através de uma análise dos mesmos, levanta-se o tempo médio na
fila de espera e a quantidade média de clientes nessa fila. Caso os resultados não
contemplem a política desejada de tempo máximo de espera na fila, cria-se um novo
cenário modificando, por exemplo, a quantidade de garçons ou a de copos. Roda-se
novamente, analisa-se os resultados e faz-se a opção por um novo cenário ou não.
Essa é a síntese da simulação de sistemas. Criar um modelo representativo de um
sistema real e fazer experimentações nesse modelo, obtendo informações que
orientem nas tomadas de decisão para futuras alterações nesse sistema real. É
importante que o leitor sinta a grande vantagem que se tem quando se faz
experimentações num modelo computacional. No computador é possível analisar
muitas situações (cenários) diferentes, num tempo extremamente pequeno.
1.2.2.3 Escolha da Ferramenta Computacional
Existem basicamente quatro tipos de ferramentas computacionais que podem ser
utilizadas no desenvolvimento de simuladores :
•
Linguagens de Aplicação Geral;
•
Linguagens Específicas de Simulação;
•
Geradores Automáticos de Códigos de Simulação; e
•
Ambientes de Simulação.
Existe uma contraposição entre flexibilidade e facilidade de desenvolvimento, de
acordo com a ferramenta escolhida. Por exemplo, uma linguagem de aplicação geral
permite alta flexibilidade no desenvolvimento de um programa de simulação, porém
exige grande conhecimento da linguagem e demanda um grande esforço de
programação. Por outro lado um ambiente de simulação é muito amigável e permite
fácil utilização por parte do usuário, mas não oferece muita flexibilidade no
desenvolvimento.
As linguagens de aplicação geral são mais poderosas ou menos poderosas de acordo
com suas características individuais. Linguagens fortes como PASCAL e C são
muito utilizadas no desenvolvimento de simulações.
Linguagens específicas de simulação (ou simplesmente linguagens de simulação) já
tiveram seus bons tempos, embora algumas delas (por exemplo, GPSS
(Gordon,1978, Bulgren,1982, Banks et al,1989, Schriber, 1991)) ainda sejam muito
utilizadas graças às facilidades que proporcionam no desenvolvimento de modelos de
Simulação. Algumas linguagens de simulação bastante conhecidas são : GPSS,
SIMAN, SIMSCRIPT, DINAMO, GASP, SIMPAC, CLS e SIMULA. Em relação à
linguagem SIMULA é interessante comentar que, apesar de ser uma das primeiras
linguagens específicas de simulação, hoje ela é reconhecida como a primeira
linguagem orientada a objeto que surgiu.
As principais características das linguagens específicas de simulação são
[Ogata,1992] :
•
Produz uma estrutura genérica para criar modelos de simulação;
•
Fornece uma maneira rápida de se converter um modelo de simulação em
um programa computacional;
•
Fornece facilidades para alterações no programa computacional;
•
Fornece saídas flexíveis, úteis para análises.
Além das vantagens associadas à redução do tempo e à facilidade de programação, as
linguagens específicas de simulação também fornecem bons mecanismos para
localização de erros.
Os geradores automáticos de códigos de simulação surgiram para facilitar a tarefa do
“modelista” no processo de programação computacional. A partir de uma
representação formal do problema estudado, esse tipo de ferramenta produz um
programa fonte, que é uma versão executável do modelo especificado. Alguns desses
geradores chegam a desenvolver a quase totalidade dos códigos computacionais
exigidos. São exemplos desses geradores: PASSIM [Shearn,1990], LANGEN
[Crookes,1986], GERSIMUL [Saliby,1991], AUTOSIM [Paul,1987], CAPS
[Clementson,1982]. Segundo R.Paul [1987] o CAPS foi o primeiro e é o mais famoso
gerador de códigos de simulação.
Os ambientes de simulação são sistemas que tem por objetivo auxiliar o usuário no
desenvolvimento de modelos de simulação, atuando em várias etapas do processo, e
não somente na geração de códigos. Uma outra etapa na qual um ambiente de
simulação normalmente atua é na análise dos resultados da simulação. São exemplos
desses ambientes: KBMC (Knowledge-Based Model Construction) [Murray,1988],
ROSS [McArthur et al,1986], KBS (Knowledge-Based Simulation) [Reddy et
al,1986], SIMKIT [Harmon & King,1985].
1.2.2.4 Desenvolvimento do Modelo Computacional
O desenvolvimento do modelo vai depender da ferramenta computacional escolhida.
O resultado poderá ser um simulador tradicional ou um complexo sistema de
simulação (por exemplo um sistema inteligente ou baseado em conhecimento).
Nessa fase são criados os códigos de simulação, por geração automática ou não. A
dificuldade, e conseqüente velocidade no desenvolvimento do simulador, estará
associada tanto à ferramenta computacional utilizada, como à complexidade do
modelo e experiência do “modelista”.
1.2.2.5 Verificação e Validação do Modelo
Duas fases muito delicadas no processo de desenvolvimento de modelos de
simulação correspondem à verificação e à validação desses modelos.
Verificação do modelo é a etapa onde o “modelista” checa se o modelo desenvolvido
corresponde ao idealizado. Neste ponto é verificado se o modelo foi construído
corretamente. Nesta fase busca-se fazer testes exaustivos no simulador. O
“modelista” precisa se convencer de que o simulador está correto e rodando bem.
Na verificação de um modelo deve-se variar os valores dos parâmetros de entrada
(inclusive utilizando as fronteiras do intervalo de valores) e analisar se os resultados
são coerentes. Nesse momento é possível sentir a força da simulação, que agiliza a
etapa de testes, tornando-os viáveis em termos de tempo e dinheiro.
A validação é a etapa onde será checado se o modelo desenvolvido representa bem o
sistema real. É a busca da resposta para a pergunta: foi desenvolvido o modelo
correto?. A idéia é passar confiança ao usuário, mostrando que qualquer experimento
com o modelo irá gerar resultados que coadunam com a realidade do sistema
estudado.
A validação é normalmente conseguida executando o modelo e comparando seus
resultados com os oriundos do sistema real. Se os resultados da simulação se
aproximarem dos valores reais, dentro de um nível de confiança desejado, o
simulador será validado.
Segundo Annino [1981] a técnica de validação mais efetiva é apresentar o programa
para alguém familiar ao sistema em estudo. Num esquema interativo entre o
especialista no funcionamento do sistema real e o “modelista”, será mais fácil
corrigir desvios do modelo em relação ao sistema real.
A validação do modelo é extremamente importante pois os simuladores normalmente
tendem a parecerem reais e, tanto o “modelista” como o usuário, passam a acreditar
nele.
1.2.2.6 Planejamento dos Experimentos
O planejamento de experimentos tem dois objetivos: (1) rodar muitas vezes o
modelo, a baixo custo e de forma rápida, e (2) providenciar uma estrutura para o
processo de aprendizado dos investigadores, para que os mesmos possam aprender
mais a respeito do sistema.
O planejamento de experimentos pode ser dividido em duas fases : estratégica e
tática. No nível estratégico é importante projetar os experimentos visando alcançar
as metas estabelecidas. Portanto deve-se combinar os valores dos parâmetros que
“otimizarão” as variáveis de respostas, e explicar as relações entre as variáveis de
respostas e os fatores controláveis do sistema.
É a fase que consiste em executar o modelo computacional sob os diversos cenários
de simulação estabelecidos. Os cenários são tratados individualmente, com a
preocupação de se estabelecer exatamente os pontos de início e fim da simulação,
para efeito de análises estatísticas. Esses pontos correspondem à fase transiente
(warm-up) e ao tempo total de simulação (length of simulation) da rodada (running).
É bom lembrar que a simulação, a partir de situações iniciais diferentes, oferece
linhas de ação alternativas para o tomador de decisão. E como a fase de execução do
modelo é, via de regra, extremamente rápida, pode-se abusar do número de cenários
a serem rodados.
1.2.2.7 Execução do Modelo
A execução do modelo é a fase tática do planejamento de experimentos. Nenhum
projeto de simulação pode ser considerado completo se não for aceito, entendido e
utilizado. Estabelecido o projeto dos experimentos, a fase tática determinará como
cada um dos testes especificados nos experimentos serão executados. Para isso
devem ser definidas as condições iniciais, e como elas afetam o equilíbrio do
sistema. O pano de fundo dessa fase é a necessidade de diminuir a variância das
respostas e, ao mesmo tempo, buscar minimizar o tamanho das amostras necessárias.
Os problemas associados ao início da Simulação podem ser amenizados excluindo-se
dados gerados durante um certo período inicial, para efeito de contabilidade, ou
escolhendo-se condições iniciais que diminuam o tempo necessário para alcançar o
equilíbrio.
O resultado dessa fase é o estabelecimento de diversos cenários que serão rodados.
1.2.2.8 Análise das Alternativas de Ação
Esta fase consiste em fazer inferências a partir dos dados gerados na execução do
modelo. É uma fase crítica, demorada, difícil e muito importante. Uma saída de
simulação é uma avalanche de números, que precisam ser tratados e analisados. A
análise dos resultados da simulação é comumente realizada por especialistas caros e
pouco disponíveis. Para suavizar os problemas enfrentados nessa fase surgiram
ferramentas computacionais, já disponíveis em boa parte das linguagens, geradores e
ambientes de simulação visuais (gráficos e imagens).
Tão somente a disponibilidade de ferramentas visuais não soluciona o problema de
análise de resultados. É necessário possuir profissionais com condições de realizar
análises concretas ao final do processo de Simulação. Nos últimos anos tem ocorrido
a utilização de sistemas especialistas para desempenhar o trabalho dos analistas de
resultados de Simulação. Esses sistemas especialistas, contendo o conhecimento de
expertos na área em estudo, analisam os resultados fornecidos pelo simulador,
orientando o tomador de decisão.
1.2.2.9 Documentação e Implementação
Uma das grandes falhas nos projetos, em geral, é a apresentação ruim dos resultados
para o usuário. Isso é uma falha de implementação. O pouco tempo gasto na
implementação normalmente não é suficiente para as tarefas existentes nessa fase.
Fazem parte dessas tarefas: lapidação e ajuste do modelo, treinamento do usuário e a
garantia da validade dos resultados. Essa última tarefa, que só é possível com a
implementação, tende a ser, segundo R.Shannon [1975] o problema mais difícil a ser
enfrentado pelo analista.
A documentação está intimamente ligada à implementação. Além de facilitar a
implementação e a possível necessidade de alterações no modelo, auxilia o
“modelista” em futuros projetos, além de forçá-lo a questionar seus próprios
procedimentos.
1.3 “Simulando o Simulador”
Exercício para entender os procedimentos de Controle da Simulação
O tipo de simulação aqui tratado é “Simulação Discreta de Eventos Futuros”.
Vamos entender o que significa este tipo de simulação e qual a sua aplicação.
Evento é qualquer fato que altere o sistema em estudo. A chegada de um cliente a
um posto de atendimento é um evento. O término de atendimento de um cliente é,
também, um evento.
A simulação é discreta pois o relógio que registra o tempo simulado trabalha aos
saltos, avançando o relógio sempre para o instante no qual irá acontecer o próximo
evento.
Para entender melhor os procedimentos que controlam a simulação, considere o
seguinte exemplo:
O sistema é composto de uma fila única (como tudo em simulação é analogia, pode
ser uma fila de caixa numa agência bancária, pode ser uma fila no balcão de
atendimento de uma agência de correio, pode ser uma fila de navios que aguardam
para serem descarregados num porto, pode ser uma fila de carros num pedágio, ...).
O objetivo do estudo desse sistema é verificar o tempo gasto pelo cliente na fila.
Pretende-se estabelecer como “minimizar” o tempo de espera na fila, sem que a
ociosidade dos atendentes supere, por exemplo, 30% do tempo trabalhado.
Diante da idéia de “faça o mais simples”, considere dois eventos somente: Chegada
de Cliente e Término de Atendimento. Caso o problema seja solucionado nesse
grau de complexidade, ótimo, caso contrário considera-se outros tipos de eventos,
novos componentes do sistema e assim por diante.
Controle da Simulação
T= 0;
Gerar CH ;
Inserir na Lista (Chegada, CH);
ENQUANTO
T <= Período de Simulação Desejado
Retire da Lista (Info, tempo);
T = tempo;
SE Info = Chegada ENTÃO Chegada de Cliente
CASO CONTRÁRIO Término de Atendimento
Chegada de Cliente
Gerar CH;
Inserir na Lista (Chegada,
SE C(1) <= T ENTÃO
Q= Q + T Gerar AT;
Inserir na
C(1) = T +
T+CH);
C(1);
Lista (Término, T + AT);
AT
CASO CONTRÁRIO
Inserir na Fila (Tempo de Entrada na Fila);
Quantidade_Fila = Quantidade_Fila + 1
Término de Atendimento
SE
Quantidade_Fila >= 1 ENTÃO
Retire da Fila (Tempo de Entrada na Fila);
Wait = Wait + T – Tempo de Entrada na Filq;
Atendimentos = Atendimentos + 1;
Gerar AT;
Inserir na Lista (Término, T+AT)
C(1) = T+AT
Quantidade_Fila=Quantidade_Fila - 1
Considere os seguintes conjuntos de números aleatórios para serem utilizados na
simulação. Façam uma abstração e imaginem que toda vez que a simulação precisar
de um número aleatório, o computador irá gerar um valor entre 0 e 1, e irá “corrigílo” de acordo com a distribuição que melhor represente (maior aderência) os dados
colhidos da operação simulada.
CH = { 2 , 4 , 3 , 4 , 5 , 3 , 1, 6 }
AT = { 5 , 4 , 6 , 3 , 4 , 2 , 5 , 4 }
Vamos simular (na mão, imitando o computador) o modelo da página anterior e
verificar como a simulação trata os eventos futuros da Lista, como são gerados os
números da simulação, como são atualizados os acumuladores (que irão fornecer as
respostas estatísticas), enfim, como funciona uma rodada de simulação no
computador.
T
CH
AT
C(1)
FILA (T)
Q_FILA
WAIT
Q
N
LISTA (Evento,
Instante de Ocorr)
1.4 Conclusão do Capítulo
A Simulação de Sistemas faz análises de problemas. Ela serve como ferramenta para
a análise do comportamento do sistema sob condições especificadas pelo usuário.
A simulação pode evitar problemas que ocorrem quando se faz experimentações com
o sistema real. Por exemplo, na simulação :
•
Não é necessário interromper as operações do sistema real;
•
É fácil manter as mesmas condições de operação para cada réplica do
experimento;
•
É possível explorar muitos tipos de alternativas na experimentação;
•
O consumo de tempo e dinheiro é extremamente menor para se obter o
mesmo tamanho de amostra.
R.Shannon [1975] coloca que o analista deve considerar o uso de simulação sempre
que :
•
Uma formulação matemática completa do problema não exista, ou métodos
analíticos
para
resolver o modelo matemático não foram ainda
desenvolvidos;
•
Métodos analíticos estejam disponíveis, mas os procedimentos necessários
para a utilização dos mesmos são tão complexos e árduos que a simulação
acaba fornecendo um método mais simples de solução;
•
Soluções analíticas existam e sejam viáveis em termos de complexidade, mas
estão além da habilidade matemática do pessoal disponível. O custo de
desenvolvimento, teste, e execução da simulação deve ser avaliado,
comparativamente ao custo de obtenção de ajuda externa;
•
A Simulação pode ser a única opção possível dadas as dificuldades de
observação de fenômenos no ambiente real.
Uma vantagem adicional da Simulação é a sua contribuição para se compreender
melhor e aprender a respeito do sistema. O desenvolvimento e utilização de um
modelo de Simulação permitem ao projetista enxergar e manipular o sistema. Isso
leva a um crescente entendimento do mesmo, permitindo que modelos simples de
simulação sofram alterações até se tornarem complexos o suficiente para representar
bem a situação estudada.
2 INPUT/OUTPUT :ENTRADA e SAÍDA DE
SIMULAÇÃO
Breve tutorial aproveitado (e adaptado) das referências:
(1)Kelton,W.D., Sadowski,R.P., Sadowski,D.A., Simulation with Arena, McGrawHill
(2)Freitas,P., Paragon, Análise de Dados e Tomada de Decisão com Simulação
(3)Harrel,C., Tumay,K., Simulation made easy, EMP Books)
2.1 Conceitos Básicos de Probabilidade
Experimento é qualquer atividade que pode ser realizada, cujo resultado exato é
incerto.
•
Ex.: No arremesso de um dado, sairá o número 4? Ocorrerá um número
ímpar? O número estará no intervalo entre 2 e 5?
•
Ex.: Quanto tempo você levará para ir da sua casa até a universidade amanhã?
Você atrasará porque será atingido por um meteoro?
•
Ex.: Analisando a atividade de um Call Center, durante uma semana, quantas
chamadas ocorrerão? Quanto tempo os clientes ficarão esperando para serem
atendidos? Quantos clientes desistirão de esperar devido à demora?
Espaço Amostral de um experimento é a lista completa de todos os resultados
individuais que podem ocorrer quando for realizada a atividade. Para a atividade de
arremesso de um dado (ou de uma moeda) é fácil estabelecer o espaço amostral do
experimento, porém em alguns casos (como o tempo que você gastará para ir da sua
casa até a universidade amanhã) o número de possibilidades é infinito. Felizmente, é
possível entender um experimento e sua estrutura probabilística sem descrever,
explicitamente, todo o espaço amostral.
Evento é um subconjunto do espaço amostral.
Probabilidade de um evento é a possibilidade relativa de ocorrência do mesmo,
quando o experimento for realizado. Por convenção, probabilidades são valores que
se encontram no intervalo de 0 a 1. P(E) denota a probabilidade do evento E ocorrer.
Existe uma quantidade grande de diferentes tipos de eventos e probabilidades que
podem acontecer na simulação. Por exemplo, você pode estar interessado em saber
qual a probabilidade de:
•
uma peça passar pela inspeção;
•
uma peça que chega ter prioridade 1;
•
um tempo de atendimento estar entre 2 e 6 minutos;
•
nenhum cliente chegar durante um intervalo de x minutos;
•
o máximo comprimento de uma fila não exceder 10 elementos;
•
o tempo médio de sistema das peças não ultrapassar 4 horas;
•
muitas outras situações.
Eventos podem ser definidos de muitas maneiras diferentes e podem ser muito
complexos. Uma forma de quantificar e simplificar eventos é estabelecer variáveis
randômicas associadas a eles.
Uma variável randômica é um número cujo valor é determinado pelo resultado de um
experimento, que pode ser pensado como uma quantificação do experimento.
Tecnicamente uma variável randômica é uma função definida a partir do espaço
amostral dos números reais. Assim, ela é uma regra ou um mapeamento que atribui
um número para cada resultado possível de um experimento. É um valor que você
não sabe ao certo qual é, antes de realizar o experimento, mas, normalmente, você
conhece algo a respeito dele, como o conjunto de valores possíveis ou a
probabilidade dele estar em um certo intervalo de valores.
Existem dois tipos básicos de variáveis randômicas: discreta e contínua. Uma
variável discreta assume valores pontuais, dentro de um intervalo finito ou infinito de
valores. Por exemplo: o número de itens expedidos, dentre uma coleção de 50 itens,
só pode estar no intervalo entre 0 e 50; o número de vezes que uma peça passa pela
inspeção, até ser liberada, é um número inteiro sem limite superior. Uma variável
contínua pode assumir qualquer valor real, possivelmente limitada à direita e à
esquerda. Variáveis contínuas representam, geralmente, medidas físicas como tempo
e distância.
O comportamento probabilístico de uma variável randômica é descrita pela sua
distribuição de probabilidade. Existem algumas propriedades básicas dessas
variáveis, como valor esperado e variância.
2.2 Variáveis Randômicas
2.2.1 Variável Discreta
Para uma variável randômica discreta X existirá uma lista x1, x2,... (finita ou
infinita) de valores possíveis que ela pode assumir. Note que os valores x1, x2, ... são
fixos, não-randômicos, mas a variável X é randômica.
Função Massa de Probabilidade é a função que fornece a probabilidade de X
assumir cada um dos valores possíveis:
p(xi) = P(X=xi), para todo i.
A função massa de probabilidade é estimada a partir de dados, ou simplesmente
assumida. Supondo que xi represente todos os valores possíveis para o evento X,
então:
∑ p(xi) = 1
i
Função Distribuição Acumulada de uma variável randômica discreta X é a função
que fornece a probalidade de X ser menor ou igual ao seu argumento:
F(x) = ∑p(xi) , para todo i, tal que xi ≤ x
F(x) é uma função não-decrescente, variando de 0 a 1.
Portanto,
P(a ≤ X ≤ b) = ∑p(xi) ,
todo i, tal que a ≤ xi < b
Valor Esperado (também chamado de média µ) de X é definido como
E(X) =
∑ xi . p(xi), para todo i
Trata-se, portanto, de uma média ponderada.
A Variância (medida de variabilidade da variável randômica discreta X) é definida
como:
Var(X) = ∑(xi - µ)2. p(xi), para todo i
Desvio Padrão é a raiz quadrada (positiva) da variância.
2.2.2 Variável Contínua
Uma variável randômica contínua pode assumir qualquer valor real em um intervalo
(limitado ou não limitado). Mesmo em um intervalo pequeno, esta variável pode
assumir infinitos valores reais. Portanto não faz sentido falar sobre a probabilidade
de uma variável contínua ser igual a um número x. Tecnicamente, esta probabilidade
será zero.
A Função Densidade de Probabilidade de uma variável randômica contínua X é
definida como a função f(x), tal que:
•
f(x) ≥ 0, para todo valor real x.
•
A área total sob f(x) é 1, ou seja ∫-∞ f(x) dx = 1
•
P(a ≤ x ≤ b) = ∫a f(x) dx
+∞
b
A função de distribuição acumulada de uma variável randômica contínua X tem
interpretação análoga a da variável randômica discreta. No caso,
x
F(x) = ∫-∞ f(t) dt
Dependendo da forma da função densidade de probabilidade, a função de
distribuição acumulada F(x) pode ou não ser expressa como uma fórmula envolvendo
x. Por exemplo, as distribuições Weibull e Exponencial têm fórmulas simples para a
função densidade acumulada, enquanto que a Gamma e a Normal não possuem.
Nestes casos são utilizados métodos numéricos ou tabelas para expressá-las.
O valor esperado de uma variável randômica contínua é uma medida do “centro” da
distribuição e é a média das muitas (infinitas) observações em X. É difinida como:
+∞
E(X) = ∫-∞ f(x) dx
A Variância de X mede sua dispersão e é denotada por:
+∞
VAR(X) = ∫-∞ (x- E(X))2 . f(x) dx
O desvio padrão é a raiz quadrada da variância.
2.3 Amostragem e Coleta de Dados
POPULAÇÃO #
AMOSTRA (quantidade representativa da população)
Na amostra são feitas inferências estatísticas para estimar os parâmetros
populacionais. A partir destes parâmetros são feitos estudos sobre toda a população.
2.3.1 Tamanho mínimo da Amostra
Considere:
N : tamanho (número de elementos) da população
n : tamanho (número de elementos) da amostra
no : primeira aproximação para o tamanho da amostra
Eo : erro amostral tolerável
Um primeiro cálculo do tamanho da amostra pode ser feito, mesmo sem conhecer o
tamanho da população, através da seguinte expressão:
1
no =
Eo2
Conhecendo o tamanho N da população, podemos corrigir o cálculo anterior, por:
(N * no)
n=
(N + no)
Exemplo: Dada uma população de 200 peças, pretende-se estabelecer um tamanho
de amostra para avaliar diversas características dessa população. Qual deve ser o
tamanho mínimo de uma amostra aleatória simples, que garanta que os erros
amostrais não ultrapassem 4% (Eo = 0.04). (Aplique as fórmulas e você verá que a
resposta é: 152 peças)
2.3.2 Distribuição de Frequências
Tabelas que apresentam um conjunto de dados subdivididos em categorias ou
classes, mostrando o número de elementos (frequências) contidos em cada uma delas.
Exemplo.: Durante dois meses foram levantados os dados de produção de uma
seção. Os dados tabulados são:
65
55
76
74
36
62
74
34
49
22
70
84
82
51
79
88
40
56
50
75
28
60
56
43
56
45
67
57
35
36
46
62
43
39
52
78
57
63
37
73
32
40
65
80
68
59
64
72
48
57
Trabalhando com classes (20-29; 30-39; ...; 80-89, por exemplo), traça-se o
histograma, onde se tem um visual da curva representativa dos dados, apresentando a
frequência com que cada classe aparece no conjunto de dados (frequências relativas).
A partir desses dados são calculados os parâmetros associados aos dados, no caso a
média, a variância, o desvio padrão e o coeficiente de variação = DP/Média. Essa
última medida é a medida de dispersão utilizada no Arena.
2.3.3 Escolha de uma Distribuição Teórica de Probabilidade
Uma das mais importantes tarefas na análise de dados para a simulação consiste em
encontrar uma distribuição teórica de probabilidades, que seja compatível com a
freqüência de dados observada. A seleção da distribuição é feita utilizando critérios
visuais, experiência do estatístico e considerações teóricas.
Exemplo: EXPONENCIAL(Média) ou EXPO(Média)
Função Densidade de Probabilidade f(x) = 1/B * e –x/B
Onde :
* B é a média especificada como um valor real
* Intervalo de validade é [0, + ∞)
* Variância B2
Esta distribuição é frequentemente utilizada para modelar tempos entre eventos,
como chegadas randômicas de clientes em postos de atendimento (ou peças na linha
de produção) e processos de quebra de equipamentos.
2.3.4 Testes de Aderência
O objetivo dos testes de aderência á a verificação da qualidade na escolha da
distribuição que acreditamos ser a melhor representação dos dados da população.
Normalmente, são utilizados métodos gráficos e/ou teóricos. Graficamente, a
qualidade é medida visualmente, de acordo com a proximidade ou “aderência” entre
os dois desenhos. Teoricamente, procura-se provar a hipótese de que o conjunto de
dados amostrais não diferem significativamente, daqueles esperados de uma
distribuição teórica especificada.
Dois métodos teóricos bastante utilizados são: Chii-Quadrado e KolmogorovSmirnov (KS). Estes testes procuram medir e avaliar os desvios entre a distribuição
amostral e a teórica.
Exemplo: Chi-Quadrado
(fo – fe)2
Valor Crítico X2 = ∑
k
fe
onde:
k = número de classes ou intervalos
fo = freqüência observada nas classes
fe = freqüência esperada nas classes
Se X2 = 0, então as duas distribuições estão casando perfeitamente. Quanto maior o
valor de X2, maior a discrepância entre as duas distribuições.
Jogando-se um dado 120 vezes, obtém-se os valores vistos na tabela abaixo. Na
mesma tabela observa-se também os valores esperados para as seis faces.
FACE
Freq. Obs.
Freq. Esp.
1
25
20
2
17
20
3
15
20
4
23
20
5
24
20
6
16
20
Testando a hipótese do dado ser correto, sob um nível de significância de 5%,
utilizando Chi-Quadrado, temos:
(25-20)2
X2 =
(16-20)2
+ ...+
20
= 5,0
20
O número de graus de liberdade no caso na distribuição uniforme é = No. de Classes
–1 =5
Neste caso, da tabela de Chi-Quadrado, o valor = 11,1. Portanto 5,0 < 11,1, e não se
pode rejeitar a hipótese de que o dado é justo, ou seja, pode-se afirmar, com 95% de
certeza que, estatisticamente, os resultados da amostra estão coerentes com o que se
esperava.
Observação: O teste KS é utilizado com a mesma intenção que o Chi-Quadrado, ou
seja, testar se a distribuição amostral segue uma determinada distribuição teórica
contínua. Este teste baseia-se na comparação das probabilidades acumuladas das
duas distribuições (observada e a teórica). Para a consulta em uma tabela de valores
críticos, toma-se o maior valor/desvio entre as duas distribuições (valores calculados
dentro de cada classe).
2.4 Input Analyzer
Esta ferramenta, presente no ARENA, determina a distribuição de probabilidades que
melhor adere (representa) um certo conjunto de dados.
Esses dados devem ser listados em um arquivo TXT gerado em Word, Lotus, Excel,
etc...
Faz aderência de distribuições específicas (pertencentes ao software).
Permite a comparação de várias distribuições.
Mostra os efeitos da troca dos parâmetros das distribuições e permite a manipulação
dos dados de entrada.
2.4.1 Iniciando o Input Analyzer
Vamos utilizar os dados do exemplo de produção para rodar o Input Analyser no
ARENA.
No Menu Tools do ARENA , escolha Input Analyzer
Aberto o Input Analyser, no menu File, escolha New.
No mesmo menu File, escolha Data File e Using Existing ...
Na janela Abrir selecione o arquivo de dados desejado.
Surgirá na tela (próxima figura) um histograma dos dados estudados com as
seguintes informações:
•
number of data points: número de pontos da amostra
•
number of intervals: número de intervalos do histograma. Este número é
dadopela raiz quadrada do no. de pontos (reais), ou da diferença entre o maior
e o menor valor +1 (inteiros).
•
histogram range: intervalo onde estão todos os valores da amostra
•
sample mean: média dos pontos da amostra
•
sample Std Dev: desvio padrão dos pontos da amostra
•
min e max data value: menor e maior valor da amostra
Pode-se selecionar uma distribuição em particular ou usar o Fit All (melhor
aderência). Por exemplo, para os dados apresentados no histograma acima, o
comando Fit All irá gerar o resultado apresentado na figura seguinte:
Observação (1): A qualidade da curva escolhida é baseada primeiramente no critério
do quadrado dos erros, ou seja, são verificadas as distâncias de cada ponto dos dados
de entrada, em relação aos pontos ideais da distribuição desejada. A distribuição cujo
somatório dos quadrados das distâncias for menor, é considerada a melhor curva.
Observação (2): Os testes de aderência Chi-Quadrado e KS também são mostrados.
Valores de p (p value) menores que 0.1 são geralmente considerados valores de
aderência fracos. Mais precisamente, o p value é a probabilidade de obtenção de um
conjunto de dados mais inconsistente com a distribuição escolhida do que o conjunto
de dados que você realmente obteve.
Observação (3): Diferentes testes estatísticos podem rankear as distribuições de
forma diferente. Também mudanças na preparação dos dados podem influir no
ranking (por exemplo, a quantidade de classes).
Na opção Input data do menu Window do Input Analyzer você pode enxergar todos
os seus dados da amostra.
Na mesma janela Window, na opção Curve Fit Summary são apresentadas as
informações sobre a curva escolhida, relacionadas com os dados da amostra.
Na mesma janela Window, na opção Fit All Summary é apresentado o ranking das
curvas (figura abaixo), ordenado de acordo com o erro quadrático de cada curva
empírica e sua respectiva curva teórica.
2.5. Output Analyzer
A simulação, em si, além de não otimizar os resultados, nem sequer apresenta
soluções. Este trabalho fica sob responsabilidade do modelista e do usuário do
modelo. Para se obter conclusões corretas dos resultados da simulação é preciso que
os dados, gerados pelo modelo, sejam confiáveis e que sejam corretamente
analisados.
Harrell & Tumay comentam que existem vários tipos de relatórios de simulação. São
eles:
•
Relatórios de uma única replicação (Mostram o desempenho da rodada de
simulação utilizando média e variância.)
•
Históricos detalhados (Mostram conjuntos de dados e plotagens de
observações ocorridas no tempo, por exemplo: medidas do tempo de espera
das entidades em uma fila; utilização de um recurso no tempo. Esses outputs
são chamados de estatísticas dependente do tempo ou estatística temporal.)
•
Relatórios relâmpagos (Resumos estatísticos mostrando o estado do sistema
em algum instante de tempo)
•
Relatórios de múltiplas replicações (Apresenta resultados combinados de
múltiplas rodadas de simulação. Providencia tratamentos estatísticos para os
resultados, como estimativas de erros baseadas em intervalo de segurança,
estabelecimento do tempo de warm-up através de média móvel,...)
•
Comparação de múltiplos cenários (Compara as saídas de diferentes
conjuntos de variáveis representativas de cenários da simulação)
2.5.1 Tipos de Output
Existem dois tipos de dados de saída: dados observacionais e dados de tempo
ponderado. Os relatórios que apresentam dados de observações possuem as
seguintes características:
•
As observações são contadores de ocorrências
•
As observações possuem, todas, mesmo peso (mesma ponderação)
•
O resumo estatístico apresenta as observações durante um certo período de
tempo
Exemplo: Número médio de entidades processadas por hora no sistema.
Simplesmente são contadas todas as entidades que deixaram o sistema e divide-se
esse número pela quantidade de horas transcorridas.
Exemplo: Tempo médio que a entidade permaneceu no sistema. Quando uma
entidade adentra o sistema, a mesma é identificada com uma marca de tempo
(instante de chegada). Quando esta entidade deixa o sistema subtrai-se do tempo de
simulação atual o instante de chegada da mesma. Este resultado é adicionado a um
acumulador de tempo. Para se chegar ao tempo médio de sistema basta dividir o
valor desse acumulador pelo número de entidades que deixaram o sistema.
Os dados de tempo ponderado possuem as seguintes características:
•
Os valores persistem no tempo (consideram a dinâmica do tempo)
•
Durante a simulação são registrados e mantidos: o valor atual de cada
variável, o instante da última mudança neste valor e o produto valor-tempo
acumulado
•
O resumo estatístico apresenta o valor da variável do tempo ponderado
Exemplo: Um exemplo de estatística de tempo ponderado é o número médio de
entidades no sistema (em cada instante). Neste caso, toda vez que uma entidade entra
ou sai do sistema, o contador é multiplicado pelo tempo transcorrido desde a última
mudança. Este produto é adicionado a um acumulador de tempo-entidade. Ao final
da simulação a quantidade média de entidades no sistema pode ser calculada pela
divisão do acumulador de tempo-entidade pelo tempo de simulação.
2.5.2 Medidas Desejadas (Estatísticas)
As medidas de desempenho estão sempre associadas a um dos seguintes elementos
da simulação:
•
Entidade (Entity)
•
Localização (Location)
•
Estação (Station)
•
Fila (Queue)
•
Recurso (Resource)
•
Variável (Variable)
•
Atributo (Atribute)
Uma lista de estatísticas, normalmente desejadas, é a seguinte:
(1) Estatística Geral da Entidade
•
Número de entidades, por tipo, que entra em uma estação
•
Número total de entidades que sai do sistema
•
Número total de entidades que permanece no sistema
•
Número médio de entidades no sistema
•
Tempo médio gasto em fila, processando ou em trânsito
(2) Estatística Particular da Entidade
•
Tempo gasto em cada estação por cada entidade
•
Tempo de sistema para cada entidade
•
Tempo gasto na fila, no processamento,..., por cada entidade
(3) Estatística Geral de Fila
•
Número total de entidades que entrou na fila
•
Tempo médio de fila
•
Tempo máximo de fila
•
Tempo mínimo de fila
•
Quantidade média de entidades na fila
•
Porcentagem do tempo médio na fila, em relação ao tempo de simulação
(4) Estatística Particular da Fila
•
Conteúdo da fila no tempo
•
Histograma dos tempos de espera
(5) Estatística Geral da Estação
•
Número total de entidades que entrou em cada estação
•
Tempo médio gasto por entidade (tempo ocupado/número de entradas)
•
Utilização (tempo ocupado/tempo disponível)
•
Percentual de tempo que ficou em operação, disponível, bloqueada,
esperando, quebrada, em preparação, ...
•
Número de setups
•
Tempo médio de setups
(6) Estatística Particular da Estação
•
Conteúdo no tempo
•
Tempo que cada entidade gastou na estação
•
Gráfico de Gantt mostrando as entidades nas estações, no tempo, por tipo
(7) Estatística Geral do Recurso
•
Número de vezes que foi utilizado
•
Tempo médio de utilização
•
Porcentagem de utilização, ociosidade, quebra, disponibilidade
•
Porcentagem de tempo em trânsito
(8) Estatística Particular do Recurso
•
Quantidade utilizada no tempo
•
Utilização de cada unidade de recurso
(9) Estatística de Atributo e Variável
•
Valor médio
•
Valor mínimo e máximo
•
Valor final
•
Mudanças de valores no tempo
•
Histograma dos valores
É sempre possível customizar os próprios relatórios, utilizando as informações
geradas pela simulação.
2.6 Análises Estatísticas dos Resultados da Simulação
A simulação, como modelo estocástico, segue a regra RIRO (random input, random
output). Se o sistema possui um conjunto de valores aleatórios associados aos seus
processos de manufatura, transporte, manutenção, setups, etc, a simulação
apresentará um conjunto de resultados randômicos do que poderá acontecer no
futuro, caso o sistema opere sob tais condições. Diante disto, é fácil observar que
uma única rodada de simulação é inadequada para se obter qualquer estimativa
precisa do comportamento esperado do sistema.
Para realizar inferências corretas a partir dos resultados da simulação é essencial ter
um conhecimento básico da estatística descritiva. Na estatística descritiva, nós
trabalhamos com espaço amostral, amostra e quantidade de amostras. É importante
que a quantidade de amostras seja suficiente para garantir as inferências. Em outras
palavras, é importante estabelecer a quantidade certa de replicações do modelo de
simulação (número de rodadas). Por exemplo, se estivermos interessados em
determinar o tempo médio gasto pelas entidades na fila, é preciso fazer n replicações
da simulação, em condições idênticas de operação, alterando apenas a semente (seed)
do gerador de números randômicos. A partir daí é possível estimar a média, a
variância, o desvio padrão, etc. Fica claro, também, que o n ideal seria igual a
infinito.
2.6.1 Intervalo de Confiança
Tendo calculado a média e o desvio padrão, baseado em uma quantidade de amostras
de n rodadas, nós poderemos estar interessados em saber quão perto, da média
verdadeira, está a média das rodadas. O método utilizado para isso é a estimativa do
intervalo de confiança. Um intervalo de confiança é um range (intervalo) no qual
nós podemos ter um certo nível de confiança de que a média lá se encontra. Este
método é trabalhado mais a frente, neste texto.
2.6.2 Problemas Estatísticos com as Saídas da Simulação
Utilizar os métodos padrões para analisar a simulação significa seguir três
importantes premissas sobre as observações amostradas. São elas:
•
As observações são consideradas independentes, de tal forma que não existe
correlação entre observações consecutivas;
•
As observações consideram distribuições idênticas durante toda a duração do
processo (são invariantes no tempo);
•
As observações são normalmente distribuídas.
As duas primeiras observações raramente coadunam com as saídas da simulação. As
observações são dependentes. Por exemplo, os tempos de espera em uma fila. A
primeira entidade que entra no processo encontra a fila vazia (tempo de espera zero).
Durante a simulação, caso o processo vá se congestionando, os tempos de espera
tendem a crescer. Se o tempo de espera de uma entidade é grande, o tempo da sua
sucessora também tende a ser grande. Essas observações são autocorrelacionadas.
As saídas da simulação também são não-estacionárias. Não ocorre uma mesma
distribuição durante toda a simulação. Por exemplo, em um sistema de serviço (call
center, agência de correio, pedágio,...) o comportamento do sistema varia no tempo.
Ocorrem períodos de pico, períodos normais e períodos de baixo movimento.
A terceira premissa também é violada, uma vez que os tempos de espera em uma fila,
por exemplo, tendem a uma distribuição crescente. Para garantir que a saída é
normalmente distribuída, é necessário trabalhar com uma grande amostra, onde cada
observação, em si, é uma média de um grande número de observações. De acordo
com o teorema do limite central, a distribuição das médias de múltiplas amostragens
é normalmente distribuída.
2.6.3 Comportamento transiente e comportamento em regime
O comportamento do sistema é transiente se não existe constância ou regularidade
na flutuação estatística do desempenho das variáveis do sistema. O sistema está em
um estado de transição entre um conjunto de condições e outro. Por exemplo, quando
o sistema se inicia, ele passa por um estado de ausência de entidades no sistema para
outro, com um certa taxa positiva de chegadas no sistema. Uma vez que o sistema
absorveu o impacto dessa taxa de chegada, o sistema é dito ter entrado em regime.
Durante o período no qual o sistema encontra-se em regime, o comportamento médio
estatístico do sistema não se altera no tempo.
Uma vez, estando em regime, caso alguma regra de operação, ou a taxa de chegada
varie, o sistema volta ao estado transiente.
O sistema pode estar no estado transiente por uma das seguintes razões:
•
O sistema inicia-se vazio e leva um tempo para atingir o estado de regime;
•
O sistema encontra-se em regime, sofre alteração e atinge um novo estado de
regime;
•
Uma interferência anormal acontece no sistema (uma quebra ou um tempo de
setup fora do previsto) e leva o sistema a entrar em regime transiente.
Um exemplo de um sistema em estado transiente é um restaurante no qual os tempos
de espera tendem a crescer ou diminuir, de acordo com o período do dia (e/ou da
semana).
A condição do sistema estar em regime não é aquela onde as observações são sempre
as mesmas, ou onde as variações nas observações são menores que na condição
transiente. Simplesmente significa que todas as observações, no sistema em regime,
terão a mesma distribuição.
2.6.4 Sistemas Terminais e Sistemas Não-Terminais
A simulação pode ser identificada como sendo Terminal ou Não-Terminal. A
diferença entre as duas está na possibilidade de ser definido um comprimento para a
simulação. Se um sistema tem claramente definido um instante de início e um
instante de término, o sistema é considerado terminal. Caso contrário, é chamado de
sistema não-terminal. Exemplos de sistemas terminais podem ser: a produção de uma
fábrica que tem um horário de início de turno e um horário de término de turno, onde
todas as tarefas do dia são encerradas; um sistema de prestação de serviços que tem
um horário de expediente.
Simulação terminal possui, normalmente, um estado transiente. Este tipo de
simulação freqüentemente repete um ciclo: o sistema inicia vazio, fica ocupado por
um período de tempo e termina vazio novamente.
Para a simulação terminal é importante estabelecer quantas corridas (replicações)
devem acontecer para que os resultados estatísticos tenham consistência.
A simulação não-terminal (ou simulação em regime) é aquela na qual não existe um
evento ou instante de tempo onde a simulação termina. Isto não significa que a
simulação nunca termina, mas que, teoricamente, a simulação pode transcorrer
infinitamente sem afetar as saídas (resultados).
Para a Simulação não-terminal, o modelista precisa determinar o comprimento da
corrida de simulação, que garanta a consistência dos resultados.
Exemplos de sistemas não terminais: (1) uma empresa que trabalha em dois turnos,
com uma hora de intervalo entre eles. Cada turno inicia seu trabalho a partir do ponto
em que parou o turno anterior; (2) sistema de atendimento de emergência em um
hospital.
2.7 Output Analyzer para Sistemas Terminais
2.7.1 Construção do Intervalor de Confiança
Considere o seguinte quadro, de 10 replicações, onde são apresentados os resultados,
medidos nas simulações, da variável de controle “Peças Produzidas”.
Número da
Replicação
1
2
3
4
5
6
7
8
9
10
Peças
Produzidas
93
113
107
103
112
103
112
100
98
105
Deseja-se construir um Intervalo de Confiança para a média diária de Peças
Produzidas, de forma que se possa afirmar, com uma confiança estabelecida 1-α, que
a verdadeira média da população (µ) encontra-se nesse intervalo.
µ = [ x-h, x+h ]
Onde:
µ: média da população
x: estimativa da média populacional
h: semi-intervalo (meio comprimento do intervalo de confiança; half-width)
Observação: h é a medida de precisão, obtida a partir da amostra (replicações);
quanto menor o h, melhor a estimativa da média; h pode ser reduzido aumentando-se
a quantidade de observações da amostra;
Obtenção de h
x= ∑
i
xi
n
Onde n= número de elementos da amostra (no ex. n=10)
O semi-intervalo é dado por:
h = tn-1, 1- ( α/2) * S(x)
O fator tn-1, 1- ( α/2) é obtido da tabela de distribuição t-student.
S(x) é uma medida de dispersão dos dados da amostra (replicações) em relação à
média x . Ela é calculada da seguinte forma:
____
S(x) = √ S2(x)
S2(x’)
S (x) = -------n
2
(xi – x)2
S (x’) = ∑ ----------n-1
2
Com os dados do exemplo, temos:
A média da amostra x= 104.6
Então S2(x’) = 43.38. Portanto S2(x) = 4.338 e S(x) = 2.08
Considerando um grau de confiança de 95%, significa que o risco (erro) α = 0.05
(5%).
Da tabela t-student temos t10-1, 1-( 0.05/2) # t9, 0.975 = 2.262
Finalmente, h = 2.262 * 2.08 # h = 4.7
Portanto o intervalo de confiança que garante, com 95% de certeza, que a média
populacional encontra-se nele é:
104.6
---------------[----------|---------]---------------99.9
109.3
2.7.2 Reduzir o intervalo de confiança
Caso deseje-se reduzir o tamanho de h, sabemos que, mantido o grau de confiança,
devemos aumentar a amostra. Mas aumentar para quanto?
Considere:
n1 = tamanho da amostra anterior
(no ex. = 10)
n2 = novo tamanho da amostra
(a ser calculado)
h1 = semi-intervalo anterior
(no ex. = 4.7)
h2 = semi-intervalo desejado
(por ex., vamos considerar = 3)
A fórmula a ser utilizada é : n2 = [n1 * (h1/ h2)2]
No exemplo teremos n2 = 24.6, que podemos aproximar para n2 = 25. Portanto devese rodar o modelo 25 vezes, e repetir o tratamento aqui realizado, checando o novo
intervalo de confiança que será gerado.
2.7.3 No Arena/Output Analyzer
Módulo Statistics (no Painel Common): a variável de controle deve ser armazenada
em um arquivo gerado pelo ARENA, durante as replicações executadas. Este arquivo
deve ser criado pelo módulo Statistics (não confundir com Statics). Neste módulo, ao
dar ADD na área OUTPUTS abrirá uma caixa secundária de diálogo, onde o usuário
deverá escolher o tipo de estatística (Type of Statistics), o nome da variável desejada,
o tipo de informação (média, por exemplo) e solicitar que os valores sejam salvos em
um arquivo ( Save Observations to a File). O usuário escolhe o nome do arquivo (
por exemplo “SAIDA.DAT”) e o digita entre aspas. Este arquivo conterá todos os
valores, da variável de controle, gerados pelas diversas rodadas de simulação. Este
arquivo será tratado pelo Output Analyzer.
Software Output Analyzer: abrindo o Output Analyzer, escolha NEW e ADD para o
arquivo a ser trabalhado (por ex. o SAIDA.DAT).
O comando Classical Confidence Interval on Mean solicitará o nome do arquivo e
uma informação sobre as Replicações: 1, All, Lumped (uma, todas ou todas
misturadas). Escolha Lumped. O usuário estabelecerá o grau de confiança com qual
deseja trabalhar (default = 95%) no campo Confidence Level. Feito isso o Output
Analyzer mostrará uma tela com o intervalo de confiança desenhado e várias
informações textuais (lembre-se que o semi-intervalo de confiança é o valor que
aparece na coluna half-width).
2.7.4 Output Analyzer para Sistemas Não-Terminais
O objetivo é o mesmo do tratamento anterior: encontrar uma estimativa pontual e um
intervalo de confiança para a medida de desempenho escolhida (variável sob
controle, variável em estudo, variável a ser tratada estatisticamente).
A idéia, nesse caso onde a simulação “não termina”, é realizar uma longa simulação,
cuja amostra de dados gerada será subdividida em sub-amostras, consideradas
independentes. Essas sub-amostras serão tratadas como se fossem inúmeras
replicações, de forma análoga ao caso dos sistemas terminais.
Então é preciso saber qual o tamanho dessa “Longa Simulação”.
Receita de Bolo:
•
Executar uma simulação piloto (de preferência, já longa, ou seja com o
Length of Replication, do módulo Simulate, grande).
•
Identificar e excluir a fase transiente inicial (Média Móvel; Moving Average
e Batch/Truncate)
•
Determinar o tamanho do lote mínimo para a independência entre os eventos
(Correlograma; Correlogram)
•
Determinar o tamanho apropriado do lote e o número de lotes necessários à
análise final.
•
Executar novamente a simulação por um tempo que contemple o número de
lotes estabelecido;
•
Analisar o sistema de forma análoga a do sistema terminal (Classical
Confidence Interval on Mean).
2.7.5 Output Analyzer
$ Moving Average: Neste módulo, o usuário escolhe o nome do arquivo de dados
(Data File) a ser tratado (o nome do arquivo foi dado no módulo Statistics, no
modelo de simulação, lembra?), e estabelece a quantidade de observações (intervalo
da média móvel) desejadas para a média móvel trabalhar. O resultado será um
conjunto de dados bem menos disperso, onde será possível visualizar a fase
transiente da simulação. Caso ainda continue bastante disperso o gráfico plotado
(Plot), basta aumentar o campo Value no Moving Average.
$ Batch/Truncate: Determinada a fase transiente, utiliza-se o módulo
Batch/Truncate para remover essa fase (quando se deseja trabalhar com o sistema em
regime). Basta fornecer o nome do Data File, na área Truncation da caixa de diálogo
optar por Time e colocar o instante de término da fase transiente. No último campo
da caixa (Save Batch Means in File) escrever o nome do arquivo onde ficará esse
novo conjunto de dados truncados ou filtrados (Arquivo.flt). Se o usuário plotar o
Arquivo.flt, verificará que a fase transiente foi removida.
$ Correlogram: Utilizado para determinar o tamanho do lote mínimo para a
independência entre os eventos. Procura-se, portanto, determinar o mínimo lote de
observações onde a correlação entre os primeiros e últimos elementos do lote seja
próxima de zero. Na opção Correlogram, escolher o Data File (arquivo.flt) a ser
tratado, e o Maximum Lags (número de observações que se deseja visualizar no
correlograma). A tela mostrará o correlograma e os valores das correlações. Quanto
atingir o valor zero (valores trocando de sinal, positivo para negativo, ou vice-versa),
anotar a quantidade de observações tratadas até este ponto. É o lote mínimo de
observações.
Adota-se um fator de segurança: por exemplo, 10.
Teremos então: Número de Observações * 10 * tempo associado a uma observação
(por exemplo, se estivermos estudando o tempo de sistema de uma entidade, o tempo
individual da entidade será igual à média esperada da curva utilizada no Time
Between/módulo Arrive).
Teremos como resultado o tamanho da simulação de um lote.
Estabelece-se a quantidade de lote (por exemplo, 20), multiplica-se pelo tamanho da
simulação de um lote e obtém-se o comprimento total da simulação.
Executa-se a simulação durante esse tempo total encontrado + tempo transiente
calculado anteriormente (colocar o valor no campo length of replication/módulo
Simulate).
Voltando para o software Output Analyzer, abrir o Batch/Truncate, definir o Data
File (arquivo.dat), na área Truncation colocar os parâmetros para eliminar a fase
transiente, na área Batches optar por Observations e no campo Size colocar o número
de observações do lote mínimo. OK? No Save Batch Means in File, escolher um
nome para o arquivo de dados aqui tratado (arquivo.flt).
$ Classical Confidence Interval on Means: repetir os mesmos procedimentos
adotados no caso dos sistemas terminais. A analogia é que os diversos lotes
independentes, originários da única replicação longa (no caso do sistema ser nãoterminal), são tratados como se fossem várias replicações de um modelo de sistema
terminal.
Download