aplicação de simulações

Upload: gina-provedel

Post on 09-Jul-2015

203 views

Category:

Documents


1 download

TRANSCRIPT

Modelagem e Simulao de Sistemas de Computacionais

Modelos de Simulao de Eventos Discretos

Estudo do comportamento de sistema atravs de construo de simuladores. 1 Modelos de SimulaoSimulador um algoritmo ou procedimento que representa o comportamento de um sistema em uma escala de tempo. Atravs de simulao, podem ser feitos o projeto, dimensionamento, avaliao de desempenho ou reengenharia de sistemas tais como: Sistemas de manufatura e de processos comerciais. Sistemas de computao, redes de comunicao de dados ou telefnicos. Sistemas de transporte: obras virias, metr, embarque e desembarque de mercadorias em portos. Sistemas on-line de auto-atendimento: home-banking, e-commerce, e-business. Empresas de prestao de servios: bancos, lanchonetes, postos de gasolina. Sistemas de defesa e equipamentos militares. 1.1 Modelos de Simulao Estticos e Dinmicos Os sistemas a serem tratados neste curso so sistemas de simulao discretos, dinmicos e estocsticos, denominados Sistemas de Simulao de Eventos Discretos. Antes de iniciarmos o estudo destes sistemas vamos identificar as categorias de modelos de simulao. Modelo de Simulao Esttico Representa o sistema em um instante determinado, isto , o modelo no varia ao longo do tempo. Exemplo: Clculo de Integral de funo pelo mtodo de Monte Carlo. Modelo de Simulao Dinmico Representa a evoluo do sistema ao longo do tempo. Exemplo: simulao de uma linha de montagem de veculos.

LARC-PCS/EPUSP 2004

1

Modelagem e Simulao de Sistemas de Computacionais

1.2 Modelos de Simulao Determinsticos ou Estocsticos Modelo de Simulao Determinstico Se o sistema no depende de nenhuma varivel probabilstica (aleatria). Modelo de Simulao Estocstico Se o sistema depende de variveis probabilsticas (aleatrias). Sistemas de computao, de redes de comunicao e de servios a clientes, entre outros, esto nesta categoria. Em geral utilizam filas de chegada de tarefas em que as chegadas ocorrem de acordo com alguma distribuio de probabilidade. 1.3 Modelos de Simulao Contnuos ou Discretos Modelo de Simulao Discreto Se o sistema depende de variveis que assumem valores discretos, isto , em um domnio de valores finitos ou enumerveis tais como o conjunto de nmeros inteiros. Modelo de Simulao Contnuo Depende de variveis que assumem valores contnuos, isto , em um domnio de valores contnuos tais como o conjunto de nmeros reais. 1.4 Modelos de Simulao de Tempo Real ou Simulado Os simuladores podem operar em duas modalidades de tempo: Tempo real A escala de tempo a real, isto os eventos ocorrem e so tratados na mesma escala de tempo correspondente ao sistema real. Simuladores de jogos ou para treinamento se enquadram nesta categoria. Nestes sistemas um operador humano interage com o simulador em tempo real. Tempo simulado No acompanha a escala de evoluo do tempo real. Um ano do tempo de simulao pode decorrer em poucos segundos de processamento. So utilizados para anlises de desempenho em que o interesse pelas medidas de desempenho.

LARC-PCS/EPUSP 2004

2

Modelagem e Simulao de Sistemas de Computacionais

Exemplo 1: Modelo de Simulao pelo Mtodo de Monte Carlo O mtodo de simulao de Monte Carlo utiliza a gerao de nmeros aleatrios para a simulao de processos ou efetuar clculos cuja frmula exata no disponvel. Foi originado na Segunda Guerra Mundial e aplicado ao desenvolvimento da bomba atmica. Um exemplo de utilizao para o clculo aproximado de integral de funo cuja resoluo analtica no pode ser determinada. Este um mtodo simulado esttico, estocstico e com valores contnuos. Mostraremos como funciona em no caso da integral de uma funo f(x).

f(xm)

f(x)b

I = f (x )dxa

Ia xm b x

Existe um ponto xm tal que a rea I, definida pela integral, igual rea do retngulo de lado (b-a) e altura f(xm). O clculo da integral de forma aproximada pelo mtodo de Monte Carlo ser feito sorteando-se aleatoriamente x1, x2,... xn , onde cada xi tem distribuio uniforme entre [a,b], e calculando-se a mdia da rea dos retngulos de lado (b-a) e alturas f(x1), f(x2), ... f(xn). O valor aproximado da integral calculado pela frmula I

(b a)f ( x )i=1 i

n

n

Aplicando-se o mtodo de Monte Carlo funo f(x) = sen(x) para calcular

I = sendx , cujo valor exato 2, obtm-se os seguintes valores obtidos em 60

execues da simulao, com diferentes valores de n: n 10 50 100 500 1000 10000 Integral de Sen(x) por Monte Carlo 1,2566 1,8221 1,9478 2,0986 2,0703 1,9955 (2 Monte Carlo) 0,7434 0,1770 0,0522 -0,0986 -0,0703 0,0045

LARC-PCS/EPUSP 2004

3

Modelagem e Simulao de Sistemas de Computacionais

