Você está na página 1de 14

Simulação de sistemas utilizando Arena

Antonio Carlos Fernandes da Silva


Geovani Ferreira Gonçalves

Dra. Renata Spolon Lobato


Professora

Simulação de Sistemas
Mestrado em Ciência da Computação
DCCE/IBILCE/UNESP

São José do Rio Preto


2006
Sumário
1. Introdução...................................................................................................................................... 3
2. O que é o Arena?........................................................................................................................... 4
3. Construindo Modelos de simulação no Arena................................................................................5
4. Blocos de modelagem.................................................................................................................... 6
4.1 Componentes do Flowchar Module........................................................................................ 6
4.1.1 Create................................................................................................................................... 6
4.1.2 Dispose................................................................................................................................. 6
4.1.3 Process................................................................................................................................. 7
4.1.4 Decide.............................................................................................................................. 7
4.1.5 Batch ............................................................................................................................ 7
4.1.6 Separate...........................................................................................................................8
4.1.7 Assign............................................................................................................................. 8
4.1.8 Record..............................................................................................................................8
4.2 Componentes do Data Module............................................................................................... 9
4.2.1 Entity................................................................................................................................ 9
4.2.2 Queue.............................................................................................................................. 9
4.2.3 Resource........................................................................................................................10
4.2.4 Variable.......................................................................................................................... 10
4.2.5 Schedule........................................................................................................................ 10
4.2.6 Set................................................................................................................................. 10
5. Simulando um modelo M | M | 1...................................................................................................11
5.1 Fornecendo dados ao modelo............................................................................................... 11
Referências...................................................................................................................................... 14
1. Introdução

A simulação de processos é uma ferramenta muito eficaz no auxilio a tomada de


decisões, pois permite criar e testar experimentos em modelos, sem interferir no sistema real ou
prevendo o funcionamento de sistemas ainda em desenvolvimento. Devido a importância dos
processos de simulação, uma ferramenta visual e de fácil utilização, como o ARENA, é de grande
importância por permitir que profissionais de várias áreas consigam realizar simulações
computacionais, sem a necessidade de conhecer nenhuma linguagem de programação.
2. O que é o Arena?

O Arena é um software de simulação de processos que permite a elaboração de um


modelo de simulação baseado na linguagem SIMAN (SIMulation ANalysis), através de uma
interface gráfica. A linguagem SIMAN permite a modelagem de um sistema como uma seqüência
de eventos aleatórios que alteram os estados do modelo. No Arena a modelagem é feita
considerando uma visão dos processos do sistema, ou seja, os sistemas são vistos do ponto de
vista das entidades, demonstrando como as mesmas interagem com o sistema.

O Arena permite a realização dos cinco procedimentos a seguir:

● Criação de modelos básicos: provê um ambiente intuitivo para criação de


modelos, através de componentes visuais que são conectados para definição dos
processos.
● Melhoria de modelo: adicionar dados reais (tempos de processos, solicitações
de recurso, etc) para testes.
● Simular o modelo: execução da simulação para verificar se o modelo reflete a
situação do sistema atual. Podem-se verificar possíveis gargalos no sistema e apresenta-
los de forma gráfica.
● Analisar os resultados da simulação: através de relatórios gerados
automaticamente em critérios comuns para decisão, tais como utilização de recursos e
tempo de espera.
● Selecionar a melhor alternativa: realizar alterações no modelo para
contemplar possíveis cenários a serem investigados, e então comparar os resultados para
escolha da melhor opção.
3. Construindo Modelos de simulação no Arena

O passo inicial para a criação de um modelo no ambiente Arena é arrastar os


componentes necessários para a tela principal do software. Os módulos devem ser interligados de
forma a representar o fluxo de informação do sistema real.

