Simulação de Sistemas
Prof. MSc Sofia Mara de SouzaAULA6
Abordagens Para Modelagem Discreta Modelagem discreta pode seguir 3 formas
principais:– modelagem baseada em eventos– modelagem baseada em processos– modelagem baseada em atividades
Um sistema pode ser modelado utilizando qualquer abordagem.– uma abordagem pode ser mais conveniente que
outra dependendo do sistema a ser modelado.
Introdução
Uma implementação de simulação discreta apresenta, basicamente, 3 grandes blocos:– Decisão: controla execução da simulação.– Ferramentas Gerais: rotinas de suporte.– Lógica do Modelo: expressa as atividades
nas quais as entidades do sistema estão engajadas.
Cada abordagem diferente implica em blocos de Decisão e Lógica diferentes.
Introdução
Decisão-relógio-calendário de eventos-seqüenciamento de eventos
Ferramentas Gerais-entrada/saída-probabilidades-debug
Lógica do Modelo-escrita pelo analista-depende da aplicação
Abordagem por Eventos
Suportada pela linguagem de simulação SIMSCRIPT e GASP.
Lógica do Modelo– Processo de simulação baseado em Rotinas de
Eventos– Rotina de evento: conjunto de instruções, em
uma linguagem de programação, que modelam completamente as conseqüências da execução de um evento (mudanças de estado da simulação).
Exemplo: Problema Teatro
4 eventos:– Chegada: chegada de um cliente na
bilheteria– Chamada: chegada de uma chamada
telefônica– FimDeServiço: fim do atendimento de um
cliente na bilheteria– FimDeChamada: fim do atendimento de
uma chamada telefônica
chegada
serviço
filarua
nada
telefonando
chamando
lugar espera
Rotinas de eventos:– FimDeServiço
libere Cliente
se (fila de clientes não vazia) então
retire próximo Cliente da fila
calcule TempoDeServiço
agende evento FimDeServiço para ocorrer após TempoDeServiço
senão se (fila de telefonemas não vazia) então
retire próximo Telefonema da fila
calcule TempoDeConversa
agende evento FimDeChamada para ocorrer após TempoDeConversa
senão libere Funcionário.
Exercício:
1) Especifique em pseudo-código as rotinas de evento para os demais eventos do problema do teatro (Chegada, Chamada, FimDeChamada).
– Chegadacalcule TempoChegada do próximo Cliente
agende evento Chegada para ocorrer após TempoChegada
se (fila de clientes vazia) e (Funcionário livre) então
coloque Funcionário em serviço
calcule TempoDeServiço
agende evento FimDeServiço para ocorrer após TempoDeServiço
senão coloque Cliente na fila.
Módulo de Decisão:– Realiza o agendamento dos eventos e não
se preocupa com o seqüenciamento.– Seqüenciamento é tarefa das rotinas de
eventos.– Conseqüência para o processo de
simulação: lógica de modelo é mais complexa.
O módulo de decisão divide-se em duas fases:– Examinar o calendário de eventos para
descobrir qual o próximo evento a ser processado e mover o relógio de simulação para o tempo do evento; mover todas as referências para as rotinas de evento associadas com este tempo para uma lista de eventos atuais.
– Mantendo o relógio constante, executar cada rotina de evento da lista de eventos atuais.
Iniciar
Examinar calendário
Compilar lista deeventos atuais
Executar eventos
Fim?
Parar
sim
não
Exercícios:2) Para o problema de modelagem das máquinas
em uma linha de produção, construa, em pseudo-código, o programa de simulação e as rotinas de evento. As tarefas chegam na máquina com um intervalo t1 e entram em uma fila de espera antes de serem executadas. A máquina demora um tempo t2 processando uma tarefa. Em um intervalo de tempo t4 chega um pedido de manutenção, ficando então a máquina bloqueada por um tempo t3.
Entidades permanentes: máquina Atributos de máquinas:
– tempo da primeira manutenção: constante– tempo entre manutenções: constante– tempo de manutenção: variável
estocástica– disponibilidade: ocupada, livre, em
manutenção– precisa manutenção: sim, não
Entidades temporárias: tarefas Atributos de tarefas:
– tempo entre tarefas: variável estocástica– tempo da tarefa: variável estocástica
Conjuntos: máquinas disponíveis, fila de tarefas
Atividades: tarefa em execução, máquina em manutenção
Eventos exógenos:– chegada de tarefa
Eventos endógenos:– início da execução de tarefa– fim de execução de tarefa– início de manutenção– fim de manutenção– chegou tempo de manutenção