Modelação e Simulação de Sistemas -...

144
Modelação e Simulação de Sistemas - Tópicos Computação Científica Modelação e Simulação de Sistemas - Tópicos - A simulação de sistemas - Modelos de simulação - Propriedades dos modelos de simulação - Classificação dos modelos de simulação - Modelos de simulação dinâmicos discretos - Modelos de simulação contínuos - Simulação discreta e contínua combinada - Modelos de simulação estáticos Capítulo 4. Modelação e Simulação de Sistemas 1/21

Transcript of Modelação e Simulação de Sistemas -...

Modelação e Simulação de Sistemas - Tópicos Computação CientíficaModelação e Simulação de Sistemas - Tópicos- A simulação de sistemas- Modelos de simulação- Propriedades dos modelos de simulação- Classificação dos modelos de simulação- Modelos de simulação dinâmicos discretos- Modelos de simulação contínuos- Simulação discreta e contínua combinada- Modelos de simulação estáticosCapítulo 4. Modelação e Simulação de Sistemas 1/21

Modelação e Simulação de Sistemas - Tópicos Computação CientíficaModelação e Simulação de Sistemas - Tópicos- A simulação de sistemas- Modelos de simulação- Propriedades dos modelos de simulação- Classificação dos modelos de simulação- Modelos de simulação dinâmicos discretos- Modelos de simulação contínuos- Simulação discreta e contínua combinada- Modelos de simulação estáticos: Método de Monte-CarloCapítulo 4. Modelação e Simulação de Sistemas 2/21

A simulação de sistemas Computação CientíficaA simulação de sistemas- A simulação computacional de sistemas, ou simplesmente simulação, consiste na utilização dedeterminadas técnicas matemáticas, utilizadas em computadores digitais, as quais permitem imitar ofuncionamento de praticamente qualquer tipo de operação ou processo (sistemas) do mundo real.- Definição formal:Simulação é o processo de- projetar um modelo computacional de um sistema real e - conduzir experiências com este modelo com o propósito de - entender o seu comportamento e/ou - avaliar estratégias para a sua operação.Desta forma, entende-se a simulação como um processo mais amplo, para - descrever o comportamento do sistema; - construir teorias e hipóteses considerando as observações efetuadas;- usar o modelo para prever o comportamento futuro do sistema, com alterações no sistema.Capítulo 4. Modelação e Simulação de Sistemas 3/21

A simulação de sistemas Computação Científica- As razões de usar modelos de simulação:- Sistema real inexistente- a simulação poderá ser usada para planear o futuro sistema; por exemplo, um novo hospital ou uma nova fábrica.- Experimentar com o sistema real é dispendioso- o modelo poderá indicar, com custos muito mais baixos;por exemplo, quais os benefícios de se investir num novo equipamento.- Experimentar com o sistema real não é apropriado- exemplos típicos são os planeamentos - do atendimento de situações de emergência e - da assistência a um desastre aéreo num aeroporto. Não se pode provocar um desastre para testar planos de emergência.Capítulo 4. Modelação e Simulação de Sistemas 4/21

A simulação de sistemas Computação Científica- As técnicas usadas são facilmente compreensíveis e justificáveis, devido a vários fatores:- Tempo: - é possível realizar experiências, que se realizadas sobre o sistema real consumiam anos;- Custo:- geralmente o custo de execução é muito baixo, quando comparado com custo sobre o sistema real;- Impossibilidade de experimentação direta: - experiências diretas no sistema real não podem ser realizadas por questões de segurança, tempo, acesso,inexistência, etc.;- Visualização: - os computadores oferecem recursos que facilitam a visualização dos resultados de uma simulação e o estadodo sistema durante a execução do modelo;- Repetição: - depois de construído, o modelo de representação pode ser executado várias vezes a um custo muito baixo e deforma relativamente rápida;- Interferência: - mais flexível para a realização de mudanças do que o sistema real;- Semelhança com o realidade: - a perceção de que o comportamento do modelo de simulação é muito semelhante ao sistema real.Capítulo 4. Modelação e Simulação de Sistemas 5/21

A simulação de sistemas Computação Científica- Os modelos de simulação podem ser considerados como uma descrição de sistemas reais. - A execução de modelos de simulação em computador tem potencial para fornecer resultados muitoprecisos, sem ser necessário interferir no sistema real. - Tais resultados, quando analisados estatisticamente, produzem informações que podem contribuirgrandemente para a tomada de decisões que visam a resolução de problemas.- Considerando os modelos de simulação como um dos métodos de representação de sistemas, pode seradotado o seguinte conceito:“Simulação é uma técnica numérica para realizar experiências num computador digital, a qual envolvecertos tipos de modelos lógicos que descrevem o comportamento de um sistema sobre extensos intervalosde tempo.”Capítulo 4. Modelação e Simulação de Sistemas 6/21

Modelos de simulação Computação CientíficaModelos de simulação- A simulação de sistemas pode ser dividida nas seguintes etapas básicas:- Problema:- identificação do problema apresentado pelo sistema em estudo e das partes (subsistemas) que interferem noproblema (envolve recolha de amostras);- Estudo do sistema:- descrever o sistema em termos de componentes, atividades, entidades, eventos e restrições, propósitos quemotivaram o uso da simulação;- Modelo:- construção do modelo de representação do sistema em estudo, o qual precisa ser validado;- Solução:- realizar experiências sobre o modelo construído e utilizar as informações resultantes para propor soluçõespara o problema real;- Operacionalizar solução:- executar alterações no sistema real com base nos resultados da simulação.Capítulo 4. Modelação e Simulação de Sistemas 7/21

Modelos de simulação Computação Científica- Os objetivos essenciais do estudo das técnicas de simulação de sistemas concentram-se principalmente - nas atividades de estudo do sistema real,- na construção do modelo e- na execução de experiências sobre o modelo.Capítulo 4. Modelação e Simulação de Sistemas 8/21

Modelos de simulação - Sistema Computação CientíficaModelos de simulação - Sistema- O que é um sistema?- Quais são os sistemas passíveis de serem modelados e analisados através da simulação?- Para Taylor, um sistema pode ser definido como“um conjunto de objetos, como pessoas ou máquinas, por exemplo, que atuam e interagem com aintenção de alcançar um objetivo ou um objetivo lógico”. - São inúmeros os sistemas que podem ser resolvidos usando modelos de simulação, como:- Sistemas de produção:- manufaturação e montagem; movimentação de peças e de matéria prima; alocação de mão de obra;- Sistemas de transporte e gestão de stocks:- redes de distribuição; armazéns e entrepostos; frotas;- Sistemas computacionais:- redes de computadores; redes de comunicação; gestores de bases de dados;- Sistemas administrativos:- seguradoras; operadores de crédito; agências financeiras; - Sistemas de prestação de serviços diretos ao público:- hospitais; bancos; restauração; serviços de emergência; serviços de assistência jurídica;Capítulo 4. Modelação e Simulação de Sistemas 9/21

Modelos de simulação - Modelo Computação CientíficaModelos de simulação - Modelo- Através da execução de um modelo, é possível fazer uma estimativa do comportamento futuro destesistema – esta execução chama-se Simulação. - A experimentação não se pode comparar à simulação:- a experimentação é caracterizada por tentativas de mudanças no próprio sistema, a simulação é executada sobre uma representação do sistema;- a experimentação pode ter um custo muito elevado, o que justifica, na maioria dos casos, a construção de modelos de simulação.- Perante os resultados da execução de um modelo de simulação, - são realizadas análises de novas situações sobre as quais se tem pouco conhecimento, o que permite - fornecer dados para a conceção de novas regras ou - o ganho de experiência no projeto do próprio modelo. Capítulo 4. Modelação e Simulação de Sistemas 10/21

Modelos de simulação - Modelo Computação Científica- Os modelos - devem também incorporar elementos reais de forma simples, - mantendo uma relação custo x benefício coerente. - Deve-se evitar a construção de um modelo- muito complexo, que dificulte ou impossibilite, a sua compreensão e manipulação, ou- demasiado simples, que não represente as propriedades desejáveis do sistema em estudo.Capítulo 4. Modelação e Simulação de Sistemas 11/21

Propriedades dos modelos de simulação Computação CientíficaPropriedades dos modelos de simulação- Um modelo deve conter os aspetos importantes do sistema real, em que a sua complexidade- deve possibilitar a compreensão do modelo, e - deve possibilitar a manipulação do modelo. - Essa característica pode ser difícil de ser alcançada, pois - modelos realistas raramente são simples, e - modelos simples raramente são realistas.- No que se refere aos modelos matemáticos para simulação em computadores, estes são constituídos por4 elementos:- componentes,- variáveis,- parâmetros e- relações funcionais.Capítulo 4. Modelação e Simulação de Sistemas 12/21

Elementos de um modelo de simulação Computação CientíficaElementos de um modelo de simulação- Componentes- representam a parte do modelo sobre a qual são realizados os estudos;- tendem a variar muito, dependendo do sistema que está sendo simulado;- por exemplo, num sistema de gestão de redes, as componentes podem ser:- os objetos geridos, - os agentes de gestão e - as aplicações geridasCapítulo 4. Modelação e Simulação de Sistemas 13/21

Elementos de um modelo de simulação Computação Científica- Variáveis- são utilizadas para relacionar os componentes entre si;- podem ser classificadas como: exógena, de estado e endógena.- Variáveis exógenas - são as variáveis independentes ou de entrada do modelo;- podem ser classificadas como controláveis e não controláveis;- as controláveis são as que podem ser manipuladas ou controladas; - as não controláveis são geradas pelas circunstâncias nas quais o sistema modelado existe. - Variáveis de estado- descrevem o estado do sistema ou dos seus componentes.- Variáveis endógenas- são as dependentes ou de saída do sistema.Capítulo 4. Modelação e Simulação de Sistemas 14/21

Elementos de um modelo de simulação Computação Científica- Parâmetros- são variáveis exógenas controláveis;- devem ser determinados pelas condições do problema ou pelas entidades encarregues da decisão.- Relações funcionais - descrevem as interações das variáveis com os componentes.Capítulo 4. Modelação e Simulação de Sistemas 15/21

Classificação dos modelos de simulação Computação CientíficaClassificação dos modelos de simulação- Os modelos de simulação são classificados em três grupos: - determinísticos ou estocásticos, - estáticos ou dinâmicos, e - discretos ou contínuos.- Um modelo pode ser estocástico, dinâmico e discreto:- é o caso dos modelos de simulação discretos.Capítulo 4. Modelação e Simulação de Sistemas 16/21

Classificação dos modelos de simulação Computação Científica- Modelos determinísticos - as variáveis exógenas e endógenas não podem ser variáveis aleatórias;- as características operacionais devem ser relações exatas e não funções de densidade de probabilidade;- são computacionalmente menos exigentes do que os modelos estocásticos;- podem geralmente ser resolvidos usando técnicas técnicas analíticas/exatas.- Modelos estocásticos - pelo menos uma característica operacional é dada por uma função de probabilidade;- geralmente são mais complexos que os modelos determinísticos;- a simulação é mais adequada como método de análise da solução para estes modelos;- estes modelos são adequados à geração aleatória de dados.Capítulo 4. Modelação e Simulação de Sistemas 17/21

Classificação dos modelos de simulação Computação Científica- Modelos estáticos- não consideram a variável de tempo;- a maioria dos modelos estáticos são completamente determinísticos;- as soluções podem normalmente ser obtidas por técnicas analíticas/exatas diretas.- Modelos dinâmicos - são modelos que tratam de interações que são variáveis com o tempo (ocorrência de uma ordem temporal entre eventos).Capítulo 4. Modelação e Simulação de Sistemas 18/21

Classificação dos modelos de simulação Computação Científica- Modelo discreto - se todas as variáveis de estado têm os seus valores alterados apenas num número contável de instantes detempoCapítulo 4. Modelação e Simulação de Sistemas 19/21

Classificação dos modelos de simulação Computação Científica- Modelo contínuo- se todas as variáveis de estado têm os seus valores alterados a qualquer instante de tempo; pode ser- contínuo no tempo (os valores das variáveis dependentes estão sempre disponíveis a qualquer instante)- discreto no tempo (os valores das variáveis dependentes estão disponíveis apenas em instantes específicos)Capítulo 4. Modelação e Simulação de Sistemas 20/21

Classificação dos modelos de simulação Computação Científica- Modelo misto- se algumas variáveis de estado têm os seus valores alterados a qualquer instante de tempo e outras apenas num número contável de instantes de tempoCapítulo 4. Modelação e Simulação de Sistemas 21/21

Modelos de Simulação Dinâmicos Discretos - Tópicos Computação CientíficaModelos de Simulação Dinâmicos Discretos - Tópicos- Componentes de um modelo de simulação- Tipos de modelação (orientada ao evento, à atividade e ao processo)- Modelação orientada ao Evento- Modelação e implementação de um modelo de simulação- Nível de detalhe dos modelos de simulação (aspetos do sistema real incluídos no modelo)- Modelos de simulação com filas de espera- Estrutura de uma fila- Mecanismos de escalonamento- Centros de serviço- Análise de dados de entrada (inputs)- Análise de resultados (outputs)- Medidas de desempenho típicasCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 1/112

