Apostila de Simulação de Sistemas

download Apostila de Simulação de Sistemas

of 44

Transcript of Apostila de Simulação de Sistemas

Simulao de SistemasParte 1

Introduo SimulaoParte 2

INPUT/OUTPUT : Entrada e Sada de SimulaoMaterial preparado por Miguel Antonio Bueno da Costa (Mian), para dar suporte disciplina de graduao Simulao Aplicada Engenharia de Produo, do Departamento de Engenharia de Produo, da Universidade Federal de So Carlos. So Carlos,incio da primavera de 2002

Grupo SimuCAD ! www.simucad.dep.ufscar.br

1. Introduo Simulao" Simulao [ETIM lat. Simulatio,onis] S.f. ao ou efeito de simular... 3 imitao do funcionamento de um processo por meio do funcionamento de outro 4 teste, experincia ou ensaio em que se empregam modelos para simular o ser humano, em especial em casos de grande perigo de vida... " s.analgica teste ou experincia em que os modelos empregados tm comportamento anlogo ao da realidade " s. digital experincia ou ensaio constitudo por uma srie de clculos numricos e decises de escolha limitada, executados de acordo com um conjunto de normas preestabelecidas e apropriadas utilizao de computadores ... [Dicionrio HOUAISS da lngua portuguesa, 1a. Edio, pg. 2575, Editora Objetiva, 2001]

Simulao de Sistemas uma tcnica tradicional da Pesquisa Operacional. uma das ferramentas mais importantes e teis para analisar o projeto e a operao de sistemas complexos. Normalmente, a simulao de sistemas utilizada quando no possvel fazer experimentaes no sistema real (devido, por exemplo, ao longo tempo necessrio para realizar o experimento, ou ao alto custo do experimento ou, ainda, dificuldade de tratar fisicamente o experimento). A simulao utilizada, tambm, quando no possvel desenvolver um modelo que solucione o problema atravs de tcnicas da Pesquisa Operacional que otimizam a soluo, como a Programao Linear e a Programao Dinmica, dentre outras. Neste sentido existe uma forte afirmao de M.Fox [1990] que diz : "Se existe um algoritmo que otimiza a soluo, utilize-o". Por outro lado, segundo G.Gordon [1978], a quantidade de problemas que podem ser resolvidos matematicamente limitada. As tcnicas matemticas requerem que o problema possa ser expresso num modelo matemtico, de formato particular. Ao se estudar um problema essencial considerar os mtodos analticos primeiro, e verificar se o grau de abstrao, necessrio para obter uma soluo analtica , no muito severo. Quando no for possvel gerar solues para um sistema por meios analticos, necessrio utilizar mtodos de computao numrica, por exemplo a simulao. R.Shannon [1975] comenta que, ao contrrio de muitas tecnologias que so classificadas de acordo com a disciplina na qual ela se origina (fsica ou qumica por exemplo), a simulao pode ser aplicada a todas as disciplinas. Incontveis trabalhos, relatrios, teses de mestrado e doutorado, revistas e livros mostram vrios campos de aplicao para a Simulao, como negcios, economia, marketing, educao, poltica, cincias sociais, cincia comportamental, relaes 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 expresso Anlise de Monte Carlo a uma tcnica matemtica que foi utilizada para solucionar certos problemas de

blindagem em reatores nucleares. O tratamento experimental desses problemas seria muito caro e uma abordagem analtica seria muito complicada. A anlise ou mtodo de Monte Carlo consiste na amostragem experimental com nmeros randmicos. A simulao e o mtodo de Monte Carlo se confundem. Ambos so tcnicas de computao numrica. Porm, segundo G.Gordon [1978], a simulao aplicada em modelos dinmicos, enquanto a anlise de Monte Carlo aplicada a modelos estticos. Em sntese, os modelos de simulao so valiosos e necessrios, uma vez que frmulas fechadas e equaes analticas raramente conseguem descrever, de forma adequada, sistemas reais complexos [Widman,1990]. Uma grande vantagem da Simulao permitir estudos de sistemas reais sem modific-los, com velocidade e baixo custo. Alternativas de mudanas para o sistema podem ser tentadas e estudadas de forma sistemtica sem interferir no sistema real [Baker,1982]. A rpida evoluo do software e do hardware nos ltimos tempos tem facilitado muito o desenvolvimento de simuladores. Esses simuladores podem ser de grande valia quando decises precisam ser tomadas num sistema que no completamente conhecido devido s diversas interaes existentes no mesmo.