1.5 Vantagens e Desvantagens da Simulao Vantagens Sistemas do mundo real com elementos estocsticos podem no ser descrito de forma precisa atravs de modelos matemticos que possam ser calculados analiticamente. Permite estimar ao desempenho de sistemas existentes sob condies de operao projetadas, por exemplo, para verificar o seu comportamento quando aumenta a demanda de servio. Permite manter maior controle sob as condies dos experimentos o que muitas vezes no possvel com o sistema real. Permite estudar o sistema durante um longo perodo de tempo simulado.

Desvantagens Cada execuo da simulao estocstica produz apenas estimativas dos parmetros analisados. O modelo de simulao em geral caro e consome muito tempo para desenvolver. Os resultados da simulao, quando apresentados em grandes volumes de dados, e com efeitos de animaes e grficos, podem levar a uma confiana nos resultados acima da justificada. Se o modelo no for uma representao vlida do modelo em estudo, este no ter utilidade, mesmo que os resultados causem boa impresso.

1.6 Causas de Insucesso no Desenvolvimento da Simulao Falha na obteno de um conjunto bem definido de objetivos no incio do estudo da simulao. Nvel inadequado de detalhes: o Pouco detalhamento ou o Muito detalhamento. Falha de comunicao com a gerencia do sistema a ser simulado durante o estudo da simulao. Interpretaes equivocadas por parte da equipe da simulao da operao do sistema a ser simulado. Falha de compreenso da simulao por parte da gerencia. Tratar a simulao de forma amadora, como um exerccio de curso. Falha em formar uma equipe com conhecimentos de metodologias e tcnicas de simulao. Falha na obteno de dados representativos do comportamento do sistema. Software de simulao inadequado. Software de simulao muito complexo e com documentao inadequada. Crena de que software de simulao sofisticado e com recursos amigveis, prescindem de conhecimentos tcnicos da teoria de simulao. Uso inadequado de animao.4

LARC-PCS/EPUSP 2004

Modelagem e Simulao de Sistemas de Computacionais

Falha na considerao dos fatores aleatrios no comportamento do sistema sendo simulado. Uso de distribuies incorretas, isto , que no correspondem ao comportamento real, como dados de entrada da simulao. Anlise dos dados de uma execuo da simulao utilizando frmulas que supes independncia (usualmente os dados de sada no so IID). Executar uma nica vez a simulao e considerar os dados obtidos como a resposta verdadeira. Utilizar medidas de desempenho inadequadas.

2 Metodologia de Anlise de Sistemas por SimulaoA metodologia a ser utilizada se baseia na definida no captulo 1. Nos prximos tpicos so detalhados alguns aspectos considerados importantes no processo de anlise e simulao. 2.1 Formular o problema e planejar a anlise Nas reunies de planejamento devem ser discutidos os seguintes itens que resultaro em um documento de especificao da anlise e simulao a ser realizada: Objetivo do sistema a ser modelado; Objetivos da anlise e simulao; Questes especficas a serem respondidas pelo estudo; Mtricas de desempenho a serem utilizadas para avaliar a eficcia de uma configurao de sistema; Carga a ser submetida ao sistema; Escopo do modelo; Configurao do sistema a ser modelado; Indicao de ferramentas a serem utilizadas na simulao; Cronograma para realizao do estudo e recursos necessrios.

2.2 Coletar dados Coletar informaes sobre a arquitetura do sistema e sobre os procedimentos operacionais: Consultar documentaes disponveis; Conversar com os especialistas no assunto (SME-Subject-Matter Experts); Conversar com pessoas que operam o sistema; Identificar os parmetros do sistema e os fatores a serem analisados; Planejar e realizar a coleta dos dados dos parmetros do sistema; Os dados podem ser resultantes de monitorao do sistema real ou projees sobre um sistema a ser desenvolvido.

LARC-PCS/EPUSP 2004

5

Modelagem e Simulao de Sistemas de Computacionais

2.3 Anlise estatstica dos parmetros Realizar anlises estatsticas dos parmetros do sistema e de carga. Esta anlise deve resultar na escolha de distribuies de probabilidades que representem os parmetros ou ento, caso no possam ser identificadas estas distribuies, obter amostras de dados a serem utilizados nas simulaes. Para a anlise estatsticas dos dados podem ser utilizados ferramentas e pacotes disponveis no mercado ou que so fornecidos com as ferramentas de simulao. 2.4 Definir o modelo Utilizando as informaes obtidas nos passos anteriores, definir um documento de modelo conceitual que especifica a concepo que se tem do sistema e tudo o que foi assumido. Os detalhes do modelo dependem de: Objetivos do projeto Medidas de desempenho Disponibilidade dos dados Questes de credibilidade das informaes obtidas Limitaes de recursos de computao Opinies dos especialistas SME Limitaes em tempo e dinheiro No precisa haver correspondncia 1 a 1 entre os elementos do modelo e o sistema real. 2.5 Validar o modelo conceitual Realizar um walk-through do modelo conceitual utilizando os documentos disponveis para garantir que o que foi assumido correto e completo. Apresentar o modelo aos gerentes, analistas e SMEs para que todos dem a aceitao do modelo proposto. Se existir algo que invalide o modelo voltar etapa 2.2 para realizar a correo necessria. 2.6 Escolha da Ferramenta de Simulao A escolha da ferramenta considera fatores tais como; Caractersticas da simulao a ser realizada; Caractersticas das ferramentas disponveis; Ambiente disponvel para simulao; Capacitao da equipe de projetistas que realizaro a implementao do simulador; Oramento disponvel para compra da ferramenta caso no exista disponvel; Tempo disponvel para realizar a simulao. LARC-PCS/EPUSP 2004 6

