Tópicos - Departamento de Informáticacbarrico/Disciplinas/ComputacaoCientifica/Downloads/... ·...

81
Modelação e Modelação de Sistemas Tópicos 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 Computação Científica

Transcript of Tópicos - Departamento de Informáticacbarrico/Disciplinas/ComputacaoCientifica/Downloads/... ·...

Modelação e Modelação de Sistemas Tópicos

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 Computação Científica

Modelação e Modelação de Sistemas A simulação de sistemas

A simulação de sistemas

- A simulação computacional de sistemas, ou simplesmente simulação, consiste na utilização de

determinadas técnicas matemáticas, utilizadas em computadores digitais, as quais permitem imitar o

funcionamento 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:

- descrever o comportamento do sistema;

- construir teorias e hipóteses considerando as observações efetuadas;

- usar o modelo para prever o comportamento futuro, isto é,

os efeitos produzidos por alterações no sistema ou nos métodos utilizados na sua operação.

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelação e Modelação de Sistemas A simulação de sistemas

- 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

- Dois casos 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 Computação Científica

Modelação e Modelação de Sistemas A simulação de sistemas

- As técnicas usadas são facilmente compreensíveis e justificáveis, devido a vários fatores:

- Tempo:

- é possível realizar experiências que 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 estado

do sistema durante a execução do modelo;

- Repetição:

- depois de construído, um modelo de representação pode ser executado várias vezes a um custo muito baixo

e de forma 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 Computação Científica

Modelação e Modelação de Sistemas A simulação de sistemas

- 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 mais

precisos sem que seja preciso interferir no sistema real.

- Tais resultados, quando analisados estatisticamente, produzem informações que podem contribuir

grandemente para a tomada de decisões que visam a solução de problemas.

- Considerando os modelos como um dos métodos de representação de sistemas, o seguinte conceito

pode ser adotado:

“Simulação é uma técnica numérica para realizar experiências num computador digital, a qual envolve

certos tipos de modelos lógicos que descrevem o comportamento de um sistema sobre extensos

intervalos de tempo.”

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelação e Modelação de Sistemas Modelos de simulação

Modelos 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

no problema (envolve recolha de amostras);

- Estudo do sistema:

- descrever o sistema em termos de componentes, atividades, entidades, eventos e restrições, propósitos que

motivaram 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ções

para o problema real;

- Operacionalizar solução:

- executar alterações no sistema real com base nos resultados da simulação;

- Realimentação:

- reelaboração parcial do trabalho de acordo com os resultados obtidos na interferência sobre o sistema real.

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelação e Modelação de Sistemas Modelos de simulação

- 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 Computação Científica

Modelação e Modelação de Sistemas Modelos de simulação - Sistema

Modelos de simulação - Sistema

- O que é um sistema? Quais são os 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 a

intençã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 Computação Científica

Modelação e Modelação de Sistemas Modelos de simulação - Modelo

Modelos de simulação - Modelo

- Através da execução de um modelo, é possível fazer uma estimativa do comportamento futuro deste

sistema – 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 que 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 Computação Científica

Modelação e Modelação de Sistemas Modelos de simulação - Modelo

- 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 mesmo impossibilite, a

sua compreensão e manipulação.

- Deve-se também evitar a construção de modelos demasiado simples que não representem as

propriedades desejáveis do sistema em estudo.

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelação e Modelação de Sistemas Propriedades dos modelos de simulação

Propriedades dos modelos de simulação

- Um modelo deve conter os aspetos importantes do sistema real, sem que sua complexidade

impossibilite a compreensão e manipulação do mesmo.

- 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

por 4 elementos:

- componentes,

- variáveis,

- parâmetros e

- relações funcionais.

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelação e Modelação de Sistemas Elementos de um modelo de simulação

Elementos de um modelo de simulação

- Componentes

- representam a parte do modelo de simulação 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, podem ser componentes:

- os objetos geridos,

- os agentes de gestão e

- as aplicações geridas

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelação e Modelação de Sistemas Elementos de um modelo de simulação

- 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 Computação Científica

Modelação e Modelação de Sistemas Elementos de um modelo de simulação

- 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 Computação Científica

Modelação e Modelação de Sistemas Classificação dos modelos de simulação

Classificaçã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.

- Desta forma, um modelo pode ser estocástico, dinâmico e discreto.

- Um exemplo com estas características são os modelos de simulação discretos.

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelação e Modelação de Sistemas Classificação dos modelos de simulação

- Modelos determinísticos

- não é permitido às variáveis exógenas e endógenas serem 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

- 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 Computação Científica