Estes módulos se dividem em Flowchart Module (figura 1) e Data Module (figura 2).
Os módulos de fluxo são aqueles que se interconectam e forma uma rede de informações e
comandos, enquanto os módulos de dados não aparecem no modelo, sendo responsáveis por
inserir as especificações de elementos no fluxo. Estes blocos podem ser encontrados no painel
Basic Process.

Na model window existem duas regiões principais, sendo elas:


● model workspace: que contém todos os elementos gráficos, incluindo os
processos flowchart, animações e outros elementos gráficos.
● spreadsheet view: exibe dados do modelo, tais como tempo, custos, e outros
parâmetros no formato de uma planilha.

Figura 1 - Flowchart Module Figura 2 - Data Module


4. Blocos de modelagem

4.1 Componentes do Flowchar Module

Segue abaixo a descrição de cada um dos itens do módulo de componentes do


Flowchar Module:

figura 3 - Componentes do Flowchar Module

4.1.1 Create

O módulo Create é o ponto inicial para a geração de entidades no modelo. Ele é a


forma como as entidades “entram no sistema”. Um modelo pode conter tantos módulos Create
quanto sejam necessários para representação da chegada das diversas entidades no sistema.
Os dois itens principais que devem ser especificados no módulo Create são Tipo da
Entidade (Entity Type) e os dados para o Tempo Entre Chegadas (Time Between Arrivals).

● O Tipo da Entidade é utilizado para identificar qual entidade será criada


(clientes, processos, documentos, etc).
● O Tempo Entre Chegadas provê informações para o modelo de simulação de
como um tipo de entidade em particular chegará até o sistema. Como exemplo, podemos
dizer que clientes chegarão aleatoriamente a cada 1 minuto (Observação: o tipo de
intervalo aleatório – randômico – utiliza distribuição exponencial com valores
especificados).

4.1.2 Dispose

O módulo Dispose marca o fim da permanência da entidade no modelo de simulação.


Este módulo contém um parâmetro que indica se as estatísticas da entidade serão armazenadas.
4.1.3 Process

Este módulo realiza o processamento de cada entidade no sistema. Ele permite


especificar quais são os recursos necessários para a realização do processamento.
O modulo de Processo permite especificar quatro tipos de processamento,
referenciados como ações do processo:
● Delay: Sofre um atraso, para processamento por exemplo;
● Seize, Delay: Reserva um recurso e é processado;
● Seize, Delay, Release: Reserva um recurso, é processado e libera o recurso;
● Delay, Release: É processado e libera o recurso.

O "Delay" deve ser utilizado quando o único aspecto relevante de um processo em


particular é o tempo de processamento, e não a utilização de recursos ou disponibilidade.
Se a modelagem de um recurso é necessária, então o "Seize, Delay, Release" é
apropriado, pois o módulo de Processo então permitirá a especificação dos recursos necessários
para realização do processo. O cálculo das estatísticas será realizado pelo modelo sobre a
utilização e disponibilidade do recurso, além do tempo de processo da entidade.
As ações "Seize, Delay" e "Delay, Release" são apropriadas em modelos mais
complexos, onde certos processos poderão necessitar serem realizados enquanto um recurso em
particular está sendo mantido.

4.1.4 Decide

O modulo Decide permite que processos realizem tomadas de decisão no sistema. Ele
inclui opções para decisões baseadas em uma ou mais condições ou baseadas em uma ou mais
probabilidades. Condições podem ser baseadas em valores de atributos, valores de variáveis, o
tipo da entidade, ou uma expressão.

4.1.5 Batch

O modulo Batch provê um mecanismo de agrupamento no modelo de simulação. Ele


permite o agrupamento de um número de entidades. Este agrupamento de entidades pode ser
permanente ou temporário. O agrupamento temporário deve ser desfeito posteriormente através
do módulo Separate (será exposto logo abaixo).

Batches podem ser realizados com um número específico de entidades ou podem ser
agrupadas através de um atributo em comum.
Entidades que chegam ao módulo Batch são colocadas em uma fila até que o número
necessário de entidades seja acumulado. Uma vez acumulado, uma nova representação de
entidade é criada.

