Simulação de Sistemas Prof. MSc Sofia Mara de Souza AULA6 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 fila rua serviço nada telefonando lugar espera chamando 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). – Chegada calcule 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 de eventos atuais Executar eventos Fim? sim Parar 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