Modelagem e Simulao de Sistemas de Computacionais

Ferramentas de simulao Linguagens de programao: C, C++, FORTRAN, Java. Pacotes de simulao: Arena, Promode, Comnet, Optnet, etc. 2.7 Construir o Modelo

Custo da ferramenta Menor Maior

Custo do desenvolimento da simulao Maior Menor

Uma vez escolhida a ferramenta, o modelo deve ser detalhado, modelado e implementado. Neste caso podem ser utilizadas as metodologias de engenharia de software orientada a objeto ou tradicional, conforme a ferramenta escolhida. 2.8 Validar o Modelo Simulado Realizar execues piloto para validar o programa de simulao. Utilizar, caso exista, dados de outro sistema do qual se possua medida de desempenho e com o qual o sistema possa ser comparado. A equipe que desenvolveu a simulao bem como os especialistas SME devem revisar o modelo e verificar se os resultados esto corretos e dentro do esperado. Utilizar anlises de sensibilidade para determinar quais fatores tem impacto mais significativo sobre as medidas de desempenho e devem ser modelados com maior cuidado. Utilizar tcnicas de probabilidade e estatstica para analisar se os dados obtidos na simulao so aderentes aos dados obtidos de sistemas reais utilizados como referncia. Para isto podem ser utilizados ferramentas e pacotes disponveis no mercado ou que so fornecidos com as ferramentas de simulao. Se o modelo no for vlido voltar etapa 2.2. 2.9 Planejar os experimentos Para cada configurao de interesse, especificar: Durao ou nmero de passos de cada execuo. Durao do transitrio, isto , perodo inicial at o sistema entrar em regime estvel. Este perodo excludo das medidas. Nmero de execues independentes (com diferentes nmeros aleatrios) para permitir a determinao de intervalos de confiana.

LARC-PCS/EPUSP 2004

7

Modelagem e Simulao de Sistemas de Computacionais

2.10 Executar as simulaes de produo Executar as simulaes correspondentes aos experimentos planejados na etapa 2.9. 2.11 Analisar os dados de sada Determinar o desempenho das diversas configuraes do sistema. Comparar configuraes alternativas do sistema utilizando as tcnicas j utilizadas na etapa 2.8Documentar os resultados Documentar: O que foi assumido na etapa 2.1; O programa de simulao; A anlise dos dados de entrada e dos resultados. Apresentar os resultados do estudo aos gerentes e s demais pessoas envolvidas, atravs de: o Animaes do modelo; o Grficos e tabelas das anlises; Discusso da construo do modelo e do processo de validao para promover a sua credibilidade. Utilizar os resultados nos processos de tomada de deciso se estes forem vlidos e tiverem credibilidade.

3 Simulao de Sistemas de Eventos DiscretosOs sistemas a serem tratados neste curso atravs de simulao so sistemas Discretos, Dinmicos e Estocsticos, denominados Sistemas de Eventos Discretos.

Os objetos em um sistema de eventos discretos so chamados de entidades.

As entidades so caracterizadas pelos seus atributos.

A mudana de estado determinada pela ocorrncia de um evento em um tempo estocstico ou determinstico.

O estado do sistema definido pelos valores de seus atributos.

LARC-PCS/EPUSP 2004

8

Modelagem e Simulao de Sistemas de Computacionais

O objetivo de um modelo de simulao de eventos discretos reproduzir as atividades das entidades que compe o sistema e, a partir da, conhecer o comportamento e desempenho do sistema. Para isto precisamos definir o estado do sistema e as atividades que conduzem o sistema de um estado a outro. Na simulao discreta, a mudana de estado determinada pela ocorrncia de um evento em um tempo determinstico ou estocstico. PROCESSO

Atividade

Evento de chegada

Evento de entrada em servio

Evento de fim de servio

Exemplo 2: Entrada de Estacionamento de Shopping Center Em um Shopping Center chegam ao estacionamento 5 veculos por minuto, em horrio de almoo. Existe um nico bloqueio de entrada e os veculos que chegam entram em uma nica fila. Cada motorista, ao chegar sua vez, gasta 10 segundos entre avanar o veculo at o controle do bloqueio, pressionar o boto, retirar o ticket de entrada, esperar a cancela ser aberta e seguir em frente com o veculo. Perguntas: 1. Qual o tamanho mdio da fila de veculos? 2. Qual o tempo mdio que um motorista gasta desde que chega fila at entrar no estacionamento? 3. Quantos bloqueios devem ser colocados para melhorar o atendimento? Variveis de simulao:ti instante de chegada de um veculo fila Ai intervalo de tempo entre chegadas Ai = ti - ti-1 Si tempo de servio do usurio i, isto , tempo para obter o ticket e passar pela cancela Di espera do usurio i na fila de veculos ri tempo de resposta do usurio i, entre a chegada do veculo fila e a passagem pela

cancela.

ri = Di + Si fi

instante de passagem do veculo i pela cancela. fi = ti + ri9

LARC-PCS/EPUSP 2004

Modelagem e Simulao de Sistemas de Computacionais