Modelação e Modelação de Sistemas Classificação dos modelos de simulação

- Modelos estáticos

- não consideram a variável de tempo

- o uso de modelos de simulação pode não ser recomendado pelo facto da maioria dos modelos estáticos

serem completamente determinísticos

- assim, as soluções podem normalmente ser obtidas por técnicas analíticas diretas

- Modelos dinâmicos

- são modelos matemáticos que tratam de interações variáveis com o tempo (ocorrência de uma ordem

temporal entre eventos)

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelação e Modelação de Sistemas Classificação dos modelos de simulação

- Modelo discreto

- se todas as variáveis de estado têm os seus valores alterados apenas num número contável de instantes

de tempo

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelação e Modelação de Sistemas Classificação dos modelos de simulação

- 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 Computação Científica

Modelação e Modelação de Sistemas Classificação dos modelos de simulação

- 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 tempo

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Tópicos

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 Computação Científica

Modelos de simulação dinâmicos discretos Componentes de um modelo de simulação

Componentes de um modelo de simulação

- Os modelos de simulação discretos (ou apenas simulação discreta), é um método de modelação da

evolução de um sistema com o 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:

- Entidade:

- é um objeto de interesse do sistema

- exemplos: clientes numa fila de espera, máquinas num sistema de produção.

- Atributo:

- são as propriedades de uma entidade, pois 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.

- Atividade:

- representa um determinado período de tempo com duração específica, onde se verifica o desenvolvimento

de um processo que utiliza recursos

- exemplos: fazer depósitos numa agência bancária, soldar, perfurar num sistema produtivo.

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Componentes de um modelo de simulação

- Estado do sistema:

- é o conjunto de variáveis necessárias para descrever o sistema em qualquer instante, as quais estão

relacionadas 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.

- Evento/Acontecimento:

- é uma ocorrência instantânea que altera o estado do sistema

- exemplos: chegada de um cliente, o terminar do serviço de um utente, uma nova avaria numa das

máquinas.

Os acontecimentos podem ser

- exógenos, no caso de terem origem fora do sistema, e

- endógenos, caso contrário.

- Executivo:

- trata-se de um mecanismo existente na estrutura de qualquer programa de simulação, que permite manter

permanentemente atualizada a informação sobre as entidades.

- Em particular, 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 Computação Científica

Modelos de simulação dinâmicos discretos Componentes de um modelo de simulação

- Exemplo: serviço de atendimento com um servidor

- objetivo do estudo:

- estimar o tempo médio de espera na fila

– entidades:

- cliente

- servidor

- variáveis de estado:

- estado do servidor (livre ou ocupado)

- número de clientes na fila à espera de atendimento

- instante de chegada de cada cliente ao 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 Computação Científica

Modelos de simulação dinâmicos discretos Componentes de um modelo de simulação

- 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

pode ser obtida avançando o tempo simulado de um evento para outro.

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Componentes de um modelo de simulação

- 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 computador de execução da simulação e do tempo real.

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Componentes de um modelo de simulação

- Relações entre evento, processo e atividade

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Tipos de modelação

Tipos de modelação

- Um evento acontece num ponto isolado do tempo, no qual devem ser tomadas decisões de forma a

iniciar 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:

- pela definição das mudanças nos estados que podem ocorrer em cada tempo de evento (orientada ao

Evento)

- pela descrição das atividades nas quais as entidades do sistema se envolvem (orientada à Atividade)

- pela descrição do processo através do qual as entidades do sistema fluem (orientada ao Processo)

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Modelação orientada ao Evento:

Modelaçã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 e

desenvolver 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ência

ordenada 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 Computação Científica

Modelos de simulação dinâmicos discretos Modelação orientada ao Evento:

- Método de incremento de tempo fixo

- Um relógio virtual existente no computador permite registar o tempo instante a instante, mantendo a

sequência correta dos acontecimentos.

- O tempo é atualizado por intervalos discretos uniformes (minutos, segundos, etc.), sendo o sistema

observado em cada instante, de forma a saber se existe algum evento para ter início.

Tempo

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Modelação orientada ao Evento:

- Método para o próximo evento

- O avanço é por tempo variável, pois é concretizado através dos instantes em que se verificam os

acontecimentos

- Não se analisa o período durante o qual se executa a simulação instante a instante.

Tempo

1 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 novos

eventos;

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 Computação Científica

Modelos de simulação dinâmicos discretos Modelação orientada ao Evento:

- 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

para a unidade de tempo não afetar a velocidade de computação, o que permite poupar tempo na

execução do 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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo

Exemplo