1.1 Definies para Simulao de SistemasExiste um grande nmero de definies para simulao. A seguir so apresentadas algumas delas, provenientes de livros clssicos sobre o assunto, e uma definio particular nossa. So feitas, tambm, algumas colocaes relevantes na busca de elucidar o que vem a ser simulao de sistemas. R.Shannon : "Simulao o processo de desenvolvimento de um modelo de um sistema real, e a conduo de experimentos nesse modelo, com o propsito de entender o comportamento do sistema e/ou avaliar vrias estratgias (com os limites impostos por um critrio ou conjunto de critrios) para a operao do sistema". [Shannon,1975] T.Naylor : "Simulao uma tcnica numrica para realizar experincias em um computador digital, envolvendo certos tipos de modelos lgicos que descrevem o comportamento de um sistema econmico ou de negcios (ou um aspecto parcial de um deles) sobre extensos intervalos de tempo". [Naylor,1971] G.Gordon : "Simulao de sistemas a tcnica de solucionar problemas observando o desempenho no tempo de um modelo dinmico do sistema". [Gordon,1978] A definio de T.Naylor especifica experimentaes em computadores, enquanto que, tanto a definio dada por R.Shannon quanto a fornecida por G.Gordon so

amplas o suficiente para englobarem os modelos fsicos dinmicos. Nesses modelos os resultados so derivados de medidas fsicas, em vez de computaes numricas. Porm, segundo G.Gordon [1978], normalmente as pessoas referem-se simulao em termos de modelos matemticos e computaes numricas. Na nossa opinio simulao de sistemas " o processo de construo de um modelo representativo de um sistema real, e a experimentao no mesmo. Os resultados das experimentaes, aps anlises, apresentam uma viso futura do sistema. As informaes geradas auxiliam nas tomadas de deciso, necessrias no momento presente, e contribuem para uma melhor compreenso do sistema estudado". Alm de auxiliar na tomada de deciso, importante enfatizar a contribuio da simulao para a compreenso do sistema estudado pois, como afirma D.Knuth [1969], "...freqentemente nos enganamos, pensando saber mais do que realmente sabemos sobre uma coisa, at que tentamos simul-la num computador". Atravs da simulao o usurio pode comparar seus resultados com os do sistema e validar seus prprios processos de raciocnio. A simulao de sistemas , portanto, uma metodologia experimental que busca descrever o comportamento de um sistema. Esta metodologia constri formas de quantificar o comportamento observado, prevendo o comportamento futuro. A proposta da simulao produzir dados (e ela uma grande geradora de nmeros) que, quando analisados, identificaro importantes aspectos do sistema estudado, auxiliando na explicao, compreenso e melhoria do mesmo. Segundo G.Doukidis [1987] a funo primria de um modelo de simulao examinar como o sistema se comporta durante um perodo de tempo. Para atingir este objetivo, o modelo deve providenciar facilidades, para representar o estado atual do sistema, e vrias pr-condies que, se satisfeitas, iro resultar num estado futuro. Outra colocao bastante construtiva para se compreender melhor o que simulao de sistemas dada por M.Shubik [1960] que diz : "Simulao de um sistema ou de um organismo a operao de um modelo (ou simulador) que representa esse sistema ou organismo. O modelo passvel de manipulaes que seriam difceis 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 operao do modelo".

1.2 O Processo de SimulaoEntende-se por processo de simulao o desenvolvimento de um modelo de simulao, a experimentao do mesmo e a implementao dos resultados.