Entrada de veculos no estacionamento

PROCESSO:

Atividade:

Passagem pelo bloqueio

Evento:

Chegada de um veculo

Evento:

O veculo avana at o controle da

Evento:

O veculo atravessa a cancela

Este exemplo pode ser generalizado para outros sistemas com uma fila onde os usurios ficam a espera e um servidor que realiza atendimento de um usurio de cada vez. Quando o servidor terminar o atendimento de um usurio, verifica se a fila est livre e inicia o atendimento do prximo usurio. Uma agencia de banco com um nico caixa tambm pode ser descrita da mesma maneira.

Fila Grfico dos eventos no tempo f2 i3 f1 i2

Estao de Servio

c1 c3 c2 i1

c5

c4

10 t5

9 t4

8

7

6 t3

5 t2

4

3

2 t1

1

0 t0

LARC-PCS/EPUSP 2004

10

Modelagem e Simulao de Sistemas de Computacionais

Tempo de simulao 0 1 2 3 4 5 6 7 8 9 10 11

Evento

Prox.Evento chegada

Prox.Evento Inic. Atend.

Prox.Evento Fim Atend.

c1 c1 i1 c2 c3 f1 i2 f2 i3 c4 c5 f3 i4 c2

em t1=2 em t2=5

Nmero Estado do na fila servidor livre 0 0 1livre livre ocupado ocupado ocupado ocupado ocupado livre ocupado livre ocupado ocupado ocupado livre ocupado

i1

em

t=2 f1em t=7

0 0 0 1 2 2

c3 em t3=6 c4 em t4=9

i2 i3

em em

t=7 t=8 f2 f3em em

t=8 t=11

1 1 0 1 2 2

c5 c6

em t5=10 em t6=12

i4

em

t=11 f4em

t=13

1

4 Simuladores de Eventos DiscretosOs principais modelos de Simulao de Eventos Discretos so os seguintes: a) b) Modelos orientados a evento: definido pelas mudanas de estado que podem ocorrem em cada evento. Modelos orientados a processo: definido pelo processo atravs do qual as entidades do sistema so conduzidas. Neste caso, o processo consiste da seqncia de eventos.

4.2 Simulador Orientado a Eventos Na simulao orientada a eventos existe um procedimento associado com cada tipo de evento no sistema. O simulador ciclicamente escala eventos, atualiza o relgio para o prximo evento a ocorrer e executa o procedimento associado ao evento. Os elementos de um simulador orientado a eventos so: Eventos Os eventos podem ser agendados para um determinado instante no tempo existindo uma lista dos prximos eventos a ocorrerem, ordenados por tempo de ocorrncia. A ocorrncia de um evento afeta o estado da simulao. Tambm so atualizados os contadores de estatsticas que permitem a gerao dos relatrios da simulao.

LARC-PCS/EPUSP 2004

11

Modelagem e Simulao de Sistemas de Computacionais

Estado do sistema Coleo de variveis de estado necessrias para descrever o sistema em um determinado momento no tempo. O estado do sistema pode ser visto como resultante do estado de seus componentes. Mecanismo de temporizao O avano de tempo, nos simuladores de tempo simulado, pode ser definido por Incrementos fixos de tempo: o relgio incrementado em intervalos fixos de tempo e aps o incremento verificado se existe um evento agendado para este momento. Prximo evento: o tempo incrementdo pela ocorrncia de um evento. mais eficiente que o anterior em termos de atualizao de tempos. Lgica de Simulao A lgica de simulao consiste em verificar o prximo evento agendado e atualizar o relgio de simulao e as demais variveis de estado do sistema. O trmino da execuo pode ser controlado atravs de um limite no tempo de simulao ou de um limite do nmero de eventos ocorridos. Ao final da simulao sero emitidos relatrios com os resultados da simulao. Mtodos estatsticos Conjunto de funes e procedimentos entre os quais se incluem variveis que armazenam informaes estatsticas para determinar o desempenho do sistema, geradores de nmeros aleatrios para diferentes distribuies de probabilidade e analisadores de dados de entrada e sada. Lgica de Simulao A simulao realizada manualmente no exemplo 2 o que se chama simulao orientada a evento. Na simulao orientada a evento, em cada instante a simulao definida por x que representa o estado da simulao, t que o relgio de simulao e L={(e1,t1), (e2,t2),...} que uma lista de eventos ei escalados para ocorrerem nos instante ti . A lista L mantida ordenada por ordem crescente de tempo. A Simulao Orientada a Eventos consiste das seguintes etapas: Passo 0: No inicio da simulao, define-se o estado inicial x = x0, o relgio de simulao T=0 e a lista L inicializada com todos os eventos viveis no estado x0. Passo 1: Retirar uma entrada de (ei,ti) de L com menor tempo ti.. Passo 2: Atualizar o tempo de simulao para o valor T= ti. LARC-PCS/EPUSP 2004 12

Modelagem e Simulao de Sistemas de Computacionais

