Avaliação de Desempenho de Sistemas Discretos

Documentos relacionados
Avaliação de Desempenho de Sistemas Discretos

Modelagem e Análise de Sistemas - COS767

Simulação a Eventos Discretos. Fernando Nogueira Simulação 1

Estatística e Modelos Probabilísticos - COE241

Estatística e Modelos Probabilísticos - COE241

Estatística e Modelos Probabilísticos - COE241

Aula 5. Como gerar amostras de uma distribuição qualquer a partir de sua CDF e de um gerador de números aleatórios?

Estatística e Modelos Probabilísticos - COE241

Fernando Nogueira Simulação 1

SSC546 -Avaliação de Desempenho de Sistemas

Simulação e Modelagem

Simulação de Sistemas

COMO FUNCIONA A SIMULAÇÃO

COMO FUNCIONA A SIMULAÇÃO

Modelagem e Avaliação de Desempenho. Pós Graduação em Engenharia Elétrica - PPGEE Prof. Carlos Marcelo Pedroso 2016

Estatística e Modelos Probabilísticos - COE241

Avaliação Quantitativa de Sistemas

SSC546 Avaliação de Sistemas Computacionais Parte 1 -Aula 6 Sarita Mazzini Bruschi

Modelização do Sistema Produtivo Simulação

Noções de Simulação. Ciências Contábeis - FEA - Noturno. 2 o Semestre MAE0219 (IME-USP) Noções de Simulação 2 o Semestre / 23

SSC546 Avaliação de Sistemas Computacionais Parte 1 -Aula 4 Sarita Mazzini Bruschi

Algoritmos e Estruturas de Dados II. Trabalho Prático 2

Simulação de Sistemas. Adaptado de material de Júlio Pereira Machado (AULA 17)

Análise de Dados e Simulação

Funções Geradoras de Variáveis Aleatórias. Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE

PNV-5005 MODELAGEM E ANÁLISE DE SISTEMAS INTERMODAIS DE TRANSPORTE UTILIZANDO TÉCNICAS DE SIMULAÇÃO

SSC643 -Avaliação de Desempenho de Sistemas Computacionais -

MODELAGEM E SIMULAÇÃO

Avaliação de Desempenho de Sistemas Discretos

Avaliação de Desempenho de Sistemas Discretos

Metodologia de simulação

Geração de números uniformes

O que é Simulação? Capítulo 1. Prof. Afonso C Medina & Prof. Leonardo Chwif. fonte original de consulta.

Modelagem e Análise de Sistemas de Computação Aula 20

SSC546 Avaliação de Sistemas Computacionais Parte 1 -Aula 3 Sarita Mazzini Bruschi

Aula 7. Aula de hoje. Aula passada

Avaliação de Desempenho

Avaliação de Desempenho

Avaliação de Desempenho de Sistemas Discretos

Introdução à Simulação. Avaliação de Desempenho de Sistemas

Avaliação e Desempenho Aula 1 - Simulação

INE 5101 Simulação Discreta. Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE

Modelagem e Análise de Sistemas de Computação Aula 19

ANÁLISE DE RESULTADOS

O ALEATÓRIO EM COMPUTAÇÃO. Por Diogo Anderson Integrante do Grupo PET Computação

3 Método de pesquisa Construção do Modelo

6.Elaboração de algoritmos...13

Análise e Modelagem de Desempenho de Sistemas de Computação. Profa. Jussara M. Almeida 1 o Semestre de 2014

{include_content_item 526} Ferramentas para a Simulação de Transitórios em redes eléctricas

Como modelar o comportamento de um sistema? MAB-515

Monte Carlo Method. Peter Frank Perroni. December 1, Monte Carlo Simulation

Monitor: Diego Augusto Silva (P8 Eng. Elétrica) Atendimento: 2as. de 19:45h às 21:30h

I - Introdução à Simulação

Análise de Processos ENG 514

Análise de dados em Fisica de Particulas

Simulação Estacionária

Avaliação de Desempenho de Sistemas Discretos

Métodos de Monte Carlo

Processos de software

TE231 Capitulo 2 Zeros de Funções; Prof. Mateus Duarte Teixeira

COS767 - Modelagem e Análise Aula 3 - Simulação

Considerações de Desempenho

Back Propagation. Dicas para o BP

Avaliação de Desempenho de Sistemas Discretos

SSC643 -Avaliação de Desempenho de Sistemas Computacionais Sarita Mazzini Bruschi

Ex: Sistema Tráfego Rodoviário

4 Cálculo de Equivalentes Dinâmicos

Avaliação de Desempenho de Sistemas Discretos

Avaliação de Desempenho de Sistemas Discretos

Simulação estocástica discreta

6 Geração de Cenários

3 Definições. 3.1 Processos Estocásticos e Processo de Wiener

ão, Regressão & Simulação

Um modelo estocástico para o fluxo de caixa de um plano de previdência de um indivíduo 15

Estruturas de Dados Tabelas de Espalhamento

Momentos: Esperança e Variância. Introdução

Buscas Informadas ou Heurísticas - Parte III