R.Shannon [1975] coloca que o desenvolvimento de um processo de simulao mais uma extenso das artes do que das cincias. Esta caracterstica talvez explique a dificuldade de se apresentar um mecanismo sistemtico para que um usurio interessado possa desenvolver simulaes. Apesar das dificuldades, pode-se estabelecer os elementos que participam de um modelo de simulao e alguns passos que, se seguidos, podem ajudar um modelista, mesmo novato, a ter um bom desempenho no desenvolvimento de simulaes. Todo modelo de Simulao possui, de forma combinada ou isolada, os seguintes elementos [Shannon,1975] : Componentes : so as partes (ou subsistemas) integrantes do sistema. Entende-se por sistema, um conjunto de objetos, que interagem entre si, para atingir um objetivo comum. Parmetros e Variveis : so elementos do sistema que recebem valores. Os parmetros podem receber valores arbitrrios, enquanto que as variveis recebem valores associados funo a qual elas esto atreladas. Existem dois tipos de variveis : Endgenas (Dependentes) e Exgenas (Independentes). Variveis endgenas so aquelas produzidas dentro do sistema ou resultantes de causas internas. So tambm chamadas variveis de estado (pois mostram o estado do sistema) ou variveis de sada (pois so responsveis por gerar e apresentar os resultados oriundos do sistema). Variveis exgenas, tambm chamadas variveis de entrada, so originrias de (ou produzidas por) causas externas. Relaes Funcionais : so normalmente apresentadas na forma de equaes matemticas , que relacionam as variveis endgenas com as exgenas. Essas relaes podem ser de ordem determinstica (onde para uma dada entrada existe uma nica sada) ou estocstica (onde para uma dada entrada existe(m) incerteza(s) associada(s) sada). Restries : so limitaes, impostas pelo modelista ou pela natureza do problema, que restringem os valores das variveis. Objetivos : o estabelecimento das metas do sistema e como elas podem ser avaliadas. A manipulao do modelo orientada de forma a satisfazer esses objetivos.

1.2.1 Terminologia da SimulaoA terminologia utilizada na simulao no nica, mas h uma certa tendncia geral em aceitar a que apresentada a seguir. a) Modelo : a representao de um sistema. Existem vrias formas de se classificar modelos. M.A.B.Costa [2001] apresenta uma explanao sinttica

sobre modelos, reproduzida a seguir. Os modelos so tipificados como icnicos (representao fiel do sistema, geralmente em escala diferente da real), analgicos (as propriedades do sistema so representadas por outras equivalentes) e simblicos (as propriedades do sistema so representadas por smbolos). Outro tipo de classificao separa os modelos em estticos e dinmicos. Os modelos estticos no consideram explicitamente a varivel tempo, possuem relaes determinsticas e so, normalmente, tratados por tcnicas analticas. Os modelos dinmicos tratam com interaes variveis no tempo (o estudo do sistema em um certo instante interfere no estado do sistema no instante seguinte). Tambm existe uma caracterizao importante para os modelos, que diz respeito s situaes discreta e contnua. Um modelo discreto sofre alteraes repentinas no tempo. As mudanas no estado do sistema so expressas em termos do estado do sistema no incio do perodo. As mudanas durante um intervalo de tempo so calculadas e deduzido um novo estado do sistema para o final deste perodo e incio do seguinte. Um modelo contnuo sofre constantes e suaves alteraes no tempo. Uma situao bastante comum tratar um sistema contnuo como sendo uma seqncia de pequenas alteraes discretas no tempo. Por fim, tambm so diferenciados os modelos determinsticos dos estocsticos. Os modelos determinsticos no tratam variveis randmicas e as caractersticas operacionais envolvem relaes exatas. Quando pelo menos uma varivel do sistema se comporta de forma probabilstica, diz-se tratar de um modelo estocstico. b) Entidade : tambm chamada de transao, 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 temporria ou permanente. As entidades temporrias entram no sistema, percorrem o seu ciclo de vida e abandonam o sistema. As entidades permanentes executam a sua funo 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 viso da simulao discreta convencional, as entidades temporrias so criadas primeiro. Elas engajam atividades e requisitam recursos. Uma vez terminada a atividade, a entidade removida. Trata-se de uma transao passiva, onde nenhum mecanismo considerado inteligente assumido ou modelado. c) Atributo : so as propriedades caractersticas de cada entidade. d) Atividade: uma seqncia de procedimentos que causa mudana no sistema. A atividade corresponde a um estado ativo, comum a uma ou mais entidades (ou classe de entidades). A durao de uma atividade pode ser determinstica ou estocstica. Assume-se que uma atividade indivisvel. Uma vez iniciada, ela no mais interrompida. Segundo R.Reddy [1986] , as atividades podem ser fsicas ou cognitivas. As atividades fsicas so as formas convencionais de atividades, em torno das quais a simulao tem sido