Passo 3: Atualizar o estado da simulao de acordo com uma funo de transio de estado f. Sendo x o estado atual, o novo estado x = f(x,ei). Passo 4: Retirar da lista L todos os eventos que no so viveis no estado x. Passo 5: Acrescentar lista L em ordem crescente de tempo, todos os eventos viveis no estado x que ainda no estejam na lista. Ao acrescentar um evento (ek,tk) lista. O instante, tk de ocorrncia do evento ek deve ser gerado a partir de um gerador de nmeros aleatrios de acordo com a distribuio de ocorrncia do evento ek . Passo 6: Voltar ao passo 1 da simulao. O programa de simulao tambm inclui funes para contagens estatsticas e de emisso do relatrio ao final da simulao. 4.3 Simulador Orientado a Processos A operao deste simulador consiste da interao de um nmero de processos executando em paralelo. O gerenciamento de eventos implcito aos processos. O sistema de simulao prove mecanismos para manipular processos: colocar um processo em espera, escalar um processo e terminar um processo entre outras operaes. Poe esta razo, as linguagens utilizadas para este tipo de simulao costumam trabalhar com o conceito de processo ou thread. Os principais componentes de um simulador orientado a processo so: Entidades So objetos que requisitam servios. Exemplos: usurios em uma fila de banco, carros na entrada de um estacionamento, partes em um sistema de manufatura, mensagens em um sistema de computao. Atributos Informaes que caracterizam uma entidade em particular. Exemplo: modelo de item a ser produzido. Processos Aes realizadas sobre a entidade ao longo da simulao. Recursos Objetos que provm servios s entidades. Exemplo: mquinas em um sistema de manufatura, caixa de um banco, UCP de um computador, linha de comunicao de dados.

LARC-PCS/EPUSP 2004

13

Modelagem e Simulao de Sistemas de Computacionais

Filas Local onde as entidades esperam por um recurso. A poltica de atendimento mais comum a FCFS (First Come First Served).Tipo de sistema Manufatura Comunicaes Aeroporto Supermercados

Entidades Partes Mensagens Avies Compradores

Atributos

Recursos

Filas

Cdigo de Mquinas, peas, datas trabalhadores de entrega Destino, comprimento Ns, enlaces da mensagem Nmero do vo Pistas, Capacidade terminais Tamanho compra da Caixas

Filas, estoques Buffers Filas de passageiros, de avies. Filas

5 Ferramentas de Simulao5.1 Linguagens e bibliotecas de funes de simulao Os projetistas em geral j conhecem uma linguagem de uso geral. A implementaro do modelo mais eficiente. O custo do software menor mas o de projeto em geral maior. Permite maior flexibilidade. Exemplos: C C++ FORTRAN Java Biblioteca Simlib para C Biblioteca JavaSim para Java

A biblioteca de simulao Simlib foi desenvolvida em C por W. David Kelton e Averill M. Law, apresentada no livro: Law, A. M., Kelton, W. D., "Simulation Modeling and Analysis", 3rd ed., McGraw-Hill Companies Inc, 2000, ISBN 0-07-059292-6, 760p. Foi adaptada da SUPERSIMLIB, escrita por Gregory Glockner. Possui funes para manipular listas de eventos. 5.2 Pacotes de Simulao Possuem embutidas caractersticas necessrias simulao que diminuem o tempo de desenvolvimento do modelo de simulao. Possuem recursos adicionais para visualizao e animao e para tratamento de dados. Em geral exigem aprendizado da ferramenta. Exemplos:

LARC-PCS/EPUSP 2004

14

Modelagem e Simulao de Sistemas de Computacionais

Pacotes de Uso Geral Arena Extend AweSim Symix GPSS/H Mixeo Saint MODSIM III, CACI e Marti SES/workbench SIMUL8 SLX Pacotes de Uso Geral Orientados a Objeto SIMPLE++ MODSIM III Pacotes de uso em Manufatura AutoMod Extend+ Manufacturing ProModel Quest Witness Pacotes de uso em Redes de Comunicao NS2 (ferramentas escritas em C++ e com fonte aberto) COMNET III (descontinuado) Opnet IT Guru OPNET Modeler Pacotes de uso em Reengenharia de processos e servios Arena Business Edition Extend + BPR ProcessModel ServiceModel (ProModel) SIMPROCESS Pacotes de uso em Sade MedModel (ProModel) Pacotes de uso em Call Center Arena Call Center Edition Pacotes de uso em Animao Proof Animation

LARC-PCS/EPUSP 2004

15

Modelagem e Simulao de Sistemas de Computacionais

6 ArenaFoi lanado pela empresa Systems Modelling em 1993 e atualmente pertence Rockwell. sucessor do SIMAN, desenvolvido em 1982. Possui uma interface grfica GUI que permite a modelagem do sistema atravs de mdulos. Possui interface para Microsoft VBA permitindo integrao com programas que suportam Active X. A verso Arena 3 Academic, disponvel para uso livre de pagamento, e que ser utilizada nos exemplos, possui limitaes no nmero de entidades que podem ser criadas. 6.1 Ferramentas do Arena Arena: A ferramenta de modelagem e simulao. Input Analyser: Realiza a anlise estatstica dos dados de entrada do sistema permitindo determinar a distribuio que mais se ajusta aos dados para entrada no simulador. Output Analyser: Realiza a anlise estatstica dos resultados da simulao. Arena Viewer: Visualizador da simulao. 6.2 Elementos da Modelagem em Arena Entidades: so as pessoas, transaes ou tarefas que se movem ao longo do sistema. Estaes de trabalho: onde ser realizado algum servio. Fluxo: caminhos que a entidade ir percorrer ao longo de estaes.

Estaes de trabalho

