Avaliação de Desempenho de Sistemas Discretos



Documentos relacionados
Introdução à Simulação

Avaliação de Desempenho de Sistemas Discretos

Avaliação de Desempenho

Modelagem e Simulação Material 02 Projeto de Simulação

Modelagem e Simulação

Simulação Transiente

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

PÓS GRADUAÇÃO EM CIÊNCIAS DE FLORESTAS TROPICAIS-PG-CFT INSTITUTO NACIONAL DE PESQUISAS DA AMAZÔNIA-INPA. 09/abril de 2014

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Unidade VI. Validação e Verificação de Software Teste de Software. Conteúdo. Técnicas de Teste. Estratégias de Teste

Usando o Arena em Simulação

Projeto de Sistemas I

4 Arquitetura básica de um analisador de elementos de redes

Pesquisa Operacional

3 Método de Monte Carlo

Geração de Números Aleatórios e Simulação

DISTRIBUIÇÃO DE WEIBULL CONCEITOS BÁSICOS APLICAÇÕES

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

MASTER IN PROJECT MANAGEMENT

Engenharia de Software III

Projeto de Redes Neurais e MATLAB

Simulação de Evento Discreto

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

ISO/IEC 12207: Gerência de Configuração

6 Construção de Cenários

Introdução Visão Geral Processos de gerenciamento de qualidade. Entradas Ferramentas e Técnicas Saídas

SAD orientado a MODELO

2. Método de Monte Carlo

4 Avaliação Econômica

ALGORITMOS. Supervisão: Prof. Dr.º Denivaldo Lopes

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

DESENVOLVIMENTO DE UM SOFTWARE NA LINGUAGEM R PARA CÁLCULO DE TAMANHOS DE AMOSTRAS NA ÁREA DE SAÚDE

Modelagem e Simulação

GARANTIA DA QUALIDADE DE SOFTWARE

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Engenharia de Software

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

MODELAGEM E SIMULAÇÃO

Organização e Arquitetura de Computadores I

CAP. I ERROS EM CÁLCULO NUMÉRICO

Lista de verificação (Check list) para planejamento e execução de Projetos

BC-0005 Bases Computacionais da Ciência. Modelagem e simulação

PRIMAVERA RISK ANALYSIS

CONCURSO PÚBLICO ANALISTA DE SISTEMA ÊNFASE GOVERNANÇA DE TI ANALISTA DE GESTÃO RESPOSTAS ESPERADAS PRELIMINARES

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Sistemas Distribuídos

Organização de Computadores

Simulação Computacional de Sistemas, ou simplesmente Simulação

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

Opções Reais. Processos Estocásticos. Processos Estocásticos. Modelando Incerteza. Processos Estocásticos

F.1 Gerenciamento da integração do projeto

Concepção e Elaboração

SIMULADO: Simulado 3 - ITIL Foundation v3-40 Perguntas em Português

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

O método de Monte Carlo: algumas aplicações na Escola Básica

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS Os Programas de Avaliação

CHECK - LIST - ISO 9001:2000

Cálculo Numérico. ECA / 4 créditos / 60 h Introdução, Erros e Matlab. Ricardo Antonello.

Simulação Estocástica

Professor: Curso: Disciplina:

Feature-Driven Development

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Sistemas Distribuídos. Aleardo Manacero Jr.

16.36: Engenharia de Sistemas de Comunicação Aula 14: Códigos cíclicos e detecção de erros

Universidade Paulista

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Aula 04 Método de Monte Carlo aplicado a análise de incertezas. Aula 04 Prof. Valner Brusamarello

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Geração de variáveis aleatórias

Engenharia de Software II

Versão /Set/ WeDo Soluções para Contact Center Consultorias

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

COS767 - Modelagem e Análise Aula 2 - Simulação. Algoritmo para simular uma fila Medidas de interesse

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

2 Diagrama de Caso de Uso

Processo de chegada: o Chegadas em grupo ocorrem segundo um processo Poisson com taxa. O tamanho do grupo é uma variável aleatória discreta

TEORIA DO RISCO. LUIZ SANTOS / MAICKEL BATISTA economia.prof.luiz@hotmail.com maickel_ewerson@hotmail.com

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE

Metodologia de Gerenciamento de Projetos da Justiça Federal

Programação de Robótica: Modo Circuitos Programados - Avançado -

Gerenciamento de Riscos do Projeto Eventos Adversos

Introdução a Avaliação de Desempenho

Governança de TI. ITIL v.2&3. parte 1

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

1. Avaliação de impacto de programas sociais: por que, para que e quando fazer? (Cap. 1 do livro) 2. Estatística e Planilhas Eletrônicas 3.

TRABALHO COM GRANDES MONTAGENS

Engenharia de Sistemas Computacionais

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

MODELAGEM E SIMULAÇÃO

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

Capítulo 1. Extreme Programming: visão geral

Disciplina: Sistemas Operacionais - CAFW-UFSM Professor: Roberto Franciscatto

Módulo 4. Construindo uma solução OLAP

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 1

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

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

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 4

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 5

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 6

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

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

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 9

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 10

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,... 11

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 12

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

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

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 15

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 16

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 17

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 18

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 19

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 20

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 21

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 22

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 23

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 24

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