desenvolvida. As atividades cognitivas so formas de tomada de deciso racional e inteligente. Da mesma forma que as atividades fsicas, as atividades cognitivas possuem tempo finito de durao, que pode ser randmico ou dependente das informaes e/ou decises do sistema. e) Evento : as atividades so iniciadas e terminadas por eventos. Eventos so instantes no tempo, enquanto atividades possuem duraes no tempo. Evento o ponto no tempo no qual acontece alguma mudana no sistema modelado. O processamento de um evento realizado por uma rotina. Normalmente a ocorrncia de um evento dispara a ocorrncia de outro(s) evento(s). Da mesma forma que as atividades, os eventos podem ser fsicos ou cognitivos. As rotinas associadas aos eventos fsicos so anlogas s rotinas dos eventos tradicionais da simulao discreta. Os eventos cognitivos envolvem processamento de conhecimento, anlogo ao procedimento cognitivo desempenhado pelo tomador de deciso. Rotinas de eventos cognitivos iro conter conhecimentos, representados por regras de produo e heursticas, que sero processados quando uma deciso precisar ser tomada [Reddy,1986]. f) Acumuladores: so variveis que permitem medir o desempenho do sistema. Possuem esse nome porque vo acumulando valores no tempo, para depois receberem tratamento de anlise e gerar as estatsticas da simulao. g) Relgio : varivel que marca o tempo da Simulao. h) Lista de Eventos Futuros: estrutura de dados que armazena os eventos previstos para ocorrer no futuro. Esses eventos so armazenados por ordem cronolgica de ocorrncia. i) Cenrio: uma experimentao estruturada, com um conjunto de configuraes de dados e de entidades do sistema. Pode-se construir vrios cenrios para testar vrias hipteses (Torres, 2002). j) Replicao: a execuo do modelo no computador. k) Rodada: o perodo compreendido entre o incio e o fim da replicao. l) Variveis de Estado: o conjunto de variveis que identificam o estado do sistema em um determinado instante de tempo. m) Recurso: uma entidade esttica do modelo que serve entidades dinmicas. Esse atendimento pode ser feito simultaneamente a vrias 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 dinmicas esperam sua vez de seguir atravs do sistema. As filas podem ser chamadas de reas de

espera ou pulmes (buffers). Depois de dar entrada na fila a entidade retirada seguindo algum tipo de critrio, por exemplo, FIFO (First In First Out), LIFO (Last In Last Out), HVF (High Value First), LVF (Lower Value First) ou um critrio aleatrio (Torres,2002).

1.2.2 Uma Metodologia para Desenvolver SimulaesEm linhas gerais a metodologia de trabalho adotada pela simulao de sistemas no difere da metodologia apresentada pela pesquisa operacional. Mesmo porque a simulao uma tcnica da pesquisa operacional que, junto com a programao linear, ocupa um lugar de destaque em termos de utilizao prtica, se comparada s demais tcnicas. A figura 1 apresenta uma forma de visualizar as diversas etapas de um processo de simulao e suas interaes.

Figura 1: Etapas do Processo de Simulao (figura adaptada da referncia Law & Kelton, 1991) A seguir so comentadas as etapas do processo tradicional da simulao de sistemas.