- 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 (%)

2

3

4

30

30

40

3

4

5

30

40

30

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Exemplo

- 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ço

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Exemplo

- 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-29

30-59

60-99

2

3

4

00-29

30-69

70-99

3

4

5

- os resultados da simulação são os que constam na tabela seguinte:

Númeropseudo-aleatório

Intervalo detempo entre

chegadas(minutos)

Tempoacumulado(minutos)

Númeropseudo-aleatório

Tempo deserviço

(minutos)

Tempo deconclusão de

serviço(minutos)

Tempo deespera

(minutos)

Disponibili-dade doservidor

(minutos)79

57

80

48

59

81

03

4

3

4

3

3

4

2

4

7

11

14

17

21

23

85

66

60

23

11

53

49

5

4

4

3

3

4

4

9

13

17

20

23

27

31

0

2

2

3

3

2

4

4

0

0

0

0

0

0

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Exemplo

- 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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo

- A tabela seguinte apresenta a evolução dos eventos.

Relógio desimulação Evento Cliente Próxima

chegada Fila Estado doservidor

Próximasaída

Tempo livre doservidor

Tempo de esperaFila

0 - - 4 0 livre ∞ 0 -

4 chegada 1 7 0 ocupado (1) 9 4 0

7 chegada 2 11 1 - - - -

9 partida 1 - 0 ocupado (2) 13 - 2

11 chegada 3 14 1 - - - -

13 partida 2 - 0 ocupado (3) 17 - 2

14 chegada 4 17 1 - - - -

17 partida 3 - 0 ocupado (4) 20 - 3

17 chegada 5 21 1 - - - -

20 partida 4 - 0 ocupado (5) 23 - 3

21 chegada 6 23 1 - - - -

23 partida 5 - 0 ocupado (6) 27 - 2

23 chegada 7 ∞ 1 - - - -

27 partida 6 - 0 ocupado (7) 31 - 4

31 partida 7 - - livre ∞ - -

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Exemplo

- 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 Computação Científica

Modelos de simulação dinâmicos discretos Implementação/codificação de um modelo de simulação discreta

Implementação/codificação de um modelo de simulação discreta

- Na fase de implementação do modelo de simulação é necessário ter em conta duas entidades

importantes:

- 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 sistema

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Implementação/codificação de um modelo de simulação discreta

- 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ão

utilizadas pelo modelo

– gerador de relatórios:

- subprograma que calcula no fim da simulação (a partir dos contadores estatísticos) medidas de desempenho

do 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 Computação Científica

Modelos de simulação dinâmicos discretos Implementação/codificação de um modelo de simulação discreta

- Um possível algoritmo associado à implementação do modelo de simulação é o seguinte:

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 1

Exemplo 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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 1

- 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 cliente

Número de cliente 1 2 3 4 5 6 7 8 9 10

Instantes de chegada (min) 3.2 10.9 13.2 14.8 17.7 19.8 21.5 26.3 32.1 36.6

Tempos de serviço (min) 3.8 3.5 4.2 3.1 2.4 4.3 2.7 2.1 2.5 3.4

- 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 servidor

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 1

- 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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 1

- Algoritmos (eventos):

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

Exemplo 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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

- 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

tempo variá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 superior

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

- 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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

- 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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

- 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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

- 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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

- 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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

- Rotina de gestão do tempo:

