Modelagem e Simulação
CCMP0057
www.univasf.edu.br/~brauliro.leal
Prof. Brauliro Gonçalves Leal 2021
Conteúdo
1. Introdução à Simulação 2. Sistema
3. Modelo
4. Dinâmica Temporal de Sistemas Computacionais 5. Simulação de Sistemas de Eventos Discretos
6. Simulação de Sistemas Computacionais 7. Etapas de um Estudo de Simulação
Introdução à Simulação
Teorias da Filas Mais de um século de pesquisa em sistemas de filas permitem compreender a organização dos sistemas computacionais e estabelecer suas relações físico-matemáticas sob a forma de Modelos Analíticos. Os seus resultados teóricos e experimentais atestam o sucesso desta abordagem
Estatística
Estatística é uma ferramenta usada quando não se sabe, ou é impossível saber, totalmente as informações contidas em um sistema. Desta forma, ela trabalha melhor com incertezas ao quantificá-las em níveis de confiança. Seus conceitos, métodos e técnicas dão o suporte necessário para a validação e verificação de experimentos envolvendo sistemas computacionais
Computadores, Linguagem e Técnicas Computacionais
Computadores, com sua capacidade e velocidades extremadas, dão o suporte para a simulação. As linguagens de programação permitem escrever os softwares necessários para a simulação e análise de resultados. As técnicas computacionais, como estruturas de dados, programação orientada a objetos, cálculo numérico e computação gráfica, dão suporte à simulação. Todo e qualquer hardware ou software, os computadores, seus componentes e seus elementos de conexão são, eles mesmos, objetos de estudo
Geradores de Números Aleatórios e Geração de
Variáveis Aleatórias
O acaso é um agente imprevisível e atua em todos os domínios da Natureza. Por ser um elemento explicativo nas ciências, é necessário introduzi-lo nos sistemas, o que é feito por meio de números aleatórios. Os geradores de números aleatórios são essenciais para gerar variáveis aleatórias e suas distribuições estatísticas, viabilizando a simulação computacional a partir de poucos valores medidos
Modelos Analíticos de
Redes de Computadores Os modelos de sistema computacionais tornaram possíveis a compreensão e a verificação de resultados de simulação, extensíveis aos demais recursos de software e de hardware
Sistemas Computacionais
Os sistemas computacionais são transversais na vida das pessoas, das empresas e dos governos. Em todas as áreas, sua influência é marcante. Sistemas de computação são recursos de software e de hardware, tomados em parte ou no todo, de modo isolado ou em rede e, para sua compreensão e seu uso adequado, é necessário um conhecimento básico da terminologia da avaliação de desempenho, seus princípios e suas técnicas
Matemática
Com sua concisão e ubiquidade, a matemática é a linguagem que permite escrever o corpo teórico para a modelagem, simulação e análise de resultados. As técnicas matemáticas, como Cálculos Diferencial e Integral e Séries, são requeridas para qualificar e quantificar as teorias deste livro e seus objetos de estudo
Introdução à Simulação
Teoria das Filas
ramo da probabilidade que estuda a formação de filas do ponto de vista matemático, é utilizada para estabelecer as relações físico-matemáticas dos sistemas computacionais e permitem construir seus modelos analíticos, conceituais e computacionais
GVA acrônimo de gerador de variáveis aleatórias, permite gerar valores para funções densidade de probabilidade a partir dos geradores de números aleatórios (GNA)
Validação e Verificação
são técnicas para comprovar se a simulação representa o sistema real com fidelidade suficiente para garantir a obtenção de soluções satisfatórias para o problema em nível de engenharia
Simulação processo que permite parametrizar, construir e reproduzir o comportamento de Sistemas de Fila por meio de modelos e executá-los em computadores
Introdução à Simulação
Exemplo Modelagem e Simulação
Sistemas Computacionais são constituídos por dispositivos de hardware e software. O hardware corresponde às partes eletrônicas e mecânicas que possibilitam a existência do software e a interação com o usuário. O software fornece as interfaces para que usuários executem suas tarefas. Estes sistemas realizam atividades humanas, ou de outros sistemas computacionais, por meio do processamento de tarefas. Os Sistemas Computacionais são caracterizados, grosso modo, pelos elementos: hardware, software, usuários e tarefas.
A importância dos Sistemas Computacionais reside no seu conjunto de capacidades e comportamentos, as quais caracterizam seu desempenho em nível operacional. A simulação destes sistemas no âmbito das engenharias pode ser realizada tanto por medição quanto por meio da modelagem matemática. A partir de um modelo matemático aceitavelmente e representativo de um sistema, pode-se aplicar técnicas matemáticas para descrever o seu comportamento e também estimar sua performance comparada a indicadores previamente estabelecidos.
A relevância da Modelagem e Simulação reside na sua abrangência cada vez maior. A interação entre pessoas, empresas e governos, mediada pela tecnologia tanto em nível local quanto global, é um novo estímulo para mudanças sociais e econômicas, promovendo cada vez mais a produção de riqueza; além de ser o suporte para a criação de conhecimento com a aplicação da Inteligência Artificial, Ciência dos Dados e Internet das Coisas, dentre outras áreas aplicadas.
Introdução à Simulação
Para a simulação de um sistema computacional, o primeiro passo requer a construção de um modelo, neste caso utiliza-se modelos obtidos a partir da Teoria das Filas.
Em seguida, obtém-se amostras (medições) representativas de seu comportamento.
Estes dados fornecem os parâmetros que permitem identificar a função densidade de probabilidade adequada para a amostra e, assim, gerar inúmeras variáveis aleatórias para simulação deste sistema.
Os resultados obtidos são valores médios, desvios padrões e intervalos de confiança.
Introdução à Simulação
A simulação é uma técnica reducionista e sua grande vantagem é que, a partir de uns poucos dados representativos de um sistema, ela permite gerar variáveis aleatórias em grande quantidade e que são capazes de reproduzir a dinâmica deste sistema.
Atendendo bem as necessidades dos engenheiros: fazer mais com menos atendendo aos critérios de qualidade estabelecidos.
Introdução à Simulação
Introdução à Simulação
Sistema
Sistema - conjunto estruturado de componentes entre os quais
pode-se definir alguma relação de funcionalidade. Estado do Sistema:
● componentes
● variáveis de estado ● parâmetros
Sistema
O circuito TTL 7400 da Figura 1.2 é um exemplo de um sistema, um dispositivo que contém quatro portas NAND, cada uma delas com duas entradas e uma saída.
As portas apresentam funcionamento independente; suas variáveis de estado são os valores das entradas e saída e seus parâmetros são dados do fabricante.
Sistema
Exemplo Sistema Orientado
O primeiro passo na aplicação do conceito de sistema a um problema específico é definir o que constitui o sistema.
Um segundo ponto a ser considerado é a escolha do nível de descrição desejado. O conceito de sistema geral pode ser considerado como o menor nível de descrição de um sistema em que somente as possíveis interações com o mundo exterior são retidas, ficando definida sua constituição e aquilo que lhe é externo.
Um sistema geral é definido por um conjunto de relações entre as entidades que caracterizam as interações com o mundo exterior.
Assim. sistema geral é uma relação entre as variáveis que ligam um sistema ao mundo exterior.
Se forem definidas as variáveis usadas como excitação (entrada) e as variáveis usadas como resposta (saída), tem-se um sistema orientado.
Um sistema orientado, pode ser caracterizado por uma relação entre o conjunto de entradas e saídas.
Os conceitos de sistemas geral e orientado não incluem o tempo como intrínseco ao sistema.
Modelo
Modelos - descrições de um sistema, concebidos através de uma
abstração da realidade, considerando seus aspectos relevantes, para permitir uma análise simplificada sem descartar seus aspectos importantes.
Modelo
A figura abaixo é um modelo do circuito TTL 7400, com suas quatro portas NAND, cada uma delas com duas entradas e uma saída.. Pode-se verificar que os elementos desnecessários para caracterização do sistema foram propositalmente abstraídos, restando tão somente aqueles que são relevantes e úteis para os propósitos da eletrônica digital. Note que foram adicionados ao modelo símbolos pictóricos necessários à sua manipulação.
Modelo
Desafios
1. Na música Minha História, de Chico Buarque, tem o verso: “Com seu único velho vestido cada dia mais curto”. Considerando este verso, identifique e relação causa/efeito e faça um modelo matemático para quantificar esta relação.
2. Encontre o modelo matemático implícito no texto bíblico: “a quem tem, mais será dado, mas a quem não tem, até o que tiver lhe será tirado”.
Dinâmica de Sistemas Computacionais
O circuito TTL 7400 será usado para representar da dinâmica temporal de um Sistema Computacional, suas variáveis de estado (valor das entradas e saída) e parâmetros (dados do fabricante). Neste caso, sinais entram nas portas lógicas, são processados e enviados para as saídas. Uma característica importante dos sinais, é que não se sabe quando chegarão. Suas chegadas ocorrem ao acaso, é uma variável aleatória.
Uma vez que o sinal chegou, ele é processado. Cada porta lógica tem uma taxa de processamento, um dos seus parâmetros. Ele é um valor determinístico, não é aleatório.
Dinâmica de Sistemas Computacionais
Generalizando estas ideias, os Sistemas Computacionais recebem tarefas para serem processadas.
Eles são caracterizados por duas grandezas, a taxa de chegada e a taxa de processamento.
Estas taxas dão origem a duas outras grandezas temporais, o tempo entre as chegadas e o tempo de processamento.
Estes tempos, em geral, são variáveis aleatórias, o tempo entre chegadas depende do acaso, e o tempo de processamento depende do tamanho da tarefa que chega.
Dinâmica de Sistemas Computacionais
Outras grandezas, derivadas do tempo entre as chegadas e o tempo de processamento, permitem a tomada de decisão em nível de engenharia, quais sejam:
Vazão ou Throughput: é o número de tarefas executados em um determinado
intervalo de tempo. Quanto maior a vazão, maior o número de tarefas executadas em função do tempo. A maximização da vazão é desejada na maioria dos sistemas.
Tempo de Processamento: é o tempo que uma tarefa leva para ser processada.
Este parâmetro depende do sistema em uso e da tarefa.
Tempo de Espera: é todo o tempo que a tarefa permanece aguardando ser
processada. A redução deste tempo de espera é desejada de modo geral.
Tempo de Resposta: é o tempo decorrido entre uma requisição ao sistema e o
instante em que a resposta começa a ser informada.
Estas grandezas, dentre outras, são objeto de estuda da Simulação de Sistemas Discretos.
Simulação
Simulação - manipular um modelo de um sistema, real ou hipotético,
para compreender seu comportamento ou avaliar sua operação, descrever seus aspectos relevantes, permitir sua análise e fazer predição.
Classificação:
1. Simulação Contínua 2. Simulação Monte Carlo
3. Simulação de Eventos Discretos 4. Simulação Baseada em Trace
Simulação
Um processo pode ser de estado discreto ou contínuo.
Se os valores que suas variáveis de estado podem assumir é finito e enumerável, o processo é chamado de processo de estado discreto.
Por exemplo, o número de pacotes em um sistema de fila pode ter valores discretos iguais a 1, 2, 3 e assim por diante, portanto, a formação de filas é um processo de estado discreto.
Por outro lado, se as variáveis de estado podem assumir qualquer valor real ele é um processo de estado contínuo.
O tempo de espera numa fila, teoricamente, pode assumir qualquer valor real é, portanto, um processo de estado contínuo. Já o processo de chegada na fila é discreto, pois ocorre periodicamente no tempo, em momentos sucessivos do tempo, entretanto é de natureza aleatória.
Simulação
A simulação contínua é utilizada para modelar sistemas cujo estado varia continuamente no tempo, sendo comum a utilização de equações diferenciais.
O Método de Monte Carlo é um método estatístico que utiliza amostragens aleatórias massivas para obter resultados numéricos, repetindo sucessivas simulações para calcular probabilidades.
Tem sido utilizado como forma de obter aproximações numéricas de funções complexas, utilizando alguma distribuição de probabilidade e uma amostra para aproximar a função de interesse.
Simulação de Monte Carlo é um modelo de simulação estática, a passagem do tempo é irrelevante.
Simulação
Trace ou Rastreio é um registro cronológico de eventos
ocorridos em um sistema real, como um log (lista ordenada de eventos de tempo e suas variáveis associadas)de um sistema operacional ou o registro de um monitoramento.
A simulação baseada em trace utiliza este registro como dados de entrada e, assim, permite avaliar o comportamento do sistema e seus modelos.
Eles podem ser apresentados em vários níveis de detalhe: eventos de rastreamento, procedimento trace ou rastreio de variáveis.
Simulação
Traces são úteis para conhecer o comportamento de sistemas
computacionais, são fontes de dados para obtenção de funções de distribuição de probabilidade de dados para uso em simulação.
Como são valores medidos, podem também ser usados na validação e verificação de resultados de simulações.
Para serem úteis e ter valor estatístico, traces devem ser amostras representativas do comportamento do sistema.
Simulação de Eventos Discretos
Os sistemas discretos são constituídos por sequência de eventos discretos no tempo.
Cada evento ocorre em um determinado instante de tempo e marca uma mudança de estado no sistema.
Entre eventos consecutivos, o sistema não muda e a simulação pode ser feita de evento em evento, sequencialmente, do início ao fim.
A Teoria da Filas é o modelo matemático usado para representar Sistemas Computacionais, ela é um ramo da probabilidade que estuda a formação de filas.
Simulação de Eventos Discretos
Os modelos de Simulação de Eventos Discretos (SED) mais simples possuem uma única Fila e um único Servidor.
Os Pacotes são as unidades de trabalhos dos SEDs.
Cada pacote possui três atributos: tempo de chegada no sistema, tempo de entrada no servidor e tempo de saída do servidor.
O estado do sistema é definido pelo seu fluxo de pacotes; e o estado dos pacotes é definido pelos seus atributos.
O termo pacote é adotado neste texto para indicar as unidades operacionais dos Sistemas de Fila; são sinônimos de pacote termos: tarefa, transação, requisição e instrução. Outras denominações para pacote são encontradas na literatura técnico-científica.
Simulação de Eventos Discretos
O objetivo de um modelo de simulação de eventos discretos é representar o fluxo de pacotes através de um sistema, atribuir valores aos eventos dos pacotes e, assim estabelecer o comportamento e o desempenho deste sistema.
O fluxo de pacotes nos SEDs é caracterizado pela chegada, processamento e partida de pacotes. O fluxo de cada pacote através do SED é caracterizado por:
1. chegar no sistema 2. entrar na Fila
3. aguardar na Fila se necessário 4. entrar no Servidor
5. ser processado no Servidor 6. sair do Servidor
Simulação de Eventos Discretos
O estado do SED muda em três situações, que podem ocorrer de forma isoladas ou conjuntas.
A primeira situação é quando o pacote chega na Fila. A segunda é quando o pacote entra no Servidor. A terceira situação é quando o pacote sai do Servidor.
As mudanças de estado dos SED são imprevisíveis pois ocorrem ao acaso. São três eventos discretos aleatórios no tempo cronológico, a saber:
1. chegada do pacote na fila – o pacote entra no sistema de fila
2. entrada do pacote no servidor – o pacote sai da fila e entra no servidor 3. saída do pacote do servidor – o pacote sai do sistema de fila
Simulação de Eventos Discretos
A figura ilustra o fluxo de pacotes, eventos e tempos dos eventos em Sistema e Eventos Discretos.
Vale ressalta que o fluxo de pacotes é a variável independente e que o tempo é variável dependente.
Simulação de Eventos Discretos
Variáveis de estado derivadas dos eventos discretos: 1. número de Pacotes na Fila
2. condição do Servidor (ocioso/ocupado) 3. tempo de ocupação do Servidor
4. condição de Pacote (na Fila/no Servidor) 5. tempo de espera de Pacotes na Fila;
6. tempo de processamento de Pacotes no Servidor 7. duração da simulação
Simulação de Eventos Discretos
Componentes:
1.Sistemas de Filas 2.Pacotes
3.Eventos Discretos
Simulação Sistemas Computacionais é
representar estados de Sistemas de Filas. Fazer passar por eles uma sequência de Pacotes, quantificar os tempos de ocorrência dos eventos discretos de cada Pacote.
Produzir resultados operacionais de qualidade por meio de estatísticas.
Simulação de Eventos Discretos
Pode-se ver que o eixo X, da variável independente, refere-se a Pacote, que chegam ao sistema sucessivamente.
Já o eixo Y, da variável dependente, é o tempo, e os respectivos eventos discretos de cada Pacote: tempo de chegada na Fila, tempo de entrada no Servidor e tempo de saída do Servidor.
Um evento discreto acontece em um momento do tempo. Neste caso, o tempo deixa de ser a variável independente.
Como o estado de um Pacote no sistema (na Fila ou no Servidor) permanece constante entre os eventos, uma descrição completa do estado do sistema pode ser obtido inserindo e processando Pacotes sucessivamente no sistema.
Simulação
Simulação Computacional - uso de computadores para realizar
simulações. Implementar os modelos matemáticos de sistemas computacionais em software e processá-los em computadores.
Introdução à Simulação
Estudo de Simulação - Etapas1. Identificação do Problema
2. Formulação do Problema 3. Objetivos
4. Construção do Modelo Conceitual 5. Determinação dos Dados de Entrada e Saída
6. Construção do Modelo Computacional
7. Verificação
8. Validação 9. Plano de Tática e Estratégia
10. Experimentação e Análise dos Resultados
11 . Implementação dos Resultados
12. Documentação do Modelo 13. Relatório da Simulação
Introdução à Simulação
Ferramentas para Simulação de Sistema Computacionais
1.SF.MM1.cpp
2.SF.MM1-ML-RI.cpp
3.RSF.MM1.cpp
Simulação de Eventos Discretos
Ingredientes
2 xícaras (chá) farinha de trigo 2 xícaras (chá) açúcar
1 xícara (chá) leite 2 ovos
4 colheres (sopa) óleo 1 pitada de sal
1 colher (sopa) fermento em pó
essência de baunilha a gosto (opcional)
Modo de Preparo
1.Separe o fermento
2.Na batedeira bata os demais ingredientes por aproximadamente 5 minutos
3.Retire a tigela da batedeira, junte o fermento e misture cuidadosamente com uma colher
4.Despeje a massa do bolo em uma forma de cone untada e enfarinhada 5.Leve ao forno preaquecido a 180ºC
por aproximadamente 35 minutos ou até que ao espetar um palito ele saia limpo
Avaliação 1
1.Escreva um texto sobre a figura abaixo.
2.Escreva um texto sobre a figura abaixo.
Trabalho
Fragata
As fragatas são aves de grande porte, com asas compridas e estreitas que representam a menor superfície de asa por unidade de peso do mundo das aves. Têm cerca de 1 metro de comprimento, mais de dois de envergadura e uma cauda longa e bifurcada. As fragatas não conseguem andar em terra, nadar nem levantar voo de uma superfície plana. São no entanto aves extremamente rápidas em voo sobre o mar ou sobre outras aves.