1.2.2.1 Definio do Problema e Plano de Estudo No possvel solucionar um problema sem conhec-lo a fundo. Como primeiro passo preciso definir claramente os objetivos relacionados ao problema a ser resolvido. No raro acontecer do pesquisador resolver "corretamente o problema errado". R.Shannon [1975] faz uma afirmao que, sem dvida, se encaixa perfeitamente nos dias de hoje. Ele diz: "...milhes de dlares so gastos anualmente trazendo respostas sofisticadas e elegantes para questes erradas". A formulao de um problema um processo contnuo atravs do estudo do mesmo. Novas informaes surgem e trazem novas restries, alteram objetivos e fornecem novas alternativas de investigao. Essas informaes devem ser utilizadas para atualizar continuamente a formulao e definio do problema. A formulao do problema uma etapa vital para todo o processo de simulao. Deve ser feita com muito cuidado e competncia. Nessa fase cada informao relevante deve ser analisada a fim de definir o problema no nvel de objetivos, restries e complexidade. importante lembrar que o mundo muito complexo. As situaes-problema contm, normalmente, um grande nmero de variveis, parmetros, relacionamentos, restries e metas. Entretanto, se somente alguns aspectos so de interesse do estudo, muitas caractersticas do sistema real podem ser ignoradas. Trata-se, portanto, de abstrair da situao real os aspectos relevantes, formando uma verso idealizada do evento real. Deve-se pensar o projeto de simulao como o desenvolvimento de um grande modelo simples. Conforme as metas estabelecidas vo sendo atingidas, novos problemas vo sendo identificados, obtendo-se um maior realismo. Isso levar revises do modelo e, conseqentemente, obteno de melhores solues. Trata-se portanto de um enriquecimento contnuo do modelo. O problema formulado depender da tcnica e experincia do modelista em obter informaes e do seu relacionamento junto ao usurio. Este relacionamento ditar a velocidade com que o modelo atingir o ponto desejado de realismo. O modelista deve conhecer formas de extrair, do usurio, informaes suficientes e consistentes a respeito do problema tratado. Existem metodologias especficas para auxiliar nesta etapa, que podem ser encontradas em publicaes ligadas s reas de anlise de sistemas , de gerenciamento de projetos, e de aquisio de conhecimento (Inteligncia Artificial). Em termos prticos, W.D.Kelton e outros (1998) colocam algumas questes que deveriam ser feitas e respondidas para facilitar a identificao dos objetivos da simulao, descrever o sistema de estudo, estabelecer o grau e necessidade de animao, definir as entradas e sadas do modelo e estabelecer os elementos de gesto do projeto de simulao. As questes so as seguintes:

O que deve conter o modelo de simulao? Qual o nvel de detalhes necessrio? Quais os recursos primrios do sistema? Quais as atividades e processos associados ao sistema? Existem diagramas de fluxo e de processo disponveis? Eles esto atualizados? Esses diagramas so seguidos ou so somente prescries? Sob quais condies eles no so seguidos? Existem restries fsicas, tecnolgicas ou legais na operao do sistema? Essas restries podem ser alteradas? Os procedimentos do sistema esto bem definidos? Como so tomadas as decises? Existem dados disponveis? Quem vai cuidar da coleta de dados? Quem vai cuidar do projeto de levantamento de dados, caso no existam dados disponveis? Qual tipo de animao necessrio? Quem vai verificar e validar o modelo, e como o far? Quais as sadas necessrias? Quo geral ou especfico deve ser o modelo? Quem vai fazer as anlises de resultados? Quantos e quais cenrios devem ser considerados? Quais os pontos de controle do projeto (milestones)?

W.D.Kelton e outros (1998) comentam que esta lista no exaustiva mas pode oferecer uma idia geral do nvel de detalhes necessrios.

1.2.2.2

Coleta de Dados e Representao do Problema

Aps estabelecer a situao a ser tratada, deve-se passar para a fase de representao da mesma. Trata-se, no caso da simulao, de transladar o sistema real para um diagrama de fluxo lgico. O diagrama representar o problema atravs de associaes feitas entre as entidades e as atividades. Um diagrama bastante conhecido o Diagrama Ciclo Atividade (Ativity Cycle Diagram - ACD). Esses diagramas so constitudos 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 utilizao de um ACD indicada para sistemas que possuem forte estrutura de filas. Todas as entidades envolvidas, a cada instante da simulao, estaro sempre em uma das situaes : ativada (participando da execuo de uma atividade) ou esperando numa fila. O Estado de um sistema modelado definido pela situao de cada entidade componente. Um ciclo de vida utilizado para descrever uma seqncia de situaes nas quais uma entidade dever atuar. Em linhas gerais a representao dos diagramas ACD feita atravs de "crculos" e "retngulos", simbolizando respectivamente filas e atividades. Os retngulos representam atividades (estados ativos) que envolvem, normalmente, a coparticipao de diferentes entidades. As duraes dessas atividades so definidas baseadas em funes, probabilsticas ou no. Os crculos representam filas (estados passivos), compostas de entidades que aguardam alguma mudana no sistema. Essas mudanas acontecem com a ocorrncia de um evento, que liberar outras entidades que podero ser utilizadas na realizao de uma atividade comum. No clssico exemplo do PUB apresentado nas figuras seguintes, pode-se ter uma viso desses diagramas e uma idia do processo de construo dos mesmos.