4.1.6 Separate

O módulo Separate pode ser utilizado para criar várias entidades através da cópia de
uma entidade ou dividir uma entidade proveniente de um módulo Batch.

Na divisão de entidades provenientes de batches, a entidade representativa


temporária que foi formada é eliminada e as entidades originais que foram agrupadas são
restauradas. As entidades procedem seqüencialmente pelo módulo na mesma ordem em que
estavam originalmente no momento em que foram adicionadas no lote.

Na duplicação de entidades, o número especificado de cópias é realizado e enviado


para o módulo. A entidade original também é eliminada do módulo.

4.1.7 Assign

O módulo Assign é utilizado para atribuir novos valores para variáveis, atributos de
entidades, tipos de entidades, imagens de entidades (pictures entity), ou outras variáveis de
sistema.
O módulo Assign permite que sejam realizadas múltiplas atribuições dentro do mesmo
módulo.

4.1.8 Record

O módulo Record é utilizado para coletar várias estatísticas no modelo de simulação.


Vários tipos de estatísticas observacionais estão disponíveis, incluindo tempo entre saídas do
módulo, estatísticas de entidades (tempo, custo, etc.), observações gerais, e intervalos de
estatísticas.
4.2 Componentes do Data Module

Figura 4 – Componentes do Data Module

4.2.1 Entity

Neste modulo são definidas as diversas entidades que deverão ser manipuladas no
modelo, bem como são definidas suas imagens de representação na simulação. Informações de
custos iniciais e custos de armazenamento são também definidos na entidade.
As entidades, que podem ser tanto concretas como abstratas, representam os objetos
movendo-se pelo sistema. Cada entidade possui suas próprias características, referenciadas
como atributos. Os atributos podem ser definidos conforme necessários. Os atributos de cada
entidade possuem valores inerentes à própria entidade.

4.2.2 Queue

Este módulo pode ser utilizado para mudar a regra de ordenação de uma fila
específica. A regra de ordenação padrão para todas as filas é o First In First Out. Existe um
campo adicional que permite que a fila seja definida como compartilhada (não disponível na
versão Basic Edition).

Existem dois tipos de filas utilizados pelo Arena, as Individual queues e Internal
queues.

● Individual queues possuem um nome simbólico, uma regra de ordenação


(ranking rule), e uma capacidade específica. Entidades nestas filas podem ser mostradas
em animações; estatísticas podem ser coletadas sobre elas; podem ser ordenadas
utilizando um mecanismo flexível de regras de ordenação; elas podem ser coletadas em
Sets (será descrito logo abaixo); e, quando utilizadas com recursos, elas podem ser
compartilhadas entre módulos.
● Internal queues provêem um mecanismo first-in, first-out para entidades em
uma atividade em particular (módulo), mas não provêem animação, estatísticas ou
mecanismos de ordenação.

4.2.3 Resource

O módulo Resource define os recursos na simulação do sistema, incluindo


informações sobre custos e disponibilidade. Os recursos podem ser classificados como de
capacidade fixa – que não sofrem alteração durante a simulação – ou podem trabalhar baseado
em um schedule.
Resources são elementos estacionários do sistema que podem ser alocados para
entidades. Os recursos podem ser utilizados para representar pessoas, máquinas, ou qualquer
elemento necessário para execução de uma tarefa.

A terminologia associada com o recurso é a seguinte: quando uma entidade requer um recurso,
ela obtém o recurso; e quando ela não necessita mais o recurso é liberado, e fica disponível para
outras entidades. Um recurso é associado com uma fila para armazenar entidades que tentam
obter recursos quando ele está indisponível. A capacidade de um recurso limita o número de
entidades que podem obtê-lo em algum momento.

4.2.4 Variable

