Introdução à Simulação

Documentos relacionados
Simulação Transiente

Avaliação de Desempenho

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

Avaliação de Desempenho de Sistemas

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

SAD orientado a MODELO

Modelagem e Simulação

Avaliação de Desempenho de Sistemas. Conceitos Básicos de Sistemas e Modelos

Avaliação de Desempenho de Sistemas Discretos

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

Pesquisa Operacional

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

Simulação de Evento Discreto

Engenharia de Sistemas

Modelos. O que, por que, quando, qual e como

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

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.

6 Construção de Cenários

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

MODELAGEM E SIMULAÇÃO

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

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

3 Método de Monte Carlo

Projeto de Sistemas I

Conceitos Iniciais Parte 1

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

ENGENHARIA DE SOFTWARE I

MODELAGEM E SIMULAÇÃO

Universidade Federal de Alfenas

EMENTAS DAS DISCIPLINAS

AVALIAÇÃO DE DESEMPENHO

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

Introdução a Avaliação de Desempenho

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

INF Introdução a Interação Humano-Computador (IHC)

a) Teste das funções do sistema com outros sistemas b) Teste de componentes que em conjunto compõem a função do sistema

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

ESTUDO DE VIABILIDADE. Santander, Victor - Unioeste Aula de Luiz Eduardo Guarino de Vasconcelos

Modelagem e Simulação

Estratégias de Pesquisa

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Avaliando o que foi Aprendido

Avaliação de Desempenho em Sistemas de Computação e Comunicação

BCC202 - Estrutura de Dados I

Introdução a Química Analítica. Professora Mirian Maya Sakuno

ENGENHARIA DE SOFTWARE

UNIVERSIDADE DE SÃO PAULO. Faculdade de Arquitetura e Urbanismo

Probabilidade. Distribuição Exponencial

Processos de Desenvolvimento de Software

Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento de 4ª geração Terceirização

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

'DGRVGH(QWUDGD SDUD D6LPXODomR

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software

PLANEJAMENTO DA MANUFATURA

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho.

SIMULAÇÃO DE TRÁFEGO DE VEÍCULOS INTELIGENTES PARA PREVENÇÃO DE ACIDENTES

Probabilidade. Distribuição Exponencial

Engenharia de Software II

JOGOS EMPRESARIAIS Conceitos e Fundamentos

Como aleatorizar? (Nome professor) (Universidade) Abdul Latif Jameel Poverty Action Lab.

Desenvolvendo Websites com PHP

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

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

2. Representação Numérica

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

CAP. I ERROS EM CÁLCULO NUMÉRICO

Teoria de Filas. Prof. Gustavo Leitão. Campus Natal Central. Planejamento de Capacidade de Sistemas

Exercícios. Exercício 1

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

Aula 26: Arquiteturas RISC vs. CISC

Análise de Sistemas. Visão Geral: Orientação a Objetos. Prof. José Honorato Ferreira Nunes honorato.nunes@bonfim.ifbaiano.edu.br