SIMULAÇÃO. Professor: Adriano Benigno Moreira

Estatística e Modelos Probabilísticos - COE241

Aula 9. Estimar grandezas de desempenho de um sistema (métricas).

Análise de Dados e Simulação

Variáveis e Memória. Revisão. Conceitos. Operações sobre a memória

6 ESCALONAMENTO DE CPU

Material baseado nos slides de: Marcos José Santana Regina Helena Carlucci Santana

COMO FUNCIONA A SIMULAÇÃO. Capítulo 2 - Aula 2. Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE

3 Decisões de Localização de Instalações

S I M U L A Ç Ã O 84

ISO/IEC 12207: Manutenção

Resolução Exe 2.12 Monolítico Recursivo

Aula 14. Aula de hoje. Aula passada

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE

Prof. Lorí Viali, Dr.

Material baseado nos slides de: Marcos José Santana Regina Helena Carlucci Santana

Departamento de Matemática da Universidade de Coimbra 2011/2012 Programação Orientada para os Objectos Projecto 2

Estatística e Modelos Probabilísticos - COE241

Cálculo Numérico Noções básicas sobre erros

VERIFICAÇÃO DA ADEQUAÇÃO DO MODELO DE ANÁLISE DE VARIÂNCIA ANÁLISE DE RESÍDUOS

Matemática Discreta 12

Transcrição:

Avaliação de Desempenho de Sistemas Discretos Parte IV: Simulação Professor: Reinaldo Gomes reinaldo@dsc.ufcg.edu.br

Parte 4 Simulação P A R T E Etapas básicas em um estudo de simulação Geração de números e valores aleatórios Simulação acionada por eventos Análise de resultados 4

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?

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á correta? Como selecionar as sementes dos experimentos? Como gerar variáveis aleatórias seguindo uma distribuição? Que distribuições devem ser usadas e quando?

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 Excessivamente trabalhoso!

Uso de simuladores - Cuidados 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 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)

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) Possível auto-correlação de amostras (estudar efeitos) Custo de uso para otimização Esconde relações de causas-efeitos

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

Etapas básicas de uma simulação

Etapas básicas de um estudo de simulação As etapas podem ser agrupadas em 4 fases: Descoberta e definições Criação e refinamento do modelo Execução do modelo Análise e documentação

Etapas básicas de um estudo de simulação 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 Idéia ainda vaga e confusa do sistema Refinamento e modificações do sistema já podem ser realizadas Novas iterações podem acontecer de outras fases

Etapas básicas de um estudo de simulação 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 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

Etapas básicas de um estudo de simulação 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 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

Etapas básicas de um estudo de simulação 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 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)

Etapas básicas de um estudo de simulação 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 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

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

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

Características de um Gerador de NPAs Distribuição Uniforme [0,1) Aleatoriedade Reprodutibilidade 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 Velocidade de Geração

Tipos de geradores de NPAs Geradores lineares de congruência Geradores lineares de congruência combinados Sequências de números aleatórios Geradores de Tausworthe Geradores de Fibonacci estendido...

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 Seqüência de NPAs uniformemente distribuída

Métodos de Congruência X n+1 = K * X n (mod m) onde, X n, K e m são inteiros não negativos mod = módulo C(mod m) = resto da divisão C por m m = múltiplo de 2 (geralmente, # bits da palavra do computador) X 0 é a semente (escolha afeta qualidade do gerador (número primo) Se X 0 = 3, b=5 e m=8 temos a seqüência {3,7,3,7,...} Se X 0 = 3, b=5 e m=7 temos a seqüência {3,1,5,4,6,2,3,1,... } ciclo é 3 vezes o anterior

Métodos de Congruência Aditiva X n+1 = (X n + X n-k ) (mod m), onde, k = 1, 2, 3,... Multiplicativa X n+1 = K X n (mod m), onde, K, X e m são inteiros positivos Mista X n+1 = K (X n + X n-k )+ C (mod m), onde, k = 1, 2, 3,...

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

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 r = F(x), onde r é uma VA entre 0 e 1

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) Logo, para calcular amostras de x conhecendo F(x), usar: x = F -1 (r)

Método Transformada Inversa r = r 0 X o = F -1 (r 0 )

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 1-r = e -λx ln(1-r) = -λx ln(e) x = -(1/λ) ln(1-r)

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)

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

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

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

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 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 Dificuldade de variar condições da avaliação

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

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 Se variáveis são distâncias Sistema Contínuo

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

Paradigmas de Simulação Elementos necessários para Simulação Discreta Clientes Servidores Filas Relógio Geradores de Variáveis Aleatórias Calendário de Eventos Acumuladores de Estatísticas Saída de resultados

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 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 Rotinas de eventos

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 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 Gerador de relatórios

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

Simulação acionada por eventos

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 Executados instantaneamente assim que gerados ou que seu momento de execução chega Atividade é iniciada e terminada por eventos relacionados

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 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 A2 - recebe serviço do cabeleireiro

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

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) Escalonar próximo evento

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

Relógio Simulado

47 Parte I: Introdução Prof. Reinaldo Gomes

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

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 Resultados misteriosos

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