Introdução à Simulação com Arena Conceitos básicos de modelagem
Isaías Torres
Miguel A. Bueno da Costa
Esta apostila apresenta os primeiros passos para a construção de modelos de simulação usando o simulador Arena da Rockwell Software. Além disso, para que o aluno possa entender os conceitos básicos de Simulação de Sistemas é apresentada uma pequena introdução com os conceitos e termos básicos da área.
Quaisquer sugestões ou dúvidas podem ser encaminhadas para os autores através do e-mail isaias@power.ufscar.br
Isaías Torres
Miguel A. Bueno da Costa
Universidade Federal de São Carlos – UFSCar
Departamento de Engenharia de Produção
Rod. Washington Luiz, km 235
13565-905 São Carlos, SP
TEL (16) 3351-8236
FAX (16) 3351-8240
www.dep.ufscar.br
Para referenciar esta apostila use:
TORRES, I.; COSTA, M.A.B. da; Introdução à Simulação com Arena: Conceitos Básicos de Modelagem. São Carlos: Departamento de Engenharia de Produção, Universidade Federal de São Carlos, 2005. 52 p. Apostila.
Capitulo 1
Simulação de Sistemas
" 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.
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".
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.
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.
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.
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.
Atributo
São as propriedades características de cada entidade.
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.
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].
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.
Relógio
Variável que marca o tempo da Simulação.
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.
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).
Replicação
É a execução do modelo no computador.
Rodada
É o período compreendido entre o início e o fim da replicação.
Variáveis de Estado
É o conjunto de variáveis que identificam o estado do sistema em um determinado instante de tempo.
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).
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).
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.
A seguir são comentadas as etapas do processo tradicional da simulação de sistemas.
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.
Figura 1: Etapas do Processo de Simulação (Law & Kelton, 1991, adap.)
É 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 que 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.
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 co-participaçã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.
Comentários
Postar um comentário