Componentes de um modelo de simulação Computação CientíficaComponentes de um modelo de simulação- Um modelo de simulação, - é uma metodologia para modelar a evolução de um sistema ao longo do tempo,- em que as variáveis de estado mudam instantaneamente em instantes particulares (discretos) de tempo. - Os componentes de um modelo de simulação são os seguintes:- Entidades- Atributos- Atividades- Estado do sistema- Eventos/Acontecimentos- ExecutivoCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 2/112

Componentes de um modelo de simulação Computação Científica- Entidade:- é um objeto de interesse do sistema;- exemplos: - clientes do sistema, - balcão de atendimento (servidor),- máquinas num sistema de produção (servidor).- Atributo:- são as propriedades de uma entidade (existem vários tipos e cada uma com as suas propriedades);- exemplos: - tipos de prioridades dos clientes numa fila de espera, - velocidade das máquinas e sua capacidade, - taxas de avaria.Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 3/112

Componentes de um modelo de simulação Computação Científica- Atividade:- representa um determinado período de tempo com duração específica, onde se verifica o desenvolvimentode um processo que utiliza recursos;- exemplos: - fazer depósitos numa agência bancária, - soldar, - perfurar num sistema produtivo.- Estado do sistema:- é o conjunto de variáveis necessárias para descrever o sistema em qualquer instante, que estãorelacionadas com o objetivo do estudo;- exemplos: - número de servidores ocupados ou desocupados, - número de clientes à espera para serem atendidos, - número de máquinas em funcionamento, paradas ou avariadas.Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 4/112

Componentes de um modelo de simulação Computação Científica- Evento/Acontecimento: - é uma ocorrência instantânea que altera o estado do sistema;- exemplos: - chegada de um cliente ao sistema, - término do serviço de um cliente, - uma nova avaria numa das máquinas; - pode ser de dois tipos:- exógeno, se tem origem fora do sistema,- endógeno, se tem origem dentro do sistema.- Executivo: - trata-se de um mecanismo existente na estrutura do programa de simulação, que permite manter permanentemente atualizada a informação sobre as entidades;- por exemplo, permite conhecer - em cada instante qual o estado da entidade e - por quanto tempo é que esta permanece naquele estado.Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 5/112

Componentes de um modelo de simulação Computação Científica- Exemplo: serviço de atendimento num balcão (um servidor)- objetivo do estudo: - estimar o tempo médio de espera para atendimento (numa fila)– entidades: - cliente- servidor (balcão de atendimento)- variáveis de estado:- estado do servidor (livre ou ocupado)- instante de chegada de cada cliente ao sistema- tempo de atendimento de cada cliente no balcão- tempo total de cada cliente no sistema– eventos/acontecimentos:- chegada de um cliente ao sistema- início do atendimento de um cliente- partida de um cliente (no fim do serviço)Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 6/112

Componentes de um modelo de simulação Computação Científica- O objetivo de um modelo de simulação discreto é - reproduzir as atividades das entidades envolvidas no sistema e, a partir daí, - conhecer algo sobre o comportamento e desempenho do sistema.- Isto é conseguido quando - se definem os estados do sistema, e - se constroem as atividades que movem o sistema de um estado para outro. - O estado de um sistema - é definido em termos de valores numéricos dados aos atributos das entidades- só pode mudar nos tempos de eventos- como permanece constante entre tempos de eventos, uma descrição completa do estado do sistema podeser obtida avançando o tempo simulado de um evento para outro.Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 7/112

Componentes de um modelo de simulação Computação Científica- Como os modelos de simulação discreta são dinâmicos, é necessário - manter um registo do tempo simulado ao longo da simulação e - um mecanismo para avançar o tempo de um instante para outro. - O relógio de simulação - é a variável que regista o valor atual do tempo simulado- não tem uma unidade explícita (usa a mesma unidade dos parâmetros de entrada). - O tempo simulado - é diferente do tempo de execução da simulação (do computador) e do tempo real.Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 8/112

Componentes de um modelo de simulação Computação Científica- Relações entre evento, processo e atividadeCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 9/112

Tipos de modelação Computação CientíficaTipos de modelação- Um evento acontece num ponto isolado do tempo, no qual devem ser tomadas decisões de forma ainiciar ou terminar um atividade. - Um processo é uma sequência ordenada de eventos e pode englobar várias atividades.- Estes conceitos levam naturalmente a três alternativas de visão de um modelo de simulação discreto:- orientada ao Evento: a definição das mudanças nos estados podem ocorrer em cada tempo de evento- orientada à Atividade: a descrição das atividades nas quais as entidades do sistema se envolvem- orientada ao Processo: a descrição do processo através do qual as entidades do sistema fluemCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 10/112

Modelação orientada ao Evento Computação CientíficaModelação orientada ao Evento- Um sistema é modelado pela definição das mudanças que ocorrem no tempo de evento. - A tarefa do modelador é determinar os eventos que podem causar a mudança no estado do sistema edesenvolver a lógica associada com cada tipo de evento. - A simulação do sistema é produzida pela execução da lógica associada a cada evento, numa sequênciaordenada no tempo.- Existem dois métodos possíveis para avançar o tempo no sistema a ser simulado: - de incremento de tempo fixo (fixed increment) e - para o próximo evento (next event). Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 11/112

Modelação orientada ao Evento Computação Científica- Método de incremento de tempo fixo- Um relógio virtual existente no computador permite registar o tempo instante a instante, mantendo asequência correta dos acontecimentos. - O tempo é atualizado por intervalos discretos uniformes (minutos, segundos, etc.), sendo o sistemaobservado em cada instante, de forma a saber se existe algum evento para ter início. TempoCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 12/112

Modelação orientada ao Evento Computação Científica- Método para o próximo evento- O avanço é por tempo variável, pois é concretizado através dos instantes em que se verificam osacontecimentos- Não se analisa o período durante o qual se executa a simulação instante a instante. Tempo1 o relógio é inicializado a zero e são determinados os instantes dos eventos futuros;2 o relógio é avançado para o instante do próximo evento a ocorrer;3 o estado do sistema é atualizado de acordo com esse evento e são determinados os instantes de novoseventos;4 os passos 2 e 3 são repetidos, até se cumprir uma condição de paragem pré-estabelecida.Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 13/112

Modelação orientada ao Evento Computação Científica- O método de avanço por incremento de tempo fixo é, em geral, mais eficiente - se os acontecimentos ocorrem de forma regular, ou - se não forem bem conhecidos. - O método de avanço para o próximo evento, em contrapartida, tem a virtude da duração designada paraa unidade de tempo não afetar a velocidade de computação, o que permite poupar tempo na execuçãodo modelo. - A escolha de um ou de outro depende da natureza do sistema a ser modelado e simulado. - No entanto, verifica-se que a eficiência - do primeiro método aumenta com o incremento do número das variáveis de estado, e - do segundo, com a duração temporal média dos acontecimentos.Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 14/112

Exemplo Computação CientíficaExemplo- Problema: um balcão de atendimento ao público- Objetivo do estudo deste sistema: - estimar o número médio de clientes na fila, - o tempo de espera médio dos clientes na fila e - a percentagem de tempo de ocupação do servidor. - Na tabela seguinte, constam os dados recolhidos (amostras) relativos - ao intervalo de tempo entre chegadas e - à duração dos serviços.Tempos entrechegadas (minutos) Frequência (%) Tempos de serviço(minutos) Frequência (%)234 303040 345 304030Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 15/112

Exemplo Computação Científica- Os Componentes do modelo de simulação são os seguintes:- Entidades: - clientes que chegam ao sistema para serem atendidos- balcão de atendimento- Atributos: - a disciplina da fila de espera admite-se ser FIFO (first in first out)- Atividades: - tempo de espera na fila, - tempo despendido no sistema- tempo de serviço(dois últimos tempos geridos através das duas distribuições empíricas caracterizadas na tabela anterior)- Estado do sistema: - situação do servidor (ocupado ou livre), - número de clientes na fila- número de clientes no sistema- Eventos: - chegada de um cliente- partida de um cliente após conclusão do serviçoCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 16/112

Exemplo Computação Científica- Os tempos entre chegadas e de serviços - podem ser determinados com processos comuns de amostragem- geram-se números com igual probabilidade de escolha e independentes entre si (pseudoaleatórios). Intervalo dos númerospseudoaleatórios Tempos entrechegadas (minutos) Intervalo dos númerospseudoaleatórios Tempos de serviço(minutos)00-2930-5960-99 234 00-2930-6970-99 345Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 17/112

Exemplo Computação Científica- os resultados da simulação são os que constam na tabela seguinte:Númeropseudo-aleatório Intervalo detempo entrechegadas(minutos) Tempoacumulado(minutos) Númeropseudo-aleatório Tempo deserviço(minutos) Tempo deconclusão deserviço(minutos) Tempo deespera(minutos) Disponibili-dade doservidor(minutos)79578048598103 4343342 471114172123 85666023115349 5443344 9131720232731 0223324 4000000- O método de simulação utilizado é o para o próximo evento, onde os eventos com relevância são:- chegada de um cliente e - terminar do serviço de um cliente. Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 18/112

Exemplo Computação Científica- A tabela seguinte apresenta a evolução dos eventos.Relógio desimulação Evento Cliente Próximachegada Fila Estado doservidor Próximasaída Tempo livre doservidor Tempo deespera Fila0 - - 4 0 livre 0 -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 19/112

Exemplo Computação Científica- A tabela seguinte apresenta a evolução dos eventos.Relógio desimulação Evento Cliente Próximachegada Fila Estado doservidor Próximasaída Tempo livre doservidor Tempo deespera Fila0 - - 4 0 livre 0 -4 chegada 1 7 0 ocupado (1) 9 4 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 20/112

Exemplo Computação Científica- A tabela seguinte apresenta a evolução dos eventos.Relógio desimulação Evento Cliente Próximachegada Fila Estado doservidor Próximasaída Tempo livre doservidor Tempo deespera Fila0 - - 4 0 livre 0 -4 chegada 1 7 0 ocupado (1) 9 4 07 chegada 2 11 1 - - - -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 21/112

Exemplo Computação Científica- A tabela seguinte apresenta a evolução dos eventos.Relógio desimulação Evento Cliente Próximachegada Fila Estado doservidor Próximasaída Tempo livre doservidor Tempo deespera Fila0 - - 4 0 livre 0 -4 chegada 1 7 0 ocupado (1) 9 4 07 chegada 2 11 1 - - - -9 partida 1 - 0 ocupado (2) 13 - 2Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 22/112

Exemplo Computação Científica- A tabela seguinte apresenta a evolução dos eventos.Relógio desimulação Evento Cliente Próximachegada Fila Estado doservidor Próximasaída Tempo livre doservidor Tempo deespera Fila0 - - 4 0 livre 0 -4 chegada 1 7 0 ocupado (1) 9 4 07 chegada 2 11 1 - - - -9 partida 1 - 0 ocupado (2) 13 - 211 chegada 3 14 1 - - - -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 23/112

Exemplo Computação Científica- A tabela seguinte apresenta a evolução dos eventos.Relógio desimulação Evento Cliente Próximachegada Fila Estado doservidor Próximasaída Tempo livre doservidor Tempo deespera Fila0 - - 4 0 livre 0 -4 chegada 1 7 0 ocupado (1) 9 4 07 chegada 2 11 1 - - - -9 partida 1 - 0 ocupado (2) 13 - 211 chegada 3 14 1 - - - -13 partida 2 - 0 ocupado (3) 17 - 2Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 24/112

Exemplo Computação Científica- A tabela seguinte apresenta a evolução dos eventos.Relógio desimulação Evento Cliente Próximachegada Fila Estado doservidor Próximasaída Tempo livre doservidor Tempo deespera Fila0 - - 4 0 livre 0 -4 chegada 1 7 0 ocupado (1) 9 4 07 chegada 2 11 1 - - - -9 partida 1 - 0 ocupado (2) 13 - 211 chegada 3 14 1 - - - -13 partida 2 - 0 ocupado (3) 17 - 214 chegada 4 17 1 - - - -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 25/112

Exemplo Computação Científica- A tabela seguinte apresenta a evolução dos eventos.Relógio desimulação Evento Cliente Próximachegada Fila Estado doservidor Próximasaída Tempo livre doservidor Tempo deespera Fila0 - - 4 0 livre 0 -4 chegada 1 7 0 ocupado (1) 9 4 07 chegada 2 11 1 - - - -9 partida 1 - 0 ocupado (2) 13 - 211 chegada 3 14 1 - - - -13 partida 2 - 0 ocupado (3) 17 - 214 chegada 4 17 1 - - - -17 partida 3 - 0 ocupado (4) 20 - 3Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 26/112

Exemplo Computação Científica- A tabela seguinte apresenta a evolução dos eventos.Relógio desimulação Evento Cliente Próximachegada Fila Estado doservidor Próximasaída Tempo livre doservidor Tempo deespera Fila0 - - 4 0 livre 0 -4 chegada 1 7 0 ocupado (1) 9 4 07 chegada 2 11 1 - - - -9 partida 1 - 0 ocupado (2) 13 - 211 chegada 3 14 1 - - - -13 partida 2 - 0 ocupado (3) 17 - 214 chegada 4 17 1 - - - -17 partida 3 - 0 ocupado (4) 20 - 317 chegada 5 21 1 - - - -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 27/112

