• Nenhum resultado encontrado

Avaliação de Desempenho de Sistemas Discretos

N/A
N/A
Protected

Academic year: 2021

Share "Avaliação de Desempenho de Sistemas Discretos"

Copied!
50
0
0

Texto

(1)

Avaliação de Desempenho de

Sistemas Discretos

Parte IV: Simulação

Professor: Reinaldo Gomes [email protected]

(2)

P

A

R

Etapas básicas em um estudo de simulação

Geração de números e valores aleatórios

Parte 4 – Simulação

R

T

E

4

Simulação acionada por eventos

(3)

Desenvolvimento de um simulador

Principais Questões

Quais são os principais erros que podem levar as minhas simulações ao fracasso?

Que tipos de simulação eu posso utilizar?

Como os eventos no meu simulador devem ser escalonados?

Como eu posso verificar e validar o modelo simulado? Quando posso parar as minhas simulações? Quantas rodadas são necessárias?

(4)

Desenvolvimento de um simulador

Principais Questões

Preciso considerar o estado estacionário do meu sistema?

Como devo fazer a geração de variáveis aleatórias?

Como verificar se a geração de variáveis aleatórias está Como verificar se a geração de variáveis aleatórias está correta?

Como selecionar as sementes dos experimentos? Como gerar variáveis aleatórias seguindo uma distribuição?

(5)

Desenvolvimento de um simulador

Principais Questões

Como posso implementar meu simulador? Tenho que começar tudo do zero??!!!!

Uso de linguagem de simulação GPSS, SIMSCRIPT, ARENA

Uso de pacotes de sub-rotinas escritas em linguagens usuais GASP (FORTRAN), SimJava

Implementação desde o início na sua linguagem de programação preferida

(6)

Tempo necessário para a execução dos experimentos

Examinar precisão dos resultados (uma vez que

simulador manipula VAs)

Modelo elaborado pode ser inútil se simulador for

Uso de simuladores - Cuidados

Modelo elaborado pode ser inútil se simulador for

muito extenso

Esforço com testes pode ser inviável

Aleatoriedade dos eventos dificulta depuração

Facilidade em “simular” pode levar a um modelo

muito “realista” (complexo)

(7)

Uso de simuladores - Cuidados

Nunca esquecer das simplificações feitas e evitar

generalizações

Tratar regimes transitórios inicial e final

adequadamente (se regime permanente é de

interesse, desprezar)

interesse, desprezar)

Possível auto-correlação de amostras (estudar

efeitos)

Custo de uso para otimização

(8)

Erros comuns em Simulação

Nível de detalhamento errado

Mais detalhes → mais tempo → mais bugs → mais recursos → mais parâmetros: não necessariamente mais preciso

Linguagem inapropriada

Falta de verificação do modelo Falta de verificação do modelo Modelos fantasiosos

Condições iniciais imprecisas Simulações muito curtas

Gerador de números aleatórios não confiável Seleção errada das sementes dos experimentos

(9)
(10)

As etapas podem ser agrupadas em 4 fases:

Descoberta e definições

Criação e refinamento do modelo

Etapas básicas de um estudo de

simulação

Execução do modelo

(11)

Descoberta e Definições

Etapa 1: Estudo do sistema e definição dos objetivos

Formulação do problema Projeto do modelo

Definição dos objetivos

Etapas básicas de um estudo de

simulação

Definição dos objetivos

Idéia ainda vaga e confusa do sistema

Refinamento e modificações do sistema já podem ser realizadas

(12)

Criação e refinamento do modelo

Etapa 2: Modelo

Criação do modelo que será usado pelo simulador Coleta de dados de entrada do modelo (configurar)

Etapa 3: Simulador

Etapas básicas de um estudo de

simulação

Etapa 3: Simulador

Tradução do modelo

Implementação do software responsável por representar o funcionamento do modelo

Etapa 4: Depuração e testes do simulador (verificação)

Testes / depuração para evitar situações “absurdas” (ex: tempo negativo) e assegurar integração de módulos

(13)

Criação e refinamento do modelo Etapa 5: Refinamento do simulador

Ajustes necessários para melhor representação do modelo Correção de bugs da implementação

Etapa 6: Validação do modelo