Exemplo aproveitado da referncia Paul & Balmer (apud Costa, 2001).O PUB consiste num bar ingls que envolve as seguintes entidades: clientes, garom, copo e porta. O leitor pode reparar que uma entidade pode ser tanto um ser humano como um objeto. Pode ser tambm uma entidade concreta ou abstrata. Por exemplo, uma informao que circula num sistema pode ser entendida como uma entidade abstrata. Tambm pode ser temporria 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 sequncia 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 garom e um copo. Na falta de qualquer uma dessas entidades a atividade Servir no se realizar.

No estudo de qualquer sistema muito importante definir o grau de abstrao no qual se deseja trabalhar. Esse grau de abstrao definir a complexidade do modelo. Recomenda-se que se inicie o desenvolvimento do modelo da forma mais simples possvel, envolvendo somente as variveis que realmente so necessrias para representar o problema a ser estudado. Na medida que os resultados da simulao no forem respondendo s questes colocadas, diminui-se o grau de abstrao do modelo, acrescentando-se novas variveis ao mesmo. Nesse exemplo a complexidade tratada ser pequena mas suficiente para atender situao 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 mdia de clientes na fila. No PUB o cliente chega, a partir de uma fila de clientes que esto fora do bar (Outside), entra no sistema e nesse momento so 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 prximo 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. Aps 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 garom pode participar da atividade Servir ou da atividade Lavar, caso contrrio ele entra na fila de garons 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 so gerados tempos de processamento, que podem seguir qualquer tipo de distribuio, por exemplo, uma Normal, Triangular, Erlang, Weibull, Uniforme, etc. Uma restrio importante a ser respeitada na construo de um ACD diz que as atividades e as filas devem aparecer intercaladas no diagrama. No podem ocorrer atividades em seqncia. Entre elas deve haver uma fila. E vice-versa. No exemplo, para contornar essa questo, sero 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 smbolos:ATIVIDADE FILA

Ciclo de Vida do ClienteCHEGADA

Ciclo de Vida do CopoSERVIR BEBER

OK

Espera

Outside

OK Limpos SERVIR BEBER LAVAR Sujos

Ciclo de Vida do GaromSERVIR

Ciclo de Vida da PortaFechada

Ocioso CHEGADA LAVAR

Aps desenhar os diagramas individuais, para ter uma viso do sistema todo basta agrupar os ciclos de vidas atravs das atividades comuns. No exemplo obtm-se o seguinte diagrama:PUBFechada

CHEGADA

Espera OK

Outside

SERVIR OK Ocioso

BEBER

Limpos

LAVAR

Sujos

Um diagrama apresentado na forma de um ACD o primeiro passo para se utilizar uma ferramenta computacional de gerao de cdigos automtica. No caso o software eLSE (extended Lancastar Simulation Environment) gera todos os cdigos na linguagem PASCAL, criando automaticamente o programa que simular o PUB. O passo seguinte levantar os dados que sero responsveis pelo estabelecimento das distribuies que representam a chegada de clientes, tempos das atividades e quantidade de drinks de cada cliente. preciso estabelecer tambm o cenrio que se deseja simular, especificando os parmetros de entrada, como a quantidade de garons e quantidade de copos. Feito isso, roda-se o programa, obtmse os resultados e atravs de uma anlise dos mesmos, levanta-se o tempo mdio na fila de espera e a quantidade mdia de clientes nessa fila. Caso os resultados no contemplem a poltica desejada de tempo mximo de espera na fila, cria-se um novo cenrio modificando, por exemplo, a quantidade de garons ou a de copos. Roda-se novamente, analisa-se os resultados e faz-se a opo por um novo cenrio ou no. Essa a sntese da simulao de sistemas. Criar um modelo representativo de um sistema real e fazer experimentaes nesse modelo, obtendo informaes que orientem nas tomadas de deciso para futuras alteraes nesse sistema real. importante que o leitor sinta a grande vantagem que se tem quando se faz experimentaes num modelo computacional. No computador possvel analisar muitas situaes (cenrios) 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 Aplicao Geral; Linguagens Especficas de Simulao; Geradores Automticos de Cdigos de Simulao; e Ambientes de Simulao.

Existe uma contraposio entre flexibilidade e facilidade de desenvolvimento, de acordo com a ferramenta escolhida. Por exemplo, uma linguagem de aplicao geral permite alta flexibilidade no desenvolvimento de um programa de simulao, porm exige grande conhecimento da linguagem e demanda um grande esforo de programao. Por outro lado um ambiente de simulao muito amigvel e permite fcil utilizao por parte do usurio, mas no oferece muita flexibilidade no desenvolvimento. As linguagens de aplicao geral so mais poderosas ou menos poderosas de acordo com suas caractersticas individuais. Linguagens fortes como PASCAL e C so muito utilizadas no desenvolvimento de simulaes.