Exemplo Computação Científica- A tabela seguinte apresenta a evolução dos eventos.Relógio desimulação Evento Cliente Próximachegada Fila Estado doservidor Próximasaída Tempo livre doservidor Tempo deespera Fila0 - - 4 0 livre 0 -4 chegada 1 7 0 ocupado (1) 9 4 07 chegada 2 11 1 - - - -9 partida 1 - 0 ocupado (2) 13 - 211 chegada 3 14 1 - - - -13 partida 2 - 0 ocupado (3) 17 - 214 chegada 4 17 1 - - - -17 partida 3 - 0 ocupado (4) 20 - 317 chegada 5 21 1 - - - -20 partida 4 - 0 ocupado (5) 23 - 3Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 28/112

Exemplo Computação Científica- A tabela seguinte apresenta a evolução dos eventos.Relógio desimulação Evento Cliente Próximachegada Fila Estado doservidor Próximasaída Tempo livre doservidor Tempo deespera Fila0 - - 4 0 livre 0 -4 chegada 1 7 0 ocupado (1) 9 4 07 chegada 2 11 1 - - - -9 partida 1 - 0 ocupado (2) 13 - 211 chegada 3 14 1 - - - -13 partida 2 - 0 ocupado (3) 17 - 214 chegada 4 17 1 - - - -17 partida 3 - 0 ocupado (4) 20 - 317 chegada 5 21 1 - - - -20 partida 4 - 0 ocupado (5) 23 - 321 chegada 6 23 1 - - - -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 29/112

Exemplo Computação Científica- A tabela seguinte apresenta a evolução dos eventos.Relógio desimulação Evento Cliente Próximachegada Fila Estado doservidor Próximasaída Tempo livre doservidor Tempo deespera Fila0 - - 4 0 livre 0 -4 chegada 1 7 0 ocupado (1) 9 4 07 chegada 2 11 1 - - - -9 partida 1 - 0 ocupado (2) 13 - 211 chegada 3 14 1 - - - -13 partida 2 - 0 ocupado (3) 17 - 214 chegada 4 17 1 - - - -17 partida 3 - 0 ocupado (4) 20 - 317 chegada 5 21 1 - - - -20 partida 4 - 0 ocupado (5) 23 - 321 chegada 6 23 1 - - - -23 partida 5 - 0 ocupado (6) 27 - 2Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 30/112

Exemplo Computação Científica- A tabela seguinte apresenta a evolução dos eventos.Relógio desimulação Evento Cliente Próximachegada Fila Estado doservidor Próximasaída Tempo livre doservidor Tempo deespera Fila0 - - 4 0 livre 0 -4 chegada 1 7 0 ocupado (1) 9 4 07 chegada 2 11 1 - - - -9 partida 1 - 0 ocupado (2) 13 - 211 chegada 3 14 1 - - - -13 partida 2 - 0 ocupado (3) 17 - 214 chegada 4 17 1 - - - -17 partida 3 - 0 ocupado (4) 20 - 317 chegada 5 21 1 - - - -20 partida 4 - 0 ocupado (5) 23 - 321 chegada 6 23 1 - - - -23 partida 5 - 0 ocupado (6) 27 - 223 chegada 7 1 - - - -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 31/112

Exemplo Computação Científica- A tabela seguinte apresenta a evolução dos eventos.Relógio desimulação Evento Cliente Próximachegada Fila Estado doservidor Próximasaída Tempo livre doservidor Tempo deespera Fila0 - - 4 0 livre 0 -4 chegada 1 7 0 ocupado (1) 9 4 07 chegada 2 11 1 - - - -9 partida 1 - 0 ocupado (2) 13 - 211 chegada 3 14 1 - - - -13 partida 2 - 0 ocupado (3) 17 - 214 chegada 4 17 1 - - - -17 partida 3 - 0 ocupado (4) 20 - 317 chegada 5 21 1 - - - -20 partida 4 - 0 ocupado (5) 23 - 321 chegada 6 23 1 - - - -23 partida 5 - 0 ocupado (6) 27 - 223 chegada 7 1 - - - -27 partida 6 - 0 ocupado (7) 31 - 4Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 32/112

Exemplo Computação Científica- A tabela seguinte apresenta a evolução dos eventos.Relógio desimulação Evento Cliente Próximachegada Fila Estado doservidor Próximasaída Tempo livre doservidor Tempo deespera Fila0 - - 4 0 livre 0 -4 chegada 1 7 0 ocupado (1) 9 4 07 chegada 2 11 1 - - - -9 partida 1 - 0 ocupado (2) 13 - 211 chegada 3 14 1 - - - -13 partida 2 - 0 ocupado (3) 17 - 214 chegada 4 17 1 - - - -17 partida 3 - 0 ocupado (4) 20 - 317 chegada 5 21 1 - - - -20 partida 4 - 0 ocupado (5) 23 - 321 chegada 6 23 1 - - - -23 partida 5 - 0 ocupado (6) 27 - 223 chegada 7 1 - - - -27 partida 6 - 0 ocupado (7) 31 - 431 partida 7 - - livre - -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 33/112

Exemplo Computação Científica- Atendendo aos objetivos do estudo, os valores estimados são os seguintes:- número médio de clientes na fila: 6/7 = 0.86 (86%)- tempo médio de espera dos clientes na fila: 16/7 = 2.3 minutos/cliente- percentagem de tempo de ocupação do servidor: (31-4)/31 = 27/31 = 0.87 (87%)Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 34/112

Modelação e implementação de um modelo de simulação Computação CientíficaModelação e implementação de um modelo de simulação- Na fase de implementação do modelo de simulação é necessário ter em conta duas entidadesimportantes: - as variáveis e - as rotinas associadas ao modelo.- As variáveis são:- estado do sistema: - conjunto de variáveis que descrevem o estado do sistema num instante de tempo, e - relógio de simulação: - variável que regista o instante atual do tempo simulado,- lista de eventos: - lista com os próximos instantes de tempo em que cada tipo de evento vai ocorrer, e - contadores estatísticos: - variáveis que guardam informação estatística, ao longo da simulação, sobre o desempenho do sistemaCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 35/112

Modelação e implementação de um modelo de simulação Computação Científica- As rotinas necessárias, são pelo menos as seguintes: – rotina de inicialização: - subprograma que inicializa o estado do sistema no instante 0– rotina de gestão de tempo: - subprograma que determina o próximo evento da lista de eventos e avança o relógio de simulação– rotinas dos eventos: - subprogramas (um por tipo de evento) que atualizam o estado do sistema quando ocorre um evento– biblioteca de rotinas: - conjunto de subprogramas que geram observações aleatórias das distribuições de probabilidade que sãoutilizadas pelo modelo– gerador de relatórios: - subprograma que calcula no fim da simulação (a partir dos contadores estatísticos) medidas de desempenhodo sistema e produz um relatório– programa principal: - chama a rotina de gestão de tempo e passa o controlo para a correspondente rotina do evento; - verifica as condições de paragem;- chama o gerador de relatórios no fim da simulação.Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 36/112

Modelação e implementação de um modelo de simulação Computação Científica- Um possível algoritmo associado à implementação do modelo de simulação é o seguinte:Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 37/112

Exemplo 1 Computação CientíficaExemplo 1- Enunciado do problema: - Serviço de atendimento de clientes com apenas um servidor.- Funcionamento do sistema (uma barbearia):– os clientes chegam à barbearia e esperam se o barbeiro estiver ocupado;– o barbeiro serve os clientes por ordem de chegada;- o cliente abandona a barbearia após o corte de cabelo terminar;Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 38/112

Exemplo 1 Computação Científica- Dados de entrada para a simulação do sistema (inputs):– instantes de chegada dos clientes ao sistema– tempo de duração do serviço de cada clienteNúmero de cliente 1 2 3 4 5 6 7 8 9 10Instantes de chegada (min) 12 15 32 76 97 128 138 153 180 215Tempos de serviço (min) 25 32 12 30 24 10 27 21 15 14- Objetivos- calcular as seguintes medidas de desempenho (outputs):- tempo médio de permanência dos clientes no sistema- tempo médio de espera dos clientes- número médio de clientes no sistema- número médio de clientes em espera- taxa de ocupação do servidorCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 39/112

Exemplo 1 Computação Científica- Construção do modelo de simulação– eventos: - evento de chegada e - evento de partida;– variáveis de estado: - número de cliente, - fila de espera (FIFO), - número de clientes na fila, - tipo de evento e - estado do servidor (ocupado ou livre);– lista de eventos: - próximo evento de chegada (tempo) e - próximo evento de partida (tempo);– contadores estatísticos: - tempo de permanência dos clientes no sistema, - tempo de espera dos clientes na fila, - número de clientes que passaram pelo sistema, - número de clientes que passaram pela fila e - tempo de ocupação do servidor (barbeiro).Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 40/112

Exemplo 1 Computação Científica- Algoritmos (eventos):Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 41/112

Exemplo 2 Computação CientíficaExemplo 2- Enunciado do problema: Serviço de atendimento de clientes com dois servidores.- Funcionamento do sistema (agência de viagens):- dois agentes trabalham em paralelo no balcão de uma agência de viagens- os clientes, ao chegarem, formam uma única fila à espera do primeiro agente livre- se ambos os agentes estiverem livres, o cliente escolhe o Agente 1.Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 42/112

Exemplo 2 Computação Científica- Dados de entrada para a simulação do sistema (inputs):– tempos entre chegadas:- seguem uma distribuição exponencial negativa com valor esperado de 2.0 minutos;- podem ser gerados a partir de números aleatórios uniformes entre 0 e 1 com a seguinte fórmula: x = –µ * ln(1-r), onde r~U(0,1) e µ é o valor esperado;- tempos de serviço:- os tempos médios de serviço são iguais para os dois agentes;- os tempos de serviço têm duas parcelas: um tempo constante de 1 minuto para o contacto inicial e um tempovariável uniforme entre 0.5 e 2.0 minutos;- gerar valores aleatórios uniformemente distribuídos entre A e B usando a fórmula:x = A + (B – A) * r, onde r~U(0,1), A é o limite inferior e B o limite superiorCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 43/112

Exemplo 2 Computação Científica- Objetivos:- simular o sistema até todos os clientes serem atendidos- calcular as seguintes medidas de desempenho (outputs):- taxa de ocupação de tempo dos dois agentes- tempo médio de espera dos clientes- tempo médio de permanência dos clientes no sistema- número médio de clientes que passaram pela fila de espera- número médio de clientes que passaram pelo sistema (que foram atendidos)Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 44/112

Exemplo 2 Computação Científica- Construção do modelo de simulação (estruturas de dados):- Variáveis de estado do sistema- Tipo de evento (chegada, partida1 ou partida2 – TipoEvento)- Número do cliente (inteiro - NumCliente)- Número de clientes que passaram pela fila de espera (inteiro - NumClientesFila)- Número de clientes que passaram pelo sistema (inteiro - NumClientesSistema)- Estado do Agente 1 (ocupado ou livre - EstadoAgente1)- Estado do Agente 2 (ocupado ou livre - EstadoAgente2)- Lista/Fila de espera de clientes com os tempos de chegada (fila reais – FilaEventosChegada)- Relógio de simulação- Relógio de simulação (real - Clock)- Lista de eventos- Tempo do próximo evento de chegada (real - TempoProximaChegada)- Tempo de partida do cliente no Agente 1 (real - TempoPartida1)- Tempo de partida do cliente no Agente 2 (real - TempoPartida2)Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 45/112

Exemplo 2 Computação Científica- Contadores estatísticos- Tempo total de espera dos clientes (real - TempoTotalEspera)- Tempo de ocupação do Agente 1 (real - TempoOcupacaoAgente1)- Tempo de ocupação do Agente 2 (real - TempoOcupacaoAgente2)- Tempo total de permanência no sistema (real - TempoTotalPermanencia)- Número total de clientes que passaram na fila de espera (TotalClientesFila)Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 46/112

Exemplo 2 Computação Científica- Rotina para determinar os tempos entre chegadas:float DeterminarTempoEntreChegadas (float niu) {float r, X;r = rand()/(float)RAND_MAX;X = -niu * log(1-r);return X;}- Rotina para determinar os tempos de serviço:float DeterminarTempoServico (float A, float B, float T0) {float r, X;r = rand()/(float)RAND_MAX;X = T0 + A + (B - A) * r;return X;}Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 47/112