Entidade Entidade

LARC-PCS/EPUSP 2004

16

Modelagem e Simulao de Sistemas de Computacionais

O exemplo de um sistema com uma fila e um servidor pode ser representado no ARENA como:

ArriveChegada

ServerServidor

DepartSaida

SimulateMM1 1000

7 Escolha das Distribuies de Probabilidade dos Parmetros de EntradaAs aplicaes de simulao, em geral, dependem de parmetros de entrada no determinsticos, isto , que so variveis aleatrias. Exemplo: em comunicao de dados, a distribuio dos intervalos de chegada de mensagens, tipos de mensagens e tamanho de mensagens variam aleatoriamente de acordo com distribuies de probabilidade. Quando for possvel realizar observao do sistema real pode-se obter dados das variveis aleatrias de entrada que sero representados atravs de histograma de freqncias.1000

Freqncias

900 800 700 600 500 400 300 200 100 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Histograma de Frequncias

Intervalos de chegada (seg)

LARC-PCS/EPUSP 2004

17

Modelagem e Simulao de Sistemas de Computacionais

Existindo os dados observados do sistema real o seu uso na simulao pode ser feito de uma das formas: 1. Utilizar os prprios dados observados na simulao. Neste caso constri-se arquivos com os dados que alimentam o simulador. 2. Ajustar uma funo de distribuio emprica aos dados observados. 3. Atravs de tcnica de inferncia estatstica determinar uma distribuio terica. A partir de dados observados podemos determinar distribuies de probabilidades que sejam aderentes aos dados observados. Observando o histograma de freqncia podemos consideram possveis distribuies de probabilidades que sejam aderentes ao mesmo. Para isto podem ser utilizados os testes de aderncia tais como Chi-quadrado e Kolmogorov-Smirnov. A realizao destas anlises pode ser feita utilizando-se pacotes de estatstica que j possuem os testes usuais implementados.

8 Gerao de Nmeros Aleatrios (Randmicos)Uma vez que tenham sido determinadas as distribuies de probabilidade dos parmetros de entrada, o simulador pode ser implementado utilizando estas distribuies. Para isto, precisamos de geradores de nmeros aleatrios com as distribuies dos parmetros de entrada. 8.1 Geradores de nmeros aleatrios entre [0,1] Em geral, as bibliotecas de linguagens de programao, possuem um gerador de nmeros aleatrios uniformemente distribudos entre 0 e 1. Se a linguagem escolhida no possui um gerador de nmeros aleatrios ento se pode implementar um. A tcnica mais conhecida para isto a que se denomina de Congruncia Linear, proposta por D. H. Lehmer em 1951 e baseada na seguinte relao recursiva: Xk+1 = (a Xk + c) mod m para k = 0, 1, 2, ...

Onde a um multiplicador, c um incremento e m o mdulo. X0 o valor inicial denominado semente. Todos os nmeros so inteiros no negativos. Deve ser observado que os nmeros gerados sero nmeros inteiros no intervalo [0, m-1]. Para a gerao de nmeros aleatrios {U1, U2, ...} no intervalo [0,1] basta fazer Uk= Xk/m. Na verdade, todos os geradores computacionais devem ser considerados pseudoaleatrios, pois partindo da mesma semente, obtm-se a mesma seqncia de nmeros. No caso da tcnica proposta para gerao de nmeros aleatrios entre 0 e 1, podemos obter apenas os valores 0, 1/m, 2/m, ..., (m-1)/m. Notar que, com esta tcnica, a LARC-PCS/EPUSP 2004 18

Modelagem e Simulao de Sistemas de Computacionais

probabilidade de ocorrer um valor entre 0,1/m e 0,9/m 0 o que contraria a definio da distribuio uniforme entre [0,1]. Para reduzir o efeito destes problemas, deve-se escolher a, c e m de forma adequada. O valor de m deve ser o maior possvel. Em geral utiliza-se m que seja potncia de 2 para facilitar as operaes. Assim, se m=2n para algum inteiro n, o clculo p mod m consiste em se selecionar os n bits mais direita do nmero p. Tambm se pode escolher c=0 que a pseudo-aleatoriedade do gerador ser pouco afetada. A questo agora Como obter nmeros aleatrios com uma determinada distribuio de probabilidade considerando que existe disponvel a funo de gerao de nmeros aleatrios com distribuio uniforme. Mtodos disponveis: Mtodo de Transformada Inversa: Frmula de gerao a partir da inversa da funo distribuio de probabilidade. Mtodo de Aceitao/Rejeio: Gera uma amostra de nmeros aleatrios no intervalo desejado e aceita o subconjunto da amostra que atende funo de distribuio de probabilidades. Mtodo da Convoluo: Obtm a distribuio atravs de soma de outras distribuies. Mtodo de Composio: Obtm a distribuio atravs de soma ponderada de outras distribuies. Mtodo baseado em propriedades especiais: Exemplo: Atravs de frmula que transforma uma distribuio em outra.

8.2 Mtodo de Transformada Inversa Seja F(X) a funo de distribuio de probabilidade da qual se quer obter a amostra X. Consideremos que a varivel aleatrio U = F(X) possui distribuio uniforme no intervalo [0, 1] (lembrar que F(x) indica uma probabilidade). F(x)1

U

0 0 LARC-PCS/EPUSP 2004

X=F-1(U) 19