Linguagens especficas de simulao (ou simplesmente linguagens de simulao) 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 graas s facilidades que proporcionam no desenvolvimento de modelos de Simulao. Algumas linguagens de simulao bastante conhecidas so : GPSS, SIMAN, SIMSCRIPT, DINAMO, GASP, SIMPAC, CLS e SIMULA. Em relao linguagem SIMULA interessante comentar que, apesar de ser uma das primeiras linguagens especficas de simulao, hoje ela reconhecida como a primeira linguagem orientada a objeto que surgiu. As principais caractersticas das linguagens especficas de simulao so [Ogata,1992] : Produz uma estrutura genrica para criar modelos de simulao; Fornece uma maneira rpida de se converter um modelo de simulao em um programa computacional; Fornece facilidades para alteraes no programa computacional; Fornece sadas flexveis, teis para anlises.

Alm das vantagens associadas reduo do tempo e facilidade de programao, as linguagens especficas de simulao tambm fornecem bons mecanismos para localizao de erros. Os geradores automticos de cdigos de simulao surgiram para facilitar a tarefa do modelista no processo de programao computacional. A partir de uma representao formal do problema estudado, esse tipo de ferramenta produz um programa fonte, que uma verso executvel do modelo especificado. Alguns desses geradores chegam a desenvolver a quase totalidade dos cdigos computacionais exigidos. So 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 cdigos de simulao. Os ambientes de simulao so sistemas que tem por objetivo auxiliar o usurio no desenvolvimento de modelos de simulao, atuando em vrias etapas do processo, e no somente na gerao de cdigos. Uma outra etapa na qual um ambiente de simulao normalmente atua na anlise dos resultados da simulao. So 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 simulao (por exemplo um sistema inteligente ou baseado em conhecimento). Nessa fase so criados os cdigos de simulao, por gerao automtica ou no. A dificuldade, e conseqente velocidade no desenvolvimento do simulador, estar associada tanto ferramenta computacional utilizada, como complexidade do modelo e experincia do modelista. 1.2.2.5 Verificao e Validao do Modelo Duas fases muito delicadas no processo de desenvolvimento de modelos de simulao correspondem verificao e validao desses modelos. Verificao do modelo a etapa onde o modelista checa se o modelo desenvolvido corresponde ao idealizado. Neste ponto verificado se o modelo foi construdo 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 verificao de um modelo deve-se variar os valores dos parmetros de entrada (inclusive utilizando as fronteiras do intervalo de valores) e analisar se os resultados so coerentes. Nesse momento possvel sentir a fora da simulao, que agiliza a etapa de testes, tornando-os viveis em termos de tempo e dinheiro. A validao 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 idia passar confiana ao usurio, mostrando que qualquer experimento com o modelo ir gerar resultados que coadunam com a realidade do sistema estudado. A validao normalmente conseguida executando o modelo e comparando seus resultados com os oriundos do sistema real. Se os resultados da simulao se aproximarem dos valores reais, dentro de um nvel de confiana desejado, o simulador ser validado. Segundo Annino [1981] a tcnica de validao mais efetiva apresentar o programa para algum familiar ao sistema em estudo. Num esquema interativo entre o especialista no funcionamento do sistema real e o modelista, ser mais fcil corrigir desvios do modelo em relao ao sistema real. A validao do modelo extremamente importante pois os simuladores normalmente tendem a parecerem reais e, tanto o modelista como o usurio, 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 rpida, 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 : estratgica e ttica. No nvel estratgico importante projetar os experimentos visando alcanar as metas estabelecidas. Portanto deve-se combinar os valores dos parmetros que otimizaro as variveis de respostas, e explicar as relaes entre as variveis de respostas e os fatores controlveis do sistema. a fase que consiste em executar o modelo computacional sob os diversos cenrios de simulao estabelecidos. Os cenrios so tratados individualmente, com a preocupao de se estabelecer exatamente os pontos de incio e fim da simulao, para efeito de anlises estatsticas. Esses pontos correspondem fase transiente (warm-up) e ao tempo total de simulao (length of simulation) da rodada (running). bom lembrar que a simulao, a partir de situaes iniciais diferentes, oferece linhas de ao alternativas para o tomador de deciso. E como a fase de execuo do modelo , via de regra, extremamente rpida, pode-se abusar do nmero de cenrios a serem rodados. 1.2.2.7 Execuo do Modelo A execuo do modelo a fase ttica do planejamento de experimentos. Nenhum projeto de simulao pode ser considerado completo se no for aceito, entendido e utilizado. Estabelecido o projeto dos experimentos, a fase ttica determinar como cada um dos testes especificados nos experimentos sero executados. Para isso devem ser definidas as condies iniciais, e como elas afetam o equilbrio do sistema. O pano de fundo dessa fase a necessidade de diminuir a varincia das respostas e, ao mesmo tempo, buscar minimizar o tamanho das amostras necessrias. Os problemas associados ao incio da Simulao podem ser amenizados excluindo-se dados gerados durante um certo perodo inicial, para efeito de contabilidade, ou escolhendo-se condies iniciais que diminuam o tempo necessrio para alcanar o equilbrio. O resultado dessa fase o estabelecimento de diversos cenrios que sero rodados. 1.2.2.8 Anlise das Alternativas de Ao Esta fase consiste em fazer inferncias a partir dos dados gerados na execuo do modelo. uma fase crtica, demorada, difcil e muito importante. Uma sada de