void GestaoTempo (float TempoProximaChegada, float TempoPartida1, float TempoPartida2,

float *Tempo, int *TipoEvento) {

*Tempo = TempoProximaChegada;

*TipoEvento = 0; // Chegada

if (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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

- 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 ocupado

if (*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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

else { // 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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

- 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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

- 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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

- 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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

- 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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

Inicializacao (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 \n

TipoEvento = %d \n", TempoProximaChegada, TempoPartida1, TempoPartida2, Clock, TipoEvento);

if (TipoEvento == -1)

break;

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

switch (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 Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

if (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);

} // main

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

- 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 12

Tempos 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.3

Instantes 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.4

Tempos 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.7

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Exemplo 2

– Simulação manual (utilizar um quadro com as seguintes entradas):

Clock Evento NC TPC FilaEC EA1 TP1 EA2 TP2 TTP TOA1 TOA2 TCF NCS TTE

0.0 - - 3.6 [ ] livre ∞ livre ∞ 0 0 0 0 0 0

3.6 Chegada 1 9.2 - ocup 6.3 - - 2.7 2.7 - - 1 -

6.3 Partida1 - - - livre ∞ - - - - - - - -

9.2 Chegada 2 12.0 - ocup 11.7 - - 5.2 5.2 - - 2 -

11.7 Partida1 - - - 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 - - [ ] - 16.8 - - 13.9 10.0 - - 5 1.2

14.6 Chegada 6 20.0 [14.6] - - - - - - - 2 - -

15.1 Partida2 - - [ ] - - - 18.0 17.3 - 5.6 - 6 1.7

16.8 Partida1 - - - livre ∞ - - - - - - - -

18.0 Partida2 - - - - - livre ∞ - - - - - -

20.0 Chegada 7 20.3 - ocup 21.8 - - 18.8 11.5 - - 7 -

20.3 Chegada 8 ∞ - - - ocup 22.5 21.0 - 7.8 - 8 -

21.8 Partida1 - - - livre ∞ - - - - - - - -

22.5 Partida2 - - - - - livre - - - - - - -

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Nível de detalhe dos modelos de simulação

Ní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 Computação Científica

Modelos de simulação dinâmicos discretos Nível de detalhe dos modelos de simulação

- 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 marcado

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Modelos de simulação com filas de espera

Modelos 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 se

pretende determinar.

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Modelos de simulação com filas de espera - Estrutura de uma fila

Modelos 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

clientes fora 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ção estatística que deverá ser especificada.

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Modelos de simulação com filas de espera - Estrutura de uma fila

- 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 utilizada

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Modelos de simulação com filas de espera - Mecanismos de escalonamento

Modelos 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 se

encontrar 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

no topo da pilha, entrando o novo cliente; assim que este completar o seu serviço, o cliente no topo da

pilha entra 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ço

- PS (processos sharing): todos os clientes dividem a capacidade do centro de serviço, como se

executassem em 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

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Modelos de simulação com filas de espera - Mecanismos de escalonamento

- 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

com maior prioridade chega ao centro

- preemptive (PRTYPR - preemptive-resume priority) - a chegada de um cliente com prioridade superior tira

de serviço o de prioridade mais baixa (que está a ser servido), que só reentrará no servidor quando todos os

clientes com prioridades mais elevadas que a sua forem servidos

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Modelos de simulação com filas de espera - Centros de serviço

Modelos 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 e

1 servidor

(b) 1 fila e

2 servidores

(c) 2 filas e

1 servidor

(d) 1 fila

vários servidores

(e) várias filas e

1 servidor

(f) várias filas e

vários servidores

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Modelos de simulação com filas de espera - Centros de serviço

- 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

centro de serviço para onde seguirá aquele cliente; este processo denomina-se de roteamento.

- Estruturas mais comuns,

para cada centro, são:

(a) 1 fila e

1 servidor

(b) 1 fila e

vários servidores

(c) várias filas e

vários servidores

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Modelos de simulação com filas de espera - Centros de serviço

- 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 por

fechados (b) ou mistos (c).

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Análise de dados de entrada (inputs)

Aná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

- triangular

As distribuições discretas mais usadas são:

- empírica

- de Poisson

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Análise de resultados (outputs)

Análise de resultados (outputs)

- A análise de resultados consiste na estimação, ou caracterização estatística, das verdadeiras medidas

de desempenho 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 Computação Científica

Modelos de simulação dinâmicos discretos Análise de resultados - Medidas de desempenho típicas

Aná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 Computação Científica

Modelos de simulação dinâmicos discretos Análise de resultados - Medidas de desempenho típicas

- O cálculo das medidas de desempenho segue a tabela seguinte:

Medida de desempenho Definição Estimativa

Tempo médio de espera das entidades na filad(n) = lim

n

∑i=1

n

Di

nd(n) =

∑i=1

n

Di

n

Nú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) =S

T (n)

em que,

n : número de entidades simuladas

T(n) : tempo total da simulação até observar as n entidades

Di : tempo de espera na fila da entidade i

pi : 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 ocupado

S : intervalo de tempo em que o servidor esteve ocupado (S ≤ T(n))

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Análise de resultados - Medidas de desempenho típicas

- Por amostragem, número médio de entidades na fila é estimado pela expressão

q2(n) =

∑k=0

K

ck

K

em 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 entidades

2. Entre corridas independentes variabilidade entre períodos de tempo

Análise de resultados de um sistema

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Análise de resultados - Medidas de desempenho típicas

- 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ísticas

2. 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 deste

3. 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ça

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica

Modelos de simulação dinâmicos discretos Análise de resultados - Medidas de desempenho típicas

- 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ário

2. Determinar IC para as medidas de desempenho de interesse para o estudo

3. 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 corridas

Capítulo 4. Modelação e Simulação de Sistemas Computação Científica