x

Modelagem e Simulao de Sistemas de Computacionais

Dado U no intervalo [0,1], U=F(X) para algum X. Desde que a inversa F-1(U) sempre existe, podemos escrever: P[ X x ] = P[ F-1(U) x ] = P[ U F(x) ] Como U U[0,1], isto P[U u] = u para todo u no intervalo [0,1], ento para qualquer F(x) no intervalo [0,1], tem-se P[ U F(x) ] = F(x) E ento, P[ X x ] = F(x) Concluindo, para gerar a amostra aleatria X geramos um nmero aleatrio u e resolvemos a equao u=F(x) , isto , obtemos o valor de x atravs de x = F-1(u). Exemplo 3: Gerao de nmeros aleatrios exponenciais A funo de distribuio de probabilidade de uma varivel aleatria exponencial F(x ) = 1 e x onde 1/ o valor mdio da varivel x. Fazendo F(x) = u , temos

x = (1 / ) ln(1 u)

Assim se u tem distribuio uniforme no intervalo [0,1], ento x, calculado pela equao acima, tem distribuio exponencial com mdia 1/ .

9 Construo de Simuladores de Eventos DiscretosEm lugar de se utilizar pacotes, a simulao poder ser feita atravs da construo de um programa simulador especfico.

Exemplo 4: Simulador de Sistema de Fila nica com um ServidorO exemplo mostra uma estrutura muito comum que um sistema de fila com um servidor.

Fila Cliente Chegada de clientes

Servidor Sada de clientes

LARC-PCS/EPUSP 2004

20

Modelagem e Simulao de Sistemas de Computacionais

O sistema de fila se caracteriza por um processo de chegada de clientes e um processo de servio. Estes processos podem ser definidos por distribuies de probabilidade. Exemplos:

Caixas de atendimento em um banco Caixas de supermercado Redes de comunicao de dados Entrada e sada de estacionamentos Em aeroportos: filas de embarques de passageiros, filas para decolagens e aterrissagens de avies. Sistemas de manufatura: filas de servios para serem executados em estaes de fabricao ou montagem.

Neste sistema consideramos que os intervalos de chegada de clientes A1, A2, ..., An, so variveis aleatrias independentes e identicamente distribudos (IID). Os tempos de servio S1, S2, ..., Sn, tambm so variveis aleatrias independentes e identicamente distribudos (IID) e tambm independentes dos tempos de chegada A disciplina de atendimento aos clientes da fila FCFS (First Come First Served) tambm chamada FIFO (First In First Out). Outras disciplinas de atendimento so possveis (LCFS, Round-robin,...). Considerando a estrutura proposta do programa de simulao orientada a evento, devem ser implementados os procedimentos correspondentes aos eventos que causam mudanas no estado do sistema:

Procedimento de Evento de Chegada Procedimento de Evento de Sada

Procedimento de Evento de ChegadaDefinir o tempo do prximo evento de chegada; se o servidor est Ocupado ento { Somar um ao nmero de clientes na fila Se a fila est cheia ento retorna (ERRO); Armazenar instante de chegada deste Cliente } seno {/* realiza o atendimento do cliente */ definir a espera do cliente em fila como 0 acumular estatsticas somar 1 ao contador de clientes atendidos mudar o estado do servidor para ocupado definir o tempo de fim de atendimento do cliente } retornar

LARC-PCS/EPUSP 2004

21

Modelagem e Simulao de Sistemas de Computacionais

Procedimento de Evento de Sadase a fila esta vazia ento mudar o estado do servidor para livre seno {/* selecionar um cliente da fila para execuo */ subtrair 1 do contador de clientes na fila calcular o tempo de espera em fila do cliente calcular o tempo de servio do acumular estatsticas mudar o estado do servidor para ocupado somar 1 ao contador de clientes atendidos avanar a fila uma posio para a frente } retornar

cliente

A simulao terminar aps a sada do sistema do n-simo cliente. No Anexo D encontra-se do cdigo em C deste simulador. 9.1 Obteno de medidas de Desempenho Durante a execuo da simulao sero atualizadas variveis de contagem que permitem o clculo de medidas de desempenho. Quatro medidas de desempenho para avaliao de sistemas de fila que podem ser utilizadas so: Tempo mdio dos clientes na fila Tempo mdio dos clientes no sistema Nmero mdio de clientes na fila Utilizao do servidor

Tempo Mdio dos Clientes na Fila Em uma execuo do simulador, ou do sistema que o simulador representa, so observados os valores D1, D2, ..., Dn dos tempos de filas dos n clientes.O tempo mdio dos clientes da fila obtido a partir de uma seqncia de n observaes pode ser diferente do obtido em outra rodada de observaes. Assim, sendo d(n) o valor esperado do tempo mdio em fila em n observaes, d(n) uma varivel aleatria que

pode ser estimada pela frmula d(n) =

Di=1

n

i

n

Tempo Mdio dos Clientes no Sistema Em uma execuo do simulador, podem ser observados os valores S1, S2, ..., Sn dos tempos de servio dos n clientes. O tempo ri que o cliente i ficou no sistema calculado como: ri= Di + Si

LARC-PCS/EPUSP 2004

22

Modelagem e Simulao de Sistemas de Computacionais

Outra forma de calcular o valor ri atravs de observao dos tempos ti de entrada do cliente i no sistema e fi que o tempo de sua sada do sistema e neste caso,

