Simulação Módulo II Usando o Arena em Simulação o ARENA foi lançado pela empresa americana Systems Modeling em 1993 e é o sucessor de dois outros produtos de sucesso da mesma empresa: SIMAN (primeiro software de simulação para PC) e CINEMA, os quais foram desenvolvidos em 1982 e 1984, respectivamente. O SIMAN é uma evolução do arquitetura do GPSS, lançado pela IBM em 1961 e que, durante anos, foi o lider entre os produtos de simulação-de-uso-geral no mercado mundial. Em 1984 o SIMAN recebeu um complemento chamado CINEMA (primeiro software de animação para PC), que adicionava habilidades de animação gráfica. Este conjunto foi continuamente melhorado e, a partir de 1993, os dois programas foram unificados e aperfeiçoados em um único software, o ARENA. A partir de 1998 a empresa Rockwell Software incorporou a Systems Modeling. o ARENA possui um conjunto de blocos (ou módulos) que são utilizados para se descrever uma aplicação real. Estes blocos funcionam como comandos de uma linguagem de programação como o Fortran, Cobol, VB, Delphi, etc. Obviamente foram projetados sob a ótica da simulação e, por isso, facilitam muito esta tarefa de programação. Para simplificar o processo de construção de modelos, o ARENA usa uma Interface Gráfica para o Usuário (ou GUI - Graphical User /nterface), que em muito automatiza o processo e reduz a necessidade do teclado, pois o mouse é a ferramenta utilizada. Além de permitir a construção de modelos de simulação, o ARENA possui ainda ferramentas muito úteis: • • Analisador de dados de entrada (lnput Ana/yzer). Analisador de resultados (Output Ana/yzer). O /nput Ana/yzer permite analisar dados reais do funcionamento do processo e escolher a melhor distribuição estatística que se aplica a eles. Esta distribuição pode ser incorporada diretamente ao modelo. O Output Ana/yzer é uma ferramenta com diversos recursos que permite analisar dados coletados durante a simulação, sendo que esta análise pode ser gráfica, e tem ainda recursos para efetuar importantes comparações estatísticas. 2.1 - A "Visão do Mundo" do Arena. Tal como a maioria dos softwares de simulação, o Arena visualiza o sistema a ser modelado como constituído de um conjunto de estações de trabalho que prestam serviços a clientes (também chamados de entidades ou transações) que se movem através do sistema. O movimento pode ser feito pela própria entidade ou por transportadores (empilhadeiras, por exemplo) ou correias. Esta característica básica pode ser usada de inúmeras maneiras. Podemos, por exemplo, ter: • Pessoas (entidades) percorrendo as diversas seções (stations) de um supermercado onde efetuam compras. • Um automóvel (entidade) sendo fabricado nas diversas seções (stations) de uma fábrica. • Uma apólice de seguro (entidade) sendo processada nas diversas seções (stations) de uma seguradora. • Clientes (entidades) chegam a um banco e utilizam os serviços dos diversos departamentos (stations) do banco. Prof. Menezes 5 Simulação Módulo II Assim, para montarmos um modelo com o Arena devemos, inicialmente, construir um desenho mostrando o sistema que está sendo simulado, constituído de (veja Figura 2.1): • Estações de trabalho (onde a entidade receberá algum serviço). Estação de Trabalho Fluxo Figura 2.1 – Estações de trabalho e opções de fluxo para entidade • Opções de fluxo, para a entidade, entre as estações de trabalho. • As opções de fluxo para a entidade serão tratadas pela lógica da programação do modelo. Por exemplo, em uma fábrica de geladeiras, a entidade é uma geladeira que vai sendo montada nas diversas estações de trabalho. O fluxo de uma entidade vai depender do modelo de geladeira que está sendo montado. 2.2 - Variáveis de um Sistema Para efetUar o dimensionamento de um sistema, sempre estaremos nos referindo a variáveis como o tempo de espera do cliente na fila, a quantidade de atendentes, etc. Em simulação, estas variáveis são randômicas, ou seja, são descritas por uma distribuição de probabilidades. Consideremos o sistema de filas da Figura 2.2, ao qual clientes chegam e entram em fila, existindo M servidores para atendê-Ios. As principais variáveis randômicas utilizadas em dimensionamento são: • Variáveis Referentes ao Sistema TS = Tempo Médio de Permanência no Sistema NS = Numero Médio de Clientes no Sistema • Variáveis Referentes ao Processo de Chegada λ = Ritmo Médio de Chegada IC = Intervalo Médio entre Chegadas (chamado de "Time Between Arrivals" pelo Arena) Por definição: IC = 1/ λ • Variáveis Referentes à Fila TF = Tempo Médio de Permanência na Fila (chamado, pelo Arena, de '''Waiting Time'; NF = Número Médio de Clientes na Fila (chamado, pelo Arena, de "Number Waiting') Prof. Menezes 6 Simulação Módulo II • Variáveis Referentes ao Processo de Atendimento TA = Tempo Médio de Atendimento ou de Serviço (chamado de "Process Time" ou "Delay Time" pelo Arena) c = Quantidade de atendentes NA = Número Médio de Clientes que estão sendo atendidos µ = Ritmo Médio de Atendimento de cada atendente Por definição: TA = 1/ µ 2.2.1 - Relações Básicas Existem duas relações óbvias entre as variáveis randômicas da Figura 2.2: NS = NF + NA TS = TF + TA 2.2.2 - Taxa de Utilização dos Atendentes Para o caso de "uma fila/um atendente", chamamos de taxa de utilização do atendente à relação entre seu tempo total ocupado e o tempo total disponível. Pode se demonstrar, com alguma facilidade, que esta definição pode também se expressar por: ρ= λ./ µ em que λ = ritmo médio de chegada e µ = ritmo médio de atendimento. No caso de "uma fila/vários atendentes", a expressão se torna: ρ= λ./c µ em que c é o número de atendentes. Prof. Menezes 7 Simulação Módulo II Portanto, ρ representa a fração média do tempo em que cada servidor está ocupado. Por exemplo, com um atendente, se chegam 4 clientes por hora e se o atendente tem capacidade para atender 10 clientes por hora dizemos que a taxa de utilização é 0,40 e podemos também afirmar que o atendente fica 40% do tempo ocupado e 60% do tempo livre (esta afirmativa é intuitiva mas pode ser matematicamente demonstrada). O Arena calcula o valor da Taxa de Utilização (chamada de "Utilization';, durante a execução da simulação, computando os tempos ocupados de cada servidor e dividindo este valor pelo tempo total. 2.3 - Fornecendo Dados ao Arena Para montarmos um modelo em Arena, devemos fornecer informações sobre o que acontece em cada estação de trabalho, sobre o deslocamento entre as estações, etc. 2.3.1 - O Processo de Chegada O estabelecimento do processo de chegada de entidades ao sistema que está sendo simulado é uma etapa muito importante da criação do modelo. Por processo de chegada geralmente estaremos nos referindo a uma distribuição de probabilidades que descreve corretamente a chegada de clientes ao sistema. Cada caso deve ser analisado individualmente, mas os mais comuns são: • Os intervalos entre chegadas seguem a distribuição exponencial negativa. • Os intervalos entre chegadas seguem uma tabela que descreve o processo. O primeiro caso é bastante comum: dentre as distribuições estatísticas, a exponencial negativa (Figura 2.3) se adapta a quase todos os processos de chegada. Assim, para expressar no Arena que clientes chegam a um sistema a cada 5 minutos, segundo a distribuição exponencial negativa, diremos que o valor para Time Befween Arrivals é EXPO(5). 2.3.2 - O Processo de Atendimento Ao chegar a uma estação de trabalho, a entidade sofre um atendimento durante um período de tempo. Para este caso não existe uma distribuição estatística que se adapte a todos os cenários. Pelo contrário, cada cenário deve ser analisado individualmente. As possibilidades teóricas são: Prof. Menezes 8 Simulação • • • • Módulo II A distribuição de Erlang. A distribuição exponencial negativa. A distribuição triangular. A distribuição retangular ou uniforme. • Etc. Na Figura 2.4 mostramos o formato das possibilidades acima. Assim, por exemplo, para expressar no Arena que o atendimento em uma dada estação de trabalho segue a distribuição triangular, podemos dizer que o valor para o Process Time é TRIA(10, 15,25), em que: - Valor mínimo = 10 - Moda = 15 - Valor máximo = 25 ° Além disso, é muito comum o caso em que nenhuma das distribuições teóricas se adapta a um caso real. Então devemos utilizar os próprios dados reais para a simulação. Deslocamento 2.3.3 - O Deslocamento entre Estações Os dados de durações do deslocamento podem contemplar: • Deslocamento efetuado pelo próprio cliente. • Deslocamento efetuado por um equipamento (como uma ponte rolante ou uma esteira). No primeiro caso geralmente devemos fornecer uma distribuição de probabilidades, semelhante às utilizadas na processo de atendimento. Na segundo caso devemos fornecer os dados de funcionamento do equipamento. 2.4 - A Programação Visual Um modelo em Arena é constituído de duas partes: • Lógica • Animação LÓGICA: Nesta parte montamos um programa, utilizando comandos (também chamadas de blocos ou módulas) do Arena. ANIMAÇÃO: Nesta parte são colocados desenhos e símbolos para representar as estações de trabalho e os caminhos por onde passa a entidade. O Arena simula a evolução do tempo e movimenta a entidade pelos caminhos e estações. 2.5 - A Execução do Modelo Prof. Menezes 9 Simulação Módulo II Quando um modelo é executado, o Arena vai criando entidades e movimentando-as entre as estações de trabalho. O Arena simula e gerencia o transcorrer do tempo: a cada instante, no tempo que está sendo simulado, algum evento pode acontecer, tal camo: • Um novo cliente chega ao sistema, • Uma entidade inicia a deslocamento entre duas estações de trabalho. • Um servidor de uma estação de trabalha inicia o atendimento a um cliente. Para a execução, a Arena se baseia na lógica da programação fornecida para a modelo. Ele se encarrega de manusear todos as dados surgidos na própria simulação, tais cama tempo de espera na fila, taxa de utilização de atendentes, etc. Além disso, ele faz com que a animação na tela tenha um aspecto próximo à realidade. Ao final da simulação, ele disponibiliza relatórios que mostram as principais resultadas da processo. O MÉTODO DE MONTE CARLO Quando uma cliente chega a uma estação de trabalha, a duração do atendimento daquele cliente geralmente é diferente do atendimento dos outros clientes, visto que o processo é randômico e descrita por uma distribuição de probabilidades. Para descobrir qual a duração do atendimento daquele cliente específico, o Arena utiliza a Método de Monte Carlo. Por este método é efetuado um sorteio para se encontrar a duração do atendimento. O mesmo método é efetuado para o processe de chegada, para a deslocamento entre estações de trabalho, etc. O Método de Monte Carlo utiliza números aleatórios e a função de probabilidades que descreve a fenômeno real. Para que a simulação forneça resultadas confiáveis, é necessária que a amostra simulada seja de tamanho adequado, o que significa que, se o tamanho da amostra for aumentado, as resultadas não se alteram. O uso de amostras de pequena tamanho pode fornecer resultados diferentes do real. Prof. Menezes 10