Aplicação de Simulações
Aplicação de Simulações
Aplicação de Simulações
LARC-PCS/EPUSP 2004
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
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 )dx
a
I
a 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
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
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
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.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
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
Ferramentas de simulao Linguagens de programao: C, C++, FORTRAN, Java. Pacotes de simulao: Arena, Promode, Comnet, Optnet, etc. 2.7 Construir o Modelo
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
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.
LARC-PCS/EPUSP 2004
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
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
LARC-PCS/EPUSP 2004
PROCESSO:
Atividade:
Evento:
Chegada de um veculo
Evento:
Evento:
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.
Estao de Servio
c1 c3 c2 i1
c5
c4
10 t5
9 t4
6 t3
5 t2
2 t1
0 t0
LARC-PCS/EPUSP 2004
10
Tempo de simulao 0 1 2 3 4 5 6 7 8 9 10 11
Evento
Prox.Evento chegada
c1 c1 i1 c2 c3 f1 i2 f2 i3 c4 c5 f3 i4 c2
em t1=2 em t2=5
i1
em
0 0 0 1 2 2
c3 em t3=6 c4 em t4=9
i2 i3
em em
t=7 t=8 f2 f3
em em
t=8 t=11
1 1 0 1 2 2
c5 c6
em t5=10 em t6=12
i4
em
t=11 f4
em
t=13
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
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
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
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
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
5 Ferramentas de Simulao
5.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
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
6 Arena
Foi 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
O exemplo de um sistema com uma fila e um servidor pode ser representado no ARENA como:
Arrive
Chegada
Server
Servidor
Depart
Saida
Simulate
MM1 1000
Freqncias
Histograma de Frequncias
LARC-PCS/EPUSP 2004
17
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.
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
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
0 0 LARC-PCS/EPUSP 2004
X=F-1(U) 19
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/ .
LARC-PCS/EPUSP 2004
20
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:
LARC-PCS/EPUSP 2004
21
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
D
i=1
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
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) =
ri
i=1
(Di + Si )
i=1
ou ento
r(n) =
r (f t )
i=1 i
i=1
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) = ipi
i=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 do
nmero mdio de clientes na fila
q(n) =
iT
i= 0
T(n) Pode ser observado que os valores i Ti, correspondem s reas de cada retngulo da
iT
i=0
T (n )
Q(t)dt
0
T (n )
Q(t)dt
0
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
Q(t)
3 2 1 0
t
Utilizao 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) =
De forma anloga que foi feita no clculo de q(n), pode-se estimar u(n) como
T (n)
u(n) =
B(t )dt
0
T(n)
B(t)
1
LARC-PCS/EPUSP 2004
24
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 Exerccios
1. 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