simulao uma avalanche de nmeros, que precisam ser tratados e analisados. A anlise dos resultados da simulao comumente realizada por especialistas caros e pouco disponveis. Para suavizar os problemas enfrentados nessa fase surgiram ferramentas computacionais, j disponveis em boa parte das linguagens, geradores e ambientes de simulao visuais (grficos e imagens). To somente a disponibilidade de ferramentas visuais no soluciona o problema de anlise de resultados. necessrio possuir profissionais com condies de realizar anlises concretas ao final do processo de Simulao. Nos ltimos anos tem ocorrido a utilizao de sistemas especialistas para desempenhar o trabalho dos analistas de resultados de Simulao. Esses sistemas especialistas, contendo o conhecimento de expertos na rea em estudo, analisam os resultados fornecidos pelo simulador, orientando o tomador de deciso. 1.2.2.9 Documentao e Implementao Uma das grandes falhas nos projetos, em geral, a apresentao ruim dos resultados para o usurio. Isso uma falha de implementao. O pouco tempo gasto na implementao normalmente no suficiente para as tarefas existentes nessa fase. Fazem parte dessas tarefas: lapidao e ajuste do modelo, treinamento do usurio e a garantia da validade dos resultados. Essa ltima tarefa, que s possvel com a implementao, tende a ser, segundo R.Shannon [1975] o problema mais difcil a ser enfrentado pelo analista. A documentao est intimamente ligada implementao. Alm de facilitar a implementao e a possvel necessidade de alteraes no modelo, auxilia o modelista em futuros projetos, alm de for-lo a questionar seus prprios procedimentos.

1.3 Simulando o SimuladorExerccio para entender os procedimentos de Controle da Simulao O tipo de simulao aqui tratado Simulao Discreta de Eventos Futuros. Vamos entender o que significa este tipo de simulao e qual a sua aplicao. Evento qualquer fato que altere o sistema em estudo. A chegada de um cliente a um posto de atendimento um evento. O trmino de atendimento de um cliente , tambm, um evento. A simulao discreta pois o relgio que registra o tempo simulado trabalha aos saltos, avanando o relgio sempre para o instante no qual ir acontecer o prximo evento.

Para entender melhor os procedimentos que controlam a simulao, considere o seguinte exemplo: O sistema composto de uma fila nica (como tudo em simulao analogia, pode ser uma fila de caixa numa agncia bancria, pode ser uma fila no balco de atendimento de uma agncia de correio, pode ser uma fila de navios que aguardam para serem descarregados num porto, pode ser uma fila de carros num pedgio, ...). 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 idia de faa o mais simples, considere dois eventos somente: Chegada de Cliente e Trmino de Atendimento. Caso o problema seja solucionado nesse grau de complexidade, timo, caso contrrio considera-se outros tipos de eventos, novos componentes do sistema e assim por diante.

Controle da SimulaoT= 0; Gerar CH ; Inserir na Lista (Chegada, CH); ENQUANTO T