ri= fi - ti Assim, sendo r(n) o valor esperado do tempo mdio no sistema em n observaes, r(n) uma varivel aleatria que pode ser estimada pela frmula: r(n) =

rii=1

n

n

=

(Di + Si )i=1

n

n

ou ento

r(n) =

r (f t )i=1 i

n

n

n

=

i=1

i

i

n

Nmero Mdio dos Clientes na Fila q(n) uma varivel aleatria que indica o numero mdio de clientes na fila para uma amostra de n clientes. Para se obter uma estimativa de q(n) deve-se considerar a proporo do tempo que a fila ficou com i clientes, para todos valores de i.A estimativa de q(n)

q(n) = ipii=0

T O clculo da estimativa da proporo p i feito como pi = i onde Ti o tempo T(n) que a fila ficou com i clientes e T(n) = T0+T1+T2+... +TnAssim, a estimativa donmero mdio de clientes na fila q(n) =

iTi= 0

i

T(n) Pode ser observado que os valores i Ti, correspondem s reas de cada retngulo da

figura a seguir, desta forma

iTi=0

T (n )

i

=

Q(t)dt0T (n )

e o novo valor do estimador de q(n) q(n) =

Q(t)dt0

T(n)

Esta frmula pode ser calculada ao longo da simulao como a soma das reas dos retngulos da figura.

LARC-PCS/EPUSP 2004

23

Modelagem e Simulao de Sistemas de Computacionais

Q(t)3 2 1 0

tUtilizao do Servidor A utilizao do servidor, indicada como u(n), definida como a porcentagem do tempo que o servidor ficou ocupado ao longo da observao de n clientes.Define-se B(t) como,

B(t) =

1 se o servidor est ocupado no tempo t 0 se o servidor est livre no tempo t

De forma anloga que foi feita no clculo de q(n), pode-se estimar u(n) comoT (n)

u(n) =

B(t )dt0

T(n)

A integral da frmula a soma das reas dos retngulos da figura a seguir.

B(t)1

0

t

LARC-PCS/EPUSP 2004

24

Modelagem e Simulao de Sistemas de Computacionais

10 Bibliografia[1] Jain, R., The Art of Computer Systems Performance Analysis, John Wiley & Sons Inc, ISBN: 0-471-50336-3, 1991, 685 p. [2] Law, A. M., Kelton, W. D., "Simulation Modeling and Analysis", 3rd ed., McGraw-Hill Companies Inc, 2000,ISBN 0-07-059292-6, 760p. [3] Cassandras, C. G., Discrete Event Systems: Modeling and Performance Analysis, Aksen Associates Incorporated Publishers, 1993 , ISBN: 0-256-11212-6, 790p. [4] Soares, L.F.G., Modelagem e Simulao Discreta de Sistemas, Editora Campus, 1992, ISBN 85-7001-703-0, 250p. [5] Kelton, W. D., Sadowski, R. P., Sadowski, D. A., "Simulation with Arena", McGraw-Hill Companies Inc, 1998. [Prad 99] [6] Prado, D., Usando o ARENA em Simulao, Editora de Desenvolvimento gerencial, Belo Horizonte, 1999, ISBN 85-86948-19-5, 284p. [7] Magalhes, M. N., Lima, A. C. P., Noes de Probabilidade e Estatstica, 3 ed,. IME-USP, So Paulo, 2001, 375p.

11 Exerccios1. Simule, utilizando o pacote de simulao Arena, um posto Lava Rpido de automveis. Para isto utilize as seguintes etapas: a. Observe o funcionamento do posto durante um determinado perodo e identifique as etapas realizadas, o nmero de funcionrios em cada etapa, o tempo de durao de cada etapa e o intervalo de chegada de automveis. b. A partir dos dados obtidos identifique distribuies que sejam aderentes a estes dados. c. Modele e implemente o simulador, utilizando as distribuies e parmetros medidos nas etapas anteriores. d. Planeje os experimentos, execute o simulador e obtenha estatsticas de operao: tempos mdios, nmero de automveis na fila, etc. e. Realize anlises dos resultados tais como: como o aumento na taxa de chegada de carros influencia o tempo total. Faa grficos. Como deveria ser dimensionado o posto se o intervalo mdio entre chegadas casse pela metade. f. Como voc modificaria o simulador para obter dados financeiros de manuteno mensal do posto? 2. Foram feitas as seguintes observaes de intervalos de chegada.5,7; 7,8; 8,0; 7,7; 5,0; 6,1; 8,0; 2,6; 3,2; 3,4; 7,7; 7,6; 7,2; 3,2; 7,6; 3,3; 6,8; 6,8; 4,4; 5,2; 4,5; 5,5; 4,1; 6,9; 7,9; 5,1; 3,7; 5,3; 3,3; 4,1; 5,7; 5,6; 4,4; 7,1; 4,1; 7,2; 4,6; 3,4; 6,6; 5,2.

a. Faa o histograma dos dados. b. Determine para os intervalos de chegada, as funes: Funo densidade de probabilidade f(x) Funo distribuio de probabilidades F(x) c. Determine um gerador de nmeros aleatrios para gerar intervalos de acordo com a distribuio observada, utilizando o mtodo da transformada inversa.

LARC-PCS/EPUSP 2004

25