A avaliação da incerteza do tipo B. Segundo o Guia para Expressão da Incerteza na Medição (Joint Commitee for Guides

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

c. Técnica de Estrutura de Controle Teste do Caminho Básico

Engenharia de Software III

MIEC MESTRADO INTEGRADO EM ENGENHARIA CIVIL 2014/2015 PROPOSTA DE TEMAS PARA DISSERTAÇÃO RAMO DE ESPECIALIZAÇÃO/ ÁREA CIENTÍFICA: ESTRUTURAS

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

Introdução. Métodos de inferência são usados para tirar conclusões sobre a população usando informações obtidas a partir de uma amostra.

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

O QUE É E COMO FUNCIONA O CREDIT SCORING PARTE I

EVOLUÇÃO DE SOFTWARE

EN1002 Engenharia Unificada I. FORMAÇÃO DE EQUIPES Centro de Engenharia, Modelagem e Ciências Sociais Aplicadas

Reduzindo Custos na Logística

Módulo 2. Identificação dos requisitos dos sistemas de medição, critérios de aceitação e o elemento 7.6 da ISO/TS.

1. NÍVEL CONVENCIONAL DE MÁQUINA

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Este capítulo é divido em duas seções, a primeira seção descreve a base de

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

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

A Computação e as Classificações da Ciência

O modelo está dividido em três componentes ou módulos principais: Apresentamos, a seguir, um fluxograma simplificado do sistema do modelo UTCS-1:

Testedegeradoresde. Parte X. 38 Testes de Ajuste à Distribuição Teste Chi-Quadrado

Transcrição:

Introdução à Simulação

O que é simulação? Wikipedia: Simulação é a imitação de alguma coisa real ou processo. O ato de simular algo geralmente consiste em representar certas características e/ou comportamentos cruciais de um sistema físico ou abstrato. Simulação: utilizar o computador para imitar o comportamento de um sistema (entidades e processos do mundo real)

Alguma áreas com ampla utilização de simulação Projeto e análise de sistema de manufatura Avaliação de requisitos não funcionais de hardware e software Avaliação de novas armas e táticas militares Reposição de estoque Projeto e operação de sistemas de transporte Avaliação de serviços (hospitais, correios, restaurantes fast-food) Análise de sistemas financeiros e econômicos

Por que contruir um simulador? Permite testar várias alternativas a um custo geralmente mais baixo que no mundo real Melhor entendimento do problema

Por que estudar simulação? Embora seja um conceito simples, frequentemente os projetos de simulação falham: resultados sem utilidade ou enganosos Principal motivo [Jain]: equipe Bons desenvolvedores sem base estatística Bons estatísticos sem conhecimento de engenharia de software

Erros mais comuns em simulação Nível inapropriado de detalhes Simulação permite a inclusão de mais detalhes que modelagem analítica Porém, a inclusão de detalhes aumenta a chance de bugs e o tempo de construção e execução do simulador Um modelo mais detalhado tem menos suposições, mas não necessariamente é melhor Pode necessitar de mais parâmetros de entrada (se não for bem conhecido, piora o resultado) Melhor começar com poucos detalhes, obter resultados, estudar sensibilidades, e introduzir detalhes nas áreas com maior impacto

Erros mais comuns em simulação Escolha da linguagem de programação Impacto significativo no tempo de desenvolvimento Linguagens próprias para simulação exigem menos tempo de desenvolvimento e facilitam tarefas de verificação e análise estatística Porém, linguagens de uso geral são mais portáveis, fornecem mais controle de eficiência, e são mais flexíveis

Erros mais comuns em simulação Modelos não verificados Simuladores são geralmente programas grandes, portanto cuidados com bugs devem ser tomados Modelos não validados De nada adianta implementação correta se o modelo faz suposições incorretas Todo resultado de simulação é suspeito até que seja confirmado por modelos analíticos, medições ou intuição

Erros mais comuns em simulação Manipulação inadequada de condições iniciais O início de uma simulação geralmente não representa o comportamento estável de um sistema, portanto esta parte inicial deve ser descartada Execuções muito curtas Para economizar tempo, o analista pode encerrar a simulação precocemente O tempo ideal depende da precisão desejada (largura do intervalo de confiança)

Erros mais comuns em simulação Gerador de números aleatórios ruim Melhor utilizar geradores difundidos, por terem sidos amplamente testados Porém, mesmo geradores amplamente utilizados podem ser ruins!! Se vai começar a utilizar um gerador, faça testes! Seleção ruim de sementes para os geradores Escolha ruim pode inserir correlações nas execuções do simulador (sequências sobrepostas)

Terminologia Um sistema é uma coleção de entidades (pessoas, máquinas) que interagem para a realização de um objetivo. Schmidth e Taylor Na prática, apenas as entidades que impactam na questão de interesse são consideradas O estado de um sistema é o conjunto de variáveis necessárias para descrevê-lo em um dado instante

Exemplo Qual o número de caixas de modo que o atendimento do banco seja satisfatório? Entidades: caixas e clientes na fila dos caixas Excluir outros funcionários, máquinas e clientes O estado das máquinas é relevante??? Estados: número de atendentes, número de clientes no banco (fila + em atendimento), instante de chegada de cada cliente

Tipos de sistemas Discreto: variáveis de estado modificam-se instantaneamente em pontos separados no tempo Ex.: número de clientes no banco Contínuo: variáveis de estado modificam-se continuamente no tempo Ex.: posição e velocidade de um avião Na prática poucos sistemas são puramente discretos ou contínuos, mas um dos tipos predomina

Tipos de sistemas Discreto Contínuo Número de clientes na fila Velocidade Tempo Tempo

Maneiras de estudar um sistema Para a maioria dos sistemas, em algum momento vamos precisar estudá-lo para determinar: relação entre componentes previsão de desempenho quando submetido a novas condições Experimento com o sistema real Sistema Modelo físico Experimento com um modelo do sistema Solução analítica Modelo matemático Simulação

Sistema real x Modelo do sistema Um modelo sempre provoca questionamentos sobre sua validade Se for possível (e financeiramente viável), é preferível realizar experimentos diretamente com o sistema real: confiança no resultado Raramente é viável utilizar o sistema real: Muito caro ou prejudicial ao sistema existente O sistema pode ainda nem existir

Modelos físicos x Modelos matemáticos Modelo físico é a construção simplificada do que é o sistema real Ex.: maquete, protótipo, aero-modelo Os modelos matemáticos são mais amplamente utilizados em engenharia e nos processos de tomada de decisão

Solução analítica x Simulação Se o modelo matemático é suficientemente simples, podemos utilizar algum método (algebra, probabilidade, cálculo) para obter informações exatas sobre as questões de interesse (solução analítica) Em alguns casos uma solução analítica existe, mas é computacionalmente cara de obter. Ex.: calcular a inversa de uma matriz grande não esparsa Neste caso, é necessário utilizar simulação Se a solução analítica pode ser obtida de forma eficiente, ela é preferível a simulação (por ser exata)

Solução analítica x Simulação Porém, a maioria dos sistemas no mundo real são complexos demais para uma avaliação analítica, exigindo necessariamente simulação A simulação avalia numericamente um modelo, e dados são coletados para estimar o valor real de uma dada característica de interesse

Classificação dos modelos de simulação Estáticos x Dinâmicos: se o tempo é ou não uma variável. Ex.: F=m.a (estático), banco (dinâmico) Determinísticos x Estocásticos: modelo contém ou não variáveis aleatórias Ex. determinístico: um sistema de equações diferenciais (analiticamente intratável) Contínuos x Discretos: variáveis contínuas ou discretas

Classificação dos modelos de simulação Modelos estáticos/determinísticos são casos particulares de modelos dinâmicos/estocásticos Este curso trata de modelos de simulação discretos, dinâmicos e estocásticos (simulação de evento discreto)

Tipos de simulação: Simulação Monte Carlo Modelos estáticos que requerem o uso de números aleatórios Serve para modelos deteminísticos e estocásticos Utilizada para o cálculo aproximado de expressões sem solução analítica Ex.: I 2 x e 0 dx, X v.a. uniforme entre 0 e 2, logo tem densidade f(x)=1/2, 0 <= x <= 2 2 2 x E[ y] 2e (1/ 2) dx I 0 y 2e x2 2

Tipos de simulação: Simulação baseada em trace Um trace é um registro ordenado no tempo dos eventos ocorridos em um sistema real A simulação baseada em trace utiliza este registro durante a simulação, ao invés de sortear estes eventos Podemos então avaliar como o modelo teria se comportado diante desta sequência de eventos

Tipos de simulação: Simulação baseada em trace Vantagens: Credibilidade Facilita validação: além dos eventos, algumas medidas podem ser coletadas Menos aleatoriedade: menos repetições são necessárias para atingir precisão desejada Comparação justa: todas as alternativas testadas com a mesma sequência de eventos

Tipos de simulação: Simulação baseada em trace Desvantagens: Representatividade: apenas uma possível sequência de eventos Geralmente um trace é uma sequência longa: exige muito armazenamento e acesso à memória secundária durante execução (mais lento) Ex.: log de um servidor web

Tipos de simulação: Simulação de evento discreto As variáveis de estado modificam-se apenas pela ocorrência de eventos Os eventos ocorrem instantaneamente em pontos separados no tempo Portanto, as variáveis de estado são discretas Alguns eventos podem não provocar modificações nas variáveis Ex.: evento que escalona o fim da simulação

Etapas Formulação do problema e planejamento do estudo Coleta de dados e definição do modelo Validação Implementação e verificação Validação Execução em produção Análise da saída Documentação e apresentação Formulação do problema e planejamento do estudo Declaração clara dos objetivos e questões a responder Ex.: qual o número mínimo de caixas de modo que a chance do cliente esperar mais de 15min é inferior a 20%? Delinear as configurações alternativas, e como avaliar a eficácia de cada alternativa Ex.: número de caixas, tempo média de espera na fila. Planejamento: pessoas, custo e tempo de cada etapa

Etapas Formulação do problema e planejamento do estudo Coleta de dados e definição do modelo Validação Implementação e verificação Validação Execução em produção Análise da saída Documentação e apresentação Coleta de dados e definição do modelo Se o sistema existir, coletar dados e ajustar distribuições Ex.: distr. do tempo entre chegadas e do tempo de atendimento Se possível, coletar dados sobre a performance (validação) Ex.: tempo dos clientes na fila Construção do modelo (suposições): uma arte Começe com poucos detalhes, sofistique depois se necessário Capture a essência do sistema, tendo o problema em mente

Etapas Formulação do problema e planejamento do estudo Coleta de dados e definição do modelo Validação Implementação e verificação Validação Execução em produção Análise da saída Documentação e apresentação Validação Deve ocorrer durante todo o processo (porém crítico aqui) Discuta o modelo com pessoas familiarizadas com a operação do sistema Envolva a pessoa que tomará a decisão: credibilidade Faça testes estatísticos de ajuste das distribuições

Etapas Formulação do problema e planejamento do estudo Coleta de dados e definição do modelo Validação Implementação e verificação Validação Execução em produção Análise da saída Documentação e apresentação Implementação e verificação Decidir qual linguagem utilizar: geral ou de simulação Caso utilize um novo gerador de números aleatórios, realize testes

Etapas Formulação do problema e planejamento do estudo Coleta de dados e definição do modelo Validação Implementação e verificação Validação Execução em produção Análise da saída Documentação e apresentação Validação Realize uma execução piloto do simulador Compare resultados com o sistema (se existir) Verifique a reação da saída para pequenas mudanças nas entradas Caso seja muito sensível a alguma, faça uma estimativa melhor

Etapas Formulação do problema e planejamento do estudo Coleta de dados e definição do modelo Validação Implementação e verificação Validação Execução em produção Análise da saída Documentação e apresentação Execução em produção Planeje a execução Alternativas Critérios para as condições iniciais e duração da simulação Número de replicações

Etapas Formulação do problema e planejamento do estudo Coleta de dados e definição do modelo Validação Implementação e verificação Validação Execução em produção Análise da saída Documentação e apresentação Análise da saída Construa intervalos de confiança para as medidas de performance de cada alternativa Decida qual a melhor alternativa

Etapas Formulação do problema e planejamento do estudo Coleta de dados e definição do modelo Validação Implementação e verificação Validação Execução em produção Análise da saída Documentação e apresentação Documentação e apresentação Frequentemente simuladores são utilizados para mais de um propósito Portanto, documente as suposições e o programa Se seu trabalho for bem feito (convincente), seu modelo poderá tomar forma no mundo real...