O data module Variable é usado para definir dimensões de variáveis e seus valores
iniciais. Variáveis podem ser referenciadas em outros módulos (por exemplo, módulos Decide),
podem sofrer atribuição de novos valores através do módulo Assign, e podem ser usadas em
qualquer expressão.

4.2.5 Schedule

O data module Schedule pode ser utilizado em conjunto com o módulo Resource para
definir uma operação de agendamento para um recurso ou com o módulo Create para definir um
agendamento de chegada.

4.2.6 Set

O data module Set define vários tipos de conjuntos / agrupamentos, incluindo


recursos, contadores, tipos de entidade e imagens de entidade.
5. Simulando um modelo M | M | 1

Para a exemplificação de uso da ferramenta, vamos construir um modelo com um


único servidor , no qual as entidades chegam, entram na fila do servidor e realizam um processo e
deixam o sistema.
Para a modelagem deste sistema precisamos arrastar para a área de trabalho do
ARENA (figura 5):
● Create
● Process
● Dispose

Create 1 Process 1 Dispose 2

0 0
0

Figura 5 - Componentes básicos para construção do modelo M | M | 1

5.1 Fornecendo dados ao modelo

Assim que os módulos básicos estejam na área de trabalho, devemos fornecer os


dados do modelo. Para acessar as propriedades de cada um dos componentes basta que se de
um duplo clique sobre o componente.
Vamos iniciar configurando o módulo Create, que controlara o processo de chegadas.

Figura 6 – Janela de dialogo padrão do módulo Create, com valores já alterados

Nesta janela de configuração encontramos os seguintes campos:


● Name: Nome para o módulo Create;
● Entity Type: especifica um nome de atributo, assim cada entidade criada pelo
módulo terá um atributo especificando seu tipo;
● Ao próximos campos tratam do controle do tempo de chegada das entidades:
■ Type: Ramdom: pode ser visto como uma distribuição exponencial;
■ Value: o valor para Expo;
■ Units: Unidade de tempo para a chegada.
■ Entities per Arrival: Número de entidades por chegada;
■ Max Arrivals: Número máximo de chegadas ao sistema;
■ First Creation: Tempo da primeira chegada.

O próximo módulo a ser configurado é o Process, de um duplo clique e configure o


mesmo de acordo com a figura abaixo:

Figura 6 – Janela de dialogo padrão do módulo Process, já com valores alterados

Os seguintes campos foram alterados:


● Name: Nome para o módulo Process;
● Action: Define tipo de funcionamento do processo (ver tópico 4.1.3);
● Resources: defini nome e o número de servidores necessários para a
realização de uma tarefa;
● Delay Type: forma da distribuição utilizada para gerar o tempo de serviço;
● Unit: unidade de tempo;
● Allocation: forma de alocação do recurso;
● Minimum, Value, Maximum: Valores para a distribuição triangular, selecionada
na caixa Delay Type.

Para concluir a simulação vamos alterar o nome do bloco Dipose, para saida, basta
dar um duplo clique sobre o módulo e alterar a caixa de texto name.
Para finalizarmos a configuração e executarmos a simulação vamos alterar alguns
parâmetros de execução, através do menu Run – Options (Figura 7), nesta janela iremos alterar o
campo Replication Length, para definir o tempo de duração da simulação. Outro parâmetro
importante desta janela é o Number of Replication, que indica quantas vezes a simulação será
executada.

Figura 7 - Janela de opções de execução, aba Replication Parameters.

Para a execução da simulação agora basta pressionar o botão Go (figura 8), ao fim da
simulação será apresentada uma janela de confirmação de exibição do relatório de resultados da
simulação.

Figura 8 – Botão Go

OBS: O Arena não permite o uso de acentuação do português em suas configurações.


Referências

Freitas Filho, Paulo José de. Introdução à modelagem e simulação de sistemas. Florianópolis,
Visual Books, 2001.

Araújo, Luciane Calixto de. Manual do Arena 9.0. Universidade Federal de Santa Catarina, 2006.