Exemplo 2 Computação Científica- Rotina de inicialização:void Inicializacao ( float Time, int *NumClientesSistema, int *EstadoAgente1, int *EstadoAgente2, float **FilaEventosChegada, float *Clock, float *TempoProximaChegada, float *TempoPartida1, float *TempoPartida2, float *TempoTotalEspera, float *TempoOcupacaoAgente1, float *TempoOcupacaoAgente2, float *TempoTotalPermanencia, int *TotalClientesFila ) { *NumClientesSistema = 0; *EstadoAgente1 = 0; // livre *EstadoAgente2 = 0; // livre *FilaEventosChegada = CreateQueue(); *Clock = 0.0; *TempoProximaChegada = Time; *TempoPartida1 = Infinito; *TempoPartida2 = Infinito; *TempoTotalEspera = 0.0; *TempoOcupacaoAgente1 = 0.0; *TempoOcupacaoAgente2 = 0.0; *TempoTotalPermanencia = 0.0; *TotalClientesFila = 0;}Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 48/112

Exemplo 2 Computação Científica- Rotina de gestão do tempo:void GestaoTempo (float TempoProximaChegada, float TempoPartida1, float TempoPartida2, float *Tempo, int *TipoEvento) {*Tempo = TempoProximaChegada;*TipoEvento = 0; // Chegadaif (TempoPartida1 < *Tempo) {*Tempo = TempoPartida1;*TipoEvento = 1; // Partida1}if (TempoPartida2 < *Tempo) {*Tempo = TempoPartida2;*TipoEvento = 2; // Partida2}if (*Tempo == Infinito)*TipoEvento = -1;}Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 49/112

Exemplo 2 Computação Científica- Rotina do Evento de Chegada:void EventoChegada ( float Tempo, int *NumClientesSistema, int *EstadoAgente1, int *EstadoAgente2,float **FilaEventosChegada, float *TempoProximaChegada, float *TempoPartida1, float *TempoPartida2, float *TempoOcupacaoAgente1, float *TempoOcupacaoAgente2,float *TempoTotalPermanencia, int *TotalClientesFila ) {float TempoEntreChegadas, TempoServico;TempoEntreChegadas = DeterminarTempoEntreChegadas(2.0);*TempoProximaChegada = Tempo + TempoEntreChegadas;if (*EstadoAgente1 == 1) // Agente 1 ocupadoif (*EstadoAgente2 == 1) { // Agente 2 ocupado e Agente 1 ocupado*FilaEventosChegada = InsertQueue(Tempo, *FilaEventosChegada);*TotalClientesFila = *TotalClientesFila + 1;}Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 50/112

Exemplo 2 Computação Científicaelse { // Agente 2 livre e Agente 1 ocupado*NumClientesSistema = *NumClientesSistema + 1;*EstadoAgente2 = 1;TempoServico = DeterminarTempoServico(0.5, 2.0, 1);*TempoPartida2 = Tempo + TempoServico;*TempoOcupacaoAgente2 = *TempoOcupacaoAgente2 + TempoServico;*TempoTotalPermanencia = *TempoTotalPermanencia + TempoServico;}else { // Agente 1 livre*NumClientesSistema = *NumClientesSistema + 1;*EstadoAgente1 = 1;TempoServico = DeterminarTempoServico(0.5, 2.0, 1);*TempoPartida1 = Tempo + TempoServico;*TempoOcupacaoAgente1 = *TempoOcupacaoAgente1 + TempoServico;*TempoTotalPermanencia = *TempoTotalPermanencia + TempoServico;}}Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 51/112

Exemplo 2 Computação Científica- Rotina do Evento de Partida do Agente 1:void EventoPartida1 ( float Tempo, int *NumClientesSistema, int *EstadoAgente1, float **FilaEventosChegada, float *TempoPartida1, float *TempoOcupacaoAgente1, float *TempoTotalEspera, float *TempoTotalPermanencia ) {float TempoChegadaCliente, TempoEsperaCliente, TempoServico;if (EmptyQueue(*FilaEventosChegada)) {*EstadoAgente1 = 0;*TempoPartida1 = Infinito;}else {TempoChegadaCliente = Front(*FilaEventosChegada);TempoEsperaCliente = Tempo - TempoChegadaCliente;*NumClientesSistema = *NumClientesSistema + 1;TempoServico = DeterminarTempoServico(0.5, 2.0, 1);*TempoPartida1 = Tempo + TempoServico;*FilaEventosChegada = RemoveQueue(*FilaEventosChegada);*TempoTotalEspera = *TempoTotalEspera + TempoEsperaCliente;*TempoOcupacaoAgente1 = *TempoOcupacaoAgente1 + TempoServico;*TempoTotalPermanencia = *TempoTotalPermanencia + TempoServico + TempoEsperaCliente;}}Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 52/112

Exemplo 2 Computação Científica- Rotina do Evento de Partida do Agente 2:void EventoPartida2 ( float Tempo, int *NumClientesSistema, int *EstadoAgente2,float **FilaEventosChegada, float *TempoPartida2, float *TempoOcupacaoAgente2, float *TempoTotalEspera, float *TempoTotalPermanencia ) {float TempoChegadaCliente, TempoEsperaCliente, TempoServico;if (EmptyQueue(*FilaEventosChegada)) {*EstadoAgente2 = 0;*TempoPartida2 = Infinito;}else {TempoChegadaCliente = Front(*FilaEventosChegada);TempoEsperaCliente = Tempo - TempoChegadaCliente;*NumClientesSistema = *NumClientesSistema + 1;TempoServico = DeterminarTempoServico(0.5, 2.0, 1);*TempoPartida2 = Tempo + TempoServico;*FilaEventosChegada = RemoveQueue(*FilaEventosChegada);*TempoTotalEspera = *TempoTotalEspera + TempoEsperaCliente;*TempoOcupacaoAgente2 = *TempoOcupacaoAgente2 + TempoServico;*TempoTotalPermanencia = *TempoTotalPermanencia + TempoServico + TempoEsperaCliente;}}Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 53/112

Exemplo 2 Computação Científica- Rotina dos Contadores Estatísticos:void ContadoresEstatisticos (int NumClientesSistema, int TotalClientesFila, float TempoOcupacaoAgente1, float TempoOcupacaoAgente2, float TempoTotalEspera,float TempoTotalPermanencia, float TempoTotalSistema) {int TaxaOcupacaoAgentes, TaxaOcupacaoAgente1, TaxaOcupacaoAgente2; float NumMedioClientesFila, TempoMedioEsperaClientes, TempoMedioPermanenciaClientes;TaxaOcupacaoAgentes = (TempoOcupacaoAgente1+TempoOcupacaoAgente2)/(2*TempoTotalSistema)*100;TaxaOcupacaoAgente1 = TempoOcupacaoAgente1 / TempoTotalSistema * 100;TaxaOcupacaoAgente2 = TempoOcupacaoAgente2 / TempoTotalSistema * 100;NumMedioClientesFila = TotalClientesFila / (float) NumClientesSistema;TempoMedioEsperaClientes = TempoTotalEspera / NumClientesSistema;TempoMedioPermanenciaClientes = TempoTotalPermanencia / NumClientesSistema;printf("TaxaOcupacaoAgentes = %d%%\n", TaxaOcupacaoAgentes);printf("TaxaOcupacaoAgente1 = %d%%\n", TaxaOcupacaoAgente1);printf("TaxaOcupacaoAgente2 = %d%%\n", TaxaOcupacaoAgente2);printf("NumMedioClientesFila = %.3f\n", NumMedioClientesFila);printf("TempoMedioEsperaClientes = %.3f\n", TempoMedioEsperaClientes);printf("TempoMedioPermanaenciaClientes = %.3f\n", TempoMedioPermanenciaClientes);}Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 54/112

Exemplo 2 Computação Científica- Programa Principal:#include <stdio.h>#include <stdlib.h>#include <time.h>#include <math.h>#define Infinito 10000.0#include "Queue.h"#include "SimulationRoutines.h"main() {int terminar = 0, MaximoClientes, NumClientes = 0, NumClientesSistema, EstadoAgente1,EstadoAgente2, TotalClientesFila, TipoEvento;float TempoPrimeiraChegada, *FilaEventosChegada, Clock, TempoProximaChegada, TempoPartida1,TempoPartida2, TempoTotalEspera, TempoOcupacaoAgente1, TempoOcupacaoAgente2,TempoTotalPermanencia, TempoTotalSistema;printf("Com quantos clientes quer realizar a simulacao ? ");scanf("%d", &MaximoClientes);srand((unsigned int)time(NULL));TempoPrimeiraChegada = DeterminarTempoEntreChegadas(2.0);Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 55/112

Exemplo 2 Computação CientíficaInicializacao (TempoPrimeiraChegada, &NumClientesSistema, &EstadoAgente1, &EstadoAgente2, &FilaEventosChegada, &Clock, &TempoProximaChegada, &TempoPartida1, &TempoPartida2,&TempoTotalEspera, &TempoOcupacaoAgente1, &TempoOcupacaoAgente2,&TempoTotalPermanencia, &TotalClientesFila);while (true) {GestaoTempo (TempoProximaChegada, TempoPartida1, TempoPartida2, &Clock, &TipoEvento);if (Clock < Infinito)TempoTotalSistema = Clock;printf ("TempoProximaChegada = %f \n TempoPartida1 = %f \n TempoPartida2 = %f \n Clock = %f \nTipoEvento = %d \n", TempoProximaChegada, TempoPartida1, TempoPartida2, Clock, TipoEvento);if (TipoEvento == -1)break;Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 56/112

Exemplo 2 Computação Científicaswitch (TipoEvento) {case 0 : NumClientes++;EventoChegada (Clock, &NumClientesSistema, &EstadoAgente1, &EstadoAgente2, &FilaEventosChegada, &TempoProximaChegada, &TempoPartida1, &TempoPartida2,&TempoOcupacaoAgente1, &TempoOcupacaoAgente2, &TempoTotalPermanencia,&TotalClientesFila);if (NumClientes == MaximoClientes) TempoProximaChegada = Infinito;break;case 1 : EventoPartida1 (Clock, &NumClientesSistema, &EstadoAgente1, &FilaEventosChegada, &TempoPartida1, &TempoOcupacaoAgente1, &TempoTotalEspera,&TempoTotalPermanencia);break;case 2 : EventoPartida2 (Clock, &NumClientesSistema, &EstadoAgente2, &FilaEventosChegada, &TempoPartida2, &TempoOcupacaoAgente2, &TempoTotalEspera,&TempoTotalPermanencia);break;default:terminar = 1;}Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 57/112

Exemplo 2 Computação Científicaif (terminar == 1)break;printf("NumClientes = %d \n NumClientesSistema = %d \n", NumClientes, NumClientesSistema);} // while (true)printf("\n\nCONTADORES ESTATISTICOS\n");printf("NumClientesSistema = %d\n", NumClientesSistema);printf("TotalClientesFila = %d\n", TotalClientesFila);printf("TempoTotalSistema = %.3f\n", TempoTotalSistema);printf("TempoOcupacaoAgente1 = %.3f\n", TempoOcupacaoAgente1);printf("TempoOcupacaoAgente2 = %.3f\n", TempoOcupacaoAgente2);printf("TempoTotalEspera = %.3f\n", TempoTotalEspera);printf("TempoTotalPermanencia = %.3f\n\n", TempoTotalPermanencia);ContadoresEstatisticos(NumClientesSistema, TotalClientesFila, TempoOcupacaoAgente1,TempoOcupacaoAgente2, TempoTotalEspera, TempoTotalPermanencia, TempoTotalSistema);} // mainCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 58/112

Exemplo 2 Computação Científica- Simulação manual (calcular os instantes de chegada e os tempos de serviço):Número de cliente 1 2 3 4 5 6 7 8 9 10 11 12Tempos entre chegadas (min) 3.6 5.6 2.8 0.4 0.3 1.9 5.4 0.3 4.1 1.0 0.7 0.3Instantes de chegada (min) 3.6 9.2 12.0 12.4 12.7 14.6 20.0 20.3 24.4 25.4 26.1 26.4Tempos de serviço (min) 2.7 2.5 1.9 2.7 3.9 2.9 1.5 2.2 1.7 2.6 1.8 2.7Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 59/112

Exemplo 2 Computação Científica– Simulação manual dos 8 primeiros clientes (utilizar um quadro com as seguintes entradas):Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE0.0 - - 3.6 [ ] livre livre 0 0 0 0 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 60/112

Exemplo 2 Computação Científica– Simulação manual dos 8 primeiros clientes (utilizar um quadro com as seguintes entradas):Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE0.0 - - 3.6 [ ] livre livre 0 0 0 0 0 03.6 Chegada 1 9.2 - ocup 6.3 - - 2.7 2.7 - - 1 -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 61/112

Exemplo 2 Computação Científica– Simulação manual dos 8 primeiros clientes (utilizar um quadro com as seguintes entradas):Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE0.0 - - 3.6 [ ] livre livre 0 0 0 0 0 03.6 Chegada 1 9.2 - ocup 6.3 - - 2.7 2.7 - - 1 -6.3 Partida1 1 - - livre - - - - - - - -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 62/112

Exemplo 2 Computação Científica– Simulação manual dos 8 primeiros clientes (utilizar um quadro com as seguintes entradas):Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE0.0 - - 3.6 [ ] livre livre 0 0 0 0 0 03.6 Chegada 1 9.2 - ocup 6.3 - - 2.7 2.7 - - 1 -6.3 Partida1 1 - - livre - - - - - - - -9.2 Chegada 2 12.0 - ocup 11.7 - - 5.2 5.2 - - 2 -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 63/112

Exemplo 2 Computação Científica– Simulação manual dos 8 primeiros clientes (utilizar um quadro com as seguintes entradas):Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE0.0 - - 3.6 [ ] livre livre 0 0 0 0 0 03.6 Chegada 1 9.2 - ocup 6.3 - - 2.7 2.7 - - 1 -6.3 Partida1 1 - - livre - - - - - - - -9.2 Chegada 2 12.0 - ocup 11.7 - - 5.2 5.2 - - 2 -11.7 Partida1 2 - - livre - - - - - - - -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 64/112

Exemplo 2 Computação Científica– Simulação manual dos 8 primeiros clientes (utilizar um quadro com as seguintes entradas):Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE0.0 - - 3.6 [ ] livre livre 0 0 0 0 0 03.6 Chegada 1 9.2 - ocup 6.3 - - 2.7 2.7 - - 1 -6.3 Partida1 1 - - livre - - - - - - - -9.2 Chegada 2 12.0 - ocup 11.7 - - 5.2 5.2 - - 2 -11.7 Partida1 2 - - livre - - - - - - - -12.0 Chegada 3 12.4 - ocup 13.9 - - 7.1 7.1 - - 3 -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 65/112

Exemplo 2 Computação Científica– Simulação manual dos 8 primeiros clientes (utilizar um quadro com as seguintes entradas):Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE0.0 - - 3.6 [ ] livre livre 0 0 0 0 0 03.6 Chegada 1 9.2 - ocup 6.3 - - 2.7 2.7 - - 1 -6.3 Partida1 1 - - livre - - - - - - - -9.2 Chegada 2 12.0 - ocup 11.7 - - 5.2 5.2 - - 2 -11.7 Partida1 2 - - livre - - - - - - - -12.0 Chegada 3 12.4 - ocup 13.9 - - 7.1 7.1 - - 3 -12.4 Chegada 4 12.7 - - - ocup 15.1 9.8 - 2.7 - 4 -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 66/112

Exemplo 2 Computação Científica– Simulação manual dos 8 primeiros clientes (utilizar um quadro com as seguintes entradas):Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE0.0 - - 3.6 [ ] livre livre 0 0 0 0 0 03.6 Chegada 1 9.2 - ocup 6.3 - - 2.7 2.7 - - 1 -6.3 Partida1 1 - - livre - - - - - - - -9.2 Chegada 2 12.0 - ocup 11.7 - - 5.2 5.2 - - 2 -11.7 Partida1 2 - - livre - - - - - - - -12.0 Chegada 3 12.4 - ocup 13.9 - - 7.1 7.1 - - 3 -12.4 Chegada 4 12.7 - - - ocup 15.1 9.8 - 2.7 - 4 -12.7 Chegada 5 14.6 [12.7] - - - - - - - 1 - -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 67/112

Exemplo 2 Computação Científica– Simulação manual dos 8 primeiros clientes (utilizar um quadro com as seguintes entradas):Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE0.0 - - 3.6 [ ] livre livre 0 0 0 0 0 03.6 Chegada 1 9.2 - ocup 6.3 - - 2.7 2.7 - - 1 -6.3 Partida1 1 - - livre - - - - - - - -9.2 Chegada 2 12.0 - ocup 11.7 - - 5.2 5.2 - - 2 -11.7 Partida1 2 - - livre - - - - - - - -12.0 Chegada 3 12.4 - ocup 13.9 - - 7.1 7.1 - - 3 -12.4 Chegada 4 12.7 - - - ocup 15.1 9.8 - 2.7 - 4 -12.7 Chegada 5 14.6 [12.7] - - - - - - - 1 - -13.9 Partida1 3 - [ ] - 17.8 - - 14.9 11.0 - - 5 1.2Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 68/112

Exemplo 2 Computação Científica– Simulação manual dos 8 primeiros clientes (utilizar um quadro com as seguintes entradas):Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE0.0 - - 3.6 [ ] livre livre 0 0 0 0 0 03.6 Chegada 1 9.2 - ocup 6.3 - - 2.7 2.7 - - 1 -6.3 Partida1 1 - - livre - - - - - - - -9.2 Chegada 2 12.0 - ocup 11.7 - - 5.2 5.2 - - 2 -11.7 Partida1 2 - - livre - - - - - - - -12.0 Chegada 3 12.4 - ocup 13.9 - - 7.1 7.1 - - 3 -12.4 Chegada 4 12.7 - - - ocup 15.1 9.8 - 2.7 - 4 -12.7 Chegada 5 14.6 [12.7] - - - - - - - 1 - -13.9 Partida1 3 - [ ] - 17.8 - - 14.9 11.0 - - 5 1.214.6 Chegada 6 20.0 [14.6] - - - - - - - 2 - -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 69/112

Exemplo 2 Computação Científica– Simulação manual dos 8 primeiros clientes (utilizar um quadro com as seguintes entradas):Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE0.0 - - 3.6 [ ] livre livre 0 0 0 0 0 03.6 Chegada 1 9.2 - ocup 6.3 - - 2.7 2.7 - - 1 -6.3 Partida1 1 - - livre - - - - - - - -9.2 Chegada 2 12.0 - ocup 11.7 - - 5.2 5.2 - - 2 -11.7 Partida1 2 - - livre - - - - - - - -12.0 Chegada 3 12.4 - ocup 13.9 - - 7.1 7.1 - - 3 -12.4 Chegada 4 12.7 - - - ocup 15.1 9.8 - 2.7 - 4 -12.7 Chegada 5 14.6 [12.7] - - - - - - - 1 - -13.9 Partida1 3 - [ ] - 17.8 - - 14.9 11.0 - - 5 1.214.6 Chegada 6 20.0 [14.6] - - - - - - - 2 - -15.1 Partida2 4 - [ ] - - - 18.0 18.3 - 5.6 - 6 1.7Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 70/112

Exemplo 2 Computação Científica–Simulação manual dos 8 primeiros clientes (utilizar um quadro com as seguintes entradas):Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE0.0 - - 3.6 [ ] livre livre 0 0 0 0 0 03.6 Chegada 1 9.2 - ocup 6.3 - - 2.7 2.7 - - 1 -6.3 Partida1 1 - - livre - - - - - - - -9.2 Chegada 2 12.0 - ocup 11.7 - - 5.2 5.2 - - 2 -11.7 Partida1 2 - - livre - - - - - - - -12.0 Chegada 3 12.4 - ocup 13.9 - - 7.1 7.1 - - 3 -12.4 Chegada 4 12.7 - - - ocup 15.1 9.8 - 2.7 - 4 -12.7 Chegada 5 14.6 [12.7] - - - - - - - 1 - -13.9 Partida1 3 - [ ] - 17.8 - - 14.9 11.0 - - 5 1.214.6 Chegada 6 20.0 [14.6] - - - - - - - 2 - -15.1 Partida2 4 - [ ] - - - 18.0 18.3 - 5.6 - 6 1.717.8 Partida1 5 - - livre ∞ - - - - - - - -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 71/112

Exemplo 2 Computação Científica– Simulação manual dos 8 primeiros clientes (utilizar um quadro com as seguintes entradas):Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE0.0 - - 3.6 [ ] livre livre 0 0 0 0 0 03.6 Chegada 1 9.2 - ocup 6.3 - - 2.7 2.7 - - 1 -6.3 Partida1 1 - - livre - - - - - - - -9.2 Chegada 2 12.0 - ocup 11.7 - - 5.2 5.2 - - 2 -11.7 Partida1 2 - - livre - - - - - - - -12.0 Chegada 3 12.4 - ocup 13.9 - - 7.1 7.1 - - 3 -12.4 Chegada 4 12.7 - - - ocup 15.1 9.8 - 2.7 - 4 -12.7 Chegada 5 14.6 [12.7] - - - - - - - 1 - -13.9 Partida1 3 - [ ] - 17.8 - - 14.9 11.0 - - 5 1.214.6 Chegada 6 20.0 [14.6] - - - - - - - 2 - -15.1 Partida2 4 - [ ] - - - 18.0 18.3 - 5.6 - 6 1.717.8 Partida1 5 - - livre ∞ - - - - - - - -18.0 Partida2 5 - - - - livre - - - - - -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 72/112

Exemplo 2 Computação Científica– Simulação manual dos 8 primeiros clientes (utilizar um quadro com as seguintes entradas):Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE0.0 - - 3.6 [ ] livre livre 0 0 0 0 0 03.6 Chegada 1 9.2 - ocup 6.3 - - 2.7 2.7 - - 1 -6.3 Partida1 1 - - livre - - - - - - - -9.2 Chegada 2 12.0 - ocup 11.7 - - 5.2 5.2 - - 2 -11.7 Partida1 2 - - livre - - - - - - - -12.0 Chegada 3 12.4 - ocup 13.9 - - 7.1 7.1 - - 3 -12.4 Chegada 4 12.7 - - - ocup 15.1 9.8 - 2.7 - 4 -12.7 Chegada 5 14.6 [12.7] - - - - - - - 1 - -13.9 Partida1 3 - [ ] - 17.8 - - 14.9 11.0 - - 5 1.214.6 Chegada 6 20.0 [14.6] - - - - - - - 2 - -15.1 Partida2 4 - [ ] - - - 18.0 18.3 - 5.6 - 6 1.717.8 Partida1 5 - - livre ∞ - - - - - - - -18.0 Partida2 5 - - - - livre - - - - - -20.0 Chegada 7 20.3 - ocup 21.8 - - 19.8 12.5 - - 7 -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 73/112

Exemplo 2 Computação Científica– Simulação manual dos 8 primeiros clientes (utilizar um quadro com as seguintes entradas):Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE0.0 - - 3.6 [ ] livre livre 0 0 0 0 0 03.6 Chegada 1 9.2 - ocup 6.3 - - 2.7 2.7 - - 1 -6.3 Partida1 1 - - livre - - - - - - - -9.2 Chegada 2 12.0 - ocup 11.7 - - 5.2 5.2 - - 2 -11.7 Partida1 2 - - livre - - - - - - - -12.0 Chegada 3 12.4 - ocup 13.9 - - 7.1 7.1 - - 3 -12.4 Chegada 4 12.7 - - - ocup 15.1 9.8 - 2.7 - 4 -12.7 Chegada 5 14.6 [12.7] - - - - - - - 1 - -13.9 Partida1 3 - [ ] - 17.8 - - 14.9 11.0 - - 5 1.214.6 Chegada 6 20.0 [14.6] - - - - - - - 2 - -15.1 Partida2 4 - [ ] - - - 18.0 18.3 - 5.6 - 6 1.717.8 Partida1 5 - - livre ∞ - - - - - - - -18.0 Partida2 5 - - - - livre - - - - - -20.0 Chegada 7 20.3 - ocup 21.8 - - 19.8 12.5 - - 7 -20.3 Chegada 8 - - - ocup 22.5 22.0 - 7.8 - 8 -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 74/112

Exemplo 2 Computação Científica– Simulação manual dos 8 primeiros clientes (utilizar um quadro com as seguintes entradas):Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE0.0 - - 3.6 [ ] livre livre 0 0 0 0 0 03.6 Chegada 1 9.2 - ocup 6.3 - - 2.7 2.7 - - 1 -6.3 Partida1 1 - - livre - - - - - - - -9.2 Chegada 2 12.0 - ocup 11.7 - - 5.2 5.2 - - 2 -11.7 Partida1 2 - - livre - - - - - - - -12.0 Chegada 3 12.4 - ocup 13.9 - - 7.1 7.1 - - 3 -12.4 Chegada 4 12.7 - - - ocup 15.1 9.8 - 2.7 - 4 -12.7 Chegada 5 14.6 [12.7] - - - - - - - 1 - -13.9 Partida1 3 - [ ] - 17.8 - - 14.9 11.0 - - 5 1.214.6 Chegada 6 20.0 [14.6] - - - - - - - 2 - -15.1 Partida2 4 - [ ] - - - 18.0 18.3 - 5.6 - 6 1.717.8 Partida1 5 - - livre ∞ - - - - - - - -18.0 Partida2 5 - - - - livre - - - - - -20.0 Chegada 7 20.3 - ocup 21.8 - - 19.8 12.5 - - 7 -20.3 Chegada 8 - - - ocup 22.5 22.0 - 7.8 - 8 -21.8 Partida1 7 - - livre - - - - - - - -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 75/112

Exemplo 2 Computação Científica– Simulação manual dos 8 primeiros clientes (utilizar um quadro com as seguintes entradas):Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE0.0 - - 3.6 [ ] livre livre 0 0 0 0 0 03.6 Chegada 1 9.2 - ocup 6.3 - - 2.7 2.7 - - 1 -6.3 Partida1 1 - - livre - - - - - - - -9.2 Chegada 2 12.0 - ocup 11.7 - - 5.2 5.2 - - 2 -11.7 Partida1 2 - - livre - - - - - - - -12.0 Chegada 3 12.4 - ocup 13.9 - - 7.1 7.1 - - 3 -12.4 Chegada 4 12.7 - - - ocup 15.1 9.8 - 2.7 - 4 -12.7 Chegada 5 14.6 [12.7] - - - - - - - 1 - -13.9 Partida1 3 - [ ] - 17.8 - - 14.9 11.0 - - 5 1.214.6 Chegada 6 20.0 [14.6] - - - - - - - 2 - -15.1 Partida2 4 - [ ] - - - 18.0 18.3 - 5.6 - 6 1.717.8 Partida1 5 - - livre ∞ - - - - - - - -18.0 Partida2 5 - - - - livre - - - - - -20.0 Chegada 7 20.3 - ocup 21.8 - - 19.8 12.5 - - 7 -20.3 Chegada 8 - - - ocup 22.5 22.0 - 7.8 - 8 -21.8 Partida1 7 - - livre - - - - - - - -22.5 Partida2 8 - - - - livre - - - - - - -Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 76/112

Nível de detalhe dos modelos de simulação Computação CientíficaNível de detalhe dos modelos de simulação- O nível de detalhe dum modelo é a quantidade de aspetos do sistema real que são incluídos no modelo– quando maior o for nível de detalhe, maior será o tempo e o custo de modelação,– alguns aspetos podem ser desprezados sem prejuízo dos objetivos do estudo.- O nível de detalhe que o modelo deve capturar:– é determinado pelos objetivos do estudo de simulação,– deve ser consistente com os dados disponíveis para “alimentar” o modelo,– é um compromisso entre “realismo” e custo,– deve abranger aspetos que credibilizem o modelo, mesmo que sejam irrelevantes para a sua validação.Em sistemas complexos o estudo pode ser hierárquico:– primeira aproximação por via analítica ou com modelo de simulação “grosseiro”,– segunda aproximação com maior detalhe, apenas incorporando os fatores relevantes.Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 77/112

Nível de detalhe dos modelos de simulação Computação Científica- Exemplos de modelos com diferentes níveis de detalhe:- Sistema: caixas de supermercado, com n filas e n servidores- opções de nível de detalhe:– quanto à seleção da fila pelos clientes que escolhem- uma fila aleatoriamente- a fila mais curta- a fila mais curta e mudam de fila se alguma fila próxima ficar mais curta– modelar ou não filas especiais- filas expresso para pequeno volume de compras- filas prioritárias para grávidas– modelar ou não situações de exceção- interrupção para verificar preço não marcadoCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 78/112

Modelos de simulação com filas de espera Computação CientíficaModelos de simulação com filas de espera- Existem filas de espera em todas as atividades que exigem - um determinado serviço com capacidade de fornecimento limitado.- O estudo destes fenómenos é muito importante, pois são geradores de custos, seja- o tempo de espera dos clientes que vão usar o serviço, ou - o número de servidores que são colocados à disposição do sistema. - O tempo de espera pode ser reduzido à custa do aumento do número de servidores; - No entanto, com o aumento de servidores, aumenta o preço do serviço. - Assim, o problema que se coloca, na maioria dos casos, é definir- o ponto de custo total mínimo que corresponderá naturalmente a uma capacidade de serviço que sepretende determinar.Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 79/112

Modelos de simulação com filas de espera - Estrutura de uma fila Computação CientíficaModelos de simulação com filas de espera - Estrutura de uma fila- Admite-se que os clientes são gerados através de uma fonte com capacidade de produção - finita (limitada) ou - infinita (ilimitada). - Fonte finita, - o número de potenciais clientes é fixo, - o número de clientes que existem no sistema afeta, em qualquer instante, o número de potenciais clientesfora do sistema. - Fonte infinita - a interação "clientes do sistema vs potenciais clientes" é considerada sem significado.- Na generalidade dos modelos admite-se que o intervalo entre chegadas de clientes tem uma distribuiçãoestatística que deverá ser especificada.Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 80/112

Modelos de simulação com filas de espera - Estrutura de uma fila Computação Científica- O comportamento dos clientes pode ser caracterizado, sendo as decisões mais utilizadas as seguintes:- recusa (balking): clientes recusam-se a entrar no sistema se a fila é demasiada longa- desistência (reneging): clientes abandonam o sistema se esperam demasiado tempo- apostas (jockeying): cliente decide mudar de fila para conseguir o serviço mais cedo- A decisão de recusa é determinística- As decisões de desistência e apostas são probabilísticas- A indicação da dimensão da fila deve ser caracterizada, podendo ser finita ou infinita- A dimensão infinita é a mais utilizadaCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 81/112

Modelos de simulação com filas de espera - Mecanismos de escalonamento Computação CientíficaModelos de simulação com filas de espera - Mecanismos de escalonamento- Utilizados para definir como os clientes são selecionados para entrar num servidor, quanto este seencontrar disponível (são conhecidos como disciplina da filas). - Existem inúmeros mecanismos, sendo os mais usados os seguintes: - FCFS (first come first served): clientes entram no servidor pela ordem que chegam- LCFS (last come fisrt served): tem a estrutura de uma pilha- pode ser preemptiva (quando um cliente chega, o que está a ser servido é retirado do servidor e colocado notopo da pilha, entrando o novo cliente; assim que este completar o seu serviço, o cliente no topo da pilhaentra novamente no servidor)- RR (round robin): clientes são servidos por um intervalo de tempo pequeno (um quantum); se o serviço nãoé completado neste tempo, então ele é colocado no final da fila e um outro cliente entra no servidor atéesgotar o seu quantum ou termine o serviçoCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 82/112

Modelos de simulação com filas de espera - Mecanismos de escalonamento Computação Científica- PS (processos sharing): todos os clientes dividem a capacidade do centro de serviço, como se executassemem paralelo (comparada a RR, com quantum = 0)- IS (infinite server): não existe fila, todos os clientes são servidos assim que chegam ao centro de serviço- com prioridades: clientes entram nos servidores de acordo com classes de prioridades preestabelecidas- nonpreemptive (PRTY - nonpreemptive priority) - o cliente em serviço não é afetado quando um cliente commaior prioridade chega ao centro- preemptive (PRTYPR - preemptive-resume priority) - a chegada de um cliente com prioridade superior tira deserviço o de prioridade mais baixa (que está a ser servido), que só reentrará no servidor quando todos osclientes com prioridades mais elevadas que a sua forem servidosCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 83/112

Modelos de simulação com filas de espera - Centros de serviço Computação CientíficaModelos de simulação com filas de espera - Centros de serviço- Um centro (mecanismo) de serviço consiste em - um ou mais servidores (ou postos de atendimento), correspondentes a recursos do sistema modelado, e - uma área de espera (fila) para os clientes que irão ser servidos (atendidos). - As estruturas mais comuns são: (a) 1 fila e1 servidor(b) 1 fila e2 servidores(c) 2 filas e1 servidor(d) 1 filavários servidores(e) várias filas e1 servidor(f) várias filas evários servidoresCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 84/112

Modelos de simulação com filas de espera - Centros de serviço Computação Científica- Um sistema pode ser modelado usando vários centros de serviço interligados (com várias fases). - Quando um cliente deixa um centro de serviço, deverá existir um método para determinar qual o centrode serviço para onde seguirá aquele cliente; este processo denomina-se de roteamento. - Estruturas mais comuns, paracada centro, são:(a) 1 fila e1 servidor(b) 1 fila e vários servidores(c) várias filas evários servidoresCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 85/112

Modelos de simulação com filas de espera - Centros de serviço Computação Científica- Todos estes modelos são abertos (a), pois os centros de serviço são utilizados uma só vez. - Os modelos em que os seus centros de serviço são utilizados mais do que uma vez, designam-se porfechados (b) ou mistos (c).Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 86/112

Exemplo Computação CientíficaExemploEnunciado do problema:Uma determinada Gasolineira com apenas 1 Bomba de Combustível funciona da seguinte forma:Os clientes ao chegarem à Gasolineira com a sua viatura dirigem-se à sua única Bomba onde o funcionárioabastece a viatura e procede ao respetivo pagamento, caso o pagamento seja em dinheiro. Se o pagamentofor feito através de Cartão (de Crédito ou de Débito), o cliente terá que se dirigir a um outro Posto deAtendimento onde se encontra outro funcionário para proceder ao respetivo pagamento.Objetivos:- Estimar os tempos médios de espera dos clientes na Gasolineira em cada Fila.- Estimar a percentagem de clientes que passam pelas Filas.Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 87/112

Exemplo Computação Científica- Considere-se que os tempos de chegada dos Clientes à Gasolineira e os tempos gastos por cada um deles naBomba e no Posto de Pagamento com Cartão são os que constam na tabela seguinte:Cliente Instante de chegada àGasolineira (min) Tempo de Abastecimento (epagamento em dinheiro) (min) Tempo de Pagamento comCartão (min)1 6 9 02 14 8 03 17 7 04 21 8 05 26 6 36 35 7 27 44 8 0a) Simule o sistema, considerando os dados que constam na tabela.b) Quais os tempos médios de espera em cada Fila? Qual a percentagem de clientes que passaram por cada Fila?Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 88/112

Exemplo Computação CientíficaClock TipoEvento Cl. Próx.Cheg. Fila Bomba(Abast.) EstadoBomba Próx.PartidaBomba Fila Pag.Cartão EstadoPostoPag. Próx.PartidaP. Pag. TemposEsperaBomba Cls.FilaBomba TemposEsperaP. Pag. Cls. FilaP. Pag.0 - - 6 [ ] Livre [ ] Livre 0 0 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 89/112

Exemplo Computação CientíficaClock TipoEvento Cl. Próx.Cheg. Fila Bomba(Abast.) EstadoBomba Próx.PartidaBomba Fila Pag.Cartão EstadoPostoPag. Próx.PartidaP. Pag. TemposEsperaBomba Cls.FilaBomba TemposEsperaP. Pag. Cls. FilaP. Pag.0 - - 6 [ ] Livre [ ] Livre 0 0 0 06 Cheg. 1 14 [ ] Ocup. 15 [ ] Livre 0 0 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 90/112

Exemplo Computação CientíficaClock TipoEvento Cl. Próx.Cheg. Fila Bomba(Abast.) EstadoBomba Próx.PartidaBomba Fila Pag.Cartão EstadoPostoPag. Próx.PartidaP. Pag. TemposEsperaBomba Cls.FilaBomba TemposEsperaP. Pag. Cls. FilaP. Pag.0 - - 6 [ ] Livre [ ] Livre 0 0 0 06 Cheg. 1 14 [ ] Ocup. 15 [ ] Livre 0 0 0 014 Cheg. 2 17 [14] Ocup. 15 [ ] Livre 0 1 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 91/112

Exemplo Computação CientíficaClock TipoEvento Cl. Próx.Cheg. Fila Bomba(Abast.) EstadoBomba Próx.PartidaBomba Fila Pag.Cartão EstadoPostoPag. Próx.PartidaP. Pag. TemposEsperaBomba Cls.FilaBomba TemposEsperaP. Pag. Cls. FilaP. Pag.0 - - 6 [ ] Livre [ ] Livre 0 0 0 06 Cheg. 1 14 [ ] Ocup. 15 [ ] Livre 0 0 0 014 Cheg. 2 17 [14] Ocup. 15 [ ] Livre 0 1 0 015 Part. B 1 17 [ ] Ocup. 23 [ ] Livre 1 0 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 92/112

Exemplo Computação CientíficaClock TipoEvento Cl. Próx.Cheg. Fila Bomba(Abast.) EstadoBomba Próx.PartidaBomba Fila Pag.Cartão EstadoPostoPag. Próx.PartidaP. Pag. TemposEsperaBomba Cls.FilaBomba TemposEsperaP. Pag. Cls. FilaP. Pag.0 - - 6 [ ] Livre [ ] Livre 0 0 0 06 Cheg. 1 14 [ ] Ocup. 15 [ ] Livre 0 0 0 014 Cheg. 2 17 [14] Ocup. 15 [ ] Livre 0 1 0 015 Part. B 1 17 [ ] Ocup. 23 [ ] Livre 1 0 0 017 Cheg. 3 21 [17] Ocup. 23 [ ] Livre 0 1 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 93/112

Exemplo Computação CientíficaClock TipoEvento Cl. Próx.Cheg. Fila Bomba(Abast.) EstadoBomba Próx.PartidaBomba Fila Pag.Cartão EstadoPostoPag. Próx.PartidaP. Pag. TemposEsperaBomba Cls.FilaBomba TemposEsperaP. Pag. Cls. FilaP. Pag.0 - - 6 [ ] Livre [ ] Livre 0 0 0 06 Cheg. 1 14 [ ] Ocup. 15 [ ] Livre 0 0 0 014 Cheg. 2 17 [14] Ocup. 15 [ ] Livre 0 1 0 015 Part. B 1 17 [ ] Ocup. 23 [ ] Livre 1 0 0 017 Cheg. 3 21 [17] Ocup. 23 [ ] Livre 0 1 0 021 Cheg. 4 26 [17, 21] Ocup. 23 [ ] Livre 0 1 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 94/112

Exemplo Computação CientíficaClock TipoEvento Cl. Próx.Cheg. Fila Bomba(Abast.) EstadoBomba Próx.PartidaBomba Fila Pag.Cartão EstadoPostoPag. Próx.PartidaP. Pag. TemposEsperaBomba Cls.FilaBomba TemposEsperaP. Pag. Cls. FilaP. Pag.0 - - 6 [ ] Livre [ ] Livre 0 0 0 06 Cheg. 1 14 [ ] Ocup. 15 [ ] Livre 0 0 0 014 Cheg. 2 17 [14] Ocup. 15 [ ] Livre 0 1 0 015 Part. B 1 17 [ ] Ocup. 23 [ ] Livre 1 0 0 017 Cheg. 3 21 [17] Ocup. 23 [ ] Livre 0 1 0 021 Cheg. 4 26 [17, 21] Ocup. 23 [ ] Livre 0 1 0 023 Part. B 2 26 [21] Ocup. 30 [ ] Livre 6 0 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 95/112

Exemplo Computação CientíficaClock TipoEvento Cl. Próx.Cheg. Fila Bomba(Abast.) EstadoBomba Próx.PartidaBomba Fila Pag.Cartão EstadoPostoPag. Próx.PartidaP. Pag. TemposEsperaBomba Cls.FilaBomba TemposEsperaP. Pag. Cls. FilaP. Pag.0 - - 6 [ ] Livre [ ] Livre 0 0 0 06 Cheg. 1 14 [ ] Ocup. 15 [ ] Livre 0 0 0 014 Cheg. 2 17 [14] Ocup. 15 [ ] Livre 0 1 0 015 Part. B 1 17 [ ] Ocup. 23 [ ] Livre 1 0 0 017 Cheg. 3 21 [17] Ocup. 23 [ ] Livre 0 1 0 021 Cheg. 4 26 [17, 21] Ocup. 23 [ ] Livre 0 1 0 023 Part. B 2 26 [21] Ocup. 30 [ ] Livre 6 0 0 026 Cheg. 5 35 [21, 26] Ocup. 30 [ ] Livre 0 1 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 96/112

Exemplo Computação CientíficaClock TipoEvento Cl. Próx.Cheg. Fila Bomba(Abast.) EstadoBomba Próx.PartidaBomba Fila Pag.Cartão EstadoPostoPag. Próx.PartidaP. Pag. TemposEsperaBomba Cls.FilaBomba TemposEsperaP. Pag. Cls. FilaP. Pag.0 - - 6 [ ] Livre [ ] Livre 0 0 0 06 Cheg. 1 14 [ ] Ocup. 15 [ ] Livre 0 0 0 014 Cheg. 2 17 [14] Ocup. 15 [ ] Livre 0 1 0 015 Part. B 1 17 [ ] Ocup. 23 [ ] Livre 1 0 0 017 Cheg. 3 21 [17] Ocup. 23 [ ] Livre 0 1 0 021 Cheg. 4 26 [17, 21] Ocup. 23 [ ] Livre 0 1 0 023 Part. B 2 26 [21] Ocup. 30 [ ] Livre 6 0 0 026 Cheg. 5 35 [21, 26] Ocup. 30 [ ] Livre 0 1 0 030 Part. B 3 35 [26] Ocup. 38 [ ] Livre 9 0 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 97/112

Exemplo Computação CientíficaClock TipoEvento Cl. Próx.Cheg. Fila Bomba(Abast.) EstadoBomba Próx.PartidaBomba Fila Pag.Cartão EstadoPostoPag. Próx.PartidaP. Pag. TemposEsperaBomba Cls.FilaBomba TemposEsperaP. Pag. Cls. FilaP. Pag.0 - - 6 [ ] Livre [ ] Livre 0 0 0 06 Cheg. 1 14 [ ] Ocup. 15 [ ] Livre 0 0 0 014 Cheg. 2 17 [14] Ocup. 15 [ ] Livre 0 1 0 015 Part. B 1 17 [ ] Ocup. 23 [ ] Livre 1 0 0 017 Cheg. 3 21 [17] Ocup. 23 [ ] Livre 0 1 0 021 Cheg. 4 26 [17, 21] Ocup. 23 [ ] Livre 0 1 0 023 Part. B 2 26 [21] Ocup. 30 [ ] Livre 6 0 0 026 Cheg. 5 35 [21, 26] Ocup. 30 [ ] Livre 0 1 0 030 Part. B 3 35 [26] Ocup. 38 [ ] Livre 9 0 0 035 Cheg. 6 44 [26, 35] Ocup. 38 [ ] Livre 0 1 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 98/112

Exemplo Computação CientíficaClock TipoEvento Cl. Próx.Cheg. Fila Bomba(Abast.) EstadoBomba Próx.PartidaBomba Fila Pag.Cartão EstadoPostoPag. Próx.PartidaP. Pag. TemposEsperaBomba Cls.FilaBomba TemposEsperaP. Pag. Cls. FilaP. Pag.0 - - 6 [ ] Livre [ ] Livre 0 0 0 06 Cheg. 1 14 [ ] Ocup. 15 [ ] Livre 0 0 0 014 Cheg. 2 17 [14] Ocup. 15 [ ] Livre 0 1 0 015 Part. B 1 17 [ ] Ocup. 23 [ ] Livre 1 0 0 017 Cheg. 3 21 [17] Ocup. 23 [ ] Livre 0 1 0 021 Cheg. 4 26 [17, 21] Ocup. 23 [ ] Livre 0 1 0 023 Part. B 2 26 [21] Ocup. 30 [ ] Livre 6 0 0 026 Cheg. 5 35 [21, 26] Ocup. 30 [ ] Livre 0 1 0 030 Part. B 3 35 [26] Ocup. 38 [ ] Livre 9 0 0 035 Cheg. 6 44 [26, 35] Ocup. 38 [ ] Livre 0 1 0 038 Part. B 4 44 [35] Ocup. 44 [ ] Livre 12 0 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 99/112

Exemplo Computação CientíficaClock TipoEvento Cl. Próx.Cheg. Fila Bomba(Abast.) EstadoBomba Próx.PartidaBomba Fila Pag.Cartão EstadoPostoPag. Próx.PartidaP. Pag. TemposEsperaBomba Cls.FilaBomba TemposEsperaP. Pag. Cls. FilaP. Pag.0 - - 6 [ ] Livre [ ] Livre 0 0 0 06 Cheg. 1 14 [ ] Ocup. 15 [ ] Livre 0 0 0 014 Cheg. 2 17 [14] Ocup. 15 [ ] Livre 0 1 0 015 Part. B 1 17 [ ] Ocup. 23 [ ] Livre 1 0 0 017 Cheg. 3 21 [17] Ocup. 23 [ ] Livre 0 1 0 021 Cheg. 4 26 [17, 21] Ocup. 23 [ ] Livre 0 1 0 023 Part. B 2 26 [21] Ocup. 30 [ ] Livre 6 0 0 026 Cheg. 5 35 [21, 26] Ocup. 30 [ ] Livre 0 1 0 030 Part. B 3 35 [26] Ocup. 38 [ ] Livre 9 0 0 035 Cheg. 6 44 [26, 35] Ocup. 38 [ ] Livre 0 1 0 038 Part. B 4 44 [35] Ocup. 44 [ ] Livre 12 0 0 044 Cheg. 7 [35, 44] Ocup. 44 [ ] Livre 0 1 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 100/112

Exemplo Computação CientíficaClock TipoEvento Cl. Próx.Cheg. Fila Bomba(Abast.) EstadoBomba Próx.PartidaBomba Fila Pag.Cartão EstadoPostoPag. Próx.PartidaP. Pag. TemposEsperaBomba Cls.FilaBomba TemposEsperaP. Pag. Cls. FilaP. Pag.0 - - 6 [ ] Livre [ ] Livre 0 0 0 06 Cheg. 1 14 [ ] Ocup. 15 [ ] Livre 0 0 0 014 Cheg. 2 17 [14] Ocup. 15 [ ] Livre 0 1 0 015 Part. B 1 17 [ ] Ocup. 23 [ ] Livre 1 0 0 017 Cheg. 3 21 [17] Ocup. 23 [ ] Livre 0 1 0 021 Cheg. 4 26 [17, 21] Ocup. 23 [ ] Livre 0 1 0 023 Part. B 2 26 [21] Ocup. 30 [ ] Livre 6 0 0 026 Cheg. 5 35 [21, 26] Ocup. 30 [ ] Livre 0 1 0 030 Part. B 3 35 [26] Ocup. 38 [ ] Livre 9 0 0 035 Cheg. 6 44 [26, 35] Ocup. 38 [ ] Livre 0 1 0 038 Part. B 4 44 [35] Ocup. 44 [ ] Livre 12 0 0 044 Cheg. 7 [35, 44] Ocup. 44 [ ] Livre 0 1 0 044 Part. B 5 [44] Ocup. 51 [ ] Ocup. 47 9 0 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 101/112

Exemplo Computação CientíficaClock TipoEvento Cl. Próx.Cheg. Fila Bomba(Abast.) EstadoBomba Próx.PartidaBomba Fila Pag.Cartão EstadoPostoPag. Próx.PartidaP. Pag. TemposEsperaBomba Cls.FilaBomba TemposEsperaP. Pag. Cls. FilaP. Pag.0 - - 6 [ ] Livre [ ] Livre 0 0 0 06 Cheg. 1 14 [ ] Ocup. 15 [ ] Livre 0 0 0 014 Cheg. 2 17 [14] Ocup. 15 [ ] Livre 0 1 0 015 Part. B 1 17 [ ] Ocup. 23 [ ] Livre 1 0 0 017 Cheg. 3 21 [17] Ocup. 23 [ ] Livre 0 1 0 021 Cheg. 4 26 [17, 21] Ocup. 23 [ ] Livre 0 1 0 023 Part. B 2 26 [21] Ocup. 30 [ ] Livre 6 0 0 026 Cheg. 5 35 [21, 26] Ocup. 30 [ ] Livre 0 1 0 030 Part. B 3 35 [26] Ocup. 38 [ ] Livre 9 0 0 035 Cheg. 6 44 [26, 35] Ocup. 38 [ ] Livre 0 1 0 038 Part. B 4 44 [35] Ocup. 44 [ ] Livre 12 0 0 044 Cheg. 7 [35, 44] Ocup. 44 [ ] Livre 0 1 0 044 Part. B 5 [44] Ocup. 51 [ ] Ocup. 47 9 0 0 047 Part. P 5 [44] Ocup. 51 [ ] Livre 0 0 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 102/112

Exemplo Computação CientíficaClock TipoEvento Cl. Próx.Cheg. Fila Bomba(Abast.) EstadoBomba Próx.PartidaBomba Fila Pag.Cartão EstadoPostoPag. Próx.PartidaP. Pag. TemposEsperaBomba Cls.FilaBomba TemposEsperaP. Pag. Cls. FilaP. Pag.0 - - 6 [ ] Livre [ ] Livre 0 0 0 06 Cheg. 1 14 [ ] Ocup. 15 [ ] Livre 0 0 0 014 Cheg. 2 17 [14] Ocup. 15 [ ] Livre 0 1 0 015 Part. B 1 17 [ ] Ocup. 23 [ ] Livre 1 0 0 017 Cheg. 3 21 [17] Ocup. 23 [ ] Livre 0 1 0 021 Cheg. 4 26 [17, 21] Ocup. 23 [ ] Livre 0 1 0 023 Part. B 2 26 [21] Ocup. 30 [ ] Livre 6 0 0 026 Cheg. 5 35 [21, 26] Ocup. 30 [ ] Livre 0 1 0 030 Part. B 3 35 [26] Ocup. 38 [ ] Livre 9 0 0 035 Cheg. 6 44 [26, 35] Ocup. 38 [ ] Livre 0 1 0 038 Part. B 4 44 [35] Ocup. 44 [ ] Livre 12 0 0 044 Cheg. 7 [35, 44] Ocup. 44 [ ] Livre 0 1 0 044 Part. B 5 [44] Ocup. 51 [ ] Ocup. 47 9 0 0 047 Part. P 5 [44] Ocup. 51 [ ] Livre 0 0 0 051 Part. B 6 [ ] Ocup. 59 [ ] Ocup. 53 7 0 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 103/112

Exemplo Computação CientíficaClock TipoEvento Cl. Próx.Cheg. Fila Bomba(Abast.) EstadoBomba Próx.PartidaBomba Fila Pag.Cartão EstadoPostoPag. Próx.PartidaP. Pag. TemposEsperaBomba Cls.FilaBomba TemposEsperaP. Pag. Cls. FilaP. Pag.0 - - 6 [ ] Livre [ ] Livre 0 0 0 06 Cheg. 1 14 [ ] Ocup. 15 [ ] Livre 0 0 0 014 Cheg. 2 17 [14] Ocup. 15 [ ] Livre 0 1 0 015 Part. B 1 17 [ ] Ocup. 23 [ ] Livre 1 0 0 017 Cheg. 3 21 [17] Ocup. 23 [ ] Livre 0 1 0 021 Cheg. 4 26 [17, 21] Ocup. 23 [ ] Livre 0 1 0 023 Part. B 2 26 [21] Ocup. 30 [ ] Livre 6 0 0 026 Cheg. 5 35 [21, 26] Ocup. 30 [ ] Livre 0 1 0 030 Part. B 3 35 [26] Ocup. 38 [ ] Livre 9 0 0 035 Cheg. 6 44 [26, 35] Ocup. 38 [ ] Livre 0 1 0 038 Part. B 4 44 [35] Ocup. 44 [ ] Livre 12 0 0 044 Cheg. 7 [35, 44] Ocup. 44 [ ] Livre 0 1 0 044 Part. B 5 [44] Ocup. 51 [ ] Ocup. 47 9 0 0 047 Part. P 5 [44] Ocup. 51 [ ] Livre 0 0 0 051 Part. B 6 [ ] Ocup. 59 [ ] Ocup. 53 7 0 0 053 Part. P 6 [ ] Ocup. 59 [ ] Livre 0 0 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 104/112

Exemplo Computação CientíficaClock TipoEvento Cl. Próx.Cheg. Fila Bomba(Abast.) EstadoBomba Próx.PartidaBomba Fila Pag.Cartão EstadoPostoPag. Próx.PartidaP. Pag. TemposEsperaBomba Cls.FilaBomba TemposEsperaP. Pag. Cls. FilaP. Pag.0 - - 6 [ ] Livre [ ] Livre 0 0 0 06 Cheg. 1 14 [ ] Ocup. 15 [ ] Livre 0 0 0 014 Cheg. 2 17 [14] Ocup. 15 [ ] Livre 0 1 0 015 Part. B 1 17 [ ] Ocup. 23 [ ] Livre 1 0 0 017 Cheg. 3 21 [17] Ocup. 23 [ ] Livre 0 1 0 021 Cheg. 4 26 [17, 21] Ocup. 23 [ ] Livre 0 1 0 023 Part. B 2 26 [21] Ocup. 30 [ ] Livre 6 0 0 026 Cheg. 5 35 [21, 26] Ocup. 30 [ ] Livre 0 1 0 030 Part. B 3 35 [26] Ocup. 38 [ ] Livre 9 0 0 035 Cheg. 6 44 [26, 35] Ocup. 38 [ ] Livre 0 1 0 038 Part. B 4 44 [35] Ocup. 44 [ ] Livre 12 0 0 044 Cheg. 7 [35, 44] Ocup. 44 [ ] Livre 0 1 0 044 Part. B 5 [44] Ocup. 51 [ ] Ocup. 47 9 0 0 047 Part. P 5 [44] Ocup. 51 [ ] Livre 0 0 0 051 Part. B 6 [ ] Ocup. 59 [ ] Ocup. 53 7 0 0 053 Part. P 6 [ ] Ocup. 59 [ ] Livre 0 0 0 059 Part. B 7 [ ] Livre [ ] Livre 0 0 0 0Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 105/112

Análise de dados de entrada (inputs) Computação CientíficaAnálise de dados de entrada (inputs)- Perante o problema de - existir dados recolhidos no sistema real (observações) mas - desconhecer-se a distribuição de que provêm (se alguma!), deve-se começar por fazer o ajuste de uma distribuição teórica a um conjunto de observações.- As distribuições teóricas podem ser divididas em dois grupos: - contínuas- discretas- As distribuições contínuas mais usadas em simulação são: - uniforme- exponencial negativa- normal- log-normal- triangularAs distribuições discretas mais usadas são: - empírica- de PoissonCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 106/112

Análise de resultados (outputs) Computação CientíficaAnálise de resultados (outputs)- A análise de resultados consiste na estimação, ou caracterização estatística, das verdadeiras medidas dedesempenho do modelo:– a simulação é uma técnica estatística de amostragem em computador;– a análise de resultados exige pelo menos tanta atenção quanto o desenvolvimento do modelo.- É errado executar um modelo uma única vez durante um tempo arbitrário e aceitar os resultados como“A resposta”.Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 107/112

Análise de resultados - Medidas de desempenho típicas Computação CientíficaAnálise de resultados - Medidas de desempenho típicas- Medidas de desempenho associadas à Fila de espera:- número médio de entidades na fila de espera (ou tamanho médio da fila)- número máximo de entidades na fila de espera- tempo médio de espera das entidades na fila- proporção de tempo em que houve pelo menos n clientes na fila.- Medidas de desempenho associadas ao Servidor:- taxa de ocupação do servidor- número médio de entidades em processamento- Medidas de desempenho associadas ao Sistema:- número de entidades processadas pelo sistema (contagem das entidades)- número médio de entidades no sistema- tempo médio de permanência das entidades no sistema- tempo de espera total médio das entidades (soma dos tempos de espera)Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 108/112

Análise de resultados - Medidas de desempenho típicas Computação Científica- O cálculo das medidas de desempenho segue a tabela seguinte:Medida de desempenho Definição EstimativaTempo médio de espera das entidades na fila d(n) = limn

∑i=1n Din d(n) =

∑i=1n DinNúmero médio de entidades na fila q(n) = ∑i=0 (i .pi) q(n) =

∑i=0 (i . T i)T (n)Taxa de ocupação do servidor u(n) u(n) =ST (n) em que,n : número de entidades simuladasT(n) : tempo total da simulação até observar as n entidadesDi : tempo de espera na fila da entidade ipi : proporção de tempo em que estiveram i entidades na fila (Σ pi = 1)Ti : intervalo de tempo em que estiveram i entidades na fila (Σ Ti = T(n))u(n) : proporção de tempo em que o servidor esteve ocupadoS : intervalo de tempo em que o servidor esteve ocupado (S ≤ T(n))Capítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 109/112

Análise de resultados - Medidas de desempenho típicas Computação Científica- Por amostragem, número médio de entidades na fila é estimado pela expressão q2(n) =

∑k=0K ckKem que,K : número de observações efetuadas no tempo T(n)ck : número de entidades na fila na observação k- Dois níveis de variabilidade dos resultados da simulação:1. Numa corrida variabilidade entre entidades2. Entre corridas independentes variabilidade entre períodos de tempoAnálise de resultados de um sistemaCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 110/112

Análise de resultados - Medidas de desempenho típicas Computação Científica- Parâmetros a selecionar para a recolha de resultados:1. período de aquecimento (warm-up)- tempo até o sistema atingir um regime estável representativo- durante este período não são recolhidas estatísticas2. período de recolha de resultados- período em que são registadas estatísticas- tempo de duração da simulação com o sistema a funcionar numa sucessão de estados típicos- deve ter a duração do período que se quer analisar (dia, semana, mês) ou um múltiplo deste3. número de corridas independentes do modelo- repetições da simulação do mesmo modelo- em cada corrida são utilizadas sequências distintas de números aleatórios para gerar tempos independentes- mais repetições maior precisão dos intervalos de confiançaCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 111/112

Análise de resultados - Medidas de desempenho típicas Computação Científica- Seleção dos parâmetros de recolha de resultados- Como determinar o período de warm-up ?– executar a simulação durante um tempo arbitrário– verificar num gráfico o tempo em que as medidas de interesse demoram a “estabilizar”- Como determinar a duração da simulação ?– deve ser um intervalo múltiplo do período de interesse para o estudo- ex: objetivo é a produção semanal período de 1 semana, 2 semanas, 1 mês– deve incluir várias repetições de eventos intermitentes ou imprevistos- ex: manutenção e avarias de máquinas- Como selecionar o número decorridas da simulação?1. Começar com 5 corridas independentes de cada cenário2. Determinar IC para as medidas de desempenho de interesse para o estudo3. Verificar a precisão da medida (amplitude do intervalo de confiança)4. Se a amplitude não for suficientemente baixa, aumentar o número de corridasCapítulo 4. Modelação e Simulação de Sistemas - Modelos dinâmicos discretos 112/112

Modelos de simulação estáticos - método de Monte Carlo Computação CientíficaModelos de simulação estáticos - método de Monte Carlo- Estes modelos caracterizam-se por a passagem do tempo ser irrelevante.- É um modelo de simulação estático usado para modelar fenómenos probabilísticos cujascaracterísticas não mudam com o tempo. - Necessita de números pseudo-aleatórios, tal como os modelos de simulação dinâmicos, e - Pode também ser usado para avaliar expressões não probabilísticas através de métodosprobabilísticos.Capítulo 4. Modelação e Simulação de Sistemas 1/11

Fases da simulação de Monte Carlo Computação CientíficaFases da simulação de Monte Carlo - De modo geral, a simulação de Monte Carlo é definida por duas fases: - preparação e - aplicação. - A fase da preparação é composta pelos seguintes passos: 1.Recolher os dados brutos (cronometrar do próprio sistema);2.Tabular os dados (semelhante ao processo usado na Teoria de Filas): - construir a tabela com os intervalos de valores (ou os próprios valores) e - determinar as suas frequências;3.Calcular o ponto médio dos intervalos (caso sejam usados);4.Calcular a frequência acumulada de cada ponto médio ou valor;5.Identificar os intervalos de frequência para cada ponto médio ou valor.Capítulo 4. Modelação e Simulação de Sistemas 2/11

Fases da simulação de Monte Carlo Computação Científica- A fase da aplicação é composta pelos seguintes passos:6.Através de uma Tabela de Números Aleatórios ou de um programa Gerador de Números Aleatórios, escolherum número;7.Procurar, na tabela de intervalos de frequência, o intervalo onde está o número escolhido;8.O valor a ser usado na simulação é o ponto médio deste intervalo ou valor.Capítulo 4. Modelação e Simulação de Sistemas 3/11

Exemplo Computação CientíficaExemploConsidere-se uma lavagem automática e analise-se o tempo entre chegadas de carros.Passo 1. Recolha de dados brutos13.6 27.9 1.1 12.3 9.7 12.7 15.3 4.1 13.5 0.710.8 29.5 5.8 9.9 6.1 5.5 7.7 17.4 7.7 26.415.9 5.9 11.6 2.7 2.9 1.7 4.6 35.5 15.8 17.50.6 4.0 18.1 21.8 3.8 14.6 12.9 8.5 0.4 2.533.1 39.8 6.4 1.8 8.3 11.9 4.4 16.2 6.8 0.318.0 12.1 16.5 8.5 12.5 1.4 5.6 8.2 0.9 17.910.9 24.4 1.0 28.1 2.0 42.7 29.9 4.9 3.1 8.10.4 10.4 8.1 2.7 13.0 0.7 4.8 2.8 4.3 3.428.5 28.4 3.0 15.5 17.3 1.6 17.7 1.2 13.4 14.114.9 4.3 1.6 0.6 6.9 22.6 10.2 7.3 3.8 10.4Os valores marcados correspondem aos extremos (menor = 0.3 e maior = 42.7).Capítulo 4. Modelação e Simulação de Sistemas 4/11

Exemplo Computação CientíficaPasso 2. Tabular os dados - identificar os intervalos e determinar as suas frequências.Processo de elaboração do histograma- Determinação o número de intervalos. - Aproximação sugerida: raiz quadrada do número de observações realizadas (método empírico). - Ex: para as 100 tempos da tabela em cima, um número perto de 10 intervalos é adequado: √100 = 10.- No entanto, como a variação dos valores das observações é de 0.3 a 42.7, optou-se por usar 9 intervalos(de amplitude 5):[0, 5[, [5, 10[, [10, 15[, [15, 20[, [20, 25[, [25, 30[, [30, 35[, [35, 40[ e [40, 45[. Capítulo 4. Modelação e Simulação de Sistemas 5/11

Exemplo Computação Científica- O histograma resultante é o seguinte (com as frequências):Intervalo Observações Frequências Cálculo das frequências0 5 35 0.35 35/1005 10 19 0.19 19/10010 15 19 0.19 19/10015 20 13 0.13 13/10020 25 3 0.03 3/1005 30 7 0.07 7/10030 35 1 0.01 1/10035 40 2 0.02 2/10040 45 1 0.01 1/100TOTAL 100 1.00Capítulo 4. Modelação e Simulação de Sistemas 6/11

Exemplo Computação CientíficaPasso 3. Cálculo do ponto médio dos intervalos.Intervalo Observações Frequência Ponto médio0 5 35 0.35 2.55 10 19 0.19 7.510 15 19 0.19 12.515 20 13 0.13 17.520 25 3 0.03 22.55 30 7 0.07 27.530 35 1 0.01 32.535 40 2 0.02 37.540 45 1 0.01 42.5TOTAL 100 1.00Capítulo 4. Modelação e Simulação de Sistemas 7/11

Exemplo Computação CientíficaPasso 4. Calcular a frequência acumulada:Intervalo Observações Ponto médio Frequência FrequênciaAcumulada0 5 35 2.5 0.35 0.35 0.355 10 19 7.5 0.19 0.35 + 0.19 0.5410 15 19 12.5 0.19 0.54 + 0.19 0.7315 20 13 17.5 0.13 0.73 + 0.13 0.8620 25 3 22.5 0.03 0.86 + 0.03 0.895 30 7 27.5 0.07 0.89 + 0.07 0.9630 35 1 32.5 0.01 0.96 + 0.01 0.9735 40 2 37.5 0.02 0.97 + 0.02 0.9940 45 1 42.5 0.01 0.99 + 0.01 1.00Capítulo 4. Modelação e Simulação de Sistemas 8/11

Exemplo Computação CientíficaPasso 5. Identificar os intervalos de frequência:Intervalo Observações Ponto médio Frequência Frequênciaacumulada Intervalosfrequência0 5 35 2.5 0.35 0.35 0.01 0.355 10 19 7.5 0.19 0.54 0.36 0.5410 15 19 12.5 0.19 0.73 0.55 0.7315 20 13 17.5 0.13 0.86 0.74 0.8620 25 3 22.5 0.03 0.89 0.87 0.895 30 7 27.5 0.07 0.96 0.90 0.9630 35 1 32.5 0.01 0.97 0.9735 40 2 37.5 0.02 0.99 0.98 0.9940 45 1 42.5 0.01 1.00 1.00Capítulo 4. Modelação e Simulação de Sistemas 9/11

Exemplo Computação CientíficaPasso 6. Escolher valor na tabela de números aleatórios:O que é?- Lista de valores gerada através de algoritmo computacional (programa gerador de números aleatórios, ouGNA).- Os valores sorteados são uniformemente distribuidos entre 0 e 1 e multiplicados por 100000. - A tabela seguinte apresenta parcialmente os valores obtidos:98543 59525 21114 73109 69095 ...87060 95250 50277 17486 7962 ...82170 68014 7937 98003 40146 ...... ... ... ... ... ...Capítulo 4. Modelação e Simulação de Sistemas 10/11

Exemplo Computação CientíficaComo usar?- Escolher os dois últimos algarismos de cada número, - percorrendo a tabela da esquerda para a direita e de cima para baixo. - Exemplo: o primeiro número a ser escolhido é 43Intervalo Ponto médio Intervalos0 5 2.5 0.01 0.355 10 7.5 0.36 0.54 0.4310 15 12.5 0.55 0.7315 20 17.5 0.74 0.8620 25 22.5 0.87 0.895 30 27.5 0.90 0.9630 35 32.5 0.9735 40 37.5 0.98 0.9940 45 42.5 1.00Capítulo 4. Modelação e Simulação de Sistemas 11/11