Verificar consistência entre o simulador e o sistema real (naquilo

Etapas básicas de um estudo de

simulação

Verificar consistência entre o simulador e o sistema real (naquilo de interesse)

Se o sistema real não estiver disponível/não existir, podemos considerar as aproximações definidas para o modelo

Como pode ser feito? Que parâmetros de comparação?

Etapa 7: Refinamento do modelo

A obtenção de todas as características de um sistema para a criação do seu modelo é extremamente difícil

Validação e implementação de modelos muito complexos é extremamente complexa

(14)

Execução do Modelo

Etapa 8: Estratégia de execução

Definir o plano de experimentos a ser executado Existem muitos experimentos possíveis (variações nos parâmetros, entradas, características de projeto ou de

Etapas básicas de um estudo de

simulação

parâmetros, entradas, características de projeto ou de configuração do sistema, etc.)

Selecionar casos a serem estudados, número de rodadas

Etapa 9: Execução

Execução dos experimentos planejados para obter medidas do desempenho do modelo simulado

Diversas execuções são necessárias para obtermos os resultados desejados (variabilidade das amostras)

(15)

Análise e documentação

Etapa 10: Análise e interpretação dos resultados

Uma vez terminados os experimentos os resultados devem ser estudados e apresentados adequadamente

Etapas básicas de um estudo de

simulação

Análise vai além de apenas descrever os resultados obtidos Correlações, perspectivas de modificações, padrões de

funcionamento, avaliação de opções, ...

Esse processo deve ser documentado para finalizar o estudo proposto

(16)

Geração de números e valores

aleatórios

Números Aleatórios (NAs) são elementos de

Variáveis Aletórias (VAs), independentes com

distribuição uniforme

Variáveis Aleatórias são geradas através de outras

Variáveis Aleatórias são geradas através de outras

distribuições

Números Pseudo-aleatórios (NPAs) são números

gerados a partir de uma regra pré-fixada de

formação (números parecem aleatórios).

Porém, a formação de um número a partir do anterior não pode ser pré-estabelecida (Cadeia de Markov)

(17)

Geração de números aleatórios

Terminologia

Semente (Seed)

Número Pseudo-aleatório: valores podem ser repetidos dependendo dos parâmetros (funções determinísticas) Totalmente aleatório: Não existe repetição de valores Cycle length, Tail, Period

(18)

Características de um Gerador de

NPAs

Distribuição Uniforme [0,1)

Aleatoriedade

Reprodutibilidade

Não repetir a série no intervalo de interesse

Não repetir a série no intervalo de interesse

OBS: números são repetidos a partir de certo ponto Ciclo = total de pontos antes da repetição

Quanto maior o ciclo, melhor

(19)

Tipos de geradores de NPAs

Geradores lineares de congruência

Geradores lineares de congruência combinados Sequências de números aleatórios

Sequências de números aleatórios Geradores de Tausworthe

Geradores de Fibonacci estendido . . .

(20)

Métodos de Congruência

Geralmente usados na geração de NPAs usando

computadores digitais

Características:

Determinístico

“Aleatoriedade satisfatória”

Testes de freqüência e serial: análise do nível de confiança entre a distribuição gerada e aquela teórica, equivalente

(21)

Xn+1 = K * Xn (mod m)

onde, Xn, K e m são inteiros não negativos

Métodos de Congruência

mod = módulo

C(mod m) = resto da divisão C por m

m = múltiplo de 2 (geralmente, # bits da palavra do computador) X0 é a “semente” (escolha afeta qualidade do gerador (número primo) Se X0 = 3, b=5 e m=8 temos a seqüência {3,7,3,7, ...}

Se X0 = 3, b=5 e m=7 temos a seqüência {3,1,5,4,6,2,3,1, ... } ciclo é 3 vezes o anterior

(22)

Aditiva

Xn+1 = (Xn + Xn-k ) (mod m), onde, k = 1, 2, 3,...

Métodos de Congruência

Multiplicativa

Xn+1 = K Xn (mod m), onde, K, X e m são inteiros positivos

Mista

(23)

Métodos de Geração de Valores

Aleatórios

Gerador de números aleatórios segue uma distribuição uniforme

Precisamos de outras distribuições para representar os eventos que desejamos

Transformada Inversa Transformada Inversa

Rejeição/Aceitação Composição

Convolução

Esses métodos usam um gerador de NAs com distribuição uniforme para gerar valores aleatórios (“random variates”) com uma dada distribuição

(24)

Métodos de Geração de Valores

Aleatórios

Conhecida a FDP de uma VA x’ - f(x) -, pode-se

obter valores aleatórios desta VA

Necessita-se da FDP [F(x)] associada a esta VA:

F(x) = ∫

(-∞, x )

f(t) dt

Prob [ x’

x]

Como F(x) é definida em [0,1], pode-se gerar NAs

uniformemente distribuídos e fazer

(25)

Método Transformada Inversa

Se F(x) é contínua e cresce monotonicamente,

existe uma função inversa

F

-1

(r) tal que se 0

r

1, então

r = F(x), => x =

F

-1

(r)

r = F(x), => x =

F

-1

(r)

Logo, para calcular amostras de x’ conhecendo

F(x), usar:

(26)

Método Transformada Inversa

r = r0

Xo = F-1(r

(27)

Exemplo - Exponencial

Gerar VAs conforme a distribuição exponencial

com valor médio E[x] =

1/

λ

λ

: freqüência usada para denotar a taxa de chegada.

F(x) = 1

– e

-λx

= r

F(x) = 1

– e

-λx

= r

1-r =

e

-λx

ln(1-r) = -λx ln(e)

x = -(1/λ) ln(1-r)

(28)

Geração de VAs exponenciais

A distribuição exponencial é freqüentemente usada

para gerar valores para o tempo de interchegada e

tempo de atendimento de fregueses em modelos de

Redes de Filas (i.e., computador, banco,

supermercado, etc)

Algoritmo

1. Gerar um NA r

2. Usar a Transformação: x = -(1/λ) ln(1-r)

(29)

Paradigmas de Simulação

Métodos de Monte Carlo

Simulações Trace-Driven

Simulação Contínua

Simulação Discreta Orientada a Eventos

Simulação Combinada

(30)

Paradigmas de Simulação

Métodos de Monte Carlo

Tradicionalmente, usados para estimar probabilidades dos estados de um modelo através de experimentações conduzidas por amostras

Estudos de fenômenos sociais e econômicos

Simulação estática (não considera tempo) Modela fenômenos probabilísticos

Usado para avaliar expressões não probabilísticas usando métodos probabilísticos

(31)

Paradigmas de Simulação

Simulações Trace-Driven

Trace – Registro ordenado por tempo dos eventos de um sistema

Simulações trace-driven utilizam traces como entrada

Usado para avaliar condições já existente de um sistema que desejamos estudar

(32)

Paradigmas de Simulação

Simulações Trace-Driven Vantagens

Credibilidade – representação da carga de trabalho Fácil validação

Maior precisão – Entrada real de dados pode reduzir a Maior precisão – Entrada real de dados pode reduzir a necessidade de repetições

Desvantagens

Complexidade – mais detalhes podem ser passados

Representatividade pode ser limitada (horário, equipamento, etc.) Restrição na quantidade de informação para estudo

Tempo de dados armazenados e quantidade de traces

(33)

Paradigmas de Simulação

Simulação Contínua

A troca de estados do modelo ocorre continuamente no tempo - soluções, usualmente, usam equações diferenciais Simulação Discreta

Simulação Discreta

Permite trocas instantâneas nos estados do modelo que ocorrem em pontos discretos do tempo.

Simulação Discreta Orientada a Eventos

O processamento da simulação ocorre conforme a ocorrência de eventos

(34)

Paradigmas de Simulação

Simulação Combinada

Técnica que simula sistemas com características de sistemas discretos e contínuos.

Ex.: Sistema de uma Rodovia

Se variáveis são carros → Sistema Discreto

(35)

Paradigmas de Simulação

A Simulação Discreta caracteriza-se por:

Modelagem do sistema em uma rede de fluxo

O sistema possuir componentes (recursos) e cada um executar funções bem definidas

Os componentes apresentarem capacidade finita no

processamento dos itens e, uma vez esgotadas, os itens esperam em fila pelo atendimento, e

O início e o fim das operações realizadas pelos componentes são disparados por eventos

(36)

Paradigmas de Simulação

Elementos necessários para Simulação Discreta

Clientes

Servidores Filas

Filas

Relógio

Geradores de Variáveis Aleatórias Calendário de Eventos

Acumuladores de Estatísticas Saída de resultados

(37)

Paradigmas de Simulação

Componentes necessários para Simulação Discreta Escalonador

Controla a geração, execução e remoção dos eventos no simulador

Relógio de simulação e mecanismo de avanço de tempo Relógio de simulação e mecanismo de avanço de tempo

O tempo pode ser controlado continuamente ou baseado nos eventos

Variáveis de estado do sistema

Informações globais e locais do sistema

Podem ser usadas para armazenar informações durante e ao final da simulação

(38)

Paradigmas de Simulação

Componentes necessários para Simulação Discreta

Rotinas de entrada

Obtém parâmetros que devem ser passados para o modelo

Rotinas de inicialização Rotinas de inicialização

Configura o estado inicial do modelo e a semente da simulação

Rotinas de armazenamento

Podem ser criadas para armazenar as informações a medida que os eventos são gerados ou ao final da simulação

(39)

Organização de um Simulador

Módulo de Inicialização

Rotinas de Entrada

Rotinas de Inicialização (parâmetros de entrada)

Módulos para manuseio de eventos

Escalonador

Rotinas de Eventos

Rotinas de armazenamento (opcional)

Módulos para saída de resultados

Rotinas de armazenamento Gerador de relatórios

(40)
(41)

Eventos e atividades

Diversos módulos devem ser executados em

resposta (direta ou indireta) a eventos

Eventos representam ocorrências que modificam o

estado do sistema

estado do sistema

Executados instantaneamente assim que gerados ou que seu momento de execução chega

Atividade é iniciada e terminada por eventos

relacionados

(42)

Eventos e atividades da barbearia

Exemplos de eventos E1 – chegada de freguês

E2 – início do serviço pelo cabeleireiro E3 – término do serviço (partida)

Exemplos de atividades Exemplos de atividades

A1 - espera em fila (inicia c/E1 e termina c/E2)

Se “servidor” desocupado, A1 inicia de imediato (E1 e E2 ocorrem simultaneamente)

Se ocupado, E2 do próximo freguês ocorre com E3 do atual, em serviço

(43)

Eventos primários e secundários

Simulador deve:

Identificar eventos que podem ocorrer no sistema Avaliar os efeitos de cada evento no estado e

atividades do sistema

Permitir a ocorrência dos eventos e atualizar o estado e Permitir a ocorrência dos eventos e atualizar o estado e atividades do sistema à medida que eventos ocorram

Evento primário é escalonado para ocorrer no

simulador antes de sua ocorrência real

Evento secundário ocorre em resposta a um

primário

(44)

Escalonamento de Eventos

Estado permanece inalterado entre eventos (ou

durante atividades)

Adiantar relógio para o instante do próximo evento (“iminente”)

Atualizar estado (de acordo com evento)

(45)

Escalonamento de Eventos

Evento primário

Consequências

Chegada de freguês 1. Escalona próxima chegada

2. Testa estado do servidor

Livre: Mude estado para ocupado Escalone término de serviço Escalone término de serviço Ocupado: Escalone evento “colocar

freguês na fila”

Término de serviço 1. Teste estado da fila de espera

Vazia: Mude estado servidor para “livre” Não vazia: Remova freguês da fila

Escalone evento “Término de serviço”

(46)
(47)

47

Prof. Reinaldo Gomes Parte I: Introdução

(48)

Análise de resultados

O que eu quero avaliar?

De nada adianta executar experimentos se eu não sei quais são meus objetivos com eles

Devemos identificar que informações são necessárias e como coletá-las

coletá-las

Dados coletados != métricas que serão avaliadas

Obter o máximo possível de informações

Quase nunca temos uma visão inicial clara do que queremos avaliar Evita refazer todo o trabalho em muitas situações

A avaliação dos resultados não é uma mera descrição de gráficos e resultados de tabelas

Devemos tentar identificar o que esta por traz dos números e linhas

Entender ou algumas vezes até mesmo especular o que isso significa é o ponto chave da avaliação

(49)

Resumo

Problemas que podem causar o fracasso das simulações Tempo de simulação inadequado (regime transitório e ciclo do gerador de NA)

Definição clara e precisa dos objetivos

Objetivo pode ser alcançado? Objetivo pode ser alcançado?

Escolha de métricas adequadas Falta de conhecimento necessário

Modelagem (ferramentas, validação, etc.)

Programação (linguagem, framework de desenvolvimento, …) Conhecimento do sistema

Nível inadequado de detalhes no modelo/simulador Mau planejamento dos experimentos

(50)

Resumo

Cuidados com os experimentos

A duração da simulação é apropriada? Existe parada? Os estados transientes do sistema foram removidos? O modelo foi verificado para evitar inconsistências?

O simulador foi validado com os resultados teóricos do O simulador foi validado com os resultados teóricos do modelo?

Resultados surpreendentes foram analisados para verificar a sua causa? Eles são possíveis ou ocorreram por problema na modelagem/implementação?

Foram utilizadas sementes diferentes nos experimentos para avaliar a aleatoriedade dos eventos?

Referências

Documentos relacionados

Figura 25 - Identidade Visual para Eva Nails Fonte: Criado pelo Maurício..

A indústria siderúrgica abrange todas as etapas necessárias para, a partir das matérias-primas, produzir-se ferro e aço. O processo clássico e mais usado para a redução do

O objetivo desse trabalho ´e a construc¸ ˜ao de um dispositivo embarcado que pode ser acoplado entre a fonte de alimentac¸ ˜ao e a carga de teste (monof ´asica) capaz de calcular

Em alguns momentos, um trecho destacado da transmissão pode apresentar duas frases pertencentes a duas categorias ou subcategorias diferentes. Neste caso, tentou-se separar estas

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

O enfermeiro, como integrante da equipe multidisciplinar em saúde, possui respaldo ético legal e técnico cientifico para atuar junto ao paciente portador de feridas, da avaliação

A través de esta encuesta fue posible comprender el desconocimiento que existe sobre este tema y lo necesario que es adquirir información para poder aplicarla y conseguir

introduzido por seus orifícios e daí se descarrega no difusor secundário e depois no difusor principal, e a seguir para o coletor de admissão e cilindros... 8-C