© 2015, Elsevier Editora Ltda. Todos os direitos reservados e protegidos pela Lei no 9.610, de 19/02/1998. Nenhuma parte deste livro, sem autorização prévia por escrito da editora, poderá ser reproduzida ou transmitida sejam quais forem os meios empregados: eletrônicos, mecânicos, fotográficos, gravação ou quaisquer outros.
Copidesque: Ana Carolina Lins Brandão evisão Gráfica : Roberto Mauro Facce Editoração Eletrônica: SBNigri Artes e Textos Ltda. Epub: SBNigri Artes e Textos Ltda. Elsevier Editora Ltda. Conhecimento sem Fronteiras Rua Sete de Setembro, 111 – 16o andar 20050-006 – Centro – Rio de Janeiro – RJ – Brasil Rua Quintana, 753 – 8o andar 04569-011 – Brooklin – São Paulo – SP – Brasil Serviço de Atendimento ao Cliente 0800-0265340
[email protected] ISBN: 978-85-352-7932-0 ISBN (versão eletrônica): 978-85-352-7933-7
Nota: Muito zelo e técnica foram empregados na edição desta obra. No entanto, podem ocorrer erros de digitação, impressão ou dúvida conceitual. Em qualquer das hipóteses, solicitamos a comunicação ao nosso Serviço de Atendimento ao Cliente, para que possamos esclarecer ou encaminhar a questão. Nem a editora nem o autor assumem qualquer responsabilidade por eventuais danos ou perdas a pessoas ou bens, originados do uso desta publicação. CIP-BRASIL. CATALOGAÇÃO-NA-FONTE SINDICATO NACIONAL DOS EDITORES DE LIVROS, RJ Chwif, Leonardo Modelagem e simulação de evento s discretos : teoria & ap licações / Leonardo Chwif, Afons o C. Medina. – 4. ed. – Rio de Janeiro: Elsevier, 2015. C489m 4. ed. ISBN 978-85-352-793 2-0 1. Pesquisa operacional. 2. Otimização matemática. 3. Métodos de s imulação. I. Medina, Afons o C. (Afons o Celso), 1966-. II. Título. 14CDD: 519.4 16043. CDU: 519.6
Dedicatória
Às nossas esposas, Andrea e Patricia, nossas maiores incentivadoras. Aos nossos pais, Sônia (in memoriam)e José, Antônio (in memoriam)e Maria Eugênia, nossos maiores fãs.
Agradecimentos
Nossa esperança é a de que este livro se torne referência geral para o tema, e de antemão solicitamos seu apoio, leitor, pois esta obra, no caso específico da tecnologia de simulação, milita em favor da melhoria da produtividade e da qualidade dos sistemas. Não poucos contribuíram para que este livro chegasse a você, leitor: nossos alunos em particular, ora engenheiros, também cientistas da computação e administradores que se valem dos conhecimentos discutidos em vários cursos que demos de Simulação e Pesquisa Operacional. Um agradecimento especial ao pesquisador Luis Gustavo Nardin, do Laboratório de Técnicas Inteligentes da Escola Politécnica da USP, pela valiosa contribuição na seção “Tendências em simulação”. Boa parte do processo de elaboração de um livro é dedicado ao debate de ideias entre os
autores e colegas. Foi por essa etapa que contamos com o trabalho generoso e paciente do amigo Prof. Wilson Inacio Pereira, da Escola de Engenharia Mauá, que também é o responsável pela revisão técnica do material. Alguns docentes também colaboraram com o trabalho de revisão e merecem nossa especial gratidão: Prof. Dr. Eduardo Saliby, da COPPE/UFRJ; Prof. Dr. Alexandre Kawano do Depto. de Engenharia Mecatrônica da Escola Politécnica da USP; Prof. Dr. João Alberto Arantes do Amaral, do Centro para Aprendizagem Organizacional; Prof. Dr. Marco Aurélio de Mesquita, do Depto. de Engenharia de Produção da Escola Politécnica da USP; Prof. Dr. Miguel Cezar Santoro, do Depto. de Engenharia de Produção da Escola Politécnica da USP; Prof. Dr. Marco Antonio Brinati, do Depto. de Engenharia Naval da Escola Politécnica da USP; Prof. Dr. Rui Carlos Botter, do Depto. de Engenharia Naval da Escola Politécnica da USP; Prof. Dr. Marcos Ribeiro Pereira Barretto, do Depto. de Engenharia Mecatrônica da USP; Prof. Ray J. Paul, da Universidade de Brunel/UK; Prof. Ricardo Luiz Camargo, da FIA; Prof. Dr. Antonio Medina Rodrigues, da FFLCH da USP; Prof. Emilson Roveri; e Prof. Dr. Antonio Carlos Silva de Carvalho. Os eventuais erros serão – é claro – de nossa total responsabilidade, e creia, leitor, apreciaríamos sua opinião sobre esta obra, para fugaz elogio (que sempre agrada ao coração) ou sobretudo para as críticas: estas é que fazem melhorar todo saber. Afonso Celso Medina
Leonardo Chwi
[email protected] São Paulo, maio de 2014.
Sobre os autores
Leonardo Chwif possui graduação em Engenharia Mecatrônica pela Escola Politécnica da Universidade de São Paulo (1992), mestrado em Engenharia Mecânica pela Universidade de São Paulo (1994) e doutorado pela Universidade de São Paulo (1999). Durante seu doutorado, foi pesquisador pela Brunel University (Reino Unido). É professor da Escola de Engenharia Mauá, Anhembi Morumbi e Unifieo. Também atua como consultor de simulação de processos na Simulate Tecnologia de Simulação, onde já desenvolveu mais de 100 projetos de simulação para empresas de segmentos variados. Possui grande experiência nas áreas de Manufatura, Logística e Pesquisa Operacional, tendo a simulação como seu principal foco.
Afonso Celso Medina possui graduação em Engenharia Naval pela Escola Politécnica da Universidade de São Paulo (1988) e Mestrado em Engenharia Naval e Oceânica pela Universidade de São Paulo (1996). Foi professor de Métodos de Otimização na Escola Politécnica da USP e atualmente é consultor de simulação de processos da Simulate Tecnologia de Simulação e pesquisador do CILIP – Centro de Inovação em Logística e Infraestrutura Portuária da USP. Tem vasta experiência profissional nas áreas de Logística e Pesquisa Operacional, atuando principalmente nos seguintes temas: dimensionamento de terminais, simulação distribuída, planejamento portuário, teoria da localização e simulação de sistemas.
Prefácio
Há muito a área de simulação carecia de um texto didático, compatível com a nossa realidade de público e mercado, que fosse adequado tanto aos interessados nos aspectos conceituais como aos práticos da Simulação de Eventos Discretos. Sem caírem numa abordagem superficial e sem se comprometerem com programas comerciais de simulação, os autores desenvolvem os principais conceitos envolvidos num texto bem organizado, bem redigido e com pitadas de bom humor. Este livro tem um saudável equilíbrio entre teoria e prática e nos apresenta desde tópicos de caráter mais técnico, como modelagem, probabilidade e estatística, validação e experimentação, a casos práticos, descritos de modo agradável. O texto se aplica a cursos tanto de graduação quanto de pós-graduação nas áreas de Engenharia – em particular Engenharia de Produção –, de Administração, de Informática e
Computação, e outras afins. Também é adequado a cursos e treinamentos específicos sobre o assunto, bem como ao estudioso que queira, por conta própria, atualizar e aprofundar seus conhecimentos sobre Simulação em Eventos Discretos. Outro importante mérito do texto é a preocupação dos autores em apresentar uma bibliografia relevante e atualizada sobre o assunto, até mesmo com a disponibilização de área na internet para uma permanente complementação e atualização do texto. É, pois, com grande satisfação que saúdo com boas-vindas este útil e esperado livro, parabenizando os autores pela valiosa contribuição. Prof. Eduardo Salib Coppead/UFRJ
Apresentação
A Simulação de Eventos Discretos é um tema fascinante, e seu interesse é crescente nos meios empresarial e acadêmico. Não obstante, o que se nota na literatura nacional é a quase completa indiferença para com obras que, nessa área, possam ser indicadas aos cursos de graduação e pós-graduação. Este livro se propõe, portanto, a ser uma adequada referência para o assunto, em currículos em que a Simulação de Eventos Discretos seja o foco ou o tópico dos conteúdos programáticos – ou em consultas pessoais carentes de uma linha metodológica adequada a outros fins profissionais.
Organização do texto Procuramos abordar a Simulação de Eventos Discretos por uma perspectiva que,
metodologicamente, satisfaça a cada etapa que um projeto de simulação exija para ser bemsucedido. Nesse caminho, demos ênfase à modelagem conceitual, assunto por sinal esquecido em muitas obras, e por isso incluímos, no Capítulo 3, o ACD, que facilita a representação de modelos de simulação. Tudo em linguagem direta, ilustrando os conceitos de maneira bem prática, e, se algum humor nos escapou na exposição, confessamos que foi tático, sem deixar de ter sido, em cada caso e no possível, espontâneo. Ao final de todos os capítulos, há exercícios de revisão e uma “Leitura Complementar”, para aprofundamento da matéria vista. Além dos tópicos clássicos da simulação (modelagem de dados, modelagem conceitual, verificação, validação e análise de resultados), incluímos capítulos e apêndices suplementares. Projetos de experimentos e métodos atuais de simulação e otimização são discutidos no Capítulo 7. No Capítulo 8 há uma série de estudos de casos fundamentados em problemas reais e/ou retirados da literatura e que abrangem sistemas diversos de produção: terminal portuário, supermercado, cadeia de suprimentos, atendimentos de emergência, centrais de atendimento telefônico etc. Ao final do texto, o Capítulo 9 discute outros tipos de simulação: a Simulação de Monte Carlo, a Simulação de Sistemas Dinâmicos, a Simulação de Agentes e a Simulação Distribuída, assuntos de interesse para os profissionais e pesquisadores da área de simulação. Comentamos no Epílogo (Cap. 10) alguns aspectos não técnicos, mas relevantes, para um estudo de simulação bem-sucedido, inclusive com a discussão sobre alguns casos de fracasso e de sucesso que presenciamos ao longo da nossa atuação profissional.
Ao texto principal referem-se os diversos apêndices. Breve revisão de probabilidade e estatística está no Apêndice I. O Apêndice II apresenta uma introdução à Teoria das Filas, útil para quem quer se iniciar no estudo da simulação, pois grande parte do material introdutório à Simulação de Eventos Discretos referencia a Teoria das Filas. O Apêndice III discute a geração de números aleatórios. O Apêndice IV, com um exemplo de relatório de simulação, versa sobre a documentação em projetos de simulação. Um exemplo real de especificação de um modelo de simulação é apresentado no Apêndice V, para referência e consulta. O Apêndice VI contém tabelas estatísticas úteis à resolução dos exercícios ou mesmo para uma consulta rápida. As principais distribuições discretas e contínuas estão no Apêndice VII. Por fim o Apêndice VIII contém respostas a alguns exercícios selecionados.
Público-al vo Este é um livro que se pode adotar como livro-texto em graduação ou pós-graduação nas áreas de Engenharia, Ciências da Computação e Administração – seja em disciplinas específicas de modelagem e simulação, ou em disciplinas mais abrangentes, como Pesquisa Operacional ou Administração da Produção. Em cursos com enfoques mais gerenciais, o docente pode omitir o Capítulo 4, “Implementação computacional do modelo de simulação”, assunto de maior interesse para turmas de Ciências de Computação. Adotado na íntegra, para uma disciplina específica de Modelagem e Simulação de Eventos Discretos, aconselhamos uma carga horária de 72 horas, dividida entre teoria e execução de atividades práticas – esta tem sido a nossa
prática do ensino de simulação nos currículos de Engenharia e Administração de Empresas. Para a pós-graduação, reduz-se a carga horária em virtude da isenção que aí costuma haver de atividades práticas em sala de aula.
Internet Este livro possui uma página na internet com material para download e consulta: http://www.livrosimulacao.eng.br Todos os exemplos computacionais apresentados no livro estão à disposição na seção de downloads do site.
Alterações da 4a edição
A primeira grande alteração é que, a partir da 4a edição, contamos com a Elsevier como nossa editora, o que deve ampliar a base de leitores e permitir que o livro continue se amadurecimento a cada edição. Esta quarta edição é uma edição revisada e ampliada. Em relação à 3a edição, foram realizadas as seguintes alterações: • No Capítulo 4, na seção referente à construção de modelos computacionais, a linguagem de programação Pascal foi substituída por uma linguagem mais popular – o Python; • Ao Capítulo 5, “Verificação e validação”, foi acrescentado o tópico “Níveis de validação”; • Ao Capítulo 9 foi acrescida uma nova seção “Tendências em simulação”, comentando
sobre tópicos mais avançados da simulação ainda não popularizados, tais como: Simulação de Agentes, Simulação Web, Simulação Baseada em Componentes e Simulação Distribuída; • Houve uma renumeração dos apêndices e acréscimo de dois novos: o Apêndice II, contendo um resumo dos principais conceitos e modelos da Teoria das Filas; e o Apêndice VIII, onde se encontram as respostas de exercícios selecionados de praticamente todos os capítulos.
Sumário Capa Folha de Rosto Cadastro Créditos edicatória Agradecimentos Sobre os autores Prefácio Apresentação
Alterações da 4ª edição Capítulo 1 – O que é simulação? 1.1. Introdução 1.2. Modelos simbólicos, icônicos ou diagramáticos 1.3. Modelos matemáticos ou analíticos 1.4. Modelos de simulação 1.5. Aplicações da simulação 1.6. A metodologia da simulação 1.7. Exercícios de revisão Leitura Complementar Quando devemos utilizar a simulação?
Referências bibliográficas Alguns textos clássicos de Simulação
Capítulo 2 – Modelagem dos dados de entrada 2.1. Introdução 2.2. Coleta de dados 2.3. Tratamento dos dados 2.3.1 Outliers 2.3.2. Análise de correlação 2.3.3. Inferência 2.4. Testes de aderência: os dados se ajustam à distribuição escolhida? 2.4.1. Teste do qui-quadrado
2.4.2. Teste de Kolmogorov-Smirnov 2.4.3. Qual a melhor distribuição? 2.5. Utilizando software de ajuste de dados (fitting): o que é p-value? 2.6. Outras formas de modelagem de dados 2.6.1. Modelagem de dados quando não temos dados 2.6.2. Utilização de séries históricas – trace files 2.7. Exercícios de revisão Leitura Complementar Sete hábitos de sucesso na modelagem de dados Referências bibliográficas
Capítulo 3 – Criação do modelo c once itual
3.1. Abstração e modelos abstratos 3.2. Construção de modelos conceituais – 3.3. A simulação manual e o método das três fases 3.4. Outras dinâmicas de simulação 3.5. Um pouco mais sobre o ACD 3.6. Um pouco de visão de processos 3.7. Especificação de modelos de simulação 3.8. Exercícios de revisão Leitura Complementar Modelos de simulação: complicar ou descomplicar? Referências bibliográficas
Capítulo 4 – Implementação computacional do modelo de simulação e softwares de simulação 4.1. Implementação de modelos de simulação 4.2. Um pouco de história... 4.3. Linguagem de programação vs. linguagem de simulação vs. simulador? 4.3.1. Linguagem de programação 4.3.2. Linguagem de simulação 4.3.3. Simuladores 4.4. Exercícios de revisão Leitura Complementar Softwares de simulação: o que é importante?
Referências bibliográficas
Capítu lo 5 – Verifica ção e validação de mode los de simulação 5.1. Introdução 5.2. Verificação e validação 5.3. Técnicas de verificação 5.4. Técnicas de validação 5.4.1. Níveis de validação 5.5. Validade dos dados 5.6. Exercícios de revisão Leitura Complementar Uma técnica de verificação e validação de modelos de simulação quando
não se dispõe d e dados reais Referências bibliográficas
Capítulo 6 – D imensionament o de co rridas e análise dos resultados de um mode lo de simulação 6.1. Introdução 6.2. Regime transitório vs. regime permanente 6.3. Simulação terminal vs. simulação não terminal 6.4. Escolhendo as medidas de desempenho adequadas 6.5. Qual a diferença entre replicação e rodada? 6.6. Você, realmente, confia nos resultados? 6.7. Análise dos dados de saída: sistemas terminais
6.7.1. Estabelecer as medidas de desempenho adequadas 6.7.2. Escolher a confiança estatística e a precisão desejada 6.7.3. Construir a amostra-piloto e estimar o intervalo de confiança 6.7.4. Determinar o número de replicações necessárias 6.7.5. Rodar o modelo novamente 6.7.6. Calcular o novo intervalo de confiança 6.8. Análise dos dados de saída: sistemas não terminais 6.8.1. Estabelecer as condições iniciais do sistema próximas daquelas encontradas em regime permanente 6.8.2. Rodar o modelo por um tempo de simulação longo 6.8.3. Eliminar dos dados de saída todos os valores gerados durante o período de aquecimento ou “warm-up”
6.8.4. Estabelecer as medidas de desempenho adequadas 6.8.5. Escolher a confiança estatística e a precisão desejadas 6.8.6. Identificar o período de aquecimento (warm-up) 6.8.7. Determinar o tempo de simulação 6.8.8. O tempo de processamento é muito longo: criar lotes e construir os intervalos de confiança 6.9. Como comparar os resultados de alternativas simuladas? 6.9.1. Caso 1: alternativas com o mesmo número de replicações 6.9.2. Caso 2: amostras de tamanhos diferentes 6.10. Exercícios de revisão Leitura Complementar
A técnica da redução da variância Referências bibliográficas
Capítulo 7 – P rojeto de experimentos e otimização 7.1. Introdução 7.2. Noções de Projeto de Experimentos 7.2.1. Conceitos fundamentais: fatores, níveis, respostas e espaço de combinações 7.2.2. Projeto de experimentos fatoriais 2k completo 7.3. Projeto de Experimentos: um caso prático 7.4. Simulação e Otimização 7.5. Simulação e Otimização: um caso prático
7.6. Simulação e Otimização: softwares comerciais 7.7. Integração entre Projetos de Experimentos e a Simulação e Otimização 7.8. Exercícios de revisão Referências bibliográficas
Capítulo 8 – Estudo de casos Leitura Complementar Caso real de um projeto de simulação Referências bibliográficas
Capítu lo 9 – Tó pico s a dicionais e m simulação 9.1. Introdução
9.2. Simulação de Monte Carlo 9.3. Introdução à Simulação de Sistemas Dinâmicos 9.4. Sistemas dinâmicos: diagrama de laços causais 9.5. Sistemas dinâmicos: construção do modelo 9.6. Tendências em simulação 9.6.1. Simulação Baseada em Agentes 9.6.2. Simulação Web e Simulação Baseada em Componentes 9.6.3. Simulação Distribuída 9.7. Exercícios de revisão Referências bibliográficas
Capítulo 10 – Epílogo
10.1. Introdução 10.2. O sucesso e, às vezes, o fracasso Referências bibliográficas
Apêndice I – Revisão de probabilidade e estatística I.1. Espaço amostral I.2. Propriedades básicas da probabilidade I.3. Probabilidade condicional e independência I.4. Variáveis aleatórias I.5. Variáveis aleatórias discretas I.5.1. Função probabilidade e função de repartição I.5.2. Média e variância
I.6. Variáveis aleatórias contínuas I.6.1. Função densidade de probabilidade e função de repartição I.6.2. Média e variância I.7. Estimação de parâmetros de funções: o método da máxima verossimilhança Referências bibliográficas
Apêndice II – Introdução à Teoria das Filas II.1. Conceitos fundamentais II.2. Fórmula de Little: a fórmula geral das filas II.3. Expressões analíticas para alguns modelos clássicos da Teoria das Filas II.4. Análise econômica de filas
Referências bibliográficas
Apêndice III – Ge ração de números alea tórios III.1. Métodos para geração de números aleatórios III.2. Testes de aleatoriedade III.3. Geração de variáveis aleatórias contínuas III.4. Geração de variáveis aleatórias discretas Referências bibliográficas
Apêndice IV – Documentação do projeto e elaboração de um relatório de simulação IV.1. A documentação do projeto de simulação IV.2. O relatório técnico
Referências bibliográficas
Apêndice V – Especificação do modelo de simulação Apêndice VI – Tabelas Apêndice VII – Distribuições estatísticas VII.1. Distribuições discretas VII.2. Distribuições contínuas Apêndice VIII – Respost as de exercícios se lec ionados
Notas
Capítulo 1
O que é simulação?
1.1. Introdução A palavra “simulação” possui diversos significados; destes, apresentamos alguns, extraídos do Houaiss:1 1. Falta de correspondência com a verdade, dissimulação, fingimento, disfarce; 2. Imitação do funcionamento de um processo por meio do funcionamento de outro; 3. Teste, experiência, ensaio. Obviamente, para este livro, “simulação” tem um significado mais técnico e específico do que estes relacionados. Mesmo considerando que não estamos discutindo o termo em se sentido lato (ou seja, amplo), há ainda certo desencontro em torno dessa “palavra mágica”. Cabe aqui uma primeira classificação. O termo “simulação” pode ser classificado em duas grandes categorias: a simulação computacional e a simulação não computacional. A simulação computacional, objeto de estudo deste livro, é aquela que necessita de um computador para ser realizada. A simulação não computacional, como o próprio nome diz, é aquela que não necessita de um computador para ser realizada; por exemplo, um projetista utilizando um protótipo em escala reduzida de uma aeronave em um túnel de vento. O objetivo do projetista é simular qual seria o comportamento da aeronave real a partir do comportamento exibido pelo protótipo no túnel de vento. Este livro discutirá, ao longo dos seus capítulos, a modelagem e a Simulação de Eventos Discretos, que dependem intrinsecamente de um computador digital. Portanto, quando nos referirmos à palavra
“simulação”, estaremos nos referindo especificamente à simulação computacional. Usualmente os textos clássicos de simulação fornecem uma série de definições do que é simulação. Para não tornarmos as coisas muito repetitivas, faremos o inverso: discutiremos o que a simulação não é, baseados no que o senso comum acha sobre o termo: • A simulação não é uma bola de cristal.A simulação não pode prever o futuro. Se pudesse, provavelmente nós não estaríamos escrevendo este livro – estaríamos simulando, por exemplo, as corridas do Jockey Club para apostarmos no cavalo vencedor do próximo páreo. O que a simulação pode prever, com certa confiança, é o comportamento de um sistema baseado em dados de entradas específicos e respeitado um conjunto de premissas. • A simulação não é um modelo matemático.Embora possamos utilizar fórmulas matemáticas em um modelo de simulação, não existe uma “expressão analítica fechada” ou um conjunto de equações que, fornecidos os valores de entrada, fornecem resultados sobre o comportamento do sistema a partir de uma forma analítica direta. Enfim, a simulação não pode ser reduzida a um simples cálculo ou a uma fórmula matemática. • A simulação não é uma ferramenta estritamente de otimização.A simulação é, na verdade, uma ferramenta de análise de cenários. Mais adiante, no Capítulo 7, discutiremos como a simulação pode ser combinada com algoritmos de otimização, mas a simulação por si só não é uma ferramenta de otimização capaz de identificar uma solução ótima. • A simulação não substitui o pensamento inteligente.Segundo o princípio SINSFIT
(Simulation Is No Substitute For Intelligent Thinking ), pregado por alguns autores renomados da área, a simulação não pode substituir o ser humano no processo de tomada de decisão. 2 • A simulação não é uma técnica de último recurso. No passado, a simulação era considerada uma técnica de último recurso, que deveria ser utilizada quando “todas as técnicas possíveis falhassem”. Atualmente, no entanto, a simulação é uma das técnicas mais utilizadas na Pesquisa Operacional e na Ciência da Administração, como podem comprovar várias pesquisas realizadas em campo (LAW;KELTON, 1991). • A simulação não é uma panaceia.Corroborada pelo pensamento de Harrel e Tuma (1995), a simulação se aplica a uma classe de problemas bem específicos aos quais se adapta bem. (Para mais detalhes, consultar, ao final deste capítulo, a Leitura Complementar: “Quando devemos utilizar a simulação?”) Existem ainda vários termos relacionados à simulação, e, para complicar um pouco mais, vários tipos de simulação. Quando pensamos na simulação ou emsimular algo, queremos obviamente simular algum sistema. Mas o que é umsistema? Segundo Forrester (1968), sistema é um agrupamento de partes que operam juntas, visando um objetivo em comum. Conforme a definição de Forrester, um sistema sempre pressupõe uma interação causaefeito entre as partes que o compõem. Para que tais partes e, principalmente, para que as interações entre essas partes sejam identificadas, o objetivo do sistema deve ser conhecido com clareza. Na Figura 1.1 vemos um sistema que é composto por uma queijeira (A), um
queijo (B) e uma faca (C). Um rato rodeando esse sistema faz ou não parte dele? A resposta depende do que pretendemos analisar. Se estivermos preocupados apenas com a mecânica do sistema, ou seja, o corte do queijo sobre a queijeira, podemos eliminar o rato desse sistema, pois ele não afetará o corte do queijo; no entanto, se pretendemos estudar o desenvolvimento de bactérias no queijo, tanto a queijeira quanto a faca quanto o rato podem ser igualmente importantes e devem ser considerados como parte do sistema. Naturalmente, alguma pessoa deverá fazer parte desse sistema, já que todo esse processo deve se dar de forma manual (afinal, alguém deve cortar o queijo...).
Figura 1.1 – Sistema composto por uma queijeira, um queijo, uma faca (e um rato).
Usualmente, quando imaginamos um sistema, quase sempre associamos nosso pensamento
a um sistema real, que existe fisicamente. Ora, poderíamos também simular um sistema hipotético, que não existe na realidade. Embora o processo de validação 3 seja mais difícil para um sistema não existente, é viável e comum, na prática, a construção de modelos de simulação de sistemas hipotéticos ou imaginários. Mas o que é um modelo? E, mais especificamente, o que é ummodelo de simulação? Dado um sistema (ou pelo menos como nós entendemos esse sistema), podemos construir uma representação simplificada das diversas interações entre as partes desse sistema (Fig. 1.2). Um modelo é, assim, uma abstração da realidade, que se aproxima do verdadeiro comportamento do sistema, mas sempre mais simples do que o sistema real. Por outro lado, se o modelo construído apresenta uma complexidade maior do que a do próprio sistema, não temos um modelo, mas sim um problema. Isso porque a intenção principal da modelagem é capturar o que realmente é importante no sistema para a finalidade em questão. Se o modelo for tão ou mais complicado do que a realidade, para que um modelo? Por exemplo, em um sistema formado por uma linha de montagem de automóveis, com máquinas e operadores, é irrelevante saber a cor do sapato do operário se estamos preocupados com a quantidade de automóveis produzida no mês. No Capítulo 3, discutiremos melhor o processo de modelagem e sua simplificação, mas, por ora, vamos distinguir as três categorias básicas de modelos: simbólicos, matemáticos e de simulação.
1.2. Modelos simbólicos, icônicos ou diagramáticos Um modelo denominado simbólico (ou icônico ou diagramático) é composto por símbolos gráficos que representam um sistema de maneira estática, por exemplo, uma “foto” (sem se considerar o seu comportamento no tempo). Um fluxograma de processo pode ser considerado como um modelo simbólico. As grandes limitações desse tipo de modelo, além de sua representação estática do sistema, são a falta de elementos quantitativos (medidas de desempenho do sistema, por exemplo) e a dificuldade de se representarem muitos detalhes de um mesmo sistema. O modelo simbólico é utilizado principalmente na documentação de projetos e como ferramenta de comunicação. A Figura 1.3 ilustra o modelo simbólico representado por um fluxograma do processo de atendimento de chamadas telefônicas realizado pelas unidades de resgate do Corpo de Bombeiros.
Figura 1.2 – Processo de modelagem de um sistema real ou de um sistema imaginário.
1.3. Modelos matemáticos ou analíticos Os modelos matemáticos (ou analíticos ) podem ser identificados como um conjunto de fórmulas matemáticas, como os modelos de programação linear ou os modelos analíticos da Teoria das Filas.4 Na sua maioria, esses modelos são de natureza estática (o que não é o caso da Teoria das Filas) e não apresentam soluções analíticas para sistemas complexos, devendo-se utilizar hipóteses simplificadoras. Por outro lado, devido à sua natureza, a solução é rápida e exata (quando existe solução analítica). Considere, por exemplo, um sistema de fila única, com disciplina FIFO,5 como o representado na Figura 1.4.
Figura 1.3 – Modelo simbólico: fluxograma do atendimento de unidades de resgate do Corpo de Bombeiros (baseado em Souza, 1996).
Os tempos entre chegadas sucessivas de pessoas no sistema são exponencialmente distribuídos, e os tempos de atendimento na mesa (ou servidor) também seguem uma distribuição exponencial. Sendo ρ a razão entre a taxa média de pessoas que chegam ao sistema e a taxa média de pessoas atendidas no servidor, sabe-se, pela Teoria das Filas (Apêndice II), que o número médio de pessoas aguardando em fila,Lf , pode ser estimado pela seguinte expressão:
(1.1)
Figura 1.4 – Sistema de fila ú nica co m apenas um servidor.
Para o sistema da Figura 1.4, portanto, representamos o comportamento de um parâmetro importante do sistema, o número médio de pessoas em fila, através de um modelo matemático. O que ocorreria com o número médio de pessoas na fila, por exemplo, se a disciplina de atendimento não fosse mais FIFO, e sim, ao contrário, uma disciplina que priorizasse a idade das pessoas (os mais velhos são atendidos primeiro)? Neste caso, a
Teoria de Filas não fornece um modelo matemático pronto, e, muito provavelmente, teremos que construir um modelo de simulação. Na Leitura Complementar, ao final deste capítulo, faremos um comparativo mais detalhado entre a simulação e a Teoria das Filas.
1.4. Modelos de simulação Os sistemas reais geralmente apresentam uma maior complexidade, devido, principalmente, à sua natureza dinâmica (que muda seu estado ao longo do tempo) e à sua natureza aleatória (que é regida por variáveis aleatórias). Um modelo de simulação consegue capturar com mais fidelidade essas características, procurando repetir em um computador o mesmo comportamento que o sistema apresentaria quando submetido às mesmas condições de contorno. O modelo de simulação é utilizado particularmente como uma ferramenta para se obter respostas a sentenças do tipo: “O que ocorre se...”, por exemplo: • O que ocorre se adicionarmos um terceiro turno de produção? • O que ocorre se houver um “pico de demanda de 30%”? • O que ocorre se reduzirmos nossa equipe de manutenção em duas pessoas? • O que ocorre se adquirirmos um novo equipamento? Note que a lista de alternativas para esse tipo de pergunta pode ser infinita, o que leva à conclusão de que um modelo de simulação pode ser capaz de analisar diversos aspectos do sistema, ou melhor, todos os aspectos do sistema de interesse. Por outro lado, nem tudo é um mar de rosas: construir modelos de simulação pode se tornar uma tarefa difícil, pela própria natureza do processo; consequentemente, leva-se mais tempo para a obtenção do resultado desejado.
A simulação computacional pode ainda ser classificada em três categorias básicas: Simulação de Monte Carlo, Simulação Contínua e Simulação de Eventos Discretos. A Simulação de Monte Carlo utiliza geradores de números aleatórios para simular sistemas físicos ou matemáticos, nos quais não se considera o tempo explicitamente como uma variável. Essa simulação é particularmente útil para a solução de problemas matemáticos complexos que surgem no Cálculo Integral, por exemplo. Já a Simulação Contínua e a Simulação de Eventos Discretos levam em consideração as mudanças de estado do sistema ao longo do tempo. A Simulação Contínua é utilizada para modelar sistemas cujo estado varia continuamente no tempo. Considere, por exemplo, uma xícara de chá quente colocada à temperatura ambiente (Fig. 1.5). O fenômeno do resfriamento do chá é contínuo no tempo, e o seu estudo pode ser mais bem conduzido por uma Simulação Contínua. A Simulação Contínua utiliza-se de equações diferenciais para o cálculo das mudanças das variáveis de estado ao longo do tempo. Por outro lado, a Simulação de Eventos Discretos é utilizada para modelar sistemas que mudam o seu estado em momentos discretos no tempo, a partir da ocorrência deeventos . A preparação da xícara de chá do exemplo anterior envolve três eventos (Fig. 1.5): (A) colocação da água quente na xícara, (B) colocação do chá na água quente e (C) disponibilização do chá. Note que cada evento ocorre em instantes determinados no tempo. A Simulação de Eventos Discretos, como o próprio nome diz, é orientada por eventos: o relógio de simulação sempre indica um instante em que um evento acontece (colocação da água, colocação do chá e disponibilização do chá). Retomaremos este conceito no Capítulo 3, quando apresentarmos
a simulação manual. O Capítulo 9 discute a Simulação de Monte Carlo e a Simulação Contínua (também conhecida como Simulação de Sistemas Dinâmicos). Em alguns casos raros, pode ser necessário construir um modelo de simulação que compreenda simultaneamente aspectos das simulações contínuas e discretas; nesses casos, a simulação é denominada simulação combinada ou híbrida (PRITSKER, 1995). A partir deste ponto, a menos que informado o oposto, sempre que utilizarmos a palavra “simulação”, estaremos nos referindo à Simulação de Eventos Discretos.
1.5. Aplicações da simulação O campo de aplicação da simulação é muito amplo. Simplificadamente, podemos dividir as áreas de aplicação em dois grandes setores: manufatura e serviços. Alguns bons exemplos de aplicações da simulação na área de serviços estão em: • Aeroportos e portos . É um campo que possibilita alta aplicabilidade da simulação. A título de ilustração, em um aeroporto é possível fazer uma simulação para dimensionar o número de postos de check-in necessários ou mesmo para dimensionar um sistema completo de transporte de bagagens. Em uma operação portuária, por exemplo, é possível verificar se o número de equipamentos de movimentação de materiais e homens é suficiente para carregar e descarregar um determinado número de navios em um certo tempo estipulado; • Bancos. Nesse caso, a simulação pode ser utilizada para verificar qual é a melhor política de abertura e fechamento de caixas, o número de caixas automáticos necessários, estudar problemas de layout , determinar o tempo máximo de espera em fila etc.; • Cadeias logísticas. Nesse segmento, a simulação pode ser utilizada para determinar qual deve ser a melhor política de estocagem, transporte e distribuição, desde a srcem das matérias-primas, passando pela fabricação até o consumidor final;
Figura 1.5 – Evolução dos estados na Simulação de Eventos Discretos, da preparação de uma xícara de chá, e na Simulação Contínua, do estudo da temperatura do chá ao longo do tempo.
• Call centers ou centrais de atendimento. Esse é outro segmento em que a simulação pode ser plenamente aplicada. A simulação em umcall center poderá determinar qual a melhor
configuração de uma ilha de atendimento, qual o número ideal de postos de atendimento necessários em uma determinada hora do dia para garantir um certo nível de serviço, quais equipamentos de automação de call centers devem ser utilizados etc.; • Escritórios ou BPR (Business Process Reengineering). A simulação pode ser aplicada para determinar qual seria o melhor fluxo de processo em um escritório, uma repartição pública ou um cartório. Muitas vezes, esse segmento é também denominado Business Process ou BP, em analogia aos processos de manufatura aplicados aos negócios; • Hospitais. A área da saúde é um segmento em que a simulação pode e vem sendo frequentemente aplicada, para estudar o comportamento de UTIs, o dimensionamento de ambulâncias, testes de políticas de transplantes de órgãos etc.; • Parques de diversões. Outro segmento de serviços ligado ao entretenimento. Nesse caso, uma simulação pode ser útil na verificação dos tempos de espera em atrações, na distribuição física das atrações no parque etc.; • Restaurantes e cadeias de fast-food. O segmento de bares e restaurantes também pode se beneficiar da tecnologia de simulação, utilizando-a para verificar seus tempos de espera, de utilização de mesas, capacidade da cozinha etc.; • Supermercados. Os supermercados são um segmento interessante para aplicar a simulação, pois é possível decidir qual a melhor política de abertura de caixas, a relação entre caixas rápidos e normais, o tamanho ideal do estacionamento etc.; A área de manufatura, depois da área militar, é o segundo maior campo de aplicação da
simulação. A simulação pode ser aplicada em vários segmentos da manufatura, tais como: • Sistemas de movimentação e armazenagem de materiais: esteiras transportadoras, AGVS, AS/RS, power and free conveyors (para um mais detalhes sobre sistemas de movimentação de materiais, ver Groover, 2000, Capítulos 9, 10 e 11); • Linhas de montagem; • Células automatizadas; • Problemas de programação da produção; • Análise de estoques e “Kanban”. A simulação pode ser aplicada, ainda, num subsegmento da manufatura denominado “logística interna”, como os projetos de sistemas de expedição, rcoss-docking e movimentação interna de armazéns.
1.6. A metodologia da simulação Após definirmos que para a análise de um dado sistema a simulação é mais adequada, devemos seguir certos passos, a fim de que o estudo de simulação seja bem-sucedido. Esses passos ou processos são conhecidos na literatura como “metodologias de simulação” ou “ciclos de vida de um modelo de simulação” (LAW; MCCOMAS, 1991). A construção de um programa de computador, que, para muitos leigos, é a própria simulação, é apenas uma dentre as inúmeras atividades de um estudo de simulação. Basicamente, o desenvolvimento de um modelo de simulação compõe-se de três grandes etapas (Fig. 1.6): • Concepção ou formulação do modelo; • Implementação do modelo; • Análise dos resultados do modelo. Na primeira etapa (ou fase), “concepção” (Fig. 1.6), o analista de simulação deve entender claramente o sistema a ser simulado e os seus objetivos, através da discussão do problema com especialistas. Deve-se decidir com clareza qual será o escopo do modelo, suas hipóteses e o seu nível de detalhamento. Os dados de entrada também são coletados nesta fase (Cap. 2). Não se pode negar a importância de se ter dados adequados para alimentar o modelo, sendo que a expressão GIGO garbage-in, ( garbage-out 6), muito aplicada na Engenharia de Software, também é aplicável aos modelos de simulação. No
entanto, é importante ressaltar que o modelo é que deve dirigir a coleta de dados, e não o contrário (PIDD, 2000). Finalizada a etapa de concepção, o modelo que está na mente do analista (modelo abstrato) deve ser representado de acordo com alguma técnica de representação de modelos de simulação, a fim de torná-lo ummodelo conceitual, de modo que outras pessoas envolvidas no projeto possam entendê-lo (Cap. 3). Na segunda etapa, “implementação” (Fig. 1.6), o modelo conceitual é convertido em um modelo computacional através da utilização de alguma linguagem de simulação ou de um simulador comercial. Pode-se, ainda, codificar o modelo de simulação em uma linguagem de programação geral, como C ou Pascal, mas isso é altamente desaconselhável, devido ao tempo que será despendido na programação de diversas rotinas, já existentes em simuladores comerciais (Cap. 4). Com o avanço tecnológico dos simuladores atuais, a etapa de implementação (ou codificação) já não consome tanto tempo quanto no passado (alguns autores sugerem que a implementação é responsável pelo consumo de 20% a 30% do tempo total de um estudo típico de simulação). O modelo computacional implementado deve ser comparado com o modelo conceitual, com a finalidade de avaliar se a sua operação atende ao que foi estabelecido na etapa de concepção. Para a validação computacional, alguns resultados devem ser gerados, observando se o modelo é uma representação precisa da realidade (dentro dos objetivos já estipulados). O assunto “verificação e validação” de modelos de simulação é bastante extenso, por isso, voltaremos a discuti-lo no Capítulo 5.
Figura 1.6 – Metodolog ia de simulação (CHWIF, 199 9).
Na terceira etapa, “análise” (Fig. 1.6), o modelo computacional está pronto para a realização dos experimentos, dando srcem ao modelo experimental ou modelo operacional . Nesta etapa, são efetuadas várias “rodadas” do modelo, e os resultados da simulação são analisados e documentados. A partir dos resultados, conclusões e recomendações sobre o sistema podem ser geradas. Caso necessário (se o resultado da simulação não for satisfatório), o modelo pode ser modificado, e esse ciclo é reiniciado
(Cap. 6). As etapas dispostas na Figura 1.6 não devem ser interpretadas em uma sequência linear. Em um estudo prático, podem ocorrer diversas iterações e realimentações no processo, à medida que o entendimento do problema muda. De fato, Paul, Eldabi e Kuljis (2003) comentam que todo esse procedimento sistemático pode ir por água abaixo se o problema não for bem entendido e identificado, levando a resultados da simulação completamente errôneos. Robinson (2004) enfatiza a não linearidade de um estudo de simulação, lembrando que essa não linearidade deve ser considerada, embora a totalidade dos livros de simulação (e este não é exceção!) apresente, para fins didáticos, etapa por etapa, como se elas fossem “estanques”. A melhor maneira é imaginar que o projeto de simulação desenvolve--se em forma de espiral, em que as etapas são repetidas na sequência apresentada na Figura 1.6 até que, entre uma iteração e outra, não existam mais diferenças nos resultados de cada etapa. Essa situação é particularmente comum em projetos de sistemas novos, dos quais não se dispõe de dados reais.
1.7. Exercícios de revisão 1. Procure na internet algumas definições para “simulação” e verifique, com base nas discussões realizadas aqui, se elas apresentam algumas imperfeições. 2. Para os sistemas relacionados a seguir, qual simulação é mais adequada para a sua representação: a Simulação de Eventos Discretos, a Simulação Contínua, ou ambas? Justifique intuitivamente cada resposta. a) O consumo de um pneu de um carro de Fórmula 1 durante a corrida. b) O estoque de válvulas do motor de uma equipe de Fórmula 1.
c) O processo de atendimento em um bar, desde a chegada do cliente até o pagamento da conta. d) O processo de compra de um produto através da internet, desde a seleção do produto até a sua entrega ao cliente. e ) O processo de carregamento de um navio porta-contêiner no porto. f) O crescimento de uma árvore. g) O processo de carregamento de um caminhão de transporte de gasolina em um terminal de abastecimento de uma refinaria. h) Os níveis populacionais de lagostas no litoral brasileiro. 3. A Esquadrilha Abutre está perseguindo o pombo-correio Doodle. O avião projetado por
Klunk (sim, aquele que falava: Ia blu plá rrrrmmm pombo!) está em perseguição ao pombo utilizando um radar capaz de identificar sua localização a cada cinco segundos. Assim que o pombo é localizado, o avião muda sua trajetória em direção a ele. O pombo Doodle é capaz de realizar manobras evasivas a qualquer instante; contudo, só pode olhar a posição do avião a cada quatro segundos. Na primeira identificação do radar, o pombo está a 100 m do avião, no mesmo plano e olhando para a frente do avião. Considere que a velocidade do avião é igual a 90 m/s, e a do pombo é igual a 30 m/s. a) Qual o tipo de simulação mais adequado para esse sistema? b) Construa um fluxograma representando a simulação do sistema.Atribua ( as condições iniciais que você identificar como mais adequadas). c) Construa, a partir do fluxograma obtido no item anterior, um programa de computador para representar o sistema. Elabore e teste algumas táticas evasivas diferentes para o pombo. Qual foi a melhor tática? d) Você conseguiria elaborar táticas mais eficientes para a Esquadrilha Abutre? 4. Leia o histórico da simulação, retirado do livro Simulation with Arena (KELTON; SADOWSKI, R.; SADOWSKI, D., 1998), e discuta por que a simulação é a técnica mais aplicada atualmente pela Pesquisa Operacional.7 8
Nas décadas de 1950 e 1960, a simulação era uma ferramenta muito cara e especializada, e só era utilizada por grandes corporações, pois exigia um grande investimento de capital. Usuários típicos de simulação eram encontrados nas indústrias aeroespaciais e de aço. Essas organizações tinham grupos de seis a 12 pessoas, a maioria com doutorado, que iriam desenvolver modelos de simulação grandes e complexos, utilizando as linguagens de programação disponíveis, como o FORTRAN. Estes modelos rodariam em grandes mainframes,8 com um custo de processamento que variava de 600 a 1.000 dólares a hora. A utilização da simulação tal como conhecemos iniciou-se na década de 1970. Os computadores tornavam-se mais velozes, mais baratos, e a simulação era descoberta pela indústria de grande porte. No entanto, a simulação nunca era considerada até que ocorresse um desastre. Ela se tornou uma possibilidade para muitas companhias, mais precisamente as indústrias automotiva e de base, para determinar as razões da ocorrência dos desastres e, algumas vezes, determinar os culpados. Ainda durante essa época, a simulação também era utilizada para fins acadêmicos, como parte dos currículos de Engenharia Industrial e Pesquisa Operacional. Seu crescimento no uso industrial fez com que as universidades ensinassem mais amplamente a simulação. Na mesma época, a simulação começou a alcançar programas de Administração que lidavam com técnicas quantitativas, aumentando o número e tipos de estudantes e pesquisadores expostos ao seu
potencial. Durante a década de 1980, a simulação começou a estabelecer suas raízes na Administração. Isso foi auxiliado em grande parte pela introdução do PC (computador pessoal) e da animação. Embora a simulação ainda fosse muito utilizada na análise de sistemas que falhavam, muitas pessoas requisitavam a simulação antes do início de uma produção. Ao final da década de 1990, o valor da simulação foi reconhecido por inúmeras companhias grandes, e muitas delas fizeram da simulação um requisito indispensável para a aprovação de quantias elevadas. No entanto, a simulação não tinha uso geral e raramente era utilizada por pequenas empresas. A simulação começou realmente a maturar no início da década de 1990. Várias empresas pequenas abraçaram essa ferramenta e começaram a utilizá-la nos primeiros estágios de projetos – nos quais poderia haver maior impacto. Melhor capacidade de animação, facilidade de uso, computadores mais rápidos, maior integração com outros pacotes e o surgimento dos simuladores ajudaram a simulação a se tornar uma ferramenta padrão em muitas companhias. Embora os executivos admitam que a simulação possa adicionar valor às empresas, ela ainda não se tornou uma ferramenta padrão que pode ser encontrada no computador de qualquer um. A maneira como a simulação é utilizada tem mudado: era aplicada, anteriormente, na fase de projeto, com frequência atualizada quando eram implantadas mudanças operacionais. Isso possibilitou um modelo vivo de simulação
que pode ser utilizado para análise dos sistemas muito rapidamente. A simulação tem invadido, também, a área de serviços, na qual é aplicada a muitas áreas não tradicionais.
Leitura Complementar
Quando devemos utilizar a simulação?
Como discutido anteriormente, a simulação não é uma panaceia; em muitos casos, ela não deve ser aplicada. Mas, quando devemos utilizar a simulação em detrimento de outras ferramentas de análise de sistemas? Para respondermos a essa questão, devemos, primeiramente, enunciar alguns métodos para análise de sistemas: • Contas de padeiro. São os pequenos cálculos que fazemos, geralmente baseados em média e valores aproximados; • Planilhas eletrônicas (Excel, Gnumeric, Lotus etc.). Muito utilizadas para cálculos mais complexos; • Métodos da programação matemática e métodos analíticos. Dentre esses se destacam os métodos de otimização (linear, inteira, mista, não linear etc.) e os métodos analíticos,
como a Teoria das Filas. Muitos desses métodos até podem ser utilizados através de planilhas eletrônicas com a utilização de solvers ou solucionadores apropriados; • Simulação. Neste caso, montamos um modelo de simulação o qual implementamos utilizando um simulador. Obviamente, um “método” muito utilizado é o famoso “chute”, ou, em um estilo mais pomposo, “uma estimativa”. Tomar decisões de sistemas complexos a partir apenas da intuição ou experiência ocorre com mais frequência do que se possa imaginar, levando a resultados, muitas vezes, desastrosos. Para ilustrar cada um dos métodos descritos anteriormente, vamos trabalhar com um exemplo adaptado de Grabau (2001).
Exe mplo 1.1: Siste ma de processame nto de corre spondências Em um sistema de processamento de correspondências, os tempos entre chegadas sucessivas de correspondências são exponencialmente distribuídos9 com média de 10 minutos. Existem três postos de trabalho em série, como ilustra a Figura 1.7. Ao chegar ao departamento, a correspondência é transportada para o posto de trabalho 1, sendo seu tempo de processamento de nove minutos em média, com desvio-padrão de dois minutos, segundo uma distribuição normal. A seguir, a correspondência é transportada para o posto de trabalho 2. No posto 2, o tempo de processamento segue uma distribuição triangular simétrica, com o menor valor igual a oito minutos, o maior valor igual a 10
minutos e a moda igual a nove minutos (como a distribuição é simétrica, a média neste caso também é igual a nove minutos). Em seguida, a correspondência é transportada para o posto de trabalho 3, em que os tempos de processamento são uniformemente distribuídos no intervalo entre oito e 10 minutos. Por fim, a correspondência é transportada até o ponto de saída do departamento. Pergunta-se: qual o tempo médio que cada correspondência permanece no sistema?
Figura 1.7 – Sistema de processamento de correspond ências com três postos em série.
Método das “contas de padeiro” Este método é extremamente simples e direto. Como o tempo médio entre chegadas sucessivas é de 10 minutos, e como a média dos tempos de processamento em cada um dos três postos é igual a nove minutos, então, o tempo total de processamento é de 27 (= 3 x 9) minutos. Logo, o tempo total que cada correspondência permanece no sistema, supondo-se que nenhuma correspondência espera em fila nos postos, é de 27 minutos. Nesse método, em momento algum nos preocupamos com a natureza das distribuições estatísticas envolvidas (normal, triangular, uniforme e exponencial), mas a solução está coerente com o que o “senso comum” acredita ser o tempo médio que uma correspondência permanece no sistema. Método da “planil ha eletr ônica” Nas contas anteriores, não consideramos a variabilidade do fenômeno. Com o auxílio de uma planilha eletrônica podemos calcular com mais precisão a média, se considerarmos os tempos máximos e mínimos das distribuições dos tempos de processamento. Para o posto 1, que possui tempos de atendimento normalmente distribuídos, não dispomos dos valores máximo e mínimo. Vamos considerar uma hipótese conservadora de que os tempos mínimo e máximo são de quatro desvios-padrão (= 9), respectivamente, menores e maiores do que a média (isto porque, ao considerarmos quatro desvios-padrão a mais e a menos na média de
uma variável aleatória normalmente distribuída, garantimos uma cobertura de 99,9% dos valores possíveis da distribuição). Assim, podemos construir a Tabela 1.1. Tabela 1.1 – Valores máximos e mínimos dos tempos de processamento nos postos, aproximados por quatro desvios-padrão Po sto
Tempomínimo(min.)
Tempomáximo(min.)
1
1
17
2
8
10
3
8
10
Com os valores da Tabela 1.1 podemos calcular o pior caso: o máximo tempo de processamento ocorre quando os três postos demoram o tempo máximo, e o mínimo tempo de processamento ocorre quando os três postos demoram o tempo mínimo, resultando na planilha apresentada na Tabela 1.2. Tabela 1.2 – Tempos mínimos e máximos do tempo de processamento das correspondências (utili zando planilha eletrônica) Posto
Tempo mínimo (min.)
Tempo máximo (min.)
1
1
17
2
8
10
3
8
10
Média (min.) Total (min.)
17
37
27
No pior caso, verificamos que a correspondência deve permanecer 37 minutos no sistema; no melhor, ela deve permanecer 17 minutos no sistema. Como as três distribuições dos tempos de processamento (normal, triangular e uniforme) são simétricas, a média do tempo total de permanência no sistema deve ser de 27 minutos. A planilha eletrônica permitiu uma econta mais apurada, considerarporosmuitos valores e mínimos distribuições, o resultado pode serpor considerado ummáximos valor mais “correto” das do que aquele obtido pelas “contas de padeiro”; no entanto, esse valor foi obtido sem considerarmos a existência de filas de espera nos postos de processamento de correspondências. Para incorporarmos a existência de filas nos nossos cálculos, devemos utilizar uma das seguintes ferramentas: a Teoria das Filas (Apêndice II) ou a simulação, que serão discutidas a seguir.
Métodos “analí ticos ”: a Teoria das Fil as Até aqui, aparentemente estamos no caminho certo. Contudo, as soluções anteriores estariam corretas apenas se uma hipótese fosse válida: “não existem filas de espera no
sistema”. Como os tempos de processamento não são constantes, nada impede que, no momento em que uma correspondência entra no sistema, o posto 1 já esteja ocupado no processamento de uma correspondência anterior, causando o surgimento de uma fila de espera. Neste caso, teríamos que adicionar ao tempo de processamento os tempos de espera em fila. Matematicamente, o tempo total,T, no sistema seria:
(1.2)
Onde: é o tempo de espera em fila para atendimento no postoi (para i = 1, 2 e 3). é o tempo de processamento do postoi (para i = 1, 2 e 3). Infelizmente, os tempos de espera não podem ser calculados diretamente como nos métodos anteriores: além disso, devemos utilizar a Teoria das Filas. Como estamos com três postos ou, na nomenclatura comum da Teoria das Filas, três servidores em série, esperamos que o desempenho da fila em determinado posto seja afetado pelo desempenho do posto anterior. Neste caso, temos um problema de rede de filas.
Modelos analíticos para redes de filas são complexos e de aplicação limitada. Particularmente, a Teoria das Filas é vantajosa quando as distribuições; estatísticas são conhecidas e podem ser aproximadas pela distribuição exponencial. No sistema em estudo, apenas os tempos entre chegadas sucessivas de correspondências no sistema são exponencialmente distribuídos; os outros processos aleatórios têm distribuições estatísticas conhecidas (normal, triangular e uniforme) mas que, no âmbito da Teoria das Filas, são tratadas como “distribuições genéricas”. Para o nosso exemplo, vamos, inicialmente, estabelecer uma importante hipótese simplificadora:os tempos de atendimento em cada estação são exponencialmente distribuídos, com média de nove minutos . Obviamente, a simplificação adotada altera sobremaneira a característica do sistema, mas, ao adotarmos tal hipótese, estamos aumentando a variabilidade do sistema, pois a curva exponencial é a pior curva em termos de variabilidade, já que apresenta o maior coeficiente de variação dentre as curvas mais utilizadas (razão entre o desvio-padrão e a média). O sistema pode então ser modelado por uma rede de três filas em série, e, como os tempos dos processos de chegadas e atendimentos são exponencialmente distribuídos, dizemos que o sistema é formado por três filasM/M/110 em série. Considerando isoladamente, o posto 1 processa um certo número de correspondências por minuto. Em particular, a cada nove minutos, uma nova correspondência é processada. Dizemos, assim, que a taxa de atendimento µ1 do posto 1 é:
Para este posto, um novo cliente chega, em média, a cada 10 minutos; dizemos, portanto, que a taxa de chegadas de clientes λ1 no posto 1 é:
Para que o sistema seja estável, ou seja, para que não ocorra um aumento desmedido no tamanho da fila, a taxa de atendimento no posto deve ser maior do que a taxa de chegadas: (o que é verdadeiro para o posto 1). Por raciocínio análogo, as taxas de atendimento nos postos 2 e 3 são de, respectivamente, e correspondência/minuto. Redes de filas abertas em que os tempos de atendimento e os tempos entre chegadas sucessivas são exponencialmente distribuídos com taxa média de chegadas λ exibem a importante propriedade de terem tempos entre chegadas sucessivas para cada estágio do sistema também exponencialmente distribuídos com taxa λ (Jackson, 1957). A fila M/M/1 possui uma expressão analítica pronta para o tempo média de espera no sistema W:
(1.3)
Como as taxas médias de chegadas e atendimentos são iguais nas três filas, para cada fila da série o tempo médio total de espera no sistema (em fila mais em atendimento) será o mesmo e igual a:
E o tempo médio total de espera no sistema será igual a:
Como podemos notar, embora considerando uma distribuição exponencial para os tempos de atendimento nos postos, temos agora uma melhor noção de grandeza do tempo médio em que uma correspondência permanece no sistema. Quando comparado ao método das “contas de padeiro”, devemos acender um sinal de alerta, pois o tempo estimado pela Teoria das Filas é cerca de 10 vezes maior! Isto se deve ao fato de a Teoria das Filas considerar a variabilidade do sistema, coisa que o nosso padeiro simplesmente esqueceu. Aceita-se a
“variabilidade”, a “aleatoriedade” ou o “só Deus sabe” como um fato da vida. O objetivo deste livro é construir modelos para lidar com essas situações.
Simulação Neste caso, construímos um modelo em um simulador conforme a descrição anterior (Figura 1.8). Esse modelo considera a variabilidade do sistema como: distribuição exponencial nos tempos entre chegadas sucessivas de correspondências e distribuições normal, triangular e uniforme, respectivamente, nos postos de atendimento 1, 2 e 3. Efetuando várias rodadas, chegamos aos resultados apresentados na Tabela 1.3. Tabela 1.3 – Tempo total que uma correspondência permanece no sistema; resultado obtido através da simulação do sistema Tempo total no sistema T (min.) Média
77
Máximo
244
Por que tanta diferença entre os métodos, principalmente entre os métodos das “contas de padeiro” e “planilhas eletrônicas” em relação aos métodos das Teoria das Filas e da simulação? A explicação é que, nos dois primeiros casos, trabalhamos com valores médios, o que pode mascarar o desempenho real do sistema quando ele apresenta aleatoriedade.
Figura 1.8 – O modelo de simulação construído no simulador (S oftware: SIMUL8).
A Figura 1.9 apresenta uma ilustração baseada no trabalho de Savage (2003), que mostra o perigo das médias: considere-se um bêbado andando, “na média”, exatamente sobre o meio fio de uma avenida de mão dupla. Ele será atropelado ou...? Lembre-se: na média, ele caminha sobre o meio fio...
Figura 1.9 – Pela sua posição “média”, o bêbado está vivo... Mas, “na média”, o bêbado está morto! (Baseado em SAVAGE, 2003)
Um modelo matemático construído pela Teoria das Filas é composto por fórmulas matemáticas que, via de regra, fornecem soluções mais rápidas do que a abordagem da simulação. Por outro lado, a Teoria das Filas impõe hipóteses simplificadoras para sistemas complexos, ou, mesmo, é incapaz de tratá-los de maneira conveniente. Quanto mais complexo, dinâmico e aleatório for um problema, maior será a aplicabilidade das ferramentas de simulação (Fig. 1.10). Concluindo, algumas observações importantes: • Se o problema for estático , isto é, se os estados do sistema não se alteram com o tempo, a Simulação de Eventos Discretos não tem qualquer utilidade prática. • Se o problema for determinístico , isto é, não apresenta nenhum comportamento aleatório, a simulação pode ser utilizada – obviamente ela será subutilizada. Esse seria um caso típico de “matar uma mosca com uma bala de canhão”, o que não significa que estamos proibidos de rodar uma simulação com os valores constantes. Na realidade, esta é uma das técnicas de verificação e validação de modelos de simulação (como discutiremos no Capítulo 5). O exercício 14 do Capítulo 8 (programação da produção) é um exemplo de um modelo de simulação determinístico. • Se o problema em questão for complexo, dinâmico e apresentar aleatoriedade , a melhor escolha é a simulação.
Além de uma ferramenta de análise de problemas, a simulação é uma ferramenta que promove uma melhor compreensão sobre os sistemas, servindo de meio de comunicação entre analistas, gerentes e pessoas ligadas a sua operação. É interessante notar que, em diversas situações em que um estudo de simulação é iniciado, este não é completado, pois o próprio entendimento que o desenvolvimento do projeto de simulação promove entre os membros da equipe faz com que o problema seja solucionado antes mesmo de terminado o estudo de simulação.
Figura 1.10 – Quanto maior e mais complexo o sistem a, maior a ap licabilidade da simulação.
Referências bibliográficas CHWIF, Leonardo. Redução de modelos de simulação de eventos discretos na sua concepção: uma abordagem causal. Tese de Doutorado. Escola Politécnica da USP. Departamento de Engenharia Mecânica, 1999. FORRESTER, Jay W.Principles of systems. Cambridge: Wright-Allen Press Inc., 1968. GRABAU, Mark R. Averages kill (or how to sell business process simulation). Proceedings of 2001 Winter Simulation Conference, p. 1262-1265, 2001. GROOVER, Mikell P. Automation, production systems and computer integrate Manufacturing. 2. ed. Upple Saddle River: Prentice-Hall, 2000. HARREL, Charles R.; TUMAY, Kerim.Simulation made easy: a manager’s guide. Norcross: Engineering and Management Press, 1995. Simulation with KELTON, David W.; SADOWSKI, Randall P.; SADOWSKI, David. Arena. Boston: McGraw Hill, 1998. LAW, Averill M.; KELTON, David W. Simulation, modeling & analysis. 2. ed. Nova York: McGraw-Hill, 1991. LAW, Averill; MCCOMAS, Michael. Secrets of successful simulation studies. Proceedings of 1991 Winter Simulation Conference, p. 21-27, 1991. PAUL, Ray J.; BALMER, David W.Simulation modelling. Londres: Chartwell-Bratt, 1993.
PAUL, Ray J.; ELDABI, Tillal; KULJIS, Jasna. Simulation education is no substitute for intelligent thinking.Proceedings of the 2003 Winter Simulation Conference, p. 19891993, 2003. PIDD, Michael. Tools for thinking: modelling in management science. 4. ed. Chichester: John Wiley & Sons, 2000. PRITSKER, A. Alan B.Introduction to simulation and SLAM II. 4. ed. Nova York: Jon Wiley & Sons, 1995. ROBINSON, Stewart. Simulation : the practice of model development and use. Chichester: John Wiley & Sons, 2004. SAVAGE, Sam L. INSIGHT.xla: Pacific Grove: Duxbury Press, business 2003. analysis software for Microsoft Excel. 2. ed. SOUZA, João C. Dimensionamento, localização e escalonamento de serviços de atendimento emergencial. Tese de Doutorado. Universidade Federal de Santa Catarina-UFSC. Departamento de Engenharia de Produção e Sistemas, 1996.
lguns textos clássicos de Simulação BANKS, Jerry; CARSON, John S.; NELSON, Barry L.; NICOL, David M. Discrete-event system simulation. 2. ed. Upper Sandle River: Prentice-Hall International Series i Industrial and System Engineering, 2001. GORDON, Geoffrey.System simulation . Englewood Cliffs: Prentice-Hall, 1978. LAW, Averill M.; KELTON, David W. Simulation, modeling & analysis. 2. ed. Nova York: McGraw-Hill, 1991. PIDD, Michael. Computer simulation in management sciences. 4. ed. Chicthester: Joh Wiley and Sons, 1998. SHANNON, Robert E. Systems simulation: the art and science. Englewood Cliffs: Prentice-Hall, 1975. TOCHER, Keith D.The art of simulation . Londres: English Universities Press, 1963. ZEIGLER, Bernard P.Theory of modelling and simulation. Nova York: John Wiley, 1976.
Capítulo 2
Modelagem dos dados de entrada
2.1. Introdução A maioria dos sistemas que procuramos modelar através da simulação possui algum fenômeno aleatório que os governa. Consideremos, por exemplo, um operador que repete por 100 vezes uma mesma operação de usinagem em um torno mecânico. Obviamente, nunca saberemos exatamente e de antemão quanto tempo o operador levará no processo de usinagem da próxima peça. O tempo gasto pelo operador do torno é, assim, umavariável aleatória . Apesar de não sabermos o tempo exato, podemos prever o seu comportamento probabilístico, a partir da observação dos tempos que o operador consumiu, no passado, realizando a mesma operação. É fundamental que o comportamento probabilístico dessa variável seja corretamente representado, para que possa ser utilizado em um modelo de simulação. O objetivo deste capítulo é discutir como um fenômeno aleatório observado no sistema real pode ser representado no modelo de simulação. Como discutido no capítulo anterior, o modelo de simulação procura capturar o comportamento de um dado sistema e representá-lo como um modelo computacional. Todo modelo de simulação deve ser capaz de representar os diversos fenômenos aleatórios existentes no sistema, construídos a partir da observação e do levantamento de dados do fenômeno, de modo que esse modelo de simulação seja o maisrepresentativo possível do sistema real. Uma das etapas mais importantes na construção de um estudo de simulação diz respeito à modelagem dos dados de entrada. Mas o que vem a ser “modelar dados”? A ideia aqui é
obter modelos probabilísticos que permitam inferir as propriedades de um dado fenômeno aleatório . Por exemplo, considere que pretendemos realizar um estudo de simulação relativo ao comportamento das filas nos caixas de um supermercado. Um fenômeno aleatório importante neste sistema é relativo ao processo de chegadas de clientes: “De quanto em quanto tempo um novo cliente entra no supermercado?”. Já vimos, no Capítulo 1, que, se trabalharmos simplesmente com a média dos tempos entre chegadas sucessivas de clientes, não estaremos considerando o fenômeno aleatório por completo, o que poderá ocasionar erros consideráveis na conclusão do nosso estudo. A saída é obter um modelo capaz de representar não só a média mas também o comportamento da variável que governa o fenômeno aleatório de interesse. Chamamos de modelos de entrada os modelos probabilísticos responsáveis por representar a natureza aleatória de um dado fenômeno, e de modelagem de dados o processo de escolher a melhor representação deste fenômeno. A modelagem de dados é um processo facilitado quando as seguintes condições são válidas (NELSON; YAMNITSKY, 1997): • O processo de entrada de dados pode ser representado por uma sequência de variáveis aleatórias independente e identicamente distribuída ; 1 • A distribuição das variáveis aleatórias pode ser aproximada por um modelo probabilístico conhecido e encontrado em pacotes comerciais (Apêndice VII): Normal, Beta, Erlang, Exponencial, Gama, Lognormal, Poisson, Triangular, Uniforme e Weibull, através dos
testes de aderência; • Os dados estão disponíveis de modo que seus parâmetros possam ser estimados. O estudo da modelagem de dados pode ser resumido em três etapas: • Coleta de dados; • Tratamento dos dados; • Inferência. A primeira etapa, coleta de dados, corresponde ao chamado processo de amostragem. Na maioria dos casos, é impraticável realizar o levantamento de dados de toda a população. Uma amostra é um conjunto de valores retirados da população de interesse, utilizada para representar a população no estudo estatístico. Nesta etapa, o objetivo é garantir que a amostra obtida seja a mais representativa possível do fenômeno. No passo seguinte, tratamento de dados, são utilizadas técnicas para descrever os dados levantados, identificar as possíveis falhas nos valores amostrados e aumentar nosso conhecimento acerca do fenômeno em estudo. A terceira etapa, inferência , aplica os conhecimentos do Cálculo de Probabilidades para inferir qual o comportamento da população a partir da amostra. Como resultado, teremos um modelo probabilístico (i.e., uma distribuição de probabilidades) que representará o fenômeno aleatório em estudo e será incorporado ao modelo de simulação. Não é objetivo deste texto substituir os livros e manuais de estatística. Vamos discutir a
modelagem de dados através de exemplos práticos, e sugerimos ao leitor consultar as referências bibliográficas ao final deste capítulo, para uma revisão e um aprofundamento dos conhecimentos utilizados.
2.2. Coleta de d ados A coleta de dados se inicia com a escolha adequada das variáveis de entrada do sistema a ser simulado. Um cuidado especial deve ser tomado para diferenciar o que são “dados de entrada” – valores fornecidos ao modelo de simulação – e o que são “dados de saída” – valores obtidos do modelo de simulação. Retomando o exemplo do supermercado, considere as filas que se formam nos caixas. Neste sistema, para a modelagem dos dados de entrada, as variáveis de estudo seriam: o tempo entre chegadas sucessivas dos clientes e os tempos gastos em atendimento nos caixas de pagamento das compras. Alguém poderia lembrar-se do tempo de espera nas filas do caixa como mais uma variável de estudo, afinal, trata-se de um fenômeno aleatório importante que ocorre no supermercado. Contudo, neste caso, estaríamos cometendo um erro: os tempos de espera são parâmetros dedesempenho do sistema (que serão de valia para o processo de validação do modelo e para a própria tomada de decisão). Na verdade, os tempos de espera em fila e, de uma maneira mais ampla, o fenômeno da formação de uma fila são consequência direta dos fenômenos aleatórios das chegadas dos clientes e do atendimento desses clientes. No supermercado, a primeira coisa a ser feita é observarmos o fenômeno de chegadas de clientes. A população de interesse é formada por todos os valores que a variável de estudo – tempo entre chegadas sucessivas de clientes – pode assumir. Um olhar mais atento descobrirá que a população ainda não foi corretamente definida. Lembre-se de como funciona um supermercado: o fenômeno “chegadas de clientes” exibe o mesmo
comportamento em uma segunda-feira pela manhã e em um sábado à tarde? E se estivéssemos falando de um sábado no início do mês em relação ao sábado no final do mês? Obviamente, a chegada de clientes ao supermercado exibe um comportamento diferente para cada horário e dia da semana (em particular, sabe-se que o volume de vendas é, geralmente, maior no sábado seguinte ao dia de pagamento). Isto significa que, para construirmos uma amostra representativa, precisamos caracterizar cuidadosamente a nossa opulação de interesse. Considerando que o estudo deve ser realizado para o período mais crítico de funcionamento do supermercado, o interesse recairia no sábado posterior ao dia de pagamento. Ficaria ainda em aberto a questão da variação ao longo do dia: como o volume de clientes é maior à tarde, podemos estabelecer que a nossa população corresponderá aos valores dos tempos entre chegadas sucessivas de clientes no período das 12 às 18 horas. Como o volume de clientes é muito grande para esse período, não há como coletarmos todos os valores possíveis; além disso, precisamos construir uma amostra. É hora, portanto, do trabalho de campo: vamos ao supermercado coletar uma amostra da população. No supermercado, marcamos uma linha imaginária na entrada, indicando que, quando um cliente ultrapassá-la, é o momento de anotar o tempo atual do cronômetro, zerá-lo e dispará-lo novamente para a próxima coleta (existem equipamentos que podem realizar este levantamento de forma totalmente automatizada). Suponhamos que, com cerca de 30 minutos de levantamento, conseguimos construir a Tabela 2.1, que representa um conjunto de 200 valores coletados que agora compõem a amostra. Quando da construção de uma amostra,
deve-se ter atenção aos seguintes cuidados práticos (VINCENT, 1998): • O tamanho da amostra deve estar entre 100 e 200 observações. Amostras com menos de 100 observações podem comprometer a identificação do melhor modelo probabilístico, e amostras com mais de 200 observações não trazem ganhos significativos ao estudo; • Coletar e anotar as observações na mesma ordem em que o fenômeno está ocorrendo, para permitir a análise de correlação (a ser discutida no próximo item); • Se existe alguma suspeita de que os dados mudam em função do horário ou do dia da coleta, esta deve ser refeita em outros horários e dias. Na modelagem de dados, vale a regra: toda suspeita deve ser comprovada ou descartada estatisticamente . Tabela 2.1 – Tempos entre chegadas sucessivas de clientes do supermercado (segundos) 11 5 2 0 9 9 1
5
1
3
3
3
7
4
12
8
5
2
6
1
11
1
2
4
2
1
3
9
0
10
3
3
1
5
18
4
22
8
3
0
8
9
2
3
12
1
3
1
7
5
14
7
7
28
1
3
2
11
13
2
0
1
6
12
15
0
6
7
19
1
1
9
1
5
3
17
10
15
43
2
6
1
13
13
19
10
9
20
19
2
27
5
20
5
10
8
2
3
1
1
4
3
6
13
10
9
1
1
3
9
9
4
0
3
6
3
27
3
18
4
6
0
2
2
8
4
5
1
4 2
18 12
1 28
0 0
16 7
20 3
2 18
2 12
3
2
8
3
19
12
5
4
6
0
5
0
3
7
0
8
8
12
3
7
1
3
1
3
2
5
4
9
4
12
4
11
9
2
0
5
8
24
1
5
12
9
17
728
12
6
4
3
5
7
4
4
4
11
3
8
O leitor pode questionar neste ponto: “O número de valores coletados é suficiente para representar a população?” Essa dúvida será respondida mais adiante, quando falarmos de “testes de aderência”; por ora, vamos conhecer melhor o fenômeno aleatório em estudo através do “tratamento dos dados”.
2.3. Tratamento dos dados Utilizando as ferramentas da Estatística Descritiva (Apêndice I), podemos explorar o nosso conjunto de dados de modo a compreendermos melhor o fenômeno. Esta é a fase em que extraímos as medidas de posição (média, mediana, moda etc.) e de dispersão (variância, amplitude, coeficiente de variação etc.) da variável aleatória em estudo. Existem diversos pacotes de uso comercial que podem ser utilizados neste estudo (Minitab, SPSS, Best Fit, entre outros). Alguns pacotes de simulação, inclusive, têm módulos para modelagem de dados (Stat::Fit – ProModel, SIMUL8, Input Analyzer – Arena, entre outros). A Tabela 2.2 resume as principais medidas de posição e dispersão obtidas a partir dos dados coletados no exemplo do supermercado. Tabela 2.2 – Estatísticas descritivas do exemplo Média
Medidas de posição
10,44
Mediana
5
Moda
3
Mínimo
0
Máximo
728
Amplitude
728
Desvio-padrão
51,42
Medidas de dispersão
Variânciadaamostra
2.643,81
CoeficientedeVariação
493%
CoeficientedeAssimetria
13,80
A média é de 10,44 segundos entre a chegada de um cliente e outro. A moda (valor que mais ocorre na amostra) é de três segundos. Com um pouco mais de atenção, podemos descobrir valores, no mínimo, curiosos. O valor mínimo é de zero segundo (dois clientes chegando juntos) e o valor máximo é de 728 segundos! (mais de 10 minutos de intervalo entre um cliente e outro). Com certeza, podemos dizer que esse valor é atípico, o
discrepante , na nossa amostra. Ele deve retirado da da amostra? questão devemos conhecer os outliers , ouser “pontos fora curva”.Para respondermos a essa
2.3.1 Outliers Todo levantamento de dados está sujeito a valores não usuais conhecidos comooutliers . As razões mais comuns para o seu surgimento são algum erro na coleta de dados ou um evento raro e totalmente inesperado. • Erro na coleta de dados. Este tipo de outlier é o mais comum, principalmente quando o levantamento de dados é feito por meio manual. Considere que, durante a coleta de dados no supermercado, houve uma troca de pesquisadores. Quando o primeiro passou o
cronômetro para o segundo, o cronômetro e a planilha não foram corretamente atualizados, o que resultou em um valor de 728 segundos entre um cliente e outro. Falhas em equipamentos de coleta de dados, problemas na conversão de arquivos, máquinas que suspendem o serviço temporariamente por defeito, dentre outros, são causadores clássicos de outliers . Quando descobrimos umoutlier desse tipo, o mais correto é retirálo da amostra. • Eventos raros. Este é o tipo de outlier mais difícil de se lidar. Nada impede que situações totalmente atípicas ocorram na nossa coleta de dados; alguns exemplos: • Um dia de temperatura negativa no verão da cidade do Rio de Janeiro; • Um tempo de execução de um operador ser muito curto em relação aos melhores desempenhos obtidos naquela tarefa; • Um tempo de viagem de um caminhão de entregas na cidade de São Paulo, durante o horário de rush, ser muito menor do que fora desse horário. Tais situações são claramente atípicas, mas continuam pertencentes ao fenômeno em estudo. O outlier nesses casos é um problema, pois ele afeta os resultados do estudo distorcendo as estimativas, os níveis de significância dos testes estatísticos e levando a conclusões equivocadas acerca do fenômeno. A Tabela 2.3 compara o impacto de retirarmos ou não o outlier identificado, o valor 728, do nosso exemplo. Apesar de se tratar apenas de um valor em uma amostra de 200 valores no total, as distorções na média e na variância são significativas.
Tabela 2.3 – Impacto da retirada do outlier da amostra utilizada no exemplo Dados Média Mediana 2
Variância da amostra
com o outlier
sem o outlier
10,44
6,83
5
5
2.643,81
43,60
Existem2 algumas técnicas que podem ser utilizadas para a identificação deoutliers em uma amostra. Um dos métodos mais utilizados consiste em construir um intervalo de valores a partir dos quartis da amostra. Considere queQ1 e Q3 são, respectivamente, os valores do primeiro e terceiro quartis;3 assim, a amplitude interquartil , A, é calculada pela diferença:
(2.1)
Considera-se um valor discrepante ou outlier moderado qualquer valor que estiver abaixo de Q1 – 1,5A ou acima de Q3 + 1,5A. De modo semelhante, considera-se um valor discrepante ou outlier extremo qualquer valor que estiver abaixo de Q – 3A ou acima de 1
Q3 + 3A. O modo gráfico de representar o outlier é através do gráfico box-plot , representado na Figura 2.1, para três amostras hipotéticas A, B e C. No box-plot , a “caixa” marca o intervalo entre os primeiro e terceiro quartis, e as linhas retas verticais representam os extremos para os valores não discrepantes. Um outlier é representado, portanto, por um ponto fora das linhas verticais (o asterisco, na Figura 2.1).
Figura 2.1 – Diagrama box-plot para identificação de outliers.
Se aplicarmos esse critério de identificação de outlier aos dados do exemplo, teremos: • Primeiro quartil: Q1= 2 • Terceiro quartil: Q3= 9 • Amplitude interquartil: A= Q3- Q1= 9-2= 7 Serão considerados outliers moderados aqueles valores que estiverem abaixo deQ1 1,5 = 2 – 1,5(7) = 2 – 10,5 = –8,5 e acima de Q3 + 1,5A = 9 + 1,5(7) = 9 + 10,5 = 19,5. Nesse grupo, existem 11 valores; seguindo o mesmo raciocínio, osoutliers extremos estariam abaixo de Q – 3A = 2 – 3(7) = 2 – 21 = –19 e acima de Q + 3A= 9 + 3(7) = 9 + 21= 30. 1 3 Neste caso, teríamos apenas dois outliers , o “43” e o “728”. Normalmente, devemos retirar da amostra todos os outliers encontrados. Contudo, esse nem sempre é o procedimento mais correto, pois, às vezes, trata-se de um valor que não podemos desprezar ou de uma característica própria do fenômeno. Bom senso, honestidade e, principalmente, o objetivo final do estudo de simulação4 são aspectos que devem ser levados em consideração neste momento. Um cuidado especial deve ser dado à característica do fenômeno: geralmente, estamos confrontando os dados coletados com algum modelo probabilístico conhecido e identificando aqueles dados considerados discrepantes em relação ao modelo escolhido. No caso do exemplo em estudo, estamos trabalhando com uma amostra com características parecidas com aquelas da distribuição
exponencial,5 e, portanto, é com esse modelo que devemos confrontar osoutliers . O valor “728” é realmente um dado que deve ser retirado da amostra; já o valor “43”, apesar de alto, não é um outlier que deva ser retirado, pois é típica da distribuição exponencial a ocorrência de alguns valores mais altos, como pode ser notado pela “cauda” da distribuição (veja a forma característica da curva no Apêndice VII). Sempre que pairar alguma dúvida sobre se o dado coletado é característico ou não da distribuição, devemos procurar aumentar a amostra, coletando mais dados. Essa situação é comum na Simulação de Eventos Discretos, pois grande parte dos sistemas que envolvem filas possuem tempos entre chegadas sucessivas com distribuição exponencial ou outras distribuições semelhantes. A Tabela 2.4 resume as estatísticas que descrevem a amostra do exemplo, agora sem o outlier . De posse da Tabela 2.4, já podemos intuir aspectos interessantes sobre os dados de entrada: • Um coeficiente de variação próximo de 100% (no caso, 97%) indica que a distribuição exponencial é candidata a ser o modelo probabilístico escolhido;6 • Um coeficiente de assimetria distante de zero indica que os dados não apresentam simetria (distanciando-se da forma de “sino”, comum à distribuição normal); • Um coeficiente de assimetria positivo indica que os dados distribuem-se como uma cauda que diminui na direção do “lado esquerdo” para o “lado direito” (como a forma de uma
distribuição exponencial). Tabela 2.4 – Estatísticas descritivas do exemplo sem o outlier Média
Medidas de posição
Mediana
5
Moda
3
Mínimo
0
Máximo
43
Amplitude
43
Desvio-padrão
Medidas de dispersão
6,83
Variânciadaamostra
6,60 43,60
CoeficientedeVariação
97%
CoeficientedeAssimetria
13,80
2.3.2. Análise de correlação Retirados os outliers da amostra, ainda cabe um estudo para verificar se a amostra representa uma sequência de valores independentes e identicamente distribuídos (i.i.d.) ou, em outras palavras, se não existem correlações entre as observações que compõem a
amostra. A hipótese de independência geralmente não é válida em situações em que existe uma “curva de aprendizado” regendo o processo ou quando existe correlação entre mais de um parâmetro de entrada do modelo. Por exemplo, se os dados do tempo de atendimento no caixa do supermercado são coletados a partir de um operador recém-contratado (ou ainda em período de treinamento), é natural que esse operador apresente uma “curva de aprendizado” ao longo do seu turno de trabalho: neste caso, os tempos de atendimento devem apresentar um decréscimo ao longo do tempo; afinal, o operador está aprendendo o processo cada vez mais. Existem alguns testes disponíveis para se verificar a hipótese de independência. O mais simples deles consiste em desenhar um diagrama de dispersão com as observações , na ordem em que foram coletadas em campo. Cada ponto do gráfico é formado, sucessivamente, pelos pares A Figura 2.2 representa o diagrama de dispersão dos tempos entre chegadas sucessivas de clientes no supermercado (sem os outliers ). Quando os dados não apresentam correlação, os pontos tendem a se dispersar de modo aleatório pelo gráfico (Fig. 2.2). Quando os dados apresentam correlação, eles tendem a se distribuir ao longo de linhas com inclinação positiva ou negativa, dependendo da distribuição envolvida, como mostra o exemplo da Figura 2.3, que contém dados propositadamente com correlação. Alguns autores sugerem testes estatísticos para confirmar ou não a presença de correlação nos dados; contudo, como nesta etapa da modelagem de dados não sabemos com qual distribuição estamos lidando –
se normal, exponencial etc. –, os testes devem ser obrigatoriamente não paramétricos, e, geralmente, são pouco conclusivos. Law e Kelton (1991) e Vincent (1998) apresentam outros testes para verificação da hipótese de independência.
Figura 2.2 – Diagrama de dispersão dos tempos de atendimento do exemplo do supermercado, mostrando não haver correlação entre as observações da amostra.
Figura 2.3 – Diagrama de dispersão de um exemplo hipotético em que existe correlação entre os dados que compõem a amostra.
Se fosse identificada alguma correlação entre os valores, um estudo mais aprofundado do supermercado poderia identificar se o processo de chegadas de clientes possui alguma característica particular ou se a mostra apresenta algum “vício” de coleta (p. ex., se foi coletada no horário errado) e deveria ser descartada. Nos casos que temos discutido até aqui, as variáveis em estudo são sempre independentes de outras variáveis do sistema. Entretanto, existem casos em que a variável pode ser
correlacionada (ou dependente) com outras variáveis, e, portanto, o modelo de dados de entrada deve considerá-las na distribuição. Considere os seguintes exemplos: • No supermercado, os atendentes dos caixas apresentam uma queda de produtividade ao longo do turno de trabalho. Os tempos de atendimento aumentam ao longo do dia, de modo que, ao final do dia, o tempo médio de atendimento é três vezes superior ao tempo médio de atendimento no início da jornada de trabalho. • Uma loja de roupas solicita os produtos a um certo fabricante. Se a loja pede lotes maiores do produto, os tempos entre os pedidos e as entregas dos lotes (tempo delea time) serão maiores; afinal, lotes maiores significam tempos maiores de produção. No primeiro exemplo, a variável aleatória que representa o tempo de atendimento é dependente do tempo, formando o que se denominasérie temporal. No segundo exemplo, existem duas variáveis aleatórias correlacionadas entre si: “tempo de entrega” e “tamanho do lote”. Neste caso, o modelo estatístico utilizado para representar os dados de entrada deve ser multivariável, visto que é composto por mais de uma variável. O grande problema aqui é que as distribuições estatísticas comumente encontradas nos softwares de simulação não lidam com esses casos, limitando-se às distribuições univariadas. Invariavelmente, nestes casos, é o analista quem deve construir o modelo estatístico “por fora” – utilizando alguma linguagem de programação – e depois incorporar a sequência de números aleatórios obtida no modelo de simulação. (Mais detalhes sobre a modelagem de dados multivariável ou de séries temporais podem ser obtidos numa consulta aos trabalhos de Nelson e
Yamnitsky [1997], que apresentam um tutorial sobre a modelagem de dados de séries temporais e de distribuições multivariáveis; Johnson [1987], que apresenta uma discussão mais completa sobre os modelos estatísticos multivariáveis; Biller e Nelson [2005], que desenvolvem uma metodologia para o ajuste de modelos de séries temporais.)
2.3.3. Inferência Construída a amostra, devemos identificar, se possível, uma distribuição de probabilidades que represente o fenômeno. Existem diversas distribuições de probabilidades que podem ser utilizadas (o Apêndice VII resume as distribuições mais comumente utilizadas na Simulação de Eventos Discretos). O primeiro passo para descobrirmos a consistência dos dados é construirmos um histograma da amostra, com uma divisão de classes adequada. Existem diversos critérios para se decidir o número de classes utilizadas; por exemplo, a raiz quadrada do número de observações ou a regra de Sturges, que adota um número de classes igual a:
(2.2)
Onde:
K = número de classes, e n = número de observações na amostra. Voltando ao nosso velho exemplo (o supermercado, já se esqueceu?), como temos 199 valores observados, o número de classes, segundo a regra de Sturges, será:
Para que a amostra seja dividida em nove classes, o tamanho de cada classe, h, deve ser:
(2.3)
Com nove classes, podemos construir a tabela de frequências de observações por classe (Tabela 2.5) e o histograma das observações (Figura 2.4). Pelo histograma obtido, os dados parecem aderir ao modelo exponencial, algo que já estávamos suspeitando devido a algumas estatísticas obtidas. Como sabemos (Apêndice VII), a função densidade de probabilidade da distribuição exponencial tem a forma:
(2.4)
Onde:
média da distribuição.
Figura 2.4 – Histograma dos tempos entr e cheg adas suc essivas de clientes no ex emplo do supermercado.
O parâmetro da distribuição exponencial, λ, pode ser estimado diretamente pelo inverso
da média obtida na amostra7:
(2.5)
A partir da equação (2.4), a função densidade de probabilidade da distribuição do exemplo pode ser ajustada pela seguinte distribuição exponencial:
(2.6)
Tabela 2.5 – Distribuição das classes de frequências do exemplo k 1
Classes 4,8
≤
Frequênciarelativa 96
2
4,8-9,6
55
3
9,6-14,3
25
4
14,3-19,1
13
5
19,1-23,9
4
6
23,9-28,7
5
7
28,7-33,4
0
8
33,4-38,2
0
9
38,2
>
1
2.4. Testes de aderência: os dados se ajustam à distribuição escolhida? A última etapa do processo de modelagem de dados é qualificarmos aaderência do modelo, ou seja, verificar se a distribuição exponencial é estatisticamente adequada para representar os dados coletados. Isso pode ser feito através dos testes de aderência , em que se testa a validade ou não dessa hipótese de aderência (ou hipótese nula): H0: o modelo é adequado para representar a distribuição da população. Em confronto com a hipótesealternativa : Ha: o modelo não é adequado para representar a distribuição da população. Se a um dado nível de significância a (100)% rejeitarmos H0, o modelo testado não é adequado para representar a distribuição da população. O nível de significância a equivale à probabilidade de rejeitarmos a hipótese nula H0, dado que ela está correta.8 Existem dois testes “clássicos” de aderência:9 o teste do qui-quadrado (
) e o teste de
Kolmogorov-Smirnov, que serão discutidos a seguir. Os testes de aderência pertencem à categoria dos “testes não paramétricos”, pois a hipótese testada refere-se à forma da função, não aos seus parâmetros.
2.4.1. Teste do qui-quadrado O teste do qui-quadrado (
) baseia-se no cálculo dos desvios entre as frequências
acumuladas observadas em cada classe e as frequências teóricas (usando o modelo escolhido) nas mesmas classes. Em cada classe k (k=1,2,..., K), calcula-se o valor Ek, que é a diferença entre o número observado de elementos (Ok) e o valor teórico da classe ( Tk), dividindo-se o valor obtido por este valor teórico da classe:
(2.7)
O somatório dos valores de Ek ao quadrado, para todas as K classes envolvidas, determina a estatística E, cuja distribuição é a qui-quadrado comK-1-n graus de liberdade, onde n é o número de parâmetros estimados a partir da amostra coletada:
(2.8)
Escolhendo um nível de significância e K-1-n graus de liberdade, obtém-se, da tabela da distribuição do qui-quadrado, o valor Ecrítico. Se E for maior que Ecrítico, rejeita-se a hipótese de que a amostra observada provém de uma população com a distribuição teórica adotada. Um aspecto importante deve ser considerado: a hipótese de que a estatísticaE segue a distribuição do qui- -quadrado é geralmente satisfatória desde que todas as classes tenham frequência maior ou igual a 5. Caso alguma classe não tenha essa característica, ela deve ser agrupada de modo que a condição possa ser satisfeita. Esse tipo de condição implica uma diminuição dos graus de liberdade, K-1-n, afinal, com o agrupamento, o número de classes K diminui. Vamos realizar o teste do qui-quadrado no nosso exemplo. Queremos testar a hipótese de aderência: H0: a distribuição da população é exponencial, com média igual a 6,83. Em confronto com a hipótese alternativa: Ha: a distribuição da população não é exponencial, com média igual a 6,83. O teste compara valores observados com valores teóricos. Os valores observados são aqueles relacionados na Tabela 2.5. Vamos determinar qual seria a distribuição teórica das
frequências caso a distribuição fosse uma distribuição exponencial; para isso, precisamos determinar, inicialmente, qual a probabilidade de ocorrência de cada uma das classes da Tabela 2.5. A probabilidade de ocorrência de valores na classe k definida pelo intervalo [a, b] é facilmente obtida pela integral da função densidade de probabilidade (Equação 2.4):
(2.9)
As probabilidades pk associadas às classes da Tabela 2.5 são dadas por:
(2.10)
(2.11)
(2.12)
(2.13)
(2.14)
(2.15)
(2.16)
(2.17)
(2.18)
Obtidas as probabilidades de ocorrência das classes, as frequências teóricas de cada classe k são calculadas diretamente pela multiplicação das probabilidades de ocorrência de cada classe pelo total de observações disponíveis:
(2.19)
Como dispomos de 199 observações, frequências teóricas obtidas para o exemplo.
. Assim, a Tabela 2.6 apresenta as
Tabela 2.6 – Frequências teóricas obtidas para o exemplo k
pk
Tk
1
0,5022
100
2
0,2500
50
3
0,1244
25
4
0,0620
12
5
0,0308
6
6
0,0154
3
7 8
0,0076 0,0038
2 1
9
0,0038
1
As classes 6, 7, 8 e 9 têm frequências teóricas menores do que 5, e, portanto, devem ser agrupadas com a quinta classe. A Tabela 2.7 apresenta o cálculo da estatísticaE para as cinco classes de frequência resultantes do agrupamento. Tabela 2.7 – Cálculo da estatística “E” para o exemplo Frequência observada
Frequência teórica
k
1
Ok
Classes
4,8£
96
Tk
100
-4
0,16
2
4,8-9,6
55
50
5
0,55
3
9,6-14,3
25
25
0
0,00
4
14,3-19,1
13
12
1
0,04
5 19,1 ≥
10
13
-3
0,69
E
1,44
O valor E obtido pela soma da quinta coluna da Tabela 2.7 é igual a 1,15. Como foi estimada somente a média da distribuição a partir da amostra, o valor den, número de parâmetros estimados, é igual a 1. O número de classes, K, é igual a 5. Portanto, o número de graus de liberdade é igual a: Assumindo um nível de significância, a (100)% igual a 5%, e 3 graus de liberdade, o valor Ecrítico, retirado da tabela da distribuição qui--quadrado, é de 7,8147. Como E (=1,44) é menor que Ecrítico, não se rejeita a hipótese H0, de que a distribuição exponencial adere aos dados observados. Quando o número de valores observados é pequeno, o teste do qui-quadrado pode ser não conclusivo, pois o número de graus de liberdade cai muito. Neste aspecto, o teste de
Kolmogorov-Smirnov tem um desempenho melhor.
2.4.2. Teste de Kolmogorov-Smirnov O teste de Kolmogorov-Smirnov (KS) compara a função acumulada (oufunção de repartição) do modelo teórico com a função acumulada de probabilidade observada (feita a partir dos valores observados). A ideia é simples: para comparar se o modelo observado adere ao modelo teórico, o teste calcula a distância absoluta máxima entre as duas distribuições acumuladas, através da estatística:
(2.20)
Onde: D é a distância absoluta máxima; S(x) é a função acumulada observada; F(x) é a função acumulada teórica. A Figura 2.5 ilustra o significado da estatística D do teste KS, destacando a maior distância vertical medida entre a função acumulada teórica e a observada. Esta é a ideia
central do teste KS: se os valores observados aderem ao modelo teórico, é natural supor que os valores de S(x) e F(x) estejam próximos; isto é, a distânciaabsoluta entre os valores esteja dentro de limites de erros aleatórios (SIEGEL, 1979). Naturalmente, quanto menor o valor da estatística D, mais próximas entre si estarão as duas funções acumuladas. O valor dessa distância é comparado com um valor teórico Dcrítico relacionado na tabela de valores críticos do teste KS disponível no Apêndice VI, para os níveis de significância de 1%, 5% e 10%. Escolhido um nível de significânciaa (100)%, determina-se o valor crítico do teste Dcrítico, através da tabela de valores críticos. Se , então, rejeita-se a hipótese de aderência H0. Se
, não temos razão para rejeitar a hipótese de
aderência H0. Como no teste do qui-quadrado, a hipótesenula é: H0: o modelo é adequado para representar a distribuição da população. Em confronto com a hipótesealternativa : Ha: o modelo é não adequado para representar a distribuição da população. Para realizarmos o teste, os dados observados são ordenados do menor para o maior valor. A Tabela 2.8 sintetiza o procedimento de cálculo da estatísticaD, para os dados do exemplo do supermercado.
Tabela 2.8 – Cálculo da estatística D nos dados coletados no exemplo do supermercado Valor Frequência Frequência F (x) Fdir (x) Desq =|Fesq (X)-S(X)| Ddi r=|Fdir (X)-S(X)| D obs. observada acumulada S(x) esq observada 0
13
13
0,070 ,00
0,14
0,07
0,07
0,07
1
23
36
0,180 ,14
0,25
0,04
0,08
0,08
2
18
54
0,270 ,25
0,35
0,02
0,08
0,08
3
26
80
0,400 ,35
0,44
0,05
0,04
0,05
4
16
96
0,480 ,44
0,52
0,04
0,06
0,06
5
15
111
0,56 0,52
0,58
0,04
0,02
0,04
6
9
120
0,600 ,58
0,64
0,02
0,04
0,04
7
9
129
0,650 ,64
0,69
0,01
0,04
0,04
8
10
139
0,70 0,69
0,73
0,01
0,03
0,03
9
12
151
0,76 0,73
0,77
0,03
0,01
0,03
10
5
156
0,78 0,77
0,80
0,01
0,02
0,02
11
5
161
0,81 0,80
0,83
0,01
0,02
0,02
12
10
171
0,86 0,83
0,85
0,03
0,01
0,03
13
4
175
0,88 0,85
0,87
0,03
0,01
0,03
14
1
176
0,88 0,87
0,89
0,01
0,01
0,01
15
2
178
0,89 0,89
0,90
0,00
0,01
0,01
16
1
179
0,90 0,90
0,92
0,00
0,02
0,02
17
2
181
0,91 0,92
0,93
0,01
0,02
0,02
18
4
185
0,93 0,93
0,94
0,00
0,01
0,01
19
4
189
0,95 0,94
0,95
0,01
0,00
0,01
20
3
192
0,96 0,95
0,95
0,01
0,01
0,01
21
0
192
0,96 0,95
0,96
0,01
0,00
0,01
22
1
193
0,97 0,96
0,97
0,01
0,00
0,01
23
0
193
0,97 0,97
0,97
0,00
0,00
0,00
24
1
194
0,97 0,97
0,97
0,00
0,00
0,00
25
0
194
0,97 0,97
0,98
0,00
0,01
0,01
26
0
194
0,97 0,98
0,98
0,01
0,01
0,01
27
2
196
0,98 0,98
0,98
0,00
0,00
0,00
28
2
198
0,99 0,98
0,99
0,01
0,00
0,01
29
0
198
0,99 0,99
0,99
0,00
0,00
0,00
30
0
198
0,99 0,99
0,99
0,00
0,00
0,00
31
0
198
0,99 0,99
0,99
0,00
0,00
0,00
32
0
198
0,99 0,99
0,99
0,00
0,00
0,00
33
0
198
0,99 0,99
0,99
0,00
0,00
0,00
34
0
198
0,99 0,99
0,99
0,00
0,00
0,00
35
0
198
0,99 0,99
0,99
0,00
0,00
0,00
36
0
198
0,99 0,99
1,00
0,00
0,01
0,01
37
0
198
0,99 1,00
1,00
0,01
0,01
0,01
38
0
198
0,99 1,00
1,00
0,01
0,01
0,01
39
0
198
0,99 1,00
1,00
0,01
0,01
0,01
40
0
198
0,99 1,00
1,00
0,01
0,01
0,01
41
0
198
0,99 1,00
1,00
0,01
0,01
0,01
42
0
198
0,99 1,00
1,00
0,01
0,01
0,01
43
1
199
1,00 1,00
1,00
0,00
0,00
0,00
Na tabela, os valores de S(x), função acumulada dos dados observados, são obtidos diretamente pela equação:
(2.21)
Os valores de F(x), função acumulada do modelo teórico, são obtidos pela função acumulada da distribuição exponencial:
(2.22)
O cálculo da estatística D (sétima e oitavas colunas da Tabela 2.8) é feito à esquerda e à direita de cada intervalo de classe de frequência (como representado na Figura 2.5), e a estatística é estimada pelo maior valor entre os dois:
(2.23)
Figura 2.5 – Ajuste de curvas do teste KS.
Na Tabela 2.8, o valor máximo é D = 0,08. Como a nossa amostra contémn = 199 valores observados, para um nível de significância a = 5%, devemos utilizar a expressão:
(2.24)
Portanto, comoDcrítico , não se pode rejeitar a hipótese de aderência dos dados.
2.4.3 . Qua l a melhor d istribuição? Realizados os testes de aderência, identificamos, para o nosso exemplo, a aderência dos dados à distribuição exponencial. Mas será a distribuição exponencial a que melhor adere ao conjunto de dados? Para respondermos a essa pergunta, devemos repetir todo o procedimento de inferência para outros modelos de distribuição de probabilidade conhecidos e comparar os resultados obtidos para um mesmo nível de confiança. Diversos pacotes comerciais são capazes de realizar essa comparação automaticamente. A Tabela 2.9 apresenta os resultados do teste KS, a um nível de significância de 5%, para alguns modelos conhecidos. Note que, a 5%, apenas o modelo exponencial pode ser utilizado (oDcrítico continua sendo igual a 0,0964). Tabela 2.9 – Teste KS para algumas distribuições, ao nível de significância a=0,05 Distribuição
KS
Exponencial
0,07
Beta
0,14
Log Normal
0,14
Gamma
0,16
Erlang
0,18
Uniforme
0,58
2.5. Utilizando software de ajuste de dados (fitting): o que é pvalue? Como vimos, o processo de modelagem de dados termina com algum teste estatístico para determinar se o modelo probabilístico selecionado tem ou não aderência ao conjunto de dados observados. Escolhe-se um certo nível de significância e, se o valor obtido da amostra (para um certo parâmetro) for menor do que um valor crítico tabelado, então a hipótese não é rejeitada. Contudo, os trabalhos técnicos e, principalmente, os softwares fornecem um certo valor, denominado p-value , a partir do qual são tomadas as decisões de rejeição ou não da hipótese de aderência. O p-value , ou nível descritivo , representa o menor nível de significância que pode ser assumido para serejeitar a hipótese de aderência, ou seja: H0 é rejeitada ao nível de significância a; Se • , então, Se • , então, H0 não é rejeitada ao nível de significância a. Portanto, quanto menor o p-value , mais razões temos para rejeitar a hipótese de aderência. Usualmente, trabalha-se com as faixas de valores apresentadas na Tabela 2.10. Tabela 2.10 – Critérios usuais para classificação do p-value
Valo r
p-value 0,01
Critério Evidência forte contra a hipótese de aderência
0,01 ≤ p-value 0,05
Evidência moderada contra a hipótese de aderência
0,05 ≤ p-value 0,10
Evidência potencial contra a hipótese de aderência
0,10 ≤ p-value
Evidência fraca ou inexistente contra a hipótese de aderência
O p-value do teste KS, realizado na amostra do exemplo anterior e calculado pelo software Stat::Fit, foi de 0,11 para a distribuição exponencial. Isso significa que não temos razões para rejeitar a hipótese de aderência (0,11 > 0,05). Para um maior detalhamento sobre o cálculo do p-value , ver Devore (2000).
2.6. Outras formas de modelagem de dados Existem duas outras formas de modelagem de dados de entrada muito comuns na Simulação de Eventos Discretos: modelagem quando não se dispõe de dados reais, e utilização de arquivos com séries históricas outrace files .
2.6.1 . Modelagem de dado s quando não temos dad os A falta de dados reais para iniciarmos o processo de modelagem ocorre mormente em três situações: projetos de sistemas que ainda não existem; quando o custo de coleta de dados é alto ou inviável tecnicamente; e quando, por diversas razões (confidencialidade, insegurança etc.), o cliente ou atores envolvidos no projeto não fornecem os dados por diversas razões (confidencialidade, insegurança etc.). Nossa experiência indica que a terceira situação é a mais comum de todas, o que torna as sugestões propostas a seguir mais utilizadas do que todo o procedimento discutido nas seções anteriores. As diversas distribuições estatísticas necessitam de parâmetros (como a distribuição normal, por exemplo, que é definida pela sua média e pelo seu desvio-padrão), e a falta de dados reais não nos permite estimar tais parâmetros e muito menos a forma da distribuição. A regra prática nesses casos é procurar, inicialmente, utilizar as distribuições de parâmetros mais intuitivos, como as distribuições exponencial, triangular, normal, uniforme e discreta. A Tabela 2.11 resume os parâmetros, as características e a aplicabilidade dessas
distribuições (mais informações sobre as distribuições estatísticas comumente utilizadas na simulação estão descritas no Apêndice VII). Algumas dicas finais: • Deve-se evitar a tentação de se utilizar a distribuição uniforme, pois são poucas as situações reais em que os valores extremos são tão possíveis quanto os valores centrais. A exceção ocorre quando o intervalo entre os valores máximos e mínimos é pequeno; por exemplo, um tempo de processo uniformemente distribuído no intervalo entre cinco e seis minutos. • Escolhida a distribuição, nunca se esquecer de realizar uma análise de sensibilidade do modelo frente a essa distribuição (e aos seus parâmetros). Uma grande variabilidade da resposta do modelo de simulação frente às alterações dos parâmetros de entrada inviabiliza a sua utilização e reforça a necessidade de uma coleta de dados mais apurada. • Os softwares de simulação dispõem de distribuições discretas que permitem “discretizar” ou “repartir” uma distribuição contínua que só é conhecida por faixas de valores. Esse tipo de distribuição tende a traduzir melhor as situações em que são conhecidos pontos intermediários ou faixas de valores da distribuição (veja o exercício 11, por exemplo). Muitas situações reais são descritas por faixas de valores, por exemplo: “existe 20% de chance de o atendimento durar cinco minutos; 50% de chance de durar 10 minutos; e 30% de chance de durar 15 minutos”.
2.6.2. Utilização de séries históricas – trace files
Para verificação, considere a simulação de um terminal portuário. Poderíamos, em vez de modelar os tempos entre chegadas sucessivas de navios no terminal através de alguma distribuição estatística conhecida, utilizar a própria série histórica de chegadas de navios ocorrida ao longo de um ano. Se os dados estão disponíveis e se se considera que o sistema não sofrerá grandes alterações de comportamento de um período para outro, é sempre preferível utilizar a série histórica – ou seja, os dados reais – em detrimento de modelos estatísticos, que sempre são uma simplificação da realidade. A utilização de séries históricas só não é recomendável para sistemas em que se preveem grandes alterações no futuro ou quando não se dispõe de um conjunto de dados coletados por um período suficientemente longo no passado. Os softwares de simulação tratam esses casos através de trace files . Cada software tem o seu modo de entrada de dados, e, atualmente, a maioria é capaz de ler os dados diretamente a partir de planilhas eletrônicas. Tabela 2.11 – Distribuições estatísticas mais usuais quando não se dispõe de dados reais sobre o comportamento do sistema Distribuição
Parâmetro s
Exponencial Média
Características
Aplicabilidade
• Grande variabilidade dos valores • Variância alta • Independência entre um valor e outro • Cauda para • Muitos valores baixos e poucos valores altos direita
• Utilizada para representar o tempo entre
chegadas sucessivas e o tempo entre falhas sucessivas Triangular
Menor valor, moda e maior valor
Normal
• • Simétrica • Forma de sino Média e desvio• Variabilidade padrão • controlada pelo desvio-padrão
• Simétrica ou não
• Uniforme
Discreta
Maior valor e menor valor
Valores e probabilidade de ocorrência destes valores
• Quando se conhece ou se tem um bom “chute” sobre a moda (valor que mais ocorre), o menor valor e o maior valor que podem ocorrer Quando a probabilidade de ocorrência de valores acima da média é a mesma que a de valores abaixo da média Quando o tempo de um processo pode ser considerado a soma de diversos tempos de
subprocessos Todos os valores no • Quando não se tem qualquer informação sobre intervalo são o processo ou apenas os valores limites igualmente possíveis
• Utilizada para a escolha de parâmetros das entidades (p. ex., em uma certa loja, 30% dos • Apenas assume clientes realizam suas compras no balcão, e os valores 70% nas prateleiras) fornecidos pelo • Quando se conhecem apenas “valores analista
intermediários”
da
distribuição
ou
a
porcentagem de ocorrência de alguns valores discretos
2.7. Exercícios de revisão 1. Considere um supermercado com seis caixas normais e dois expressos (para compras com, no máximo, 10 volumes). O objetivo da simulação é determinar os tempos de espera nas filas. Quais dados devem ser coletados e como você faria o levantamento do tempo de atendimento nos caixas? 2. Considere um posto de gasolina com duas bombas de gasolina, uma de álcool e uma de diesel. Além de combustíveis, o posto possui uma loja de conveniência com vagas para seis carros e um caixa de atendimento. O objetivo da simulação é determinar o tempo médio de espera e o tempo total de atendimento em todos os casos. Quais são os dados que devem ser levantados neste problema? 3. Considere uma linha de montagem de uma peça composta de três partes. Existem três operadores na linha, cada um responsável pelo encaixe de uma parte específica. O objetivo da simulação é determinar a produtividade da linha. Quais são os dados que devem ser levantados neste problema? 4. Para os histogramas a seguir, identifique qual o tipo de distribuição parece aderir melhor aos dados coletados (consulte o Apêndice VII). Utilize a seguinte notação: a) Normal
b) Exponencial c) Weibull d) Lognormal e ) Triangular f) Uniforme
5. Você foi solicitado a analisar os tempos de viagem de um caminhão entre a fábrica e o centro de distribuição. A Tabela 2.12 relaciona os dados coletados.
Tabela 2.12 – Exercício 5 Intervalos de tempo em minutos 356
408
333
405
389
400
343
393
10
354
390
362
384
399
374
403
2
366
332
360
4.134
353
344
336
334
Utilizando o teste do qui-quadrado, verifique se os dados aderem a um modelo de distribuição uniforme no intervalo [332; 408] minutos. 6. A Tabela 2.13 representa uma amostra dos tempos de abastecimento em um posto de gasolina (valores em minutos). Verifique a aderência dos dados a um modelo normal com média 5,5 minutos e desvio-padrão 1,3 minuto através do teste de KS. Tabela 2.13 – Exercício 6 6,1
5,9
5,3
6,8
5,3
5,5
5,1
6,1
5,5
5,3
4,3
6,0
5,0
3,9
4,0
6,6
4,5
4,1
6,0
4,9
7. O teste dos quartis proposto neste capítulo para identificar valores discrepantes tem se uso prejudicado quando a distribuição em estudo apresenta valores que, apesar de discrepantes no teste, são naturais na distribuição. Considere o conjunto de dados relacionado na Tabela 2.14. a) Construa um histograma representando o conjunto de dados e identifique, visualmente, qual a distribuição que mais se assemelha ao conjunto de dados. b) Utilizando o procedimento de análises de quartis, identifique osoutliers presentes nos dados. c) Remova os outliers da amostra e refaça o histograma. Visualmente, a distribuição do item a continua válida? d) Explique por que o teste falhou neste caso. Tabela 2.14 – Exercício 7 0,089
1,377
1,028
0,706
0,809
0,487
0,085
0,824
2,346
0,515
0,970
0,671
0,230
0,229
0,246
1,512
0,257
1,822
1,299
0,323
0,534
0,131
0,150
0,053
0,693
8. Em um concurso público para a prefeitura de Saramandaia, os candidatos João Gibão, Dona Redonda e Dona Bitela foram selecionados em função de cinco provas diferentes: Inglês, Lógica, Economia, Estatística e Matemática. O desempenho dos candidatos em cada uma das provas está representado na Tabela 2.15. Tabela 2.15 – Exercício 8 Pro vas
Inglês
Lógica
Eco no mia
Estatística
Matemática
Média
4,1
4,1
3,8
3,7
2,7
Desvio-padrão
1,2
1,7
1,3
2,3
1,6
Mediana
4,0
6,0
4,0
4,0
3,0
Máximo
6
8
6
8
6
Mínimo
1
0
1
0
0
Considerando o desempenho dos alunos nas provas, responda: a) Em qual prova houve menor dispersão? (Justifique cuidadosamente) b) Em qual prova o conjunto dos candidatos teve melhor desempenho, e por quê? c) Um funcionário da organização do concurso coletou manualmente as idades dos candidatos (Tabela 2.16). Construa um histograma representando os dados coletados.
Tabela 2.16 – Exercício 8 30
43
27
24
22
29
55
28
24
25
38
30
25
49
24
2
25
43
42
44
28
26
26
72
9. Qual distribuição estatística melhor representa os seguintes processos? Apresente uma justificativa intuitiva para cada escolha: a) O tempo que você consome no banho. b) O tempo que você espera na plataforma de embarque do metrô, contado a partir da passagem do bilhete. golsverde” em uma de futebol e o intervalo de tempo entre eles. c)) O d O número tempo dede“luz empartida um semáforo. e ) Os tempos entre chegadas sucessivas de clientes em um shopping center. f) Os números sorteados no sorteio semanal da loteria. 10. Em um estudo de simulação para um posto bancário, foram coletados os tempos que um funcionário consumiu no atendimento a 100 clientes. Contudo, o funcionário era recémcontratado, e os tempos apresentaram uma tendência de diminuição ao longo da coleta. Qual condição não está sendo atendida para que os dados possam ser utilizados na construção de um modelo de entrada? 11. As Indústrias Embromar S.A. estão desenvolvendo um projeto de simulação para a sua
nova planta de produção.10 Como a planta ainda não existe, você foi consultado para determinar quais as melhores formas de se modelarem os dados de entrada do modelo de simulação em desenvolvimento. Existem cinco parâmetros de entrada que devem ser determinados. Para cada parâmetro, você consultou um especialista da Embromar, o qual lhe passou importantes informações. A partir das informações relacionadas a seguir, proponha e justifique a forma de modelagem que você entende como mais adequada. a) “Nós, com certeza, venderemos R$ 300.000 devido aos pedidos em carteira. Existe 50% de chance de vendermos R$ 600.000 e 10% de chance de vendermos R$ 700.000.” b) “Do centro de distribuição até o terreno da fábrica, eu levo, geralmente, 95 minutos. Às vezes, consigo fazer em 40 minutos, se o trânsito está muito bom. Em dia de chuva, já levei duas horas!” c) “O tempo médio que levo processando um pedido é cerca de 20 minutos, mais ou menos 10%.” d) “Essa máquina é muito boa, o tempo de conserto dela, na maioria das vezes, é bem pequeno. Porém, às vezes, alguma peça que eu não tenho em estoque quebra, e o tempo de manutenção é muito longo. Meu estagiário calculou que a média do tempo de manutenção de uma máquina parecida é de cinco minutos. Mas, como essa máquina nova tem menos peças, acho que o tempo médio será 80% do previsto.” e ) “Olha, eu sou novo aqui. Não fala para ninguém, mas eu não tenho a menor ideia deste tempo. Acabo de casar, minha mulher está grávida e eu menti um bocado na entrevista.
Passei a manhã inteira conversando com o senhor que se aposentou neste cargo antes de eu assumir a vaga. Ele disse que nunca viu um processo parecido como este da proposta. Ele disse que, se não existissem aleatoriedades nos processos, o tempo seria de, no mínimo, 23 minutos. No processo diferente, mas feito nas outras plantas industriais, este tempo nunca ultrapassa 50 minutos.” 12. A Tabela 2.17 relaciona os 574 gols11 realizados em 232 partidas em Copas do Mundo de Futebol, contados da Copa de 1930 no Uruguai até a Copa de 2002 no Japão/Coreia, divididos em classes que representam os intervalos de tempo entre gols sucessivos. Para a construção da tabela, os jogos foram “alinhados”, um após o outro, e somente foram considerados os gols realizados durante o tempo regulamentar das partidas, que é de 90 minutos (desconsiderados, portanto, pênaltis e prorrogações). Tabela 2.17 – Figura fi Tempo entre go ls sucessivo s (min.) 10
a
0
20 a 10
Número de go ls 144 106
30
a
20
86
40
a
30
52
50
a
40
46
60
a
50
27
70
a
60
35
80
a
70
16
90
a
80
22
100 a 90
12
110 a 100
3
120 a 110
3
130 a 120
6
>130
16
a) Construa o histograma dos dados da Tabela 2.17. b) Utilizando o teste do qui-quadrado, verifique a aderência ao modelo de Poisson. c) Qual a probabilidade de que um gol ocorra no primeiro tempo de uma partida? 13. Em um estudo de simulação, os dados coletados foram testados em relação à distribuição lognormal. Para um nível de significância de 95%, o programa de computador utilizado para o estudo (no caso, o Input Analyzer ) forneceu o seguinte relatório de saída:
Distribution Summary Distribution:
Lognormal
Expression:
10+LOGN(3.32,2.56)
SquareError:
0.009168
Chi Square Test Number of intervals
=5
Degrees freedom of
2=
Test Statistic
2.67 =
Correspondingp-value
=0.269
Kolmogorov-Smirnov Test Test Statistic Correspondingp-value
0.0919 = >0.15
Podemos afirmar que os dados coletados aderem ao modelo lognormal? Justifique. 14. Atividade de coleta de dados. Este exercício é uma atividade para trabalho em equipes
de dois participantes, no mínimo. Uma pessoa deve ser escolhida como ocronoanalista e a outra como umconfeccionador de barcos de papel para os Estaleiros Embromar Ltda. A atividade está dividida em três etapas: fabricação, compilação dos dados e análise dos dados.
Etapa I: Fabricação O confeccionador deve construir um lote-piloto com cinco barcos. O cronoanalista deve cronometrar o ciclo de construção de cada barco e anotar os tempos (em segundos). Os barcos do lote-piloto devem ser verificados quanto ao padrão de qualidade. Caso algum barco não atenda aos elevados padrões de qualidade da Estaleiros Embromar Ltda., deve ser descartado. A partir daí, deve-se realizar a produção definitiva de um lote com 30 barcos. O cronoanalista deve medir o ciclo de fabricação de cada barco. Novamente, se o barco não segue o padrão estabelecido, deve ser descartado e substituído por um novo. Mesmo o fato de o tempo de confecção do barco ser descartado nesta primeira fase não deve ser ignorado.
Etapa II: Compilação dos dados A partir dos dados coletados na construção dos 30 barcos, construa um histograma de frequência (estime o número de classes necessárias) e calcule as seguintes medidas de posição e dispersão: média, moda, mediana, menor valor, maior valor,
amplitude, desvio-padrão, coeficiente de variação e os 1o e 3o quartis. Verifique a existência de outliers nos dados. Se houver, retire-os, refaça o histograma e recalcule as estatísticas.
Etapa III: Análise dos dados A partir do histograma de frequência e das estatísticas descritivas obtidas na etapa anterior, responda: a) Há uma pequena ou uma grande dispersão nos tempos coletados? b) A distribuição obtida foi simétrica ou assimétrica? c) A amostra é independente e identicamente distribuída? d) Qual modelo teórico parece representar melhor os dados coletados?
Leitura Complementar
Sete hábitos de sucesso na modelagem de dados
Leemis (1997) propõe sete “hábitos” que um analista deve ter para obter sucesso ao modelar seus dados de entrada: 1. Levantar os dados corretos. Se quisermos estudar um sistema de fila de atendimento, de nada adianta levantar dados de desempenho, como o tempo de espera em fila. Em sistemas de filas, as informações de interesse são: os tempos entre chegadas sucessivas e os tempos de atendimento. 2. Utilizar todas as possibilidades dos modelos probabilísticos . Não devemos nos limitar apenas às possibilidades de distribuições probabilísticas que um determinado software nos permite. Procure verificar se outras distribuições não seriam mais adequadas e, ao selecionar um software, procure aqueles com o maior número de
distribuições possíveis. 3. Realizar uma análise estatística completa. Analise a presença de outliers , estude o comportamento do histograma, verifique o teste estatístico mais adequado para a amostra coletada e considere o nível de significância mais adequado. Alguns pacotes estatísticos de ajuste de dados são afetados pelo número de classes de agrupamento escolhidas para o estudo, rejeitando ou aceitando a hipótese de aderência, sem que sequer as condições para uso deste ou daquele teste sejam atendidas. Além da leitura da documentação do software, gere algumas distribuições conhecidas (exponencial, uniforme etc.) em uma planilha eletrônica e verifique a qualidade do pacote de ajuste de dados, analisando a qualidade dos resultados obtidos. 4. Avaliar a dependência no tempo. Os dados levantados são estacionários ou dependem do tempo? No caso de um supermercado, eles dependem do horário e do dia em estudo. A lanchonete de uma faculdade tem um pico de atendimento no horário do almoço. Contudo, nem sempre temos condições de determinara priori se os dados serão dependentes do tempo. Para esses casos, devem ser levantadas amostras em dias e horários diferentes e proceder-se a uma análise cuidadosa das diferenças entre elas. 5. Considerando modelos paramétricos ou não paramétricos. A complexidade de alguns fenômenos aleatórios impede a sua aproximação pelos modelos probabilísticos comuns. Nessas situações, outros modelos devem ser utilizados, como a aproximação por curvas de Bézier.12
6. Considerar a forma da cauda da distribuição. No caso de algumas distribuições, a atenção deve ser dobrada no que se refere à coleta de dados. A distribuição exponencial, por exemplo, é caracterizada por muitas ocorrências com valores baixos e poucas ocorrências com valores altos, levando o analista a retirar da amostra valores que, aparentemente, seriam outliers . Nessas situações, procure sempre aumentar o tamanho da amostra, coletando dados por um período maior de tempo, pois você terá mais condições de identificar se o dado coletado é realmente discrepante. 7. Realizar uma análise de sensibilidade. Modelados os dados e construído o modelo de simulação, é hora de verificar qual a sensibilidade da resposta do modelo a pequenas variações nas características da distribuição probabilística escolhida.
Referências bibliográficas BILLER, Bahar; NELSON, Barry L. Fitting time-series input process for simulation. Operations Research, v. 53, n. 3, p. 549-559, 2005. . BILLER, Bahar; NELSON, Barry L. Answers to the top ten input modeling questions Proceedings of the 2002 Winter Simulation Conference, p.35-40, 2002. CHU, Singfat. Motivating the poisson process using goals in soccer. INFORMS Transactions on Education, v. 3, n. 2, 2003. Disponível em:
. Acesso em: 2 de agosto de 2003. DEVORE, Jay. Probability and statistics for engineering and the sciences. 5. ed. Pacific Grove: Duxbury Press, 2000. JOHNSON, Mark E. Multivariate statistical simulation. Nova York: John Wiley and Sons, 1987. Simulation, modeling & analysis. 2. ed., Nova LAW, Averill M.; KELTON, David W. York: McGraw-Hill, 1991. LAWLESS, Jerald F.Statistical models and methods for lifetime data . Nova York: Jon Wiley and Sons, 1982. LEEMIS, Larry. Seven habits of highly successful input modelers. Proceedings of the 1997 Winter Simulation Conference, p.39-46, 1997. NELSON, Barry L.; YAMNITSKY, Michael. Input modeling tools for complex problems. Proceedings of the 1998 Winter Simulation Conference. 1997. p. 105-112.
SIEGEL, Sidney.Estatística não paramétrica para a ciência do comportamento. São Paulo: McGraw-Hill do Brasil, 1979. VINCENT, Stephen. Input data analysis. In: BANKS, J. (ed.). Handbook of Simulation . Nova York: John Wiley and Sons, p.55-91,1998.
Capítulo 3
Criação do modelo conceitual
3.1. Abstração e modelos abstratos No Capítulo 1 iniciamos nossa discussão sobre a metodologia da simulação. Um dos primeiros passos (além da definição do sistema, dos objetivos e das hipóteses) é a criação de um modelo abstrato , que, como já foi dito, é aquele modelo que a pessoa tem em mente. O que caracteriza a abstração? Abstrair significa identificar o que realmente é importante no sistema e trazer para o modelo. Essa abstração está fortemente relacionada aos objetivos da simulação; dessa maneira, se quisermos determinar a produtividade de um sistema de manufatura, não nos interessa, ao menos a princípio, considerar em nosso modelo abstrato o solado do sapato dos operadores. Contudo, se o solado está causando acidentes excessivos, os quais diminuem o contingente de trabalhadores, então isso deverá ser incluído (ou, pelo menos, seus efeitos devem estar incluídos no modelo). Um exemplo interessante de abstração é o mapa do metrô de Londres. Um mapa do metrô não deixa de ser um modelo (icônico, segundo nossa classificação), pois representa graficamente um sistema (“metrô de Londres”). Antigamente, o mapa contendo as estações era construído em escala; assim, a distância entre os pontos ou estações do mapa refletia fisicamente a linha do metrô. Isso, muitas vezes, causava certa confusão visual. Ora, qual a utilidade principal de um mapa do metrô? A utilidade básica é a de estabelecer um roteiro entre dois pontos: uma estação de srcem e uma estação de destino. A distância entre as estações não é um fator tão importante. Atualmente, o mapa contém as estações, mas as linhas que ligam as estações não refletem a disposição física real das linhas. Esse novo
mapa foi construído com maior abstração, e, embora o número de linhas e estações tenha aumentado, é muito mais fácil se localizar no mapa atual do que no mapa antigo. A Figura 3.1 mostra o mapa do metrô de Londres em 1921, e a Figura 3.2 mostra a versão atual deste mesmo mapa. Qual dos dois você prefere?
Figura 3.1 – M apa do Metrô de Londr es (1921).
Figura 3.2 – Mapa do Metrô de Londres (atual).
Nesse ponto, convém fazer a seguinte pergunta: se um modelo é uma abstração ou uma simplificação da realidade, até que ponto se pode simplificar para que este tenha utilidade? Parafraseando Einstein: “Um modelo deve ser o mais simples possível, mas não muito simples; deve ser complicado, se necessário, mas não muito.” Qual é o nível de abstração “ideal” que devemos ter em um modelo? Essa resposta está longe de ser obtida por alguma
regra: devemos sempre utilizar o bom senso. Lembre-se do princípio do SINSFIT (Simulation Is No Substitute For Intelligent Thinking ).1 Após a elaboração do modelo abstrato em nossa mente, devemos colocá-lo no papel através de alguma técnica adequada de representação de modelos de simulação conceitual. Segundo Law (1991), a etapa de criação do modelo conceitual é o aspecto mais importante de um estudo de simulação. Por isso, daremos atenção especial a esse assunto neste capítulo, embora muitos livros de simulação e muitos analistas “pulem” esta importante etapa. Shannon (1975) vai mais além e afirma que uma modelagem conceitual efetiva pode levar à identificação de uma solução adequada, evitando a necessidade de um estudo completo de simulação. A seguir, descrevemos uma das técnicas de representação de modelos de simulação mais fáceis de entendimento e de utilização prática, que é o Activity Cycle Diagram, o Diagrama do Ciclo de Vida.
3.2. Construção de modelos conceituais – Activity Cycle Diagram (ACD)Activity Cycle Diagram (ACD)2 O ACD é uma forma de modelagem das interações entre os objetos pertencentes a um sistema; particularmente útil em sistemas com fortes características de geração de filas, baseia-se na ideia das “engrenagens estocásticas”, de Tocher (1963). Os ACDs contemplam o princípio da parcimônia, ou seja, utilizam somente dois símbolos para descrever o ciclo de vida das entidades ou de objetos do sistema: uma circunferência, que representa uma “fila”, e um retângulo, que representa uma “atividade” (Figura 3.3).
Figura 3.3 – Elementos bá sicos de u m ACD.
No ACD, uma entidade é qualquer componente que possa reter sua identidade ao longo do tempo. As entidades podem estar aguardando em filas ou participando de alguma atividade, por meio de interações com outras entidades. Comumente, uma atividade envolve a cooperação de diferentes classes de entidades. A duração da atividade é sempre determinadaa priori : normalmente fazendo uma amostragem aleatória de uma determinada função de distribuição de probabilidades (se o modelo de
simulação for aleatório). Por exemplo, o descarregamento de um navio numa posição de atracação é um estado ativo, em que a entidade “navio” e a entidade “posição de atracação” (e, possivelmente, outras entidades, tais como “guindastes”, “empilhadeiras” etc.) estão participando da atividade “descarregar”. Um estado passivo, ou estado de fila, não envolve cooperação entre diferentes classes de entidade, sendo, geralmente, um estado no qual a entidade está aguardando alguma coisa acontecer. O período de tempo que uma entidade gastará na fila não pode ser determinadoa riori , pois depende da duração da atividade imediatamente anterior e da atividade imediatamente posterior à fila. Por exemplo, o tempo que um navio gasta na fila aguardando para ser descarregado numa posição de atracação depende do tempo de sua chegada e do tempo em que uma das posições de atracação se torna disponível. O ciclo de vida das filas e das atividades é definido para cada entidade. Note que as filas e as atividades devem estar sempre dispostas alternadamente em qualquer ciclo de vida. Um ACD completo consiste na combinação de todos os ciclos de vida individuais de cada entidade. A seguir, mostraremos alguns exemplos de modelagem utilizando o ACD.
Exemplo 3.1: Filósofos famintos “Um certo número de filósofos se sentam numa mesa circular. Entre cada par de filósofos há um garfo. Um filósofo só pode comer se ambos os garfos adjacentes a ele estiverem disponíveis; caso contrário, deverá aguardar. Após acabar de comer, o filósofo pensa por um certo tempo. Quando para de pensar, tentará comer novamente. Para comer, os filósofos
levam um tempo uniformemente distribuído entre cinco e oito minutos, e, para pensar, um tempo obedecendo a uma distribuição normal com média de seis e desvio-padrão de um minuto. O objetivo do modelo é determinar a proporção de tempo que cada filósofo espera para comer, na média.”
Figura 3.4 – Ilustração para o exemplo dos filósofos famintos.
Aqui cabe um comentário. Embora o exemplo retirado de Paul (1993) fale srcinalmente
em garfos, acreditamos que este exemplo estaria aplicado a filósofos chineses, e, portanto, os garfos seriam substituídos por palitinhos. Aí faz mais sentido que cada filósofo necessite de dois palitinhos... Bem, mas vamos ao que interessa, ou seja, modelar esse problema pelo ACD. O primeiro passo é definir as entidades, que, no caso, são duas: os filósofos e os garfos. Basicamente cada entidade possui os “estados” relacionados na Tabela 3.1. Tabela 3.1 – Estados para o exemplo dos filósofos famintos Entidade
Estado É utilizado
Garfo Esperando Comendo Esperando para pensar
Filósofo
Pensando
Símbo lo
Esperando para comer
O próximo passo é criar os ciclos de vida individuais. Ora, os garfos ou estão “aguardando” para serem utilizados pelos filósofos ou estão auxiliando os filósofos a “comer”. Por sua vez, os filósofos ou estão “comendo” ou estão “esperando para pensar”, ou estão “pensando” ou estão “esperando para comer”. Desta maneira, os ciclos de vida (o “engrenagens”) de cada entidade, filósofos e garfos, podem ser representados como indicado, respectivamente, na Figura 3.5 e na Figura 3.6.
Figura 3.5 – Ciclo de vida individual dos filósofos.
Figura 3.6 – Ciclo de vida individual dos garfos.
A partir do momento queNeste construímos os ciclos de vida individuais, iremos formar o ACD completo. caso, basta reconhecermos as atividades emjuntá-los comum,para o seja, aquelas que são realizadas pela interação entre duas ou mais entidades. Notadamente, as atividades “Come” e “É utilizado” são, na realidade, a mesma atividade, apenas mudouse o nome devido à perspectiva de cada entidade: quando um filósofo está “comendo”, o garfo “é utilizado” simultaneamente; portanto, a atividade “come” é uma atividade comum entre a entidade “garfo” e a entidade “filósofo”. Assim, podemos unir os ciclos de vida das entidades “filósofos” e “garfos”, formando o ACD completo, como mostra a Figura 3.7, na qual foi adotado o termo “come” para denominar a atividade comum entre as duas entidades.
Figura 3.7 – ACD completo para o exemplo dos filósofos famintos.
Na prática o filósofo não precisa esperar para pensar. No entanto, e pelas regras de construção do ACD, temosobrigatoriamente que alternar atividades com filas; por isso, a fila “Espera” antes de pensar é obrigatória. Este tipo de fila, na qual a entidade espera por 0 unidade de tempo, é denominada de filadummy, ou fila “fantasma” – muitas vezes, indicada por um asterisco (*).
Exemplo: 3.2: O bêbado, a garçonete e o copo Considere uma versão simplificada de um pub, em que existem três entidades: “o cliente”, “a garçonete” e “o copo”. Quando o cliente entra nopub, ele pede uma cerveja, e a garçonete enche um copo para servi-lo. A seguir, o cliente bebe o conteúdo do copo. O cliente participa, portanto, das seguintes atividades: encher e beber. Tanto a garçonete
quanto os copos participam da atividade “encher”. Os estados das entidades são aqueles relacionados na Tabela 3.2. Tabela 3.2 – Estados das entidades do exemplo do pub Entidade
Estado Bebendo Esperando
Cliente
Encher Pronto (para beber) Enchendo
Garçonete Esperando
Símbo lo
Sendo esvaziado
Vazio Copo Sendo enchido Cheio
O ciclo de vida de cada tipo de entidade pode ser visto na Figura 3.8. O ciclo de vida completo do sistema pode ser construído combinando-se as atividades comuns das entidades, como mostrado na Figura 3.9.
Figura 3.8 – ACD: ciclos de vida de cada entidade.
O ACD ilustra logicamente que a atividadeBEBER não pode começar sem que um cliente esteja na fila PRONTO e um copo esteja na fila CHEIO. Similarmente, a atividade ENCHER não pode começar sem que uma garçonete esteja na filaESPERA, um copo esteja na fila VAZIO e um cliente esteja na filaESPERA.
Figura 3.9 – ACD completo do pub inglês.
Ao término de cada atividade, o movimento das entidades é fixo. Depois deENCHER, a
garçonete vai para a fila ESPERA, e o copo vai para a fila CHEIO. Depois de BEBER, o copo vai para a fila VAZIO, e o cliente vai para a fila ESPERA. A convenção de que atividades e filas devem estar dispostas alternadamente num ACD torna a modelagem mais robusta na circunstância de uma mudança inevitável do modelo. É essencial, ainda, que todo o ciclo de vida de uma entidade seja fechado. Para entidades externas que “visitam” o sistema, necessita-se de uma “FILA DO MUNDO EXTERNO” (Seção 3.5).
3.3. A simulação manual e o método das três fases O próximo passo após a construção de um modelo conceitual de simulação é garantir que a lógica do sistema esteja bem descrita. Uma das melhores maneiras de se fazer isso é realizando uma simulação manual. Há uma grande variedade de métodos para simular manualmente um modelo, e um deles utiliza o próprio ACD. Para realizar uma simulação manual com um ACD, desenhamos os ciclos de vida numa folha de papel grande utilizando diferentes cores para distinguirmos os ciclos das diferentes entidades. O estado corrente do modelo é descrito pela posição de cada entidade numa fila ou atividade; isso pode ser facilmente visualizado utilizando-se pequenos recortes de papel dispostos na folha que representa o ACD. Um evento é uma mudança no estado do modelo que ocorre num determinado instante de tempo. Quando uma atividade se inicia, sua duração pode ser amostrada por uma distribuição específica (Cap. 2), e o tempo em que ela terminará pode ser anotado numa lista de eventos futuros. A atividade terminará exatamente nesse instante de tempo; portanto, a finalização de atividades é sempre evento limite . Contudo, não sabemos a princípio quando uma atividade pode começar: isso depende da correta combinação das entidades disponíveis nas filas antes da atividade (as precondições para o início de uma atividade). O início de cada atividade é, assim, determinado por eventos condicionais . Um dos benefícios da simulação manual é o estabelecimento de prioridades onde elas existem. Por exemplo, no diagrama final dopub (Fig. 3.16), a entidade “garçonete” pode
escolher o que fará primeiro: ou atender ao cliente, ou lavar os copos. No método das três fases, a simulação se dá com uma repetição das seguintes três fases, como ilustra a Figura 3.10: • Fase A. Verifique os tempos de término para todas as atividades em progresso. Determine a que terminará antes. Avance o relógio de simulação para este instante. • Fase B. Para a atividade (ou atividades) que terminar, mova as entidades para suas filas apropriadas. • Fase C. Procure as atividades em ordem segundo sua numeração (as atividades devem ser numeradas em sequência antes da simulação manual). Inicie qualquer atividade que possa começar e mova as entidades apropriadas das filas para as atividades. Amostre um tempo de duração da atividade segundo uma determinada distribuição, calcule quando essa atividade terminará e anote esse tempo.
Figura 3.10 – Fluxogra ma resumido do método d as três fa ses.
As três fases representam uma estrutura comum presente em qualquer Simulação de Eventos Discretos: • Avance o relógio de simulação para o próximo evento; • Execute os eventos-limite (quando terminam as atividades); • Execute os eventos condicionais (quando as atividades se iniciam). Podemos registrar o estado da simulação utilizando essas três fases. Para aplicar o método das três fases no exemplo do pub, vamos considerar que a atividade “beber” dura quatro minutos; encher dura três minutos; e que, no início da simulação, copos, clientes e
garçonetes estão dispostos como na Figura 3.11 – note que existem três copos, três clientes e uma garçonete. A partir dessa configuração inicial, podemos montar a Tabela 3.3 (simulação manual dopub). Tabela 3.3 – Simulação manual para o ACD do exemplo A
B
C
T=0 -o-
T=3
Enchercomeçaeterminaem3
Encher termina
Beber começa e termina em 7 Encher começa e termina em 6
Encher termina
Beber começa e termina em 10 Encher começa e termina em 9
T=6
T=7 Beber termina
-o-
T=9 Encher termina
Beber começa e termina em 13 Encher começa e termina em 12
T=10 Beber termina
T=12 Encher termina
-o-
Beber começa e termina em 16 Encher começa e termina em 15
Vamos detalhar a forma como a tabela da simulação manual foi construída. Na configuração inicial (T = 0, Figura 3.11), os três copos, os três clientes e a garçonete estão nas suas respectivas filas de espera (configuração inicial). Como não há nenhum evento planejado para acabar nesse instante, não iremos preencher nada na fase B, daí o traço na coluna B para o tempo 0. Vamos então para a fase C, ou seja, verificar quais atividades podem começar. Vamos eleger arbitrariamente a atividade “beber” como prioritária em relação à atividade “encher”, e, portanto, devemos perguntar: pode a atividade “beber” começar? A atividade “beber” não pode começar, pois não há copos cheios nem clientes
nas filas antes de “beber”.
Figura 3.11 – ACD do pub modificado com entidades para simulação manual.
A seguir (ainda na fase C do tempo 0), devemos perguntar: pode “encher” começar? Verificamos que sim; neste instante, “encher” pode começar, pois, para “encher”, são necessários um copo, um cliente e uma garçonete. Neste caso, “encher” pode começar, e, como conhecemos o tempo de enchimento (três minutos), sabemos exatamente quando essa atividade acabará: no instante 3 minutos (0 + 3 minutos). Mas será que ainda pode ocorrer
outra atividade “encher”? No caso desta configuração, não, pois só há uma garçonete. Se houvesse duas garçonetes disponíveis nesse mesmo instante, outra atividade paralela a “encher” começaria e terminaria nos mesmos três minutos. Com isso, a configuração do nosso pub, para o instante 0 e para a fase C, é aquela ilustrada na Figura 3.13. Como não há mais nenhuma outra atividade que possa começar no instante T = 0, o relógio de simulação será avançado para o próximo instante de simulação, que no caso é o instante T = 3 minutos. Deste modo, estamos agora no instante de tempo T = 3 e na fase B, em que devemos verificar quais atividades acabaram. Percebemos que somente a atividade “encher” (que começou no instante 0) acabou no instante 3 minutos. Completamos a nossa tabela de simulação manual, escrevendo para o instante 3, fase B: “Encher termina”, e as respectivas entidades vão para as respectivas filas de saída, como ilustra a Figura 3.12.
Figura 3.12 – Fase B, instante T = 3.
Nenhuma outra atividade termina no instante T = 3 minutos; portanto, iremos para a fase C. Como se definiu que a atividade “beber” é prioritária em relação à atividade “encher”, devemos perguntar: pode “beber” começar? Neste caso a resposta é afirmativa, pois há um copo cheio e um cliente “seco” aguardando “beber”. Desta maneira, preenchemos na coluna C: “beber começa e termina em 7”, pois estamos no instante 3 e sabemos que “beber” dura exatamente 4 minutos (3 + 4 = 7). Verificamos ainda que outra atividade “beber” não pode começar (pois ainda não há copo “cheio”) e passamos para a próxima atividade (“encher”), sempre perguntando: “pode ‘encher’ começar?”. Observamos que sim, pois há copos,
clientes e garçonetes nas respectivas filas que antecedem essa atividade. Neste caso, devemos também preencher a fase C com “encher começa e termina em 6”, pois estamos no instante T = 3 e sabemos que “encher” dura 3 minutos (3 + 3 = 6).
Figura 3.13 – Fase C, instante T = 0.
Observamos que outra atividade “encher” não pode começar, pois só há uma garçonete. O “resultado” do pub no final dessa fase está mostrado na Figura 3.14.
Figura 3.14 – Fase C, instante T = 3.
A partir desse instante, a ideia é sempre a mesma, ou seja, avançamos o relógio de simulação sempre para o próximo evento (que ocorre emT = 6 minutos) e executamos as fases B e C. A Figura 3.15 ilustra como fica o pub após o término de cada fase e cada instante do relógio de simulação até o instanteT = 12 minutos.
Figura 3.15 – S imulação manual d o pub até o instante T = 12 minutos.
A simulação manual pode continuar até um tempo preestabelecido ou até ocorrer algum acontecimento específico; por exemplo, um determinado cliente beber mais de quatro vezes. Obviamente, isso deve ser acompanhado durante cada passo da simulação manual. Apesar de muito dispendioso, podemos coletar dados estatísticos de uma simulação manual.3 Por exemplo, para a simulação manual anterior, qual seria a taxa de utilização da garçonete? Se acompanharmos os tempos de 0 até 12 minutos, veremos que ela ficou todo tempo ocupada, e, portanto, sua utilização é de 100%. Essas e outras estatísticas (tempos médios de espera em fila, tempos totais gastos no sistema etc.) podem ser retiradas da simulação manual.
Observações Na execução do método das três fases para o exemplo (Tabela 3.3) utilizamos valores constantes de tempo, mas, como discutido anteriormente, nada impede que os tempos sejam amostrados de distribuições estatísticas específicas (exponencial, uniforme, normal etc.).
3.4. Outras dinâmicas de simulação Cabe comentar rapidamente outros métodos de execução da simulação, também denominados “estratégias de simulação”. Além do método das três fases, ainda há as seguintes estratégias: a) Estratégia de evento. O analista especifica quando ocorrem as ações no modelo. Essa estratégia é baseada na programação das ações em certos instantes no tempo. Assim, é construída uma lista de eventos futuros (LEF), e o relógio de simulação é sempre avançado para o evento mais próximo. b) Estratégia de atividade. O analista especifica as causas para as ações ocorrerem no modelo, sendo estas baseadas nas precondições para uma determinada atividade ocorrer. Sua função básica é varrer todas as atividades uma de cada vez, testando o se começo ou o seu final. c) Estratégia de processo. O analista especifica as entidades e descreve todas as sequências de ações de cada uma delas, individualmente. Seria como se fosse executada uma simulação para cada entidade em separado e, para integrá-las, existissem comandos que habilitassem ou desabilitassem a execução de cada ciclo baseados nas interações entre as entidades. É interessante notar que o método das três fases é uma abordagem que mescla a estratégia de evento com a de atividade. Essas estratégias têm vantagens e desvantagens, que não
serão discutidas aqui. O que ocorre, na prática, é que a estratégia de evento é mais popular nos Estados Unidos, enquanto a estratégia de atividade e o método das três fases são mais difundidos no Reino Unido.
3.5. Um pouco mais sobre o ACD Até agora, trabalhamos com sistemas ditosconservativos ou fechados , ou seja, neles, o número de entidades no sistema é sempre o mesmo. No caso de existirem chegadas externas de entidades no modelo e saídas de entidades do modelo (sistemas não conservativos), utilizamos sempre uma entidade fictícia, denominada “porta” (uma unidade), como mecanismo de controle de fluxo da entidade que chega ao sistema. No caso dopub, se quisermos considerar chegadas externas de clientes, a “porta” é quem controlará suas entradas. Como o ciclo de vida para cada entidade deve ser fechado, temos de adicionar uma fila: “FILA EXTERNA” para as entidades que entram e saem do sistema. Em um ACD (e na simulação manual) podemos ainda trabalhar com o que chamamos de “atributos” de entidades. Um atributo de entidade é um valor que a entidade carrega consigo durante toda a simulação e que pode ser modificado a qualquer instante. Assim, podemos imaginar que os clientes, antes de entrarem no pub, já desejam beber determinado número de drinks , e podemos denominar esse atributo de “sede”. Cada vez que um cliente entra pela primeira vez no pub, seu atributo é inicializado com um valor, por exemplo, segundo uma distribuição uniforme de 1 a 4. Cada vez que o cliente acabar de beber, esse atributo é decrementado (sede = sede-1). Se, ao acabar de beber, o cliente não tiver necessidade de mais umdrink (sede = 0), ele sai do pub; caso contrário, ele volta a entrar na fila de espera para beber. Podemos ainda adicionar outra atividade à garçonete: lavar os copos. Neste caso ela estaria alternando entre encher e lavar os copos. No caso de estarmos fazendo uma
simulação manual, devemos numerar as atividades, e a priorização do que fazer deve seguir estritamente essa numeração. (A Figura 3.16 mostra o ACD dopub completo, com essas considerações.)
Figura 3.16 – Modelo do pub completo.
Concluindo, as principais vantagens de se representar um modelo através da técnica de ACD são: • Simplicidade: é possível desenvolver um modelo de simulação conceitual a partir de, apenas, dois símbolos; • Habilidade de mostrar, explicitamente, as interações entre os objetos do sistema e seus fluxos; • Facilidade de entendimento e utilização; • Pode ser utilizado para realizar simulação manual e até para servir de estrutura básica para alguns simuladores, como o VS7 desenvolvido pela Universidade de Brunel (SYSPACK, 1990). Por outro lado, o ACD apresenta algumas desvantagens: • Os diagramas se tornam ininteligíveis à medida que aumenta a complexidade do sistema a ser modelado; • É difícil capturar toda a lógica do modelo no formato ACD, especialmente em se tratando de um modelo com lógica complexa. Por exemplo, o ACD não mostra claramente disciplinas de fila ou atribuições condicionais de valores para atributos de entidades. Segundo Paul (1993), o ACD mostra o fluxo lógico, mas não a lógica em profundidade.
Na próxima seção discutiremos outro tipo de paradigma de modelagem, conhecido como “Rede de Processo”, ou Process Network .
3.6. Um pouco de visão de processos Agora apresentaremos um pouco sobre a criação de um modelo conceitual baseado numa visão de processos (como um fluxograma, por exemplo), e não com a visão do ACD, que é mais voltada à visão de atividades e eventos. Na realidade, as duas visões são equivalentes, mas a de processos deixa o modelo com mais “cara de fluxo”, embora o ACD também explicite o fluxo e as interações entre as entidades. Embora seja de fácil entendimento, o paradigma do ACD pode parecer um pouco “estranho” para alguns; por isso, no intuito de agradar aos “processistas”, inserimos esta pequena seção. Os modelos conceituais descritos com a visão de processos, também denominados de
Process Networks (PN), são, sem dúvida, uma das formas mais antigas de representação de modelos de simulação (SCHRUBEN, 1992). Os PNs formam a base de diversas linguagens de simulação correntes, tais como: GPSS, SLAM, SIMAN e XCELL (ver Chwif, 1999). O exercício resolvido 4 do Capítulo 4 ilustra um modelo simples implementado em GPSS. Como ainda não falamos nada sobre implementação de modelos (o que faremos no Capítulo 4), não vamos utilizar nenhuma representação baseada em linguagem de simulação específica; vamos criar alguns “blocos” construtores (lembre-se de que o ACD possui somente dois símbolos) e apelidaremos nossa simbologia de SPN, ouSimple Process etwork. Esses blocos, bem como suas representações gráficas, estão ilustrados na Tabela 3.4.
Tabela 3.4 – Blocos construtores do SPN No mde oBlo co
Simbo lo gia
Chegada Fila Atraso Processo com recurso Condicional Saída
Os blocos “chegada”, “fila” e “saída” são relativamente fáceis de se entender. O problema são os blocos “atraso”, “processo com recurso” e o “condicional”. Vamos por partes. O “atraso” e o “processo com recurso” nada mais são do que uma atividade no ACD. No primeiro caso, “atraso”, só há a entidade principal envolvida e temos um atraso
de t unidades de tempo. No segundo caso, “processo com recurso”, temos uma entidade secundária que está envolvida diretamente em uma atividade. Um simples tempo de transporte pode ser modelado como um “atraso”, e um caixa de banco como um “processo com recurso” – onde o recurso seria “o caixa do banco”. Para garantir mais clareza, vamos fazer uma analogia com o ACD (Tabela 3.5). A partir do exemplo do mesmo caixa de banco, no ACD, teríamos duas entidades: o “cliente” e o “caixa”. Segundo a visão do SPN, teríamos o “cliente” como entidade principal e o “caixa” como um recurso. Por fim, o bloco condicional simplesmente gera um desvio de fluxo. Tomando o exemplo do ACD (modelo do pub completo – Figura 3.16), há uma condição antes da saída do cliente (se o número de drinks bebidos for igual ao que ele gostaria de beber, ele sai; caso contrário, volta a fazer o pedido). Isso geraria um bloco condicional no SPN. Tabela 3.5 – Equivalências de simbologia entre o SPN e o ACD No mdBoelo co Atraso
SPN
ACD
Processo com recurso
Exemplo 3.3: O supermercado Chang O supermercado Chang possui dois caixas. Há uma fila única nesses caixas. Os consumidores chegam com intervalos entre chegadas sucessivas que seguem uma distribuição uniforme entre um e quatro minutos e levam um tempo normalmente distribuído com média 6 e desvio-padrão de 1 minuto para comprar. O tempo uniformemente distribuído de atendimento no caixa dura entre cinco e oito minutos. Se, ao chegarem ao supermercado, os clientes encontram uma fila de mais de quatro pessoas, eles optam por sair do sistema. O objetivo da simulação é determinar a proporção de consumidores que saem sem comprar nada. A Figura 3.17 ilustra esse modelo representado por um ACD e se equivalente SPN. O que desejamos enfatizar aqui é a importância de se fazer um modelo conceitual antes do modelo computacional, seja este em ACD, SPN, blocos do GPSS,
fluxogramas etc. Cabe ao projetista escolher a técnica que lhe pareça mais adequada.
Figura 3.17 – Modelos conceituais do supermercado Chang utilizando o ACD e o SPN.
3.7. Especificação de modelos de simulação O tema “modelagem conceitual” é pouco explorado na literatura e o menos compreendido (ROBINSON, 2006). No entanto, esse tema é de fundamental importância, pois um modelo conceitual abrangente certamente levará a um modelo computacional completo que, consequentemente, levará a um modelo operacional válido (é claro que podem existir exceções). Por outro lado, um modelo conceitual vago, ou mesmo a inexistência de um modelo conceitual, provavelmente levará a um modelo computacional que pode não ser válido o suficiente para um estudo de simulação. Assim, a boa prática sugere que um projeto de simulação que dedica um esforço adequado à elaboração do modelo conceitual sempre tem mais chance de sucesso, que é, em última análise, a capacidade do modelo de representar adequadamente a realidade do sistema. O ACD, discutido neste capítulo, é uma das formas de se representar o modelo conceitual. Para uma representação mais completa do modelo conceitual, pode-se elaborar um documento denominado “Especificação da Modelagem Conceitual”. Pode-se definir a “Especificação do Modelo de Simulação” como um documento expresso em linguagem natural, no caso, o português, que pode incluir formas de representação do modelo conceitual como o ACD ou fluxogramas. A Especificação deve incluir os seguintes itens: a) Objetivos : geralmente, os objetivos são a identificação de problemas – gargalos, filas excessivas, baixa produtividade, nível de serviço inadequado etc. – ou a verificação
de atendimento de metas – metas de produtividade, níveis de serviço, capacidades operacionais etc. A descrição dos objetivos deve ser clara e pontual, por exemplo: “definir o número de atendentes na central de atendimento em cada horário, de modo a atender aos clientes com um nível de serviço 90/20 (90% dos clientes sendo atendidos em menos do que 20 segundos)” ou “verificar se a capacidade de atendimento do terminal atende a cinco milhões de contêineres por ano”. b) Conteúdo: neste item, são apresentados o escopo do modelo, o nível de detalhamento esperado e a caracterização dos fluxos e processos envolvidos. A descrição do escopo deve ser curta e direta, por exemplo: “O modelo abrange as etapas de fabricação, esmaltação e montagem do processo produtivo, excluindo os processos de recebimento e expedição”. O nível de detalhamento é um pouco mais sutil e especifica o grau de profundidade do modelo, por exemplo: “O modelo considerará todas as máquinas do processo de fabricação, apreciando seu tempo total de processamento”. A animação gráfica pode ou não ser um item no detalhamento do modelo, por exemplo: “As movimentações das pontes rolantes não serão mostradas em detalhe”. No tocante aos fluxos e processos, o próprio ACD pode servir como ferramenta de representação, ou outras formas de representação esquemática, como os fluxogramas de processo, layouts esquemáticos, mapas etc. Mesmo tendo a parte gráfica do processo, o ideal é ter um texto descrevendo toda a sequência do processo. A definição do processo reforça as definições do escopo e o nível de detalhamento. c) Entradas: são os parâmetros que alimentam o simulador. Idealmente, este item deve
ser complementado por um “memorial de dados de entrada”, identificando-se cada dado de entrada e o seu modelo probabilístico (Cap. 2), por exemplo: “Dado de entrada 1: tempo entre chegadas sucessivas de clientes, que será de 10 minutos em média, segundo uma distribuição exponencial”. O leitor pode se perguntar: “Se ainda não coletei os dados de campo, como vou saber qual a distribuição estatística dos dados?”. Nesse caso, informa-se que a distribuição será coletada em campo para a identificação da curva adequada. De fato, não é preciso coletar um dado para que o modelo conceitual fique pronto. Em alguns casos, no entanto, a coleta de dados pode modificar o modelo conceitual. Como exemplo, pode-se citar um processo com um tempo muito pequeno de duração que poderá, mais à frente, vir a ser desprezado do modelo, por não afetar significativamente as medidas de desempenho. d) Saídas: são as medidas de desempenho que representam as respostas do sistema, por exemplo: peças produzidas por hora, tempo médio de espera em fila, taxa de utilização dos operadores etc. e) Hipóteses e simplificações do modelo: deve-se tomar um cuidado especial com as hipóteses, pois é fácil confundir uma característica do modelo com uma delas. Uma hipótese é uma premissa, uma suposição, que assumimos ser verdadeira. Por exemplo, uma premissa para um projeto de terminal portuário pode ser: “O maior navio a atracar terá 200 metros de comprimento”. Contudo, não se trata de uma premissa a condição
“navios devem atracar para serem descarregados”, pois essa condição é, de fato, uma característica inerente ao sistema. As hipóteses, geralmente, levam a uma simplificação do modelo, e, portanto, a lista de hipóteses é suficiente para a definição deste item. Há também uma forte correlação entre a definição das hipóteses e o nível de detalhamento do modelo. Por exemplo, a hipótese “não haverá absenteísmo dos operadores” ou “as falhas das máquinas serão modeladas apenas através das falhas principais, modeladas pelo MTBF (mean time between failure) e pelo MTTR (mean time to repair)”. f) Definições de rodadas: serão definidos os cenários a serem simulados (um cenário é um conjunto fixo de dados de entrada), e, se existirem, as definições do planejamento experimental ou da otimização. Exemplos de definição de cenários seriam: “Cenário 1: cenário-base com layout atual” ou “Cenário 2: cenário-base acrescido de fluxo de clientes em situação de pico”. Em alguns modelos, no entanto, não se caracterizam cenários preestabelecidos, pois o modelo será utilizado por terceiros. Em outros modelos, pode-se adotar procedimentos de Planejamento Experimental (DOE). Neste caso, deve-se definir, na especificação do modelo, quais são os fatores/respostas e o tipo de planejamento a ser adotado. Se o modelo necessitar de simulação-otimização, deverão ser definidas as variáveis de decisão bem como a função objetivo. Esses últimos itens (DOE e otimização) podem ser vistos com maior detalhamento no Capítulo 7.
O Apêndice V ilustra um exemplo de especificação de um modelo de um projeto prático realizado por um dos autores. Ele contém todos os itens explicitados anteriormente. Tendo este documento em mãos, temos inúmeras vantagens: • É mais fácil corrigir erros na especificação do modelo do que no modelo computacional. Como as informações da especificação estão “no papel”, é muito fácil alterá-las. Já mudar uma lógica ou elementos no modelo é mais difícil; • Este documento pode permitir a subcontratação de quem desenvolverá o modelo computacional. Sem este documento, não é possível passar de forma adequada para terceiros a descrição do modelo; • É um documento do processo de modelagem e pode ser resgatado depois; • Este documento resguarda a relação entre os envolvidos na elaboração do modelo, muitas vezes comprometida por especificações incompletas. Comumente, uma condução da especificação evita problemas como o da discussão a seguir: Cliente: Você não incluiu no modelo o nível de estoque da matéria-prima 1. Assim, não sei se vai acabar ou não. nalista: Desculpe-me, Sr. Pacácio. Mas, segundo a hipótese H7 da especificação do modelo, “as matérias-primas serão consideradas sempre disponíveis e, portanto, serão desconsideradas do modelo”. Além disso, esta medida de desempenho – nível do estoque de matéria-prima 1 – não está contemplada nos dados de saída. E foi o senhor quem validou esta especifi cação.
Cliente: Não, tudo bem... Não tinha muita importância mesmo...
(Aviso: A cena anterior é criação dos autores, e qualquer semelhança com pessoas ou fatos reais terá sido mera coincidência.) Concluindo, embora seja possível desenvolver um modelo computacional sem qualquer especificação do modelo correspondente, sua construção é altamente recomendada pelos vários fatores elencados. Ademais, a construção da especificação do modelo força a “pensar antecipadamente sobre o modelo”, facilitando a construção do modelo computacional. Chwifet al. (2009) apresentam uma discussão detalhada sobre modelagem conceitual e especificações de modelo.
3.8. Exercícios de revisão Para os exercícios de 1 a 5, construa o respectivo ACD4 e classifique os sistemas descritos em sistemas conservativos ou não.
1. Clínica médica: Neste modelo existem três tipos de entidade: os pacientes, os médicos (3) e as recepcionistas (2). Os pacientes chegam com um tempo médio entre chegadas sucessivas de três minutos (exponencialmente distribuídos). Eles formam fila única na recepção para preenchimento da ficha e depois são encaminhados para um dos três médicos. Caso todos os médicos estejam ocupados, o cliente permanece em fila, aguardando atendimento. Os tempos para preenchimento da ficha na recepção são exponencialmente distribuídos com média de 10 minutos. Os médicos levam em média 20 minutos para o atendimento, segundo uma distribuição exponencial. No final da consulta, os pacientes retornam às recepcionistas para efetuarem o pagamento e agendarem as próximas consultas, o que demora um tempo uniformemente distribuído entre um e quatro minutos.
2. Lavanderia. Os consumidores chegam numa lavanderia com intervalo médio entre chegadas de 10 minutos (distribuídos exponencialmente) para lavar e secar suas roupas. Depois de chegarem, utilizam as máquinas de lavar (que são sete ao todo). O tempo de lavagem é constante: demora 25 minutos. No final da lavagem, o consumidor retira as
roupas da máquina, coloca-as num cesto (há 12 cestos ao todo) e leva o cesto para a secadora. O tempo de descarregamento das roupas da máquina de lavar está uniformemente distribuído entre um e quatro minutos. O tempo para transportar as roupas da máquina de lavagem até a secadora está uniformemente distribuído entre três e cinco minutos. O cliente, então, carrega a secadora, o que demora somente dois minutos, espera a secagem, descarrega as roupas e sai da lavanderia. O tempo de secagem + descarregamento é normalmente distribuído com média de 10 minutos e desvio-padrão de quatro minutos. Há duas secadoras na lavanderia e sete máquinas de lavar.
3. Centro de distribuição. Os pedidos de entrega chegam em um centro de distribuição de acordo com um processo de Poisson, com taxa média de quatro chegadas/hora. Neste centro existem três tipos de veículos: vans, caminhões médios e caminhões semipesados. A distribuição dos pedidos de carga é de: 50% para as vans 25% para os caminhões médios e 25% para os caminhões semipesados. Há 10 carregadores ao todo no sistema, para o carregamento dos veículos. Para carregar uma van, são necessários dois carregadores, ao passo que para carregar um caminhão médio ou um caminhão semipesado são utilizados quatro carregadores. Os tempos de carregamento, tanto da va quanto do caminhão médio, seguem uma distribuição normal com média de 100 minutos e desvio-padrão de 30 minutos. Para carregar um caminhão semipesado, os carregadores levam um tempo que segue uma distribuição normal com média de 130 minutos e desviopadrão de 45 minutos. A frota total é de três vans, dois caminhões médios e dois
caminhões semipesados. Há também cinco docas de carregamentos, ao todo, no sistema, sendo duas docas pequenas (só para vans) e três docas grandes (para caminhões médios e semipesados). Para carregar, os veículos devem estar, necessariamente, posicionados em uma doca. Os tempos de transporte (da distribuidora até o cliente, e de volta para a distribuidora) estão uniformemente distribuídos entre 180 a 300 minutos para as vans e caminhões médios, e uniformemente distribuídos entre 240 minutos e 480 minutos para os caminhões semipesados. O objetivo do modelo de simulação é verificar se esse sistema provocará atrasos significativos às entregas dos pedidos.
4. Fundição. O ciclo de derramamento de aço de um alto-forno segue uma distribuição uniforme entre 90 e 140 minutos. Todo o aço é utilizado no enchimento de um conjunto de moldes de areia. O ciclo total de enchimento dos moldes leva um tempo uniformemente distribuído entre 12 e 16 minutos. Após o enchimento, o conjunto de moldes é levado para um transportador, cujo tempo de transporte é constante e igual a oito minutos. Ao final do transporte, o produto é desembocado do molde, levando um tempo constante de 12 minutos para desembocar todos os produtos. Em seguida, os moldes, sem os produtos, se dirigem a uma esteira de retorno, que demora 45 minutos para levá-los à estação de limpeza/pintura. Para limpar os conjuntos de moldes, leva-se um tempo médio de 10 minutos com desvio-padrão de dois minutos, segundo uma distribuição normal. Após a limpeza, os moldes se dirigem a um forno, para reaquecimento. O tempo de reaquecimento é uniformemente distribuído entre oito e 12 minutos. Caso não existam
moldes de areia à disposição após o aquecimento, o forno derrama e desperdiça todo o aço produzido. O objetivo do modelo de simulação é determinar a quantidade de vezes que o alto-forno derrama e desperdiça o aço produzido.
5. Usina.5 Numa usina (Fig. 3.18), existem dois altos-fornos que derretem certo volume diário de ferro, despejam e enchem quantos torpedos estiverem disponíveis (“torpedo” é o nome dado a um carrinho que anda sobre trilhos, especializado no transporte de ferro fundido). Se nenhum torpedo estiver no momento exato do tombamento de um alto-forno, o ferro fundido é despejado no chão e ocorre uma perda. Cada torpedo pode armazenar uma quantidade de ferro fundente, desde que não ultrapasse seu limite de armazenagem. Todos os torpedos contendo o ferro fundente vão para uma doca pit ( ), onde recipientes movimentados por guindastes são enchidos com o ferro fundente contido nos torpedos, um de cada vez. O recipiente pode conter, no máximo, 100 toneladas de ferro, que é o volume exato do forno de preparação do aço alimentado por intermédio do guindaste. Há um certo número de fornos de preparação, que trabalham simultaneamente e que geram o produto final da usina. Os dados necessários para a construção do modelo estão dispostos a seguir: Altos-fornos: são dois ao todo. A massa do ferro produzido (em toneladas) para cada forno segue uma distribuição normal, com média de 380 toneladas e desviopadrão de 50 toneladas. O tempo entre cada descarga (excluindo-se 10 minutos de tempo de derramamento) segue uma distribuição normal, com média de 110 e
desvio-padrão de 15 minutos; Fornos de preparação (aço): cada forno contém exatamente 100 toneladas de aço. O tempo entre cada carga (incluindo o tempo de descarregamento, mas excluindo o tempo de carregamento) é constante e igual a 50 minutos, mais um tempo exponencialmente distribuído com média de 10 minutos; Guindastes: o guindaste se move ao longo de um trilho e carrega um recipiente que pode armazenar até 100 toneladas de ferro fundido. Esse recipiente é abastecido na doca por um torpedo de cada vez. De modo a evitar atrasos, a doca possui duas posições. Se dois torpedos são insuficientes para abastecer o recipiente do guindaste, o tempo que se leva para descarregar o segundo torpedo pode ser considerado suficiente para um terceiro torpedo (se existir) entrar, pronto para descarregar, no lugar do primeiro. Somente um único guindaste pode estar na doca de cada vez. O guindaste só sai da doca se o recipiente estiver cheio, com 100 toneladas. Como uma hipótese simplificadora, considere que o trilho suspenso do guindaste foi construído de tal forma a permitir que um guindaste passe sobre o outro, no caso de haver mais de um. Leva-se cinco minutos para um guindaste carregar 100 toneladas de ferro fundido para um forno de preparação de aço que está vazio. O guindaste não pode antecipar qual será o próximo forno a se descarregar; para tal, deve aguardar na doca até um forno de preparação estar disponível para ser carregado. Levam-se dois minutos para o reservatório vazio preso ao guindaste retornar à doca;
Figura 3.18 – Exercício 5.
Torpedos: cada torpedo pode carregar até 300 toneladas de ferro fundido. Quando o alto-forno esvaziou seu conteúdo no número mínimo de torpedos necessários (se disponíveis), todos os torpedos se dirigem à doca. Isso inclui torpedos parcialmente cheios. O torpedo demora 10 minutos, em média, de acordo com uma distribuição
exponencial, para ir do alto-forno até a doca. Estes só partem da doca quando seu conteúdo é totalmente esvaziado. O trajeto de retorno (doca para alto-forno) leva quatro minutos (tempo constante). O objetivo deste modelo de simulação é verificar a quantidade total perdida de ferro durante o processo (que ocorre quando não há torpedo para carregar o ferro fundido do alto-forno).
6. Utilize o ACD completo dopub (Figura 3.16) e faça uma simulação manual até o instante T = 100 minutos, utilizando o método das três fases. Os dados necessários estão relacionados a seguir: • Tempo entre chegadas sucessivas: exponencial, com média de cinco minutos (utilize a Tabela 3.6); • Tempo para encher: normal, com média de seis minutos e desvio-padrão de um minuto (utilize a Tabela 3.9); • Tempo para beber: uniforme entre cinco e oito minutos (utilize a Tabela 3.8); • Tempo para lavar: cinco minutos; • Número de drink a beber: uniforme entre 1 e 4 (utilize a Tabela 3.7); • Número total de copos: 10 (fila “limpo”); • Número total de garçonetes: 2 (fila “livre”); • Número infinito de clientes.
7. Suponha que você é um consultor de Simulação de Eventos Discretos e que uma empresa deseja que você desenvolva o modelo da usina (exercício 5). Elabore uma especificação do modelo de simulação (como apresentada no Apêndice V). Qual foi a parte mais demorada do processo de elaboração? Por quê? Tabela 3.6 – Exercício 6 Distribuição exponencial, média 5 1
10
15
6
2
22
1
11
0
5
13
6
0
11
5
1
20
4
12
3 5
2 11
8 1
1 1
1 20
3 7
1 6
2 10
10 4
5 23
1
12
2
7
1
4
4
1
3
0
5
3
2
6
Tabela 3.7 – Exercício 6 Distribuição uniforme, mínimo 1 e máximo 4 4212212212 4133441241 2112232112
1244132121 2423241143 4244333331 411142
Tabela 3.8 – Exercício 6 Distribuição uniforme, mínimo 5 e máximo 8 7767788688 8785886655 7678675576 8657687877 6856868655 8655568586 68857
Tabela 3.9 – Exercício 6 Distribuição normal, média 6 e desvio-padrão 1 5565556666
3575667667 6656667676 6566654464 6467766666 5667776566 4675666
Leitura Complementar
6
Modelos de simulação: complicar ou descomplicar?
Primeiramente, devemos responder às perguntas: o que é um modelo simples e o que é um modelo complexo? Frequentemente, a complexidade de um modelo de simulação é confundida com o seu “nível de detalhamento”. Na realidade, o “nível de detalhamento” é um componente que faz um modelo tornar-se mais complexo ou não, mas o “escopo do modelo” é outro. Considere um sistema de manufatura (uma fábrica, por exemplo). Nesse sistema, podemos modelar a fábrica inteira ou modelar somente uma de suas estações de trabalho. No segundo caso, o modelo possui um escopo mais reduzido. Por outro lado, essa mesma estação de trabalho pode ser modelada com o seu tempo de processo macro ou com os tempos dos seus subprocessos, detalhes de quebras, detalhes de turnos de trabalho (quando ela pode ou não operar) etc. Neste último caso, o nível de detalhamento do modelo
é maior. O binômio escopo versus nível de detalhamento é o que define a complexidade do modelo. Há um consenso na comunidade de simulação de que um modelo simples é sempre preferível a um modelo complexo. Um modelo, tanto para o projetista que o criou quanto para o seu usuário final, deve ser simples, pois um modelo simples é mais fácil de compreender, modificar, implementar e analisar. Alguns autores afirmam, inclusive, que “a simplificação é a essência da simulação”. Um modelo simples ainda possui outra vantagem: a facilidade de jogá-lo fora e começar tudo novamente. Uma vez que um modelo complicado é criado, é difícil se livrar dele (é muito mais difícil admitir uma falha em um modelo extremamente custoso do que em um modelo simples e barato). Além disso, com um modelo simples, o tempo total do estudo de simulação tende a ser menor. Existem diversos casos de sucesso de modelos simples responsáveis por grandes resultados. Alguns desses casos podem ser encontrados em Robinson (1994). Em um deles, um engenheiro automotivo economizou 150 mil dólares em uma tarde de sexta-feira. Um pequeno modelo de simulação foi desenvolvido, e os experimentos realizados comprovaram ser desnecessária a compra de certos tipos de equipamento. Como outro exemplo de um projeto real, a fim de provar quantos veículos eram necessários para movimentar os materiais em uma indústria de manufatura, um modelo extremamente grande e complexo foi construído. Depois de nove meses, criou-se um monstro totalmente validado e realizaram-se os experimentos. Constatou-se uma economia de dois a três veículos no sistema, uma economia desprezível quando comparada ao custo total do projeto de simulação.
Apesar das inúmeras vantagens, um modelo simples também pode ter alguns problemas. Por exemplo, um modelo de simulação de um sistema de AGVAutomated ( Guided Vehicle ) foi simplificado para lidar com somente dois AGVs, em vez de cinco. Ao limitar o escopo do modelo, apesar dos resultados ainda válidos, o modelo reduzido perdeu sua flexibilidade, pois só pode ser usado no caso específico (para dois veículos de AGV). Outro problema é que um modelo demasiadamente simples pode ser inválido (Cap. 5). Infelizmente, não há qualquer método para determinar o melhor nível de complexidade do modelo que ainda o mantenha válido. Embora a maioria dos autores concorde com as inúmeras vantagens de um modelo simples, muitos modelos complexos ainda são criados. Pode-se tentar enumerar diversas causas, de ordem técnica e não técnica, para que isso ocorra. No tocante às causas não técnicas, há uma tendência de que o “complicado” e o “mais difícil” sejam sempre mais valorizados. Alguns analistas tendem a criar modelos de simulação complicados e custosos para receberem a aprovação da sua gerência, pois um modelo simples demais poderia colocar em risco seu posto, já que há, neste caso, uma conotação de que “qualquer um poderia fazê-lo”. Outra tendência é construir um modelo complicado, pois é possível em termos de capacidade computacional. Esta, aliada às facilidades dos softwares de simulação, vem crescendo em um ritmo muito veloz. A tentação de se criar um modelo mais complexo, pois há recursos disponíveis para tal, é muito grande. Em relação a alguns fatores técnicos, podemos citar:
• Falta de entendimento do sistema real; • Deficiência na habilidade de modelar corretamente o problema; • Prática de programação pobre. No entanto, para vários autores, a principal causa do crescimento de modelos complexos é a falta de objetivos de simulação claramente bem-definidos. Um modelo elaborado e preciso não tem valor algum se não é capaz de responder a questões relevantes. Um modelo simples, e até não tão preciso, pode ser mais valioso se fornecer um melhor entendimento sobre o sistema a ser simulado. O modelo não possui valor nenhum se não for utilizado para auxiliar em algum processo de decisão. Lembre-se: o objetivo de um estudo de simulação nunca pode ser somente o desenvolvimento do modelo por si! Descrevemos, a seguir, algumas regras práticas para simplificar a construção de modelos de simulação. Algumas dessas regras estão baseadas nos cinco princípios de modelagem, propostos por Pidd (1996): • Mantenha simples.7 Esta é a regra fundamental. Isso porque se o modelo já nasce simples, haverá ganhos ao longo de um estudo de simulação; • Adicione complexidade depois. Se você tem dúvidas entre incluir ou não um elemento o fator num modelo, não o inclua, e assuma a hipótese de que isso não afetará os resultados do modelo. Somente após analisar os resultados, inclua-o, se julgar realmente necessário. Sempre faça a pergunta: “Isso é realmente necessário?”. (Evite o paradigma do tipo: “Melhor o excesso do que a falta”);
• Já fiz um modelo complexo demais, há algum meio de simplificá-lo? Infelizmente, uma vez criado um modelo complexo, os esforços para simplificá-lo podem não ser vantajosos; • Reduza o nível de detalhamento por meio da hierarquia. O uso de uma modelagem hierárquica (em níveis) pode ser muito importante na administração de modelos complexos. Neste caso, a hierarquia não simplifica o modelo em si (em termos de quantidade de elementos); no entanto, enxergamos o modelo “em pedaços” (segundo as camadas hierárquicas), o que realmente facilita a manipulação e administração do modelo. Certas vezes podemos agrupar alguma camada (p. ex., um conjunto de máquinas se torna apenas uma máquina), e, neste caso, estamos realmente simplificando o modelo; • Reduza o escopo do modelo. Esta regra está diretamente relacionada ao componente “escopo” da complexidade. Logo, no lugar de elaborarmos um modelo de escopo geral de uma vez só, dividimos o sistema em partes e modelamos cada uma delas separadamente, criando uma série de modelos mais simples em vez de um único modelo mais complexo. Só quando essas partes passarem por todas as etapas de um estudo de simulação, e se for realmente necessário, integramos esses modelos num maior. Outra possibilidade é reduzir o escopo do modelo para analisar uma questão mais específica. Mas lembre-se de que, ao limitarmos o escopo, imprimimos menor flexibilidade.
Referências bibliográficas CHWIF, Leonardo. Redução de modelos de simulação de eventos discretos na sua concepção: uma abordagem causal. Tese de Doutorado. Escola Politécnica da USP. Departamento de Engenharia Mecânica, 1999. CHWIF, Leonardo; BARRETTO, Marcos R. P; PAUL, Ray J. On simulation model complexity.Proceedings of the 2000 Winter Simulation Conference p.449-455, 2000. CHWIF, Leonardo; PEREIRA, Wilson I.; BARRETTO, Marcos R. P. Uma proposta de padronização para a especificação do modelo conceitual em simulação de eventos discretos. IV Simpósio de Engenharia de Produção do Nordeste – SEPRONe, 2009. LAW, Averill. Simulation model’s level of detail determines effectiveness. Industrial Engineering , v. 23, n. 10, p.16-18, 1991. PAUL, Ray J.; BALMER, David W.Simulation modelling. Londres: Chartwell-Bratt, 1993. PAUL, Ray J. Activity cycle diagrams and the tree phase method. Proceedings of the 1993 Winter Simulation Conference, p.123-131, 1993. PIDD, Michael. Five Simple Principles of Modelling. Proceedings of the Winter Simulation Conference, p.721-728, 1996. ROBINSON, Stewart. Successful Simulation: a practical approach to simulatio projects. Maidenhead, UK: McGraw-Hill, 1994.
ROBINSON, Stewart. Conceptual Modeling for Simulation: Issues and Research and Requirements. Proceedings of the 2006 Winter Simulation Conference, p. 792-800, 2006. SHANNON, Robert E. Systems simulation: the art and science. Englewood Cliffs: Prentice-Hall, 1975. SCHRUBEN, Lee W. Graphical model structures for discrete event simulation. Proceedings of the Winter Simulation Conference, p. 241-245, 1992. TOCHER, Keith D.The art of simulation . Londres: English Universities Press, 1963. SYSPACK.VS7 & Syspack user guide. Londres: SysPack Ltd., 1990.
Capítulo 4
Im plementação computacional do modelo de sim ulação e softwares de sim ulação
4.1. Implementação de modelos de simulação No Capítulo 1, fizemos uma breve discussão sobre o método da simulação. Vimos, no Capítulo 3, como funciona o processo de elaboração do modelo conceitual, que é o modelo de simulação expresso em alguma técnica de representação de modelos. O próximo passo é implementarmos o modelo em alguma linguagem de simulação, simulador ou mesmo em alguma linguagem de programação de alto nível, criando o denominadomodelo computacional. Esta etapa nem sempre é fácil e direta, pois depende dos conhecimentos do analista em relação ao software de simulação utilizado, que pode ser uma linguagem de programação, uma linguagem de simulação ou um simulador. Antes de entrarmos em detalhes sobre a diferença entre essas três “formas” de implementar um modelo, traremos um pouco de história. Neste momento cabe uma breve observação: após a próxima seção, o texto focará aspectos de implementação de modelos de simulação. Isso significa que, para acompanhar este capítulo como manda o figurino, deve-se ter algumas noções básicas de lógica de programação e conhecimento de alguma linguagem de programação de alto nível (p. ex., Basic, C, Pascal, Python etc.). Caso contrário, aconselhamos a leitura apenas da próxima seção, que achamos muito interessante, e a “Leitura Complementar” ao final do capítulo, que discute um método de seleção de softwares de simulação. Agora, se o leitor está familiarizado com lógica de programação e linguagens, então, bom proveito!
4.2. Um pouco de história... No início da década de 1950 (“Idade da Pedra da simulação”), a simulação era realizada por meio da programação em uma linguagem de programação geral, como FORTRAN. Todas as funções de um software de simulação (geração de números aleatórios, mecanismo de simulação, tratamento estatístico dos dados) eram programadas pelo analista. Em 1961, surgiu o GPSS G ( eneral Purpose Simulation System), que é uma linguagem de simulação ou uma linguagem de programação direcionada à simulação (exercício resolvido 4). A partir da década de 1980, surgiram os primeiros simuladores, que são softwares com interface própria para minimizar as “linhas de programação”. Com a evolução das interfaces gráficas dos sistemas operacionais dos PCs, os softwares de simulação ficaram bem mais fáceis de operar, pois a construção dos modelos tornou-se mais gráfica e menos textual. Atualmente, os simuladores dominam o mercado, e o que vemos é uma tendência de customização para aplicações específicas, tais como: manufatura, serviços, telecomunicações, reengenharia, dentre outros (SALIBY, 1997). É claro que uma linguagem de simulação é mais flexível do que um simulador, no entanto os simuladores atuais também possuem capacidade de programação em alguma linguagem específica. A Figura 4.1 sumariza a evolução dos softwares de simulação no tempo.
Figura 4.1 – Evolução dos sof twares de simulação (adap tado de Harrel e Tumay, 199 5).
Embora os simuladores tendam a minimizar a necessidade de programação, sempre é necessário introduzir algum tipo de lógica mais específica, e, para tal, realizar alguma programação (a não ser em modelos extremamente simples). Convém tomar cuidado com os vendedores de software que dizem “Com meu software você não precisa programar!”, pois, às vezes, isso significa: “Com o meu software vocênão consegue programar!”
4.3. Linguagem de programação vs. linguagem de simulação vs. s imulad or? Para ilustrarmos os diferentes aspectos de implementação de um modelo de simulação, tomaremos como exemplo um clássico modelo de fila M/M/1.1 Neste modelo, clientes chegam ao sistema com tempo entre chegadas sucessivas com média 10 minutos (exponencialmente distribuídos); a seguir, se dirigem a um único atendente, cujo tempo de atendimento dura em média oito minutos (também exponencialmente distribuídos). Caso o atendente esteja ocupado, o cliente aguarda em uma fila única sua vez de atendimento. O ACD deste caso simples pode ser visto na Figura 4.2. O objetivo deste modelo é o de determinar a taxa de utilização do atendente. Será realizada uma simulação de 10.000 minutos do sistema.
Figura 4.2 – ACD para o exemplo do modelo de fila M/M/1.
4.3.1 . Linguagem de programação Tendo entendido o modelo, basta agora utilizarmos uma linguagem geral de programação para implementá-lo. Esta poderia ser Basic, C, Fortran, mas, pela facilidade de uso, vamos escolher a linguagem Python.2 A primeira dificuldade é a geração de números aleatórios. No caso do modelo da fila /M/1, temos que gerar tempos exponencialmente distribuídos com média de 10 minutos para as chegadas e de oito minutos para os atendimentos. Dado um número real U, uniformemente distribuído entre 0 e 1, sabe-se que podemos gerar uma distribuição exponencial de acordo com a expressão (esta demonstração poder ser vista no Apêndice III):
(4.1)
Onde “λ” é o parâmetro da distribuição exponencial e l“n” o logaritmo natural. Para a implementação em Python, definiremos uma função exponencial(), que terá como parâmetro a média da distribuição exponencial, da seguinte maneira:
import random # importa a biblioteca de números aleatórios do Python def exponencial(media): U = random.random() # gera número aleatório entre 0 e 1 return -media*ln(U); Em Python, de fato, a biblioteca random já possui um gerador de números exponencialmente distribuídos, que pode ser chamado diretamente pela função expovariate:
random.expovariate( lambda ) # lambda é igual a 1.0/media A ideia da simulação neste caso é relativamente simples. Se pensarmos em uma estratégia de eventos, temos, basicamente, dois eventos: • Evento 1: Chegada das entidades; • Evento 2: Término do atendimento. No caso, também teríamos as seguintes variáveis: • relogio: indica o tempo corrente de simulação; • tempoProximaChegada: indica o tempo da simulação em que ocorrerá a próxima chegada; • tempoTerminoAtendimento: indica o tempo da simulação em que terminará o atendimento;
• statusAtendente: indica o estado do atendente (0=livre, 1=ocupado); • clientesFila: número de clientes na fila; • duracaoSimulacao: tempo máximo de simulação; • TC: tempo médio entre chegadas sucessivas; • TA: tempo médio de atendimento. Um fluxograma para esse problema pode ser visto na Figura 4.3. A partir desse 3 fluxograma, podemos construir o seguinte programa em Python:
# Modelagem e Simulacao de Sistemas de Eventos Discretos #importa biblioteca para geração de números aleatórios import random # inicialização de variáveis statusAtendente = 0 clientesFila = 0 atendimentos = 0 tempoAtendente = 0.0 relogio = 0.0
TC = 10.0 TA = 8.0 duracaoSimulacao = 1000.0 tempoProximaChegada = random.expovariate(1/TC) tempoTerminoAtendimento = duracaoSimulacao {8} integralFila = 0 tempoAnterior = 0 #simulação while (relogio <= duracaoSimulacao): {1} if tempoProximaChegada < tempoTerminoAtendimento: # relogio avança para a próxima chegada {2} relogio = tempoProximaChegada integralFila += clientesFila*(relogio-tempoAnterior) tempoAnterior = relogio if statusAtendente == 0: {4} # atendente livre
statusAtendente = 1 duracaoAtendimento = random.expovariate(1/TA) tempoTerminoAtendimento = relogio+duracaoAtendimento tempoAtendente += duracaoAtendimento {9} else: # atendente ocupado clientesFila = clientesFila+1 {5} duracaoChegada = random.expovariate(1/TC) tempoProximaChegada = relogio+duracaoChegada else: # relógio avança para término de atendimento {3} relogio = tempoTerminoAtendimento atendimentos = atendimentos+1 if clientesFila > 0: {6} # tem cliente ainda em fila clientesFila = clientesFila-1 duracaoAtendimento = random.expovariate(1/TA)
tempoTerminoAtendimento = relogio+duracaoAtendimento tempoAtendente=tempoAtendente+duracaoAtendimento {10} else: # fila vazia, libera atendente {7} statusAtendente = 0 duracaoChegada = random.expovariate(1/TC) tempoProximaChegada = relogio+duracaoChegada tempoTerminoAtendimento = duracaoSimulacao # imprime resultados print “Estatisticas finais:” print “Clientes antendidos: “, atendimentos print “Ocupacao atendente: “, tempoAtendente/duracaoSimulacao print “Média de clientes em fila: “, integralFila/duracaoSimulacao
Figura 4.3 – Fluxograma para o modelo M/M/1.
A ideia básica deste programa é a seguinte: enquanto o tempo de simulação for menor do que o tempo máximo de simulação (vide {1}), temos dois tipos de eventos que podem ser processados: evento de chegada e evento de término de atendimento. Se o tempo da próxima chegada for menor do que o tempo do próximo término, então devemos processar o evento de chegada. Caso contrário, devemos processar o evento de atendimento e avançar o relógio ou para a próxima chegada ou para o próximo término (vide respectivamente, {2} e {3}). Se processarmos o evento de chegada, podem ocorrer duas situações: ou o atendente está livre (vide {4}) ou está ocupado (vide {5}). Se o atendente estiver livre, então ele deverá atender, gerando um evento de término. Caso esteja ocupado, a fila de clientes aumenta em uma unidade. Se estivermos processando eventos de atendimento, podem ocorrer duas coisas: ou a fila de clientes não é nula (vide {6}), ou seja, clientesFila>0, ou não há nenhum cliente na fila (vide {7}). No primeiro caso, deve-se atender, diminuindo o número de clientes em fila de 1 e estipular o próximo tempo de término de atendimento. No segundo caso, estipula-se como próximo tempo de término a própria duração da simulação, armazenada na variável duracaoSimulacao. É também por este motivo que, na inicialização da simulação, tempoTerminoAtendimento é definido como duracaoSimulacao (vide {8}), pois o primeiro evento será obrigatoriamente a chegada de um cliente, e nunca o término de um atendimento, já que o
sistema está vazio. Para avaliar a medida de desempenho “utilização do atendente”, cada vez que este está atendendo, o tempo de atendimento é adicionado à variável “soma” (vide {9} e {10}). A taxa de utilização do atendente, ρ, será, portanto, o quociente desta variável (tempo que o atendente esteve ocupado) pelo tempo total de simulação (vide geração de relatório):
(4.2)
vimos, embora este modelo Este seja um dos mais simples, não convém implementá-lo emComo uma linguagem de programação. programa de pouco menos de 100 linhas só é capaz de processar um sistema com dois eventos (chegadas e atendimentos de clientes). Imagine, por um momento, como ficaria complexo programar um modelo com 15 eventos diferentes. Para minimizar as linhas de código, outra forma de implementar um modelo de simulação é utilizarmos uma linguagem específica de simulação em vez de uma linguagem geral de programação. É o que veremos a seguir.
4.3.2. Linguagem de simulação Antes de descrever este modelo em uma linguagem de simulação, é necessário aprendermos uma. Para simplificar o entendimento, apresentaremos uma linguagem
hipotética de simulação denominada LINSIM-PFD (Linguagem de Simulação Para Fins Didáticos). Embora muitos modelos possam ter uma implementação “rápida” em simuladores, achamos que o aprendizado de uma linguagem geral faz com que se melhore a lógica de programação. Mesmo em um simulador, temos de desenvolver lógicas ou ainda programá-las (embora isso seja minimizado por meio das interfaces gráficas). Como veremos adiante, esta linguagem se enquadra perfeitamente no paradigma do ACD, e transformar um modelo expresso em ACD em um modelo expresso em LINSIM-PFD é praticamente direto. Existe uma série de outras linguagens de simulação comerciais, tais como: GPSS, SLAM, SIMAN, dentre outras (vide referências bibliográficas e o exercício resolvido 4), que podem ser utilizadas para o mesmo fim, isto é, aprender como uma linguagem de simulação funciona.
LINSIM-PFD – Linguagem de sim ulação para fi ns didáti cos Para estabelecermos nossa linguagem, vamos definir inicialmente seus blocos construtores básicos, as variáveis de sistema, a lista de comandos e, finalmente, sua lista de funções. Estrutura bási ca da linguagem Nossa “linguagem caseira” será formada por blocos de 4 tipos: Initialization, Termination, C_event, B_event. Um modelo pode possuir um único bloco Initialization, que fornece os comandos iniciais antes da simulação, e um único bloco Termination, que fornece
os comandos após o término da simulação. A quantidade de blocos do tipo C_event e B_event depende das características do modelo. Os blocos C_event determinam a execução de comandos condicionados a uma ou mais condições; por exemplo, se determinada fila possui um certo número de entidades. Os blocos do tipo B_event são disparados por temporizadores; logo, a condição de execução é dada quando o relógio de simulação atinge certo valor. A sintaxe destes blocos está descrita a seguir:
Initialization() end; Termination() end; C_event(, , ) end; B_event()
End. Observações é um número inteiro positivo. 0 é a maior prioridade. Este valor é opcional. Caso esse valor seja omitido, a prioridade de verificação dos eventos C se dá na ordem em que estes foram escritos no código.
Variáveis do sistema Basicamente, nossa LINSIM possui duas variáveis do sistema, que podem ser utilizadas da maneira que for mais conveniente. É importante que elas sejam acessadas, e não modificadas, a não ser em aplicações muito específicas (quando o analista souber realmente o que está fazendo): • Current: Retorna o código da entidade corrente (ID). Assim, em uma simulação, cada entidade receberia um número de identificação, ou “ID”. Neste caso, utilizar a expressão current faz retornar este valor. Note que o código do ID é sempre fornecido pela simulação, e nunca atribuído. • S_time: Retorna o valor do tempo corrente da simulação (relógio de simulação).
Conectivos básicos
Como toda linguagem, a nossa LINSIM possui três conectivos básicos:AND, OR e NOT, que podem ser utilizados para a criação de condições mais complexas. Sejam C1 e C2 condições que podem ser falsas (F) ou verdadeiras (V). O resultado da utilização desses conectivos segue a Tabela 4.1. Tabela 4.1 – Operações lógicas OR, AND e NOT C1
C2
C1ORC2
C1ANDC2
NOT(C1)
NOT(C2)
F
F
F
F
V
V
F
V
V
F
V
F
V V
F V
V V
F V
F F
V F
Lista de c omandos • Create_Index_Var(): cria uma variável a ser indexada a um determinado identificador (ID) de uma entidade. Este tipo de variável é também denominada de atributo da entidade, pois o valor dela depende individualmente de cada entidade. Exemplo: Create_Index_Var(Sede). • Create_Var(): cria uma variável numérica de nome . Exemplo: Create_Var(tempo). • CreateQ(,): cria uma fila com o nome e
valor inicial (quantidade de elementos na fila). O valor inicial também pode conter o valor Infinite, que irá representar que a fila contém infinitos elementos. Exemplo: CreateQ(fila_espera, 20). • Enqueue(, , ): coloca uma entidade na fila segundo seu ID (valor individual do sistema) . é uma variável booleana (que pode ser verdadeira ou falsa) tal que: • Se Fim=False: uma entidade é colocada no início da fila (Cabeça da fila); • Se Fim=True: uma entidade é colocada no fim da fila (Cauda da Fila). Exemplo: Enqueue(fila_espera,current,true). • IF(, , ): executa comandos condicionais (equivalente a IF-THEN-ELSE). Exemplo: IF(Qfila>=1, message(“fila tem pelo menos uma pessoa”), message(“fila está vazia”)). O terceiro parâmetro é opcional. • Message(): exibe uma mensagem na tela com um texto ou o valor de uma variável. Exemplo: message(“O valor do relógio de simulação é”, S_time). • Reset_Stat(): Redefine todas as estatísticas do sistema. • Schedule(,,): planeja o evento limite da entidade com determinado ID para ocorrer daqui a unidades de tempo. Assim, Schedule(E1,current,5) fará com que o evento limite E1 seja disparado daqui a cinco unidades de tempo (em termos absolutos, o evento E1
será disparado em s_time + 5). • Set_Var(, ): modifica o valor inicial de uma variável para seu valor final. No caso de uma variável numérica simples, podemos utilizar Set_Var(Tempo,20), e no caso de uma variável indexada, pode ser utilizado Set_Var(Sede[current], Sede[current]-1), onde current é o valor do ID atual.
Lista de f unções • Qsize(): retorna o tamanho (número de entidades) da fila . • Dequeue(): retira uma entidade no início da fila (cabeça) e retorna o código individual da entidade (ID). • Ent_Code(): Retorna o código do ID da entidade corrente. • Uniform(a,b) ou U(a,b): gera um número uniformemente distribuído no intervalo [a, b]. • Normal(a,b) ou N(a,b): gera um número segundo uma distribuição normal de médiaa e desvio-padrão b. • NegExp(a) ou E(a): gera um número segundo uma distribuição exponencial de média a. • AvgQueue(): retorna o número médio de elementos na fila ). • Avg_Time_Queue(. • Utilization(): retorna o fator de utilização de uma fila (só para filas com entidades conservativas).
Comentários Uma linha de comentário na linguagem LINSIM-PFD é definida por “{” seguido do comentário e finalizado por “}”. Exemplo:
{Isto é uma linha de comentário} LINSIM-PFD – Exemplo para o model o M/M/1 Apresentaremos a seguir o modelo M/M/1 implementado em LINSIM-PFD. Observe que ele foi escrito a partir da visualização do ACD (Figura 4.2).
Initialization() CreateQ(Q_sai, infinite) CreateQ(Q_esp,0) CreateQ(Q_atend,1) CreateQ(Q_porta,1) Create_Var(tempo1) Create_Var(tempo2) End C_event(Chegada, {Chegada}
Qsize(Q_sai)>=1
and
Qsize(Q_porta)>=1)
Set_Var(tempo1,E(10)) Schedule(B1, Dequeue(Q_porta),tempo1) Schedule(B2, Dequeue(Q_sai), tempo1) End B_event(B1) {Porta acaba} Enqueue(Q_p orta, Current, true) End B_event(B2) Enqueue(Q_esp, current, true) End C_event(atendimento,Qsize(Q_esp>=1) and Qsize(Q_atend)>=1) Set_Var(tempo2,E(8)) Schedule(B3,Dequeue(Q_esp), tempo2) Schedule(B4,Dequeue(Q_atend),tempo2) End
B_event(B3) {clientes saem do sistema} Enqueue(Q_sai, current, true) End B_event(B4) {atendente termina atendimento} Enqueue(Q_atend,current, true) End Termination(S_time>=10000) Message(“utilização do atendente = “, utilization(Q_atend)) Observações Pode parecer que esta implementação ainda é complicada (embora seja bem mais “enxuta” do que o nosso “programinha” em Python). Poderíamos simplificar ainda mais, se a implementação não fosse feita de acordo com o paradigma do ACD. No entanto, esta implementação pode facilmente considerar ainda: • Número finito de clientes : neste caso, ao criarmos a fila Q_sai, podemos inicializá-la com um número finito de clientes. Exemplo: CreateQ(Q_sai, 50);
• Vários servidores com fila única: neste caso, basta inicializar a fila Q_atend com um número maior de elementos. Exemplo para três servidores: CreateQ(Q_atend,3); • Desistência de fila: suponhamos que o cliente, ao ver mais de 10 elementos na fila de espera, sai do sistema. Para considerar esta condição, basta substituirmos o bloco B_event(B2) (Cliente chega na fila de espera) por:
B_event(B2) IF(Qsize(Q_esp)<10, Enqueue(Q_esp, Enqueue(Q_sai, current, true))
current,
true),
End
4.3.3. Simuladores Com a utilização de um simulador, a confecção deste modelo fica extremamente fácil. Como a maioria dos simuladores possui interface gráfica interativa, basta construirmos o modelo através dos construtores básicos e interligarmos esses elementos segundo o fluxo lógico (em alguns simuladores, essa tarefa demora alguns segundos). Neste caso, temos uma chegada, uma fila, um processo de atendimento e uma saída. A aparência do modelo computacional (utilizando, por exemplo, o simulador SIMUL8) neste caso pode ser visualizada na Figura 4.4.
Figura 4.4 – Modelo M/M/1 no simulador SIMUL8.
Agora, basta definirmos os parâmetros básicos da chegada e do atendimento, que, no caso, são os tempos: 10 minutos para as chegadas segundo uma distribuição exponencial, e oito minutos para o atendimento (também segundo uma distribuição exponencial, Figura 4.5).
Figura 4.5 – Parâmetros para o modelo M/M/1 no simulador S IMUL8.
Para a fila, consideraremos uma disciplina FIFO com capacidade infinita (exatamente o default do software – Figura 4.6).
Figura 4.6 – Parâmetros da fila pa ra o modelo M/M/1.
Basta definirmos agora o tempo de simulação (10.000 minutos) e rodarmos o modelo. Após isso, a maioria das medidas de desempenho já estariam contabilizadas, e poderíamos verificar facilmente qual a taxa de utilização do atendente. Neste caso, uma pessoa experiente no software poderia construir este modelo em menos de um minuto. Embora seja um modelo extremamente simples, temos uma ideia de como a implementação de um modelo de simulação fica facilitada através do uso de simuladores. Aliás, hoje em dia, a utilização de linguagens de simulação é muito restrita, e quase ninguém implementa um modelo
utilizando uma linguagem geral de programação, a não ser com finalidade extremamente específica. Para qualquer modo de implementação adotada (linguagem de programação, linguagem de simulação ou simulador), convém sempre adotar a estratégia “comer o boi em bifes”. Isso quer dizer que se deve implementar e testar o modelo em pequenas partes, para então executar o modelo maior. Retornaremos a essa máxima no Capítulo 5, quando discutiremos o processo de verificação.
4.4. Exercícios de revisão 1. Implementação das filas M/M/1 e M/M/2. a Partindo do código da fila M/M/1 fornecido no item 4.3.1, implemente, em uma linguagem de programação de seu conhecimento, o modelo M/M/1; b Implemente um segundo modelo que represente a fila M/M/2, ou seja, com dois servidores em paralelo (neste caso, o modelo do item anterior deve ser estendido para lidar com um segundo servidor); c Compare o desempenho dos dois sistemas, para o caso em que o tempo de atendimento de cada servidor da fila M/M/2 é o dobro do tempo de atendimento do único servidor da fila
M/M/1. Na sua opinião, qual dos dois sistemas possui melhor nível de serviço? 2. Exercício resolvido. Implementar o modelo do pub em LINSIM-PFD (a partir da descrição do ACD do pub – Figura 3.16 – e dos dados apresentados no exercício 2 do capítulo anterior). Solução: Para facilitar a implementação, reconhecemos que as filas Q_prt e Q_chei são filas dummies,ou “fantasmas”. Logo, tanto para os copos quanto para os clientes, juntamos as atividades “Encher” e “Beber” em uma única atividade. O objetivo é determinar o tempo médio de espera de clientes na fila de espera. Consideraremos 50 copos e três garçonetes. A simulação terminará quando 100 clientes saírem
efetivamente do pub. A implementação deste modelo em LINSIM-PFD está descrita a seguir:
{inicia todas as filas: note que temos 50 copos e 3 garçonetes} {criam-se todas as variáveis de geração de tempos e o contador do número de clientes que saem do sistema} Initialization () CreateQ(Q_port,1) CreateQ(Q_esp,0) CreateQ(Q_sai, infinite) CreateQ(Q_sujo,0) CreateQ(Q_lim,50) CreateQ(Q_par,3) Create_Index_Var(sede) Create_Var(tempo1) Create_Var(tempo2) Create_Var(tempo3)
Create_Var(Nclientes_sai) Set_Var(Nclientes_sai,0) End {bloco para gerar as chegadas dos consumidores, com intervalos sucessivos segundo uma exponencial com média de 10 minutos} C_event(Chegada, Qsize(Q_sai)>=1 and Qsize(Q_port)>=1) Setvar(tempo1,E(10)) Schedule(B1,Dequeue(Q_sai), tempo1) Schedule(B2,Dequeue(Q_port), tempo1) End {ao terminar a chegada, a porta pode voltar para sua respectiva fila} B_event(B2) Enqueue(Q_p ort, current, true)
End {após terminar a chegada (exatamente no mesmo tempo que o bloco anterior), o cliente irá para a fila de espera, mas antes recebe o atributo sede que indicará quantos copos beberá} B_event(B1) {chegada cliente} Setvar(sede[current], U(1,4)) Enqueue(Q_esp,current, true) {a partir da existência de copos, garçonetes e clientes nas respectivas filas de espera, os eventos B3 e B4 são programados para ocorrerem após o tempo de encher + beber. Como a garçonete está liberada após encher, o evenro B5 é planejado após o tempo de encher} C_event(Enche, Qsize(Q_esp)>=1 and Qsize(Q_par)>=1 and Qsize(Q_lim>=1)) Set_Var(tempo1, N(6,1)) {tempo de encher}
Set_Var(tempo2,U(5,8)) {tempo de beber} Schedule(B3,dequeue(Q_esp),T1+T2) Schedule(B4,dequeue(Q_lim),T1+T2) Schedule(B5,dequeue(Q_par),T1) End {cliente a de beber} B_event(B3) Set_Var(Sede[current], sede[current]-1) Nclientes_sai+1)) If (Sede[current]=<0, Set_Var(Nclientes_sai, If (Sede[current]>0, enqueue(Q_esp, current, false), enqueue(Q_sai, current, true) {copo acaba de ser usado pelo cliente} B_event(B4) Enqueue(Q_su jo, current, true) End
{garçonete termina de encher} B_event(B5) Enqueue(Q_par, current, true) End {o bloco a seguir programa o término da lavagem, que demora exatamente 5 minutos} C_Event(Lava,Qsize(Q_sujo>=1) and Qsize(Q_par)>=1) Tempo3:=5 Schedule(B6,Dequeue(Q_sujo), tempo3) Schedule(B7, Dequeue(Q_par), tempo3) End {copo acaba de ser lavado} B_event(B6) Enqueue(Q_lim,current, true) End
{garçonete termina de lavar o copo} B_event(B7) Enqueue(Q_par, current, true) End {O fim da simulação ocorre quando o número de clientes que sai é >=100} Termination(N_clientes_sai >=100) Message(“O tempo médio de espera na fila do pub é”, avgtimequeue(Q_esp)) End 3. Implemente os modelos dos exercícios de 1 a 5 do Capítulo 3 em LINSIM-PFD. 4. Exercício resolvido.4 Em uma loja, os clientes chegam ao caixa de pagamentos com intervalos entre chegadas sucessivas exponencialmente distribuídos com média de 4,5 minutos. O tempo de serviço no caixa é normalmente distribuído com uma média de 3,2 minutos e desvio-padrão de 0,6 minuto por atendimento. Se o caixa estiver ocupado, uma fila se forma e não há desistência dos clientes em fila. Pretende-se determinar qual a
porcentagem dos clientes que permanecem mais de quatro minutos no sistema. Considere a simulação para quando saem 1.000 clientes do sistema. Implemente este modelo utilizando a linguagem GPSS. Solução: No item 4.3.2, comentamos que há diversas linguagens de simulação (GPSS, SLAM, SIMAN). Dentre estas, a GPSS (General Purpose Simulation System) pode ser considerada um marco, pois substituiu as linguagens de programação e acelerou a implementação de modelos de simulação. O GPSS foi criado pela IB em 1961 e possui mais de 40 blocos ou comandos disponíveis. Cada bloco executa uma ação específica da simulação. Por exemplo, o comando GENERATE cria entidades de acordo com uma distribuição, e o comando ADVANCE avança o relógio de simulação. Embora seja considerada uma linguagem antiga, ainda estão disponíveis diversas implementações do GPSS no mercado. Algumas implementações são gratuitas para uso acadêmico. A solução para o exercício proposto está disposta a seguir e foi implementada no GPSS Word.5
GENERATE (EXPONENTIAL(1,0,4.5)) ; linha 1 QUEUE tempo_sistema ; linha 2 QUEUE fila ; linha 3 SEIZE caixa ; linha 4
DEPART fila ; linha 5 ADVANCE (NORMAL(1,3.2,0.6)) ; linha 6 RELEASE caixa ; linha 7 DEPART tempo_sistema ; linha 8 TEST GE M1,4,TER ; linha 9 SAVEVALUE Contador+,1 ; linha 10 TER terminate 1 ; linha 11 START 1000 ; linha 12 No GPSS, um comentário se inicia pelo caractere “;”. Para facilitar a descrição do rograma, numeramos as linhas, mas isso é opcional. A primeira linha utiliza o comando GENERATE, cujo parâmetro principal é o tempo entre chegadas. Neste caso, tem-se a expressão EXPONENTIAL(1,0,4.5), onde o primeiro parâmetro é o conjunto da semente aleatória (que já é prefixado), o segundo parâmetro é o deslocamento no eixo do tempo, e o terceiro a média do tempo, que no nosso caso é 4,5 minutos. Ou seja, a linha 1 gerará entidades segundo a distribuição exponencial com média de 4,5 minutos. Nas linhas 2 e 3, aparecem dois comandos do tipo QUEUE. A finalidade desse comando é iniciar a coleta de dados para gerar a estatística de fila (p. ex., tempo médio de espera, número médio de elementos em fila etc.). O comando complementar ao
QUEUE é o DEPART, que fecha as estatísticas de contagem de fila. Por que há dois comandos QUEUE? Na realidade, o comando da linha 2 serve para contabilizar o tempo desde a entrada do cliente até o final do atendimento do caixa (que coincide com sua saída do sistema), que é a principal medida de interesse (desejamos saber a proporção de clientes que permanecem mais do que 4 minutos no sistema). Por este motivo é que há um DEPART na linha 8. Assim, a estatística “tempo_sistema” computará o tempo total desde a entrada até o final do atendimento (sinalizado pelo comando RELEASE – linha 7). Do mesmo modo, a estatística “fila” contempla somente a espera do cliente na fila, pois o comando DEPART respectivo foi colocado imediatamente após a alocação do servidor (caixa), ou seja, do início do serviço. Outros comandos que funcionam em pares são o SEIZE (linha 4) e RELEASE (linha 7). O primeiro aloca um “servidor” ou “recurso”, que, no caso, chama-se “caixa” (mas poderia ser chamado de qualquer nome), e o segundo o libera após o término do atendimento. Se o servidor está ocupado, imediatamente, formase uma fila antes dele. O tempo de atendimento é dado pelo comando ADVANCE, e, no caso da linha 6, o tempo segue uma distribuição normal com média de 3,2 e desvioadrão de 0,6. Como no caso da distribuição exponencial, o primeiro parâmetro é o conjunto de referência da semente aleatória. A linha 9 aplica um comando de teste lógico. GE vem do termo inglês “greater or equal”, ou seja, este teste verifica se o tempo total no sistema é maior ou igual a quatro minutos (M1 é uma palavra reservada). Se positivo, ele executa a linha imediatamente subsequente (linha 10), que incrementa um contador (comando SAVEVALUE). Caso
contrário, ele “pula” para a linha denominada “TER” (linha 11), e o contador, neste caso, não é incrementado. A linha 11 (comando TERMINATE) faz com que, de cada elemento que saia, seja decrementado um contador interno (contador que é iniciado com o valor X de START X). Quando este contador chega a 0, a simulação para. Por fim, a linha START 1.000 (linha 12) dá início à simulação. Se fosse digitado START 500, a simulação terminaria quando 500 clientes saíssem do sistema. 5. Implementar em um simulador as seguintes descrições: a) Um posto de distribuição de brindes atende a pessoas que querem retirá-los por meio da apresentação de um cupom premiado – média de seis em cada 10 pessoas – ou que queiram trocar os brindes recebidos de outras pessoas – média de quatro em cada 10 pessoas. Nota-se que, quando a fila de espera atinge 15 clientes, os novos clientes que chegam ao posto desistem do atendimento. Crie um modelo de simulação que represente o funcionamento do posto, considerando que, por hora, em média, 20 clientes chegam ao posto, com intervalo de tempo entre chegadas sucessivas definido por uma distribuição exponencial. O posto conta com dois atendentes capazes de fazer qualquer tipo de atendimento. Os tempos de atendimento das retiradas e trocas seguem distribuições normais, com médias de quatro e 10 minutos, respectivamente e com desvio-padrão de dois minutos nos dois casos. b) Em uma célula de montagem, peças fundidas são usinadas e unidas por parafusos. A usinagem dura três minutos e é feita sempre em pares de peças, que devem ser
previamente encaixadas em um dispositivo de fixação. Um funcionário é responsável pela fixação das peças e pela operação da máquina de usinagem. Após a usinagem, outro empregado une os pares de peças com quatro parafusos e despacha os conjuntos para outro setor. A célula é abastecida a cada 40 minutos porpallets com 60 peças e caixas de parafusos que contêm de 990 a 1.010 unidades. A fixação das peças antes da usinagem é feita em um tempo médio de 40 segundos, normalmente distribuído, com desvio-padrão de cinco segundos, enquanto a união das peças por parafusos gasta entre 3,5 e quatro minutos, segundo uma distribuição uniforme. c) Reconsidere o problema da clínica médica proposto no Capítulo 3. Implemente-o e, a seguir, altere o modelo de simulação criado para representar, de forma independente, as situações descritas a seguir: • Os pacientes desistem da consulta e saem da clínica após esperarem 30 minutos pelo atendimento médico; • O layout da clínica obriga as recepcionistas a se deslocarem entre a recepção e o posto de agendamento. O deslocamento de um ponto ao outro leva 30 segundos, e as recepcionistas permanecem no último local de atendimento até serem requisitadas novamente; • Clientes que esperaram por mais de uma hora pelo atendimento médico recebem “tratamento especial” na saída: seu processo de agendamento e pagamento dura apenas dois minutos; • Ao chegar à clínica, metade dos pacientes desiste da consulta caso existam mais de 10
pessoas aguardando pelo atendimento.
Leitura Complementar
Softwares de simulação: o que é importante?
Um ponto importante em um estudo de simulação, porém não fundamental, é a escolha do software de simulação para a aplicação em questão. Dizemos que não é fundamental porque o fator mais importante (e crítico) para o sucesso de um estudo de simulação não é o software nem o hardware, mas sim o “humanware”, ou seja, o “analista” que está realizando o estudo. De fato, concordamos em gênero e grau com o que dizem Banks e Gibson (1997): “A simulação é uma disciplina, e não um pacote de software”. Robinson e Pidd (1998) também sugerem que o software de simulação não é essencial em um estudo completo de simulação. Infelizmente, nem todos pensam assim, e reduzem a simulação ao uso de determinado software. No entanto, também não podemos negar que a seleção adequada do software e do
hardware influencia principalmente o tempo total de um estudo de simulação. Uma excelente fonte de informação sobre os softwares de simulação disponíveis é a revista eletrônica OR/MS Today,6 mantida pelo Institute for Operations Research and the Management Sciences (INFORMS). A cada dois anos, essa revista apresenta uma survey com os principais softwares de simulação, relacionando vendedores, principais usos, custos, principais clientes, sistema operacional utilizado etc. Outra fonte de informação interessante é o site de comparação de softwares da RGESIM ,7 grupo europeu de pesquisa e divulgação em simulação. O site apresenta 12 modelos de simulação resolvidos por, no mínimo, dois softwares de simulação diferentes, o que permite comparar o desempenho de alguns deles. Uma questão importante na escolha do pacote de simulação é quanto à animação gráfica que este possibilita. Neste caso, temos três categorias: • Software sem capacidade de animação ou com pós-animador: softwares textuais; • Simuladores com animação bidimensional (2-D); • Simuladores com animação tridimensional (3-D). O primeiro caso está em extinção nos dias de hoje. Poucas pessoas realizam simulação sem a animação direta. O pós-animador seria uma animação indireta em que o software (geralmente textual) gera umtrace-file , ou arquivo de simulação, e um outro software (o “animador”) faz a animação do modelo. Hoje em dia, o comum é a execução da simulação e a animação integradas num só pacote.
Um software de simulação 2-D (ou duas dimensões) utiliza bitmaps (matrizes de pixel) para realizar as animações gráficas. Muitas vezes, parece que o desenho é 3-D (tridimensional), mas na realidade é 2-D, com os ícones desenhados de acordo com alguma técnica de projeção em perspectiva – também conhecido como “2½-D”. A dica para saber se o software é realmente 2-D ou 3-D real é simples: se for possível visualizar o modelo em todas as direções (de topo, de frente etc.), ele é 3-D; caso contrário, é somente 2-D. A Figura 4.7 ilustra um software 2-D, mas que, com técnicas de projeção, aparenta ser 3-D.
Figura 4.7 – Representação em 2-D, mas com ef eitos 3-D.
Qual é o melhor software, 2-D ou 3-D? Isso obviamente depende do objetivo do projeto de simulação. Se a construção do modelo for importante apenas por seus resultados estatísticos, então um software 3-D só complicará as coisas. Agora, se a animação gráfica for importante para o entendimento do sistema, um simulador 3-D pode ser mais indicado. Porém, é importante ter em mente dois fatores:
• Os softwares 3-D são muito mais caros que os 2-D (de maneira geral, de duas a três vezes mais), e é muito mais trabalhoso montar um modelo em 3-D do que em 2-D (pois temos de colocar todas as características geométricas dos objetos); • Um simulador não é um animador: se o objetivo é gerar uma animação para impressionar o cliente, o mais indicado é utilizar um software de animação gráfica (como o 3-D Studio), e não um simulador. A Figura 4.8 ilustra os softwares de simulação em relação à qualidade de imagem e animação e seu custo.
Figura 4.8 – Gráfico comparativo da qualidade da imagem ou animação com o custo de aquisição do software de
simulação.
Quais características um software de simulação deveria possuir para ser considerado “bom”? Enumeramos o que chamamos decaracterísticas desejáveis de um software de simulação. É claro que estamos pensando numa aplicação geral, pois, em uma aplicação específica, uma característica “desejável”, no sentido genérico, pode não ser tão “desejável” assim. Neste texto, dividimos essas características em quatro categorias básicas: gerais, módulos incorporados, construção de modelos e documentação/suporte. Vamos analisar essas categorias separadamente.
Característi cas desejáveis gerais • Software barato. Esta característica, aliás, é desejável em todos os produtos e serviços. O que está ocorrendo hoje em dia é um barateamento dos softwares de simulação, que outrora apresentavam preços proibitivos para pequenas empresas. No início do GPSS (final da década de 1960), somente algumas grandes corporações podiam obtê-lo. Atualmente, existem bons softwares na faixa dos 1.000 dólares, mas ainda há softwares com preços muito abusivos. Vale a pena sempre analisar o preço do software em relação às funcionalidades que ele pode oferecer. • Fornece o tipo de animação segundo sua necessidade. Como foi comentado, há softwares de simulação 2-D ou 3-D. No entanto, há ainda os softwares “híbridos”, que podem ser 2-D, e, com a compra de um “pacote” adicional, tornam-se 3-D.
• Bugs & crashes mínimos. Falar que um software de simulação nunca apresentará um bug (“erro de programação”) ou um crash (“aplicação que não funciona”) é como falar que temos vida eterna. Os problemas ocorrem principalmente pelo fato de os softwares de simulação serem mais complexos que os aplicativos que estamos acostumados a usar (como Word, Excel etc.) e também devido às instabilidades inerentes ao próprio sistema operacional, em especial o Windows (que possui a maior base de software de simulação). O que se verifica é que alguns softwares “quebram” mais do que os outros. A regra geral é a seguinte: verifique a versão em que o software está. Quanto mais tempo o software estiver no mercado e quanto maior a versão do software, menor a probabilidade de se ter bugs e crashes . Isso, no entanto, é uma regra geral, e às vezes o software pode já estar no mercado há um bom tempo mas apresentar crashes devido, por exemplo, à mudança do sistema operacional. • Software de companhia com reputação. Antes de adquirir um software de simulação, é importante analisar qual a companhia fabricante, se esta é recente ou já possui muitos anos de operação, qual é o número de usuários no mundo etc. Isso é importante, porque ninguém quer comprar um software de uma companhia que corre o risco de falir num futuro próximo. • Fácil de utilizar. É claro que a facilidade de uso é uma característica desejável do software, mas o que é um software fácil de utilizar? Observe que sempre os vendedores falam que seus softwares são “fáceis de utilizar”. A “fácil utilização” é um conceito muito relativo e subjetivo, e não coletivo. O que é fácil para uma pessoa pode ser difícil
para outra, principalmente se as pessoas já estão acostumadas a uma forma de utilização. Exemplos interessantes são os editores de texto Word e Latex. Quem usa o Word acha o Latex difícil de utilizar, e quem usa o Latex acha o Word horrível. Portanto, sempre, antes de adquirir um software de simulação, pergunte se este possui uma versão de demonstração disponível e tente sentir na “própria pele” se a utilização é fácil para você.
Característi cas desejáveis: módulos incorporados engine”, o Um software de simulação é muito mais do que apenas a simulation “ “máquina de simulação”. Ele pode apresentar módulos incorporados altamente desejáveis. Em nossa opinião, os módulos incorporados mais relevantes são: • Módulo de run-time. Muitos usuários gostariam de ver apenas as rodadas de simulação e seus resultados, ou mesmo gostariam de passar isso a uma terceira pessoa sem a necessidade de instalação do software completo (aliás, muitas vezes, nem sempre temos licenças disponíveis para tal). Dessa maneira, alguns softwares possuem capacidade de gerar uma versão run-time que apenas permite abrir, rodar o modelo e gerar resultados (algumas versões permitem até mudar parâmetros de entrada). No entanto, as versões run-time não permitem modificar a estrutura interna dos modelos nem mesmo salvá-los. • Módulo de análise de dados de entrada. Muitos softwares de simulação vêm com este módulo embutido. Este é o módulo que irá se encarregar de fazer o ajuste de curvas dos dados de entrada (“fitting de curvas”) segundo uma melhor curva de probabilidade mais bem ajustada.
• Módulo de análise estatística dos resultados. Geralmente, um módulo que se encarrega de tratar os dados de saída do modelo. Para isso, diversas funcionalidades podem estar incluídas neste módulo, tais como: geração do intervalo de confiança, técnica de análise DOE. ou Projeto de Experimentos8 embutida, análise de diferentes cenários e dizer qual o melhor etc. • Módulo de otimização. Este assunto será explorado no Capítulo 7, mas a ideia básica é a seguinte: com um software de simulação, você irá simplesmente analisar cada cenário ou situação. Desse modo, para descobrir qual a melhor situação ou o melhor cenário, você deverá ajustar manualmente os parâmetros de entrada do modelo e determinar qual o conjunto desses parâmetros que melhoram o desempenho do modelo (p. ex., maximizem a produtividade, diminuam o tempo de espera, minimizem os custos totais etc.). Este processo manual pode ser “automatizado” acoplando-se o software de simulação a um algoritmo de otimização, que irá executar conjuntamente com o simulador e buscar o “melhor” conjunto de parâmetros do modelo que minimize ou maximize determinada função de desempenho pré-especificada. • Capacidade de geração de arquivos multimídia. Muitas vezes estamos interessados apenas em mostrar a animação gerada pela simulação a uma pessoa, mas não queremos que esta pessoa instale o software completo. Neste caso, alguns softwares de simulação possuem a capacidade de gerar um arquivo de animação (em formato de “filme”) do tipo “avi” ou “mpeg”. Basta então utilizar o “player ” adequado para visualizar somente a
animação do modelo de simulação. • Debugger. Odebugger, ou depurador, é um módulo importante para verificar um modelo (Cap. 5). Sempre que alguma coisa parece estar incorreta e não conseguimos encontrar a causa desse possível problema, devemos executar a simulação passo a passo, com o depurador ligado, para vermos os detalhes das variáveis do modelo. Fique extremamente preocupado se o software que você está adquirindo não possuir um depurador. • Integração com outros softwares. É importante que o software de simulação possibilite se integrar ou “conversar” com outros softwares, como editores de texto, planilhas de cálculo ou mesmo softwares de CAD. Isso se traduz num ganho excelente de tempo, pois este não é gasto na conversão de dados para o formato de outros sistemas. • Funções de distribuições de probabilidades. É importante que o software tenha uma boa lista de funções de probabilidades (tanto discretas como contínuas), conforme visto no Capítulo 2. O software deve permitir, ainda, a entrada de uma distribuição pela definição dos pontos (distribuição empírica), já que nem sempre conseguimos obter um bom ajuste de curvas segundo uma função matemática preestabelecida.
Característi cas desejáveis: construção de m odelos • Capacidade de construção de templates. Umtemplate pode ser encarado como um bloco construtor customizado para uma determinada utilização. Geralmente os construtores básicos de um simulador são: geração de entidades, filas, atividades e recursos. Esses construtores básicos podem ser combinados formando um outro de maior nível,
denominado template . Assim, uma fila com uma atividade que sempre utiliza dois atendentes pode ser agregada em umtemplate chamado “atendimento duplo”. • Capacidade de integração de modelos. A integração de modelos, ou merge, é uma característica importante, pois permite “juntar” dois modelos diferentes em um único modelo. É particularmente interessante quando temos duas partes de um modelo rodando separadamente e queremos juntá-las, formando um modelo maior. • Capacidade de modelagem hierárquica. Isto é importante para diminuir a complexidade aparente do modelo. Neste caso, um modelo pode conter vários submodelos, e assim sucessivamente. Alguns softwares já permitem esse tipo de modelagem, o que facilita muito sua organização. • Capacidade de modelagem por objetos. Neste caso, a construção de um modelo deveria seguir o Paradigma de Orientação por Objetos (POO). Assim, a modelagem seria mais flexível, pois, ao definirmos os objetos, poderemos utilizar a propriedade da hereditariedade9 do POO, sendo mais simples construirmos modelos novos a partir de modelos antigos. Uma inexpressiva parte dos softwares de simulação se utiliza destas características.
Característi cas desejáveis: suporte e documentação Além dos fatores descritos, os softwares devem possuir, como serviços auxiliares: • Boa documentação (manual). Não adianta o software de simulação ser bom se a documentação (manual) não está bem escrita ou não é didática. Isto também é válido para
a documentação de “ajuda”, ouhelp. • Sites úteis e atualizados. Os (bons) vendedores de software sempre estão disponibilizando as novas versões ou atualizações via web, e, por isso, é importante verificar se o vendedor está sempre atualizando seu site com avisos e informações úteis. Alguns sites de fabricantes até possuem grupos de discussão entre os usuários do software, para um ajudar o outro na solução de problemas. • Treinamento. Um bom treinamento no software é condição importante para um bom desempenho. Lembre-se de que o software de simulação não é simplesmente um software de prateleira, que basta comprar e sair utilizando. Além dos conhecimentos gerais de modelagem e simulação, o conhecimento de como o software opera é fundamental. Verifique se os vendedores de software oferecem treinamentos constantes e em vários níveis (básico, avançado etc.), de acordo com a sua necessidade. • Conferência de usuários. Alguns fabricantes de software mantêm, geralmente uma vez ao ano, uma conferência de usuários para que estes possam trocar experiências e aprender com os erros. Vários cursos de software são realizados durante essas conferências, o que é excelente para a reciclagem de conhecimentos. Infelizmente, como a maioria dos fabricantes de softwares está concentrada nos Estados Unidos ou Europa, dificilmente se gasta menos do que 2.500 dólares nesta empreitada. A Tabela 4.2 foi construída a partir dessas considerações, mostrando como podemos atribuir pesos e notas para cada quesito levantado. Dessa maneira, essa tabela poderia ser
de alguma utilidade em um processo de seleção de softwares de simulação. A metodologia apresentada é uma possível ferramenta para a seleção de software, mas não é a única. Robinson (2004) propõe alguns outros critérios para seleção, que incluem o “Pedigree” do vendedor e outros fatores. No entanto, a forma de cálculo do peso final para cada software de simulação é análoga ao apresentado aqui. Quando o número de critérios aumenta e quando há um número grande de subcritérios dispostos em vários níveis (p. ex., custo no nível 1, custo de aquisição, custo de treinamento, custo de manutenção no nível 2, e assim por diante), aconselha-se a trabalhar com a metodologia AHP Analytic ( Hierarchy Process), ou método de análise hierárquica, proposta por Saaty (1980). Alguns autores, como Davis e Williams (1994) e Nikoukaran, Hlupic e Paul (1999), descrevem como a metodologia AHP pode ser aplicada especificamente na seleção de softwares de simulação. Tabela 4.2 – Tabela comparativa p ara seleção d e softwares de simulação
Nome do software: Versão: Fabricante: Classe
Características Software barato
Peso (0 a 3)
Nota (1-5)
Total (Nota x Peso)
Características desejáveis gerais
Animação Bugs e crashes Reputação companhia Fácil uso
Subtotal 1 (S1): Classe
Características Módulo run-time Módulo de análise de dados de entrada Módulo de análise estatística dos resultados Módulo de otimização
Módulos incorporados Capacidade de geração de arquivos multimídia
Debugger Integração com outros softwares (CAD, Excel, Visio etc.) Funções de dist. probabilidades
Peso (0 a 3)
Nota (1-5)
Total (Nota x Peso)
Subtotal 2 (S2): Classe
Características
Peso (0 a 3)
Nota (1-5)
Total (Nota x Peso)
Capacidade de construção de templates Construção de modelos
Capacidade de merge Capacidade de modelagem hierárquica Capacidade de modelagem por objetos
Subtotal 3 (S3): Classe
Características
Peso (0 a 3)
Nota (1-5)
Bom manual (impresso/help onlin e) Suporte e documentação
Sites úteis e atualizados Treinamento Conferência de usuários
Subtotal 4 (S4): Peso Classe Classe
Total Subtotais (Peso x
Total (Nota x Peso)
Subt)
(0-3) 1.Característicasgerais
S1=
2. Módulos incorporados
S2=
3. Construção de modelos
S3=
4. Documentação e suporte
S4=
Total Geral:
Referências bibliográficas BANKS, Jerry; GIBSON, Randall R. Simulation modeling: some programming required. IIE Solutions , p. 26-31, 1997. Discrete-event BANKS, Jerry; CARSON, John S.; NELSON, Barry L.; NICOL, David M. system simulation. 2. ed. Upper Sandle River: Prentice-Hall International Series i Industrial and System Engineering, 2001. DAVIS, Lesley; WILLIAMS, Glyn. Evaluating and selecting simulation software using the analytic hierarchy process. Integrated Manufacturing Systems, v. 5, n. 1, p. 22-32, 1994. HARREL, Charles R.; TUMAY, Kerim.Simulation made easy: a manager’s guide. Norcross: Engineering and Management Press, 1995. NIKOUKARAN, Jalal; HLUPIC, Vlatka; PAUL, Ray J. A hierarchical framework for evaluating simulation software. Simulation Practice and Theory, v. 7, n. 3, p. 219-231, 1999. PAUL, Ray J.; BALMER, David W.Simulation modelling. Londres: Chartwell-Bratt, 1993. ROBINSON, Stewart; PIDD, Michael. Provider and customer expectations of successful simulation projects. Journal of the Operational Research Society, v. 49, n. 3, 1998. p. 200-209.
ROBINSON, Stewart. Simulation: the practice of model development and use. Chichester: John Wiley & Sons, 2004. SAATY, Thomas L. The Analytic Hierarchy Process. Nova York: McGraw-Hill, 1980. SALIBY, Eduardo. Softwares para simulação.Anais do Workshop de Simulação, Rio de Janeiro: Coppead, 1997. p. 17-22.
Capítulo 5
Verificação e validação de modelos de simulação
5.1. Introdução O processo de validação e verificação de modelos de simulação (muitas vezes “apelidado” de V&V) é fundamental para que um estudo de simulação seja bem-sucedido. Embora no nosso “esquema” de metodologia da simulação (Figura 1.6) ele venha após a construção do modelo computacional (pois aí estão concentradas as atividades de verificação), na realidade este processo deve acompanhar todo o ciclo de vida do projeto, sendo, portanto, um processo contínuo. Infelizmente, ante a urgência dos prazos de conclusão dos projetos, dois tópicos são praticamente esquecidos: um é a documentação do modelo (Apêndice IV), o outro é a verificação e validação. Mas o que significa verificar e validar um modelo?
5.2. Verificação e validação Embora foneticamente as palavras anteriores se pareçam, estes dois conceitos são completamente distintos entre si. O termo “validação” está relacionado ao modelo conceitual .1 Neste caso, o objetivo da validação do modelo equivale a responder à seguinte pergunta: “Será que estamos desenvolvendo o modelo correto?” Ou, de outro modo: será que as considerações feitas, o nível de detalhamento, o escopo do modelodeetc., representarão de forma adequada o sistemauma a ser simulado? Na teoria,deo conceito validação é extremamente simples. Observe definição interessante validação (operacional) proposta por Pidd (2000): Um modelo é uma representação do mundo real, ou pelo menos de parte dele. Portanto, a validação de um modelo é realmente muito direta – em princípio. Tudo o que devemos fazer é checar se o modelo comporta-se como o mundo real sob as mesmas condições. Se ele se comporta, então o modelo é válido, caso contrário, não é válido. Já a verificação está sempre relacionada ao modelo computacional (ou modelo implementado em algum software de simulação). Neste caso, a pergunta que devemos fazer
quando verificamos um modelo é: “Será que estamos desenvolvendo corretamente o modelo?” Outra maneira de entender o processo de verificação é fazermos uma analogia entre a implementação de um modelo de simulação e a implementação de um programa em alguma linguagem de programação convencional (p. ex., Pascal, C, Delphi, Python etc.). “Verificar”, em um sentido mais simplista, significa retirar os bugs do modelo (o bugs de elementos que estão causando o seu mau funcionamento), tal como se tiram os programas. Portanto, a validação está relacionada ao que será modelado, ao passo que a verificação está relacionada ao modo como o modelo é implementado. A Figura 5.1 ilustra esses conceitos, inclusive o conceito de validação operacional.
Figura 5.1 – Conceitos fundamentais da verificação e validação.
Vamos entender o que significam as etapas de 1 a 6. Dado o mundo real (ou mesmo até o mundo imaginário, que é “real” em nossa mente), ao criarmos um modelo conceitual (expresso, por exemplo, em ACD), efetuamos o que chamamos demodelagem (1). Ao fazermos o inverso, ou seja, ao confrontarmos o modelo conceitual com o sistema do mundo
real, estamos justamente realizando o processo de validação , ou validação do modelo conceitual (2). Na sequência, implementamos o modelo conceitual em alguma linguagem de simulação ou de simulador. Após a implementação (3), devemos verificar se o comportamento do modelo está de acordo com o modelo conceitual; esta fase é denominada verificação do modelo (4). Após o modelo computacional ser devidamente verificado, ele é considerado operacional e pode ser utilizado para a experimentação (5). Realizados os experimentos e obtidos os resultados a partir do modelo computacional, devemos observar se esses resultados são condizentes com o mundo real: esse processo é denominado validação operacional (6). Durante todo esse processo, é importante ressaltar: 1. Pode existir um modelo que foi verificado (não apresentando problemas), mas que é completamente inválido, pois não consegue representar adequadamente o mundo real. Considere, por exemplo, uma fila em um sistema real com um único servidor, em que o tempo de atendimento depende do tipo de cliente. Além disso, esse sistema apresenta desistências de clientes quando a fila está muito grande. Embora o sistema funcione com disciplina FIFO2 (first-in, first-out), há casos de pessoas que têm prioridade no atendimento porque possuem certas características específicas e podem “furar” a fila. Ademais, o servidor para de tempos em tempos, aleatoriamente. Ora, se reduzirmos essa situação a uma fila M/M/1 com uma certa taxa de chegadas e uma certa taxa de atendimento, podemos ter um modelo totalmente inválido, pois este não considera: os
tipos diferentes de clientes, as desistências da fila, a disciplina da fila com regra de prioridade, as paradas no atendimento e as distribuições dos tempos não exponenciais. No entanto, podemos implementar este modelo fazendo com que não apresente erro: ele fornece os resultados compatíveis com a respectiva fila M/M/1. Isso reforça a afirmação de que validação e verificação são conceitos distintos. 2. Duas “regras de ouro” da verificação e validação devem estar sempre em nossa mente: • Não há como validar um modelo em 100%, ou garantir que ele seja 100% válido. O que conseguimos é aumentar nossa confiança no modelo, ou “acreditar” que ele representa satisfatoriamente o sistema; • Não há como garantir que um modelo seja totalmente livre de bugs. Ou seja, embora o modelo possa ser verificado para determinada circunstância, não há como garantir que, para quaisquer circunstâncias, funcione conforme pretendido. 3 3. Alguns autores, como Sargent (2000), ainda se referem à expressão “certificação” de modelos de simulação. A “certificação” poderia ser definida como a confirmação oficial de que um modelo de simulação é aceitável para a utilização em uma aplicação específica. Obviamente, a “certificação” de um modelo de simulação também envolve os processos de validação e verificação e até itens como a documentação da simulação, dentre outros aspectos. A “certificação”, necessariamente, deve ser efetuada por uma terceira pessoa, não envolvida diretamente no processo (uma pessoa externa).
5.3. Técnicas de verificação Como vimos, a verificação de modelos de simulação pode ser facilmente entendida como a retirada de bugs do modelo computacional, e há algumas técnicas ou procedimentos que podemos utilizar para facilitar este processo, são eles: • Implementação modular/verificação modular. Aliás, esta é uma técnica de programação que também é aplicada à implementação de modelos de simulação. Sempre que implementarmos um modelo, devemos utilizar a máxima de “comer o boi em bifes”, o seja, implementar partes do modelo e depois rodar somente essa parte. Se essa parte aparentemente estiver correta, então, passe para a segunda parte, e assim sucessivamente. Imagine que você tem um modelo com 100 variáveis, e digamos que você dividiu esse modelo em cinco modelos com 20 variáveis cada um. Assumindo que a probabilidade de encontrarmos um erro é de 0,2 por variável, ou seja, um erro a cada cinco variáveis, o que é melhor: implementar em partes e corrigir quatro erros de cada vez em média ou tentar corrigir de uma única vez 20 erros? • Valores constantes ou simplificados vs. cálculos manuais. Esta é uma técnica bem interessante. Numa simulação, podemos utilizar uma ampla gama de distribuição de probabilidades. O que podemos fazer é tomar os valores médios de cada distribuição e considerarmos esses valores como constantes e determinísticos (e, desta maneira, fazermos uma simulação determinística). É claro que os resultados serão incorretos com esse tipo de simplificação; no entanto, podemos facilmente comparar os resultados do
modelo com os resultados de uma planilha de cálculo e observar se eles “batem” entre si. Por exemplo, numa fila simples, se a taxa entre chegadas for constante e igual a 10 minutos e o tempo de atendimento for constante e igual a oito minutos, a taxa de utilização do atendente é de 8/10 = 80%. Na simulação, devemos obter exatamente esse valor. • Utilização do debugger, trace ou depurador. No Capítulo 4, comentamos sobre a importância do depurador em um software de simulação: a possibilidade de fazer com que a simulação “ande passo a passo” e de visualizar os eventos que estão ocorrendo e eventos futuros, bem como os valores das variáveis do modelo. Realmente, quando não conseguimos descobrir qual é o erro no nosso modelo computacional, devemos enxergálo com uma “lente de aumento”. Essa “lente de aumento” é propiciada pelo depurador. • Simulação manual. Embora a simulação manual seja dispendiosa, ela é de grande valia, por permitir que o analista ganhe uma “sensibilidade” prévia do comportamento do modelo. Dessa maneira, quando implementar o modelo no computador, terá uma percepção maior sobre a correspondência entre o modelo computacional e o conceitual. É claro que essa técnica se torna inviável para modelos muito grandes. • Animação gráfica. A animação gráfica é uma poderosa ferramenta de verificação. Considere, por exemplo, um modelo de um supermercado em que clientes simplesmente “desaparecem do supermercado sem passar no caixa”. Ora, alguma coisa deve estar incorreta na implementação. O mesmo acontece quando determinados clientes “tomam a rota errada”. Todos esses tipos de erro podem ser diagnosticados facilmente pela animação gráfica.
• Revisão em grupo. Geralmente é mais difícil encontrarmos nossos próprios erros do que uma terceira pessoa encontrá-los. Portanto, uma técnica interessante é fazermos a implementação do modelo e deixarmos outra pessoa, ou até mesmo um grupo de pessoas, verificar se o modelo está funcionando adequadamente.
5.4. Técnicas de validação Antes de comentarmos as técnicas propriamente ditas de validação de modelos de simulação, é interessante comentarmos sobre os eventuais erros que podemos cometer (em analogia aos famosos erros de teste de hipóteses em estatística). Na validação podemos cometer três tipos de erros: • Erro do tipo I. O modelo é válido, mas rejeitamo-lo, pensando ser inválido. • Erro do tipo II. O modelo é inválido, mas aceitamo-lo como um modelo válido. • Erro do tipo III. O modelo se desvia dos objetivos estabelecidos (pode até ser válido, mas não é capaz de responder às perguntas em questão). Na prática, os erros do tipo II são os mais comuns. Além dessas possibilidades, podemos encontrar problemas na validação de modelos de sistemas novos, que nunca entraram em funcionamento. Neste caso, a validação é mais difícil, pela ausência dos dados históricos do sistema real. Dentre as principais técnicas de validação de modelos, podemos citar: • Teste de Turing, ou validação black-box. Em um de seus consagrados artigos, o famoso matemático britânico Alan Turing propôs uma questão: “Podem as máquinas pensar?” (TURING, 1950). Para responder a essa questão, ele propôs um teste, o “teste da imitação”, ou “imitation game”, que mais tarde ficou conhecido como “Teste de Turing”. Nele (Fig. 5.2), há três salas com terminais de computadores interligados. Uma sala
contém um Interrogador, noutra sala há uma pessoa ligada a um terminal e, na terceira sala, há um computador com um software de conversação c( hatterbot ). Tanto o computador, em uma das salas, como a pessoa na outra devem responder às perguntas formuladas pelo interrogador (sempre de forma datilografada). O teste consiste em o interrogador tentar descobrir quem é o computador e quem é a pessoa. Se o interrogador falhar em localizar o computador, este poderia ser considerado “inteligente”. Este teste teria uma analogia com o caso da validação de modelos de simulação. Tomaríamos uma pessoa que entenda bem do sistema (especialista) que foi simulado e apresentaríamos a ela dois conjuntos de dados de saída, um vindo do sistema real e outro do modelo de simulação (obviamente, sem falar qual é qual). Caso o especialista não consiga distinguir se os resultados são oriundos do sistema real ou do modelo de simulação, então, o modelo poderia, em certa extensão, ser considerado “válido”. Novamente, este teste só é possível quando temos os resultados operacionais do sistema real e quando estamos simulando o sistema real; qualquer mudança no modelo para representar uma melhoria do sistema real não pode ser contemplada neste teste. Outra maneira de se atingir praticamente os mesmos objetivos sem a necessidade da presença de um especialista é comparar estatisticamente (através de técnicas estatísticas adequadas de comparação) o resultado do sistema real (dados históricos) com os resultados da simulação (exercício 5).
Figura 5.2 – Ilustração do Teste de Turing.
• Duplicação de modelos. Esta técnica, embora seja altamente eficiente, é muito onerosa, pois supõe a existência de duas equipes independentes desenvolvendo modelos do mesmo sistema. Dessa forma, se as duas equipes (operando independentemente, isto é, sem contato uma com a outra) desenvolverem modelos que fornecem resultados similares, isto seria um bom indicador da validade do modelo. Por ser extremamente onerosa, é utilizada somente em alguns tipos de simulações críticas, cujo sistema envolva custos elevados ou em que haja perigo de perda de vidas humanas.
• Comparação com modelos anteriores . Muitas vezes podemos utilizar modelos anteriores para buscarmos indícios da validade do modelo atual. Em muitos casos, o modelo que estamos desenvolvendo pode partir de um modelo já validado, o que facilitaria esse processo. Em alguns casos, o modelo de simulação pode ser comparado a um modelo mais simples (um modelo de Teoria das Filas, por exemplo). • Análise de sensibilidade . Fazer uma análise de sensibilidade significa determinar a influência de alterações dos parâmetros de entrada nos resultados obtidos a partir do modelo. Em que isso ajudaria na validação do modelo? Ora, se sabemos que os parâmetros A e B são críticos para o modelo, ou seja, o modelo é sensível a eles e os parâmetros C e D não o são, concentramos a atenção nestes parâmetros “críticos” e podemos verificar com quais hipóteses devemos tomar mais cuidado. • Validação “face a face”. Esse é o tipo de validação em que o analista (a pessoa que construiu o modelo) discutirá com quem realmente entende do processo que foi simulado (aquele que fará o papel do “advogado do diabo”). Esse tipo de validação pode ser tanto conceitual (modelo conceitual) como operacional (resultados do modelo).
5.4.1 . Níveis d e validação De uma maneira geral, pode-se classificar os procedimentos de validação em três níveis ou categorias, a saber: qualitativo, quantitativo informal e quantitativo formal.
O primeiro nível de validação: qualitativo Este é o “nível” mais simples de validação. A questão é saber se, em linhas gerais, o modelo está se comportando com a realidade. Neste nível, não é necessário levantar os indicadores de desempenho do sistema real em termos quantitativos, somente qualitativos. Por exemplo, neste nível, responder-se-ia às seguintes questões: • O equipamento gargalo obtido no modelo corresponde ao equipamento gargalo real? • O recurso mais utilizado no modelo corresponde ao recurso mais utilizado real? • O recurso menos utilizado no modelo corresponde ao recurso menos utilizado real? • Onde não há filas no modelo, não há filas na realidade? • Onde há muita fila no modelo, há muita fila na realidade? Se a resposta for afirmativa para todas as perguntas, isto é um sinal de que o modelo tem alguma validade qualitativa, e o processo de validação pode continuar nos níveis seguintes. Caso o modelo não tenha validação qualitativa, ele já pode ser considerado inválido sem necessidade de estudos mais aprofundados.
O segundo nível de validação: quantitativo informal Este nível utiliza-se da comparação dos resultados da simulação com dados reais, mas esses dados ou são pontuais (resultados de pequenas amostra) ou são gerados por meio de entrevistas com operadores ou gestores do sistema real. Sua precisão não é necessariamente elevada; contudo, o objetivo é validar os parâmetros por sua ordem de grandeza. Por
exemplo: • A taxa de ocupação do operador A durante um turno de trabalho é cerca de 70%. Se o modelo fornece uma ocupação fora da faixa entre 60 e 80%, ele já poderia ser considerado invalidado ao nível quantitativo informal; • A fila deve ter pico de no máximo cinco pessoas. Se a fila média no modelo é 0 ou algo acima de 20 pessoas, então o modelo pode ser considerado inválido; • A produção diária da fábrica foi de cerca de 150 peças. Se o modelo produz 400 peças por dia, então ele pode ser considerado inválido. Note que o objetivo é, como no primeiro nível de validação, descartar o modelo inválido e dar sustentabilidade para uma validação mais aprofundada no nível seguinte.
O terceiro nível de validação: quantitativo formal Este nível se utiliza de técnicas estatísticas consagradas para a validação das diversas medidas de desempenho, sendo que a mais utilizada é o teste de inferência sobre a diferença entre duas médias de amostras independentes. Este teste é mostrado em detalhes no exercício resolvido 5, mas sua ideia geral é comparar n replicações de uma simulação com n replicações de resultados reais para uma determinada medida de desempenho (há também o teste quando o número de replicações dos dados reais é diferente do número de replicações do modelo). O teste irá mostrar se, estatisticamente com uma certa confiança, os resultados da simulação equivalem ao comportamento real do sistema.
Note que esses níveis só podem ser utilizados se o sistema real existir. Ademais, em um único modelo, todos os níveis podem ser utilizados simultaneamente. Cada um pode, por exemplo, ser utilizado para uma medida de desempenho diferente. Não se deve também esquecer de testar diferentes medidas de desempenho, já que a correspondência de uma medida de desempenho com a realidade não garante a correspondência de todas as medidas de desempenho. Finalmente vale lembrar que, quanto mais se utilizam desses métodos, melhor, pois segundo o artigo “Warnings on Simulation” (BANKS; CHWIF, 2010), “É possível invalidar um modelo de simulação, mas é impossível validá-lo”.
5.5. Validade dos dados Outro tópico extremamente importante e pertinente para a validação e verificação é a validade dos dados. Os dados para simulação podem ser utilizados para três finalidades básicas: construção do modelo conceitual, validação de dados e experimentação. É importante não utilizarmos o mesmo conjunto de dados para construir e testar o modelo (PIDD, 2000). Podemos ainda utilizar dados “históricos” para calibrar o modelo. Por exemplo, os pedidos de entregas de produtos do último ano em uma distribuidora podem ser utilizados como os dados de entrada do modelo; desse modo, não estaríamos utilizando um modelo probabilístico (como discutimos no Capítulo 2), mas dados históricos que representam o ocorrido durante o ano. Consequentemente, as saídas do modelo devem ser compatíveis com o desempenho verificado no sistema. Uma fonte de problemas é a existência de “valores discrepantes”, ououtliers , nos dados colhidos do sistema real (seção 2.3.1). Temos, portanto, que tomar muito cuidado com a análise dos dados de entrada, seguindo sempre a máxima: “Os dados nunca são dados”. Concluindo, não se deve esquecer do princípio GIGO garbage-in, ( garbage-out), ou, “abrasileirando” o termo, LELIS (se “lixo entra, então lixo sai”). Dessa forma, se os dados de entrada do modelo estão incorretos, não há como o melhor dos modelos gerar resultados corretos.
5.6. Exercícios de revisão 1. Um modelo acabou de ser implementado no computador. Você já pode executar a simulação e colher resultados confiáveis? Explique. 2. O que é mais fácil: verificar ou validar um modelo de simulação? Por quê? 3. O princípio “LELIS” diz que se “lixo entra, então lixo sai”. Se meus dados de entrada forem corretos (não forem “lixo”), podemos garantir que não sairá lixo do modelo de simulação? Explique. 4. Voltando ao caso do pub inglês (Figura 3.16), quais hipóteses no modelo são mais “restritivas” e poderiam não validar o modelo se pensarmos na operação de umpub real? 5. Exercício resolvido. Vamos tomar o exemplo de um caso real para ilustrarmos como, na prática, se faz a validação operacional de um modelo de simulação. Neste exercício, o modelo é de uma central de atendimento (oucall center ) com sete PAs (Posições de Atendimento); os tempos entre chegadas sucessivas de chamadas seguem uma distribuição exponencial com média de 36 segundos; os tempos de atendimento seguem uma distribuição Erlang com média de 154 segundos e fatork = 6,41. Os tempos de desistências foram modelados segundo uma distribuição uniforme entre 0 e 60 segundos.
Deseja-se determinar se o modelo tem o mesmo desempenho do nível de atendimento real, definido como o coeficiente das chamadas efetivamente atendidas sobre as chamadas totais. A Tabela 5.1 ilustra 12 dados reais do nível de atendimento e 12 replicações do modelo de simulação, para uma taxa de chegada de chamadas de 100 clientes por hora. Tabela 5.1 – Exercício 5 Mo delo de simulação
Diferença (real-simulado )
Replicação
Dado s reais
1
93%
94%
–1%
2
94%
97%
–3%
3
96%
97%
–1%
4
98%
96%
2%
5
96%
96%
0%
6
100%
96%
4%
7
96%
97%
–1%
8
89%
97%
–8%
9
96%
97%
–1%
10
99%
95%
4%
11
98%
96%
2%
12
94%
96%
–2%
Média
95,7%
96,2%
–0,4%
Desvio-padrão
2,9%
0,9%
3,3%
A partir das informações anteriores, pode-se dizer que o modelo é válido para essa medida de desempenho? Solução: Para respondermos a essa pergunta, diretamente relacionada à validade
operacional do modelo, podemos aplicar o teste estatístico Ade ideia inferência sobre a o diferença entre duas médias de amostras independentes. é tomarmos intervalo de confiança para a diferença entre os dois sistemas (a noção de intervalo de confiança será revisada no Capítulo 6). Se o intervalo contiver o valor zero, então podemos afirmar com nível de confiança 100(1-a)% que as respostas são equivalentes (do sistema real e do modelo de simulação). Neste caso, o intervalo de confiança pode ser construído da seguinte maneira:
Onde:
é a média do resultado obtido a partir da simulação do sistema; é a média do resultado obtido a partir do sistema real; é o desvio-padrão do resultado obtido a partir da simulação do sistema; é o desvio-padrão do resultado obtido a partir do sistema real; n é o número de observações obtidas (deve ser igual, tanto na simulação quanto nos resultados reais); é a distribuição t de Student para 2n-2 graus de liberdade e um nível de
significância de
.
Dessa maneira, para o caso em questão temos os seguintes intervalos de confiança: a) Para 95% de confiança, [–2,3%; 1,5%]; b) Para 99% de confiança, [–3,0%; 2,1%]. Como os dois intervalos contêm o valor zero, podemos afirmar com 99% e 95% de confiança que o modelo é equivalente ao sistema real para esta medida de desempenho (média do nível de atendimento). Observe ainda que o desvio-padrão dos dados reais é maior do que o do modelo de simulação, provavelmente devido a um fator que não foi considerado na simulação ou à presença de valores espúrios (como o valor de 89%, ligeiramente
diferente dos valores obtidos). Dessa maneira, podemos concluir que, até o momento, não podemos aceitar a hipótese de um modelo inválido mas também não podemos aceitar que o modelo seja totalmente válido: é necessário verificar a validade operacional de outras medidas de desempenho, bem como verificar se este somente é válido se a carga do sistema for muito diferente de 100 chamadas por hora. Neste caso, o processo de validação operacional está apenas começando... 6. Foram obtidas oito amostras a partir de um modelo de simulação e de um sistema real, para saber se existem diferenças significativas na produtividade do sistema. Os resultados estão dispostos a seguir (peças/hora): a) Sistema 1 (simulado) {13, 12, 16, 14, 15, 10, 13, 11}; b) Sistema 2 (real) {14, 17, 14, 16, 15, 17, 12, 19}. Pode-se dizer, com 95% de confiança, que o modelo utilizado é válido?
Leitura Complementar
Uma técnica de do verificação e validação simulação quan não se dispõe de dad de os rmodelos eais4 de A literatura sobre verificação e validação (V&V) em simulação descreve várias técnicas além das discutidas neste capítulo, dividindo-as em dois grandes grupos: técnicas descritivas e técnicas prescritivas. O primeiro grupo se concentra em “o que fazer”, e o segundo em “como fazer”. Um exemplo de técnica descritiva é o “Teste de Turing” (Seção 5.4), que propõe a comparação dos resultados de um sistema real com os da sua simulação, sem especificar como isso deve ser feito. Do grupo de técnicas prescritivas, pode-se citar a técnica proposta por Kleijnen (1995), apresentada no exercício 5, da Seção 5.6, que indica claramente uma sequência de passos para sua realização.
Sargent (2000) afirma que os custos da V&V podem ser significativamente altos, especialmente se estamos lidando com modelos de altíssima confiabilidade. Portanto, é imprescindível utilizar técnicas de V&V de fácil aplicação e alta eficiência; caso contrário, sob a pressão do tempo para se completar um estudo de simulação, as atividades de V&V serão as primeiras a serem sacrificadas. As técnicas de V&V podem ser utilizadas em uma destas três situações (KLEIJNEN; BETTONVIL; VAN GROENENDAAL, 1996): 1. Quando não há dados reais de entrada e/ou saída; 2. Quando há somente dados de saída reais; 3. Quando há dados de entrada e saída reais. O exemplo a seguir ilustra o uso de uma técnica simplificada para V&V de modelos enquadrados no primeiro caso (o pior deles).
Imple mentação da téc nica A ideia básica da técnica de V&V proposta parte de uma matriz chamada “matriz de influência causal”, que mapeia as relações de entrada e saída de um modelo de simulação. Os valores possíveis para os elementos da matriz são: –1, +1 ou 0. O valor “–1” representa uma correlação negativa, ou seja, indica que um aumento na entrada causará uma diminuição na saída (e uma diminuição na entrada causará um aumento na saída). O valor “+1” representa uma correlação positiva (um aumento na entrada causará um aumento na saída, e uma diminuição na entrada causará uma diminuição na saída). O valor “0” indica
uma correlação neutra, ou seja, a entrada não afeta a saída ou a afeta de forma pouco significativa. A Tabela 5.2 mostra um exemplo de matriz de influência causal para um sistema em que serão estudadas três entradas e duas saídas. Tabela 5.2 – Exemplo de matriz de influência causal S1
S2
E1
+1
–1
E2
+1
0
E3
0
–1
É interessante destacar que essas correlações podem ser estabelecidas a partir da experiência do analista e de seu conhecimento sobre o sistema em questão. Assim, é possível criar a matriz de influência durante o desenvolvimento do modelo conceitual antes mesmo de sua implementação computacional. De fato, a ideia principal deste método é que as correlações definidas pelo analista sejam comparadas com as que serão obtidas a partir do modelo de simulação. Se a matriz de influência “reproduzir” os resultados do modelo, podemos aumentar nossa confiança sobre o modelo. Se as correlações não forem coerentes, algo está errado: a matriz inicial, o modelo de simulação ou ambos.5 Por fim, como pregamos que os procedimentos de V&V devem ser simples e pouco dispendiosos em termos de tempo; recomendamos selecionar no máximo nove entradas e no
máximo nove saídas relevantes. Essa recomendação segue o princípio estabelecido por Miller (1956), que limita em 9 o total de informações que o ser humano consegue processar em paralelo com sucesso.
Exemplo 5.1: Central telefônica6 Na central de atendimento do TicketFone (Figura 5.3), as chamadas são atendidas por um sistema de direcionamento automático e são encaminhadas para o serviço apropriado: informação, atendimento ao consumidor ou venda de ingressos. Cada serviço é formado por um ou mais postos de atendimentos, sendo que cada posto de atendimento possui um operador de telemarketing. Após o atendimento, o cliente sai do sistema.
Figura 5.3 – Representação esquemática do sistema de atendimento d a TicketFone.
Para este caso, consideram-se duas entradas e três saídas, assim configuradas: Entradas: • E1: número de postos de atendimento para informações; • E2: número de postos de atendimento para venda de ingressos. Saídas: • S1: número de chamadas perdidas; • S2: porcentagem de chamadas atendidas e completadas dentro de dois minutos; • S3: tempo médio de espera total. A matriz de influência causal definida para o sistema é mostrada na Tabela 5.3. Tabela 5.3 – Matriz de influência causal do exemplo S1
S2
S3
E1
-1
+1
-1
E2
-1
+1
-1
A matriz da Tabela 5.3 indica que, quando se aumenta o número de postos de atendimento para informações (E1) ou de venda de ingressos (E2), diminui o número de chamadas
perdidas (S1), aumenta o número de chamadas completadas em até dois minutos (S2) e diminui o tempo médio de espera total (S3). Considerando que são possíveis apenas dois valores para as entradas (quatro ou oito postos de atendimento), teremos quatro cenários ou possibilidades de composição entre os postos de informações e venda de ingressos (E1, E2): (4, 4), (4, 8), (8, 4) e (8, 8). A Tabela 5.4 mostra os resultados das saídas S1, S2 e S3, para três replicações do modelo de simulação do exemplo, para cada um dos cenários. Tabela 5.4 – Resultados do modelo de simulação do exemplo, para os cenários criados
Cenário 1 (4,4)
Cenário 2 (4,8)
Cenário 3 (8,4)
Cenário 4 (8,8)
S1 = 644 chamadas
S1 = 397 chamadas
S1 = 406 chamadas
S1 = 76 chamadas
S2= 63% S3 = 1,44 minuto
S2=77% S3 = 0,96 minuto
S2=80% S3 = 0,86 minuto
S2=89% S3 = 0,52 minuto
Note, pela Tabela 5.4, que o desempenho do sistema melhora quando o número de linhas aumenta: o número de chamadas perdidas (S1) e o tempo médio de espera total (S3) diminuem, enquanto a porcentagem das chamadas atendidas dentro de dois minutos (S2) aumenta. Como o comportamento do modelo refletiu o esperado pela matriz de influência causal, pode-se, portanto, aumentar a confiança no modelo. É importante ressaltar que a técnica
descrita aqui não garante um modelo de simulação válido (aliás, nenhuma técnica de V&V garante!), mas se trata de uma técnica de aplicação relativamente simples e que pode ser automatizada no computador.
Referências bibliográficas BANKS, J.; CHWIF, L. Warnings about simulation. Journal of Simulation, n. 5, p. 279291, 2010. European KLEIJNEN, Jack P. C. Verification and validation of simulation models. Journal of Operational Research, v. 82, n. 1, p. 145-162, 1995. KLEIJNEN, Jack P. C.; BETTONVIL, Bert; VAN GROENENDAAL, Willem J. H.. Validation of Trace-driven Simulation Models: Regression Analysis Revisited. Proceedings of the 1996 Winter Simulation Conference, 1996. p. 352-359. KLEIJNEN, Jack P. C. Validation of Models: Statistical Techniques and Data Availability. Proceedings of the 1999 Winter Simulation Conference, p. 647-654, 1999. MILLER, George A. The Magical Number Seven, Plus or Minus Two: Some Limits o Our Capacity for Processing Information.The Psychological Review, v. 63, n. 2, p. 8197, 1956. PIDD, Michael. Tools for thinking: modelling in management science. 4. ed. Chichester: John Wiley & Sons, 2000. ROBINSON, Stewart. Simulation: the practice of model development and use. Chichester : John Wiley & Sons, 2004. SARGENT, Robert G. Verification, validation and accreditation ofsimulation models. Proceedings of the 2000 Winter Simulation Conference, p. 50-59, 2000.
Mind , n. 59, 1950. p. 433-460. TURING, Alan M. Computing machinery and intelligence.
Capítulo 6
Dimensionamento de corridas e análise dos resultados de um modelo de simulação
6.1. Introdução Ao final da etapa de verificação e validação conceitual, o modelo de simulação torna-se operacional , estando pronto para ser utilizado. Temos agora uma fonte poderosa de experimentos estatísticos utilizados no processo de análise do comportamento do sistema. Considere, por exemplo, um sistema como o do pub (apresentado no Capítulo 3). Poderíamos determinar o que ocorre no sistema se, em um certo dia, a taxa de chegadas de clientes aumentar muito ou, ao contrário, cair muito. Dessa forma, estaríamos realizando diferentes experimentos de simulação com o nosso modelo, gerados a partir de questões do tipo “O que ocorre se...”. Contudo, como as entradas da simulação são processos aleatórios, em cada replicação ou experimento realizado teremos saídas cujos valores também serão aleatórios (KELTON, SADOWSKI, R.; SADOWSKI, D. , 1998, sugerem o termo RIRO – random-in, random-out –, para descrever o que ocorre na simulação). Entradas aleatórias implicam, portanto, saídas aleatórias. Consequentemente, não podemos concluir muita coisa a partir de uma única replicação da simulação. Se estivermos estudando o tempo médio que os clientes permanecem na fila de entrada do pub, em uma primeira replicação da simulação, teremos uma estimativa T1 para este valor. Se rodarmos n vezes o modelo, teremos um conjunto de valoresT1,T2,...,Tn, cuja média pode representar um bom estimador para o tempo médio em fila. A precisão desse valor pode ser avaliada por sua variância, de modo que, quanto menor a variância, mais precisa a estimação. Temos, portanto, duas
questões importantes quando estamos obtendo resultados de um modelo de simulação: qual a variância estimada e quantas observações devemos realizar para atingirmos uma dada precisão. O objetivo deste capítulo é discutir como construir os experimentos e quais as técnicas disponíveis para analisarmos as saídas obtidas a partir do modelo de simulação, de modo que as medidas de desempenho possam ser estimadas dentro de uma precisão desejada. O processo de análise dos resultados é, geralmente, menos dispendioso do que os processos vistos anteriormente, como a modelagem, a construção do modelo computacional, a verificação, validação etc. Agora é a vez de o modelo trabalhar! Os pacotes comerciais de simulação possuem diversas facilidades para a construção de cenários e para o tratamento estatístico dos resultados. Boas análises permitem melhores condições e mais segurança para a tomada de decisão. Alguns conceitos importantes são pré-requisitos para entendermos as técnicas de análise dos resultados. Assim, antes de prosseguirmos na análise dos dados propriamente dita, discutiremos na primeira parte deste capítulo os seguintes conceitos: • O que é regime transitório e o que é regime permanente; • O que é simulação terminal e o que é simulação em regime; • O que são medidas de desempenho; • O que é replicação e o que é “rodada”; • O que é intervalo de confiança.
A segunda parte deste capítulo, a partir da Seção 6.7, descreve a metodologia de análise dos dados de saída em forma de tutorial, de modo que possam ser utilizados mais facilmente nos futuros projetos.
6.2. Regime transitório vs. regime permanente Considere que o pub do Exemplo 3.2 está fechado e, neste exato momento, a porta é aberta para a entrada dos primeiros clientes. Como o número de clientes no lado de fora era grande, repentinamente, opub sofre um problema de “congestionamento” de clientes. Tratase de um período curto, mas confuso nopub. Dizemos que, durante esse período, opub está em regime transitóri o, ou seja, o desempenho do sistema está fortemente relacionado com as suas condições iniciais . Passado algum tempo, as coisas se acalmam e opub volta a funcionar como em todas as noites. Dizemos que, agora, o pub está em regime permanente, ou seja, as condições iniciais não afetam mais o comportamento do sistema. O estudo de sistemas durante o regime transitório é mais complexo e, via de regra, pouco conclusivo, pois as condições iniciais de um sistema nem sempre são as mesmas. Por outro lado, como veremos adiante, as condições iniciais podem afetar perigosamente os resultados de uma simulação.
Exemplo 6.1: Jogo de dados Considere um dado de seis faces. Como a probabilidade1 de ocorrência de cada face é 1/6, espera-se que, após o lançamento do dado um bom número de vezes, a média dos valores obtidos seja de:
(6.1)
(6.2)
Considere que temos um dado velho, não viciado (em nada...), e vamos utilizá-lo para “simular” o processo de lançamentos. No nosso primeiro lançamento, obtemos o número 1. Assim, a média dos lançamentos é 1. No segundo lançamento, obtemos, pasmem, o número 1 de novo. A nossa média continua igual a 1. A Tabela 6.1 representa os resultados dos nossos primeiros 10 lançamentos e a média obtida até então. Aparentemente, não tivemos muito sucesso em obter a tal média 3,5 nos primeiros 10 lançamentos – alguns chamariam isso de “azar”. Para entendermos melhor como se comporta o sistema, vamos construir um gráfico. No eixo vertical, colocaremos a média acumulada obtida a cada lançamento, e no eixo horizontal, o respectivo lançamento. Note, pela Figura 6.1, o comportamento da média: visualmente, ela ainda não convergiu para o valor de 3,5.
Devemos lançar mais vezes o dado, de modo a melhorar o resultado. Após 150 lançamentos, a média obtida foi de 3,507, ou um erro absoluto de 0,007. Pela Figura 6.2 podemos acompanhar o comportamento da média acumulada ao longo dos 150 lançamentos. Tabela 6.1 – Primeiros dez lançamentos do dado Lançamento
NúmeroObtido
MédiaAcumulada
1
1
1/1=1,0
2
1
(1+1)/2=1,0
3
4
(1+1+4)/3=2,0
4 5
6 6
(1+1+4+6)/4=3,0 3,6
6
5
3,8
7
2
3,6
8
1
3,5
9
2
3,3
10
1
3,1
Notamos pela Figura 6.2 como a média dos primeiros 50 lançamentos é influenciada pelo comportamento inicial do sistema. Na figura, chamamos o primeiro trecho deregime
transitório , pois as condições iniciais (no caso, “poucos lançamentos”) afetam o resultado da média. Neste trecho, a média é calculada com base em um número pequeno de valores.
Figura 6.1 – Comportamento da média acumulada dos valores obtidos após 10 lançamentos de um dado não viciado.
Figura 6.2 – Comportamento da média acumulada dos valores obtidos após 150 lançamentos de um dado não viciado.
A partir do lançamento 80, o sistema já se comporta como o esperado, estando a média muito próxima de 3,5. A partir desse ponto, dizemos que o sistema está em regime ermanente, pois os efeitos das condições iniciais do sistema já não afetam o seu desempenho. Concluindo, para atingirmos uma boa estimativa do que acontece em regime permanente, temos três alternativas: 1. Simular o sistema por um período muito longo de modo que o número de amostras em
regime transitório seja desprezível em relação ao número de amostras em regime permanente (jogar mais vezes o dado); 2. Eliminar o período transitório através de alguma técnica apropriada. Isso será mais bem discutido adiante; 3. Iniciar o sistema já em um estado dentro do regime permanente, o que equivale, no exemplo do dado, a considerar a média inicial igual a 3,5.
6.3. Simulação terminal vs. simulação não terminal Quando estudamos a simulação dopub, é natural pressupor que o sistema deva ser simulado por um turno inteiro de trabalho. Se opub abre às 12h e fecha, pelas leis inglesas, pontualmente às 23h, a simulação deve ser feita para esse mesmo intervalo de tempo. Esse tipo de simulação é conhecido como simulação terminal , e não há dúvidas quanto aos instantes de tempo de início e fim da simulação. Por outro lado, existem sistemas em que não temos certeza sobre o momento em que a simulação deve ser terminada. Por exemplo, considere uma usina siderúrgica que opera 24 horas por dia, sete dias por semana. Neste caso, precisamos de uma simulação para um horizonte de tempo longo ou, tecnicamente,infinito . Esse tipo de simulação é conhecida como simulação não terminal , ou simulação em regime, e não temos certeza, a priori , sobre quanto tempo ela deve durar (mas sabemos que deve ser um longo tempo). Às vezes, apesar de o sistema possuir um “turno” claro de operação, opta-se pela simulação em regime. Por exemplo, considere uma linha de montagem de fogões com apenas um turno de trabalho diário de oito horas seguidas. Se, ao final do período, os processos são momentaneamente paralisados, de tal forma que no dia seguinte são retomados no mesmo ponto, este é um sistema que deve ser simulado em regime, pois a “parada” que ocorre ao final do turno não é, do ponto de vista da simulação, uma parada final do sistema (o sistema não vai ser reconfigurado após esta parada). A identificação do tipo de simulação com que estamos lidando implica metodologias
diferentes na análise das saídas do modelo. A simulação terminal é, geralmente, mais fácil de ser conduzida e analisada. Cada execução do modelo fornece um conjunto de resultados. Com um número adequado de execuções, podemos realizar as estimativas desejadas a partir dos dados obtidos. A simulação em regime torna as coisas mais complicadas, pois precisamos analisar o comportamento da simulação para identificarmos cuidadosamente a duração dos regimes transitório e permanente do sistema.
6.4. Escolhendo as medidas d e desempenho ad equadas No Capítulo 2, discutimos os cuidados necessários ao escolhermos os parâmetros de entrada do modelo. Devemos diferenciar os que são parâmetros de “entrada” daqueles que são parâmetros de desempenho ou “saída” do sistema. Para a análise dos resultados, o problema é escolher corretamente os parâmetros que utilizaremos como medidas de desempenho do sistema. Para reduzirmos a possibilidade de erro, não podemos perder o foco da questão que está sendo apresentada ao modelo. Considere novamente o exemplo do pub. Quais seriam as medidas adequadas de desempenho desse sistema? Se o proprietário está preocupado com os clientes que têm de esperar por atendimento, algumas medidas de desempenho poderiam ser: • A probabilidade de que um cliente aguarde mais do que três minutos por atendimento; • O número de clientes que desistem do atendimento devido ao excesso de clientes na fila de espera por bebidas. O leitor poderia acrescentar a média do tempo de atendimento como medida de desempenho. Com certeza este é um parâmetro “interessante”, e devemos utilizá-lo na nossa análise. Mas ele responde à dúvida do proprietário do pub? Note que calcular a média e a variância do tempo de atendimento serve paraaumentarmos o nosso conhecimento sobre o sistema, mas não para atendermos à preocupação principal do proprietário, que é a demora que alguns clientes sentem no atendimento dos seus pedidos. De novo, o leitor é convidado
a lembrar-se do primeiro capítulo deste livro, em que discutimos as limitações ao olharmos o mundo sempre pela média... Portanto, a primeira etapa para realizarmos uma boa análise de resultados é escolhermos as medidas de desempenho do sistema a partir da definição dos objetivos da simulação.
6.5. Qual a diferença entre replicação e rodada? Existe alguma confusão entre esses termos: quando falamos emrodada, estamos nos referindo ao que ocorre quando selecionamos ou iniciamos o comando que executa a simulação no computador. Uma rodada pode envolver várias replicações. Areplicação é uma repetição da simulação do modelo, com a mesma configuração, a mesma duração e com os mesmos parâmetros de entrada, mas com uma semente de geração dos números aleatórios diferente. Desse modo, apesar de os dados e os parâmetros de entrada serem os mesmos, como os números aleatórios gerados são diferentes, cada replicação terá uma saída diferente também. (Apêndice III).
6.6. Você, realmente, confia nos resultados? Um modelo de simulação lida com números aleatórios. Seria extremamente imprudente de nossa parte se tirássemos conclusões de um modelo a partir de apenas uma rodada de simulação. Cada rodada do modelo deve ser entendida como um novo “experimento”. Considere, por exemplo, um posto bancário, com fila única de clientes e apenas um caixa. Construído um modelo de simulação do sistema, realizou-se uma replicação. Nesta replicação, o número médio de pessoas na fila foi de 6,72 pessoas, um número alto (mesmo para o nosso banco). A seguir, foram realizadas mais nove replicações, obtendo-se os valores da Tabela 6.2. Note que a média das 10 replicações foi de 1,54 pessoa, um valor quatro vezes menor do que o encontrado na primeira replicação! A pergunta fundamental é: podemosconfiar na média de 1,54 pessoa? Essa é uma questão delicada, pois uma coisa é a confiança estatística , e outra é a precisão. Quando falamos em confiança estatística, estamos nos referindo aointervalo de confiança , ou seja, um intervalo de valores que contém a média da população, com uma certa probabilidade. Quanto maior o valor dessa probabilidade, maior a confiança estatística de que a média da população encontra-se nesse intervalo construído. Já quando falamos em precisão, estamos nos referindo ao tamanho do intervalo, pois de nada adianta uma alta confiança estatística se o tamanho do intervalo é tão grande que não podemos concluir nada sobre a média da população. Quando lemos no jornal que determinado candidato tem 35% das intenções de
voto, por exemplo, este valor representa uma estimativa para a proporção de votos do candidato. Já nos acostumamos com o fato de que, associada a essa informação, o jornal explica que a “margem de erro” da pesquisa é de 3% “para mais ou para menos”. Assim, o candidato pode ter uma votação dentre 32% e 38% dos eleitores. O que o jornal raramente informa é a confiança da pesquisa. Usualmente, o valor adotado e não informado é de 95%, e, neste caso, o intervalo de confiança para a proporção seria de:
(6.3)
Portanto, essa pesquisa eleitoral tem apenas 5% de chance de estar errada. Um intervalo de confiança 100(1-α% para a média de uma população é construído através da equação (Devore, 2000):
(6.4)
ou:
(6.5)
onde: é a média da amostra; é a metade do tamanho do intervalo de confiança, aqui denominada precisão; éo
percentil da distribuição
t de Student comn-1 graus de
liberdade;
s é o desvio-padrão da amostra; n é o número de dados da amostra. A partir das médias relacionadas na Tabela 6.2, construímos os intervalos de 99%, 95%, 90% e 80% de confiança, relacionados na Tabela 6.3.
Tabela 6.2 – Média de pessoas em fila para cada replicação realizada Replicação
Médiadepesso asemfila
1
6,72
2
2,00
3
0,38
4
1,28
5
0,46
6
0,19
7 8
0,14 1,30
9
0,12
10
2,85
Média
1,54
Desvio-padrão
2,03
Tabela 6.3 – Intervalos de confiança construídos para o exemplo Precisão (metade do intervalo)
n
Confiança
α
Intervalo de confiança da média
10
99%
0,01
3,25
2,09
–0,55≤µ≤3,63
10
95%
0,05
2,26
1,45
–0,09≤µ≤3,00
10
90%
0,10
1,83
1,18
–0,37≤µ≤2,72
10
80%
0,20
1,38
0,89
–0,65≤µ≤2,43
De acordo com a Tabela 6.3, descobrimos que o intervalo –0,55 ≤ µ ≤ 3,63 contém a média do número de pessoas fila,95%, como99% de confiança. Percebadoque, ao diminuirmos a confiança, passando de 99%em para tamanho total da metade intervalo diminuiu de 2,09 para 1,45, indicando uma precisãomaior. Uma regra de causa-efeito diz que, para aumentarmos a precisão dos dados, devemos aumentar o tamanho da amostra (número de replicações, no nosso caso). A Tabela 6.4 representa os resultados para o número médio de pessoas em fila do mesmo modelo de simulação, mas agora com 20 replicações.2 Com o aumento do número de replicações, a média da amostra é agora de 1,08 e o desvio-padrão é de 1,49. Tabela 6.4 – Média de pessoas em fila para cada replicação realizada Replicação
Médiadepesso asemfila
1
6,72
2
2,00
3
0,38
4
1,28
5
0,46
6
0,19
7
0,14
8
1,30
9 10
0,12 2,85
11
0,80
12
0,75
13
1,18
14
0,60
15
0,50
16
0,40
17
0,30
18
0,60
19
0,60
20
0,50
Média
1,08
Desvio-padrão
1,49
Tabela 6.5 – Intervalos de confiança construídos para o exemplo
n
Precisão (metade do intervalo)
Confiança
Intervalo de confiança da média
α
20
99%
0,01
2,86
0,95
0,13≤µ2,03
20
95%
0,05
2,09
0,70
0,39≤µ1,78
20
90%
0,10
1,73
0,57
0,51≤µ1,66
20
80%
0,20
1,33
0,44
0,64≤µ1,52
A Tabela 6.5 resume os resultados obtidos para os intervalos de confiança da média de pessoas em fila, a partir das 20 replicações relacionadas na Tabela 6.4. Perceba como os intervalos diminuíram sensivelmente, melhorando a precisão do resultado.
Neste momento, cabe a pergunta: quantas replicações devemos realizar para obtermos uma precisão igual a um valor h*? Uma técnica possível é utilizar uma amostra-piloto. Basicamente, devemos extrair da população (no nosso caso, “replicar” o modelo) um número n de amostras e construir o intervalo de confiança do parâmetro desejado. Se a precisão h do intervalo obtido ainda não for menor do que a desejadah*, então, o número de amostras (replicações) necessário pode ser obtido pela seguinte expressão:
(6.6)
onde:
corresponde ao arredondamento para o número inteiro acima de x.
No caso do exemplo, assuma que desejamos construir um intervalo com confiança de 99% e precisão de 0,5. Utilizando a equação (6.6), temos:
(6.7)
Portanto, se realizarmos 73 replicações, teremos um intervalo com a precisão desejada. Como já realizamos 20 replicações, faltam outras 53. Consideradas as 73 replicações (Tabela 6.6), o número médio de pessoas em fila foi de 0,76 pessoa, e o desvio-padrão de 1,40 pessoa. Lembre-se de que o grau de confiança desejado é de 99%; portanto, α = 0,01. Assim, como n = 73 replicações, obtemos da tabela da distribuição t de Student:
(6.8)
E o tamanho da metade do intervalo fica:
(6.9)
Este valor é menor do que a precisão definida de 0,5 pessoa em fila. A partir desse último valor, podemos construir o seguinte intervalo de confiança para a média de pessoas em fila:
(6.10)
Concluindo, existe uma probabilidade de 99% de que o intervalo [0,33; 1,19] contenha o número médio de pessoas em fila. Agora temos uma estimativa precisa e confiável para o número médio de pessoas em fila (compare esse resultado com o valor obtido na primeira replicação do modelo). A análise de dados de saída depende do tipo de sistema que estamos estudando, se terminal ou não terminal. A partir deste ponto, dividiremos o estudo em duas partes: inicialmente, os sistemas terminais – de análise mais simples –, e, posteriormente, os sistemas em regime. Tabela 6.6 – Média de pessoas em fila para cada replicação Replicação
Média de pesso as em fila
1
6,72
Replicação 38
Média de pesso as em fila 0,46
2
2,00
39
0,49
3
0,38
40
0,34
4
1,28
41
3,32
5
0,46
42
1,78
6
0,19
43
0,12
7
0,14
44
0,74
8
1,30
45
0,09
9
0,12
46
0,01
10 11
2,85 0,80
47 48
0,11 0,87
12
0,75
49
0,02
13
1,18
50
2,72
14
0,60
51
0,21
15
0,50
52
0,55
16
0,40
53
0,38
17
0,30
54
0,20
18
0,60
55
0,49
19
0,60
56
0,13
20
0,50
57
0,02
21
1,21
58
0,55
22
1,55
59
0,04
23
0,23
60
0,44
24
0,14
61
6,08
25
0,32
62
1,54
26
0,01
63
0,08
27
0,13
64
1,16
28
0,15
65
0,04
29
0,02
66
0,14
30
1,72
67
0,09
31
0,15
68
0,36
32
0,40
69
0,11
33
0,48
70
1,78
34
0,25
71
0,27
35
0,18
72
0,09
36
0,23
37
0,01
73
1,17
Média
0,76
Desvio-padrão
1,40
6.7. Análise d os d ados de saíd a: sistemas terminais Os sistemas terminais são aqueles que têm um momento exato no tempo para finalizar a simulação. Neste tipo de sistema, dois valores precisam ser determinados: a duração da simulação e o número de replicações. A duração da simulação é determinada pela duração do período de operação do próprio sistema real. Por exemplo, um supermercado que fica aberto das 9h às 22h deve ser simulado por um período de 13 horas (= 22 – 9). O número de replicações do modelo depende do grau de confiança com que desejamos trabalhar. A análise de dados de sistemas terminais pode ser dividida em sete etapas: • Estabelecer as medidas de desempenho adequadas; • Escolher a confiança estatística e a precisão com que se pretende trabalhar; • Definir, a partir da observação do sistema real, o tempo de simulação; • Construir a “amostra-piloto” e estimar o intervalo de confiança; • Determinar o número de replicações necessárias; • Rodar o modelo novamente; • Calcular o novo intervalo de confiança.
Exemplo 6.2: Verificação de crédito em uma loja de departamentos Em uma central de financiamento de uma loja de departamentos, o tempo entre chegadas sucessivas de clientes é normalmente distribuído com média de cinco minutos e desvio-
padrão de 2,2 minutos. Existem três atendentes que realizam a pré-análise. O tempo de préanálise é exponencialmente distribuído com média de oito minutos. Enquanto a atendente está realizando a pré-análise do cliente, ela não pode atender a outro cliente. Os clientes que chegam quando todas as atendentes estão ocupadas aguardam em fila única. Após a préanálise, 70% dos clientes são encaminhados ao gerente, que finaliza o processo de financiamento. Os outros 30% não têm o financiamento aceito. O gerente leva 2,5 minutos, na maior parte das vezes, para atender aos clientes, segundo uma distribuição triangular em que o menor valor é de 0,5 minuto e o maior valor é de cinco minutos. A central funciona diariamente das 10h30 às 22h. A loja pretende estudar o tempo médio que um cliente gasta no sistema. (O ACD deste exemplo está representado na Figura 6.3.)
Figura 6.3 – ACD do exemplo de sistema terminal.
6.7.1. Estabelecer as medidas de desempenho adequadas O objetivo da loja já determina a medida de desempenho mais adequada: tempo médio
que um pedido aceito permanece no sistema.
6.7.2. Escolher a confiança estatística e a precisão desejada Vamos trabalhar com uma confiança estatística de 95% (portanto α = 0,05) e com uma precisão tal que h* seja de, no máximo, 0,5 minuto.
6.7.3. Construir a amostra-piloto e estimar o intervalo de confiança Vamos rodar o modelo com poucas replicações de modo a obtermos uma amostra-piloto. Neste exemplo, vamos rodá-lo com 10 replicações (modelos mais complexos podem necessitar de mais replicações: 15, 20...). A Tabela 6.7 apresenta os resultados obtidos para o tempo médio de permanência no sistema para cada replicação. Tabela 6.7 – Dados de saída do modelo de exemplo Replicação
Médiado tempo no sistema(min. )
1
11,29
2
10,82
3
11,87
4
9,54
5
8,94
6
10,22
7
12,48
8
11,36
9
11,03
10
11,98
Média
10,95
Desvio-padrão
1,11
Através da amostra-piloto, podemos construir um intervalo de confiança para a média obtida. Com α = 0,05 en = 10 replicações, temos, da tabela da distribuição de t de Student:
(6.11)
O tamanho da metade do intervalo fica:
(6.12)
Esse valor é maior do que a precisão desejada de 0,5 minuto. A partir desse último valor, podemos construir o seguinte intervalo de confiança para a média:
(6.13)
Portanto, existe uma probabilidade de 95% de que o intervalo [10,16; 11,75] contenha a média do tempo de espera no sistema.
6.7.4. Determinar o número de replicações necessárias Como não atingimos a precisão desejada (0,5 min), devemos aumentar o número de replicações. A partir da amostra-piloto, podemos determinar o número de replicações necessárias pela expressão:
(6.14)
6.7.5 . Rodar o mo delo novamente Neste momento, temos duas possibilidades: ou rodamos o modelo com 26 replicações e descartamos a amostra- -piloto, ou rodamos mais 16 replicações e aproveitamos as 10 replicações amostra-piloto. parece aleatórios. mais prática; devemosa lembrar de da alterar a semente A do segunda gerador opção de números Se contudo, não alterarmos semente, as 10 primeiras replicações serão idênticas àquelas da amostra-piloto e não teremos seis replicações, de fato, novas. Muita atenção: esse tipo de informação nem sempre é de fácil verificação nos simuladores comerciais. (A Tabela 6.8 apresenta os resultados obtidos para a média do tempo de espera no sistema em cada uma das 26 replicações.) Tabela 6.8 – Dados de saída do modelo de exemplo (26 replicações) Replicação 1
Médiado tempo no sistema(min. ) 11,29
2
10,82
3
11,87
4
9,54
5
8,94
6
10,22
7
12,48
8
11,36
9
11,03
10 11
11,98 9,87
12
10,18
13
10,02
14
9,09
15
8,95
16
9,98
17
10,29
18
9,84
19
11,97
20
10,05
21
10,40
22
10,27
23
10,50
24
12,96
25
10,60
26
11,52
Média Desvio-padrão
10,62 1,06
6.7.6. Calcular o novo intervalo de confiança A partir da nova amostra de valores, podemos calcular o novo intervalo de confiança. Com α = 0,05 en = 26 replicações, temos, da tabela da distribuição do t de Student:
(6.15)
E a precisão do intervalo fica:
(6.16)
A precisão está, portanto, dentro do valor estipulado de 0,5 minuto. Caso esse valor não tivesse sido atingido, deveríamos replicar mais vezes o modelo. A partir da precisão calculada em (6.16), podemos construir o intervalo de confiança definitivo:
(6.17)
Concluindo, existe uma probabilidade de 95% de que o intervalo [10,39; 10,84] contenha a média do tempo de espera no sistema.
6.8. Análise dos dados de saída: si stemas não terminais Os sistemas não terminais são aqueles em que não temos um instante exato para o término da simulação. Portanto, a primeira questão que deve ser respondida é: Por “ quanto tempo cada replicação deve ser executada?”. Neste tipo de sistema, a simulação deve ser executada de modo que os dados de saída sejam obrigatoriamente coletados durante o estado de regime permanente. Como discutido na Seção 6.2, existem três técnicas para se garantir a coleta de dados durante o estado em regime permanente: 1. Começar a simulação em um estado próximo daquele esperado em regime permanente;
2. Rodar o modelo por um tempo de simulação longo; 3. Eliminar, dos dados de saída, todos os valores gerados durante o período transitório.
6.8.1. Estabelecer as condições iniciais do sistema próximas daquelas encontradas em regime permanente Em modelos de simulação, é comum considerarmos que, no início da simulação, o sistema está vazio e livre. Naturalmente, esse estado inicial “vazio” causará algum impacto negativo no tempo necessário para atingirmos o regime permanente, como ocorreu durante o exemplo do jogo de dados (Fig. 6.2). Se, por outro lado, estabelecermos as condições iniciais do sistema de modo que a simulação inicie já configurada para uma situação em
regime permanente, o problema da determinação do regime transitório é sanado. No exemplo do pub (Cap. 3), a simulação poderia iniciar com algumas entidades já presentes no sistema: copos cheios, copos vazios, clientes bebendo, clientes em espera etc. Na prática, essa técnica dificilmente pode ser aplicada para modelos de sistemas que ainda não existem na realidade, pois, nestes casos, não conhecemos,a priori , o estado do sistema em regime permanente.
6.8.2 . Rodar o modelo por u m tempo de simul ação longo Em tese, ao rodarmos a simulação por um período muito grande, estamos minimizando os efeitos das condições iniciais do sistema. Contudo, em modelos complexos, um tempo de simulação muito longo pode ser proibitivo sob o ponto de vista dos recursos computacionais necessários.
6.8.3 . Eliminar do s dad os de sa ída todos o s valores gerados d urante o eríodo de aquecimento ou “warm-up” Nesta técnica, a simulação ocorre normalmente durante o período inicial em que não são coletadas estatísticas. É como se a simulação estivesse em umperíodo de aquecimento para que pudesse ser utilizada logo em seguida (algo semelhante a um automóvel antigo que deve ser aquecido alguns instantes pela manhã para que possa ser utilizado nas ruas).
Diversos autores propuseram técnicas para a determinação do tempo de aquecimento (ver Goldsman, 1992, ou Robinson, 2004, para uma lista de bibliografias disponíveis sobre o tema). O modo mais “prático” para a determinação do tempo dewarm-up é através da “observação”. Determinados os parâmetros de análise, são construídos gráficos com os valores observados desses parâmetros em função do tempo. De posse desses gráficos, tentase determinar a partir de que momento o parâmetro parece não ser mais influenciado pelas condições iniciais do sistema.
Exemplo 6.3: Linha de produção Em uma linha de produção de um determinado produto, para que ele possa ser produzido, uma peça deve passar por 10 operações executadas em máquinas automáticas distintas (Fig. 6.4). Os tempos de operação nas máquinas são todos normalmente distribuídos com média de 0,9 minuto e desvio-padrão de 0,3 minuto. As peças chegam à linha em um intervalo constante de tempo igual a um minuto. O gerente da linha está preocupado com o tempo total de produção. Nas palavras dele, “Se o produto passa por 10 máquinas, que levam 0,9 minuto cada uma, então era de se esperar que o tempo total de produção fosse de 0,9 x 10 = 9 minutos, em média. Mas, hoje, estamos operando em 15 minutos, cerca de 50% mais lentos!”.
Figura 6.4 – Problema da linha de p roduçã o.
Um modelo de simulação foi construído, e o nosso objetivo inicial é determinar qual o tempo necessário de warm-up. Inicialmente, deve-se executar o modelo por um tempo suficientemente longo para que o sistema atinja as suas condições típicas de regime permanente. Como regra prática, o estudo do tempo de warm-up é feito a partir de um número mínimo de replicações, geralmente 5, pois a saída do modelo tende a ser muito caótica, dificultando a análise a partir de apenas uma única replicação. Alguns resultados das primeiras cinco replicações (600 minutos de simulação) estão representados na Tabela 6.9. Tabela 6.9 – Resultados obtidos a partir de uma rodada com cinco replicações do exemplo da linha de produção Tempo médio de produção (min.) Tempo de simulação (min.)
Replicações
1
2
3
4
5
Média
10
0,00
0,00
0,00
0,00
0,00
0,00
20
3,00
3,06
1,98
2,03
2,92
2,60
30
9,62
9,60
9,79
9,98
9,84
9,76
40
10,82
11,26
10,75
11,64
11,39
11,17
50
11,37
12,87
11,26
11,66
11,19
11,67
60
12,47
13,34
12,04
11,76
10,91
12,10
70
13,33
14,78
13,29
12,70
11,03
13,03
80 90
13,57 12,51
14,08 14,23
13,91 14,47
12,68 12,28
12,00 12,07
13,25 13,11
580
15,47
14,71
15,07
15,79
13,79
14,97
590
15,26
14,87
15,82
16,60
13,17
15,14
600
15,08
14,61
15,99
16,97
12,85
15,10
Olhando mais atentamente para os dados da Tabela 6.9, notamos que os primeiros valores são, de fato, inferiores aos valores observados no estado de regime permanente, nas linhas finais da tabela. A explicação para esse fenômeno é a seguinte: repare que a linha de
produção possui 10 máquinas, e, se você é a primeira peça a ser produzida, então, você encontrará um sistema vazio e sem filas. As peças subsequentes encontrarão também o sistema ainda vazio, mas a chance de que alguma peça encontre fila de espera em alguma máquina vai aumentando à medida que aumentam as peças em processamento simultâneo na linha. Quando a operação entra em regime permanente, praticamente toda peça produzida aguarda algum tempo em fila de alguma máquina. A última coluna da Tabela 6.9 apresenta as médias do tempo de produção para cada instante da simulação. Os valores da Tabela 6.9 estão representados graficamente na Figura 6.5 para os primeiros 500 minutos de simulação. Pela Figura 6.5, podemos facilmente notar que a curva da média das replicações “suavizou” e facilitou a análise do comportamento dos tempos de produção obtidos pelas cinco replicações. Adotando uma postura “conservadora”, o período de warm-up dura os primeiros 250 minutos, pois a partir deste instante a curva não aparenta mais tendência clara de crescimento ou diminuição, apenas oscila entre valores limites máximos e mínimos. Além da média aritmética das replicações, outra técnica usual é a do agrupamento dos dados coletados em conjuntos menores. A média móvel de tamanho m de uma série de dados é definida pela expressão:
Figura 6.5 – Tempos de produção ob tidos a partir de cinco replicações e d e suas médias para o exemplo da linha de rodução
(6.18)
A média móvel é uma das ferramentas mais comuns para previsão de séries temporais. Considere, por exemplo, uma série histórica que represente o preço de fechamento de uma ação na bolsa de valores ao longo do último ano. É natural pressupor que o comportamento do preço dessa ação seja afetado pelas condições externas próximas à data atual e que, a cada dia do ano, esse preço deve exibir um comportamento semelhante ao que ocorre nas datas vizinhas. O preço da ação no final do ano teria, portanto, pouca correlação com o preço da ação praticado no início do ano. Essa é a ideia por trás da utilização da média móvel: calcular a média de uma “janela” dem pontos que se movimenta ao longo do tempo, de modo a “focalizar” a média na vizinhança de cada ponto. Na determinação do tempo de warm-up, podemos utilizar a média móvel para identificar um agrupamento de pontos (o “janela”) que caracterize melhor o início do estado de regime permanente do sistema. A Tabela 6.10 relaciona as médias móveis (param = 2 e m = 5) dos tempos de produção obtidos a partir das cinco replicações do modelo da linha de produção. Cabe ressaltar que o cálculo da média móvel com uma janela m só é possível a partir da m-ésima observação, pois, para calcular a média móvel, por exemplo para m = 2, precisamos que ao menos duas observações já tenham ocorrido. Tabela 6.10 – Médias móveis (m = 2 e m = 5) dos tempos de produção obtidos a partir da simulação de cinco replicações do exemplo da linha de produção Tempos de produção
Tempo de simulação
Média das cinco replicações
Média móvel
m =2
m =5
0,00
10
20
2,60
1,30
30
9,76
6,18
40
11,17
10,47
50
11,67
11,42
60
12,10
11,89
7,04
70
13,03
12,56
9,46
80
13,25
13,14
11,55
90
13,11
13,18
12,24
100
13,24
13,18
12,63
110
13,62
13,43
12,95
A Figura 6.6 representa os gráficos construídos para a média (semelhante ao da Figura 6.5) e médias móveis representadas na Tabela 6.10.
Figura 6.6 – Tempos de produção ajustados por sua média, média móvel com m = 2 e média móvel com m = 5.
Como se pode perceber pela Figura 6.6, a média móvel “suaviza” a curva da média dos tempos de produção. Com o aumento da janelam de 2 para 5, notamos uma maior suavização da curva, pois um número maior de observações do período inicial será
descartado, “jogando fora” o regime transitório, e mais pontos serão utilizados no cálculo da média, reduzindo a influência de “picos”, ou “vales”, isolados da curva média. A identificação do tempo de warm-up fica, assim, facilitada quando utilizamos a média móvel, devido ao ajuste nos dados obtidos através do modelo de simulação.3 Vamos prosseguir o estudo, realizando uma análise completa dos resultados de um modelo de simulação para um sistema terminal.
Exemplo 6.4: Centro de distribuição Em um centro de distribuição de uma transportadora, os tempos entre chegadas sucessivas de pedidos de entregas seguem uma distribuição exponencial com média de quatro horas. A frota desse centro encarregada dos pedidos constitui-se de três caminhões. Para carregar completamente um caminhão, são utilizados, necessariamente, quatro dos oito carregadores disponíveis. O tempo de carregamento do caminhão segue uma distribuição normal com média de 100 minutos e desvio-padrão de 30 minutos. Existem duas docas de carregamentos disponíveis para a operação. Para carregar, o caminhão deve estar, necessariamente, posicionado em uma doca. Os tempos de atribuição e ocupação da doca já estão incorporados ao tempo total de carregamento. Os tempos de transporte (da transportadora até o cliente) estão uniformemente distribuídos entre 120 e 240 minutos. O tempo de retorno (do cliente até a transportadora) segue exatamente essa mesma distribuição. A operação de transporte é contínua e funciona 24 horas por dia. O ACD desse
exemplo está representado na Figura 6.7. Basicamente, a análise dos dados de saída de uma simulação não terminal depende de quatro etapas: 1. Estabelecer as medidas de desempenho adequadas; 2. Escolher a confiança estatística e a precisão com que se pretende trabalhar; 3. Identificar o período de aquecimento, ouwarm-up; 4. Determinar o tempo de duração da simulação: • O tempo de execução é curto: construir os intervalos de confiança a partir de um conjunto de replicações; • O tempo de execução é longo: construir lotes a partir de uma única replicação de longa duração e construir os intervalos de confiança.
6.8.4. Estabelecer as medidas de desempenho adequadas Neste caso, o gerente do centro de distribuição está preocupado com o tempo médio de entrega do produto.
6.8.5. Escolher a confiança estatística e a precisão desejadas Uma confiança estatística de 95% (α = 0,05) e uma precisão deh* ≤ 5 minutos são valores adequados para este estudo.
Figura 6.7 – ACD do exemplo da transportadora.
6.8.6. Identificar o período de aquecimento (warm-up) Para que possamos identificar o período de aquecimento, vamos rodar o modelo por um
período de tempo longo e observar o comportamento da medida de desempenho escolhida.4 A Figura 6.8 representa 920 tempos de entrega coletados ao longo de apenas uma replicação. O tempo de simulação foi de 3.600 horas, ou cinco meses (= 5 × 30 × 24) de operação do centro de distribuição. O tempo gasto no processamento dessa replicação foi inferior a um minuto, em um Pentium III com 300 MHz e 256 MB de memória, utilizando o software Arena 5.0. Note o comportamento aleatório dos dados. Apesar da sua aparência caótica, os dados sugerem que os tempos de entrega estão entre 150 e 1.000 minutos. Para identificarmos o tempo de warm-up, vamos utilizar a média móvel sobre os dados resultantes de cinco replicações. A Figura 6.9 apresenta a média móvel, equação (6.18), calculada a partir da média de cinco replicações, para uma janela m = 50 observações. Como se pode perceber pela figura, a média móvel provocou uma maior suavização da curva, facilitando a identificação do tempo de warm-up que, adotando uma postura conservadora, termina após 700 horas de simulação.
Figura 6.8 – Tempos de entrega coletados da primeira replicação.
6.8.7 . Determinar o tempo d e simulação O tempo de duração de uma simulação terminal é, como sabemos, determinadoa priori . No caso de uma simulação não terminal, estabelecido um tempo de warm-up, o próximo passo é determinar por quanto tempo o sistema será simulado. Dois aspectos devem ser considerados: o modelo simulado deve atingir o estado de regime permanente, e devemos obter observações estatisticamente independentes. Pela Figura 6.9, podemos notar que um tempo de simulação igual a 700 horas é suficiente para atingirmos o estado estacionário do
sistema. Por outro lado, o “custo computacional de cada replicação”, medido pelo tempo que o computador leva para processá-la, foi relativamente baixo (menos de um minuto).
Figura 6.9 – Análise do tempo de warm-up na primeira replicação: média das cinco replicações iniciais e média móvel com w = 50.
Se o tempo de processamento de cada replicação do modelo no seu computador não for muito longo, podemos gerar diversas replicações (como fizemos no caso de sistemas terminais), e as replicações podem ser consideradas como independentes e identicamente
distribuídas (i.i.d.). Por que isso é tão importante? Considerando aceita a hipótese de independência, podemos construir os intervalos de confiança como fizemos anteriormente; caso contrário, a análise é mais complexa e exigirá a construção delotes (discutida na próxima seção). Com o aumento da velocidade e da capacidade de processamento dos computadores atuais, a prática de executar replicações longas tem se tornado cada vez mais popular. Utilizando a técnica descrita na Seção 6.6, foi construída uma amostra com 20 replicações, descartando-se os dados observados durante o período de warm-up de 700 horas. O tempo de simulação foi dobrado para 7.200 horas, ou 10 meses de operação, pois a parte relativa ao tempo de warm-up será descartada, e, com o aumento do tempo, pode-se coletar resultados de melhor qualidade (como regra prática, tempos maiores de simulação implicam mais precisão na construção do intervalo de confiança5). A partir da amostra-piloto (Tabela 6.11), a média do tempo de entrega foi de 372,3 minutos, e o desviopadrão de 14,4 minutos. O intervalo de confiança com 95% de significância para a média do tempo de entregas é igual a [365,5; 379,0], o que significa que a precisão do intervalo é igual a h = 6,8 minutos. Tabela 6.11 – Amostra-piloto com 20 replicações, duração de 7.200 horas e tempo de warm-up igual a 700 horas Replicação
Tempomédiodeentrega(min.)
1
347,1
2
381,6
3
380,5
4
375,9
5
372,7
6
363,8
7
379,6
8
352,2
9 10
387,5 376,0
11
378,2
12
408,4
13
382,4
14
373,8
15
360,9
16
383,8
17
358,2
18
360,3
19
354,9
20
367,8
Média
372,3
Desvio-padrão
14,4
Para determinarmos o número de replicações necessárias para atingirmos a precisão desejada de cinco minutos, basta utilizarmos a equação (6.6):
(6.19)
Após realizar uma rodada com 37 replicações,6 a média do tempo de entregas foi de 375,0 minutos, e o desvio-padrão foi de 15,1 minutos. O novo intervalo com 95% de confiança para a média é de [370,0; 380,1], com uma precisão de 5,1 minutos. A precisão desejada de cinco minutos não foi atingida, apesar do valor muito próximo. Novamente, vamos determinar quantas replicações seriam necessárias considerando-se que as 37
replicações já realizadas representam uma nova amostra-piloto:
(6.20)
Necessitamos, portanto, de mais oito replicações. Com mais uma rodada de oito replicações, a nova média para o tempo de entrega foi de 374,7 minutos, o desvio-padrão foi de 15,2 minutos e podemos construir o seguinte intervalo com 95% de confiança para a média: [370,1; 379,3], com uma precisão de 4,6 minutos. (A Tabela 6.12 apresenta um resumo das rodadas executadas e os respectivos intervalos de confiança construídos.) Tabela 6.12 – Resumo das rodadas realizadas e dos intervalos de confiança obtidos para a média do tempo de entregas (minutos)
n
20
Confiança
0,95
Precisão (metade do intervalo)
α
0,05
2,09
6,7
Intervalo de confiança da média (min.) [365,5;379,0]
37
0,95
0,05
2,03
5,1
[370,0;380,1]
45
0,95
0,05
2,02
4,6
[370,1;379,3]
6.8.8. O tempo de processamento é muito longo: criar lotes e construir os intervalos de confiança Se a simulação deve “correr” por um bom tempo até alcançar o estado de regime permanente e rodar 45 replicações, leva a um tempo muito longo de processamento no seu computador; a técnica alternativa é rodar apenas uma única replicação longa. Como as observações individuais retiradas de uma única replicação não são mais independentes entre si, não podemos construir um intervalo de confiança para a média do parâmetro em análise. O método usualmente empregado consiste em dividir os resultados da simulação em lotes grandes e contíguos, de tal modo que exista pouca correlação entre eles. Assim, poderemos assumir que tais lotes são independentes entre si. A ideia aqui é a de que, em uma longa replicação, a amostra é tão extensa que podemos dividi-la em uma série de amostras menores. Como o tempo de simulação é longo, o efeito da configuração inicial é dissipado e tem-se a certeza do regime permanente. Essa técnica exige a estimativa de dois valores: o tamanho de cada lote e o número de lotes necessários. O tamanho do lote, k, deve ser tal que duas observações retiradas, com uma defasagem de k, uma da outra, tenham uma correlação próxima de zero. É natural supor que os pontos na fronteira dos lotes tenham uma correlação alta, mas, se consideramos que
estamos trabalhando com lotes grandes, este efeito é minimizado. Para facilitar a identificação da defasagem de tamanho k, podemos criar um correlograma. O correlograma é um gráfico que representa o quanto uma observação, retirada em um certo instante de tempot, se relaciona com as observações subsequentes nos instantes t+1, t+2, t+3,... A medida dessa relação é obtida pela função de autocorrelação da série, definida pela expressão:
(6.21)
Onde: ρk , função de autocorrelação; , média da amostra;
, covariância de uma defasagem k;
, variância da amostra de tamanhon.
A função de autocorrelação só pode assumir valores no intervalo
. Quanto mais
próximo dos extremos 1 ou –1 for o valor de ρk , maior o grau de correlação entre os dados que estão a uma defasagemk entre si. Quanto mais próximo de 0 for o valor de ρ , menor o k grau de correlação entre os dados a uma distânciak e maior a independência entre eles. O correlograma é um gráfico que relaciona ρk com k. A Figura 6.10 representa o correlograma do exemplo da transportadora. Para a construção do correlograma, geralmente utiliza-se uma replicação com tempo superior a 10 vezes o tempo de warm-up; assim, foi realizada uma longa replicação de 10.000 horas. Note, pela Figura 6.10, que a função de autocorrelação aproxima-se do zero quando a defasagem k é aproximadamente igual a 17. A prática recomenda que adotemos um lote 10 ou mais vezes maior, ≥10k observações, de modo a garantir um número suficiente de
observações para os cálculos estatísticos que serão realizados a partir desta amostra (quanto mais observações, melhor a qualidade dos resultados obtidos por lote).
Figura 6.10 – Correlograma do exemplo, para uma replicação de 10.000 horas.
O passo seguinte é determinar o número de lotes necessários. A boa prática recomenda que sejam construídos 30 ou mais lotes. Se esses lotes não forem suficientes, podemos tratálos como uma amostra-piloto para a estimativa do número de lotes necessários. Assim, vamos construir inicialmente 50 lotes. O último passo é determinar o tempo total de
simulação pela expressão: Tempo total de simulação = tempo dewarm-up + tempo de geração dos lotes + margem de segurança O tempo de warm-up já foi determinado anteriormente para o sistema: 700 horas. O tempo de geração dos lotes pode ser estimado a partir da taxa de surgimento de entidades no sistema. Pela descrição do exemplo, sabemos que, em média, de quatro em quatro horas um novo pedido entra no sistema. Em outras palavras, temos uma nova observação a cada quatro horas, isto é, uma taxa de surgimento de observações igual a:
observações/hora
Assim, o tempo de geração dos lotes, ou TG, pode ser estimado por:
Para o sistema em análise, temos:
(6.22)
(6.24)
Uma margem de segurança é adicionada como garantia extra de que a simulação não será afetada pelas condições iniciais. Geralmente, adota-se 1% do tempo de geração dos lotes. Assim, o tempo total de simulação é:
(6.25)
Agora é a vez de o “simulador” trabalhar um pouco... A replicação de 35.040 horas de simulação consumiu menos de um minuto em um Pentium III com 300 Mhz e 256 Mb de memória. Foram geradas 8.503 observações no total (já descontadas as observações geradas durante o período de warm-up), e, como cada lote deve possuir 170 observações, foi possível construir 50 lotes. Cada lote deve ser tratado como uma nova replicação, e pode-se aplicar os mesmos métodos utilizados para os sistemas terminais. Neste caso, a média do tempo de entregas é
de 367,2 minutos, o desvio-padrão é de 43 minutos, e o intervalo com 95% de confiança para a média do tempo de entregas é: [355,1; 379,3], com uma precisão (tamanho da metade do intervalo) de h=12,1 minutos. Como não foi atingida a precisão de cinco minutos, esse conjunto de lotes deve ser tratado como uma amostra-piloto, e o novo número de lotes necessários para atingir a precisão desejada é dado por:
lotes
(6.26)
O novo tempo de geração de lotes e o tempo total de simulação ficam sendo, portanto:
(6.27)
(6.28)
A replicação de 214.982 horas consumiu cerca de dois minutos de tempo de computação. A simulação permitiu construir 313 lotes, a média do tempo de espera foi de 376,2 minutos, o desvio-padrão foi de 46,8 minutos e o intervalo de 95% de confiança para a média foi de [371,0; 381,4], o que corresponde a uma precisão de h = 5,2 minutos. Novamente, não foi atingida a precisão desejada (cinco minutos). Antes de prosseguirmos, utilizando esses 313 lotes como uma amostra-piloto, podemos tentar um “truque” em vez de repetirmos os cálculos. Como a última corrida foi longa, 214.982 horas, e estamos bem próximos da precisão desejada, podemos tentar aumentar o número de observações por lote. Isto é, vamos construir por exemplo, com 20k aobservações. Ao dados aumentarmos de observações por lotes, lote, estaremos melhorando qualidade dos coletadoso número no lote e, possivelmente, diminuindo o seu desvio-padrão, que, em última análise, deve diminuir o tamanho do intervalo de confiança. Assim, não há necessidade de executarmos novamente a replicação, basta redividi-la em lotes de 340 (= 20 × 17) observações. Por esse caminho, são construídos 156 lotes, o tempo médio de espera é de 376,2 minutos – o mesmo valor obtido anteriormente –, o desvio-padrão é de 30,0 minutos – portanto, menor – e o intervalo com 95% de confiança para a média é de [371,5; 380,9], o que corresponde a uma precisão de 4,7 minutos – portanto, dentro da precisão desejada. Mais uma vez: quanto mais observações são coletadas, menores os tamanhos dos intervalos de confiança e mais precisos os resultados.
6.9. Como comparar os resultados de alternativas simuladas? Com um modelo de simulação pronto, podemos testar diversas alternativasantes de implementá-las na prática. Por exemplo, poderíamos aumentar o número de caminhões para diminuir o tempo médio de entregas no problema do centro de distribuição. O modelo de simulação é, pois, uma poderosa ferramenta para a tomada de decisão. Como discutido neste capítulo, os resultados obtidos pelo modelo são expressos na forma de intervalos de confiança, que nada mais são do que intervalos quecontêm uma média com 100(1-α)% de confiança. O problema neste momento é decidir qual das alternativas simuladas apresenta o melhor desempenho. Se a comparação é feita entre duas alternativas, uma técnica de fácil implementação é aplicar um teste estatístico para comparação entre duas médias. Inicialmente, vamos estabelecer a notação: • é a observação obtida pela i-ésima replicação da simulação da alternativa 1, para •
é a observação obtida pela i-ésima replicação da simulação da alternativa 2, para
6.9.1. Caso 1: alternativas com o mesmo número de replicações Se as duas alternativas foram simuladas por um mesmo número de replicações, ou seja,
e pode-se utilizar o teste t para amostras emparelhadas7,8. Usualmente, a aplicação do teste é feita através da construção de um intervalo de confiança utilizando-se os seguintes passos:
Passo 1: Calcular as diferenças:
(6.29)
Passo 2: Calcular a média e o desvio-padrão das diferenças:
(6.30)
(6.31)
Passo 3:Construir um intervalo de confiança, diferenças Passo 4:Se o intervalo de confiança
,para o valor da média das
:
1.Contiver o 0, isto é, , então nada pode ser concluído sobre a diferença entre as médias das alternativas, ou seja, não se pode afirmar que uma alternativa simulada é melhor que a outra; 2.Se o intervalo cair totalmente à direita do 0, isto é, , então a média da alternativa 1 é maior do que a outra; 3.Se o intervalo cair totalmente à esquerda do 0, isto é, , então a média da alternativa 2 é maior do que a outra. Exe mplo 6.5: Comparando duas alte rnativas As observações do tempo médio de espera por atendimento, obtidas pela simulação de duas alternativas diferentes em um mesmo modelo de simulação, estão representadas na Tabela 6.14. Os intervalos com 95% de confiança obtidos para a média dos tempos de espera foram: a) Alternativa 1: [2,018; 3,433]
b) Alternativa 2: [3,129; 3,962] Tabela 6.13 – Cálculo das diferenças Replicação
Tempo de espera
Diferença
Alternativa 1
Alternativa 2
1
2,545
3,809
–1,263
2
2,370
3,529
–1,159
3
1,266
4,457
–3,191
4
1,359
2,186
–0,826
5
4,171
3,358
0,813
6
3,397
3,399
–0,002
7
3,200
3,429
–0,229
8
4,026
3,827
0,199
9
2,312
3,933
–1,621
10
2,606
3,532
–0,926
Média
2,725
3,546
–0,821
Desvio-padrão
0,989
0,582
1,121
Tabela 6.14 – Tempos de espera para as duas alternativas analisadas Replicação
Tempo de espera Alternativa1
Alternativa2
1
2,545
3,809
2
2,370
3,529
3
1,266
4,457
4
1,359
2,186
5
4,171
3,358
6 7
3,397 3,200
3,399 3,429
8
4,026
3,827
9
2,312
3,933
10
2,606
3,532
Média
2,725
3,546
Desvio-padrão
0,989
0,582
A Tabela 6.13 apresenta o cálculo das diferenças obtidas ao aplicarmos a equação (6.29) para 10 replicações de cada alternativa.
A partir da nova amostra de valores, podemos calcular o novo intervalo de confiança. Considerando um nível de confiança de 100(1–0,05)% en = 10 replicações, obtemos, a partir da tabela da distribuição de t de Student:
(6.32)
Assim, a precisão para o intervalo fica:
(6.33)
E o intervalo com 95% de confiança para a média das diferenças é:
(6.34)
Portanto, como o intervalo não contém o 0, o tempo médio de espera para atendimento da alternativa 1 é menor do que a mesma medida de desempenho obtida pela alternativa 2.
6.9.2 . Caso 2: amostras de tamanhos d iferentes O teste é semelhante ao realizado no caso anterior; porém, como as amostras não têm mais o mesmo tamanho, a média e a variância são calculadas para cada alternativa separadamente. Médias:
(6.35)
(6.36)
Desvios:
(6.37)
(6.38)
O intervalo de confiança com 100(1-α)% é dado por:
(6.39)
Onde
é o número de graus de liberdade, que pode ser obtido pela expressão:
(6.40)
Arredondado para o inteiro acima.
6.10. Exercícios de revisão 1. Identifique os seguintes sistemas como “terminais” ou “não terminais”, justificando sua resposta: a) Uma lavanderia de autoatendimento 24h. b) Um semáforo. c) Uma festarave. d) Uma linha de produção de automóveis. e ) Uma maternidade. f) Um consultório dentário.
g) A cozinha de produção de donuts, existente na própria loja. 2. Em um estudo de simulação, deseja-se analisar o comportamento das pessoas ao atravessarem uma determinada via. A Tabela 6.15 representa os valores obtidos, em minutos, para os tempos que as pessoas levaram na travessia (tempo de espera + caminhada pela via). Tabela 6.15 – Exercício 2 0,95
0,85
0,92
0,95
0,93
0,86
1,00
6,10
0,92
0,85
0,81
0,78
0,93
0,93
1,05
0,93
0,10
1,06
1,06
0,96
0,81
0,96
Construa os intervalos de confiança para a média da população, considerando confianças estatísticas de 99% e 95%. 3. Em um estudo de simulação sobre uma nova linha de produção, pretende-se estudar o número médio de peças em produção (work in progress – WIP). Considere que foi realizada uma rodada de 50 replicações, sendo construído o intervalo com 95% de confiança [7,7; 9,6] para o número médio de peças em produção. Sendo µ o número médio de peças em produção para apopulação em estudo, resolva: a) Um intervalo com 90% de confiança calculado a partir dessa mesma amostra seria “mais largo” ou “mais estreito” do que o intervalo dado? Explique seu raciocínio.
b) Considere a seguinte afirmação: “Existe 95% de chance de que µ esteja no intervalo entre 7,7 e 9,6”. Explique por que essa afirmação está correta ou não. c) Considere a seguinte afirmação: “Nós podemos estar confiantes de que, em 95% do tempo, o número médio de peças em produção estará entre 7,7 e 9,6 peças”. Explique por que essa afirmação está correta ou não. d) Considere a seguinte afirmação: “Se as rodadas forem executadas 100 vezes, 95 dos intervalos resultantes incluirão µ”. Explique por que essa afirmação está correta ou não. 4. Em um modelo de simulação de uma fila com apenas um servidor para atendimento, foram realizadas 10 replicações para se determinar o número médio de pessoas em fila. Os resultados obtidos para cada replicação estão representados na Tabela 6.16.
a) Construa um intervalo de confiança para a média com confiança de 95%. b) Construa um intervalo de confiança para a média com confiança de 99%. c) Qual dos intervalos calculados é mais preciso? Tabela 6.16 – Exercício 4 Replicação
Médiadepesso asemfila
1
3,73
2
2,00
3
0,48
4 5
1,38 1,26
6
0,34
7
1,14
8
1,20
9
1,22
10
1,15
5. Intervalo de confiança para a proporção. Considere que, no Exemplo 6.2, o gerente deseja estudar a probabilidade de que algum cliente aguarde mais do que 10 minutos em
fila. a) Construa um modelo computacional para o exemplo. b) Construa um intervalo de confiança para a probabilidade de que o tempo de espera em fila seja maior do que 10 minutos, com confiança de 95%. c) Quantas replicações a mais devem ser realizadas para que a precisão do intervalo seja de 1%? 6. Neste capítulo, discutimos um modo de se determinar o número de replicações necessárias para se atingir um nível de confiança 100(1 – α)% do intervalo, pela construção de uma amostra-piloto. Outro modo para se determinar o tamanho da amostra é utilizar a expressão
onde s é a variância obtida a partir da amostra-piloto. Considerando que, para≥n 50,
obtenha a expressão anterior a partir
da expressão do intervalo de confiança para a média. 7. Os gráficos a seguir foram extraídos de diferentes estudos de simulação. Para cada
gráfico: a) Identifique o estado em que a simulação se encontra: transitório ou em regime permanente. b) Classifique os sistemas em terminais ou não terminais.
8. Procedimento de Welch. Uma técnica de fácil implementação para se determinar o tempo de warm-up foi proposta por Welch (1983). Diferentemente dos procedimentos com os quais se calculam as médias das medidas de desempenho ao longo de uma mesma replicação, o procedimento de Welch é utilizado para calcular a média der replicações diferentes em instantes fixos de tempo. O objetivo é observar qual a tendência dos dados em face das condições iniciais do sistema.
Passo 1: Faça uma rodada com r replicações ( r > 5) de “duração” n (n grande). Considere xij a i-ésima (i = 1, 2,..., n) observação da j-ésima (j = 1, 2,..., r) replicação. Passo 2: Calcule a média de cada “lote” i: para i=1, 2, ..., n.
Cada média
representa a média das i-ésimas observações, sendo também denominada
média agrupada. Passo 3:Para suavizar os efeitos das oscilações presentes na série construa a seguinte média móvel:
,
Nas expressões anteriores, w é um número inteiro que representa a “janela” utilizada para o cálculo da média móvel (adotar: ). A expressão (B) representa a média móvel de 2w valores com centro em i. Por exemplo, se i = 10 e w = 2, então, a expressão (B) representa a média dos valores de índice k=10-2, 10-1, 10, 10+1, 10+2, ou:
Como até a observação w não temos um número suficiente de observações para calcularmos a média móvel, precisamos de, no mínimo, 2w+1 valores. A expressão (A) calcula as médias móveis com centro em i, mas com um número menor de
observações.
Passo 4: Desenhe o gráfico da média móvel , para alguns valores de w, e identifique o momento em que as curvas parecem convergir. Caso nenhum valor w de tenha sido satisfatório, repita o procedimento para novasr replicações. A Tabela 6.17 representa a aplicação do procedimento de Welch para uma determinada simulação. A Figura 6.11 mostra os respectivos gráficos das médias móveis obtidas. a) Observando o gráfico, qual seria um tempo dewarm-up adequado para a simulação em estudo? Acrescente uma nova coluna na mudança Tabela 6.17, considerando w = 5,de e construa o novo b) gráfico resultante. Existe alguma significativa no tempo warm-up escolhido no item a)? Tabela 6.17 – Exercício 8 Obs.
Replicações
Média agrupada
12345
Média móvel
w =2
w =3
w =4
1
2,0
3,0
1,0
5,0
10,0
4,2
4,2
4,2
4,2
2
15,0
32,0
39,0
28,0
27,0
28,2
26,4
26,4
26,4
3
62,0
58,0
58,0
5,0
51,0
46,8
73,2
73,2
73,2
4
94,0
191,0
190,0
120,0
132,0
145,4
102,9
114,9
114,9
5
133,0
143,0
205,0
110,0
115,0
141,2
154,4
151,7
150,9
6
122,0
174,0
195,0
125,0
149,0
153,0
197,4
189,4
180,9
7
277,0
341,0
262,0
305,0
244,0
285,8
226,7
221,9
208,6
8
272,0
310,0
229,0
281,0
217,0
261,8
253,4
240,7
234,2
9
302,0
304,0
238,0
295,0
319,0
291,6
278,2
260,1
249,2
10
330,0
304,0
263,0
256,0
220,0
274,6
276,4
278,4
267,4
11
300,0
323,0
261,0
279,0
222,0
277,0
280,2
281,1
282,9
12 13
311,0 331,0
305,0 306,0
264,0 216,0
282,0 337,0
224,0 213,0
277,2 280,6
282,9 286,5
285,5 284,8
283,0 285,5
14
320,0
294,0
310,0
351,0
250,0
305,0
288,4
286,2
284,7
15
296,0
283,0
275,0
340,0
269,0
292,6
289,8
287,2
286,1
16
220,0
271,0
314,0
307,0
322,0
286,8
290,5
288,7
288,3
17
225,0
298,0
285,0
306,0
306,0
284,0
287,0
291,0
18
212,0
288,0
293,0
288,0
340,0
284,2
287,8
19
223,0
284,0
306,0
320,0
305,0
287,6
20
308,0
317,0
288,0
277,0
293,0
296,6
Figura 6.11 – Exercício 8.
9. Procedimento das “médias agrupadas e exclusão”. Um procedimento alternativo, mas baseado no procedimento de Welch, foi proposto por Banks et al. (2001).
Passo 1: Faça uma rodada com r replicações ( r > 5) de “duração” n (n grande). Considere xij a i-ésima (i=1, 2,..., n) observação da j-ésima (j=1, 2,..., r) replicação. Passo 2: Calcule a média de cada “lote” i:
para i=1, 2, ..., n.
Passo 3:Cada média representa a média das i-ésimas observações, sendo também denominada média agrupada. Passo 4: Calcule a média acumulada de cada lote utilizando a seguinte expressão:
Na expressão anterior, d representa o número de médias agrupadasexcluídas do cálculo da média acumulada. Por exemplo, se i = 5 e d = 0, temos a média acumulada das primeiras cinco médias agrupadas. Contudo, para i = 5 e d = 1, temos a média acumulada das quatro últimas médias agrupadas, excluída uma observação, ou seja:
Passo 5: Desenhe o gráfico da média acumulada
para alguns valores do número de
médias excluídas, d. Observe o gráfico e identifique o momento em que os efeitos das condições iniciais deixam de afetar sua forma. A Tabela 6.18 e a Figura 6.12 representam os dados utilizados no procedimento para o mesmo estudo de simulação do exercício anterior. Tabela 6.18 – Exercício 9 Obs.
Replicações
Média agrupada
12345
Média acumulada
d=0
d=1
d=2
d=5
d=10
1
2,0
3,0
1,0
5,0
10,0
4,2
4,2
2
15,0
32,0
39,0
28,0
27,0
28,2
16,2
28,2
3
62,0
58,0
58,0
5,0
51,0
46,8
26,4
37,5
46,8
4
94,0 191,0 190,0 120,0 132,0
145,4
56,2
73,5
96,1
5
133,0 143,0 205,0 110,0 115,0
141,2
73,2
90,4 111,1
6
122,0 174,0 195,0 125,0 149,0
153,0
86,5 102,9 121,6 153,0
7
277,0 341,0 262,0 305,0 244,0
285,8
114,9 133,4 154,4 219,4
8
272,0 310,0 229,0 281,0 217,0
261,8
133,3 151,7 172,3 233,5
9
302,0 304,0 238,0 295,0 319,0
291,6
150,9 169,2 189,4 248,1
10
330,0 304,0 263,0 256,0 220,0
274,6
163,3 180,9 200,0 253,4 274,6
11
300,0 323,0 261,0 279,0 222,0
277,0
173,6 190,5 208,6 257,3 275,8
12
311,0 305,0 264,0 282,0 224,0
277,2
182,2 198,4 215,4 260,1 276,3
13
331,0 306,0 216,0 337,0 213,0
280,6
189,8 205,3 221,4 262,7 277,4
14
320,0 294,0 310,0 351,0 250,0
305,0
198,0 212,9 228,3 267,4 282,9
15
296,0 283,0 275,0 340,0 269,0
292,6
204,3 218,6 233,3 269,9 284,5
16
220,0 271,0 314,0 307,0 322,0
286,8
209,5 223,2 237,1 271,5 284,8
17
225,0 298,0 285,0 306,0 306,0
284,0
213,9 227,0 240,2 272,5 284,7
18
212,0 288,0 293,0 288,0 340,0
284,2
217,8 230,3 243,0 273,4 284,7
19 20
223,0 284,0 306,0 320,0 305,0 308,0 317,0 288,0 277,0 293,0
287,6 296,6
221,5 233,5 245,6 274,4 285,0 225,2 236,8 248,4 275,9 286,0
Figura 6.12 – Exercício 9.
a) Analisando a Figura 6.12 para d = 0, aparentemente, as condições iniciais afetam os resultados ____________________ (abaixando/aumentando) a estimativa do tempo médio de espera. b) Perceba, pelo gráfico, que, quanto mais médias agrupadas são excluídas, ou seja, quanto maior o valor d, menos os dados iniciais afetam o resultado da estimativa do tempo médio de espera obtido pela simulação. Construa e desenhe as curvas de mais algumas
sequências de médias acumuladas parad = 11, 12 e 15. c) A partir de que momento podemos considerar que o sistema não é mais afetado pelas suas condições iniciais? 10. Um caixa eletrônico de banco, localizado em uma loja de conveniência 24 horas, possui intervalos entre chegadas sucessivas de clientes exponencialmente distribuídos com média de 22 segundos. O tempo de atendimento no caixa é também exponencialmente distribuído com média de 20 segundos. Este tipo de sistema é conhecido como uma fila M/M/1. a) Construa o ACD representando o sistema.
b) O sistema é terminal ou não terminal? Justifique. c) Construa um modelo computacional para a simulação do sistema e determine o tempo de warm-up a partir do procedimento de Welch. d) Em uma fila qualquer, a taxa de chegadas de clientes no sistema, λ, é definida por:
e a taxa de atendimento de clientes no servidor, µ, é definida por:
e ) Portanto, no caixa eletrônico, a taxa de chegadas de clientes é de ____________
clientes/min, e a taxa de atendimento é de ____________ clientes/min. f)Um sistema que possui estaria bem dimensionado? Justifique. g) Uma medida de desempenho de filas é o índice de congestionamento do sistema, ρ. Ele indica a fração do tempo que o caixa fica ocupado em serviço. No caso de uma fila M/M/1, esse índice é determinado pela expressão:
h) Se
Portanto, no caixa eletrônico, o índice de congestionamento é de ______. , o índice de congestionamento é igual a 1. Sem simular o modelo, responda:
este sistema está bem dimensionado? Justifique. i) Agora, utilize o modelo computacional para responder à questão anterior. 11. Uma grande livraria possui quatro caixas para pagamento. O processo de chegadas sucessivas de clientes é um processo de Poisson com taxa média de chegadas de 2,5 cliente/min. Atualmente, não existe uma fila única, e, quando um cliente chega ao caixa, opta pela menor fila. Após escolher a fila, o cliente permanece nela até o momento do pagamento. O processo de atendimento nos caixas também é um processo de Poisso com taxa média de atendimentos de 1 cliente/min. Considere que a livraria opera das 9 às 24h, todos os dias. O gerente pretende realizar um estudo sobre as vantagens da fila única em relação ao sistema atual e solicitou sua ajuda.
a) Construa o ACD do sistema de fila única e do sistema de filas separadas. b) Construa um modelo computacional para cada sistema do item a). c) Construa intervalos de confiança adequados para as seguintes medidas de desempenho dos sistemas: tempo médio que um cliente permanece no sistema, tempo médio que um cliente permanece em fila, número de clientes no sistema, número de clientes em fila e número de clientes que ainda estão em fila no momento em que a livraria está encerrando o expediente. d) Qual sistema tem melhor desempenho para cada uma das medidas de desempenho obtidas no item c)? E qual a sua sugestão para o gerente? e ) Depois de ouvir suas sugestões sobre “a justiça social em filas” e analisar o seu relatório de projeto, o gerente decide pelo sistema de fila única. Ele fica tão entusiasmado com as suas recomendações que o convida para ohappy hour dos “bêbados habilidosos” – uma confraria de gerentes de livrarias tomadores de vinho. Você, obviamente, aceita sem saber que eles bebem e não ficam tontos, já você... Na manhã seguinte você descobre que os gerentes bêbados e habilidosos criaram uma promoção espetacular na livraria:
Considerando que uma compra média equivale a R$ 30,00, qual redução no lucro da loja essa promoção acarretará? que oo turno custo de de trabalho um novodecaixa (além édos é dedetermine R$ 50,00/hora relativa f) Considerando aos salários e que um caixa de atuais) oito horas, o número de caixas necessários a mais para minimizar o prejuízo da promoção. g) Promoções desse tipo sempre ocasionam um aumento da demanda, pois a maior parte das pessoas é muito sensível à rapidez no atendimento. Considerando a solução encontrada no item anterior, qual o aumento de demanda tolerável pelo sistema em clientes/min.? Qual o impacto do aumento de demanda sobre o prejuízo inicial? h) Obtenha do seu modelo computacional um gráfico que represente o número de clientes em fila durante a simulação. Se você analisar com atenção o comportamento da fila, deve perceber que ela exibe um processo cíclico de “renovação” ou “regeneração”: a fila surge, cresce e diminui até praticamente sumir. Esse ciclo regenerativo, que se repete em
diversos momentos da simulação, é uma característica de sistemas que possuem distribuições exponenciais envolvidas – você mesmo pode identificá-lo no seu dia a dia. Baseado nessa constatação, quais sugestões você daria ao gerente quanto às atribuições dos funcionários da livraria? 12. Considere o Exemplo 6.4. O diretor da operação deseja, como “estratégia de marketing”, garantir que a entrega chegue ao cliente em um tempo de, no máximo, seis horas, contadas a partir da chegada do pedido no centro de distribuição. Se isso não ocorrer, o cliente ganha o valor da carga do caminhão, que vale, em média, R$ 10.000,00. a) Refaça o ACD do sistema, incorporando as alterações propostas.
b) Construa um modelo de simulação computacional do sistema. c) A estratégia é viável? O que é necessário ser feito para implementar essa estratégia? Experimente mudar a disponibilidade de recursos, para ver o que ocorre. d) Suponha que um pico de demanda de 30% ocorra para esse ACD. Como fica a operação? Discuta qual seria a melhor estratégia para contornar esse problema. 13. A linha de metrô de RockCity é composta por sete estações, como indicado na Figura 6.13. Cada trem inicia sua viagem pela estação Muddy Waters e termina na Garagem. Os passageiros podem embarcar ou desembarcar nas estações: Muddy Waters, Elvis, Who, Hendrix, Sex Pistols e Heart Break Hotel. Na Tabela 6.19, podem ser identificados os tempos médios de embarque e desembarque em cada estação, que são exponencialmente
distribuídos, e as distâncias em km entre elas. Nunca pode acontecer de dois trens trafegarem simultaneamente em um mesmo trecho da linha; um dos trens deve aguardar na estação até que o próximo trecho esteja livre. A velocidade de operação dos trens é constante e igual a 50 km/h. A companhia que opera o metrô em RockCity está preocupada com o horário de operação no período que vai das 18h às 20h.
Figura 6.13 – Exercício 13.
Tabela 6.19 – Exercício 13 Estação
Tempo de embarque/desembarque (min.)
Distância para a próxima estação (km)
Muddy Waters
1
2
Elvis
2
4
Who
3
4
Hendrix
4
1
Pistols Sex Heart Break Hotel Garagem
1
2
2
4 -o-
-o-
Os trens partem da estação Muddy Waters de 15 em 15 minutos, o que significa que, no período das 18h às 20h, 16 trens partem para a viagem. a) Construa o ACD do problema e um modelo computacional do sistema. b) Considerando um nível de confiança de 95%, construa um intervalo de confiança para a média do tempo de viagem completa de um trem. Podemos afirmar que, em 95% das viagens, o tempo total de viagem será inferior a ____%. c) Com o intuito de melhorar o atendimento, a companhia pretende diminuir o intervalo de partida dos trens para cinco minutos. O que acontecerá com o tempo médio de viagem caso essa decisão seja implementada? d) Outra alternativa considerada pelo metrô é aumentar a velocidade dos trens para 60 km/h. O que acontecerá com o tempo médio de viagem caso essa decisão seja implementada?
e ) Os trens podem apresentar defeito durante o trajeto entre as estações. A probabilidade de ocorrer alguma falha nesse trajeto é de 0,5%. Nesse caso, o trem deve aguardar na próxima estação por um atendimento que consome 20 minutos, sendo esse tempo constante. Qual o efeito que isso terá sobre o intervalo de confiança construído no item a)? f) Estudos de confiabilidade do departamento de Engenharia identificaram que os defeitos são diretamente relacionados à velocidade do trem, como indica a Tabela 6.20. Todos os trens devem viajar na mesma velocidade, mas você pode escolher a velocidade mais conveniente. Construa um intervalo com 95% de confiança para a média do tempo de viagem, para cada uma das velocidades relacionadas na Tabela 6.20. Qual velocidade leva ao melhor tempo total de viagem? Tabela 6.20 – Exercício 13 Velo cidade(km/h)
Pro babilidadededefeito
40
0,25%
50
0,4%
60
0,5%
70
1%
80
5%
14. Redes de Filas – Teorema de Jackson. Em uma rede de computadores, o processo de chegadas de tarefas de processamento é um processo de Poisson com taxa de 1,5 tarefa/min. A rede é composta por três computadores, A, B e C, que podem processar as tarefas. Os tempos de processamento das tarefas são exponencialmente distribuídos, com médias de: A, 1 min; B, 2 min; C, 1 min. As novas tarefas sempre iniciam o processamento pelo computador A. Caso a tarefa encontre o computador ocupado, ela aguarda em fila no próprio computador. Após acabar de ser processada, a tarefa ou é encaminhada para outro computador ou sai do sistema, como indica a Tabela 6.21, que representa as probabilidades de transição entre os computadores. Por exemplo, uma tarefa que acaba de ser processada no computador A tem 50% de chance de ser encaminhada ao computador B e 50% de chance de ser encaminhada ao computador C. Tabela 6.21 – Exercício 14 Para
De
A
B
C
Sair
A
0
0,5
0,5
0
B
0
0
0,8
0,2
C
0,2
0
0
0,8
a) Construa o ACD do problema.
b) Construa um modelo de simulação computacional do problema. c) Considere que a rede está em funcionamento 24 horas por dia. Determine o tempo de warm-up para a simulação. d) Estime o tempo médio que cada tarefa permanece no sistema e o número médio de tarefas no sistema. e ) Qual a fração do tempo em que o computador A permanece ocioso? f) O Teorema de Jackson (1957) estabelece que, em uma rede de filas aberta, como a do exercício, se os tempos entre chegadas sucessivas de clientes são (1) exponencialmente distribuídos, (2) os tempos de serviço em cada estágio da rede são exponencialmente distribuídos e (3) cada estágio tem uma capacidade de espera em fila infinita, então, os tempos entre chegadas sucessivas de clientes para cada estágio da fila também são exponencialmente distribuídos (WINSTON, 1994). Isso significa que cada estágio da fila pode ser tratado como uma fila M/M/1, e podem ser utilizadas as expressões analíticas semelhantes às utilizadas no exercício 10. Identifique a taxa de chegadas ao computador A e determine a fração do tempo que o computador A permanece ocupado, utilizando a expressão do índice de congestionamento ρ apresentada no exercício 10. Compare com o resultado obtido pelo modelo de simulação.
Leitura Complementar
A técnica da redução da variância
Como discutimos no início do capítulo, todo modelo de simulação que possui entradas representadas por distribuições probabilísticas de variáveis aleatórias também terá saídas aleatórias. 9 Uma consequência disso é a necessidade de construirmos intervalos de confiança para os parâmetros escolhidos para análise. Quanto menor for o intervalo de confiança em um dado nível de significância α (ou quanto maior a precisão), maior será a segurança de nossa estimativa. Para reduzirmos o tamanho do intervalo, uma alternativa é aumentarmos o tempo de simulação do modelo, de modo a coletarmos um número maior de dados no regime permanente. Existem algumas técnicas disponíveis para aredução da variância de um modelo sem a
necessidade de aumentarmos o tempo de simulação. Uma das técnicas mais populares e encontrada em diversos pacotes comerciais utiliza números aleatórios denominados antitéticos .10 Nessa técnica, deve-se simular o sistema em “pares de replicações” ou, usando a tal palavra novamente, “replicações antitéticas”. Para entendermos essa técnica (e a própria palavra “antitética”), devemos nos reportar ao processo de geração de números aleatórios dentro do computador (como discutido no Apêndice III). Internamente, o processo de simulação no computador inicia-se pela geração de uma sequência de números aleatórios uniformemente distribuídos entre 0 e 1 (o Apêndice III apresenta mais detalhes). A seguir, cada número aleatório da sequência é transformado em um número aleatório de uma sequência que segue a distribuição probabilística escolhida. O processo de simulação prossegue até o final, e o parâmetro de saída é estimado a partir dos resultados da simulação. Considere, por exemplo, queX é a estimativa de um parâmetro de saída de uma simulação, feita a partir de uma sequência de números aleatórios uniformemente distribuídos entre 0 e 1. Vamos denominar essa sequência de r1, r2, ..., rn. Seguindo a metodologia descrita neste capítulo, para construirmos um intervalo de confiança para X, devemos rodar o modelo por um número mínimo de replicações. É no modo como essas replicações serão construídas que a técnica dos númerosantitéticos vai intervir. Acompanhe atentamente: considere que, a partir de cada sequência anterior,r1, r2, ..., rn, foi construída a sequência antitética 1-r1, 1-r2, ..., 1-rn e o modelo rodado para cada par de sequências assim geradas. A denominação antitética sugere que as sequências são
antagônicas; de fato, quando em uma replicação o tempo de atendimento, por exemplo, é alto, na outra ele será, obrigatoriamente, baixo. Note que a sequência 1r1,1-r2,...,1-rn é igualmente aleatória e uniformemente distribuída entre 0 e 1, assim como sua sequência antitética r1, r2, ..., rn (que é a sequência srcinal). Agora, considere X a estimativa do parâmetro de saída obtida quando usamos a primeira sequência e Y a estimativa do mesmo parâmetro de saída do modelo quando usamos a sequência antitética. Como uma sequência foi obtida diretamente da outra, os resultados das duas simulações não são independentes. Dizemos que as variáveisX e Y são negativamente correlacionadas (quando uma aumenta, a outra, obrigatoriamente, diminui). Neste caso, a média do parâmetro pode ser obtida diretamente pela média deX e Y: Contudo, como as variáveis não são independentes entre si, a variância do parâmetro é estimada por: Onde: Cov(X,Y) é a covariância entre X e Y. Se a covariância entre X e Y é negativa, podemos concluir que a variância deX + Y será menor, pois, na expressão anterior, o último termo será negativo, diminuindo o valor deV( + Y). O interessante é que, para estimarmos a variânciaV(X + Y), não há necessidade de calcularmos diretamente a covariânciaCov(X, Y), pois podemos calcular a variância de X +
Y diretamente.
Xe Tomemos um exemplo numérico. Na Tabela 6.22, temos os resultados dos parâmetros Y para cinco rodadas de uma simulação. Tabela 6.22 – Resultados para os parâmetros X e Y em cinco rodadas de uma simulação Rodada
X
Y
(X+Y)/2
1
1,78
0,65
1,22
2
2,05
0,48
1,27
3
0,14
3,21
1,68
4
1,24
1,43
1,34
5
0,98
2,12
1,55
Média
1,24
1,58
1,41
Variância
0,56
1,26
0,04
A média do parâmetro é estimada diretamente por:
A variância, já calculada na tabela, é:
A precisão para o intervalo de confiança fica:
O intervalo com 95% de confiança para o parâmetro de análise fica, portanto: minuto. A precisão do intervalo anterior é baixa, apesar de utilizarmos apenas 10 replicações no total. Devemos frisar que nem todo software comercial de simulação dispõe de mecanismos para redução da variância. Existem outras técnicas de redução da variância. Para o leitor interessado, sugerimos a consulta a Law e Kelton (1991).
Referências bibliográficas BANKS, Jerry; CARSON, John S.; NELSON, Barry L.; NICOL, David M. Discrete-event system simulation. 2. ed. Upper Sandle River: Prentice-Hall International Series i Industrial and System Engineering, 2001. CHISMAN, James A.Industrial cases in simulation modeling. Belmont: Duxbury Press, 1996. DEVORE, Jay. Probability and statistics for engineering and the sciences. 5. ed. Pacific Grove: Duxbury Press, 2000. GOLDSMAN, David. Simulation output analysis.Proceedings of the 1992 Winter Simulation Conference, p. 97-103, 1992. JACKSON, Jim. Networks of waiting lines. Operations Research, n. 5, p. 518-521, 1997. KELTON, David W.; SADOWSKI, Randall P.; SADOWSKI, David. Simulation with Arena. Boston: McGraw Hill, 1998. LAW, Averill M.; KELTON, David W. Simulation, modeling & analysis. 2. ed., Nova York: McGraw-Hill, 1991. ROBINSON, Stewart. Simulation: the practice of model development and use. Chichester: John Wiley & Sons, 2004. TAHA, Hamdy A.Operations research: an introduction. 7. ed. Nova York: Maxwell
MacMillan Publishing, 2002. WINSTON, Wayne L. Operations research: applications and algorithms. Belmont: Duxbury Press, 1994.
Capítulo 7
Projeto de experimentos e otimização
7.1. Introdução Em muitos estudos de simulação, existem questões relevantes sobre o sistema simulado que vão além dos resultados experimentais (assunto discutido no Capítulo 6). Por exemplo, considere um modelo de simulação de um sistema de distribuição rodoviário em que são apreciados mais de 20 parâmetros ou fatores de entrada (taxa de descarregamento, tempo de viagem, paradas de manutenção, quebras etc.). O cliente que encomendou o estudo de simulação poderia querer saber quais parâmetros afetam de modo mais significativo o número de viagens/caminhão feitas por mês ou, ainda, qual o número ótimo de caminhões que maximiza esse valor mensal de viagens/caminhão, dado que os demais parâmetros sejam mantidos constantes. Para lidar com questões como essas, dispomos de duas ferramentas: o Projeto de Experimentos (do inglês Design of Experiments – DOE) –, que responde ao questionamento sobre os fatores mais influentes na produtividade –, e a Simulação e Otimização –, que responde à pergunta sobre a frota ótima de caminhões. Na Seção 7.2, são apresentados os princípios do Projeto de Experimentos, e, na Seção 7.4, discute-se Simulação e Otimização. Ao final, na Seção 7.7, discute-se a integração entre as duas ferramentas.
7.2. Noções de Projeto de Experimentos Em projetos de simulação que contemplam um grande número de variáveis de entrada, é comum a necessidade de processarmos um grande número de cenários no simulador, no intuito de obtermos toda sorte de informações sobre o comportamento do sistema. Em uma fase posterior, podemos ser forçados a desprezar parte considerável das simulações realizadas, pois essas não apresentaram impacto significativo no sistema simulado. O “Projeto de Experimentos” é um método que permite estimar como as variáveis de entrada afetam a(s) resposta(s) de um experimento. Quando aplicado à simulação, o Projeto de Experimentos permite planejar de forma racional os cenários a serem executados, evitando o processo de tentativa e erro, tão comum nos projetos de simulação.
7.2.1. Conceitos fundamentais: fatores, níveis, respostas e espaço de combinações Assim como no caso do sistema de distribuição rodoviário, em muitos estudos de simulação é importante determinar como (e se) os parâmetros de entrada de um sistema afetam uma ou mais saídas; por exemplo: 1. Qual o efeito de se aumentar ou de se reduzir o número de equipamentos de uma fábrica na produtividade da linha de produção? 2. Qual o efeito de se aumentar ou de se reduzir o número de operadores de telemarketing
com relação ao nível de serviço de uma central de atendimento? 3. O lead-time de entrega é sensível a um aumento ou a uma redução no tempo de transporte entre células de produção? O Projeto de Experimentos (ou Projeto Experimental) é uma técnica estatística que pode responder a esses tipos de questionamentos de modo eficaz. Três conceitos são relevantes para se compreender o Projeto de Experimentos: fator, níveis e resposta. Um fator é qualquer variável de entrada a ser considerada, como o número de equipamentos em um sistema de manufatura, o número de veículos em um sistema de transporte ou o número de operadores em uma central de atendimento. Já osníveis estabelecem os valores associados a um determinado fator. Geralmente os níveis são considerados de modo qualitativo, associando valores numéricos aos fatores. Voltando ao exemplo do sistema de distribuição rodoviário, um fator poderia ser o tamanho dos caminhões, e os níveis associados a esse fator poderiam ser: pequeno (10 t), médio (20 t) ou grande (30 t). Para cada fator considerado, deve-se determinar uma quantidade apropriada de níveis; usualmente, no máximo quatro níveis são suficientes. Finalmente, uma resposta é uma variável de saída que se deseja analisar, como o número de viagens/caminhão por mês, a produtividade de uma linha de produção, o tempo de espera em fila etc. O conjunto de combinações de todos os níveis de todos os fatores é denominadoespaço
de combinações. Por exemplo, se forem considerados três níveis para um fator que afeta o
funcionamento de um sistema (fator A) e dois níveis para outro fator (fator B), o espaço de combinações será formado por seis valores da resposta desejada (Tabela 7.1). Tabela 7.1 – Conjunto de combinações para os dois fatores do exemplo Fato rA– Baixo
Fato rA– Médio
Fato r A– Alto
Fator B – Baixo
X11
X12
X13
Fator B – Alto
X21
X22
X23
7.2.2. Projeto de experimentos fatoriais 2k completo Um tipo de Projeto Experimental bastante utilizado é o chamado Experimento Fatorial k2 Completo.1 Nesse caso, cada fator possui apenas dois níveis (alto ou baixo) e existem fatores em consideração. Assim, o número total de combinações possíveis nessa categoria de Projeto de Experimentos é sempre igual a 2k. Considere o exemplo da frota de caminhões, em que o fatorA é o tamanho do caminhão, com apenas dois níveis: baixo (10 t) e alto (30 t). O fatorB representa o tamanho da frota: baixo (20 caminhões) e alto (40 caminhões). Nesse caso, tem-se k = 2 fatores e o número de combinações possíveis entre os níveis dos fatores A e B é 2k = 22 = 4 combinações, ou seja: (baixo, baixo); (baixo, alto); (alto, baixo) e (alto, alto). Assim, pode-se simular o modelo computacional do sistema para cada uma das combinações possíveis, gerando quatro
experimentos de simulação ou tratamentos . A notação proposta por Montgomery (1991) para denotar cada tratamento utiliza uma sequência de letras minúsculas. Uma letra minúscula indica que um dado fator está em seu nível alto dentro do tratamento. Assim, por exemplo, em um tratamento denominadoa”,“ o fator A está no nível alto, enquanto os demais fatores estão no nível baixo. Um tratamento chamado “ab” é aquele em que os fatores A e B estão no nível alto. A exceção para essa notação é o tratamento (1), em que todos os fatores estão no nível baixo. Para o exemplo da frota de caminhões, considere que foram realizados quatro tratamentos (combinações possíveis dos fatores), cujos resultados estão mostrados na Tabela 7.2 (os níveis baixo e alto também podem ser representados pelos valores –1 e +1, respectivamente). A resposta considerada foi o número de viagens/caminhão por mês. A partir dos resultados obtidos (Tabela 7.2), é possível determinar a influência de cada fator sobre a resposta do sistema calculando os valores de seus efeitos. Por exemplo, os tratamentos 1 e 3 mostram que o aumento no tamanho dos caminhões (fator A) causa um aumento do número mensal de viagens por caminhão de: 20 (= 30 – 10) viagens, no caso em que a frota (fator B) está em nível baixo. De modo semelhante, quando o fatorA é aumentado e a frota de caminhões está em nível alto (tratamentos 2 e 4), há um aumento de 20 (= 40 – 20) viagens. Assim, o efeitoE(A) do fator A é calculado pela diferença entre a resposta média observada quando o fatorA está em nível alto e a resposta média observada quando o fatorA está em nível baixo:
viagens/caminhão
(7.1)
Tabela 7.2 – Resultados para o planejamento 2 k Experimento
Fator A (tamanho do caminhão)
Fator B (número de caminhões)
Tratamento
Número de viagens/caminhão por mês
1
Baixo (-1)
Baixo (-1)
(1)
10
2
Baixo (-1)
Alto (+1)
b
20
3 4
Alto (+1) Alto (+1)
Baixo (-1) Alto (+1)
a ab
30 40
O termo entre colchetes na Equação 7.1 é chamado de contraste do fatorA, e seu valor (= 40) é proporcional ao valor do efeito de A – a proporcionalidade depende do número de fatores avaliados (neste caso, 2) e do total de avaliações do sistema feitas sob a mesma configuração dos fatores (neste caso, foi feita apenas uma avaliação do experimento). A importância dos contrastes será evidenciada quando discutirmos experimentos com mais de dois fatores. Analogamente, o efeitoE(B) do fator é calculado pela diferença entre a resposta média observada quando o fator B está em nível alto e a resposta média observada quando o fator
B está em nível baixo: viagem/caminhão
(7.2)
Assim como no caso do fator A, o contraste do fator B é dado pelo termo entre colchetes na Equação 7.2. De posse dos valores dos efeitos (ou dos contrastes), pode-se concluir que o fator A tem maior influência (ou é mais significativo) do que o fator B. Uma dúvida natural seria: existe interação entre os fatores A e B? Ou, em outras palavras, o efeito do fator A depende do nível do fator B (e vice-versa)? Pode-se mensurar o efeito da interação entre A e B, E(AB) partindo da hipótese de que, se não houve interação entre os fatores A e B, então o efeito do aumento deA, quando B é mantido baixo, deve ser o mesmo de quandoB é mantido alto. Numericamente, tem-se: • Caso 1: alteração na resposta quando A e B estão no mesmo nível = (30 – 10) = 20; • Caso 2: alteração na resposta quando A e B estão em níveis diferentes = (40 – 20) = 20. Assim, para os dados da Tabela 7.2, os efeitos são os mesmos, e podemos dizer que não há interação entre os fatoresA e B. O efeito da interação entreA e B, E(AB) é calculado pela diferença entre a resposta média observada quando os fatoresA e B estão no mesmo nível e a resposta média observada quando os fatoresA e B estão em níveis diferentes:
viagem/caminhão
(7.3)
Assim como nos casos anteriores, o contraste da interação entreA e B é dado pelo termo entre colchetes na Equação 7.3. A Tabela 7.3 apresenta os resultados dos tratamentos para um segundo caso em que os valores das respostas são ligeiramente diferentes. Tabela 7.3 – Resultados para o planejamento 2 k , quando existe interação entre os fatores Fator Tratamento
A (tamanho do caminhão)
B (número de caminhões)
Número de Nomenclatura viagens/caminhão por mês
1
–1 (baixo)
–1 (baixo)
(1)
2
–1 (baixo)
+1 (alto)
b
20
3
+1 (alto)
–1 (baixo)
a
30
4
+1 (alto)
+1 (alto)
ab
50
Neste caso, os contrastes valem:
10
viagens/caminhão
viagens/caminhão
viagens/caminhão
(7.4)
(7.5)
(7.6)
o efeito E(ABa )influência é diferentedesses de 0,fatores existe interação entre os Afatores e B e,que portanto, nãoComo se pode analisar de forma isolada. rigor,Apara se possa verificar a existência de interação significativa, deve-se construir uma tabela de análise de variância (“Tabela ANOVA”). No caso da simulação, por simplicidade, pode-se utilizar como resposta o valor médio de N replicações (dentro de um intervalo de confiança com a amplitude desejada) e utilizar o seguinte critério prático informal: se o módulo do efeito da interação for 10 vezes menor que os módulos dos demais efeitos envolvidos, pode-se considerar que não há interação significativa. Assim, para o exemplo anterior, não haveria interação entre os fatores A e B se o valor de E(AB) tivesse resultado abaixo de 0,1.
Exemplo 7.1: O pipoqueiro de Montgomery Para ilustrar a aplicação do planejamento experimental (que independe de se utilizar o
não simulação computacional), vamos primeiramente aplicá-lo a um exemplo que foi retirado e adaptado de Montgomery (1991). Um pipoqueiro pretende avaliar qual a influência de alguns fatores sobre o crescimento de suas pipocas. Para tanto, escolheu três fatores: • A marca da pipoca (Yoda ou Obi); • A proporção entre a pipoca e o óleo (0,8 ou 1); • O volume total de milho (1/3 litro ou 2/3 litro). A produção da pipoca é medida através da altura (em cm) que esta atingiu quando estourada no carrinho de pipocas. Como foram considerados três fatores, cada um em dois níveis distintos, o pipoqueiro realizou 23 = 8 experimentos ou tratamentos. Os resultados obtidos estão relacionados na Tabela 7.4. Tabela 7.4 – Resultados dos tratamentos para o exemplo do pipoqueiro Tratamento
Fator A: marca Obi = + Yoda = -
Fator B: milho/óleo 0,8 = 1=+
Fator C: volume 1/3 l = + 2/3 l = -
Saída: altura da pipoca (cm)
(1)
-
-
-
6,25
a
+
-
-
8,00
b
-
+
-
6,00
ab
+
+
-
9,50
c
-
-
+
8,00
ac
+
-
+
15,00
bc
-
+
+
9,00
abc
+
+
+
17,00
Os cálculos dos contrastes ficam facilitados pelo uso de umatabela de contrastes , que armazena os coeficientes (+1 ou –1) necessários para os cálculos de contrastes. A Tabela 7.5 representa uma tabela de contrastes válida para qualquer Projeto de Experimentos que tenha três fatores e dois níveis em cada fator, ou seja, para experimentos fatoriais 32 completos. Tabela 7.5 – Tabela de contrastes para três fatores e dois níveis Tratamento
Contraste
(1)
a
b
ab
c
ac
bc
abc
A
-1
+1
-1
+1
-1
+1
-1
+1
B AB
-1
-1
+1
+1
-1
-1
+1
+1
+1
-1
-1
+1
+1
-1
-1
+1
C
-1
-1
-1
-1
+1
+1
+1
+1
AC BC
+1
-1
+1
-1
-1
+1
-1
+1
+1
+1
-1
-1
-1
-1
+1
+1
ABC
-1
+1
+1
-1
+1
-1
-1
+1
Com o auxílio da Tabela 7.5, pode-se determinar facilmente os contrastes de cada efeito. Por exemplo, o efeito E(A) do fator A é calculado pela multiplicação dos coeficientes da linha do fator A na tabela de contrastes pelas respectivas saídas de cada tratamento da Tabela 7.3. O resultado é dividido por 2 k-1 = 23-1 = 4, em que k é o número de fatores experimentais. Assim, o efeitoE(A) vale: cm
(7.7)
Para os demais efeitos, tem-se: cm
(7.8)
cm
cm
cm
cm cm
(7.9)
(7.10)
(7.11)
(7.12)
(7.13)
Os valores dos efeitos podem ser ordenados em um gráfico de barras, como mostrado na Figura 7.1.
Figura 7.1 – Gráfico de efeitos x fatores.
Note que, aparentemente, os efeitos importantes são: A, C e AC. Assim, poderíamos dizer que os fatores que mais afetam a produtividade da pipoca são a marca e o tamanho do lote. No entanto, esta afirmação só pode ser feita se for possível desprezar as interações AB, AC, BC e ABC, o que não parece ser o caso, especialmente para AC.2 Aplicações do Projeto de Experimentos em problemas reais são realizadas com mais facilidade com o auxílio de softwares de estatística, tais como Minitab, SPSS, Statistica, dentre outros. Na próxima seção é apresentado um caso prático resolvido com o auxílio do Minitab.
7.3. P rojeto de Experimentos: um caso prático Uma fábrica que produz insumos para a indústria automobilística recebe parte de seus próprios insumos em big bags, transportados por caminhões do tiposider , ou a granel por caminhões-tanque. Os insumos são armazenados em silos externos e, no momento da produção, transferidos para os silos internos. A fabricação ocorre em três linhas de fabricação, que terminam em áreas de homogeneização de produtos e embalagem (em sacos de 25 kg ou embig bags). Para compreender melhor o sistema, foi construído um modelo de simulação e realizado um experimento fatorial 2k completo. Os fatores e os níveis escolhidos estão relacionados na Tabela 7.6. Tabela 7.6 – Fatores e níveis utilizados no exemplo da fábrica Fato r
Descrição
Valo rbaixo
Valo ralto
A
composição dos caminhões em % dos caminhões sider
10%
B
vazão da linha 1 em kg/minuto
valores srcinais de 30% de acréscimo aos vazão valores srcinais
C
vazão da linha 2 em kg/minuto
valores srcinais de 30% de acréscimo aos vazão valores srcinais
90%
valores originais de 30% de acréscimo aos
vazão
D
vazão da linha 3 em kg/minuto
E
composição das embalagens em % debig 10% bags
valoresoriginais 90%
As respostas obtidas pela simulação estão relacionadas na Tabela 7.7. Tabela 7.7 – Relação de saídas do modelo de simulação do exemplo da fábrica Saída
Descrição
big bags
Fesp BB
Fila máxima de espera de caminhões com
Fesp Gran
Fila máxima de espera de caminhões a granel
% Ut lin1
Taxa de utilização da linha 1
% Ut lin2
Taxa de utilização da linha 2
% Ut lin 3
Taxa de utilização da linha 3
Util Homog
Utilização do homogeneizador
Util Ensac
Utilização da ensacadeira
Produt Glob
Produção global (em t/mês)
Como há cinco fatores e o experimento realizado foi do tipo fatorial 2k completo, há 2k =
25 = 32 tratamentos possíveis. Para cada tratamento, foram realizadas cinco replicações do modelo, resultando em um total de 160 rodadas de simulação. Uma tabela para cada rodada foi construída e inserida no software de análise estatística Minitab, que possui a opção para gerar experimentos fatoriais. A Figura 7.2 ilustra a entrada de dados principais no Minitab para o experimento em questão.
Figura 7.2 – Dados de entrada do exemplo da fábrica representados no Minitab.
Após a entrada de dados, foi possível calcular os efeitos de cada fator e os efeitos compostos, que são os efeitos das interações entre os fatores. Um exemplo de relatório de saída do Minitab está mostrado na Figura 7.3, para a saída da fila máxima de espera de caminhões com big bags (Fesp BB). Na nomenclatura do Minitab, o efeito é denominado effect .
Factorial Fit: Fesp BB versus A, B, C, D, E Estimated Effects and Coefficients for Fesp BB (coded units) Term
Effect
Constant
Coef
SE Coef
T
P
2.46875
0.04593
53.75
0.000
A
2.81250
1.40625
0.04593
30.62
0.000
B
-0.01250
-0.00625
0.04593
-0.14
0.892
C
0.13750
0.06875
0.04593
1.50
0.137
D E
0.11250 0.06250
0.05625 0.03125
0.04593 0.04593
1.22 0.68
0.223 0.497
A*B
-0.03750
-0.01875
0.04593
-0.41
0.684
A*C
0.06250
0.03125
0.04593
0.68
0.497
A*D
0.08750
0.04375
0.04593
0.95
0.343
A*E
0.08750
0.04375
0.04593
0.95
0.343
B*C
0.18750
0.09375
0.04593
2.04
0.043
B*D
0.11250
0.05625
0.04593
1.22
0.223
B*E
-0.08750
-0.04375
0.04593
-0.95
0.343
C*D
-0.03750
-0.01875
0.04593
-0.41
0.684
C*E
0.01250
0.00625
0.04593
0.14
0.892
D*E
-0.06250
-0.03125
0.04593
-0.68
0.497
A*B*C
0.11250
0.05625
0.04593
1.22
0.223
A*B*D
0.08750
0.04375
0.04593
0.95
0.343
A*B*E
-0.16250
-0.08125
0.04593
-1.77
0.079
A*C*D A*C*E
-0.01250 -0.01250
-0.00625 -0.00625
0.04593 0.04593
-0.14 -0.14
0.892 0.892
A*D*E
-0.13750
-0.06875
0.04593
-1.50
0.137
B*C*D
-0.03750
-0.01875
0.04593
-0.41
0.684
B*C*E
0.06250
0.03125
0.04593
0.68
0.497
B*D*E
0.23750
0.11875
0.04593
2.59
0.011
C*D*E
0.13750
0.06875
0.04593
1.50
0.137
A*B*C*D
-0.11250
-0.05625
0.04593
-1.22
0.223
A*B*C*E
0.03750
0.01875
0.04593
0.41
0.684
A*B*D*E
0.16250
0.08125
0.04593
1.77
0.079
A*C*D*E
0.01250
0.00625
0.04593
0.14
0.892
B*C*D*E
0.03750
0.01875
0.04593
0.41
0.684
A*B*C*D*E
0.01250
0.00625
0.04593
0.14
0.892
Figura 7.3 – Resultados d os efeitos sobre a resposta Fesp BB.
Os efeitos relevantes para a resposta Fesp BB são os que apresentam p-value inferior a 0,05 (fator P da tabela). Isoladamente, o único fator relevante é o fator A. Como este fator representa a porcentagem de caminhões sider , é esperado que afete a fila máxima de caminhões sider em espera (Fesp BB). Neste caso, o efeito vale 2,81, ou seja, se alterarmos a porcentagem de caminhõessider de 10% para 90% isto causa um aumento médio de 2,81 caminhões na fila de espera. Os cálculos dos efeitos dos fatores estudados em todas as respostas estão sumarizados na Tabela 7.8 (as células da tabela marcadas com “-” representam efeitos não significativos, o seja, p-value > 0,05). Tabela 7.8 – Principais efeitos sobre as respostas do exemplo Fesp
Fesp
%Ut
%Ut
%Ut
Util
Util
Pro dut
BB
Gran
Lin1
Lin2
Lin3
Ho mo g
Ensac
Glo b
A
2,81
-2,74
-
-
-
-
-
-
B
-
-
-3,18
-
-
0,53
1,01
338,87
C D
-
-
-
-1,56
-
0,22
0,51
158,63
-
-
-
-
-2,79
0,48
0,98
317,13
E
-
-
-
-
-
-
12,67
-
Note que o fator A só afetou significativamente as respostasFesp BB e Fesp Gran, o que era, de certa forma, esperado. Os fatores de vazão das três linhas (B, C e D) afetaram as utilizações das respectivas linhas, dos equipamentos e a produção global. O fator E (composição das embalagens) afetou somente a utilização do equipamento de ensacamento. Dessa maneira, o planejamento experimental serve para avaliar como uma mudança em um fator afeta a resposta e pode servir também como ferramenta de verificação e validação de um modelo de simulação (ver Leitura Complementar do Capítulo 5).
7.4. Simulação e Otimização Segundo Averill Law, em participação no painel “O futuro da simulação” no simpósio Winter Simulation Conference de 2001 (BANKS, 2001), a integração de módulos de otimização com modelos de simulação é um dos assuntos mais “quentes” da atualidade. Ainda segundo Law, um dos maiores impedimentos para o uso da Simulação e Otimização é o tempo de execução que esse processo demanda. Alguns exemplos de aplicações da Simulação e Otimização seriam (FU, 2001): 1. Sistemas de manufatura. Podemos, por exemplo, ter um modelo de simulação de uma fábrica de semicondutores integrado a um modelo de otimização que permita maximizar a produtividade (número total de “chips”) e, simultaneamente, minimizar o tempo de ciclo (tempo médio que o “chip” gasta na fábrica). 2. Cadeias de suprimentos. Dada uma cadeia de suprimentos de fabricação de PCs, determinar como o sistema pode ser operado a fim de reduzir os estoques totais e aumentar o nível de serviço do cliente. 3. Centrais de atendimento (call centers ). Dado um modelo de simulação de uma central de atendimento, determinar como esta pode ser operada de modo a minimizar os custos do sistema (p. ex., redução do número de agentes) e aumentar o nível de serviço (reduzir os tempos de espera). Nesta seção, procuramos fazer uma introdução sobre esse tema e apresentamos um caso
prático para ilustrarmos os aspectos teóricos. Embora a simulação computacional apresente uma série de vantagens, descritas ao longo dos capítulos deste livro, ela possui ainda algumas “limitações”. A simulação, como vimos, questions ), é uma ferramenta que responde a perguntas do tipo “O que ocorre se?” what-if ( como: “O que acontecerá com minha produção se aumentarmos o número de operadores de 10 para 11?”, ou “O que acontecerá com o nível médio de estoques se mudarmos nossa regra de sequenciação de FIFO (primeiro a entrar, primeiro a sair) para SIRO (atendido em ordem aleatória)?”. Nesse sentido, a simulação é uma ferramentaavaliadora de soluções, e não geradora de soluções. Uma abordagem que faz com que essa condição mude é a utilização de técnicas de otimização na simulação computacional. Tipicamente, um problema de otimização pode ser formulado através de uma função objetivo (ou medida de desempenho) que se deseja maximizar ou minimizar, sujeito a um conjunto de restrições – equações ou inequações que delimitarão os valores que as variáveis podem assumir. A Figura 7.4, por exemplo, representa um problema de programação linear.
Figura 7.4 – Formulação típica de um problema de programação linear.
Um problema de otimização pode conter muitas variáveis, sejam elas inteiras, reais, binárias etc. Resolver o problema de otimização consiste em determinar os valores ótimos dessas variáveis, ou seja, que minimizam ou maximizam uma função objetivo. De acordo com a formulação e as variáveis envolvidas, podemos utilizar diversos métodos de solução. Por exemplo, se a função objetivo e as restrições forem constituídas por combinações lineares das variáveis, podemos resolver o problema de otimização através da programação linear. Caso a formulação tenha variáveis inteiras, podemos aplicar técnicas derivadas de busca em árvore (branch-and-bound, beam search etc.). Caso a formulação seja não linear, podemos aplicar técnicas de busca heurísticas. Em muitos casos, as técnicas utilizadas não garantem o ótimo, e, portanto, são chamadas de técnicas “subotimizantes”. As técnicas alternativas de busca, ou meta-heurísticas, como os algoritmos genéticos, o Simulated Annealing e o Tabu Search, são consideradas técnicas subotimizantes.
O uso da otimização pode implicar alguns inconvenientes. O primeiro é a limitação na modelagem de sistemas complexos. Ao se introduzirem aspectos dinâmicos e um grande número de variáveis, o modelo de otimização pode ficar difícil de ser construído, podendo se tornar extremamente complicado. Por outro lado, um bom modelo de otimização (simples, é claro) pode não possuir uma técnica de solução apropriada, impedindo a resolução do problema de otimização. Portanto, tanto a simulação quanto a otimização possuem algumas limitações. A questão é: como juntar essas duas ferramentas de modo a minimizar as desvantagens de cada uma delas? É o que se discute a seguir. O termo “Simulation Optimization ( SO)” surgiu da junção das ferramentas de simulação e otimização. Segundo Azadivar (1992), um problema de SO é um problema de otimização em que a função objetivo, ou as restrições ou, ainda, ambas, são saídas que somente podem ser avaliadas pela simulação computacional. Quando se fala em problemas de SO com uma única função objetivo, existem basicamente três métodos de solução: métodos de aproximação estocásticos, métodos de superfície de resposta e métodos de busca. Dentre esses métodos, os mais utilizados nos softwares comerciais são os métodos de busca, especialmente os algoritmos genéticos . A ideia básica desses métodos é a seguinte: tendo uma condição inicial X0, o procedimento de otimização atuará interativamente com o modelo de simulação, fornecendo os valores das variáveis a serem simuladas e recebendo do modelo de simulação o valor da
função objetivo. O procedimento de otimização terminará quando algum critério for satisfeito (p. ex., atingiu-se o número máximo de iterações, não se encontra mais potencial significativo de otimização das variáveis etc.). O resultado final desse procedimento são os valores “ótimos” (ou “subótimos”) das variáveis de interesse do modelo de simulação. Essa ideia está ilustrada na Figura 7.5.
Figura 7.5 – Representação da ideia-base da Simulação e Otimização.
Embora a SO tenha sido abordada pela literatura há mais de 20 anos, só há aproximadamente 10 anos essas técnicas têm sido incorporadas nos softwares de simulação comerciais. Cabe reforçar que a Simulação e Otimização, apesar de apresentar inúmeras vantagens, apresenta algumas limitações; por isso, não deve ser encarada como uma panaceia milagrosa. A abordagem da SO, mesmo sendo generativa, não substitui o analista, que desempenha papel fundamental na definição da função objetivo e das variáveis a serem
otimizadas. Além disso, mesmo com o surgimento de computadores cada vez mais velozes e poderosos, a SO ainda consome muito tempo de computação. Isso porque o algoritmo de otimização tem que avaliar muitas combinações de variáveis, bem como efetuar as repetições necessárias para cada conjunto de valores das variáveis, já que estamos lidando com variáveis aleatórias. Finalizando, nos últimos 20 anos, um considerável esforço foi gasto no estudo da otimização de variáveis quantitativas em modelos de simulação (número de máquinas, número de operadores, velocidades de processamento, por exemplo). No entanto, muito pouco tem sido reportado no que tange à otimização das características estruturais e das políticas operacionais que podem ser estudadas em um modelo de simulação (p. ex., qual o conjunto de ações ou a política ótima de estoques em um centro de distribuição?). Nesse caso, cada avaliação da função objetivo pode requerer alterações estruturais no modelo de simulação, o que torna as técnicas tradicionais de otimização de variáveis quantitativas pouco aplicáveis. Acreditamos que esse ponto é de extrema importância para o futuro da SO. Outra questão importante é que a maioria dos métodos de Simulação e Otimização lidam com uma única função objetivo (mesmo quando temos vários objetivos – neste caso, a função objetivo contém pesos relativos para cada um dos múltiplos objetivos). Algumas pesquisas recentes procuram encarar o problema da Simulação e Otimização segundo vários objetivos que devem ser otimizados independentemente, e não otimizados mediante uma única função objetivo (BELTON; HODGKIN; MONTIBELLER, 2004).
7.5. Simulação e Otimização: um caso prático Este caso prático (BARRETO et al. , 1999) foi realizado para testar o desempenho de um algoritmo de otimização específico em conjunto com um modelo de simulação. O modelo adotado é o do caso da usina, apresentado nos exercícios de revisão do Capítulo 3 (o leitor deve retornar à descrição do problema antes de prosseguir). Como parâmetros de entrada a serem otimizados, adotamos: número de torpedos, número de guindastes, número de fornos de preparação e o volume máximo de metal fundente que um torpedo pode conter. Em todos os casos, essas variáveis assumem valores inteiros com incremento unitário (variam de 1 em 1). As variáveis de entrada, bem como suas faixas de variação, estão relacionadas na Tabela 7.9. Tabela 7.9 – Variáveis de entrada e seus possíveis valores Descrição da variável
Valo r mínimo
Valo r máximo
Incremento
Número de torpedos ( Nt)
1
12
1
Número de guindastes (Nc)
1
2
1
Número de fornos ( Nsf)
1
6
1
Capacidade de cada torpedo (Vt)
50
350
1
Assim, um cenário é dado por uma combinação das variáveis de entrada N( t, Nc, Nsf e Vt). Note que, ao todo, temos 43.200 (= 12 × 2 × 6 × 300) combinações possíveis. Isso fornece uma ideia de como é difícil a otimização de problemas de simulação, se tivermos de avaliar cada uma das soluções possíveis independentemente. Na prática, utilizou-se um método de busca que investiga apenas uma porcentagem dessas combinações. Para a solução do problema de SO, deve-se, também, adotar uma função objetivo a ser minimizada ou maximizada. No caso da usina, é “natural” considerar a minimização dos custos totais da planta, ou seja, os custos de investimento somados aos custos operacionais. O custo de investimento pode ser calculado pela amortização dos equipamentos (torpedos, guindastes e fornos). A Tabela 7.10 relaciona os custos de amortização por unidade de cada equipamento, em uma base mensal. Tabela 7.10 – Preços relativos dos equipamentos do exemplo Equipamento s
Preçopo runidade(R$)
Torpedos
2.100,00
Guindastes
8.300,00
Fornosdepreparação
16.700,00
Dado que cada tonelada de metal fundente perdido (caso não haja torpedos suficientes) custa R$ 100,00, é possível calcular o custo total mensal C ( TM) gerado pela planta:
(7.14)
Onde: Perd é a perda gerada em 10 dias de produção, em milhares de reais. Essa é a função que foi utilizada para a rodada da Simulação e Otimização. O modelo da usina foi implementado em um simulador conjuntamente com um algoritmo de otimização em Visual Basic para Excel, comunicando-se diretamente com o software de simulação. Comofront-end desse processo (para definir os valores iniciais dos parâmetros, bem como os parâmetros adotados pelo algoritmo de otimização), foi utilizada uma planilha eletrônica. Poder-se-ia, nesse caso, utilizar um módulo de otimização comercial, mas, como o objetivo era também testar o desempenho do algoritmo, preferiu-se fazer toda a sua implementação. A operação da planta foi simulada durante 10 dias, com cinco replicações para cada combinação das variáveis de entrada. A solução inicial considerava três torpedos, um guindaste, cinco fornos e capacidade de 300 toneladas para cada torpedo. Os resultados da simulação com o procedimento de otimização estão relacionados na Tabela 7.11. Tabela 7.11 – Resultados do procedimento de simulação e otimização Valo res
So luçãoinicial
So lução“ótima”
Funçãoobjetivo(milharesR$)
7.490,16
112,70
Perda (t/mês)
73.920
0
Número de torpedos
3
6
Número de guindastes
1
2
Número de fornos
5
5
Capacidadedecadatorpedo(t)
300
260
Para determinar os valores mostrados na Tabela 7.11, o algoritmo de otimização avalio somente 3% das 43.200 combinações possíveis. A solução “ótima” foi obtida em aproximadamente 30 minutos, com a utilização de um computador Pentium II de 300 MHz. Dizemos “ótimo” (entre aspas) porque, em geral, os algoritmos utilizados em um procedimento de Simulação e Otimização são considerados “subotimizantes”, pois podem chegar muito próximo do valor “ótimo”, embora não se tenha garantia de que obtenham, necessariamente, o valor ótimo. Note que a redução do valor da função objetivo foi substancial: os custos operacionais mensais caíram de R$ 7.490.160,00 para R$ 112.700,00, devido, principalmente, à redução das perdas geradas pelo processo.
7.6. Simulação e Otimização: softwares comerciais Felizmente, não precisamos, na prática, desenvolver um algoritmo de otimização para modelos de simulação, já que existem softwares comerciais com essa finalidade. Os passos para fazer a otimização nesses softwares são praticamente os mesmos estabelecidos aqui, ou seja, para “otimizarmos” um modelo de simulação, devemos: 1. Definir as variáveis de decisão e suas faixas de variação; 2. Definir as restrições do problema; 3. Definir a função objetivo e o tipo de otimização (maximização ou minimização); 4. Definir o número de rodadas de simulação (ou um tempo de limite para o processo de otimização) e o número de replicações em cada rodada. Na Figura 7.6, são apresentadas algumas telas do software de otimização OptQuest (seguindo os passos anteriores), que funciona em conjunto com vários softwares de simulação comerciais. Deve-se observar que os dados para o passo 2 (definição das restrições) ficaram em branco, pois o modelo da usina não possui qualquer restrição. O padrão do OptQuest é fazer três replicações por rodada de simulação, mas isso pode ser alterado. Ao clicar o botão de otimização, esse software fará automaticamente diversas simulações, buscando os valores “ótimos” das variáveis de decisão.
Figura 7.6 – Aplicação de simulação e otimização u tilizando o sof tware comercial Optquest.
Na Figura 7.7, são apresentados os resultados de um processo de otimização (no caso, maximização) após nove rodadas de simulação (o OptQuest desenha um gráfico da função objetivo em função de cada rodada de simulação). Neste caso, a solução “ótima” foi obtida
logo na terceira rodada.
Figura 7.7 – Resultados de u ma simulação e o timização u tilizando o sof tware comercial OptQuest.
7.7. Integração entre Projetos de Experimentos e a S imulação e Otimização Segundo a classificação proposta por Stuckman et al. (1991), existem três tipos de analistas no que tange à otimização de um sistema por simulação. Um primeiro tipo apelará para o método da “tentativa e erro”, alterando desordenadamente os valores das variáveis de entrada, de modo a obter um conjunto de valores que “otimizem” a medida de desempenho escolhida; um segundo tipo irá um passo à frente e desenvolverá algo como uma “análise de sensibilidade”, alterando sistematicamente as variáveis e observando seus efeitos sobre o resultado – este também pode aplicar alguma técnica sistemática, como o Projeto de Experimentos; o terceiro tipo aplicará diretamente um procedimento de Simulação e Otimização. Pode-se enumerar algumas vantagens dessa última abordagem. A principal é que se tem um procedimento sistemático para a otimização das variáveis, evitando métodos desgastantes como a “tentativa e erro”. Juntamente com o procedimento de otimização, a simulação se torna um gerador de soluções, e não só um avaliador de soluções. A Simulação e Otimização (SO) tem maior poder de análise do que o Projeto de Experimentos (DOE), pois lida com variáveis contínuas e discretas, em vez de trabalhar apenas com níveis dos fatores (CHWIF, 1997). Na prática, as duas ferramentas podem ser usadas em etapas distintas da análise de um modelo de simulação, como indicado na Figura
7.8: o DOE pode ser realizado primeiro, para avaliar quais variáveis realmente possuem influência sobre a função objetivo; após essa etapa, deve-se aplicar a SO para determinar os valores que otimizam a função objetivo. Um exemplo de uso encadeado das ferramentas é apresentado por Montevechi, Filho e Medeiros (2006), em que os autores aplicaram o procedimento de Projeto de Experimentos com a finalidade de diminuir o número de variáveis de decisão em um caso de Simulação e Otimização. Segundo os autores, a aplicação dessas ferramentas conjuntamente levou a uma redução de 59% a 67% no número de rodadas de simulação, em vários casos analisados.
Figura 7.8 – Relação entre DOE e SO na análise de u m modelo d e simulação.
7.8. Exercícios de revisão 1. Descreva um caso completo em que possa ser aplicado um procedimento de Projeto de Experimentos e de Simulação e Otimização. 2. Uma companhia está especificando uma linha de montagem depallets retornáveis e resolve criar um modelo de simulação para avaliar a influência de três fatores em sua produtividade. Os fatores adotados são (entre parênteses, os valores associados aos níveis baixo e alto do respectivo fator): • A: número de buffers existentes antes de cada posto de carregamento ou montagem (1 ou 3); • B: variação dos tempos de carregamento ou montagem (15% ou 25% de desvio em relação à média); • C: quantidade de pallets retornáveis no sistema (4 ou 8). Para cada combinação dos fatores foram realizadas 10 replicações do modelo. Os resultados obtidos estão dispostos na Tabela 7.12. Tabela 7.12 – Exercício 2 A
B
C
Saída: produção horária média
-
-
-
113,42
-
-
+
113,42
-
+
-
109,08
-
+
-
109,12
+
-
+
113,96
+
-
+
114,60
+
+
+
110,40
+
+
+
113,02
Deseja-se saber qual ou quais fatores mais afetam a produtividade e qual deve ser a especificação dessa linha (número de buffers e número de pallets retornáveis).
3. A usina de açúcar Maiscavo tem capacidade para esmagar uma média diária de 14.400 toneladas de cana-de-açúcar. O transporte da cana do campo (lavoura) para a unidade industrial é feito por 72 caminhões, que carregam, cada um, 40 toneladas por viagem. Na entrada da unidade industrial, os veículos são pesados por uma balança de matéria-prima (o que demora, em média, 6 minutos/caminhão, segundo uma distribuição exponencial) e, posteriormente, passam por uma sonda mecânica que coletará uma amostra para determinar o teor de sacarose contido na cana-de-açúcar. O tempo de coleta é fixo e dura quatro minutos. Em seguida, os caminhões formam fila no pátio da indústria para 3
descarregarem sua carga. A retirada da carga dos caminhões é feita por umhillo , que
demora em média oito minutos, com desvio-padrão de dois minutos, normalmente distribuídos, para executar a operação (retirar toda a carga). O hillo abastece a moega, que possui capacidade de processamento de 10 toneladas por minuto. Após a descarga da matéria-prima, os caminhões passam pela balança da tara e seguem novamente para a região de corte da cana. O tempo de pesagem em vazio de cada caminhão é o mesmo da pesagem do veículo cheio. O tempo de ida à lavoura e de carregamento segue uma distribuição normal com média 120 minutos e desvio-padrão de 30 minutos. A usina funciona durante 24 horas por dia. A administração da usina acredita que a frota atual de 72 caminhões está superdimensionada e deseja fazer um estudo de Simulação e Otimização para confirmar essa suspeita. A partir da descrição fornecida, responda: a Qual(is) é(são) a(s) variável(is) de decisão deste modelo? b Defina uma função objetivo adequada ao estudo. Lembre-se de que você deve maximizar a produtividade e minimizar o custo fixo – proporcional ao número de caminhões. c Construa o ACD do problema. d Implemente o modelo e determine o número ótimo de caminhões que maximiza a produtividade e minimiza o número de caminhões. e Refaça o item d), supondo que cada caminhão possui indisponibilidade (quebras, paradas etc.) durante 15% do tempo.
4. Qual a maior dificuldade de aplicação de SO na prática: tempo de processamento,
inexistência de softwares comerciais ou falta de conhecimento da técnica?
5. Defina as variáveis a serem otimizadas e uma função objetivo para os seguintes problemas: a O problema do “centro de distribuição” descrito no Exemplo 6.4 do Capítulo 6. b A Mac Dongle é uma lanchonete que faz hambúrgueres para viagem. Seu funcionamento é ininterrupto, durante 24h por dia. Atualmente, sua linha é capaz de produzir quatro tipos de sanduíche, com os seguintes ingredientes: • Mac Dongle Hamburguer: hambúrguer (1), molho especial e pão; • Mac Dongle Cheeseburguer: hambúrguer (1), queijo tipomozzarella, molho especial e pão; • Mac Dongle Salada: hambúrguer (1), queijo tipomozzarella, molho especial, alface, tomate, maionese e pão; • Mac Dongle Supremo: hambúrgueres (2), queijo tipo mozzarella, molho especial, alface, tomate, maionese e pão especial. Esse é o único sanduíche que contém dois hambúrgueres e pão especial (maior do que o pão comum). Os clientes chegam à Mac Dongle com uma certa frequência e se dirigem para a respectiva fila (fila do Hamburger, Cheeseburguer, Salada e Supremo). Se o cliente ficar muito tempo esperando, sairá do Mac Dongle com muita raiva, sem comprar nada, e contabilizará as amargas estatísticas dos clientes insatisfeitos. Se o cliente não esperar muito, pedirá seu sanduíche preferido, pagará e sairá da lanchonete
contente. Na cozinha, os hambúrgueres são produzidos e estocados nas respectivas bandejas, pois na Mac Dongle a produção de hambúrgueres é antecipada para minimizar os tempos de espera. Assim, caso seu sanduíche esteja disponível na bandeja, o cliente será atendido imediatamente quando chegar ao balcão. A capacidade máxima de produção da cozinha é de 120 sanduíches/hora. Se a produção for de até 30 sanduíches/hora, não é necessário qualquer investimento em equipamentos; caso contrário, será preciso alugar equipamentos adicionais. Segundo a política de qualidade do Mac Dongle, nenhum sanduíche pode ficar mais de seis minutos aguardando na bandeja, pois, além de perder algumas propriedades de sabor, o sanduíche esfria. Se isso ocorrer, o sanduíche será jogado fora imediatamente, contabilizado as estatísticas dos “hambúrgueres jogados fora”. Um caminhão de entregas passa pela Mac Dongle duas vezes ao dia e repõe todos os estoques na quantidade máxima especificada. Devido ao trânsito de Dongle City, o caminhão pode chegar adiantado ou atrasado. O tempo de descarregamento dos produtos gira em torno de uma hora. Caso haja falta de um ou mais itens no estoque, a Mac Dongle deixará de vender seus sanduíches, contabilizando a estatística de “hambúrgueres perdidos”. Todos os itens de suprimentos são embalados unitariamente para cada sanduíche em embalagens reutilizáveis. Isso quer dizer que, por exemplo, um pacote de queijo, um pacote de molho especial, um pacote de pão e um pacote de hambúrguer permitem
fazer um Dongle Cheeseburguer. A única exceção, para todos os casos, é com relação ao Mac Supremo, pois são necessários dois hambúrgueres (e, portanto, dois pacotes de hambúrguer) em sua composição. A partir dos custos de produção, armazenagem, aluguel e das receitas advindas da definição dos preços de cada sanduíche, é possível estabelecer a margem de lucro da cadeia.
6. Para o exercício 4 do Capítulo 3 (“Fundição”), sabe-se que o custo de cada derramamento desperdiçado é de R$ 35.000,00 e que o custo de um conjunto de molde é de R$ 530.000,00. Supondo que não haja aumento de custos variáveis de produção, determine o número de moldes que minimiza os custos totais. 7. Este exemplo4 se refere à manutenção de máquinas em uma fábrica. A fábrica possui quatro máquinas, duas equipes de auxiliares de manutenção, dois eletricistas e um mecânico. Sempre que uma máquina quebra, é avaliada e consertada pelo mecânico, voltando a trabalhar até quebrar novamente. Cada máquina funciona sem quebras por um tempo exponencialmente distribuído, com média de 10 horas. Quando a máquina quebra, é necessário que um eletricista desconecte seus cabos de força, o que demora uma hora. Após a desconexão da rede, uma equipe de auxiliares de manutenção retira a máquina da sua posição srcinal e a coloca na área de manutenção, em um processo delicado que leva, em média, cinco horas. Somente após estar devidamente posicionada na área de manutenção a máquina é avaliada e consertada pelo mecânico: isso é feito em uma média
de seis horas, segundo uma distribuição normal, com desvio-padrão de uma hora. Para recolocar a máquina em sua posição de trabalho, uma equipe de auxiliares de manutenção demora um tempo uniformemente distribuído entre cinco e oito horas. Para que a máquina possa voltar a operar, é necessário que o eletricista reconecte todos os seus cabos, o que leva de uma a quatro horas, segundo uma distribuição uniforme. Sabe-se que o lucro advindo de cada uma das quatro máquinas, funcionando durante 100% do tempo, é de R$ 40.000,00 por mês. Os custos mensais de cada técnico por turno de oito horas estão dispostos na Tabela 7.13. Determine o número ótimo de recursos que maximiza o lucro total da fábrica (lucro da máquina – custos dos recursos humanos). A fábrica opera 24 horas por dia. Tabela 7.13 – Exercício 7 Custos/(mês×turno) Ajudante
R$ 800,00
Eletricista
R$ 2.400,00
Mecânico
R$ 3.200,00
Referências bibliográficas AZADIVAR, Farhad. A tutorial on simulation optimization.Proceedings of the 1992 Winter Simulation Conference, p.184-204, 1992. Proceedings of the 2001 Winter BANKS, Jerry. Panel Session: The future of simulation. Simulation Conference, p.1453-1460, 2001. BARRETTO, Marcos R. B; CHWIF, Leonardo; ELDABI, Tillal; PAUL, Ray J. Simulatio optimization with the linear move and exchange optimization algorithm. Proceedings o the 1999 Winter Simulation Conference, p.806-811, 1999. BELTON, Valerie; HODGKIN, Julie; MONTIBELLER, Gilberto. From decision to decision: an integrated approach linking discrete event simulation, evolutionary multiobjective optimisation and multicriteria decision analysis.Proceedings of the 2004 International Workshop on Simulation, Birmingham, 2004. BOX, George E. P., HUNTER, William G.; HUNTER, J. Stuart.Statistics for experimenters – an introduction to design, data analysis and model building. Nova York: John Wiley & Sons, 1978. CHWIF, Leonardo. Simulation optimization – uma introdução. Workshop de Simulação, p.55-58, Centro de Estudos em Logística, 1997. FU, Michael. Simulation optimization.Proceedings of the 2001 Winter Simulation Conference, p.53-61, 2001.
MONTEVECCHI, José A.; FILHO, Renaldo G. de A.; MEDEIROS, André L. Applicatio of factorial designs for reducing factors in optimization via discrete-event simulation. Proceedings of the 2006 Winter Simulation Conference, p.1977-1984, 2006. MONTGOMERY, Douglas C.Design and analysis of experiments . Nova York: Joh Wiley & Sons, 1991. PAUL, Ray J. Activity cycle diagrams and the tree phase method. Proceedings of the 1993 Winter Simulation Conference, p.123-131, 1993. PAUL, Ray J.; BALMER, David W.Simulation modelling. Londres: Chartwell-Bratt, 1993. STUCKMAN, Bruce; EVANS, Gerald optimization W.; MOLLAGHASEMI, Mansooreh. of global search methods for design using simulation. ProceedingsCompariso of the 1991 Winter Simulation Conference, p.937-943, 1991.
Capítulo 8
Estudo de casos
Neste capítulo demonstramos alguns exemplos de casos que podem ser resolvidos pela Simulação de Eventos Discretos. Alguns deles são baseados em problemas reais, resolvidos previamente em projetos de simulação, outros são baseados em problemas de natureza probabilística, que podem ser encontrados nas referências bibliográficas sugeridas ao final do capítulo. Procuramos selecionar um conjunto de problemas de maior porte, que ustificam a elaboração de um projeto completo de simulação. Para a elaboração do relatório técnico, sugerimos a leitura do Apêndice IV.
Centro de distribuição 1 1. A Oplogic é uma transportadora que possui um centro de distribuição (CD), na cidade de Uberlândia-MG. No CD, os intervalos de tempo entre chegadas sucessivas de pedidos de
entregas são exponencialmente distribuídos, com média de quatro horas. A transportadora possui uma frota de três caminhões, e 10 carregadores estão à disposição para se carregamento, sendo que nesse processo cada caminhão utiliza, necessariamente, quatro carregadores simultaneamente. Os tempos de carregamento de caminhões são normalmente distribuídos, com média de 100 e desvio-padrão de 30 minutos. O CD possui duas docas disponíveis para a operação de carregamento (para carregar, os veículos devem estar, inevitavelmente, posicionados em uma doca). Os tempos de transporte (da transportadora até o cliente) estão uniformemente distribuídos no intervalo entre 120 e 240 minutos. Os tempos de retorno (do cliente até a transportadora) seguem exatamente essa mesma distribuição. O diretor da operação deseja utilizar uma nova “estratégia de marketing”: garantir que a entrega chegue ao cliente em um tempo de, no máximo, seis horas, contadas a partir da chegada do pedido ao centro de distribuição. Se isso não ocorrer, o cliente não precisa pagar o frete da carga, que vale, em média, R$ 10.000,00. Utilizando um modelo de simulação, responda: a) A estratégia é viável? b) Quais os recursos mínimos necessários (caminhões, carregadores e docas) para que a Oplogic possa implementar a nova estratégia? c) Suponha que um pico de demanda de 30% ocorra para esse CD. O que isso implica na operação? Aponte quais estratégias o gerente poderia adotar nessa situação.
Manutenção e disponibi lidade de equi pamentos2 2. A Green Drill é uma empresa que opera sete sondas de perfuração de petróleo em um campo petrolífero no mar. As sondas trabalham em operação contínua, interrompendo se funcionamento apenas para manutenção corretiva. O tempo entre falhas é descrito por uma distribuição normal com média de 168 e desvio-padrão de 24 horas. A manutenção é feita por uma única equipe e sua duração é exponencialmente distribuída, com média de 24 horas. No início da operação, a equipe se encontra em uma base em terra. A cada quebra de sonda, a equipe se desloca para o local da sonda, ali permanecendo até o término da manutenção. Ao final da manutenção, se não houver outras sondas quebradas, a equipe retorna à base; caso haja, a equipe se desloca diretamente para a sonda que estiver aguardando por manutenção há mais tempo. Os tempos de deslocamento entre as sondas são descritos por uma distribuição normal com média de 0,9h e desvio-padrão de 0,2h. Os tempos de deslocamento entre as sondas e a base em terra também seguem uma distribuição normal, com média de 1,2h e desvio-padrão de 0,2h. a) Construa o ACD representativo do sistema. b) Para o cenário apresentado, qual a disponibilidade3 média das sondas? c) O critério adotado pela Green Drill para a disponibilidade mínima das sondas é de 85%. Devido ao aumento do preço do petróleo, a empresa prevê um aumento do número de sondas em perfuração no campo. Qual o número de sondas que a equipe atual de manutenção conseguiria atender, garantido o critério de disponibilidade?
Filas em um supermercado 4 3. O supermercado Pão de Mel vem sofrendo reclamações constantes dos clientes, insatisfeitos com o tempo de espera em fila. Pacácio Jr., o novo gerente do supermercado, pensa em estabelecer algum critério para determinar quantos caixas devem estar abertos para um atendimento satisfatório da clientela. Inicialmente, Pacácio quer estudar a situação aos sábados, pois o sábado, segundo a experiência do mercado varejista, é o dia de maior fluxo de clientes. Fisicamente, o supermercado dispõe de sete caixas; porém, nos dias de maior demanda, o supermercado abre um caixa para compras (ditas “expressas”) iguais ou inferiores a 10 volumes, e cinco caixas para compras (ditas “normais”) com mais de 10 volumes. Os tempos entre chegadas sucessivas de consumidores no supermercado são exponencialmente distribuídos, com média de 45 segundos. Sabe-se que 25% dos consumidores farão compras rápidas (e utilizarão os caixas expressos), demorando, em média, 400 segundos (distribuídos exponencialmente) só para comprar. No caixa expresso, os tempos de atendimento (registro e pagamento) são normalmente distribuídos com média de 90 segundos e desvio-padrão de nove segundos. Os consumidores que não fazem compras rápidas levam, em média, 2.500 segundos para realizarem suas compras (distribuídos exponencialmente) e 300 segundos em atendimento no caixa (segundo uma distribuição normal com desvio-padrão de 30 segundos). Os consumidores aparentam escolher sempre o caixa com a menor fila, e não realizam a “troca” de filas; ou seja, escolhida uma fila, permanecem nela mesmo se a fila
ao lado diminuiu de tamanho. Construa um modelo de simulação que obedeça à descrição do supermercado. Considere que o supermercado opera durante 12 horas consecutivas aos sábados. a) Pacácio considera que um bom supermercado nunca deve ter uma fila maior do que cinco pessoas nos caixas. Quantos caixas seriam necessários para atender a esse nível de serviço? 5 Na realidade, sabe-se que existe uma alta correlação entre o tempo de compra e o tempo de atendimento no caixa. Feitos alguns estudos, descobriu-se uma correlação linear entre o tempo de atendimento e o tempo de compra. Dessa maneira, tem-se que o tempo de atendimento no caixa expressoTAE ( ) e o tempo de atendimento no caixa normal (TAN) para um dado cliente podem ser expressos por:
TAE = 0,10TC + 20 minutos; TAN =0,15TC – 25 minutos. Onde TC é o tempo de compra do cliente.
b) Altere o modelo, para que ele represente essa nova condição. Quais são as novas necessidades de caixas no supermercado?
Um sistema de identificação de produto por leitura magnética reduziria o tempo de registro de mercadorias em aproximadamente cinco vezes. Deste modo, os novos tempos (em segundos) para registro seriam: Normal (20,2), para o caixa expresso; Normal (60,6), para as compras normais. O custo fixo de implantação de um sistema desse tipo é de R$ 10.000,00, e o custo variável é de R$ 2.500,00 por caixa.
c) Se cada atendente do caixa recebe um salário mensal de R$ 600,00 (com encargos e benefícios), o sistema é viável? Explique. d) Pacácio ficou entusiasmado com os resultados do seu estudo, mas comenta: “Na verdade, o cenário estudado representa apenas um sábado do mês. A quantidade de clientes é muito variável durante os outros dias e horários. Como meus funcionários podem trabalhar em diversas funções, eu gostaria de uma tabela que relacionasse o número de clientes que entram por minuto no supermercado com a minha necessidade de caixas abertos”.6 Como você faria isso? e ) Determine o que é mais eficiente, ter filas separadas em cada caixa ou ter uma fila única (como era antigamente nos bancos). Por quê? Suponha que você considere que o sistema
de fila única é melhor; ele é viável em um supermercado? Quais seriam suas sugestões para implementar, pelo menos parcialmente, a fila única? 7
Terminais portuários 4. Considere um terminal portuário importador de matérias-primas para a indústria de fertilizantes, dotado inicialmente de um berço de atracação, cuja capacidade de atendimento nominal é de 5.000 toneladas por dia. Cada berço de atracação tem um custo fixo anual de R$ 10 milhões, e a obra de construção e montagem de um novo berço leva três anos para ficar pronta. Os navios que operam nesse terminal têm uma capacidade de carga distribuída da seguinte forma: 25% têm capacidade de 10.000 toneladas, 30% têm capacidade de 80.000 toneladas e 45% têm capacidade de 40.000 toneladas. Na situação atual, as importações são de um milhão de toneladas por ano. A administração portuária prevê um aumento de 10% no volume importado a cada ano, em relação ao período imediatamente anterior. Pode-se admitir que o intervalo entre chegadas sucessivas de navios obedeça a uma distribuição exponencial. A Tabela 8.1 apresenta, para cada ano de operação do terminal, o nível das importações e o número esperado de navios no ano. Tabela 8.1 – Exercício 4 Ano de operação do terminal
Nível das importações (mil t)
Número de navios por ano
1
1.000
25
2
1.100
27
3
1.210
30
4
1.331
33
5
1.464
36
6
1.610
40
7
1.771
44
8
1.948
48
9
2.143
53
10 11
2.357 2.593
58 64
12
2.853
71
13
3.138
78
14
3.452
86
15
3.797
94
16
4.177
104
17
4.594
114
18
5.054
126
19
5.559
138
O custo diário de cada navio no porto, em operação de descarregamento ou em espera por berço, pode ser estimado pela expressão: (R$/dia) Onde: V é a capacidade de carga da embarcação, em toneladas.
a) Quantos navios, em média, são atendidos por ano? Qual o tempo entre chegadas de navios dia? b) sucessivas Admitindo-se que, por ao expandir o volume de importação e o número de berços do terminal portuário, as distribuições dos processos de chegada e atendimento permaneçam as mesmas, projete o número de berços necessários do terminal, a cada ano, de modo a minimizar o custo total anual.Dica: A equação do custo total anual do terminal é dada por:
Onde: B é o número de berços do terminal;
CB é o custo anual de operação do berço;
TE é o tempo médio de espera no terminal, em dias; NV é o número de navios que utilizam o porto no ano; CD é o custo diário do navio. Transportadora de caminhões 5. A transportadora Vai e Não Volta possui uma frota de três caminhões. Cada caminhão executa um mesmo roteiro fechado, descrito pelas seguintes etapas: 1. Carrega o caminhão em Juiz de Fora-MG; 2. Percorre um trecho de 320 km até Taubaté-SP; 3. Troca de motorista em Taubaté-SP; 4. Percorre um trecho de 150 km até São Paulo-SP; 5. Descarrega o caminhão em São Paulo-SP; 6. Carrega o caminhão em São Paulo-SP; 7. Troca de motorista; 8. Percorre um trecho de 594 km até Belo Horizonte-MG; 9. Troca de motorista em Belo Horizonte-MG; 10. Percorre um trecho de 115 km até João Monlevade-MG; 11. Descarrega o caminhão em João Monlevade-MG; 12. Trafega mais 115 km até Belo Horizonte-MG; 13. Carrega em Belo Horizonte-MG; 14. Troca de motorista em Belo Horizonte-MG;
15. Percorre 280 km até Juiz de Fora-MG 16. Descarrega o caminhão em Juiz de Fora-MG 17. Reinicia o ciclo (volta para passo 1). Considere que a velocidade do caminhão é normalmente distribuída com média de 50 km/h e o coeficiente de variação é de 25%. Considere também que os tempos de carregamento e descarregamento são normalmente distribuídos com média de cinco horas e coeficiente de variação de 25%. O turno de trabalho dos motoristas é de 12 horas, seguido de 12 de descanso (o mesmo motorista só pode voltar a trabalhar após 12 horas do término do serviço anterior). Assuma que o tempo de troca de motorista é nulo e que, em um ciclo, o motorista pode realizar horas extras. a) Construa o ACD do sistema. b) Qual o número mínimo de motoristas necessários para que o número médio de viagens por semana por caminhão seja maior ou igual a 2? c) Supondo que existam infinitos motoristas, qual seria o número máximo de viagens por caminhão por semana? d) Há trechos nos quais os motoristas realizarão hora extra? Explique. Qual a probabilidade de ocorrência de hora extra por trecho?
Atendimento de e mergência 6. A central de atendimentos de emergência do corpo de bombeiros da cidade de RockCit
dispõe de três viaturas para atendimento da população. A prefeitura deseja que 95% dos atendimentos sejam realizados em um tempo inferior a oito minutos. Quando todas as viaturas estão ocupadas, uma nova chamada aguarda em fila até a disponibilidade de uma viatura. Sabe-se que os atendimentos surgem segundo um processo de Poisso espacialmente distribuído a partir de quatro regiões da cidade. Desse modo, a taxa de surgimento de emergências é de 15 emergências/hora, e, dado que um novo acidente tenha ocorrido, a probabilidade de que ele ocorra nas regiões 1, 2, 3 e 4 é de, respectivamente, 25%, 10%, 30% e 35%. Os tempos de viagem ao local do acidente e de retorno à base estão relacionados na Tabela 8.2. Os tempos de atendimento no local são exponencialmente distribuídos com média de três minutos. Tabela 8.2 – Exercício 6 Região1
Região2
Região3
Região4
Tempo de viagem ao local (min.)
Normal (6,1)
Normal (5,1)
Normal (5,1)
Normal (4,1)
Tempo de viagem de retorno à base (min.)
Normal (10,3)
Normal (9,3)
Normal (15,3)
Normal (6,3)
Notação: Normal (média, desvio-padrão).
a) Construa um modelo que represente a situação atual. O número de viaturas é suficiente
para atender ao nível de serviço desejado pela prefeitura? Quantas viaturas seriam necessárias? b) Sabe-se que a central de atendimento recebe 150 chamadas por hora, contudo, apenas 10% são chamadas de emergência. Considere que a central de atendimento possui três atendentes, que levam 45 segundos em média cada (exponencialmente distribuídos) para identificar se a chamada é de emergência ou não. Se a chamada não é de emergência, ela é encaminhada instantaneamente para outra central. Tratando-se de uma emergência, o atendente leva, em média, 25 segundos (segundo uma distribuição normal com desviopadrão de cinco segundos) para despachar uma viatura e esta partir para o local do acidente. Qual o impacto do processo de atendimento na central sobre o nível de serviço estimado no item a)? Quantas atendentes você recomendaria para a central? c) Quais aspectos você acha que deveriam ser considerados caso este modelo fosse implementado na prática? 7. A central de polícia de Gotham City está estudando o planejamento das rondas policiais de suas três viaturas. Atualmente, a central recebe 30 chamadas por hora, conforme um processo de Poisson; dessas, apenas 5% são chamadas de emergência, e 95% são trotes. Existem três bairros, A, B e C, de onde partem as chamadas, e cada um deles é responsável por 1/3 das chamadas atendidas. Os tempos de deslocamento das viaturas aos locais das chamadas são exponencialmente distribuídos com média de dois minutos, caso a chamada seja realizada a partir do bairro de patrulhamento da viatura. Caso a
chamada venha de outro bairro, os tempos de deslocamento, tanto para o atendimento quanto para o retorno ao bairro, são normalmente distribuídos com média de 20 e desviopadrão de cinco minutos. Quando uma chamada é reconhecida como de emergência, é encaminhada à viatura do bairro; caso esta esteja ocupada, então, a chamada é encaminhada para a primeira viatura disponível ou fica em uma fila de espera, aguardando alguma viatura disponível (não necessariamente a de seu bairro). Os tempos de atendimento no local da chamada são exponencialmente distribuídos com média de cinco minutos. Terminado o atendimento, a viatura retorna imediatamente ao seu bairro e não pode atender a nenhuma chamada durante a viagem de retorno. a) Construa um modelo de simulação que represente o problema. Qual o tempo médio de espera por atendimento (tempo até a chegada ao local)? Qual a taxa de utilização das viaturas em atendimento de chamadas? b) Qual a fração das chamadas atendidas por uma viatura que parte de fora do seu bairro? c) Considere que o comissário Gordon deseja proibir que uma viatura atenda às chamadas que não sejam do seu bairro de patrulhamento. Qual será o novo tempo médio de espera por atendimento? d) A central de polícia deseja avaliar a possibilidade de que todas as viaturas fiquem aguardando as chamadas estacionadas na delegacia central de Gotham City. Nesse caso, os tempos de viagem de ida e volta seriam exponencialmente distribuídos com média de seis minutos. Para essa nova configuração, qual seria o tempo médio de atendimento e qual a nova taxa de utilização das viaturas? Esse sistema tem desempenho melhor do que
o do item a)? e ) Devido às férias do Sr. Bruce Wayne, o número de chamadas passou de 30 para 80 chamadas por hora. Qual sistema tem agora o melhor desempenho? Explique por que isso ocorreu, utilizando os resultados da simulação.
“Então, cancela!”: central de atendimento – “call center” 8. A PlimCabo é uma operadora de TV a cabo da cidade de New Wave. Os assinantes do serviço possuem um número de telefone para realizarem chamadas de manutenção. As chamadas são recebidas na central de atendimento, ou call center , da empresa e comportam-se como um processo de Poisson, com taxa de 120 chamadas por hora. Quando surge uma chamada, essa é atendida por uma equipe de operadores treinados. Contudo, se todos os operadores estiverem ocupados, a chamada aguarda em uma fila de espera. Os tempos de atendimento dos operadores são uniformemente distribuídos no intervalo de seis a 18 minutos. Em 35% dos casos, o cliente não se sente satisfeito e solicita o cancelamento da assinatura. Nesses casos, a chamada é transferida para uma segunda equipe de operadores treinados especialmente em negociação com o cliente, para convencê-lo a não desistir da assinatura.8 Durante a negociação, o operador consome seis minutos, distribuídos exponencialmente. Em 50% dos casos, o operador não consegue convencer o cliente, e encaminha a chamada ao gerente. O gerente faz mais uma tentativa de convencimento, que tem sucesso em 60% dos casos. As conversas com o gerente duram, em média, 10 minutos, distribuídos exponencialmente. Caso o gerente não
tenha sucesso, a chamada é finalmente encaminhada ao serviço de cancelamento de assinaturas. a) Os clientes são muito sensíveis ao tempo de espera no telefone e, geralmente, quando são atendidos, já vão logo dizendo: “Então, cancela!”. A empresa deseja que 90% das chamadas aguardem um tempo inferior a um minuto de espera na fila pelo primeiro atendimento. Quantos operadores devem estar à disposição, simultaneamente, para esse fim? Qual seria o número necessário de operadores caso o nível de serviço desejado fosse de que 99% dos clientes tenham um tempo de espera na fila inferior a um minuto? b) Considere que 5% das chamadas colocadas em espera desistem imediatamente do atendimento. As outras chamadas abandonam o sistema de modo linear: a cada dois minutos, a taxa de abandono aumenta mais 3,5%, até o limite, em que, após 20 minutos de espera, 40% das chamadas abandonaram o sistema. Isso significa que 60% das chamadas nunca abandonam o sistema, independentemente do tempo de espera. Como isso altera as suas propostas do item anterior?9 c) Para o atendimento da segunda equipe, a empresa deseja que 99% das chamadas aguardem um tempo inferior a 15 segundos em espera. Quantos operadores seriam necessários para esse fim? d) Quando o gerente é acionado, ele recebe instruções do operador sobre o problema do cliente. Esse processo consome 45 segundos em média, segundo uma distribuição normal com desvio-padrão de cinco segundos. Qual o impacto dessa condição no nível de
serviço? Haverá necessidade de mais algum(s) operador(es)? e ) Se uma segunda chamada surgir enquanto o gerente estiver ocupado, ela é automaticamente transferida para o serviço de cancelamento. Qual a taxa de sucesso real do gerente ao convencer os clientes? Qual a taxa de sucesso final de convencimento de todo o sistema?
Problema do pedest re10 9. Considere um cruzamento de pedestres como o indicado na Figura 8.1. Os pedestres chegam pela direita e pela esquerda, em processos de Poisson com taxas médias de, respectivamente, clientes por minuto e clientes por minuto. Os pedestres aguardam até que a luz verde acenda, então, atravessam a rua. A travessia é instantânea, ou seja, o tempo de travessia pode ser considerado nulo.
Figura 8.1 – Exercício 9.
São consideradas três regras de funcionamento do semáforo: • Regra 1: a cada intervalo de tempo T = 90 segundos, a luz se alterna do vermelho para o verde; • Regra 2: o semáforo fica verde toda vez que o número de pedestres aguardando nos dois lados no total, N0, é maior ou igual a 50 pedestres; • Regra 3: o semáforo fica verde toda vez que o primeiro pedestre a chegar após o último sinal verde aguardou T0 = 80 segundos no cruzamento. a) Construa um modelo de simulação para cada regra em estudo.
b) Determine, para cada regra: o número médio de pedestres que cruzam da direita para a
esquerda, o número médio de pedestres que cruzam da esquerda para a direita, e o tempo médio de espera de um pedestre no cruzamento. c) Verifique a validade das seguintes expressões analíticas para o número médio de pedestres que cruzam da esquerda para a direita (LARSON; ODONI, 1981): • Regra 1: • Regra 2: • Regra 3:
Gestão de estoques 10. Um método clássico para se determinar o tamanho do lote ótimo de abastecimento de estoques é a fórmula do lote econômico, desenvolvida por Ford W. Harris, um engenheiro 11 de produção da Westinghouse, em 1913:
Onde: q é o tamanho ótimo do lote, ou o “lote econômico” de produtos; K é o custo de processamento do pedido do lote ao fornecedor (R$/pedidos);
D é a demanda anual do produto; h é o custo de manutenção do produto em estoque por ano (R$/produto×ano). O Juke Joint Pub está preocupado com o custo do seu estoque de cerveja. A demanda anual do Juke é de 36.500 garrafas, o que equivale a uma média de 100 garrafas de cerveja vendidas por dia. Uma garrafa mantida em estoque ao longo de um ano custa ao Juke R$ 1,00. Cada vez que um novo pedido de cerveja é solicitado ao fornecedor, os custos envolvidos no processamento de pedidos (uso do telefone, internet, tempo do funcionário etc.) totalizam R$ 50,00, independentemente do tamanho do lote solicitado. Para esse problema, o tamanho do lote econômico seria:
a) Construa um modelo de simulação dopub que permita visualizar o comportamento do estoque ao longo do ano – um gráfico do estoque em função do tempo. Considere no se modelo: • O tempo entre chegadas sucessivas de clientes é constante e igual a 0,01 dia, e cada cliente consome apenas uma cerveja; • Toda vez que o estoque atinge zero, opub instantaneamente recebe um novo lote de tamanho q;
• O estoque inicial é de 1.500 cervejas; • O tempo de simulação é de um ano; • Calcule, se possível durante a simulação, o valor do custo anual de estoque,CE, pela expressão:
Onde n é o número de pedidos realizados no ano e é o nível médio de estoque no ano. Teste o modelo para valores distintos do tamanho do lote q e verifique, empiricamente, o lote que de q minimiza = 1.351 cervejas o mais econômico – ou, de outro modo, se o lote se é aquele o custo éanual de estoque. Para a verificação do modelo, obtenha os valores do número de pedidos realizados e do intervalo de tempo entre pedidos. Para um lote de q = 1.351 cervejas, o número de pedidos ao longo do ano deve ser igual a:
e, portanto, o intervalo de tempo entre pedidos sucessivos, ouciclo de estoque , deve ser igual ao inverso desse valor, ou seja:
b) Vamos aumentar o realismo do modelo, considerando que a demanda não é mais constante, ou determinística , e apresenta um comportamento aleatório. Altere o modelo considerando que, por dia, a quantidade de cervejas vendidas é normalmente distribuída com média de 100 garrafas e desvio-padrão de 50 garrafas. Isso significa que a média da demanda anual, é: garrafas e o desvio-padrão da demanda anual é: garrafas
c) O estoque não é mais reposto no momento em que ele zera, mas periodicamente, em intervalos de 13,5 dias. Rode o modelo e perceba que, às vezes, há sobra, e, às vezes, faltam produtos em estoque no instante imediatamente anterior à chegada do novo lote. d) O fornecedor de bebidas do Juke opera com umlead time, L, fixo de uma semana.Lea time é o intervalo de tempo entre a realização do pedido e a entrega do produto. A ideia
do proprietário é a de solicitar um novo lote de cerveja toda vez que a quantidade disponível de garrafas atingir o que ele espera vender em uma semana. Durante olea time, a demanda esperada, é de: garrafas e o desvio-padrão é: garrafas
e ) Altere o seu modelo computacional de modo que (1) se incorpore olead time e que (2) um novo lote seja solicitado sempre que o número de garrafas em estoque atingir a demanda esperada em uma semana de garrafas. Como a demanda durante esse período pode ser considerada normalmente distribuída, essa política do proprietário resultará em falta de estoque em qual fração dos ciclos de estoque? f) Para o Juke Joint, um cliente não atendido tem um custo alto, pois envolve não só a perda da venda mas também o prejuízo futuro à imagem dopub entre os seus clientes. O proprietário calcula que um cliente não atendido equivale a um custo de R$ 10,00. Recalcule o custo de estoque anual do pub, considerando que existe um custo adicional
de R$ 10,00 por cerveja não vendida. Considere que o estoque médio, apenas sobre a parte “positiva” do estoque.
é calculado
Uma das estratégias de gestão de estoques é o modelo r(,q).12 Nessa estratégia, considera-se que o tamanho do lote, q, é calculado pela expressão do lote econômico, utilizando-se a média da demanda anual, . O momento do “novo pedido”, r, é medido em função do número de produtos remanescentes em estoque, de modo a minimizar o custo total. Uma aproximação para o valor der pode ser obtida através da seguinte expressão:
Onde: é a probabilidade de que a demanda durante o lead time seja maior do que o total disponível de produtos em estoque,r, durante este período. Cp é o custo da perda de venda. Para o Juke, teríamos:
Como a demanda é normalmente distribuída, podemos obter da tabela da distribuição normal o valortaldeque r :
garrafas
g) Teste esse valor de reposição no seu modelo. Na prática, ele significa que o estoque de segurança, ES, é igual a: garrafas ou: desvios-padrão da demanda no lead time.
h) Pesquise outras formas de gestão de estoque e teste sua eficiência no modelo de simulação.
Terminal aeroportuário 11. Nos aeroportos, é comum que, da saída do avião até o local de retirada da bagagem, os passageiros realizem uma caminhada razoável. Essa distância, aparentemente longa, tem duas razões básicas: (1) permitir que a bagagem seja retirada do avião e disponibilizada para os passageiros, evitando um congestionamento desnecessário na sala de bagagens; e (2) minimizar possíveis injustiças entre os passageiros, já que alguns optam por
transportar apenas a “bagagem de mão”, mesmo quando ela não é tanto assim “de mão...”. A nova ala de desembarque do aeroporto de Codorna City está sendo projetada, e a equipe responsável pelo projeto solicitou que você determine qual deveria ser a distância entre a saída do avião e o ponto de recepção das bagagens. Eles não estão muito certos quanto ao nível de serviço da operação, mas já definiram que será mensurado pela fração das bagagens já prontas para serem retiradas. Os intervalos de tempo entre chegadas sucessivas de aviões são exponencialmente distribuídos com média de 30 minutos. Existe apenas um veículo para transporte da bagagem entre o avião e o terminal, capaz de transportar até 1 t de bagagem a uma velocidade média de 20 km/h. A distância entre o local de pouso e o terminal é de 200 metros. O número de passageiros transportados por avião é uniformemente distribuído entre 60 e 120 passageiros. A bagagem transportada por passageiro é normalmente distribuída com média de 3,2 volumes e desvio-padrão de 2,1 volumes. O peso médio de um volume é de 15 kg. Existem seis operadores especializados na operação de descarregamento da aeronave e na colocação da bagagem no veículo. Cada operador leva em média cinco segundos para descarregar um volume da aeronave, segundo uma distribuição normal com desvio-padrão de três segundos. A operação de descarregamento do veículo é realizada por três operadores que consomem dois segundos em média por volume, segundo uma distribuição normal com desviopadrão de um segundo. A velocidade da caminhada dos passageiros é de 1,2 m/s, admitida como constante. Após a aterrissagem, os passageiros saem do avião entre intervalos de tempo exponencialmente distribuídos com média de três segundos.
a) Construa um modelo computacional que represente o problema. Considere que a distância a ser percorrida é de 10 metros. Qual a fração das bagagens que se encontra disponível para ser retirada pelos passageiros? b) Qual a distância que deve ser percorrida para que a fração média de bagagens preparadas seja de 50%? c) A equipe ficou entusiasmada com os resultados que você apresentou. Eles gostariam de melhorar a fração de bagagens disponíveis sem alterar a distância percorrida pelos passageiros. O que você recomendaria para a equipe de projeto? d) Para o segundo ano de operação, espera-se um aumento de 50% na média das aterrissagens realizadas no terminal, sem que isso altere o tipo de distribuição envolvida. O que isso altera nas suas recomendações de projeto?
As fil as também enganam13 12. Dois supercomputadores recebem tarefas para processamento que se comportam como um processo de Poisson com taxa de uma tarefa/segundo. O tempo de processamento das tarefas em cada supercomputador é igual a zero segundo, com probabilidade 1 – ε, e igual a n segundos, com probabilidade ε, onde ε é um número muito pequeno. Nesse sistema, portanto, a maior parte dos atendimentos é instantânea. Os administradores da rede desejam avaliar duas regras de comportamento para as filas de processamento: 1. Regra A: cada computador tem uma fila única. Quando uma nova tarefa chega, ela entra na menor fila, caso os dois supercomputadores estejam ocupados, ou entra aleatoriamente
em qualquer um deles, caso os dois estejam livres ou as filas sejam do mesmo tamanho. 2. Regra B: cada computador tem uma fila única. Quando uma nova tarefa chega, ela entra na menor fila, caso a diferença dos tamanhos das filas seja de 0 ou uma tarefa – considerando toda tarefa em execução como pertencente à fila. Se os dois supercomputadores estão livres, ela entra aleatoriamente em qualquer uma deles. Contudo, se a diferença entre as filas for maior do que uma tarefa, a tarefa entra namaior fila. a) Construa um modelo de simulação para cada caso e estime o tempo médio de permanência no sistema para cada uma das regras. Qual regra teve o melhor desempenho em termos do tempo médio no sistema e do tempo médio em fila? Avalie as diferenças percentuais entre os tempos e considere ε = 0,001 en = 10 segundos. Dica: Como a probabilidade de ocorrência de filas simultâneas é muito baixa, rode a simulação por um tempo longo (≥ 300 horas). b) Você consegue explicar intuitivamente o que está ocorrendo?
JobShop14 13. A fábrica de autopeças Wonka produz três tipos diferentes de componentes utilizados na fabricação de ônibus e caminhões. A planta de produção da Wonka possui cinco estações de trabalho, cada uma com um número diferente de máquinas. Os componentes são produzidos nas estações, mas cada um deve seguir um roteiro próprio de estações para ser produzido. Os tempos de operação em cada estação são exponencialmente
distribuídos, com médias dependentes do tipo de componente, como indicado na Tabela 8.3. As estações 1, 2, 3, 4 e 5 possuem, respectivamente, 3, 2, 4, 3 e 1 máquinas que podem realizar as operações. As solicitações por componentes chegam à planta entre intervalos de tempo sucessivos que seguem um processo de Poisson com média de quatro componentes por hora. As solicitações são do componente A em 30% das vezes; do componente B, em 50% das vezes; e do componente C, em 20% das vezes. A planta opera em turnos de oito horas, não havendo perda de continuidade entre um turno e outro. Tabela 8.3 – Exercício 13 Componente
Roteiro de estações
Tempo médio de operação (minutos)
A
3→1→2→5
30
35
50
50
-
B
4→3→1
65
50
35
-
-
C
2→5→1→4→3
75
15
25
50
60
a) Construa o ACD do problema. b) Construa um modelo de simulação para o problema e estime as seguintes medidas de desempenho: o tempo médio de execução de cada componente, o tempo médio que cada
componente permanece em fila, o tempo médio em fila em cada máquina, a taxa de utilização de cada máquina e o número médio de componentes sendo processados simultaneamente na planta. O sistema está bem dimensionado? c) Utilizando o modelo de simulação, proponha alternativas para melhorar o desempenho operacional do sistema.
Programação da produção15 14. A Sequeum é uma fábrica que produz por encomenda. Ela recebe as ordens de produção de seus produtos com data de entrega determinada pelo Departamento de Vendas, que lida diretamente com os clientes. O Departamento de Planejamento, Programação e Controle da Produção (PPCP) calcula o tempo necessário para a entrega do pedido e orienta o Departamento de Vendas. A confirmação obtida através do Departamento de PPCP, no entanto, é tardia, devido ao tempo necessário para reprogramar o sistema de produção e analisar a nova programação. A Sequeum precisa de um sistema capaz de determinar rapidamente esses prazos. A solução encontrada foi desenvolver um modelo de simulação que possibilite à empresa informar, rapidamente e com segurança aos seus clientes, o dia de entrega dos pedidos. Existem cinco famílias de produtos e cinco roteamentos, um para cada família, que são fixos. Não há necessidade de trabalhar com calendários e turnos, visto que os centros de trabalho funcionam nos mesmos horários e turnos. A Tabela 8.4 apresenta o roteamento para cada família de produtos e o tempo de trabalho em cada centro (em horas).
Tabela 8.4 – Exercício 14 Centro de trabalho Família
1
2
3
1
8
12
24
12
2
46
12
6
3
58
4
2
5
20
4
4
5
16
8
8
4
Podemos inferir que, constantemente, serão formadas filas nos centros de trabalho. Toda vez que isso ocorrer, devemos criar regras claras para definir a priorização dos trabalhos em fila. Devemos, por exemplo, processar primeiro o pedido que chegou antes ao centro ou o pedido que tem prazo de entrega mais “apertado”? Justamente para responder a essa pergunta, deseja-se determinar, dentre todas, a política de priorização (ou a disciplina de atendimento) a ser adotada em cada centro de trabalho; são elas: • FIFO – First-in, first-out: nessa política, como o nome srcinal em inglês nos diz, o primeiro produto a chegar ao centro de trabalho será o primeiro a ser processado; isto é, os produtos serão processados na ordem em que chegam ao centro de trabalho;
• LIFO – Last-in, first-out: nessa política, o último pedido a chegar ao centro de trabalho será o primeiro a ser processado. À primeira vista, essa política pode parecer ilógica, mas ocorre com frequência, devido às condições de armazenagem; muitas vezes, os produtos são colocados em estantes profundas, uns na frente dos outros, de modo que o último pedido a chegar ficará na frente de todos; isto é, será inviável, por exemplo, retirar o produto do fundo (primeiro a chegar) sem retirar todos os outros antes; • MTPO – Menor tempo de processamento: são priorizados os pedidos cujos tempos de processamento no centro de trabalho em questão forem menores; • MDEN – Menor data de entrega: nessa política, os produtos são ordenados pelo prazo de entrega: os que tiverem prazos mais “apertados” serão priorizados; • ALEA – Aleatório: nessa política, pouco utilizada na prática, não há prioridades; isto é, os pedidos são processados aleatoriamente; • FEST – Folga Estática: a folga estática é o tempo que falta para se entregar o pedido, descontado dos tempos de processamento necessários para o referido pedido. Nesse tipo de disciplina, serão processados inicialmente os produtos com menor folga estática. A Tabela 8.5 apresenta dados de pedidos para montagem e execução do modelo. Tabela 8.5 – Exercício 14 Pedido 1
Datadechegada 0
Família 5
Datadeentrega 20
2
1
4
95
3
2
4
105
4
3
3
80
5
4
3
95
6
5
2
180
7
6
2
185
8
7
1
115
9
8
1
130
10 11
9 10
4 4
110 125
12
11
3
100
13
12
3
120
14
13
2
200
15
14
2
210
16
15
1
155
17
16
1
165
Sabe-se, ainda, que a Sequeum paga 1 dólar para cada hora de atraso (para cada
ordem). a) Você deve construir um modelo de programação no simulador para cada centro de trabalho, mostrando os indicadores para a taxa de utilização de cada centro, o horizonte total de programação para as ordens descritas anteriormente, a taxa média de atraso dos pedidos, o número de pedidos atrasados, o número de pedidos adiantados e o que considerar relevante para realizar uma análise gerencial do sistema. Note que esta é uma simulação determinística, e, portanto, apenas uma única replicação será suficiente! b) Suponha que todos os centros de trabalho respeitem a disciplina FIFO. Quais seriam os resultados da simulação? c) Suponha que os centros de trabalho funcionem segundo as seguintes regras: C1, LIFO; C2, MTPO; C3, MDEN; C4, ALEA; e C5, FEST. Compare os resultados dessas configurações em relação ao item anterior no que tange às medidas de desempenho explicitadas.
Linha de pallets retornáveis16 15. A Wembley & Co. deseja testar, por meio de simulação, seu projeto de linha de montagem compallets retornáveis, que irá alimentar uma linha de montagem principal. Como o layout da linha não é simples, incluindo uma divisão de fluxos, decidiu-se utilizar a simulação para verificar se não há algum problema com gargalos e determinar o número ideal de pallets. O layout da linha está ilustrado na Figura 8.2.
Figura 8.2 – Exercício 15.
O fluxo do processo é o seguinte: no posto 1, um robô retira o produto já montado e o transfere para a linha principal. O trecho que vai do posto 1 até a operação 20 corresponde ao trecho de retorno dopallet vazio; da operação 20, o pallet segue até a operação 30; da operação 30, ele vai para a operação 40/50, seguida da operação 60/70, e depois se dirige ao posto 1, através do trecho que possui o cruzamento. Note que as operações 40/50 e 60/70 estão duplicadas. Portanto, após a operação
30, deve-se decidir qual é o trecho de transportador ao qual o produto deverá se dirigir (vide ponto de decisão na Figura 8.2). A prioridade é o trecho mais próximo; porém, se a operação 40/50, mais próxima da operação 30, estiver ocupada, então o produto deverá se dirigir para a posição 40/50 – mais distante desse ponto. Para cada operação, há um operador correspondente. Os tempos de processo, em segundos, seguem uma distribuição triangular, conforme a Tabela 8.6. Tabela 8.6 – Exercício 15 Operação
Meno rvalo r
Maispro vável
Maio rvalo r
20 OP
30,6
34,0
39,1
30 OP
27,1
30,2
34,7
OP 40/50
75,8
84,0
96,6
OP 60/70
54,4
60,5
69,6
Os tempos de transporte para cada segmento (cada quadrado no layout ) do transportador, que é uma esteira assíncrona (do tipo stop-and-go), é de três segundos para movimentação horizontal e de seis segundos para transferência a 90º. O tempo de manipulação do robô é constante e igual a 30 segundos. a) Construa um modelo de simulação que represente o sistema em projeto na Wembley.
b) Qual o número ideal de pallets retornáveis para maximizar a produtividade? Dica:
Construa um gráfico de produtividade vs. número de pallets. Não se esqueça de considerar um tempo de “warm-up” adequado para o modelo. c) Há algum problema de travamento da linha? Em caso afirmativo, explique como a lógica de decisão poderia ser alterada para contornar esse problema. Gerenciamento da cadeia de suprimentos17 16. Os problemas de gerenciamento da cadeia de suprimentos envolvem a correta identificação dos fluxos existentes. Os fluxos podem ser caracterizados como de dois tipos: de materiais, geralmente dos elos superiores da cadeia (fornecedores) para os inferiores (vendedores); e de informação, geralmente dos elos inferiores para os elos superiores. A companhia de bebidas Cervejeiros Habilidosos deseja estudar a sua cadeia de suprimentos. Atualmente, a cadeia é composta por quatro fábricas, quatro distribuidores e diversas lojas varejistas (Fig. 8.3).
Figura 8.3 – Exercício 16.
As quatro fábricas produzem 12 tipos diferentes de bebidas – entre cervejas, refrigerantes e águas minerais – que abastecem os distribuidores. Uma fábrica não produz todo tipo de produto; na verdade, cada fábrica produz seis tipos de produtos diferentes, como indicado na Tabela 8.7. Nas fábricas, o tempo entre chegadas sucessivas de produtos (equivalente ao tempo de produção) é exponencialmente
distribuído com média de 600 minutos. Tabela 8.7 – Exercício 16 Fábricas
Produtos
F1
F2
F3
F4
1
7
4
10
2
8
5
11
3
9
6
12
4
10
7
1
5
11
8
2
6
12
9
3
As fábricas produzem de forma ininterrupta ao longo do dia, iniciando a produção no primeiro dia à 0h e terminando no 30o dia às 24h (após 720 horas). Os quatro distribuidores, por sua vez, fornecem os produtos para um grupo de lojas de varejo e realizam pedidos para as fábricas segundo estratégias previamente determinadas. Inicialmente, as fábricas produzem por sete dias, gerando estoques dos produtos. A seguir, os distribuidores iniciam os seus pedidos (isto é, no oitavo dia à 0h, 168 horas após o início da produção); neste momento, todos os
distribuidores realizam pedidos de 10 unidades por produto para o abastecimento inicial de seus estoques, independentemente da estratégia adotada. Os pedidos dos distribuidores são realizados uma vez por dia, sempre à 0 hora. Se um pedido não puder ser atendido pela fábrica, ele é adiado para o dia seguinte. Um pedido somente é considerado atendido se o total de produtos solicitados de cada tipo está disponível. Existe um tempo (em horas) entre o momento da realização do pedido pelo distribuidor e a entrega efetiva do produto pelo fabricante (lead time) Tij , relacionado na Tabela 8.8. Tabela 8.8 – Exercício 16 Fábricas
Distribuidores
F1
F2
F3
F4
D1
16
22
20
12
D2
15
16
13
19
D3
14
16,5
20
17
D4
22
13
16,5
18
Cada lojista realiza seus pedidos para os distribuidores segundo as seguintes regras: • Cada pedido é de apenas um produto específico;
• Os distribuidores são escolhidos aleatoriamente entre os quatro disponíveis, segundo uma distribuição uniforme; • Os tempos entre os pedidos sucessivos são uniformemente distribuídos no intervalo entre 600 e 3.600 segundos; • O tipo de produto solicitado em um pedido é uniformemente distribuído entre 1 e 12; • Os pedidos começam a ser realizados a partir do nono dia, à 0 hora (ou após 192 horas do início da produção pelas fábricas). Todo pedido que não pode ser totalmente atendido é negligenciado, e o lojista não repete o mesmo pedido posteriormente. Contudo, os distribuidores que não conseguem entregar os produtos de um pedido realizam um pedido adicional desses produtos às fábricas no próximo horário de realização de pedidos (à 0 hora do dia seguinte), independentemente da estratégia que o distribuidor está utilizando. O tempo de entrega dos distribuidores para os lojistas é considerado pequeno e desprezível para este estudo. Os produtos não possuem atributos específicos, como tamanho ou peso. Eles são pedidos para as fábricas segundo três tipos de estratégia: A, B ou C. Cada elo da cadeia de suprimentos tenta atender ao pedido (ou demanda) do elo inferior da cadeia. Conjuntamente, cada elo da cadeia solicita uma certa quantidade de produtos para o elo superior. No momento em que o pedido chega, o responsável pelo suprimento somente é capaz de contemplá-lo caso disponha de todos os produtos em
estoque (isso significa que não existe backlog ou atendimento de pedidos em atraso). Estratégia A. Se um distribuidor vendeu uma unidade do produto durante o último dia, ele realiza um pedido de duas unidades do mesmo produto. Nesta estratégia, os distribuidores D1 e D2 realizam pedidos às fábricas F1 e F2; e os distribuidores D3 e D4 realizam pedidos às fábricas F3 e F4, como indica a Tabela 8.9. O transporte das fábricas para os distribuidores custa R$ 10,00 por hora de entrega, por pedido (independentemente do número de produtos em um pedido). Os distribuidores têm um custo de R$ 1,00 por produto mantido em estoque de um dia para o outro (independentemente do dia ou hora em que o produto chegou ao estoque). a) Simule o sistema apenas uma vez por 30 dias e mostre a evolução do estoque do distribuidor D1 ao longo do tempo.
b) Realize 100 replicações do modelo, calculando o máximo, o mínimo, a média e a variância dos seguintes parâmetros: custo total de cada distribuidorDi (i=1,2,3 e 4), número de produtos distribuídos pelo distribuidor Di, e custos relativos do distribuidor Di, Ri = Ci/Ni.
Estratégia B. Em vez de realizar pedidos com tamanho constante (Estratégia A), os distribuidores solicitam o necessário para atenderem à demanda do elo inferior da
cadeia. Assim, cada distribuidor acumula os pedidos (para cada produto) dos lojistas – preenchidos ou não – durante 24 horas (de 0h às 24h de cada dia) e encaminha pedidos dessas quantidades para as fábricas no próximo instante de realização do pedido (à 0h do dia seguinte). c) Simule o sistema apenas uma vez por 30 dias e mostre a evolução do estoque do distribuidor D1 ao longo do tempo.
d) Realize 100 replicações do modelo, calculando o máximo, o mínimo, a média e a variância dos seguintes parâmetros: custo total de cada distribuidorDi (i=1,2,3 e 4), número de produtos distribuídos pelo distribuidor Di e custos relativos do distribuidor
Di, Ri=Ci/Ni. Estratégia C. Nas estratégias anteriores, os distribuidores realizam seus pedidos às fábricas de modo fixo (Tabela 8.9). Na Estratégia C, um distribuidorDi tenta realizar o pedido a uma fábrica Fk com o menor tempo de lead time Tjk ( ). Se a quantidade desejada de produtos não estiver disponível, a próxima fábrica com o menor tempo delead time é escolhida, e assim por diante. Se nenhuma fábrica for capaz de atender ao pedido, ele será adiado para o dia seguinte. Tabela 8.9 – Exercício 16
Distribuidores
Produtos
D1
D2
D3
D4
1
F1
F1
F4
F4
2
F1
F1
F4
F4
3
F1
F1
F4
F4
4
F1
F1
F3
F3
5
F1
F1
F3
F3
6 7
F1 F2
F1 F2
F3 F3
F3 F3
8
F2
F2
F3
F3
9
F2
F2
F3
F3
10
F2
F2
F4
F4
11
F2
F2
F4
F4
12
F2
F2
F4
F4
e ) Simule o sistema apenas uma vez por 30 dias e mostre a evolução do estoque do
distribuidor D1 ao longo do tempo. f) Realize 100 replicações do modelo, calculando o máximo, o mínimo, a média e a variância dos seguintes parâmetros: custo total de cada distribuidorDi (i=1,2,3 e 4), número de produtos distribuídos pelo distribuidor Di, e custos relativos do distribuidor Di, Ri=Ci/Ni. g) Qual das três estratégias apresentou o melhor desempenho para o distribuidorD1? Justifique.
Atendimento de e xame de campo SUS18 17.daOvisão, examecomo de campo visual éOimportantíssimo auxílio àcom prevenção algumas doenças o glaucoma. quanto antes umnoproblema o campodevisual do paciente (uma pessoa normal tem um campo visual ao redor de 130o) for detectado, maior a chance de cura e menor o risco para o paciente. Em uma das unidades de atendimento deste tipo de exame, são atendidos cinco pacientes, pré-agendados por turno, das 13h às 17h (com essa capacidade de atendimento, a fila de espera pode chegar a seis meses). Os pacientes devem chegar todos às 12h, mas cada paciente pode ter um atraso segundo uma distribuição triangular de no mínimo 30 minutos, moda de 60 minutos e máximo de 120 minutos em relação ao meio-dia. O atendimento dos pacientes é sequencial, com a presença de um técnico em oftalmologia que realiza as etapas descritas na Tabela 8.10. a) Construa o ACD do problema.
b) Construa o modelo computacional do problema. c) Qual a probabilidade de que o atendimento do último paciente termine após às 17h (fim do expediente do técnico)? d) Responda novamente à questão do item c), supondo que deverão ser atendidos seis pacientes por dia. e ) O layout da unidade de funcionamento está representado, esquematicamente, na Figura 8.4. Basicamente, após ser anunciado ao microfone (1), o paciente se dirige ao consultório (2) para realizar o exame. O técnico, após o registro no aparelho, vai até a caixa de lentes (3), pega as respectivas lentes, retorna ao consultório (2) e realiza o restante do processo. Terminado o exame, o paciente é liberado. Quais seriam as suas sugestões para reduzir o tempo total de cada exame? Quais seriam os impactos dessas mudanças nas respostas dos itens c) e d)? Tabela 8.10 – Exercício 17 Etapa
Tempo
Observação
Configuração Cinco minutos em média, segundo uma do distribuição normal com desvio-padrão de Feita pelo técnico. equipamento 0,125 minuto. Chamada do Uniformemente distribuído entre 0,8 e 1,2 Feita pelo técnico. paciente minuto.
No caso de autorrefração, como a Realização de lensometria, o processo dura 1,5 minuto em média, segundo uma distribuição anamnese (levantamento normal com desvio-padrão de 0,35 minuto. No caso de apresentação do grau do grau) por exame prévio, o tempo de levantamento é imediato. Registro no aparelho de medição
O técnico, juntamente com o paciente. 70% dos pacientes realizam anamnese por autorrefração; 25% por lensometria, e 5% já trazem o seu último exame de vista, não sendo necessário levantar o grau por autorrefração ou por lensometria.
Uniformemente distribuído entre 0,5 e 1 Feito pelo técnico. minuto.
Separação do Uniformemente distribuído entre 3 e 4 minutos conjunto de Feita pelo técnico. (inclui o deslocamento do local do exame lentes até a posição da caixa de lentes). Exame de campo
15% de ser 6 minutos por olho; 20% de ser 12 minutos por olho; 65% de ser 18 minutos por olho.
Técnico com o paciente. 11% dos pacientes fazem exame em um só olho; e 89%, nos dois olhos.
Finalização do exame
Uniformemente distribuído entre 1 e 2 minutos.
Feita pelo técnico.
Figura 8.4 – Exercício 17.
Transporte ferroviário 18. A companhia de transportes ferroviários Railway Pangaré Unlimited (RPU) está desenvolvendo um projeto de expansão para uma linha ferroviária de 1.500 km. Nessa linha, planeja-se instalar 10 pontos de transbordo de carga. Cada ponto estará espaçado do ponto anterior pelas distâncias descritas na Tabela 8.11. Cada trecho pode ser percorrido simultaneamente por apenas uma composição ferroviária, composta por uma locomotiva e um conjunto de vagões de carga. Admita que uma estação ferroviária tem capacidade para acomodar “várias linhas” e que a quantidade de composições que possam carregar ou descarregar ao mesmo tempo em cada estação seja ilimitada. Tabela 8.11 – Exercício 18 Estações
1-2
2-3
3-4
4-5
5-6
6-7
7-8
8-9
9-10
Distância (km)
150
50
300
200
350
100
50
100
200
A RPU utilizará dois tipos de composição para a linha. A composição do tipo 1 é constituída de 31 vagões que pesam 25 t cada quando vazios e que podem carregar até 55 t cada. A composição do tipo 2 é constituída por 35 vagões que pesam 25 t cada quando vazios e podem carregar até 35 t cada. Cada locomotiva, que pode puxar qualquer uma das composições, pesa 300 t. A velocidade média dos trens (composição e locomotiva) em cada trecho é de 25
km/h (considere uma distribuição uniforme entre 22,5 e 27,5 km/h). Existem dois produtos a serem transportados. O produto 1 só pode ser transportado em uma composição do tipo 1, e o produto 2, na composição do tipo 2. Considere que a lógica de transporte será a seguinte: • Trem cheio: uma vez que o trem carregado chega a um ponto de transbordo, ele libera a composição para descarregamento. Se existe uma composição de vagões cheios no ponto, ele se conecta à nova composição e inicia a viagem de transporte. Caso não haja uma composição de vagões vazios no ponto, então a locomotiva se conecta à nova composição e aguarda uma nova tarefa. Caso não haja essa composição vazia, a locomotiva aguarda a liberação da composição em descarregamento, para, então, aguardar uma nova tarefa. Uma vez que uma composição terminou de descarregar em uma determinada estação, ela fica livre para uma nova tarefa. • Trem vazio: uma vez que o trem vazio chega a um ponto de transbordo, libera a composição para o carregamento (note que um trem vazio só vai a um ponto se houver demanda para tal). Os passos seguintes são semelhantes ao do trem cheio. Uma ordem de transporte é uma solicitação de trem carregado entre uma estação de srcem (que pode ou não ser a atual) e uma estação de destino. As ordens de transportes estão distribuídas como mostrado na Tabela 8.12. Tabela 8.12 – Exercício 18
Ordemdetranspo rte
Pro duto
Ro ta
1
1
da estação estação à3 10
2
2
da estação estação à7 10
3
2
da estação estação à4 10
4
1
da estação estação à8 4
5
2
da estação estação à5 1
6
1
da estação estação à6 1
O processo de surgimento de uma nova ordem de transportes é uniformemente distribuído; ou seja, dado que um trem vazio (locomotiva e composição de vagões) está livre, a próxima ordem a ser executada é um número inteiro uniformemente distribuído no intervalo de 1 a 6, representando a próxima ordem de transportes a ser executada. Por hipótese, assume-se que toda ordem de transporte tem carga suficiente para encher completamente a composição. Cada vagão é descarregado ou carregado em 30 minutos em média, segundo uma distribuição normal com desvio-padrão de seis minutos. a) Construa um fluxograma do processo de carga e descarga em um ponto de transbordo; b) Dado que a RPU tem seis locomotivas, seis composições do tipo 1 e seis composições do tipo 2, estime a carga total em tonelada transportada em cada rota em um ano;
c) A partir da resposta do item anterior, calcule a eficiência do sistema ferroviário. A
eficiência do sistema pode ser medida em termos de TKB. Um TKB é um acrônimo para tonelada × quilômetro bruto e pode ser calculado da seguinte maneira: se uma composição composta por uma locomotiva e 10 vagões de 80 t percorreu um trecho de 100 km, então a tonelada × quilômetro bruto será de: TKB = (peso em t) × (quilômetros percorridos) = (10 × 80 + 1 × 300) × (100) TKB = 110.000 tonelada × quilômetro bruto O TKB total é a soma das medidas de TKB de cada trecho. d) Considere que as demandas mínimas anuais a serem atendidas em cada rota são dadas pela Tabela 8.13. Determine o número de composições e locomotivas necessários para atender às demandas de modo a minimizar o TKB total. Tabela 8.13 – Exercício 18 Ordemdetranspo rte
Pro duto
Ro ta
Demandamínimaanual(t)
1
1
daestação3àestação10
300.000
2
2
daestação7àestação10
250.000
3
2
daestação4àestação10
410.000
4
1
daestação8àestação4
280.000
5
2
daestação5àestação1
150.000
6
1
daestação6àestação1
200.000
Simulação de t anques de produtos lí quidos 19. Um problema comum na Simulação de Eventos Discretos é a simulação de sistemas com fluxos contínuos de produtos. A Biotricks, empresa do Grupo Embromar, está projetando uma refinaria que pode produzir biodiesel a partir de qualquer um de cinco insumos diferentes (Fig. 8.5): óleo bruto, ácido, soda cáustica, catalisador e metanol. O óleo bruto pode ser: óleo de dendê, óleo de mamona, óleo de soja, óleo de algodão ou óleo de sebo animal. Além do biodiesel, o processo produz alguns subprodutos: goma, glicerina e ácidos graxos. Nesse projeto, a Biotricks deseja dimensionar sua necessidade de tanques de recepção de óleos brutos utilizando-se da Simulação de Eventos Discretos. A refinaria em projeto prevê apenas a utilização de dois tipos de óleos brutos: óleo de soja e óleo de algodão, que não podem ser misturados num mesmo tanque. Entretanto, os tanques não são dedicados, no sentido de que, uma vez esvaziado, o tanque pode ser utilizado para óleo de soja ou de algodão. Cada tipo de óleo chega em caminhões de 15 m3. Inicialmente, são previstas duas baias de recepção que se conectam a cada um dos tanques de recepção. O tempo de descarregamento do caminhão é estimado em 20 minutos. Como a refinaria está em fase de projeto, admite para este tempo (e para qualquer tempo ou taxa horária de operação) que as distribuições são triangulares, sendo o valor máximo 30% acima da média, e o valor mínimo 30% abaixo da média. Os tanques de recepção dos produtos têm capacidade para 150 m3 (ou,
aproximadamente, 10 caminhões). Os tanques de produtos líquidos operam em função do lastro e capacidade máxima de segurança. Assim, um tanque é considerado vazio quando o volume disponível de produto é inferior a 10% da sua capacidade (ou do seu lastro). Da mesma forma, o tanque é considerado cheio quando seu volume disponível é superior a 90% da sua capacidade. Quando o tanque de recepção é considerado cheio, ele passa por um processo de inspeção que dura 24 horas, e, a seguir, é liberado para a produção. O processo de produção envolve as etapas de pré-tratamento, transesterificação e purificação. Simplificadamente neste projeto, essas etapas podem ser consideradas como uma atividade de “produção” que utiliza apenas um tanque cheio por vez e o esvazia à taxa de 10 m3/h. A etapa de produção é concluída com o esvaziamento do tanque, que, assim, fica liberado para a recepção. Por sua vez, a atividade de produção pode, se existir, iniciar o esvaziamento de um novo tanque cheio. O projeto assume que os tempos entre chegadas sucessivas de caminhões são exponencialmente distribuídos e que 30% dos caminhões chegarão com óleo de algodão. Considere que a refinaria deve produzir 50.000 m3/ano de biodiesel e que não há perda de massa em sua produção. Deseja-se determinar quantos tanques de recepção devem ser construídos para a refinaria de modo a se garantir a produção anual de biodiesel; assim, a Biotricks solicitou a sua equipe de projeto a elaboração de uma tabela que relacione o número
de tanques de recepção ao número médio de caminhões em fila de espera para descarregar o produto e a taxa de ocupação do sistema de produção.
Figura 8.5 – Exercício 19.
Simulação de r edes de computadore s19 20. O departamento de informática da Embromar Ltda. está preocupado com a carga de trabalho atribuída aos roteadores utilizados na comunicação entre dois locais da empresa. Cada local possui um roteador conectado a quatro computadores, que enviam mensagens segundo um processo de Poisson com taxa de duas mensagens/segundo. O roteador de cada local envia mensagens para o outro roteador à taxa de 20 mensagens/segundo, por meio de um cabo bidirecional. Ambos os roteadores possuem bancos de memória para armazenagem das mensagens ainda não enviadas, denominados “buffers ”. Caso o buffer do roteador esteja cheio no momento da chegada de uma nova mensagem, a mensagem é perdida. As conexões que ligam cada computador ao roteador do seu local possuem capacidade ilimitada. A Embromar deseja expandir, em cada local, o número de computadores de 4 para 6. A empresa deseja que você analise o desempenho do sistema – atual e futuro – identificando qual deve ser o tamanho mínimo dobuffer em cada roteador (valores possíveis: de 0 a 200 mensagens), de modo que não ocorra perda de mensagens. O departamento de informática também sugere que sejam analisadas as seguintes medidas de desempenho: a) O atraso no envio de mensagens ocasionado pelo cabo;
b) A perda absoluta e percentual de mensagens em cada cenário; c) A taxa de utilização do cabo de transmissão entre os roteadores.
Figura 8.6 – Exercício 20.
Leitura Complementar
Caso real de um projeto de simulação
Esta seção trata de um estudo de simulação realizado em uma fábrica de processamento de bobinas metálicas (CHWIF et al ., 2008). O objetivo do projeto era avaliar o impacto logístico na expedição dessa indústria frente aos futuros aumentos de volumes. Embora este projeto tenha detalhes que não foram revelados aqui, por simples motivo de restrições de espaço, acreditamos que tanto o iniciante em projetos quanto os mais experientes podem se beneficiar desta descrição. Como primeira etapa, segundo a metodologia de simulação, foram estabelecidos os objetivos e o escopo do projeto, descritos a seguir: • Objetivo: dimensionar o sistema de expedição de materiais de uma fábrica (envolvendo diversos recursos, como balanças, docas de carregamento e pontos de enlonamento) para
suportar a produção até o ano 2020. Isso representa um crescimento do fluxo de produtos em 235%, segundo estimativas da própria empresa. Um primeiro cálculo foi realizado, chegando a uma ou duas balanças, três docas de carregamento e dois pontos de enlonamento, mas isso deverá ser confirmado por meio de simulação discreta. • Escopo: entrada dos caminhões de expedição (há basicamente três tipos) na fábrica, pesagem sem carga na balança, carregamento, enlonamento e pesagem na saída (carregado). O sistema de expedição atual possui uma balança, uma doca de carregamento e uma doca para enlonamento. O passo seguinte foi a modelagem conceitual, discutida com um time de projeto formado por um consultor externo de simulação, dois engenheiros da empresa e um supervisor logístico. Essa discussão demorou cerca de cinco horas. Basicamente, o modelo deveria levar em conta o fluxo de caminhões de expedição, o fluxo de caminhões de recebimento e o fluxo de caminhões administrativos. Apesar de o foco do estudo ser a expedição, não se pode desprezar o fluxo dos caminhões de recebimento e o fluxo de caminhões administrativos, pois eles compartilham os mesmos recursos. No entanto, eles terão um tempo global de permanência, em vez de terem todo o seu processo logístico modelado detalhadamente. Dessa maneira, o processo principal de expedição compreende as seguintes etapas: 1. Entrada dos caminhões de expedição nos limites da fábrica; 2. Entrada na balança e pesagem;
3. Tempo de viagem até a doca de carregamento;
4. Processo de carregamento na doca; 5. Processo de enlonamento; 6. Tempo de retorno do ponto de enlonamento até a balança; 7. Pesagem final. A Figura 8.7 representa o ACD do modelo conceitual elaborado.
Figura 8.7 – ACD do modelo conceitual.
Como outras variáveis que afetam diretamente o modelo, podemos citar: janela de recebimento, fator sazonalidade (que concentra o fluxo no final do mês) e fator de crescimento do fluxo, que chegará a 235% em 2020. A modelagem também considera um limite de caminhões dentro da expedição por motivos de segurança. Assim, caso o limite seja excedido, os caminhões devem esperar fora dos limites da fábrica. Outro fator importante é o perfil de probabilidade de chuva, pois, quando chove, o processo de enlonamento é realizado na própria doca de carregamento, e não no ponto de enlonamento. O próximo passo foi a modelagem dos dados. De fato, como mencionado por Pidd (1996), é o modelo que estabelece os dados a serem coletados, e não o contrário. Assim, esta fase se iniciou somente após o esboço do modelo conceitual estar pronto. A fase de coleta durou aproximadamente dois meses, e os seguintes dados foram coletados: fluxo de caminhões de expedição e recebimento, tempo da pesagem (caminhões cheios e vazios), tempo total de permanência para os caminhões de recebimento, tempos de viagem (da balança até a doca de carregamento e o retorno), tempo de carregamento e tempo de enlonamento. A partir da massa de dados, descobriu-se que o padrão de chegadas é praticamente constante (não existe pico ao longo do dia), e, então, esta foi modelada segundo a distribuição exponencial. Um software de modelagem de dados – no caso, o Stat::Fit – foi utilizado para se obterem distribuições matemáticas dos demais dados. A Figura 8.8 mostra alguns dos dados processados no Stat::Fit.
Figura 8.8 – Tempos d e processos de entrada.
A partir de dados reais, foi obtido o perfil de probabilidade de chuva, hora a hora, para meses de chuvas intensas (janeiro a março), conforme se vê na Tabela 8.14. Essas informações foram retiradas de Pezzopane et al. (1995). Tabela 8.14 – Probabilidades de ocorrência de chuvas ao longo do dia Intervalo
Pro babilidade
de 00:00 1:00 a
9,7%
de 1:00 2:00 a
11,0%
de 2:00 3:00 a
9,4%
de 3:00 4:00 a
8,1%
de 4:00 5:00 a
9,0%
de 5:00 6:00 a
9,0%
de 6:00 7:00 a
7,7%
de 7:00 8:00 a
6,8%
de 8:00 9:00 a
6,1%
de 9:00 10:00 a
4,8%
de 10:00 11:00 a
5,5%
de 11:00 ao 12:00
6,8%
de 12:00 13:00 a
8,1%
de 13:00 14:00 a de 14:00 15:00 a
12,3% 14,5%
de 15:00 16:00 a
16,8%
de 16:00 17:00 a
14,5%
de 17:00 18:00 a
16,8%
de 18:00 19:00 a
18,7%
de 19:00 20:00 a
19,7%
de 20:00 21:00 a
18,1%
de 21:00 22:00 a
15,8%
de 22:00 23:00 a
14,2%
de 23:00 24:00 a
12,3%
Após a coleta de dados, foram discutidas e estabelecidas as principais hipóteses do modelo: 1. Os recursos de carregamento (homens, empilhadeiras etc.) serão modelados sem restrições, ou seja, sempre estarão em quantidade suficiente na doca; 2. O tempo de viagem da balança para a doca pode ser considerado igual ao do retorno (da doca para a balança); 3. O tempo de pesagem não depende do tipo do caminhão, mas do seu estado (cheio o vazio); 4. Será considerado um mix típico de caminhões, sendo 22% de caminhões pequenos, 62% de caminhões médios e 16% de caminhões grandes (carretas). O próximo passo foi a construção do modelo no software de simulação SIMUL8 versão 2007. Como esse modelo não é complexo, foram necessárias oito horas para construí-lo por completo. A Figura 8.9 ilustra a configuração inicial do modelo, enquanto a Tabela 8.15 mostra os dados de entrada, que podem ser customizados e modificados pelo cliente. A próxima fase foi a validação do modelo computacional. Foi agendada uma reunião de validação com o time que durou 3,5 horas. Todas as medidas de desempenho, como tempos
de espera, tamanho de filas e utilizações, foram validadas, exceto uma – a espera para o carregamento. A simulação mostrava que os caminhões esperavam menos do que a realidade. Assim, foi necessária uma nova coleta de dados, para verificar as causas desse problema. Após uma semana e meia de coleta de dados, foram descobertos dois pontos: (1) a espera obtida anteriormente não havia sido medida, e sim calculada por diferença; e (2) existe alguma espera devido a outros fatores além do tempo de carregamento. Esses fatores são muitos, incluindo: o tempo gasto pelo motorista para fazer outras tarefas, tempo de espera para a empilhadeira etc. No entanto, como a empilhadeira não era considerada como restrição, esses tempos de espera adicionais não foram considerados no modelo, e, para os objetivos do estudo, pode-se considerar o modelo como válido. Assim, o modelo inicial foi expandido, considerando-se os recursos extras de balanças, docas e pontos de enlonamento.
Figura 8.9 – Representação do modelo no software SIMUL8.
Parâmetro
Valo r
Tabela 8.15 – Dados de entrada do modelo de simulação Parâmetro
Valo r
Fluxo de caminhões na expedição Número médio de caminhões por hora Janela de tempo (horas)
1,6 2
23
Fluxo de caminhões no recebimento Número médio de caminhões por hora Janela de tempo (horas)
1,7 6
21
Fator de sazonalidade
1,2
Fator de crescimento
1,88
Mix (1)Toco
%
22
(2) Truck
62
Carreta (3)
16
Limite caminhões de
7
Número de balanças
2
Pro babilidadedechuva
Padrão
To rrencial
de 00:00 1:00 a
9,7
50
1:00 de2:00 às
11
50
de 2:00 3:00 às
9,4
50
de 3:00 4:00 às
8,1
50
4:00 de 5:00 às
9
50
5:00 de 6:00 às
9
50
de 6:00 7:00 às
7,7
50
de 7:00 8:00 às
6,8
50
de 8:00 9:00 às
6,1
50
de 9:00 às 10:00
4,8
50
de 10:00 às 11:00 de 11:00 às 12:00
5,5 6,8
50 50
de 12:00 às 13:00
8,1
100
de13:00às14:00
12,3%
100
de14:00às15:00
14,5%
100
de15:00às16:00
16,8%
100
de16:00às17:00
14,5%
100
de17:00às18:00
16,8%
100
de18:00às19:00
18,7%
100
de19:00às20:00
19,7%
100
de20:00às21:00
18,1%
100
de21:00às22:00
15,8%
100
de22:00às23:00
14,2%
100
de23:00às24:00
12,3%
100
Para a análise dos resultados, foram consideradas as seguintes medidas de desempenho: • Tempo de permanência no sistema (mínimo, médio e máximo); • Tamanho mínimo, médio e máximo da fila e tempos de espera para a balança na entrada; • Tamanho mínimo, médio e máximo da fila e tempos de espera para a balança na saída; • Tamanho médio e máximo da fila e tempo de espera para a fila de espera fora da fábrica (quando o limite de caminhões for atingido); • Tamanho médio e máximo da fila e tempos de espera para as docas; • Tamanho médio e máximo da fila e tempos de espera para os pontos de enlonamento; • Utilização das balanças; • Utilização das docas; • Utilização dos pontos de enlonamento. A Figura 8.10 ilustra os principais resultados obtidos, com o correspondente intervalo de confiança para 20 replicações.
Figura 8.10 – Resultados da simulação.
A primeira análise feita inicialmente foi uma análise de saturação, tentando responder à questão: “Considerando a configuração atual (uma doca e um ponto de enlonamento), quanto o sistema suporta de aumento de fluxo?”. De acordo com a simulação, a configuração atual pode aguentar por três anos; depois disso, o desempenho da expedição se degradará. Em seguida, a análise foi realizada com o modelo expandido, considerando três docas, dois pontos de enlonamento e até duas balanças ao todo. Dessa maneira, foram criados diversos cenários através das combinações das seguintes variáveis: aumento de fluxo, número de balanças, número de docas, número de pontos de enlonamento, presença ou não de chuva, perfil de chuva (normal ou pesado) e mix de caminhões. Como o perfil srcinal de chuva afetou pouco a utilização das docas, decidiu-se adicionar um novo cenário, “chuva pesada”, que aumenta a probabilidade de chuva. Os resultados mostraram que, para o fluxo projetado para 2020, são necessárias duas balanças, três docas de carregamento e dois pontos de enlonamento (exatamente a configuração inicialmente proposta). Neste caso, o sistema desempenhou bem quando não ocorreram exceções. A utilização das docas ficou em torno dos 50%, e os tempos de espera, entre um e 30 minutos. Somente em casos bem particulares (chuva intensa) ou concentrações de carreta, o sistema satura, mas, em 98% das vezes, ele se encontra bem dimensionado. O grupo de projeto ficou satisfeito com os resultados, pois a simulação veio a corroborar suas expectativas. O cliente ainda ficou com o modelo, podendo rodá-lo na versãorun-time do software (SIMUL8 Viewer). Alguns pontos deste projeto merecem destaque:
• A aplicação da metodologia de simulação nem sempre é linear. Observe que o modelo, inicialmente, não estava válido, o que exigiu nova coleta de dados; • A simulação pode ser utilizada em projetos de horizonte de maior prazo como este; • A simulação, neste caso, serviu para confirmar as expectativas e reforçar o estudo.
Referências bibliográficas ALBESEDER, Daniel; FÜGGER, Matthias. Small PC-Network simulation – a comprehensive performance case study.Simulation News Europe. n. 41/42, p. 28-31, 2004. CHISMAN, James A.Industrial cases in simulation modeling. Belmont: Duxbury Press, 1996. CHWIF, Leonardo; MEDINA, Afonso C., BARRETTO, Marco R. P., MONTEVECHI, J. A. Use of discrete event simulation for a long range planning of an expediditon system. The 7th International Workshop on Modeling & Applied Simulation – MAS 2008, Italy, p. 63-67, 2008. DIJK, Nico M. Why queuing never vanishes.European Journal of Operations Research. v. 99, p. 463-476, 1997. FRANCO, Daniel L.; MANCINI, Elder; PACÍFICO, João P. dos Santos; BAISE, Mario. Criação de uma metodologia de planejamento de caixas de supermercado. Trabalho de Graduação. São Caetano do Sul: Escola de Engenharia Mauá, 2001. HARRIS, Ford W. How many parts to make a once.Operations Research, v. 38, n. 6, p. 947-950, 1990. LARSON, Richard C.; ODONI, Amadeo R.Urban operations research. Englewood Cliffs: Prentice-Hall, 1981.
LARSON, Richard C. Perspectives in queues: social justice and psychology of queueing. Operations Research, v. 35, n. 6, p. 895-905, 1987. LAW, Averill M.; KELTON, David W. Simulation, modeling & analysis. 2. ed. Nova York: McGraw-Hill, 1991. MYIASHITA, Ricardo. Desenvolvimento de um ambiente visual e interativo para modelagem e processamento de simulação a eventos discretos usando a abordagem DCA – três fases . Tese de Doutorado. Rio de Janeiro: Universidade do Estado do Rio de Janeiro, 2002. PEZZOPANE, J. E. M; SENTELHAS, P. C.; ORTOLANI, A. A.; MORAES, A. V. C. Hourly rainfall pattern for three in Piracicaba, the state ofn.São a subsidy to agricultural practices planning. Sci.sites Agric. 52, Paulo, v. 1, p. Brazil: 70-77, 1995. PIDD, Michael. Five Simple Principles of Modelling. Proceedings of the Winter Simulation Conference, p. 721-728, 1996. SALTZMAN, Robert M.; MEHROTRA, Vijay. A call center uses simulation to drive strategic change. Interfaces, n. 3, v. 31, p. 87-101, 2001. TAUBÖCK, Shabnam M. C14 Supply chain management. Simulation News Europe, 2001. Disponível em: . Acesso em: 10 de agosto de 2005. WHITT, Ward. Deciding which queue to join: some counterexamples.Operations Research, v. 34, n. 1, p. 55-62, 1986. WINSTON, Wayne L. Operations research: applications and algorithms. Belmont:
Duxbury Press, 1994.
Capítulo 9
Tópicos adicionais em simulação
9.1. Introdução Como discutido no Capítulo 1, existem outras formas de simulação além da Simulação de Eventos Discretos. Neste capítulo, são apresentadas a Simulação de Monte Carlo e a Simulação de Sistemas Dinâmicos. Enquanto a Simulação de Monte Carlo representa um sistema em determinado instante do tempo, a Simulação de Sistemas Dinâmicos considera o comportamento do sistema ao longo do tempo e, principalmente, as relações de causa e efeito entre os seus elementos. Ambas as técnicas de simulação são de larga aplicabilidade, como será visto nas próximas seções. Na seção 9.6 apresentaremos as novas tendências em simulação, que inclui, por exemplo, a Simulação de Agentes.
9.2. Simulação de Monte Carlo Na Simulação de Monte Carlo, também conhecida como simulação estática , o tempo não é o parâmetro mais importante, como no caso da Simulação de Eventos Discretos. A seguir, serão apresentados dois exemplos que ilustram a sua aplicação.
Exemplo 9.1: O problema do jornaleiro Considere o problema clássico da gestão de estoques, conhecido como “problema do ornaleiro”. Nele, um vendedor de jornais deve decidir quantos jornais comprará do se fornecedor para atender à clientela de domingo. Se comprar mais jornais do que o número verificado de clientes, a sobra de jornal será vendida para um serviço de reciclagem de papel por R$ 1,00 a unidade. Por outro lado, se o número de clientes for maior do que o número de jornais disponíveis, o jornaleiro deixa de ganhar o valor da venda, R$ 3,00 por cliente não atendido. Os jornais são comprados em lotes de 50 jornais ao preço unitário de R$ 2,50 por jornal. A partir da sua experiência vendendo jornais, o jornaleiro sabe que a distribuição do número de clientes que aparecem em um domingo é discreta e pode ser representada pela Tabela 9.1. Tabela 9.1 – Função densidade de probabilidade para o número de jornais vendidos no domingo Númerodeclientes 100
Pro babilidade 0,10
150
0,25
200
0,35
250
0,20
300
0,10
Esse problema pode ser resolvido com relativa facilidade pela Simulação de Monte Carlo. A ideia da Simulação de Monte Carlo é simples: suponha que se construa uma roleta (daquelas de cassino) dividida em cinco faixas, uma para cada nível de demanda: “100”, “150”, “200”, “250” e “300”, com áreas proporcionais às suas respectivas probabilidades de ocorrência (Figura 9.1).
Figura 9.1 – Roleta representando as demandas do domingo.
De posse da roleta, um domingo pode ser facilmente simulado: roda-se a roleta e determina-se qual o número de clientes que aparecerá para comprar jornais. Por exemplo, considere que o jornaleiro realizou um pedido de 200 jornais para atender à demanda de domingo. Qual o lucro médio obtido nesse caso? De posse da roleta, simulamos alguns domingos. Na Tabela 9.2, existem as demandas ocorridas e o lucro obtido para 10 “domingos”, ou, como denominamos no Capítulo 6, para 10 “replicações”. Tabela 9.2 – Demanda e lucro obtidos a cada domingo para um pedido de 200 jornais Número Demanda ob tida pela rol eta Vendas (B) Dia
Custo ( C)
Sobra (D)
Lucro
=(A-
(=B+D-
aleatório
(A)
=A*R$ 3,00 =200*R$ 2,50 200)*R$ 1, 00
1
0,68
200
R$600,00
R$500,00
R$0,00
2
0,58
150
R$450,00
R$500,00
R$50,00
3
0,41
200
R$600,00
R$500,00
R$0,00
R$ 100,00
4
0,18
100
R$300,00
R$500,00
R$100,00
-R$ 100,00
5
0,24
300
R$600,00
R$500,00
R$0,00
6
0,12
150
R$450,00
R$500,00
R$50,00
7
0,66
200
R$600,00
R$500,00
R$0,00
R$ 100,00
8
0,62
250
R$600,00
R$500,00
R$0,00
R$ 100,00
9
0,54
150
R$450,00
R$500,00
R$50,00
10
0,88
100
R$300,00
R$500,00
R$100,00
C) R$ 100,00
R$0,00
R$ 100,00 R$0,00
R$0,00 -R$ 100,00 R$
Lucro médio: 30,00 Desvio-padrão:
R$ 82,33
Pelo resultado das primeiras 10 replicações, nosso pobre jornaleiro vai continuar pobre. Evidentemente, não devemos tirar conclusões precipitadas a partir de um número tão baixo de replicações, afinal, o sistema ainda está no seu regime transitório (Cap. 6). A roleta precisa ser utilizada mais vezes, para se simular um número maior de domingos e se testar o modelo com outros tamanhos de lotes adquiridos pelo colega vendedor de jornais. Obviamente, construir roletas não é uma tarefa fácil, mas, utilizando as técnicas de geração de variáveis aleatórias apresentadas no Apêndice III, pode-se obter os mesmos resultados através de uma planilha eletrônica. A Tabela 9.3 sintetiza 50 replicações realizadas para um lote fixo de 200 jornais.1 Dia
Número Demanda obtida pela roleta Vendas (B) Custo (C) aleatório (A) =A*R$ 3,00 =200*R$ 2,50
Sobra (D) Lucro =(A(=B+D200)*R$ 1,00 C)
Tabela 9.3 – Problema do jornaleiro: 50 replicações para um lote de 200 jornais Número Demanda ob tida pela rol eta Vendas (B) Dia
Custo ( C)
Sobra (D) =(A-
Lucro (=B+D-
aleatório
(A)
=A*R$ 3,00 =200*R$ 2,50 200)*R$ 1, 00
1
0,68
200
R$600,00
R$500,00
R$0,00
R$ 100,00
2
0,58
200
R$600,00
R$500,00
R$0,00
R$ 100,00
3
0,41
200
R$600,00
R$500,00
R$0,00
R$ 100,00
4
0,18
150
R$450,00
R$500,00
R$50,00
R$0,00
5
0,24
150
R$450,00
R$500,00
R$50,00
R$0,00
6
0,12
150
R$450,00
R$500,00
R$50,00
R$0,00
7
0,66
200
R$600,00
R$500,00
R$0,00
R$ 100,00
8
0,62
200
R$600,00
R$500,00
R$0,00
R$ 100,00
9
0,54
200
R$600,00
R$500,00
R$0,00
R$ 100,00
10
0,88
250
R$600,00
R$500,00
R$0,00
R$ 100,00
C)
R$
11
0,74
250
R$600,00
R$500,00
R$0,00
100,00
12
0,79
250
R$600,00
R$500,00
R$0,00
R$ 100,00
13
0,48
200
R$600,00
R$500,00
R$0,00
R$ 100,00
14
0,96
300
R$600,00
R$500,00
R$0,00
R$ 100,00
15
0,29
150
R$450,00
R$500,00
R$50,00
R$0,00
16
0,31
150
R$450,00
R$500,00
R$50,00
R$0,00
17
0,96
300
R$600,00
R$500,00
R$0,00
R$ 100,00
18
0,79
250
R$600,00
R$500,00
R$0,00
R$ 100,00
19
0,25
150
R$450,00
R$500,00
R$50,00
20
0,83
250
R$600,00
R$500,00
R$0,00
R$ 100,00
21
0,75
250
R$600,00
R$500,00
R$0,00
R$ 100,00
22
0,15
150
R$450,00
R$500,00
R$50,00
R$0,00
R$0,00
23
0,19
150
R$450,00
R$500,00
R$50,00
R$0,00
24
0,58
200
R$600,00
R$500,00
R$0,00
R$ 100,00
25
0,41
200
R$600,00
R$500,00
R$0,00
R$ 100,00
26
0,04
100
R$300,00
R$500,00
R$100,00
-R$ 100,00
27
0,39
200
R$600,00
R$500,00
R$0,00
R$ 100,00
28
0,76
250
R$600,00
R$500,00
R$0,00
R$ 100,00
29
0,88
250
R$600,00
R$500,00
R$0,00
R$ 100,00
30
0,17
150
R$450,00
R$500,00
R$50,00
31
0,44
200
R$600,00
R$500,00
R$0,00
R$ 100,00
32
0,66
200
R$600,00
R$500,00
R$0,00
R$ 100,00
33
0,39
200
R$600,00
R$500,00
R$0,00
R$0,00
R$
100,00 34
0,53
200
R$600,00
R$500,00
R$0,00
R$ 100,00
35
0,95
300
R$600,00
R$500,00
R$0,00
R$ 100,00
36
0,91
300
R$600,00
R$500,00
R$0,00
R$ 100,00
37
0,69
200
R$600,00
R$500,00
R$0,00
R$ 100,00
38 39
0,19 0,37
150 200
R$450,00 R$600,00
R$500,00 R$500,00
R$50,00 R$0,00
40
0,00
100
R$300,00
R$500,00
R$100,00
-R$ 100,00
41
0,54
200
R$600,00
R$500,00
R$0,00
R$ 100,00
42
0,62
200
R$600,00
R$500,00
R$0,00
R$ 100,00
43
0,88
250
R$600,00
R$500,00
R$0,00
R$0,00 R$ 100,00
R$ 100,00
44
0,19
150
R$450,00
R$500,00
R$50,00
R$0,00
45
0,86
250
R$600,00
R$500,00
R$0,00
46
0,68
200
R$600,00
R$500,00
R$0,00
47
0,19
150
R$450,00
R$500,00
R$50,00
R$0,00
48
0,19
150
R$450,00
R$500,00
R$50,00
R$0,00
49
0,72
250
R$600,00
R$500,00
R$0,00
50
0,22
150
R$450,00
R$500,00
R$50,00
R$ 100,00 R$ 100,00
R$ 100,00 R$0,00
Lucro médio:
R$ 64,00
Desvio-padrão:
R$ 56,28
A pergunta srcinal continua esperando a sua resposta: “Qual o tamanho do lote de ornais que dará o maior lucro médio?”. Para respondê-la, deve-se simular o modelo para cada tamanho de lote possível: 100, 150, 200, 250 e 300. A Tabela 9.4 apresenta os resultados obtidos para cada tamanho de lote, a partir de simulações com 10.000
replicações. Pela Tabela 9.4, o lucro médio mais alto ocorre quando o jornaleiro solicita lotes de 150 jornais. Tabela 9.4 – Lucro médio obtido em função do número de jornais adquiridos Lo te
Lucro médio o btido
Precisão do intervalo de co nfiança
100
R$ 50,00
R$ 0,00
150
R$ 66,81
R$ 0,67
200
R$ 56,44
R$ 1,49
250
7,62 R$
1,50 R$
300
-R$ 51,30
R$ 2,50
2 A última coluna da Tabela 9.4 apresenta os resultados dos intervalos de confiança calculados com 95% de confiança (Cap. 6). Assim, por exemplo, o lucro médio para lotes de 150 jornais está no intervalo entre R$ 66,14 e R$ 67,48, com confiança de 95%. Obviamente, um número maior de replicações diminui o intervalo, aumentando a precisão do lucro médio. Com mais “roletas” ou geradores de números aleatórios, pode-se simular sistemas mais complexos. A Simulação de Monte Carlo é hoje uma das ferramentas mais populares como auxílio à tomada de decisão, devido à sua facilidade de implementação em planilhas
eletrônicas. O próximo exemplo aplica a Simulação de Monte Carlo para um problema do
mercado financeiro e utiliza recursos disponíveis em planilhas eletrônicas.
Exemplo 9.2: O problema do fazendeiro Um fazendeiro deve decidir quanto produzirá de determinado produto na próxima safra. Ele tem três possibilidades de produção: 500 t, 750 t ou 1.000 t. Seu principal problema é o risco quanto ao preço futuro do produto. Historicamente, o preço da unidade de produto está correlacionado com a produção total dos fazendeiros da região, de modo que, se todos produzem mais, a oferta aumenta e o preço cai. Pode-se assumir, contudo, que o comportamento do fazendeiro quanto ao nível de produção é comparável ao dos outros fazendeiros da região, de modo que a seguinte expressão correlaciona a quantidade produzida, Q, ao preço de referência do produto, P, por tonelada: (9.1)
Contudo, o preço real apresenta uma oscilação em relação ao preço de referência, de modo que o preço real é normalmente distribuído com médiaP e coeficiente de variação de 20%; ou seja, o desvio-padrão equivale a 20% da média P. Para produzir a safra, o fazendeiro tem um custo variável de R$ 1.000,00/t e um custo fixo de R$ 600.000,00 a cada safra.
No problema em questão, o fazendeiro deseja maximizar o lucro esperado pela comercialização da safra. Dado um preço futuroP’, a expressão do lucro total esperado L é:
(9.2)
Na expressão 9.2, L é a função objetivo do fazendeiro, e Q é a variável de decisão. Utilizando ferramentas computacionais disponíveis, é possível simular diretamente a expressão anterior sem a necessidade da construção das tabelas do exemplo do jornaleiro. 3
Alguns softwares são: @Risk, Crystal Ball, Insight, etc. Geralmente, esses disponíveis softwares utilizam planilhas eletrônicas como Simtools, base. ParaGnumeric este exemplo, utilizaremos o Gnumeric,4 uma planilha eletrônica de código aberto que pode ser baixada e utilizada gratuitamente. Para usuários do Excel ou OpenOffice, a planilha tem as mesmas funções (e com a mesma nomenclatura). 5 Basicamente, a montagem do modelo se dá em três etapas: 1. Montagem da equação do preço futuro. Na célula D8, foi colocada a expressão: “=12500-350*SQRT(D5)”; na célula D5, foram colocados os níveis de produção (500, 750 ou 1.000); na célula D9, foi colocada a expressão do preço futuro que é normalmente distribuído: “=NORMINV(RAND(), D8,0.2*D8)”.
2. Montagem da equação do lucro. Na célula D12, foi colocada a expressão do lucro
esperado: “=D9*D5-1000*D5-600000”. 3. Simulação. No Gnumeric, entre na opção “Simulação” do menu “Ferramentas”. Na aba “Variáveis”, são definidas as células das variáveis de decisão e da função objetivo. Para o Gnumeric, “Variáveis de entrada” são as entradas; no caso, o preço futuro colocado na célula D9. “Variáveis de saída” são as saídas; no caso, o lucro esperado colocado na célula D12. Na aba superior “Opções”, é possível definir o número de iterações da simulação, que, neste exemplo, utilizamos 10.000. Tabela 9.5 – Lucro médio obtido pelo fazendeiro em função da quantidade produzida Quantidade produz ida (t) Lucro méd io obti do
Precisão do in tervalo de conf iança (95%)
500
R$1.235.507,19
R$7.762,80
750
R$836.141,43
R$7.237,02
1.000
-R$165.022,96
R$4.702,78
O Gnumeric apresenta os resultados completos da simulação, inclusive com os intervalos de confiança já calculados. A Tabela 9.5 apresenta o lucro médio obtido pelo fazendeiro para cada nível de produção e os respectivos intervalos de confiança. Notadamente, o fazendeiro terá maior lucro se produzir ao nível de 500 t na próxima safra, pois seu lucro médio será R$ 1.235.507,19 ± 7.762,80.
9.3. Introdução à Simulação de Sistemas Dinâmicos A Simulação de Sistemas Dinâmicos é útil para a análise de sistemas caracterizados por relações de causa e efeito entre seus componentes. Os exemplos a seguir ilustram sua aplicação.
Exemplo 9.3: Uma avenida bem congestionada Considere, por exemplo, uma avenida congestionada de uma cidade e o desejo da prefeitura de construir uma nova avenida paralela à atual. Para conseguir os recursos necessários, a prefeitura pretende vender “certificados de construção”, de modo que os proprietários dos terrenos na região e, principalmente, no entorno da nova avenida possam construir edificações com até 25 andares.
Figura 9.2 – Via simples con gestionada do ex emplo.
Passado algum tempo, a prefeitura inaugura a nova avenida, com discurso, foguetório e bandinha de música. Passam-se mais alguns meses, e o trânsito melhora tanto que a reeleição do prefeito é iminente.
Figura 9.3 – Depois da s obras, não existem mais cong estionamentos, e f lorescem investimentos imobiliários no novo “Eldorado”.
Passam-se mais alguns meses e... as duas avenidas estão completamente congestionadas!
Figura 9.4 – Da via simples congestionada até a via dupla congestionada.
O que ocorreu? Incentivados por uma melhor oferta de transportes, causada pela nova avenida, e com um aumento explosivo na oferta de escritórios comerciais construídos por incentivo da prefeitura – lembre-se dos certificados de construção utilizados para financiar a nova avenida –, boa parte da população foi em busca do novo eldorado urbano: avenida larga, imóveis novos e mais empregos, em decorrência dos novos escritórios. De fato, faltava oferta de transportes. Num primeiro momento, a nova avenida aumento essa oferta e eliminou o congestionamento de veículos. Contudo, para viabilizar economicamente a obra, a prefeitura incentivou a construção de novos edifícios comerciais. Surgiu, assim, uma oferta adicional de empregos prontamente assimilada pela população. Esses novos trabalhadores, muitos dos quais ex-moradores da região, agora precisam de transporte para ir ao novo emprego. Com o aumento dos negócios, em pouco tempo a nova avenida deixou de ser suficiente para atender à nova demanda, ocasionando uma situação caótica muito pior do que a anterior. Seria possível simular um sistema como esse de modo a prever o comportamento da cidade antes de se realizar o investimento na nova avenida? Em sistemas complexos em que os mecanismos de realimentação, oufeedback , são elementos fundamentais para o seu funcionamento, como os sistemas sociais do exemplo da cidade, existe uma metodologia para entendimento e modelagem de algumas classes de problemas complexos, conhecida como dinâmica de sistemas (do inglês: System
Dynamics ).
Originalmente, a dinâmica de sistemas foi criada por Forrester (1961) para lidar com problemas industriais,6 mas a sua natureza geral permitiu estendê-la para várias classes de sistemas (industriais, sociais, econômicos etc.). São diversas as aplicações dos modelos de sistemas dinâmicos: na economia, no estudo da dinâmica das populações animais, no comportamento humano, no planejamento urbano, nos investimentos públicos, nos negócios etc. Uma referência interessante, com muitos exemplos, é o livro Business Dynamics (STERMAN, 2000), que aplica a técnica em diversos modelos da área de gestão e negócios. A filosofia que permeia a dinâmica de sistemas é chamada de System Thinking, e uma das suas melhores referências é o livroA quinta disciplina (SENGE, 1990), obra fundamental para quem deseja se aprofundar na área. Diferentemente da Simulação de Eventos Discretos, em que o foco são as atividades ou eventos, a modelagem de um sistema dinâmico foca as relações decausa e efeito entre as variáveis ou elementos do sistema simulado. Além disso, um modelo de simulação discreta dificilmente possui retroalimentações, que foram a base dos modelos de sistemas dinâmicos.
9.4. Sistemas dinâmicos: diagrama de laços causais A dinâmica dos sistemas, basicamente, trabalha com relações de causa e efeito, acumulação de fluxos e atrasos de tempo. Esquematicamente, um sistema pode ser representado pelo seu diagrama de laços causais.
Exemplo 9.4: Caderneta de poupança Um investidor deseja simular o comportamento da sua caderneta de poupança. Neste caso, têm-se duas variáveis principais: o dinheiro disponível na poupança, D, e ganhos mensais, G. Quanto mais dinheiro ele investe na poupança, mais ele aumenta os ganhos mensais. Assim, neste sistema, o dinheiro investido,D, causa o efeito do aumento dos ganhos mensais, G, e, de modo similar, um aumento dos ganhos mensais,G, causa o efeito de aumento do dinheiro investido, D. A Figura 9.5 representa o diagrama de laços causais do investidor.
Figura 9.5 – Diagrama de laços causais para o exemplo da poupança.
No diagrama, o sinal positivo no arco indica que o aumento do dinheiro investido aumenta o ganho da poupança. Como, por sua vez, o aumento do ganho da poupança causa um aumento do dinheiro investido, o arco inferior também tem um sinal positivo. O arco menor e mais interno, com o sinal de “+”, identifica a existência de um ciclo fechado entre laço. dinheiro investido e ganho na poupança, denominado Um diagrama de laços causais é uma representação de arcos e nós em que os nós simbolizam as variáveis do sistema e os arcos simbolizam as relações existentes entre as variáveis. Um arco entre duas variáveis X e Y pode ser positivo ou negativo . Simplificadamente: • Se o arco for positivo, o crescimento da variável X causa o crescimento da variável Y (o a diminuição de X causa a diminuição de Y); • Se o arco for negativo, o crescimento deX causa uma diminuição deY (ou a diminuição de
X causa o crescimento de Y). Um laço (ou “loop”), que é um conjunto de arcos que formam um caminho fechado, também pode possuir sinal. O efeito de umloop positivo (denominado também delaço de reforço), como o mostrado na Figura 9.5, é o de gerar um crescimento ilimitado: no caso da poupança, quanto mais dinheiro depositado, maiores serão os ganhos mensais, o que aumentará a quantidade de dinheiro acumulado. Como não foi considerada a possibilidade de retiradas ou saques de dinheiro, o investidor terá um ganho ilimitado no tempo. Consideremos agora, que o investidor, percebendo um aumento dos recursos disponíveis na poupança, resolve retirar parte do valor para comprar bens, como carro, liquidificador, livros de simulação etc. Neste caso, “R” é a retirada que o investidor realiza. Quanto maior o dinheiro disponível, maior será a retirada, e quanto maior for a retirada, menor será o dinheiro disponível. A Figura 9.6 representa o diagrama da nova situação do investidor. Note a existência de um loop negativo, ou laço de balanço, que faz com que o sistema tente atingir uma situação de equilíbrio.
Figura 9.6 – Diagrama de laços causais para o exemplo da poupança.
Para o problema da avenida congestionada, de maneira simplificada, uma parte do diagrama de laços causais seria análogo ao da Figura 9.5. No caso, as variáveis de interesse “O”,naque é o investimento obras”; “P”, população que região; e “T”, o são: trânsito avenida. Assim, umdeaumento nos ainvestimentos emcircula obras na causa uma diminuição no trânsito da região. Por sua vez, uma diminuição no trânsito causa um aumento na população que circula na região, o que causa um aumento no trânsito. Com o crescimento do trânsito, naturalmente, existirá um aumento nos congestionamentos e a necessidade de mais investimentos em obras. Neste caso, temos umloop negativo, ou laço de balanço, que faz com que o sistema tente atingir um equilíbrio. Assim, poderíamos ilustrar o comportamento através da Figura 9.7.
Figura 9.7 – Diagrama de laços causais do exemplo da avenida congestionada.
Exe mplo 9.5: Inve stime ntos e m me trô Quando uma cidade investe na construção de um nova linha de metrô, espera-se uma redução do número de automóveis nas ruas, um aumento do número de usuários do metrô e, consequentemente, um aumento da receita do sistema metroviário. A disponibilidade de mais receita viabiliza a construção de novas linhas de metrô. Contudo, o aumento de usuários circulando pelas linhas aumenta a lotação dos vagões, e vagões mais cheios significa desconforto para os passageiros e redução de usuários do metrô. A Figura 9.8 representa o diagrama de laços causais do problema. Pela figura, por exemplo, oloop “usuários-automóveis-trânsito-usuários” representa as relações de causa e efeito entre as variáveis. Note que um aumento de usuários do metrô causa uma redução do número de automóveis em circulação (sinal negativo no arco que liga “usuários” a “automóveis”). O aumento do número de automóveis aumenta o trânsito (sinal positivo no arco que liga “automóveis” a “trânsito”). Por fim, o aumento do trânsito causa um aumento no número de
usuários do metrô, pois as pessoas trocam os automóveis pelo metrô (sinal positivo no arco que liga “trânsito” a “usuários”). Um erro comum seria criar um arco entre “automóveis em circulação” e “lotação do metrô”, pois, afinal, “mais automóveis em circulação diminuem a lotação do metrô”. Esta, contudo, não é uma relação de causa e efeito direta, pois a lotação não é afetada pelos automóveis, mas sim por aqueles que compõem a lotação: usuários e trens disponíveis.
Figura 9.8 – Diagrama de laços causais para o exemplo do metrô.
9.5. Sistemas dinâmicos: construção do modelo A construção de um modelo de sistemas dinâmicos se dá, essencialmente, a partir das seguintes etapas: • Criação de um diagrama de laços causais; • Criação de um diagrama de estoque e fluxo; • Definição das equações, dos parâmetros e dos valores iniciais que regem o sistema. A primeira etapa foi apresentada na seção anterior. A segunda etapa é a transformação dos laços causais em um diagrama de estoque e fluxo. Neste diagrama, as variáveis do diagrama de laços causais se tornamvariáveis auxiliares, estoques ou fluxos . De fato, todo modelo de simulação dinâmica representa situações através de estoques e fluxos. Vamos exemplificar este processo de conversão no exemplo a seguir.
Exemplo 9.6: Analogia da caixa d’água
Figura 9.9 – Analogia da caixa d’água.
A caixa d’água da Figura 9.9 pode ser representada por um diagrama de estoque e fluxo como o apresentado. As válvulas de entrada e saída são consideradas “fluxos”, representados pelos símbolos semelhantes a ampulhetas no diagrama de estoque e fluxo; a caixa d’água, por sua vez, é um estoque , representado por um retângulo. Assim, se o fluxo de entrada de água T( 1) for maior
do que o fluxo de saída (T1>T2), o nível do estoque (água) aumentará ao longo do tempo; se o fluxo de saída for maior do que o de entrada T( 2>T1), o nível de estoque diminuirá, e, se os fluxos forem iguais (T1 = T2), o nível de água permanecerá o mesmo. A “nuvem” no diagrama estoque e fluxo indica que a fonte de água da entrada é infinita e que a saída pode absorver qualquer vazão de água. Note que esta modelagem é tão abrangente que o diagrama da Figura 9.9 poderia modelar uma situação completamente diferente, como a dinâmica da população de morcegos de uma região: o estoque seria a população de morcegos, T1 representaria a taxa de nascimento, e T a taxa de morte, como ilustra a Figura 9.10. 2
Figura 9.10 – Dinâmica de crescimento e d iminuição da popu lação d e morcegos.
De posse dos conceitos anteriores, o diagrama de laços do exemplo da poupança pode ser convertido para um de estoque e fluxo: a variável “Dinheiro” é um estoque, pois representa o dinheiro acumulado na poupança; a variável “Ganhos” é um fluxo, pois representa o aporte mensal de dinheiro na poupança, ou seja, o fluxo monetário. Esse fluxo, por sua vez, depende de uma variável externa ao modelo, a “taxa de juros”. Assim, o
diagrama de estoque e fluxo seria o mostrado na Figura 9.11.
Figura 9.11 – Diagrama de estoque e fluxo para o exemplo do poupador.
A partir de um diagrama de estoque e fluxo, pode-se definir as equações que regem o sistema, bem como os parâmetros e os valores iniciais das variáveis. No exemplo da poupança o sistema é regido por apenas uma equação: Fluxo monetário = poupança × taxa de juros
(9.3)
Essa equação pode ser traduzida na seguinte equação de diferencial:
(9.4)
Ou seja, o dinheiro que está na poupança no instantet + ∆ t será o que havia no instante anterior t, multiplicado pela taxa de juros no período infinitesimal ∆t. Ou, de um modo prático, ∆ t é o “passo” de avanço do tempo, necessário para toda Simulação Contínua. O relógio de simulação do modelo da poupança (e de qualquer modelo de sistema dinâmico) sempre avançará de ∆t em ∆ t unidades de tempo. No exemplo, o leitor deve perceber facilmente que o usual no sistema financeiro é se considerar ∆t igual a um mês (para uma poupança com rendimento de 1% ao mês, por exemplo, a taxa de juros seria igual a 0,01). Finalmente, basta definir a quantidade de dinheiro disponível inicialmente na poupança (p. ex., R$ 1.000,00), para poder implementar o modelo de estoque e fluxo em um simulador de sistemas dinâmicos. Um simulador de uso simples é o Vensim7 (da Ventana Systems), que é gratuito para finalidades acadêmicas. A Figura 9.12 mostra uma tela do software Vensim com o modelo da poupança e alguns resultados obtidos após a sua execução. Note que simulado o sistema durante 100 meses, o investidor teria acumulada a “polpuda” quantia de R$ 2.704,81. Outra observação interessante é que o resultado (dinheiro acumulado) cresce exponencialmente, o que é característico de sistemas com laços positivos. Evidentemente, este modelo representa um exemplo extremamente simples de sistema dinâmico. O próximo exemplo é mais complexo: envolve vinho, dinheiro, um casal e... simulação!
Figura 9.12 – Tela do software de simulação dinâmica V ensim para o ex emplo da poup ança.
Exemplo 9.7: Um jantar romântico Você convidou sua(seu) namorada(o) para um jantar em sua casa, comprou um vinho muito caro e não quer fazer feio na hora de encher o copo da sua companhia. Então, antes de realmente encher o copo, você decide modelar o processo de enchimento (o que a ansiedade não faz com a gente?!). O processo de enchimento, seja do vinho ou de um reles copo de água, é praticamente o mesmo, ou seja, deseja-se um limite superior de líquido e a vazão de
enchimento inicial é a maior possível. Assim que o copo vai “enchendo”, a vazão cai até ir para zero. Este é um processo em malha fechada (ou seja, possui mecanismo de feedback ) e está ilustrado na Figura 9.13.
Figura 9.13 – Processo de enchimento da taça de vinho do exemplo.
Note que a inclinação da garrafa de vinho determina o fluxo de vinho. Quanto maior o fluxo, mais rapidamente sobe o nível de líquido. Quanto maior o nível de líquido, menor a diferença entre o nível atual e o nível desejado, o que faz com que se altere a inclinação da garrafa (já que você não quer transbordar a taça). O diagrama de laços causais para o enchimento da taça está representado na Figura 9.14.
Figura 9.14 – Diagrama de laços causais para o exemplo do enchimento da taça de vinho.
Para converter o diagrama da Figura 9.14 em um diagrama de estoque e fluxo, deve-se notar que o vinho disponível na taça é um estoque e que o fluxo de vinho é, ele mesmo, um fluxo, como representado na Figura 9.15.
Figura 9.15 – Diagrama de estoque e fluxo do exemplo de enchimento da taça de vinho.
Primeiramente, suponha que o fluxo máximo de vinho da garrafa para a taça (obtido quando a garrafa de vinho está na maior inclinação “segura” possível) seja de 50 mL/s e que o nível de líquido desejado na taça seja de 200 mL. Como estratégia de controle, o fluxo de vinho da garrafa para a taça deve ser proporcional à diferença gap ( ) entre o nível de líquido desejado e o nível de líquido instantâneo. Assim, quando a taça está vazia e o gap é máximo, o fluxo também deve ser máximo. Conforme a taça vai se enchendo,gap o diminui, e o fluxo também diminui de modo proporcional. A equação que rege o sistema é:
A Figura 9.16 apresenta os gráficos de nível de vinho e o fluxo do vinho no decorrer do tempo, como gerados pelo software Vensim. Neste caso, observa-se que o copo é enchido em cerca de 20 segundos, e, quando isso ocorre, o fluxo de vinho é interrompido.
Figura 9.16 – Gráficos do nível de vinho na taça e do fluxo de vinho de enchimento como gerados pelo Vensim.
Note que a variável de interesse, nível de vinho na taça, tende a um valor limite, o que geralmente ocorre quando tivermos umloop negativo. Pode-se ainda simular vários cenários diferentes de enchimento (com diferentes fluxos máximos e tamanho de copos), mas, com certeza, o melhor a se fazer neste caso é beber o vinho...
Os casos analisados geram comportamentos típicos de sistemas dinâmicos: crescimento exponencial (caso da poupança) e evolução para um valor limite (caso do vinho). Um terceiro caso (exercício 3) representa sistemas de comportamento oscilatório. Outros comportamentos podem ser derivados desses três, e um modelo pode conter uma combinação de vários comportamentos diferentes. Os modelos apresentados aqui são relativamente simples, mas é possível complicá-los o quanto se queira. O próprio Forrester criou um modelo para estudar o crescimento da população mundial com mais de 300 equações. O campo da simulação dinâmica é muito extenso, e não pretendemos usar este capítulo para esgotar o assunto.
9.6. Tendências em simulação8 Esta última seção discute algumas das tendências da Simulação de Eventos Discretos, versando sobre três tópicos avançados com fértil campo para pesquisa científica e tecnológica. Primeiramente se apresenta a Simulação Baseada em Agentes, talvez o assunto mais em destaque no universo de pesquisa em simulação de sistema. A seguir, apresentamse a Simulação Web e a Simulação Baseada em Componentes. Por fim, é apresentada a Simulação Distribuída, que já possui pacotes comerciais à disposição para sua implementação. Não se pretende uma abordagem exaustiva, mas focada nos conceitos principais e na sugestão ao leitor das referências bibliográficas seminais, que darão a devida profundidade quando esta se fizer uma necessidade.
9.6.1. Simulação Baseada em Agentes Embora a Simulação Baseada em Agentes (ABS – Agent-Based Simulation ) tenha sua base teórica definida ao final da década de 1940 com o desenvolvimento da Teoria de Autômatos (VON NEUMANN, 1948; 1966) e tenha se consolidado efetivamente na década de 1990, somente a partir desta última década é que ela obteve uma maior aceitação e número de adeptos, gerando assim um maior número de pesquisas e projetos. A Simulação Baseada em Agentes é um paradigma de simulação realizada por meio da construção do modelo de um sistema baseado em uma coleção de entidades de decisão
autônomas, denominadasagentes, que residem em umambiente (i.e., um mundo virtual que pode ser discreto ou contínuo) e são capazes de interagir tanto entre si quanto com se ambiente, conforme ilustra a Figura 9.17. Normalmente, denomina-se esse paradigma de modelagem bottom-up (de baixo para cima), uma vez que, a partir do comportamento individual dos agentes (suas ações e interações) obtém-se como resultado o comportamento global observável do sistema.
Figura 9.17 – Componentes de um modelo de Simulação Baseada em Agentes.
De acordo com Siebers et al . (2010), um modelo de Simulação de Agentes (ABMS – gent Based Model Simulation ) pode ser caracterizado por um modelo de simulação em que um dado sistema é representado por uma coleção de agentes que são programados para seguirem regras de comportamentos, havendo interação com troca de informações entre
esses agentes e até aprendizado (o agente “aprende” algo programado ao longo do tempo, apresentando um comportamento evolutivo). No jargão deste livro, um agente é uma entidade (como uma entidade de um ACD, por exemplo) individual (representando seres humanos ou formigas ou zumbis) ou coletiva (representando organizações empresariais ou colônias ou mortualha de zumbis) que possui um comportamento, normalmente definido por meio de regras simples. Ele também é capaz de interagir com o ambiente por meio de ações e com outros agentes por meio de troca de mensagens. Essas mensagens representam o diálogo direto entre dois indivíduos ou ainda um contato indireto, realizado por meio da observação do comportamento desses agentes ou dos efeitos de suas ações. Por exemplo, considere que na Figura 9.17 um dos agentes é infectado pelo vírus Z e se torna um zumbi. Pode-se construir um modelo de simulação computacional que represente o comportamento da comunidade de pessoas sob ataque de uma ameaça zumbi. Simplificadamente, cada agente infectado (zumbi) vasculha o ambiente numa busca desesperada por cérebros para comer, enquanto os agentes não infectados movimentam-se em permanente fuga. Contudo, mesmo mais lentos, os agentes infectados são capazes de capturar os não infectados, e, dessa interação entre agentes, um agente não infectado será infectado e, em pouco tempo, tornar-se-á um zumbi. Um modelo computacional que represente esse conjunto de ações pode, portanto, representar por meio de simulação o comportamento do sistema e permitir ao analista responder a questões importantes sobre o comportamento social no caso de um ataque zumbi real.
Num primeiro momento, não é trivial a tarefa de diferenciar a Simulação de Eventos Discretos da Simulação de Agentes, pois, de fato, não são técnicas excludentes entre si, mas complementares. Para elucidar as diferenças, a Tabela 9.6 destaca os principais pontos de divergência entre os modelos de Simulação de Agentes e os de Simulação de Eventos Discretos. Tabela 9.6 – Comparação das características dos modelos de Simulação de Eventos Discretos e Baseada em Agentes (adaptada de Siebers et al., 2010) Modelos de Simulação de Eventos Discretos
Modelos de Simulação Baseada em Agentes
Foco na modelagem do processo
Foco na modelagem do comportamento individual das entidades
Controle centralizado (global)
Controle descentralizado (local ao agente)
Entidadesreativas
Entidadesreativasoupró-ativas
Interação pode ocorrer diretamente entre entidades Interação entre entidades e recursos em nível e recursos, podendo essa interação influenciar nas agregado decisões dos agentes Filas são elementos importantes
Não necessariamente usa filas
Inflexibilidade de definição de rotas dos agentes no ambiente (todas as rotas devem ser As rotas dos agentes no ambiente não precisam
previamente definidas)
necessariamente ser previamente determinadas
Segundo Bonabeau (2002), o paradigma da Simulação de Agentes possui diversos benefícios em relação a outros paradigmas existentes, quais sejam: • Ela permite a simulação de fenômenos emergentes, fenômenos esses que resultam da interação dos agentes individuais. Diferentemente do que se possa imaginar, tais fenômenos não podem ser deduzidos pela simples agregação das propriedades de seus agentes individuais, uma vez que essas entidades interagem e influenciam o comportamento uma das outras. Assim, o comportamento global observável do sistema é mais do que a soma de suas partes; • Ela possibilita uma descrição mais natural para modelagem de sistemas compostos de entidades que possuem comportamentos heterogêneos, tais como tráfego urbano, mercado financeiro ou organizações empresariais. Essa maior naturalidade deriva das características inerentes de sua entidade básica, o agente. É muito mais natural representar o comportamento de um conjunto de automóveis que se move nas vias de uma cidade por meio de regras individuais associadas a cada automóvel do que descrever o comportamento agregado de todos os automóveis por meio de equações diferenciais; • Ela é mais flexível sob diversas dimensões, tais como a quantidade e a complexidade de agentes compondo o sistema, uma vez que o comportamento é definido individualmente não sendo necessária a alteração da estrutura de controle do modelo com a alteração
dessas entidades ou suas quantidades sendo simuladas. As ciências que geralmente mais fazem uso da Simulação de Agentes são as sociais, políticas e econômicas. Entretanto, aplicações conhecidas abrangem um conjunto mais amplo de áreas e disciplinas, tais como: o mercado financeiro, a evolução da estrutura de mercados, as cadeias de suprimentos, a difusão de epidemia, a adaptabilidade do sistema imunológico, a violência civil, a evolução de normas sociais, as instituições políticas, a queda de civilizações antigas, entre outras.
Exemplo 9.8: O Jogo da Vida 9o Para ilustrar melhor o conceito de agente, é apresentado a seguir o “Game of Life”, Jogo da Vida, um problema clássico proposto pelo matemático britânico John Horto Conway, e publicado em um artigo na revista Scientific American de 1970 (GARDNER, 1970) (note como o conceito de agentes é bem antigo). A ideia desse modelo é reproduzir no tempo a evolução de uma população em um espaço bidimensional (Figura 9.18). Para tanto, utiliza-se um reticulado de duas dimensões e cada uma de suas posições, chamada de célula , representa um indivíduo, ou agente, dessa população. Cada célula ou agente pode estar em dois estados distintos: “vivo” – representado pela célula preenchida em cinza –, ou “morto” – representado pela célula preenchida em branco. Cada agente possui oito vizinhos que correspondem a suas quatro
células ortogonais (vertical e horizontal) e as quatro células diagonais. A Figura 9.19 ilustra
um exemplo de um reticulado com cinco agentes “vivos” (células cinza) e o restante deles “mortos” (células brancas).
Figura 9.18 – Reticulado bidimensional com cinco células representando agentes “vivos”, indicados com reenchimento em cinza, e o restante das células representando agentes “mortos”, indicados com preenchimento em branco.
O jogo evolui no tempo a partir de uma situação inicial por meio de um conjunto de regras individuais relativamente simples, quais sejam: • Sobrevivência: todo agente “vivo” com dois ou três vizinhos “vivos” sobrevive; • Morte : todo agente “vivo” com nenhum ou um vizinho “vivo” morre por isolamento;
aqueles com quatro ou mais vizinhos também morrem, mas devido ao excesso populacional; • Nascimento: todo agente “morto” com exatamente três agentes “vivos” adjacentes torna-se “vivo”. A cada instante de tempo, chamadogeração, essas regras são aplicadas simultaneamente por todos os agentes do ambiente. Desta maneira, iniciando pela situação ilustrada na Figura 9.18 e aplicando as regras descritas anteriormente, obtêm-se as situações ilustradas na Figura 9.19.
Figura 9.19 – Quatro gerações evoluídas a partir da situação inicial apresentada na Figura 9.18.
Vale ressaltar que padrões relativamente complexos podem surgir dessas regras relativamente simples, tais como: padrões estáticos (“ still lives”), padrões oscilatórios (“oscillators ”) e padrões que se movimentam no reticulado (“spaceships ”). Isso é possível somente devido à interação entre agentes que, neste caso, é representada pela observação
do estado dos agentes vizinhos.10 Embora este jogo seja de maior interesse acadêmico, ele aborda de maneira simples a ideia de agentes, uma vez que considera que cada posição do reticulado (ou agente) é uma entidade autônoma que possui regras de comportamento próprias, não havendo nenhuma entidade que realize o controle centralizado de suas ações.
Exemplo 9.9: Lobos e ovelhas No exemplo anterior, todos os agentes são homogêneos; ou seja, todos os agentes possuem as mesmas regras de comportamento. No entanto, um dos benefícios da Simulação de Agentes é a possibilidade de modelagem de sistemas com entidades heterogêneas que interagem entre si. Uma variante natural do exemplo anterior é um sistema ecológico redador-presa que simula a dinâmica de interação entre duas espécies animais diferentes, na qual uma das espécies – o predador – alimenta-se da outra – a presa. O ambiente, tal como no exemplo do “Game of Life”, é definido aqui como um reticulado bidimensional que representa um terreno no qual cada posição, ou célula, pode conter o não gramíneas e duas espécies animais, ovelhas e lobos, que se movem no ambiente à procura de alimento, como representado na Figura 9.20.
Figura 9.20 – No ambiente do modelo predador-presa há gramíneas, ovelhas e lobos.
Definido o ambiente e os agentes nele existentes, a tarefa seguinte é definir seus comportamentos. Os agentes representando as ovelhas e os lobos têm como objetivo principal encontrar alimento, portanto eles se movem aleatoriamente no ambiente. Enquanto o lobo (o predador) alimenta-se de ovelhas (a presa), as ovelhas, por sua vez, alimentam-se de gramíneas. Cada agente possui um indicador de saúde, representado pelo seu nível deenergia, o qual
diminui de uma unidade a cada movimento do agente. No entanto, quando o agente encontra alimento (i.e., quando ambos estão na mesma posição do reticulado), o agente consome o alimento, eliminando esse último do ambiente e aumentando seu nível de energia. Por exemplo, ao alimentar-se de gramíneas, um ovelha aumenta seu nível de energia em quatro unidades, enquanto um lobo aumenta seu nível de energia em 20 unidades ao consumir um ovelha. Esses agentes também têm a possibilidade de reproduzirem-se; ou seja, eles podem se subdividir gerando um novo agente no ambiente. Para tanto, o nível de energia do agente reprodutor é repartido exatamente ao meio com o novo agente. Um lobo com nível de energia de 100 unidades, ao se reproduzir, ficará com 50 unidades e gerará um segundo lobo com nível de energia de 50 unidades. Quando o nível de energia do agente atinge zero unidade, ou seja, quando ele gastou toda sua energia movendo-se no ambiente e não conseguiu encontrar alimento para repor os gastos, ele morre e é eliminado do ambiente. As gramíneas, diferentemente dos agentes que se reproduzem, após serem consumidas pelas ovelhas têm um tempo de regeneração; ou seja, elas requerem um tempo mínimo para ressurgirem no reticulado. A evolução da simulação deste modelo ocorre por meio de unidades discretas de tempo, ou ciclos , em que cada agente executa suas regras de comportamento uma vez por ciclo. Assim, a partir da configuração inicial do modelo estabelecida por meio dos parâmetros de entrada listados na Tabela 9.7, o modelo evolui, gerando uma dinâmica populacional
medida por meio do número de cada tipo de agente existente no ambiente. Tabela 9.7 – Parâmetros de entrada do modelo predador-presa Parâmetrodeentrada
Descrição
Número de ovelhas
Número inicial de ovelhas no ambiente
Número de lobos
Número inicial de lobos no ambiente
Tempo de regeneração Número de unidades de tempo para que uma área volte a ter gramíneas das gramíneas após ter sido consumida por uma ovelha Valor energético da gramínea Valor energético da ovelha
Número de unidades que uma ovelha ganha ao consumir gramíneas Número de unidades que um lobo ganha ao consumir uma ovelha
Taxa de reprodução da Probabilidade de reprodução da ovelha ovelha Taxa de reprodução do Probabilidade de reprodução do lobo lobo
A morte, o consumo e a reprodução dos agentes, bem como a capacidade de regeneração das gramíneas, criam tal dinâmica populacional, a qual varia dependendo dos valores dos parâmetros iniciais do sistema, como uma simulação discreta comum.
Assumindo um ambiente em que: • O número de ovelhas é o dobro do número de lobos, respectivamente, 100 e 50; • As gramíneas quando consumidas proveem quatro unidades de energia às ovelhas, enquanto as ovelhas proveem 20 unidades de energia aos lobos; • A taxa de reprodução das ovelhas e lobos são respectivamente 4% e 5%; A partir da simulação do modelo com o tempo de regeneração das gramíneas de 30 ciclos (abundância de chuvas) e 100 ciclos (escassez de chuvas), obtém-se a dinâmica populacional apresentada na Figura 9.21, respectivamente, (a) e (b). Neste exemplo, considerou-se que cada ciclo corresponde a um dia. Assim, a simulação apresentada corresponde a 1.000 dias reais, ou aproximadamente três anos.
Figura 9.21 – Evolução do número de agentes ovelhas e lobos dependendo da taxa de regeneração das gramíneas.
Nota-se, pela Figura 9.21, que, quando há abundância de chuvas, as populações de
ovelhas e lobos mantêm-se em equilíbrio e aparentemente entram em um estado oscilatório (Figura 9.21, chuvas regulares). Porém, aumentando o tempo de regeneração das gramíneas, os lobos rapidamente diminuem (aproximadamente 200 dias) até serem extintos (Figura 9.21, chuvas escassas). Inicialmente, poder-se-ia imaginar que o aumento do tempo de regeneração das gramíneas teria um maior impacto nas ovelhas, levando-as à extinção antes dos lobos. Mas a dinâmica observada é bem diferente, pois uma redução no número de ovelhas gera um maior impacto no curto prazo na sobrevivência dos lobos, levando-os a uma rápida extinção. É interessante notar que, apesar de restarem somente ovelhas no ambiente, elas não se proliferam indiscriminadamente, mas oscilam em tamanho populacional devido à reduzida disponibilidade de alimentos com a escassez de chuvas. O leitor pode ter se surpreendido com a possível vitória da ovelhas, mas resultados contraintuitivos como esses são comuns em Simulação de Agentes, particularmente quando 11 há razoável complexidade nas interações entre os diferentes tipos de agentes.
Exemplo 9.10: Simulação de operações de regaste Um exemplo de modelo de simulação de escopo prático é oRoboCup Rescue Simulation, cujo desenvolvimento foi motivado pela destruição causada pelo terremoto Great HanshinAwaji na cidade de Kobe no Japão em janeiro de 1995. Deste evento catastrófico surgiu a ideia de desenvolver uma plataforma de Simulação de Agentes com o objetivo de reproduzir as condições de desastre geradas após a ocorrência de um terremoto em uma área urbana. Esse tipo de modelo tem como potenciais aplicações:
(1) auxiliar no treinamento de equipes de resgate, (2) avaliar políticas de gerenciamento de desastres e (3) servir na avaliação de estratégias de coordenação de equipes de resgate de robôs (pensando futuristicamente). Nessa plataforma, agentes de resgate são programados com regras de comportamento que possibilitam a coordenação de suas ações para a mitigação dos efeitos negativos gerados em decorrência do terremoto, tais como: incêndios, bloqueios e soterramento de indivíduos. Imaginando uma cidade devastada por um terremoto, o ambiente desse modelo é representado por meio de um mapa composto por diferentes tipos de entidades, conforme ilustrado na Figura 9.22: • Edificações, representando construções reais, tais como edifícios e casas, podem desabar ou se incendiar, sendo que o incêndio pode se propagar para as outras edificações próximas; • Refúgios , representando tipos especiais de edificações que não incendeiam ou desabam, sendo, portanto, responsáveis por abrigar em segurança cidadãos da cidade bem como por prover serviços a agentes de resgate; • Estradas , representando as vias que permitem a movimentação dos agentes no ambiente; • Bloqueios , obstáculos localizados sobre as Estradas , impedindo a movimentação dos agentes no ambiente.
Figura 9.22 – Mapa de uma cidade atingida por um terremoto e identificação das entidades que o compõem.
Além das entidades do ambiente, o modelo também possui dois tipos principais de agentes: os civis , que representam cidadãos comuns, vítimas do desastre que necessitam serem salvos (serem transportados aos refúgios), e os agentes de resgate, que são agentes especializados em tarefas de resgate, os quais são subdivididos em três tipos: • Ambulâncias (pontos brancos), responsáveis por desenterrar e resgatar agentes (civis o outros agentes de resgate) soterrados ou feridos. Seu objetivo principal é desenterrá-los e transportá-los em segurança até um refúgio onde estarão em segurança; • Bombeiros (pontos vermelhos), responsáveis por extinguir incêndios em edificações,
sendo equipados com um repositório finito de água, que pode ser recarregado nos refúgios; • Policiais (pontos azuis), responsáveis por desbloquear as estradas. Além dessas ações, os agentes de resgate também são capazes de se comunicarem por meio da troca de mensagens, que pode ser realizada de formadireta (i.e., grito com limite de alcance) ou via canal de comunicação (i.e., frequência de rádio). Na transmissão direta, a mensagem é transmitida a todos os agentes que se encontram dentro de um raio de cobertura do agente transmissor, ao passo que na transmissão via canal de comunicação não existe restrição de distância. Essa simulação evolui por um número finito de ciclos e em cada ciclo: • Os agentes de resgate recebem as mensagens transmitidas por outros agentes e a informação a respeito do estado dos agentes e entidades que estão em seu raio de percepção ou visão. Os agentes não têm uma visão completa do estado do ambiente, portanto têm conhecimento limitado do ambiente; • Os agentes de resgate devem então decidir qual ação realizar. Todos os agentes de resgate podem se mover no ambiente se não estiverem soterrados ou bloqueados. Além dessa ação, cada agente possui ações específicas que podem realizar: ambulâncias podem dessoterrar ou transportar outros agentes para o refúgio, bombeiros podem extinguir incêndios jogando água nas edificações em chamas e policiais podem desbloquear estradas. Por exemplo, a cada ciclo, cada policial deve decidir (1) mover-se na direção
de uma estrada que está bloqueada ou (2) desbloquear uma estrada caso o bloqueio esteja próximo; • O simulador recebe as ações selecionadas pelos agentes e as realiza no ambiente. Ao final da simulação, o simulador apresenta uma pontuação que corresponde ao desempenho dos agentes de resgate em mitigar os efeitos do desastre. Essa pontuação pode ser utilizada para comparação de estratégias de coordenação de resgate entre esses três tipos distintos de agentes de resgate, podendo servir como uma plataforma de teste de políticas públicas em caso de desastres. Para o leitor interessado em um aprofundamento no assunto, sugere-se a leitura de Axelrod (1997) e Macal e North (2007). As principais plataformas de simulação genéricas para agentes disponíveis são: NetLogo, MASON e Repast. Uma lista mais completa de plataformas ABMS com suas características e funcionalidades específicas pode ser encontrada em Allan (2010).
9.6.2. Simulação Web e Simulação Baseada em Componentes A Simulação Web (ou do inglêsWeb Based Simulation – WBS) pode ser definida como uma simulação onde a construção e a execução do modelo é realizado via web,12 por intermédio de algum navegador da internet. Do ponto de vista da construção do modelo, uma Simulação Web poderia permitir que vários desenvolvedores criassem o modelo ao mesmo
tempo, gerando colaboração. A grande vantagem no uso de modelos web é permitir que usuários em diferentes localidades colaborem na construção de um mesmo modelo ou utilizem esse modelo remotamente para análises. A área educacional também é favorecida, principalmente como ferramenta de auxílio a cursosonline . Embora não se possa construir modelos do zero, o sitewww.yousimul8.com apresenta diversos modelos de simulação que rodam via web com tecnologia Ajax13 (como o Java, essa é uma linguagem para desenvolvimento de aplicações web) e que permitem a alteração de seus parâmetros de entrada por interface amigável. A Figura 9.23 ilustra um modelo que pode ser rodado nesse site.
Figura 9.23 – M odelo d o site YouSimul8.com, em que se pod e fazer uploa d e rodar simulações via web .
Uma tecnologia correlata à Simulação Web é a da Simulação Baseada em Componentes (Component Based Simulation). Segundo Pidd, Oses e Brooks (1999), a Simulação Baseada em Componentes srcina-se da ideia da orientação a objetos, na qual um modelo pode ser construído a partir de diversos componentes que seriam desenvolvidos para serem reutilizados. Esses componentes estariam disponíveis na web (nuvem) para que o usuário untasse esses objetos em modelos maiores. Por meio da utilização dos componentes prontos, haveria, em tese, redução do desenvolvimento de linhas de código e consequentemente no tempo de desenvolvimento. Fazendo uma analogia com os blocos de
encaixar, cada componente corresponderia a um desses blocos, e um modelo seria construído através da ligação dos diversos componentes, assim como construímos carros, navios, naves espaciais com os blocos de encaixar. A dificuldade natural deste tipo de abordagem é garantir que o “encaixe” entre os objetos do modelo de simulação sejam tão fáceis quanto encaixar dois blocos Lego.
9.6.3 . Simulação Distribuída A Simulação Web e a Simulação de Componentes podem ser consideradas especializações da Simulação Distribuída. A Simulação Distribuída refere-se à execução de um modelo de simulação em múltiplos processadores interconectados por meio de uma infraestrutura de comunicação (FUJIMOTO, 2000). Tais modelos podem ser executados em diferentes computadores distribuídos geograficamente e interconectados por meio de uma rede de computadores, ou ainda em um mesmo computador quando esse tem vários processadores ou é multicore (tem um único processador com múltiplos núcleos de processamento). As vantagens da Simulação Distribuída em relação à simulação monoprocessada são: • Redução do tempo de execução do modelo de simulação, ou a execução de modelos maiores e mais complexos, uma vez que mais recursos (memória e capacidade de processamento) estarão disponíveis para a execução do modelo; • Desenvolvimento e execução colaborativa dos modelos, porque, com a possibilidade de
os computadores estarem dispersos na rede, é possível que usuários que estejam em diferentes locais físicos participem tanto do desenvolvimento quanto da execução do modelo de simulação; • Reuso de modelos e componentes, integrando-os em um único ambiente de simulação; • Heterogeneidade e interoperabilidade entre modelos de simulação, executando-os em simuladores de diferentes fabricantes; • Tolerância à falha, já que diversos computadores podem estar disponíveis para a execução de um mesmo modelo de simulação, evitando a paralisação do processamento por falha de hardware. Apesar de suas vantagens e benefícios, a Simulação Distribuída requer a integração de diferentes modelos de simulação, que podem (1) ter tempos de execução distintos, (2) usar diferentes representações de dados e (3) possuir diferentes níveis de interdependência entre eles. Essas características impõem alguns desafios funcionais à implementação da Simulação Distribuída, dentre os quais: (1) a distribuição de dados entre os diversos modelos de simulação e (2) a sincronização dos relógios dos modelos para que a execução deles ocorra de forma harmônica. O desafio referente à Simulação Distribuída não se limita somente à possibilidade de interconexão física entre os computadores que executam os modelos interdependentes, mas também ao que se refere à representação e aos tipos dos dados trocados entre eles. Isto é, modelos interdependentes necessitam compreender uns aos outros e, para tanto, necessitam
saber o significado dos dados recebidos e como transmiti-los. A abordagem mais simples é fazer com que todos os participantes concordem em uma mesma representação e significado dos dados distribuídos. Uma analogia com a realidade humana seria fazer com que todas as pessoas do mundo falassem a mesma língua, como o Esperanto. No entanto, essa solução impõe outros desafios mais complicados de serem solucionados, muitas vezes impossibilitando seu uso na prática. Para tanto, a teoria da Simulação Distribuída dispõe de outros mecanismos de distribuição de dados, os quais em sua maioria são derivados da teoria de sistemas distribuídos. Os relógios de simulação controlam o tempo de execução dos modelos de simulação, sendo eles residentes no próprio modelo. Portanto, ao se integrar diversos modelos de simulação, há a necessidade de se garantir o sincronismo de seus tempos de execução para que a simulação ocorra de forma harmônica e consistente. Por exemplo, em uma Simulação Distribuída composta de dois modelos interdependentes, A e B, caso o modelo A envie uma informação para o modelo B sem que esse último esteja preparado, a informação será perdida e a simulação pode ser bloqueada ou proceder de forma incoerente. Para tanto, na literatura de Simulação Distribuída existem diferentes mecanismos de sincronização. Assim, para usufruir dos benefícios e solucionar os desafios criados com o uso da Simulação Distribuída, nas últimas décadas foram propostas diversas arquiteturas de propósito geral, dentre as quais a HLA (High Level Architecture). Na atualidade, essa é a mais relevante especificação de arquitetura para Simulação Distribuída e se tornou o padrão de fato na implementação desses sistemas.
A HLA é uma especificação de arquitetura de escopo geral proposta pelo DoD (US Department of Defense, ou Departamento de Defesa dos Estados Unidos) em 1996 (IEEE1516, 2000). Ela possibilita a interoperabilidade de modelos de simulação; isto é, possibilita conectar entre si diversos componentes e modelos de simulação oriundos de diferentes softwares e/ou plataformas. Para ilustrar o uso da Simulação Distribuída na solução de problemas práticos, será apresentada uma Simulação Distribuída desenvolvida por um dos autores deste livro. Esse modelo de simulação, descrito em detalhes em Medinaet al. (2013), consiste na integração de vários modelos de simulação de Portos Marítimos a fim de possibilitar o dimensionamento das frotas de navios necessárias para a exportação do minério de ferro com srcem nos portos brasileiros para os diversos portos importadores distribuídos no mundo. A arquitetura do modelo de Simulação Distribuída desenvolvida é ilustrada na Figura 9.24.
Figura 9.24 – Arquitetura do modelo de Simulação Distribuída de terminais marítimos.
Essa arquitetura é composta por nove computadores, dos quais sete simulam diferentes portos marítimos, cada qual com o seu próprio modelo desenvolvido, um computador simula o modelo de navegação marítima entre os portos e um computador executa o controlador do sistema, denominado “Sargento”. Considere um navio que está navegando em lastro (vazio). Ele, de fato, é uma entidade dentro do modelo de navegação. Ao chegar a seu destino, essa entidade “navio” é transferida do modelo de navegação para o modelo de simulação do terminal marítimo de exportação correspondente, por meio da infraestrutura de rede. Assim, o modelo do porto
de destino recebe da rede a informação de que uma nova entidade (com atributos de carga, porte etc.) chegou e deve ser gerada no modelo. O navio agora é uma entidade em outro modelo e, ao término do processo de carregamento, ele é transferido de volta ao modelo de navegação, de modo a iniciar a viagem rumo a seu porto designado de destino. Quem garante o sincronismo das operações, envia e recebe mensagens dos modelos quanto a chegadas ou partidas dos navios é o sargento, que nada mais é do que um programa de computador que dispõe de todas as informações para tomar a melhor decisão quanto à alocação de navios às rotas ou de quanto o relógio da simulação pode avançar. Comercialmente, os fornecedores de pacotes de simulação já estão implementando alguma das funcionalidades da Simulação Distribuída. O Simul8, por exemplo, permite distribuir as replicações de um mesmo modelo em diversos computadores de uma mesma rede, reduzindo assim o tempo total de simulação.
9.7. Exercícios de revisão 1. A demanda por um certo lote de produto em um centro de distribuição para um período fixo segue uma distribuição Erlang de parâmetros 8 e 2 (a média é oito lotes). O custo de excesso de estoque é de R$ 60,00 por lote por período, e o custo da falta é de R$ 160,00 por lote por período. Determine o quanto se deve pedir por período para minimizar os custos totais, considerando um erro máximo de 10%. A quantidade pedida pode variar de um lote até, no máximo, 20 lotes. Solucione também os seguintes problemas: a) Para cada tamanho de lote pedido, determine a probabilidade de haver falta (demanda maior do que pedido). b) Considerando o cenário do ponto ótimo, qual a probabilidade de os custos totais excederem R$ 500,00? E qual a probabilidade de ficarem abaixo dos R$ 400,00? Qual a probabilidade de ficarem entre R$ 400,00 e R$ 600,00? c) Como a decisão do ponto ótimo é alterada se os custos de excesso aumentarem em 20%?
ica: Para gerar uma distribuição Erlang de Parâmetros P1 e P2, utilize a seguinte unção do Excel: P1/(2*INVGAMA(ALEATÓRIO(),P2,1)). 2. Cada avião da Companhia Aérea Proing tem capacidade máxima para transportar 100 passageiros. No entanto, devido à possibilidade de no-show (o passageiro compra a passagem mas não aparece), ela se permite a venda de até 105 assentos por avião. O
número de vendas de passagens para cada voo é uniformemente distribuído entre 96 e 105. O número deno-shows por voo é uma distribuição discreta como a representada na Tabela 9.8. Tabela 9.8 – Exercício 2 Número de no-shows
Probabilidade
0
0,25
2
0,50
4
0,25
Toda vez que o número de passageiros em um voo exceder o número de assentos, a Proing é obrigada a pagar uma multa para cada passageiro excedente e deve tentar realocá-lo em outro voo. a) Construa um modelo de Simulação de Monte Carlo para determinar o número médio de multas que a companhia aérea deve pagar por voo. b) Determine a probabilidade de a Proing pagar uma ou mais multas por voo. c) Considere que o lucro obtido com a venda de uma passagem é de R$ 100,00. Qual deve ser o valor mínimo da multa para que não compense à Proing executar a prática (nefasta, terrível, odiosa, mas econômica) do overbooking?
3. Exercício resolvido. A pizzaria Mozzarela de Ouro atende a uma clientela diferenciada, com alto poder aquisitivo. Assim, a demanda é influenciada diretamente pela qualidade da pizza, e sofre pouca ou nenhuma influência do preço cobrado pelo produto. Dessa maneira, quanto maior a qualidade da pizza, maior será a demanda de clientes. Obviamente, quanto maior a demanda de clientes atendidos, maior será também o lucro da pizzaria. Por outro lado, quanto maior a qualidade, menores os lucros (a muçarela não pode ser da mais barata, o pizzaiolo deve ser bem treinado etc.), o que leva à redução da qualidade na tentativa de aumento dos lucros. a) Represente o sistema por um diagrama de laços causais. b) O nível de demanda não é influenciado instantaneamente pela qualidade, pois os clientes satisfeitos ainda gastam um tempo para influenciar outros clientes a visitarem a pizzaria. No jargão da dinâmica de sistemas, isso representa um atraso . Construa o diagrama de estoque e fluxo da pizzaria e simule o sistema no software Vensim. Adote os parâmetros que achar conveniente.
Resolução: O diagrama de laços causais está mostrado na figura a seguir:
Perceba que, quanto maior a demanda, maiores os lucros; quanto maiores os lucros, menor é a diferença entre um lucro objetivo e o lucro real. Essa diferença leva a um aumento ou diminuição da qualidade; quanto maior a qualidade, maior a demanda. Perceba também que o arco entre a “qualidade” e a “demanda” está marcado com uma linha dupla, a qual representa um “atraso”. No caso em questão, a demanda só é afetada depois de algum tempo que a qualidade mudou. Para converter o diagrama de laços em um diagrama de estoque e fluxo, transformaremos a diferença em uma taxa (fluxo) e a qualidade em um estoque. Assim, este fica de acordo com a figura que se segue (construído no software Vensim):
Mas só o diagrama não gera o comportamento. É necessário definir as equações. Vamos então, defini-las. • Atraso = 5 O atraso será considerado de cinco semanas; ou seja, a cada mudança da qualidade a demanda só mudará após cinco semanas. • Demanda = DELAY FIXED(100*qualidade, atraso, 50 ) A demanda é proporcional à qualidade, e o coeficiente de proporcionalidade é 100. Ou seja: a demanda seria 100*qualidade (a qualidade é um número que pode variar de 0 a 1 – 0 indica mínima qualidade e 1 indica máxima qualidade). Mas,
como há um atraso, que é introduzido pela função DELAY FIXED, ela só será isso após o tempo “Atraso”. O valor inicial da demanda é de 50. • Lucro= 30*demanda O lucro é proporcional à demanda de pessoas. Neste caso, ele é 30 vezes a demanda. • Lucro objetivo= 2.000 Lucro que se deseja atingir • Qualidade= INTEG (taxa de variação da qualidade,0,5) Qualidade é um estoque, que recebe um fluxo igual à “taxa de variação”. O valor 0,5 corresponde ao valor da qualidade no início da simulação. • Taxa de variação da qualidade= coef ×(lucro objetivo – lucro) A taxa de variação da qualidade é proporcional à diferença entre lucro objetivo e lucro. “Coef” é um coeficiente que converte a diferença em taxa (variação por unidade de tempo) • Coef = 0,0001 Coeficiente de conversão da taxa. Para cada R$ 1,00 de diferença, a qualidade será alterada por semana no valor de 0,0001. Em outras palavras, é necessária
uma diferença de R$ 1.000,00 entre o lucro real e o objetivo para que haja uma alteração semanal de 0,1 no valor da qualidade. • FINAL TIME = 100 Tempo final da simulação (em semanas) • INITIAL TIME = 0 Tempo inicial da simulação (em semanas) • TIME STEP = 0,03125 Timesimularmos Step adotado100 parasemanas, a simulação. Ao obteremos o seguinte comportamento para a qualidade:
Ou seja, um comportamento oscilatório, pois há o componente “atraso”.
Referências bibliográficas ALLAN, R. J. Survey of Agent Based Modelling and Simulation Tools . Great Britain: Science and Technology Facilities Council, Daresbury Laboratory, 2010. AXELROD, R. The complexity of cooperation: Agent-based models of competition and colloboration. Princeton, NJ: Princeton University Press, 1997. BONABEAU, E. Agent-based modeling: Methods and techniques for simulating huma systems. Proceedings of the National Academy of Sciences of the United States o America, 99(3):7280-7287, 2002. FORRESTER, Jay W.Industrial dynamics . Portland, OR: Productivity Press, 1961. FUJIMOTO, R. M.Parallel and distributed simulation systems. Nova York, NY: Joh Wiley & Sons, Inc, 2000. GARDNER, M. Mathematical games – The fantastic combinations of John Conway’s new solitaire game ‘life’. Scientific American, 223: 120-123, 1970. IEEE1516. IEEE Standard for Modeling and Simulation (M&S) High Level Architecture (HLA) – Framework and Rules. IEEE Std. 1516-2000, 2000. MACAL, C. M.; NORTH, M. J.Managing business complexity: Discovering strategic solutions with agent-based modeling and simulation. Nova York, NY: Oxford University Press, 2007. MEDINA, A. C., NARDIN, L. G., PEREIRA, N. N., BOTTER, R. C.; SICHMAN, J. S. A
distributed simulation model of the maritime logistics in an iron ore supply chai management. In: OBAIDAT, M. S.; KOZIEL, S.; KACPRZYK, J.; LEIFSSON, L.; ÖREN, T. (Eds.) SIMULTECH 2013 –Proceedings of the 3rd International Conference on Simulation and Modeling Methodologies, Technologies and Applications. Reykjavík, Iceland: SciTePress, 2013 PIDD, M.; OSES, N.; BROOKS, R. J. Component-Based Simulation on the Web? In: Proceedings of the 1999 Winter Simulation Conference, p. 1438-1444, 1999. RICHARDSON, George P.; PUGH, Alexander L.Introduction to system dynamics modeling with dinamo. Portland, OR: Productivity Press, 1981. SENGE, P. M.Seller, A quinta Paulo: Best 1990.disciplina: a arte e prática da organização que aprende. São SIEBERS, P. O.; MACAL. C. M.; GARNETT, J.; BUXTON, D.; PIDD, M. Discrete-event simulation is dead, long live agent-based simulation.Journal of Simulation , 4(3):204210, 2010. STERMAN, John D. Business dynamics: system thinking and modelling for a comple world. Boston, MA: Irwin McGraw-Hill, 2000. VON NEUMANN, J.The General and Logical Theory of Automata . Hixon Symposium, Pasadena, CA, 1948 VON NEUMANN, J.Theory of Self-Reproducing Automata. Champain, IL: University o Illionois Press, 1966.
WINSTON, Wayne L. Operations research: applications and algorithms. Belmont: Duxbury Press, 1994.
Capítulo 10
Epílogo
10.1. Introdução Discutimos neste livro boa parte da teoria da simulação; contudo, certos aspectos da simulação nos são desvendados apenas pela experiência. Ademais, a aplicação correta da teoria não garante que um estudo de simulação seja bem-sucedido. Neste Epílogo, pretendemos discutir sobre o sucesso na condução de um estudo de Simulação de Eventos Discretos ou, de outro modo, buscar uma resposta para a pergunta: “O que é o sucesso (ou o fracasso) em um estudo de simulação?”. Robinson (2004) sugere que o sucesso em um estudo de simulação pode ser mensurado pelas seguintes categorias: • O estudo de simulação atingiu seus objetivos e/ou mostrou benefícios; • Os resultados do estudo foram aceitos; • Os resultados do estudo foram implementados; • A implementação provou que os resultados do estudo de simulação estavam corretos. Um estudo de simulação que atendesse a essas quatro categorias seria um sucesso completo. Este livro propõe uma maneira mais simples de direcionar seu projeto de simulação. Seu projeto será um sucesso quando: • O modelo desenvolvido for uma representação adequada do sistema; • O estudo de simulação atingir os objetivos desejados pelos tomadores de decisão.
Existe uma grande confusão em relação àquilo que pode a simulação e, num outro plano, a Pesquisa Operacional. O objetivo da Pesquisa Operacional não é o de tomar decisões. Quem toma decisões são os gerentes, diretores, técnicos, operadores, analistas etc. – denominados aqui de “Tomadores de Decisão”. O objetivo real e possível da Pesquisa Operacional – e de um dos seus tópicos, que é a simulação – é fornecer uma base racional e científica para que a administração possa tomar as suas decisões. O estudo de simulação deve, portanto, responder às dúvidas que o tomador de decisão necessita esclarecer para que possa tomar sua decisão. Se, ao início do estudo de simulação, seu escopo não está alinhado com os objetivos dos tomadores de decisão, o projeto será um fracasso, por mais tempo e dinheiro que sejam aplicados em seu desenvolvimento. A clareza dos objetivos e do escopo do projeto, advindos das entrevistas e discussões com o cliente, também servirão para eliminar objetivos descolados da realidade e para definir as reais prioridades do projeto. Um erro típico é assumir objetivos que nem se tem em mente, como prever a viabilidade. Por exemplo, não há como assumir: “O objetivo deste projeto é o de reduzir em 30% os custos de estoques em trânsito...”. Retirado de um projeto real e fracassado de simulação, esse não é um objetivo que possa ser estabelecido no início do projeto. Ele é, no máximo, um desejo ou uma ambição do cliente. O percentual de redução do custo, se ocorrer, será um resultado obtido ao final do projeto. Não há como sabermos de antemão em quanto este custo será reduzido, e sabemos menos ainda qual o impacto (para mais ou para menos) que essa redução de custo terá no custo total. De fato, “se os benefícios da simulação forem conhecidos de antemão, isso normalmente implicará
que os seus resultados também o são, não sendo necessária, portanto, a simulação” (GRAY, 1976). Mas se você é uma pessoa capaz de assumir que o seu estudo de simulação reduzirá os custos do cliente em 30%, ou você não tem a menor ideia do que está falando ou deveria mandar para nós, estes pobres autores, os números a serem sorteados esta semana na loteria... O correto (no projeto apresentado) seria o analista reconhecer a preocupação do cliente quanto à redução dos custos do estoque em trânsito e investigar mais a fundoas medidas de desempenho que o cliente utiliza para avaliar esse estoque. Regra de ouro on 1: descubra quais as medidas de desempenho utilizadas pelo cliente e qual a ordem de prioridade delas; por exemplo: • Um aumento na produção total do mês é preferível em relação à redução do estoque em trânsito? • O prazo de entrega dos produtos é um fator crítico? • Uma redução do tempo de ciclo é preferível em relação a uma redução no número de máquinas da linha de produção? Uma pesquisa desenvolvida por Robinson e Pidd (1998) reforça que a relação “clienteanalista” é tão ou mais importante que os aspectos tecnológicos envolvidos no projeto de simulação. Os autores investigaram quais os fatores que os analistas de simulação e os clientes acreditam ser os preponderantes no sucesso ou fracasso de um estudo de simulação. A partir de 338 fatores identificados, foram construídas as seguintes dimensões:
• Modelo (velocidade, estética e facilidade de uso); • Confiança no modelo (credibilidade); • Disponibilidade e precisão nos dados de entrada; • Software; • Credibilidade do analista; • Competência do analista; • Profissionalismo do analista; • Comunicação e inteiração do pessoal envolvido no projeto; • Responsividade do analista (capacidade de responder ao cliente de forma adequada); • Comprometimento do cliente com o projeto de simulação. Das 10 dimensões apresentadas, apenas as quatro primeiras são técnicas. A relação cliente-analista aparenta ser o fator determinante no sucesso do estudo de simulação. Regra de ouro no 2: ao elaborar um primeiro projeto de simulação, procure um problema simples, em que a chance de sucesso é maior, e apresente os primeiros resultados utilizando uma animação do modelo de simulação. A animação aumenta a credibilidade do seu projeto e você ganha aliados dentro da empresa, garantindo sua continuidade. Você ouvirá a famosa frase: “– É assim que a minha funciona!”
Obviamente, a expressão entre os sinais “<...>” pode ser substituída por diversas outras: linha de produção, call center , supermercado, escritório, transportadora etc.; porém, mais importante do que a alegria do cliente é aconfiança conquistada. A experiência mostra que, neste momento, o cliente se torna um aliado do projeto, fornecendo informações e dados com mais rapidez e firmeza (um pequeno exercício mental: quantos, dos fatores propostos por Robinson e Pidd, foram atendidos quando o cliente reconheceu o seu sistema na animação apresentada?).
10.2. O sucesso e, às vezes, o fracasso Um dos casos que consideramos um grande fracasso – na realidade, do ponto de vista do cliente, não foi um fracasso – revelou-se como tal na hora de “mostrar, de forma animada e dinâmica, o comportamento de uma nova fábrica”. Neste projeto, gastou-se quase um mês de trabalho no desenvolvimento de um modelo de animação (e não de simulação) de uma nova fábrica. Um modelo de animação, pois todos os dados de entrada eram fictícios e o modelo só servia para mostrar como funcionava a fábrica, não fornecendo qualquer resultado de análise tangível. Para a concretização desta façanha, utilizamos um software com capacidade gráfica poderosa, possibilitando apresentar a simulação em três dimensões (à época, o software dispunha de um módulo de modelagem de sólidos e capacidade de programar um script, ou roteiro, de uma câmera, tal como um filme). O resultado foi literalmente um show! Apesar disso, o projeto foi um fracasso, pois este modelo, segundo nosso ponto de vista, não atendeu à primeira finalidade de um modelo de simulação: auxiliar na tomada de decisão. Outro caso de insucesso iniciou de forma não tão normal: fomos convidados a continuar o modelo de outra pessoa que “largou o projeto no meio”. O modelo deveria ser corrigido e entregue ao cliente em quatro semanas. Analisado o modelo, descobriu-se que este era um “monstro sem pé nem cabeça”. Em suma: quatro meses de desenvolvimento inúteis. Os resultados, segundo o próprio cliente, “não estavam confiáveis”. Tínhamos dois caminhos: aproveitar o modelo e tentar corrigi-lo ou construir outro a partir do zero. Acabamos
optando pela segunda alternativa, adotando uma modelagem um pouco mais compacta, pois o prazo era de apenas quatro semanas. Refizemos a especificação do modelo junto ao cliente, e um modelo novo foi desenvolvido. O prazo foi atendido e o modelo apresentava resultados coerentes. Mas onde está o insucesso? Agora vem a novela... Na metade da terceira semana, uma pessoa da empresa entrou no time de projeto e viu o modelo. Externou que gostaria de ver mais algumas medidas de desempenho extraídas dele, como determinava o escopo do projeto srcinal. Ao final, como não dispúnhamos de tempo hábil para o desenvolvimento de novas medidas de desempenho, o modelo foi entregue sem atender totalmente aos objetivos do cliente. O envolvimento das pessoas da equipe de projeto é fator crítico de sucesso. Por exemplo, uma indústria de bens de consumo duráveis solicitou um modelo para simular sua linha de produção. Parte importante do modelo era o setor de testes de produtos acabados. Durante a elaboração do modelo conceitual, o engenheiro de processos convenceu a todos de que a lógica do CLP1 era “bem simples, sem muitos detalhes”. Elaborado o modelo computacional, iniciamos o processo de validação face a face com os diversos envolvidos e, logo ao início da primeira reunião, nosso amigo engenheiro de processos não titubeou: “ lógica está muito boa, só falta acrescentar mais um detalhezinho...”. O detalhe foi implementando e o processo de validação continuou até o mesmo engenheiro lembrar de outro “detalhezinho”. Quando finalmente percebemos que a lógica do CLP não era aquela discutida na elaboração do modelo conceitual, sugerimos ao engenheiro
que nos apresentasse a documentação da lógica em pseudocódigo.2 Infelizmente, ouvimos: “Não posso fazer isso, pois não vou abrir o funcionamento do meu sistema para vocês!”. Moral da história: a realização de um projeto de simulação exige envolvimento e abertura das informações pertinentes. Para aquele engenheiro, a propriedade intelectual da lógica era inviolável, mas, sem a lógica correta, o projeto sempre será um fracasso. Do ponto de vista do sucesso, vários projetos trouxeram um retorno significativo às pallets retornáveis empresas. Em um projeto de uma nova linha de montagem automotiva de para um novo produto, um dos objetivos era dimensionar adequadamente o número de allets . Contrariamente ao que seria de se esperar, ao aumentarmos o número depallets numa linha desse tipo, a produtividade aumenta até um limite: se aumentarmos ainda mais o número de pallets, a produtividade pode ser prejudicada (para uma referência completa sobre a simulação de linha de montagens compallets retornáveis, ver CHWIF, 2004). Um cálculo “manual”, disponibilizado pela Engenharia da empresa, indicava a necessidade de 600 pallets no sistema como um todo (linha existente somada à linha nova). Na simulação, chegou-se à conclusão de que 400 pallets atenderiam completamente às necessidades. Este projeto representou uma economia de 200 pallets, e, em termos financeiros, quase R$ 2.000.000 de economia. Como no projeto anterior, muitos outros projetos que realizamos obtiveram reduções de custos por um simples motivo: o ser humano, se não consegue avaliar efetivamente o desempenho de um sistema, tende a superestimar as necessidades de equipamentos para
minimizar riscos. Em um desses projetos, desejava-se trocar o sistema de alimentação de bobinas metálicas de prensas com empilhadeiras por carros automáticos. Como se dispunha de três prensas, a empresa planejava adquirir três carros. Para a empresa, com três carros, não haveria perda de produtividade, afinal, cada carro ficaria dedicado a uma prensa. O projeto de simulação demonstrou que, com três ou dois carros, não haveria perda de produtividade, e que, com um carro somente, haveria perda de produtividade de apenas 2%. Como o custo unitário de um carro era alto (em torno de 65 mil dólares), decidiu-se apenas adquirir um carro e suprir essa perda de produtividade com outras otimizações do processo. Evitou-se a compra de dois carros, ou seja, uma economia de 130 mil dólares! Em muitos projetos, é possível mostrar ao cliente que não é necessário investir em equipamentos para que os resultados apareçam – às vezes, apenas modificando a lógica de produção pode-se obter diversos benefícios. Este é o caso de um projeto realizado para uma empresa de produtos químicos que possuía duas fábricas geminadas: uma fábrica de frascos plásticos e uma fábrica da mistura e envase. A programação da produção era gerada para ambas, o que resultava num nível alto de estoque intermediário de frascos vazios. O escopo do projeto consistiu em estudar a possibilidade de se realizar a “programação da produção” da fábrica de frascos pelo método Kanban, ou utilizar o sistema de “produção puxada”, em substituição à “produção empurrada”, em uso à época. Foram implementados, então, dois modelos: um da situação atual, contemplando a lógica corrente de programação da produção, e outro contemplando a lógica Kanban. Os resultados mostraram que a lógica Kanban conseguiu atender à produção e reduziu os estoques intermediários em,
2 aproximadamente, 20 vezes, liberando uma área de mais de 1.200 m . Às vezes, um modelo de simulação pode ser utilizado como uma ferramenta de tomada de decisão operacional. Por exemplo, um problema típico de centros de distribuição de produtos é a separação (ou picking ) de produtos para envio ao cliente. A DHL, empresa do setor de logística, desenvolveu um modelo de simulação da sua operação de separação em sua unidade de Louveira-SP (SANTINIet al., 2010). O modelo computacional construído permite simular toda a operação de determinado dia, antes do seu início, a partir do recebimento das necessidades de separação do dia anterior. O modelo permite ainda identificar gargalos, necessidades de mão de obra, a configuração dos meios de movimentação de materiais (paleteiras simples ou automáticas), entre outros aspectos relevantes. Além disso, quando se identifica um problema, a negociação com o cliente (empresa para a qual a DHL opera) é facilitada pelos dados de saída fornecidos pelo modelo de simulação.
Figura 10.1 – Tela do modelo d esenvolvido p ela DHL (SANTINI et al., 20 10).
Uma situação interessante de sucesso se dá quando nos deparamos com o fracasso “dos outros”. Ironicamente, muitas vezes somos chamados a dar uma segunda opinião sobre resultados obtidos por projetos de terceiros, como um médico que é consultado para confirmar ou não um diagnóstico anterior. São situações delicadas, pois, muitas vezes, são identificados erros no projeto que podem ser equivocadamente imputados ao responsável pela construção do modelo. Não vamos aqui detalhar cada um dos (muitos, infelizmente) casos em que nos envolvemos, mas nossa experiência tem mostrado que esses erros são
invariavelmente culpa da má comunicação de projeto. Para que o leitor nunca se depare com esse tipo de erro, damos três regras mágicas e ultrassecretas: 1. Documentar; 2. Documentar; 3. Documentar. A documentação não é apenas um arquivo com todas as informações pertinentes do projeto, ela é cada e-mail trocado, as atas de todas as reuniões, as informações telefônicas trocadas, todas as premissas adotadas, cópias de bancos de dados etc. Adicionalmente, cada material documentado deve ser encaminhado para receber a validação do cliente. Esse procedimento, além de aumentar a qualidade do trabalho e evitar que o trabalho seja refeito, aumenta sobremaneira a confiança do cliente no projeto em execução. Embora nos setores de manufatura e logística os ganhos esperados por projetos de simulação sejam sempre maiores, é possível ter sucesso e gerar ganhos consideráveis também no setor de serviços. Em um projeto desenvolvido para um serviço de atendimento bancário, o objetivo principal era dimensionar a carga de trabalho (work load) dos atendentes, gerentes e estagiários, a fim de atingir um certo nível de serviço estipulado. A partir do modelo desenvolvido, chegou-se à conclusão de que a quantidade de pessoas existentes no sistema conseguiria atender à maioria dos clientes dentro do nível de serviço estipulado. Contudo, a carga de trabalho estava praticamente saturada, não sobrando tempo para a venda de novos produtos. As análises dos resultados sugeriram que um aumento no
número de atendentes possibilitaria um aumento de receita, através da oferta de venda de novos produtos e da maior satisfação dos clientes, que aguardariam um tempo menor em fila de espera. Para o ramo de serviços, uma regra simples diz que: quanto menor a espera pelo serviço, maior o número de clientes interessados nele. Neste momento, talvez até tenhamos despertado o interesse do leitor em descobrir que banco maravilhoso é esse. Desculpe-nos, leitor-cliente-amigo, quem toma a decisão é o cliente, não o modelo...
Referências bibliográficas CHWIF, Leonardo. Simulação aplicada em projetos de linhas de montagem com paletes retornáveis. Congresso Internacional de Automação, 2004. Proceeding of the 1976 Winter Simulation GRAY, Paul. The economics of simulation. Conference. p. 17-25, 1976. ROBINSON, Stewart. Simulation: the practice of model development and use. Chichester: John Wiley & Sons, 2004. ROBINSON, Stewart; PIDD, Michael. Provider and customer expectations of successful simulation projects. Journal of the Operational Research Society, v. 49, n. 3, p. 200209, 1998. SANTINI, Bruno; MOURA FILHO, João P.; CHWIF, Leonardo. Crystal Ball: uma ferramenta para análise de operação de picking baseada na tecnologia de simulação de eventos discretos. Revista Mundo Logística, n. 14, p. 51-55, 2010.
Apêndice I
Revisão de probabilidade e estatística
O objetivo deste Apêndice é rever alguns conceitos básicos de probabilidade e estatística, considerados importantes para a compreensão dos assuntos discutidos no livro. Para uma discussão mais aprofundada sobre esses conceitos, recomendamos a consulta às referências bibliograficas sugerida ao final deste Apêndice (BOTTER et al. , 1996; DEVORE, 2000).
I.1. Espaço amostral Espaço amostral de um experimento é o conjunto de todos os resultados possíveis do experimento em questão.Se jogarmos uma moeda para o ar, teremos um experimento cujos dois únicos resultados possíveis são “cara” (K) ou “coroa” ( C). Neste caso, o espaço amostral, S, seria: S={K, C} Se lançarmos dois dados de seis faces simultaneamente, teremos 21 resultados possíveis, formando o espaço amostral S descritodonaespaço Figuraamostral I.1. Um evento é qualquer subconjunto S. Retomando o exemplo do lançamento da moeda, existem dois eventos possíveis: cara, E1={K} e coroa, E2={C}. Considere que vamos jogar a moeda três vezes. Neste caso, o espaço amostral teria oito possibilidades:
S={KKK, CKK, KCK, KKC, CCK, CKC, KCC, CCC}
Figura 1.1 – Espaço amostral do lançamento de dois dados simultâneo.
Alguns eventos possíveis para esse experimento seriam: • A={CKK, KCK, KKC}: o evento em que apenas uma coroa tenha ocorrido; • B={CCK, KCC, CKC}: o evento em que duas coroas tenham ocorrido. Os eventos A1, A2,..., Ak são denominados mutuamente exclusivos se, para todo i≠j (i=1, 2, ..., k e j=1, 2, ..., k), Ai e Aj, não houver qualquer elemento em comum. Dado que um evento é um conjunto, as operações de união, intersecção e complemento da Teoria dos Conjuntos podem ser aplicadas para a construção de “novos” eventos a partir daqueles já existentes. No caso do lançamento da moeda, sendo os eventos A e B como definidos anteriormente, podemos construir os seguintes eventos: União: • = { CKK, KCK, KKC, CCK, KCC, CKC} • Intersecção: • Complemento:
• •
{KKK, CCK, CKC, KCC, CCC} {KKK, CKK, KCK, KKC, CCC}
I.2. P ropriedades básicas d a probabilidad e Probabilidade de um eventoA, P(A) é a frequência relativa do eventoA dentro do espaço amostral S. De outro modo, a probabilidade associa um número à chance de que determinado evento ocorra dentro do espaço amostral. Propriedades básicas da probabilidade:
1. Para qualquer evento A, 2.
e
3. Se
4. 5.
.
. são eventos mutuamente exclusivos, então, . . .
Laplace1 (1749-1827) foi o primeiro a definir a probabilidade, pela seguinte regra
prática:
Essa regra só é aplicável quando os N resultados possíveis do experimento são igualmente prováveis. Quando lançamos uma moeda apenas uma vez, achance ou probabilidade de que a moeda caia com a face “cara” (K) voltada para cima é dada por:
Qual a probabilidade de que, ao retirarmos uma carta de um baralho de 52 cartas, ela seja vermelha? E qual a probabilidade de que ela seja vermelha ou um valete? As cartas vermelhas do baralho são as de “ouros” e ”copas”. Portanto, existem 26 (= 13 + 13) resultados favoráveis em que uma carta vermelha é retirada e 52 resultados possíveis do experimento, pois qualquer uma das 52 cartas pode ser retirada do baralho. Assim: Evento A = a carta é vermelha:
Para determinarmos a probabilidade de que a carta seja vermelha ou um valete, sabemos que existem quatro valetes no baralho e, portanto: Evento B = a carta é um valete:
No baralho, existem duas cartas que são vermelhas e valetes:
Pela propriedade 5, temos:
I.3. Probabilidade condicional e independência Considere dois eventos A e B. A probabilidade de que o evento A ocorra, dado que o evento B ocorreu, é conhecida como probabilidade de A condicionada a B, . Como o evento Bjá ocorreu, a probabilidade condicionada pode ser obtida aplicando a regra da probabilidade:
Dividindo o numerador e o denominador da expressão anterior pelo número total de resultados possíveis do experimentoN, temos:
Considere que uma carta vermelha foi retirada de um baralho de 52 cartas. Qual a probabilidade de que ela seja de ouros? Evento A = a carta retirada é de ouros Evento B = a carta retirada é vermelha
Note, pelo exemplo anterior, que, apesar de a probabilidade de retirarmos uma carta de ouros do baralho ser de 1/4, ao recebermos a informação de que a carta é vermelha, essa probabilidade aumenta para 1/2. Atravésteoremas: do conceito de probabilidade condicionada de eventos, podemos construir os seguintes • Teorema do Produto: • Teorema da Probabilidade Total: Se A1, A2,..., Ak são eventos mutuamente exclusivos e exaustivos, então, para qualquer eventoB de S, temos:
• Teorema de Bayes: Se A1, A2,..., Ak são eventos mutuamente exclusivos e exaustivos, então, para qualquer evento B de S, temos:
• Dois eventos A e B são estatisticamente independentes quando: Ou seja, a probabilidade de ocorrência do evento A não é afetada pelo fato de o evento B ter ocorrido ou não. Note, pelo Teorema do Produto, que:
Uma carta foi retirada de um baralho de 52 cartas. Os eventos “a carta é vermelha” e “a carta é de copas” são eventos independentes? Evento A = a carta é vermelha Evento B = a carta é de copas
Assim, temos:
Portanto, os eventos “a carta é vermelha” e “a carta é de copas” não são eventos independentes. Ou, de outro modo, o fato de a carta retirada ser vermelha afeta diretamente a probabilidade de que ela seja de copas. Uma carta foi retirada de um baralho de 52 cartas. Os eventos “a carta é um valete” e “a carta é de copas” são eventos independentes? Evento A = a carta é um valete Evento B = a carta é de copas A probabilidade de ocorrência do evento A é: A probabilidade de ocorrência do evento B é: A probabilidade da ocorrência simultânea dos eventosA e B (a carta ser um valete de
copas) é:
Assim, temos:
Portanto, os eventos “a carta é um valete” e “a carta é de copas” são eventos independentes. Ou, de outro modo, o fato de a carta retirada ser um valete não aumenta o diminui a probabilidade de que ela seja de copas.
I.4. Variáveis aleatórias Uma variável aleatória é uma regra que associa um número real aos eventos de um dado espaço amostral S. Por exemplo, considere uma agência bancária na qual os clientes aguardam o início do atendimento em fila única. O número de pessoas aguardando em uma fila bancária varia ao longo do dia de modo aleatório . Sendo X o número de pessoas em uma fila, entãoX é uma variável aleatória. As variáveis aleatórias podem ser discretas ou contínuas . Sendo X uma variável aleatória, se todos os valores possíveis de X são finitos (ou contáveis), então X é denominada uma variável aleatória discreta. Por exemplo, no caso da fila do banco, o número de pessoas em fila é igual a 0, 1, 2, 3,... Portanto,X é uma variável aleatória discreta, pois pode assumir valores dentro do conjunto contável: 0, 1, 2, 3,... Se a variável aleatória X pode assumir qualquer valor dentro de um intervalo, então ela é dita contínua. Voltando ao exemplo da agência bancária, o tempo que um cliente permanece em fila é aleatório e pode assumir qualquer valor dentro de um intervalo tolerável de espera. Sendo X o tempo que um cliente aguarda em fila antes do atendimento, então Xé uma variável aleatória contínua. Considere um certo espaço amostralS. Ao associarmos probabilidades aos resultados de S, estamos, na verdade, atribuindo probabilidades a valores particulares de uma variável aleatória X. A distribuição de probabilidades de X representa o modo como as probabilidades de ocorrência de valores específicos de X se distribuem no intervalo [0,1].
No caso de variáveis aleatórias discretas, a distribuição de probabilidades é representada através da função probabilidade. No caso contínuo, a distribuição de probabilidades é representada através da função densidade de probabilidade.
I.5. Variáveis aleatórias discretas .5. 1. Função pro bab ilidad e e função d e repartição A função probabilidade representa a probabilidade de que
ou
.
A função de repartição, ou acumulada F(x), para qualquer variável aleatória X é definida por: . Para uma variável aleatória discreta, temos:
O problema do jornaleiro (distribuição discreta) Um vendedor de jornais deseja determinar quantos jornais estocar em sua banca para as vendas de um dia. Pela sua experiência, ele sabe que a demanda, representada pelo número de clientes interessados na compra do jornal ao longo do dia, tem umadistribuição de robabilidades como a indicada na Tabela I.1. Tabel a I.1 – Distribuição de probabilidades da demanda por jornais
Número de Clientes xk 10
Probabilidade 0,10
20
0,15
30
0,25
40
0,35
50
0,10
60
0,05
Se o jornaleiro deseja saber qual a probabilidade de que apareçam, no máximo, 30 clientes, deve calcular:
A função de repartição para a demanda está representada graficamente na Figura.2I .
Figura 1.2 – Função repartição da demanda por jornais.
.5. 2. Média e va riância A média, ou valor esperado E(X), de uma variável aleatória é uma importante medida de posição. Para uma variável aleatória discreta, temos: A variância V (X) de uma variável aleatória é uma medida de dispersão, que nos dá uma ideia de como os valores assumidos pela variável aleatória estão distribuídos em torno da
média. A variância nada mais é do que a média dos quadrados dos desvios, ou seja, a média da variável aleatória . Assim, temos:
Para o caso do jornaleiro, a média de clientes por dia é dada por:
Portanto, a média, ou valor esperado fica: clientes A variância é dada por:
Portanto, a variância2 vale:
clientes2
I.6. Variáveis aleatórias contínuas .6. 1. Função densidade d e pro bab ilidad e e função d e repartição A função densidade de probabilidade é que caracteriza as distribuições de probabilidades de variáveis aleatórias contínuas. Dada uma variável aleatória X, a sua função densidade de probabilidade f(x) é uma função contínua, tal que: A função de repartição, ou acumulada, F(x), de uma variável aleatória contínua é dada por: Note que, ao derivarmos a expressão anterior, temos:
O problema do jornaleiro (distribuição contínua) O jornaleiro do exemplo anterior descobriu que, na verdade, a distribuição da demanda diária por jornais na sua banca é contínua e tem a seguinte função densidade de probabilidade:
Se o jornaleiro deseja saber qual a probabilidade de vendas entre 30 e 40 jornais, temos:
A Figura I.3 ilustra a função de repartição do exemplo.
Figura I.3 – Função de repartição para a demanda por jornais.
.6. 2. Média e va riância Para uma variável aleatória contínua, amédia, ou valor esperado E(X), é dada por: A variância de uma variável aleatória contínua é dada por:
A variância também pode ser obtida pela relação equivalente: Para o caso do jornaleiro, a média de clientes é dada por:
Portanto: clientes A variância vale:
clientes
I.7. Estimação de parâmetros de funções: o método da máxima verossimilhança Na Simulação de Eventos Discretos, muitas vezes precisamos selecionar um modelo estatístico que represente um conjunto de dados coletados. Uma das tarefas envolvidas é estimar os parâmetros do modelo. O método damáxima verossimilhança,3 apresentado pelo geneticista e estatístico R. A. Fisher em 1922,4 é um dos métodos mais populares5 para a estimação de parâmetros de uma distribuição conhecida por um conjunto de observações coletadas. Toda distribuição possui de constantes, denominadas de parâmetros, que governam a forma da estatística função densidade probabilidade da distribuição. A distribuição normal (Apêndice VII), por exemplo, possui como parâmetros a média µ e a variância . Sabe-se que, quanto maior a relação
, mais dispersos estão os valores da distribuição, e
a forma de “sino”, típica da distribuição normal, assume uma aparência mais “larga”. O objetivo do método da máxima verossimilhança é estimar esses parâmetros a partir de um conjunto de dados observados.
O princípio da máxima verossimilhança Suponha que conhecemosvariáveis n i.i.d.
, um conjunto de valores
a partir da variável aleatória X, um conjunto de k parâmetros
observados desconhecidos
e uma função densidade de probabilidade conjunta . O princípio da máxima verossimilhança pode ser colocado como
(ELIASON, 1993): dado um conjunto de observações aleatória X, encontre os parâmetros de probabilidade conjunta
para a variável
que maximizam a função densidade .
Como os elementos pertencentes a X são independentes, a função densidade de probabilidade conjunta pode ser escrita como a multiplicação das distribuições marginais, definindo a função de máxima verossimilhança :
O valor que soluciona o problema de otimização anterior é denominado estimador de máxima verossimilhança, sendo usualmente representado por .
Distribuição discreta Uma moeda foi lançada cinco vezes. Nos primeiro, segundo e terceiro lançamentos, a face obtida foi a cara ( K), e, nos outros dois, a face obtida foi a coroa ( C). Definido p como
a probabilidade de que a face obtida em um lançamento ao acaso seja “cara”, ,e
se a face obtida for cara, e 0, caso contrário, então, os valores observados na
amostra de lançamentos foram: No exemplo, o parâmetro a ser estimado é a probabilidade p de a face obtida ser “cara”, ou seja: . A função densidade de probabilidade conjunta é dada por: Para maximizarmos a função anterior, basta igualarmos a zero sua derivada emp. Uma maneira mais adequada de realizar isso é resolvendo o problema para o logaritmo natural da função :
A estimativa de pé
, que é denominado estimador de máxima verossimilhança de
. O resultado anterior pode ser facilmente generalizado, para o caso dem sucessos em n
tentativas:
Distribuição contínua Considere que
é uma amostra obtida a partir de uma distribuição normal.
Os parâmetros a serem estimados agora são dois, a média µ e a variância . A função de máxima verossimilhança neste caso é:
Ou de outra maneira:
, ou seja,
A maximização da função de máxima verossimilhança será feita novamente pelo se logaritmo natural:
Derivando em µ e σ, temos:
O estimador de máxima verossimilhança para
é:
A Tabela I.2 apresenta estimadores sugeridos para algumas das distribuições comumente utilizadas na simulação, obtidos a partir do método da máxima verossimilhança. Para outras distribuições, o leitor pode consultar Bankset al. (2001) e Law e Kelto (1991). Tabela I.2 – Estimadores de máxima verossimilhança para algumas das distribuições mais utili zadas na simulação Distribuição Parâmetros Estimadores de máxima verossimi lhança Binomial
p
, m sucessos em n tentativas
Normal
Exponencial
λ
Poisson
λ
Lognormal
após retirar o logaritmo natural dos dados
Referências bibliográficas ALDRICH, John. R. A. Fisher and the making of maximum likelihood 1912-1922. Statist. Sci. v. 12, n. 3, p. 162-176, 1997. BOTTER, Denise A.; PAULA, Gilberto A.; LEITE, José G.; CORDANI, Lisbeth K. Noções de Estatística – com apoio computacional. São Paulo: Instituto de Matemática e Estatística da USP, 1996. BANKS, Jerry; CARSON, John S.; NELSON, Barry L.; NICOL, David M. Discrete-event system simulation. 2. ed. Upper Sandle River: Prentice-Hall International Series i Industrial and System Engineering, 2001. DEVORE, Jay. Probability and statistics for engineering and the sciences. 5. ed. Pacific Grove: Duxbury Press, 2000. ELIASON, Scott R. Maximum likelihood estimation: logic and practice. Quantitative Applications in Social Sciences Series. Newbury Park: Sage Publications Inc., 1993. KELTON, David W.; SADOWSKI, Randall P.; SADOWSKI, David. Simulation with Arena. Boston: McGraw Hill, 1998. LAW, Averill M.; KELTON, David W. Simulation, modeling & analysis. 2. ed. Nova York: McGraw-Hill, 1991. NETO, Pedro L. C. Estatística. São Paulo: Edgar Blücher Ltda., 1986.
Apêndice II
Introdução à Teoria das Filas
Este Apêndice pretende ser uma breve introdução à Teoria das Filas. Para um aprofundamento dos conceitos apresentados, aconselha-se ao leitor a consulta das referências sugeridas ao final do apêndice. Você se lembra da última vez em que perdeu parte do seu precioso tempo aguardando em uma fila? Talvez tenha sido no supermercado, no banco, no caixa eletrônico, no trânsito, no restaurante ou mesmo na internet (esperando por atendimento online ou em algum servidor de jogos...). Para a maioria das pessoas, o tempo gasto em uma fila vai do “indesejável” ao “Isto é um absurdo! Será que eles não poderiam colocar mais funcionários atendendo? ”. No início do século XX, Agner Krarup Erlang, um engenheiro de telecomunicações dinamarquês, iniciou o estudo do congestionamento e dos tempos de espera para a realização de ligações telefônicas, iniciando assim a chamadaTeoria das Filas. A Teoria
das Filas não é um método de otimização estrita (como a programação linear, por exemplo), mas sim uma ferramenta que se preocupa com a elaboração e a solução de modelos matemáticos que representemanaliticamente o processo de formação de fila. Os modelos da Teoria das Filas procuram fornecer informações como: • Tempo médio de espera de um elemento em fila; • Tempo médio de permanência de um elemento no sistema; • Número médio de elementos no sistema e na fila; • Nível médio de ocupação do sistema de atendimento; • Probabilidade de formação de fila. Outras características também podem ser calculadas, como: • Distribuição estatística do tempo de espera em fila; • Distribuição estatística do número de clientes no sistema. O procedimento para o estudo de um problema de fila pode ser resumido em quatro etapas: • Identificar e relacionar as variáveis que condicionam o problema; • Identificar as distribuições probabilísticas dos processos de chegada e atendimento das entidades; • Aplicar a Teoria das Filas ou técnicas de simulação probabilística; • Analisar as respostas e modificar os parâmetros do problema, buscando verificar as alterações na operação do sistema.
II.1. Conceitos fundamentais Toda fila é gerada através de dois processos: processo de chegadas e processo de atendimentos. Normalmente o processo de chegadas é representado pela taxa média de chegadas de clientes no sistema, simbolizada pela letra grega λ, e o processo de atendimentos é representado pela taxa de média de atendimentos, simbolizada pela letra grega µ. Para facilitar o estudo analítico dos modelos de fila, assume-se, na maioria dos casos, que os processos de chegada e atendimento seguem distribuições exponenciais. Quando esse tipo de premissa não pode ser assumida, a tendência é do aumento da dificuldade de se construir expressões matemáticas para os principais parâmetros da Fila. Este Apêndice vai, por meio de exemplos, tratar apenas os casos em que os processos de chegadas e/o atendimentos possam ser assumidos como exponenciais. Modelos de fila podem ter várias configurações. As mais estudadas são aquelas em que a fila é única, com um único servidor ou com diversos servidores, como ilustra a Figura II.1.
Figura II.1 – Esquematização de modelos de f ilas única com 1 ou mais servidores.
Ao entrar em um sistema de fila, um cliente poderá ter de esperar em fila por algum tempo até que um servidor esteja disponível para atendê-lo. Contudo, nem sempre os clientes são atendidos na ordem de chegada, já que as filas são sempre regidas por algumas regras de funcionamento, denominadasdisciplinas de serviço . Entre as disciplinas mais comumente utilizadas, destacam-se:
• FCFS (first-come, first-served ). Primeiro a chegar, primeiro a ser atendido: os clientes são atendidos na ordem em que chegam. Trata-se da disciplina mais comum em sistemas que envolvem o atendimento de pessoas. Quando alguém “fura a fila”, está desrespeitando a regra FCFS (e deveria ser sumariamente enforcado); • LCFS (last-come, first-served ). Último a chegar, primeiro a ser atendido. Aparentemente pouco comum, esta regra é bem conhecida de moradores do último andar de um prédio (você saberia explicar por quê?); • SIRO (served in random order). Atendimento aleatório dos elementos em fila, comum em um balcão de bar; • GD (generic discipline ). Disciplina genérica de atendimento, explicada por um conjunto próprio de regras. Um exemplo bastante comum no Brasil é a regra das “pulseiras coloridas” utilizada para priorizar o atendimento de pacientes em hospitais. Outro conceito importante é o de estado estacionário . Considere, por exemplo, a lanchonete de uma faculdade em que o proprietário deseja determinar quantos caixas de pagamentos deve colocar à disposição de seus clientes. Pela sua experiência, ele sabe que existem horários de pico de atendimento (almoço ou jantar) em que a taxa de chegadas de clientes aumenta repentinamente. Em uma situação como essa, fica a dúvida: o sistema deve ser estudado em um intervalo de tempo curto (somente nos horários de pico) ou longo (contemplando o dia inteiro)? A escolha do horizonte de tempo depende de uma análise empírica dos dados. Se a
variação da taxa de surgimento de clientes for alta a ponto de comprometer os valores médios, de fato, a análise forçosamente deverá ser realizada para um período curto de tempo. No caso do restaurante, por exemplo, se já existia alguma fila de atendimento às 11h30 (início do horário do almoço), essa fila pode nunca se dissipar ao longo da próxima hora, afetando diretamente o desempenho do sistema dentro do período de análise. Neste caso, o sistema é afetado diretamente pela sua condição inicial (fila já existente) e deve ser analisado no seu regime transitório, que é o período em que o comportamento do sistema é dependente das suas condições iniciais. Por outro lado, se as condições iniciais do sistema se dissipam, ou seja, se o período de análise é suficientemente longo para que as condições iniciais não afetem o comportamento médio do sistema, a análise pode ser feita apenas para o estado estacionário . Devido à natureza matemática do problema, o regime transitório é de análise extremamente difícil e geralmente não é abordado nos textos introdutórios da Teoria das Filas.
ndicadores básicos de fila Esta seção relaciona alguns indicadores básicos ou medidas de desempenho para sistemas de fila. É importante notar que, quando os clientes ou elementos em fila são atendidos pelos servidores, eles não se encontram mais em fila, enquanto a denominação de “sistema” compreende tanto a fila quanto os clientes já em atendimento. São medidas de
desempenho usuais de sistemas de fila: • L: número médio de elementos no sistema (tanto em fila quanto em atendimento no servidor); • Lq: número médio de elementos em fila; • Ls: número médio de elementos sendo atendidos (note que L = Lq + Ls); • W: tempo médio de espera no sistema; • Wq: tempo médio de espera em fila; • P: taxa de utilização do servidor ou índice de congestionamento do sistema; • Po: probabilidade de o sistema estar vazio ou probabilidade de um novo cliente encontrar o sistema vazio; • Pj: probabilidade de existirem exatamentej elementos no sistema; • P[≥ k no sistema ]: probabilidade de haver k, ou mais, elementos no sistema; • P[W≤T]: probabilidade de um cliente esperar um tempo máximoT no sistema; • P[Wq≤T]: probabilidade de um cliente esperar um tempo máximo T em fila.
otação de Kendall-Lee A caracterização de um sistema de fila é dada pela notação de Kendall-Lee, que representa as principais características do sistema por meio de uma sigla com até seis informações:
(a/b/c):( d/e/f ) Onde: • a: indica o processo de chegadas dos elementos aos postos de atendimento, definido pela distribuição estatística do intervalo entre chegadas. São utilizadas as seguintes abreviações padronizadas: • M: os intervalos de tempo entre chegadas sucessivas são variáveis aleatórias independentes, identicamente distribuídas (i.i.d.) com distribuição exponencial; • D: os intervalos de tempo entre chegadas sucessivas são i.i.d. e determinísticos; • Ek: os intervalos de tempo entre chegadas sucessivas são variáveis aleatórias i.i.d. com distribuição Erlang de parâmetro k; • G: os intervalos de tempo entre chegadas sucessivas são variáveis aleatórias i.i.d. com distribuição genérica, definida por sua média e variância; • b: indica qual o processo de atendimento dos elementos em cada posto de serviço, definido pela distribuição estatística dos tempos de serviços, com as mesmas abreviações utilizadas para os tempos entre chegadas sucessivas ( M, I, Ek e G); • c: é o número de postos de serviços em paralelo; • d: é a disciplina de atendimento dos elementos da fila, de acordo com a descrição feita anteriormente neste Apêndice (FCFS, LCFS, SIRO e GD); • e : é o número máximo de elementos permitido no sistema (tanto em fila quanto nos postos de atendimento). Situação comum quando o espaço físico da fila é limitado ae clientes
no máximo; • f: é o número de elementos que frequentam o sistema. Em sistemas abertos o número de elementos é usualmente infinito; contudo, em sistemas fechados, por exemplo, a fila que se forma ao se entrar em uma sala de aula, o número de elementos é limitado e conhecido (no exemplo, o número de alunos matriculados na aula). Convém mencionar que, em muitas situações, a fila é especificada apenas pelas três primeiras informações (a/b/c), admitindo-se que o primeiro cliente a chegar é o primeiro a ser atendido, que não há limitação na capacidade do sistema e que a população é infinita. Por exemplo, a notação M/G/3/FCFS/5/∞ representa um sistema em que: • Os tempos entre chegadas sucessivas são exponencialmente distribuídos; • Os tempos de atendimento seguem uma distribuição genérica; • Existem três servidores que podem realizar atendimentos simultâneos; • A disciplina de serviço é tal que o primeiro a chegar é o primeiro a ser atendido; • No máximo cinco clientes podem estar no sistema simultaneamente; • O número de clientes que podem frequentar o sistema é infinito.
II.2. Fórmula de Little: a fórmula geral das filas Considere qualquer sistema de filas em estado estacionário, onde: • λ é taxa média de chegadas de clientes ao sistema [clientes/unidade de tempo]; • L é número médio de clientes no sistema (tanto em fila quanto em atendimento) [clientes]; • W é tempo médio de permanência de um cliente no sistema [unidades de tempo]. Neste caso, a fórmula de Little é definida como: Essa fórmula também pode ser escrita em função do número esperado de clientes na fila (Lq) e do tempo médio de espera em fila (Wq) ou em função do número médio de clientes em atendimento Ls ( ) e do tempo médio de atendimento Ws ( ):
Um posto bancário recebe uma média de 30 clientes por hora. O tempo médio de permanência no banco (calculado entre a chegada e a partida de cada cliente) é igual a cinco minutos. Quantos clientes em média encontram-se no banco? Se cada cliente permanece no caixa de atendimento em média por um minuto, qual o número médio de clientes em fila? Neste exemplo, a taxa de chegadas é de 30 clientes/h, ou seja:
O tempo médio de espera no sistema é de cinco minutos, ou seja: Para se determinar o número médio de elementos no banco, a aplicação da fórmula de Little é imediata: Se cada cliente permanece por um minuto no caixa, então: E o número médio de clientes em atendimento é obtido diretamente da fórmula de Little: Como a média de clientes no sistema é a soma da média de clientes em fila com a média de clientes em atendimento, temos:
II.3. Exp ressões an alíticas para alguns modelos clássicos da Teoria das Filas Estas seção apresenta alguns dos principais modelos de fila: M/M/1, M/M/1/ c, M/D/1 e / M / s. O modelo M/M/1/ c se refere ao modelo que possui capacidade do sistema limitada para c elementos (há, portanto, desistências caso o sistema esteja cheio); o modeloM/D/1 corresponde ao modelo que possui processo de atendimento determinístico (constante) e o modelo M/M/s é uma generalização do modelo M/M/1 para considerar s servidores em paralelo.
Modelo M/M/1 • Intervalos entre chegadas exponencialmente distribuídos; • Intervalos de atendimento exponencialmente distribuídos; • Um servidor de atendimento. Parâmetro Índice de ocupação do sistema
Expressão
Probabilidade de o sistema estar livre Probabilidade de j elementos no sistema Probabilidade de mais do que k elementos no sistema Média de elementos em fila Média de elementos em atendimento Média de elementos no sistema
Os valores de W, Wq eWs podem ser derivados pela fórmula de Little.
Observação Este modelo (e quase todos os demais) exige que o sistema seja estável; ou seja, que a fila não cresça indefinidamente ao longo do tempo, apresentando, assim, um comportamento médio definido. Matematicamente, esta condição de estabilidade é atingida se o índice de congestionamento ρ for menor que 1.
Em um posto bancário, que possui apenas um caixa de atendimento, os clientes chegam a uma taxa de 50 clientes por hora. Um caixa atende, em média, 60 clientes por hora. Considere que as distribuições dos intervalos de tempo entre chegadas e dos tempo de atendimento são exponenciais. Neste caso, os indicadores básicos de desempenho seriam: (como < 1, então o sistema é estável)
clientes
clientes
cliente
Da fórmula de Little:
Note que os valores de Ls e Ws também poderiam ter sido calculados pelas expressões: e .
Modelo M/M/1/c (estável para qua lquer valor de r) • Intervalos entre chegadas exponencialmente distribuídos; • Intervalos de atendimento exponencialmente distribuídos; • Um servidor de atendimento; • Capacidade máxima de elementos no sistema: c.
Parâmetro
Expressão
Parâmetro
Expressão
Taxa efetiva de entrada no sistema Índice de ocupação do sistema
Probabilidade do sistema estar livre
Probabilidade de j elementos no sistema
Probabilidade de mais do que k elementos no sistema Média de elementos em fila Média de elementos em atendimento
Média de elementos no sistema
Novamente, os valores de W, Wq e Ws podem ser derivados pela fórmula de Little, porém, utilizando a taxa efetiva de entrada no sistema, λc=λ(1-pc), em vez da taxa de chegadas λ. Isso ocorre porque parte dos elementos que procuram o sistema (com taxa média igual a λ) o encontrarão com sua capacidade esgotada (o que ocorre com probabilidade igual a pc), fazendo com que apenas uma fração λ(1pc) efetivamente entre no sistema. O posto bancário do exemplo anterior comporta apenas seis clientes (havendo cinco
clientes em fila, o próximo desistirá). Neste caso, o despenho geral do sistema mudaria para (dado que
):
cliente
Probabilidade de o sistema estar cheio é o mesmo que a probabilidade de que seis clientes estejam no sistema (5 em fila e 1 em atendimento):
Taxa
efetiva
de
chegadas:
Da fórmula de Little podem-se obter os tempos de médios de permanência:
Note que, a cada hora, dos 50 clientes que chegam para serem atendidos, de fato entram no posto bancário 46,1. Assim, o posto bancário por ter uma capacidade limitada em seis clientes perde, a cada hora, cerca de quatro clientes por “congestionamento” do sistema.
Modelo M/D/1 • Intervalos entre chegadas exponencialmente distribuídos; • Intervalos de atendimento determinísticos; • Um servidor de atendimento; Parâmetro Índice de ocupação do sistema Probabilidade de o sistema estar livre Probabilidade de j elementos no sistema Probabilidade de mais do que k elementos no sistema Média de elementos em fila Média de elementos em atendimento Média de elementos no sistema
Expressão
Mais uma vez, os valores de W, Wq e Ws podem ser derivados pela fórmula de Little. Se o tempo de atendimento no posto bancário fosse constante, os indicadores básicos de desempenho seriam: (como < 1, então o sistema é estável)
Da fórmula de Little:
Modelo M/M/s • Intervalos entre chegadas exponencialmente distribuídos; • Intervalos de atendimento exponencialmente distribuídos; • s servidores de atendimento em paralelo. Parâmetro Índice de ocupação do sistema
Probabilidade de o sistema estar livre
Expressão
Probabilidade de j elementos no sistema
Probabilidade de existirems ou mais elementos no sistema Média de elementos em fila Média de elementos em atendimento Média de elementos no sistema
Para facilitar os cálculos, a Tabela II.1 já traz calculados os valores da probabilidade
em função do número de servidores e da relação
:
Tabela I.1 – Valores de p0 para a fila M/M/s Número de servidores λ/µ
2
3
4
5
0,15
0,8605
0,8607
0,8607
0,8607
0,20
0,8182
0,8187
0,8187
0,8187
0,25
0,7778
0,7778
0,7778
0,7778
0,30 0,35
0,7391 0,7021
0,7407 0,7046
0,7408 0,7047
0,7408 0,7047
0,40
0,6667
0,6701
0,6703
0,6703
0,45
0,6327
0,6373
0,6376
0,6376
0,50
0,6000
0,6061
0,6065
0,6065
0,55
0,5686
0,5763
0,5769
0,5769
0,60
0,5385
0,5479
0,5487
0,5488
0,65
0,5094
0,5209
0,5219
0,5220
0,70
0,4815
0,4952
0,4965
0,4966
0,75
0,4545
0,4706
0,4722
0,4724
0,80
0,4286
0,4472
0,4491
0,4493
0,85
0,4035
0,4248
0,4271
0,4274
0,90
0,3793
0,4035
0,4062
0,4065
0,95
0,3333
0,3636
0,3673
0,3678
1,20
0,250’0
0,2941
0,3002
0,3011
1,40
0,1765
0,2360
0,2449
0,2463
1,60
0,1111
0,1872
0,1993
0,2014
1,80 2,00
0,0526
0,1460 0,1111
0,1616 0,1304
0,1646 0,1343
2,20
0,0815
0,1046
0,1094
2,40
0,0562
0,0831
0,0889
2,60
0,0345
0,0651
0,0721
2,80
0,0160
0,0502
0,0581
3,00
0,0377
0,0466
3,20
0,0273
0,0372
3,40
0,0186
0,0293
3,60
0,0113
0,0228
3,80
0,0051
0,0174
4,00
0,0130
4,20
0,0093
4,40
0,0063
4,60
0,0038
4,80
0,0017
Se o posto bancário do do exemplo do caso M/M/1 ganha um segundo caixa, os novos parâmetros de desempenho ficam: (como < 1, então o sistema é estável)
Da fórmula de Little:
II.4. Análise econômica de filas As decisões envolvendo o dimensionamento de filas geralmente são baseadas em uma análise subjetiva de suas características operacionais. Por exemplo, um administrador escolhe certos parâmetros de desempenho da fila, tais como: número médio de pessoas em fila ou tempo máximo de permanência em fila. Utilizando os modelos de filas apresentados nas seções anteriores, o administrador procura determinar o número de servidores necessários de modo a atender aos parâmetros previamente estabelecidos. Outra forma de análise considera as implicações econômicas da fila, através dos custos envolvidos. Basicamente, o custo total de se operar uma fila será a soma do custo de atendimento com o custo associado à espera. Considere a seguinte notação: • cw: custo de espera de um elemento por unidade de tempo; • L: número médio de elementos no sistema; • cs: custo de atendimento por unidade de tempo para cada servidor; • s: número de servidores; • CT: custo total associado ao sistema, por unidade de tempo; • CA: custo do atendimento por unidade de tempo; • CE: custo de espera pelo atendimento por unidade de tempo. Para o caso do exemplo do posto bancário, o custo total de operação seria dado por:
($/unidade de tempo) O custo de atendimento é o mais fácil de se determinar por se tratar do custo de se operar um servidor (caixa de banco, garçom etc.) Contudo, o custo de espera é, geralmente, de difícil determinação. Em um restaurante por quilo, por exemplo, o custo de espera não é um custo direto para o seu proprietário, pois não é algo que ele pague. Contudo, se ele permitir longas filas de espera, os clientes procurarão outro local para o almoço fazendo com que o restaurante tenha perdas de vendas, o que, de fato, gera um custo. Usualmente, este valor é estimado dentro do conceito de perdas de “vendas” ou “negócios” futuros. Algo intangível, 1
mas de fato ocorreracaso o cliente não fique satisfeito com em dos espera. A que Figura II.2pode apresenta forma geralmente encontrada para oastempo curvas custos discutidos. O custo de atendimento cresce linearmente com o aumento do número de servidores (supondo que o custo de cada servidor adicional seja constante), enquanto o custo de espera em fila diminui (já que o atendimento melhora).
Figura II.2 – Exemplo de curvas d e custo de espera, atend imento e total pa ra um sistema com presença d e filas.
Voltando ao exemplo do posto bancário, se o banco estima que custo da espera em fila é de R$ 10/cliente/h, valor que é igual ao custo por hora de um atendente, vale a pena ter dois atendentes no posto? Para um atendente: Custo de atendimento/hora = R$ 10,00/h
Custo de espera/hora
ou R$ 41,67/h
Custo total = R$ 10,00/h + R$ 41,67/h = R$ 51,67/h. Para dois atendentes: Custo de atendimento/hora = R$ 20,00. Custo de espera/hora =10Lq = 10 × 0,1751 = R$ 1,75 Custo total = R$ 20,00/h+R$ 1,75/h= R$ 21,75/h. Portanto, o custo total de operação é mais baixo com dois atendentes. Na prática, determinar o custo de espera de cada cliente em fila não é uma tarefa trivial. Alternativamente, pode-se estimar qual seria o custo horário de espera por cliente que ustificaria o acréscimo de um atendente no sistema.
Referências bibliográficas KLEINROCK, L.Queuing Systems. Vol. 1 e 2. Nova York: Wiley, 1975. ROSS, S. Applied Probability Models with Optimization Applications. São Francisco: Holden-Day, 1970. WINSTON, Wayne L. Operations research: applications and algorithms. Belmont: Duxbury Press, 1994.
Apêndice III
Geração de números aleatórios
O objetivo deste Apêndice é apresentar uma breve introdução de algumas técnicas utilizadas no processo de geração de números aleatórios. Há excelentes fontes de referência para um estudo introdutório da geração de números aleatórios, como Knuth (1997), Press et al. (2002) e Anderson (1990). Considere, por exemplo, um modelo de simulação de um caixa eletrônico. Basicamente, existem dois fenômenos aleatórios importantes: o processo de chegada de clientes no sistema e o processo de atendimento dos clientes no caixa. Um modelo computacional de simulação para esse sistema deve, portanto, ser capaz de representar tais fenômenos. Em um primeiro momento, devemos descobrir quais distribuições probabilísticas representam melhor tanto o processo de chegada quanto o de atendimento dos clientes, utilizando as técnicas discutidas no Capítulo 2. Em uma etapa posterior, com o modelo computacional já
pronto e em condições de uso, devemos esperar que, toda vez que ele seja “rodado”, números aleatórios que representem os processos de chegada e de atendimento dos clientes sejam gerados de acordo com as distribuições probabilísticas previamente escolhidas. Se, por exemplo, o tempo de atendimento no caixa for exponencialmente distribuído, o modelo computacional deverá gerar tempos de atendimento aleatórios que, quando testados, sejam aceitos como exponencialmente distribuídos. Internamente, no computador, o processo de construção de uma distribuição probabilística é desenvolvido, de modo geral, em duas etapas (Fig. III.1): • Sorteia-se um número aleatóriouniformemente distribuído entre 0 e 1. • Utilizando a função repartição da distribuição de probabilidade desejada , transforma-se o número aleatório uniformemente distribuído em um valor segundo a distribuição probabilística desejada.
Figura III.1 – Esquema básico do processo de geração de números aleatórios.
Os números aleatórios pertencentes ao intervalo [0,1] são calculados por algoritmos que partem, geralmente, de um valor inicial denominado semente. Tais algoritmos geram os chamados números pseudoaleatórios. Uma interessante discussão filosófica começa aqui. Os matemáticos preferem diferenciar um número genuinamente aleatório de um número pseudoaleatório. Conceitualmente, o número aleatório seria aquele gerado por um processo que não pode ser repetido. Por exemplo, a série de números do sorteio da loteria nunca se repete (caso contrário, todos nós já saberíamos o resultado de antemão). Um número aleatório gerado pelo computador, por exemplo, não é exatamente aleatório, pois pode ser repetido; basta que utilizemos o mesmo algoritmo, com a mesma semente, e o número “aleatório” já é previamente conhecido. Daí a denominação “pseudoaleatório”. Doravante,
quando nos referirmos aos números aleatórios, estaremos falando, na verdade, de números pseudoaleatórios.
III.1. Métodos para geração de números aleatórios Existem diversos métodos para geração de números aleatórios. Atualmente, diversos equipamentos eletrônicos possuem geradores de números aleatórios: computadores, calculadoras de mão, relógios de pulso, dentre outros. Contudo, antes do surgimento dos computadores, os pesquisadores forçosamente precisavam utilizar dados, bolas numeradas em urnas, grandes tabelas impressas de números aleatórios etc. Em 1927, Leonard H. C. Tippett publicou a primeira tabela de números aleatórios de que se tem notícia, com 41.600 números, obtidos ao se retirarem os dígitos do meio dos valores das áreas das paróquias existentes na Inglaterra. Em 1946, John von Neumann apresentou ométodo do meio-quadrado para a geração de números aleatórios. O método é bem simples: a cada iteração, eleva-se um número “semente” ao quadrado e extraem-se os seus dígitos do meio. Esse novo número é utilizado como semente para a iteração seguinte, e o processo se repete. Por exemplo, considere o número sementer1= 76. Elevando-o ao quadrado, temos:
r21 = (76)2 = 5.776 Os dígitos do meio de “5776” formam o número “77”, que é utilizado como semente para a próxima iteração:
r22 = (77)2 = 5.929 r23 = (92)2 = 8.464
Assim, será gerada a sequência de números aleatórios de dois dígitos: 76, 77, 92, 46, 11, 12, 14,... Contudo, o método do meio-quadrado é pouco eficiente, gerandociclos (repetição da mesma sequência de números) em intervalos1 muito curtos; ademais, toda vez que o número gerado for igual a zero, será necessário escolher uma nova semente. A Tabela III.1 relaciona os cálculos dos 15 primeiros números gerados pelo método do meio-quadrado, quando a semente utilizada é o número “76”. i
ni
ni2
Tabela III.1 – Sequência de 15 números aleatórios gerados pelo método do meio-quadrado. Note que os números de três dígitos ou menos receberam “0” à frente i
ni
ni2
1
76
5776
2
77
5929
3
92
8464
4
46
2116
5
11
0121
6
12
0144
7
14
0196
8
19
0361
9
36
1296
10
29
0841
11 12
84 05
7056 0025
13
02
0004
14
00
0000
15
00
0000
Note que, a partir do 14o número, a sequência fica igual a zero indefinidamente. Essa situação pode ser parcialmente contornada utilizando-se números com 10 ou mais dígitos.
O método mais popular para a geração de números aleatórios é o método da congruência2 ou resíduo. Esse método trabalha a partir de quatro parâmetros: o multiplicador, a; a constante aditiva, c; o módulo, M; e a semente inicial r0. O método segue estes passos:
Passo 1: Escolha os valores a, c e M. Usualmente, M é escolhido o maior possível. Passo 2: Escolha a semente r0, tal que: Passo 3: Calcule o próximo número aleatório pela expressão: é o módulo (resto da divisão inteira) da divisão de x por y (p. ex.,
onde: ).
Passo 4: Substitua r0 por r1 e volte ao passo anterior, de modo a construir a sequência de números aleatórios desejada. Esse algoritmo constrói uma sequência de números aleatórios entre 0 eM-1. Com “boas escolhas” de a e c, o período de repetição da sequência pode chegar até M.3 Para obtermos números aleatórios uniformemente distribuídos no intervalo [0,1], basta realizarmos a divisão:
Para obtermos números aleatórios uniformemente distribuídos no intervalo [0,1), a divisão é ligeiramente diferente da anterior:
A Tabela III.2 resume a aplicação do método da congruência quando são utilizados os valores: a = 9; c = 1; M = 17 e r0 = 8. Neste exemplo, a sequência de números se repete em um intervalo de oito números. Usualmente, trabalha-se com os valores indicados na Tabela III.3. Na tabela, os valores de M são da forma 2f, onde f é o tamanho em bits do processador utilizado. Tabela III.2 – Sequência de 20 números aleatórios obtidos a partir do método da congruência, com a=9; c=1; M=17; e r0=8 r0
y=9r0+1
r1 =y mod 17
r1/17
8
73
5
0,29412
5
46
12
0,70588
12
109
7
0,41176
7
64
13
0,76471
13
118
16
0,94118
16
145
9
0,52941
9
82
14
0,82353
14
127
8
0,47059
8
73
5
0,29412
5
46
12
0,70588
12
109
7
0,41176
7
64
13
0,76471
13 16
118 145
16 9
0,94118 0,52941
9
82
14
0,82353
14
127
8
0,47059
8
73
5
0,29412
5
46
12
0,70588
12
109
7
0,41176
7
64
13
0,76471
Tabela III.3 – Valores usuais utilizados no método da congruência linear A
M
c
Período de repetição
75
231–1
0
231–2
1.664.525
232
1.013.904.223
232
69.069
232
0
232
6,36414E+18
264
1
264
III.2. Testes de aleatoriedade Uma vez construída a sequência, ainda fica a questão: podemos aceitar a sequência de números gerada como aleatória para fins de simulação? Alguns testes podem ser aplicados para se responder a essa questão; são eles: • Teste do qui-quadrado, ou de Kolmogorov-Smirnov (Cap. 2), para testar a aderência de uma distribuição uniforme de números entre 0 e 1 sobre a sequência de números gerada; • Teste de independência, que verifica se existe correlação entre valores na sequência de números obtida pelo método empregado.
Observação Pela própria experiência dos autores e pelos diversos relatos encontrados na literatura, recomendamos que você, caso necessite utilizar um gerador de números aleatórios de algum compilador de linguagem de programação, teste antes a qualidade do gerador. Via de regra, os geradores de números aleatórios encontrados nos compiladores comerciais são de qualidade duvidosa para aplicações em simulação. Depois de algumas surpresas desagradáveis, nossa prática atual é implementar a nossa própria rotina de geração sempre que necessário. Se o leitor está interessado nas questões relativas à implementação dos algoritmos de geração de números aleatórios, uma referência fundamental é Presset al. (2002), afinal:
“Geradores de números aleatórios não devem ser escolhidos aleatoriamente.”4 (Ronald Knuth)
III.3. Geração de variáveis aleatórias contínuas Existem diversas técnicas para geração de valores para variáveis aleatórias contínuas. Um dos métodos mais populares é o da Transformada Inversa. Dada uma função densidade de probabilidade f(x) para uma variável aleatória X, o método pode ser resumido nos seguintes passos (WINSTON, 1994):
Passo 1: Obtenha a função de repartição da variável aleatória através da expressão (Apêndice I): Passo 2: Gere um número aleatório r entre 0 e 1. Passo 3: Faça F(x) = r e resolva em x. A variável x é uma variável aleatória cuja distribuição é dada pela função densidade de probabilidade f(x). Considere que x é uma variável aleatória com distribuição exponencial de médiaT.
Passo 1: Neste caso, a função de repartição da distribuição é: , onde = 1/T
Passo 2: O número aleatório será r.
Passo 3: Igualando F(x) = r e resolvendo em x, temos: E o nosso gerador de números aleatórios fica:
A Figura III.2 apresenta a função de repartição da distribuição exponencial de média 4 (ou seja: = 1/4). O número aleatório r no intervalo [0,1] é marcado sobre o eixo vertical do gráfico da função de repartição. O passo seguinte é “ler” através do gráfico qual pontox corresponde ao valor do r escolhido anteriormente.
Figura III.2 – Função de repartição da distribuição exponencial de média 4.
A seguir, veremos como gerar variáveis aleatórias de algumas distribuições contínuas conhecidas, através de exemplos.
Distribuição Uniforme Considere que X é uma variável aleatória com distribuição uniforme no intervalo a[, b]. Neste caso, a função de repartição da distribuição é:
Fazendo F(x) = r, temos:
Distribuição Erlang Se x é uma variável aleatória com distribuição Erlang de ordemk e média T, então x é a resultante do somatório de k variáveis aleatórias independentes com distribuição exponencial de média T/k. Distribuição Normal Para a obtenção de uma variável x normalmente distribuída com média 0 e variância 1 (normal padrão), deve-se gerar dois números aleatórios r1 e r2 e utilizar o seguinte gerador aproximado: Com o valor de x obtido pela expressão anterior, pode-se obter valores para uma variável aleatória y normalmente distribuída, com médiam e desvio-padrão , utilizando a equação:
III.4. Geração de variáveis aleatórias discretas O método da Transformada Inversa também pode ser aplicado a variáveis aleatórias discretas. Neste caso, o método é ligeiramente diferente:
Passo 1: Obtenha a função de repartição da distribuição discreta através da expressão (Apêndice I):
Passo 2: Gere um número aleatório r pertencente ao intervalo [0,1]. Passo 3: Escolha o menor inteiro i, tal que: Passo 4: Faça a variável aleatória x ser igual a xi. A Figura III.3 representa a função de repartição da demanda diária por jornais em uma banca (Exemplo I.7 do Apêndice I). Dado um número aleatório r, pertencente ao intervalo [0,1], deve-se identificá-lo no eixo das ordenadas do gráfico da função repartição. A seguir, identifica-se, no gráfico, a que ponto x do eixo das abscissas corresponde ao número r, como esquematizado na Figura III.3.
Figura III.3 – Função repartição da demanda por jornais.
Referências bibliográficas ANDERSON, Stuart L. Random numbers generators on vector supercomputers and other advanced architectures. SIAM Review, v. 32, n. 2, p. 221-251, 1990. KNUTH, Donald N. The art of computer programming. Volume 2: Seminumerical Algorithms. 3. ed.; Reading: Addison-Wesley Professional, 1997. PRESS, Willian H.; TEUKOLSKY, Saul A.; VETTERLING, Willian T.; FLANNERY, B. P. Numerical recipes using C: the art of scientific computing. 2. ed., Nova York: Cambridge University Press, 2002. WINSTON, Wayne L. Operations research: applications and algorithms. Belmont: Duxbury Press, 1994.
Apêndice IV
Documentação do projeto e elaboração de um relatório de simulação
Imagine, por um momento, que você é convidado a dar continuidade a um projeto do qual não participou desde sua gênese. O que você gostaria que estivesse documentado sobre o projeto? Se, nesse breve exercício mental, você passar pelos tópicos do sumário deste livro, notará que, para dar continuidade ao projeto, você depende de que o analista (ou a equipe) do projeto srcinal tenha documentado as diversas etapas do projeto com boa riqueza de detalhes; caso contrário, não haverá como retomá-lo, por mais simples que seja o objetivo da sua continuidade. Um projeto de simulação só está completo com (1) a apresentação do “Relatório Técnico” – capaz de sintetizar as principais conclusões do projeto de simulação – e (2) sua documentação completa.
IV.1. A documentação do projeto de simulação A documentação do projeto é tarefa obrigatória e deve acompanhar todo o seu desenvolvimento. Ela representa a memória de tudo o que foi realizado no âmbito do projeto. Existem três razões básicas para realizarmos uma boa documentação: 1. Um projeto mal documentado dificulta sua compreensão por parte do cliente, diminuindo a confiança em seus resultados e prejudicando sua aplicabilidade; 2. A documentação é uma fonte de informação valiosa para o processo de verificação e validação, principalmente quando este é feito por pessoas externas ao projeto; 3. Um projeto de simulação pode ser reutilizado, seja pela continuidade do projeto, seja em projetos futuros de natureza semelhante. Como nem sempre as equipes de projeto são as mesmas, pois as pessoas mudam de funções dentro da estrutura organizacional, ou mesmo trocam de organizações, um projeto mal documentado dificilmente será compreendido por terceiros. “Documentar” um projeto envolve armazenar, catalogar e descrever de maneira funcional os seguintes tópicos: • A especificação do projeto; • As reuniões realizadas e suas atas; • Os e-mails e comunicações trocadas ao longo do projeto; • O modelo conceitual, com as hipóteses e simplificações assumidas;
• O modelo de entrada de dados, com os dados utilizados e todo procedimento desenvolvido; • O modelo computacional, com uma descrição detalhada das suas variáveis, atributos, rotinas etc.; • A verificação e a validação realizadas; • Os cenários avaliados e os seus resultados computacionais obtidos com o máximo de detalhamento possível; • As apresentações realizadas para a equipe, clientes etc.; • Os relatórios parciais e o relatório final do projeto. Evidentemente, boa parte dos tópicos relacionados é facilmente documentável, caso se utilizem adequadamente as ferramentas da informática. Contudo, o modelo computacional, por mais avançados que estejam os softwares de simulação, ainda é a parte mais dispendiosa da documentação. Não basta disponibilizar o modelo computacional: ele deve estar documentado de tal modo que possa ser alterado, adaptado e atualizado por outros analistas. A própria literatura sobre documentação de projetos de simulação, apesar de escassa, enfatiza a documentação do modelo computacional. Gass (1984) destaca a necessidade de que a documentação exista de tal modo que possa atender às diversas audiências envolvidas; assim, o autor propõe manuais específicos para o analista, o programador, o usuário e o gerente do modelo computacional. Orcarsson e Moris (2002) apontam que o modelo de simulação, particularmente o modelo computacional, pode ser
documentado através das ferramentas de documentação típicas da área de tecnologia da informação, por exemplo, fluxogramas, linguagens abstratas, como Unified a Modelling Language (UML), dentre outros. No trabalho de Richter e März (2000), encontramos uma discussão mais aprofundada sobre a utilização da UML na representação de modelos de simulação. Cabe ao analista ponderar qual é o grau de detalhamento que será utilizado na descrição do modelo. Mas também cabe lembrar a máxima: “Quanto menor o grau de detalhamento que você der à documentação de um projeto, maior será a probabilidade de precisar dele no futuro!”.
IV.2. O relatório técnico O relatório técnico representa um dos itens da documentação do projeto. Sendo um relatório técnico, ele tem características próprias de apresentação, algumas disponíveis inclusive em norma técnica da ABNT.1 O relatório final deve sintetizar o trabalho executado no âmbito do projeto em um linguajar técnico e conciso. Na elaboração de um relatório, direcione-o para quem você está elaborando o relatório. Seu “cliente”, muitas vezes, não é representado por uma única pessoa, mas por pessoas de formações diversas e com preocupações organizacionais diferentes. O diretor-presidente de uma empresa, por exemplo, por mais interessado que esteja nas maravilhas tecnológicas da simulação, provavelmente não deseja perder tempo tentando descobrir como foi construído o modelo, qual software foi utilizado, se o modelo era terminal ou não etc. Por outro lado, ao abrir o relatório de simulação, ele vai querer identificar rapidamente quais os impactos causados pelo estudo na organização: qual o custo, qual o aumento no lucro, qual o aumento de produção esperado, quantos trabalhadores serão demitidos ou contratados etc. Enfim, o diretor-presidente deseja conhecer as principais conclusões e recomendações obtidas através da simulação. Dentro da estrutura organizacional dessa mesma empresa, encontraremos, possivelmente, um “técnico” responsável pelo acompanhamento do projeto. Esse técnico desejará reconhecer no relatório aspectos que identifiquem que o modelo éválido – que representa corretamente o sistema em estudo. Para que esse profissional tenha o seu desejo atendido, o
relatório de simulação deve contemplar aspectos específicos que caracterizam o modelo, a descrição do sistema simulado, as entradas utilizadas, o tratamento de dados utilizado, os níveis de confiança, o modelo computacional, as saídas do modelo e como elas foram analisadas etc.2 Você pode estar pensando que o relatório será um belo “tijolo” de 300 folhas de papel. Não é bem assim. O relatório reflete o trabalho na busca de um objetivo. Se você focá-lo nesse objetivo, verá que elaborar um relatório não é o fim do mundo. Antes de começarmos a parte “técnica” de elaboração do relatório, convém atentarmos para o fato de que os softwares de simulação atuais dispõem de “geradores de relatórios” automáticos; contudo, tais relatórios devem ser utilizados com muito cuidado e inteligência. A título de ilustração, o software Arena, da Rockwell Software, possui um gerador de relatórios automático, baseado no “Crystal Reports”. Para o modelo de simulação do Exemplo 6.2, o Arena gerou um relatório com 6.930 páginas! Obviamente, o fabricante do software não disponibilizou essa ferramenta com a finalidade de gerar relatórios em substituição ao relatório técnico gerencial, mas com a intenção de disponibilizar ao analista todas as informações necessárias para que ele possa construir o seu próprio relatório de maneira rápida. Através de comandos do tipo “copiar e colar” ou de “importação e exportação” de arquivos, podemos extrair do relatório gerado pelo software tabelas e gráficos já prontos e colocá-los no nosso relatório final, ganhando tempo e qualidade na apresentação.3
Estruturação de um r elatór io de si mulação Não se pretende aqui fornecer a descrição formal de um relatório técnico; para isso, podem ser consultadas bibliografias específicas, tais como a norma NBR 10.719 (NB 887) da ABNT. Nosso objetivo é apresentar uma possível estruturação para o relatório de simulação que, pela nossa prática e experiência, tem se mostrado adequada. Não estamos apresentando regras obrigatórias, mas sugestões para o desenvolvimento do relatório. Na verdade, a natureza de cada projeto vai determinar a estruturação mais adequada do relatório. Como sugestão, o relatório deve contemplar a seguinte estrutura básica: • Carta de apresentação; • Capa; • Sumário; • Síntese do relatório; • Introdução; • Corpo: • Descrição dos sistemas simulados; • Objetivos; • Resultados obtidos; • Conclusões; • Anexos.
Nos itens a seguir, vamos descrever sucintamente cada uma das partes dessa estrutura.
Carta de apresentação Coloque uma carta de apresentação que comunica a entrega do relatório e delineia as principais conclusões do relatório, tais como: ganho de produtividade, custos totais, lucros, impactos etc. Sumário Deve aparecer em todo relatório técnico. O sumário indica as seções em que está dividido o texto. Anexos e/ou apêndices devem aparecer posteriormente à indicação das seções. Por último, devem aparecer as referências bibliográficas, índices remissivos e glossários. Se o relatório for dividido em partes, cada parte deve possuir o seu próprio sumário.
Síntese do r elatór io Esta seção não é obrigatória, mas sugerimos, para sua conveniência, que se coloque uma página de rosto onde são destacados os seguintes aspectos: itens de identificação interna (número, data, nome do projeto etc.), data, objetivo sucinto do trabalho, descrição sucinta do sistema simulado, resumo das conclusões. Introdução
Nesta primeira seção do corpo do texto, são apresentados o problema e a necessidade do trabalho. A introdução não deve apresentar a metodologia utilizada nem as conclusões obtidas. Sugere-se que, para facilitar a leitura, os objetivos do trabalho sejam descritos em uma seção própria.
Descrição dos s ist emas si mulados Já fazendo parte do corpo do texto, esta seção deve descrever em detalhes o sistema simulado, com suporte de gráficos, desenhos, fluxogramas, diagramas etc. Nesta seção, o cliente deverá identificar claramente o seu sistema atual. Nela devem estar apresentadas, com suporte gráfico, se possível, as distribuições adotadas, como discutido no Capítulo 2. Contudo, os cálculos ou saídas de programas de computador não fazem parte do corpo do texto e devem aparecer obrigatoriamente em anexo. O ACD, ou modelos conceituais desenvolvidos (discutidos no Capítulo 3), não deve ser colocado no relatório entregue ao cliente, mas deve ser documentado e devidamente arquivado para consultas futuras.
Objetivos do estudo Após a descrição do sistema simulado contida na seção anterior, a apresentação dos objetivos do projeto fica facilitada. Esta seção deve ser sucinta e sem rodeios, pois o problema já foi apresentado e descrito nas seções anteriores. Basicamente, os objetivos referem-se às respostas que se pretende obter ao final do estudo.
Resultados obti dos São todos os resultados, computacionais ou não, utilizados para responder às perguntas da seção anterior. Novamente, tabelas, gráficos, desenhos e diagramas devem ser utilizados para a apresentação dos resultados de maneira prática. Os resultados quantitativos devem ser apresentados de modo agregado, através de intervalos de confiança. Todos os resultados das replicações utilizadas no cálculo dos intervalos de confiança devem aparecer no relatório, obrigatoriamente , em anexo.4 Desse modo, se o cliente quiser realizar uma verificação dos cálculos realizados, ele encontrará as informações, de forma facilitada, nos anexos. Conclusões e recomendações Corresponde à última seção textual do relatório. Esta seção deve sintetizar, de maneira clara e ordenada, as principais conclusões e recomendações do trabalho. As recomendações são frases curtas que representam as ações que o cliente deve tomar no futuro, obtidas a partir das conclusões do trabalho. Se o trabalho for extenso, a seção pode ser subdividida em partes, sempre com o intuito de garantir a clareza. Anexos Nesta seção, são colocados os elementos de suporte do trabalho que não são fundamentais para a compreensão do corpo do texto, como diagramas específicos, dados coletados em campo, tabelas de replicações, listagens de programa, relatórios de saída de
softwares etc. Cada elemento acrescentado ao relatório deve ter o seu anexo próprio. A numeração de figuras e tabelas também deve ser específica para cada anexo. Na sequência, apresentamos um relatório de simulação real que ilustra o que foi discutido nas seções anteriores. Novamente, frisamos que o texto a seguir é apenas uma sugestão, e não um roteiro obrigatório para desenvolvimento de relatórios de simulação.
Embromar Ltda. Rua do Ócio, 9999 Fone: Fax 0XX-99-9999-9999 E-mail: [email protected] Coruscant, 31 de janeiro de 2010. À Fábrica de paraquedas “O chão é o limite” At.: Sr. Leonardo da Vinci Rua Nono, 99. Prezado Senhor, Encaminho o Relatório Técnico do estudo de viabilidade da nova linha de produção de
paraquedas de madeira. As principais conclusões do projeto foram: • cinco estações, no conceito adotado para um tempo de teste automático de 100 segundos, não são suficientes; • Pode-se utilizar dois operadores, em vez de três, com queda de produtividade de apenas 2%; • O modelo com estações em linha e o modelo com estações opostas são equivalentes. O detalhamento do projeto está descrito no corpo do relatório e nos seus anexos. Atenciosamente, Pacácio Jr. Engenheiro de Sistemas
SUMÁRIO 1. Síntese do Relatório................................................................................ 1 2. Introdução.............................................................................................. 2 3. Descrição dos Sistemas Simulados....................................................... 2 4. Objetivos do Estudo.............................................................................. 4
5. Resultados Obtidos............................................................................... 5 6. Conclusões e Recomendações.............................................................. 6 Anexos........................................................................................................... 7 SÍNTESE DO RELATÓRIO NÚMERO: 003/97 DATA: 09/12/97 PROJETO: Paraquedas de madeira OBJETIVO: Verificar a produtividade da linha de montagem concebida para a área de teste funcional e propor alterações para a melhoria da sua produtividade. DESCRIÇÃO DO SISTEMA INICIAL : Uma linha de teste composta por cinco estações de testes e de três operadores. SOLUÇÃO PROPOSTA: A adoção de seis estações de testes com dois operadores e com arranjo em linha ou opostos. CONCLUSÕES: Cinco estações, no conceito adotado para um tempo de teste automático
de 100 segundos, não são suficientes. Pode-se utilizar dois operadores, em vez de três, com queda de produtividade de apenas 2%; o modelo com estações em linha e o modelo com estações opostas são equivalentes.
SOFTWARE UTILIZADO : xxxxxxxx
INTRODUÇÃO O modelo de simulação da área de testes da linha de montagem para o projeto Da Vinci foi construído porque se suspeitava que a área de testes poderia ser um ponto de gargalo no sistema. Pretendeu-se neste estudo analisar a capacidade de produção da linha, o nível de utilização dos operadores e propor alterações no arranjo ( layout ) das estações.
DESCRIÇÃO DOS SISTEMAS SIMULADOS No layout inicial (CFG 1), previam-se cinco estações de testes e três operadores, como ilustra a Figura IV.1. Ao chegar ao ponto 1, o produto tem duas alternativas: se uma estação está livre, então ele se dirige para ela; caso contrário, espera neste ponto até que algum produto seja liberado. Quando o produto chega à estação, um operador realiza todas as conexões necessárias e inicia-se o teste (feito de modo automático pelotimer da máquina). Após o teste, um operador desconecta o produto da estação, aprova ou reprova o seu funcionamento, liberando-o em seguida. Os tempos nominais para este teste estão mostrados na Tabela IV.1. No Anexo 1 deste relatório, encontram-se os dados coletados e o
procedimento de escolha das distribuições probabilísticas. Tabela IV.1 – Tempos nomina is de teste
Operador
Manual (M) ou Automátic o (A)
Tempo nominal (segundos)
Distribuição adotada (segundos)
1
M
10
Triangular (9,10,11.5)
2
A
100
100 (constante)
3
M
15
Triangular(13.5,15,17.25)
Cada operador tem eficiência de 85%,“livre” o quepode significa que, em do tempo, está indisponível. Cadauma operador em estado trabalhar em 15% qualquer estação,ele mas, se ele conectou um determinado produto, o mesmo operador deve realizar sua desconexão.
Figura IV.1 – Configuração 1.
A linha possui espaço para dois buffers antes das estações e para dois buffers depois. A configuração 2 (CFG 2) é análoga à configuração 1 para dois operadores. A configuração 3 (CFG 3) é a configuração com seis estações em linha e três operadores. A configuração 4 (CFG 4) é análoga à configuração 2, contemplando somente dois operadores. A diferença entre as configurações 4a e 4b deve-se ao fato de que, no primeiro caso, qualquer operador pode trabalhar em qualquer estação, e, no segundo, cada operador é dedicado às três estações. A configuração 5 (CFG 5) também possui seis estações dispostas em lados opostos da linha, com a adição de um girador. Todas essas configurações estão representadas na Figura IV.2.
Figura IV.2 – Configurações utilizadas no projeto.
Para a linha de montagem, foram adotados os valores descritos na Tabela IV.2. Tabela IV.2 – Parâmetros adotad os na simulação
Parâmetro
Valo r
Velocidade da linha
20 m/min
Tempo de transferência Tempodegiro(nocasodaCFG5)
4,5 s s4
OBJETIVO DO ESTUDO Este estudo tem basicamente os seguintes objetivos: • Avaliar se o sistema atual consegue atender à produção prevista, que é de 120 produtos/hora; • Verificar o nível de utilização dos operadores e identificar se há possibilidade de se utilizarem dois operadores, em vez dos três utilizados atualmente; • Comparar as duas configurações propostas para o layout das estações: em linha o opostas. RESULTADOS OBTIDOS Foram feitas várias simulações no caso da configuração 1 (CFG 1), com o tempo de teste automático variando de 80 a 120 segundos, com o objetivo de verificar a sensibilidade da linha em relação a este parâmetro. Os resultados obtidos estão relacionados na Tabela IV.3. Tabela IV.3 – Produt ividad e da CFG1 em função do tempo de teste
Tempo de teste automático (segundos)
Produção ho rária média (produtos)
Produção horária média com reprocesso de 2% (produtos)
80
125,0
122,5
90
117,1
114,7
100
110,1
107,9
110
103,7
101,7
120
98,2
96,2
Se considerarmos um reprocesso de 2%, veremos que a produção horária nominal somente seria atingida com um tempo de teste de 80 segundos, sendo que a duração estimada desse teste é de 100 segundos (Tabela IV.1). Logo, pode-se concluir que a configuração 1 não atende aos requisitos de produção média previamente estabelecidos. A Tabela IV.4 apresenta os resultados finais da simulação das configurações 2, 3 e 4a, com tempo de teste igual a 100 segundos. Tabela IV.4 – Quadro comparativo entre as configurações 2,3 e 4a
CFG
Número Número de de operadores estações
Pro dução horária média (produtos)
Produção horária média com 2% de reprocesso (produtos)
1
5
3
110,1
107,9
2
5
2
107,8
105,6
3
6
3
129,0
126,4
4a
6
2
126,5
124,0
Nota-se, pela Tabela IV.4, que um aumento do número de estações de 5 para 6 gera um aumento da produção média de 19 produtos/hora (ou aproximadamente 15%), e uma diminuição de três operadores para dois gera uma diminuição de, aproximadamente, 2,5 produtos/hora (aproximadamente 2%), pois a utilização do terceiro operador é baixa (em torno de 10%). Dentre as configurações analisadas, a melhor solução é a configuração 4a. A próxima pergunta a ser respondida é: uma vez que a solução com seis estações e dois operadores é a melhor, qual seria o melhorlayout das estações, em linha (configuração 4b) ou opostas (configuração 5)? Para responder a essa pergunta, foram realizadas cinco replicações de 18 horas de duração para cada caso; os resultados estão relacionados na Tabela IV.5. A diferença de produção horária entre as duas configurações (com 95% de confiança) está no intervalo [-0,576; 0,1764], o que demonstra que os dois modelos são equivalentes em termos de produtividade. Tabela IV.5 – Quadro comparativo entre as configurações 4b e 5
Replicações CFG
1
2
3
4
5
Média
4b
125,53
124,88
123,88
124,88
124,94
124,82
5
125,59
124,94
124,82
125,00
124,76
125,02
Diferença
–0,059
–0,059
–0,941
–0,118
0,177
–0,200
CONCLUSÕES E RECOMENDAÇÕES As principais conclusões deste estudo, obtidas através da simulação dos cenários descritos neste relatório, estão sumarizadas a seguir: • Considerando que o tempo de teste no modo automático é de 100 segundos, o teste com cinco estações não supre as necessidades de produção média horária (120 produtos/hora). Deve-se considerar, portanto, o uso de seis estações; • A eliminação de um operador diminui a produtividade em apenas 2%. Como a taxa de utilização do operador é baixa, a melhor configuração é a com dois operadores; • Não há diferenças significativas entre as configurações delayout com estações colocadas em linha ou em lados opostos; • As configurações 4b e 5 possuem eficiências de 85%, considerando 2% de reprocesso (122,5/144).
Referências bibliográficas ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. NBR 10719 (NB 887): Apresentação de Relatórios Técnicos e Científicos. Rio de Janeiro: ABNT, 1989. GASS, Saul I. Documenting a computer-based model.Interfaces , v. 14, n. 3, p. 84-93, 1984. OSCARSSON, Jan; MORIS, Matias Urenda. Documentation of discrete event simulatio models for manufacturing system life cycle simulation. Proceedings of the 2002 Winter Simulation Conference, p. 1073-1078, 2002. RICHTER, Hendrick; MÄRZ, Lothar. Toward a standard process: the use of UML for designing simulation models.Proceedings of the 2000 Winter Simulation Conference, p. 394-398, 2000.
Bibliograf ia Complem entar Uma boa referência sobre estudos de casos e a elaboração de relatórios de projetos é: LAPIN, Lawrence L.; WHISLER, D. Willian.Cases in management science. Sa Francisco: Duxbury Press, 1996.
Apêndice V
Especif icação do modelo de sim ulação
Ao final do Capítulo 3, comentamos sobre a finalidade e o conteúdo da especificação do modelo de simulação. Este Apêndice apresenta um exemplo real da documentação da especificação do modelo. O objetivo aqui é oferecer ao leitor um possível modelo de estruturação do documento para seu uso em projetos profissionais. Para facilitar o processo de catalogação das diversas informações pertinentes ao modelo, foi adotada a seguinte nomenclatura: • Toda hipótese é identificada pela letra H, seguida de um número sequencial. Por exemplo, “H2: A carga do caminhão é sempre fechada”; • Todo dado de entrada é identificado pela letra D, seguida de um número sequencial. Por exemplo, “D9: Tempo deset-up de linha”; • As frases devem ser preferencialmente curtas, para facilitar tanto o processo de
comunicação dentro da equipe quanto a validação conceitual. O material apresentado a seguir deve ser considerado apenas como sugestão de abordagem do problema da especificação, e não como uma referência definitiva sobre o assunto.1
Projeto: Avaliação do desenho logístico da Júpiter 2 em Alpha Centauri Especificação da Mode lagem Conce itual 1. Resumo, objetivos, escopo, nível de detalhamento e cenários a serem simulados 1.1. Objetivos: Avaliar o novo desenho logístico de recebimento e expedição de caminhões da fábrica da Júpiter 2 em Alpha Centauri. 1.2. Escopo do Modelo: Serão considerados dois processos básicos: o processo de recebimento de veículos e o processo de expedição. O processo de recebimento de caminhões será compreendido desde a entrada na portaria, verificação de nota fiscal, pesagem, desenlonamento, descarregamento, pesagem e passagem pela portaria. No processo de expedição, serão consideradas as atividades de entrada na portaria, passagem pela balança, carregamento, emissão de nota fiscal, pesagem de retorno e liberação na portaria. O estudo do bolsão de estacionamento não pertence ao escopo do escopo do modelo. 1.3. Nível de Detalhamento: Cada processo será modelado por seus tempos globais
entre o início e o fim da operação. A demanda de veículos com peças de máquinas de envase, veículos de sucata, veículos de PP, será considerada como demanda que contribui para a ocupação dos recursos na portaria e balança. 1.4. Cenários a serem simulados: • Cenário Base: cenário de validação com os volumes praticados atualmente; • Cenário Futuro 1: projeção de volumes para o ano de 2015; • Cenário Futuro 2: projeção de volumes para o ano de 2020. 1.5. Período a ser simulado:corresponde ao período de maior movimento – do dia 25 ao último dia cada mês. A operação é contínua durante as 24 horas do dia.
2. De scrição do mode lo 2.1. Tipos de caminhões 2.1.1. Recebimento • Toco; • Truck; • Carreta. 2.1.2. Expedição • Toco; • Truck; • Carreta; • Exportação.
2.1.3. Outros (sucata, PP, PE etc.) Observação: considerar as hipóteses H1, H2 e H6. 2.2. Descrição dos processos 2.2.1. Recebimento Os caminhões de recebimento chegam à portaria de acordo com uma taxa de chegadas diária e aguarda até a liberação da portaria, que possui um número fixo de recursos. A seguir, o caminhão realiza as seguintes atividades em sequência: pesagem, desenlonamento, deslocamento até uma doca livre e descarregamento. Após o descarregamento, o caminhão se desloca novamente para a balança e aguarda até a liberação por parte da portaria. Todos os tempos são dependentes do tipo de caminhão. 2.2.2. Expedição Os caminhões de expedição chegam à portaria de acordo com uma taxa de chegadas diária e aguarda até a liberação da portaria, que possui um número fixo de recursos. A seguir, o caminhão realiza as seguintes atividades em sequência: pesagem, preparação (abertura do sider ), deslocamento até uma doca livre de expedição – para contêineres existem docas dedicadas –, expedição, emissão da nota fiscal. Após a expedição, o caminhão se desloca novamente para a balança e aguarda até a liberação por parte da portaria. Todos os tempos são dependentes do tipo de caminhão. 2.2.3. Outros
Existe um fluxo de caminhões que utilizam os recursos da portaria e da balança. Eles têm uma taxa de chegada diária, um tempo de liberação de portaria, um tempo de pesagem, um tempo estimado de permanência na fábrica e um tempo de liberação na portaria de saída. Para segurança das operações, existe uma limitação no número de processos simultâneos de expedição e recebimento. Deve-se considerar a existência de um certo número de caminhões adicionais que ocupam as docas. As empilhadeiras podem interferir nos fluxos dos caminhões de expedição ou recebimento gerando um bloqueio (espera para passagem). Há um ponto de bloqueio localizado no início da via – hipóteses H5 e H7. 2.2.4. Recursos customizáveis • Número de balanças; • Número de pontos de enlonamento; • Número de pontos de abertura desider ; • Número de docas de expedição (normal e contêiner); • Número de docas de recebimento; • Número de funcionários na portaria (24 h); • Funcionários para emissão de nota fiscal (24 h).
3. Hipóteses de Modelagem • H1: Os caminhões de recebimento do tipo carreta serão considerados com lona, e os de expedição serão considerados do tipo sider ;
• H2: Os tempos de deslocamentos internos são desprezíveis. No entanto, serão consideradas as interferências da empilhadeiras em circulação como bloqueios ao deslocamento; • H3: Não sazonalidade durante o período de simulação, mas as taxas diárias de chegadas dos caminhões variam ao longo do dia; • H4: Serão desprezados os fluxos de caminhões de devolução e de logística reversa; • H5: As empilhadeiras, utilizadas no carregamento e descarregamento, estão sempre disponíveis para a operação; no entanto, a sua movimentação interna gera bloqueios nos deslocamentos dos caminhões; • H6: Serão considerados apenas caminhões para contêineres de 40 pés; • H7: Serão considerados caminhões adicionais, externos às operações em análise, mas que gerarão bloqueio nas docas de expedição. Esses caminhões não terão o seu fluxo completo modelado, mas apenas a sua interferência nas docas de expedição.
4. Dados de saída (resultados da simulação) 4.1. Tempos médio e máximo de espera dos caminhões;números médio e máximo de caminhões e m e spe ra, para os se guinte s proce ssos: • Entrar na portaria; • Pesar (entrada); • Pesar (saída); • Enlonar;
• Abrir sider ; • Descarregar (caminhões de recebimento); • Carregar (caminhões de expedição); • Emitir nota fiscal (caminhões de expedição); • Passar por ponto de bloqueio. 4.2. Taxas de ocupação dos seguintes recursos: • Balança; • Docas de recebimento; • Docas de expedição; • Pontos de enlonamento; • Ponto de abertura sider ; • Funcionários da portaria; • Funcionários de emissão de nota fiscal. 4.3. Outros: • Caminhões que não entraram por falta de capacidade da fábrica.
5. ANEXOS 5.1. Dados de e ntrada f orne cidos • D1: Taxa de chegadas de caminhões ao longo do dia Número de caminhões
Intervalo
Recebimento
Expedição
Outro s
00:00 04:00 –h
8,4
6,5
1,2
04:00 08:00 – h
10,4
8,6
3,4
08:00 12:00 – h
22,6
20,2
16,2
12:00 16:00 – h
18,5
17,2
14,2
16:00 20:00 –h
6,4
5,8
2,0
20:00 24:00 –h
3,2
2,5
1,0
• D2: Tempos operacionais na fábrica Caminhões Recebimento Tempo s
Expedição
Mínimo
Mo d a
Máximo
Mínimo
Mo d a
Máximo
Portaria (entrada) (h)
5,0
7,0
10,0
2,0
2,5
4,0
Pesagem (ida ou volta) (h)
0,5
1,0
5,0
0,5
1,0
5,0
Toco (h) 1.
3,5
4,0
4,5
Truck 2.(h)
3,0
4,0
5,0
3. Carreta (h)
25
30
40
3,0
5,0
6,0
4. Contêiner (h)
Recebimento (h) Toco 1. (h)
20
30
40
95
120
130
2. Truck (h)
20
30
40
100
130
150
3. Carreta (h)
20
30
40
120
150
180
4.Contêiner(h)
150
180
210
150
Emissão de nota fiscal (h) Portaria (saída) (h)
0,5
1,0
2,0
180
210
15
60
120
4,0
5,0
7,0
• D3: Outros parâmetros relevantes Parâmetro sdiverso s
Valo r
Número de funcionários na portaria (24 h)
3
Número de balanças
2
Número de locais de desenlonamento
3
Número de locais para abertura de sider
3
Número de docas de recebimento
3
Número de docas de expedição
2
Número de funcionários para emissão de nota fiscal (24 h) Máximodecaminhõespermitidosnafábrica Fluxo de empilhadeiras Tempo mínimo de bloqueio
5 500caminhões 66 emp./h 30 min
6. Re visões de ste docume nto • 04/09/2008 – Criação inicial do documento – Will Robson e Robô • 20/09/2008 – Revisão do Documento – Dr. Zachary Smith
Apêndice VI
Tabelas
Tabela de Números Aleatórios 8147 9595 9502
3404
1966
1299
3998
2399
9058
6557
0344
5853
2511
5688
2599
1233
1270
0357
4387
2238
6160
4694
8001
1839
9134
8491
3816
7513
4733
0119
4314
2400
6324
9340
7655
2551
3517
3371
9106
4173
0975
6787
7952
5060
8308
9133
1818
0497
2785
7577
1869
6991
5853
1524
2638
9027
5469
7431
4898
8909
5497
8258
1455
9448
9575
3922
4456
9593
9172
5383
1361
4909
9649
6555
6463
5472
2858
9961
8693
4893
1576
1712
7094
1386
7572
0782
5797
3377
9706
7060
7547
1493
7537
4427
5499
9001
9572
0318
2760
2575
3804
1067
1450
3692
4854
2769
6797
8407
5678
9619
8530
1112
8003
0462
6551
2543
0759
0046
6221
7803
1419
0971
1626
8143
0540
7749
3510
3897
4218 9157
8235 6948
1190 4984
2435 9293
5308 7792
8173 8687
5132 4018
2417 4039
7922
3171
9597
3500
9340
0844
0760
0965
1320
1690
1835
3063
9390
1948
9797
1174
9421
6491
3685
5085
8759
2259
4389
2967
9561
7317
6256
5108
5502
1707
1111
3188
5752
6477
7802
8176
6225
2277
2581
4242
0598
4509
0811
7948
5870
4357
4087
5079
2348
5470
9294
6443
2077
3111
5949
0855
3532
2963
7757
3786
3012
9234
2622
2625
8212
7447
4868
8116
4709
4302
6028
8010
0154
1890
4359
5328
2305
1848
7112
0292
0430
6868
4468
3507
8443
9049
2217
9289
7303
9037
0967
1062
3689
0225
2810
7702
4886
8909
8181
3724
4607
4253
4401
3225
5785
3342
8175
1981
9816
3127
5271
7847
2373
6987
7224
4897
1564
1615
4574
4714
4588 9631
1978 0305
1499 6596
3395 9516
8555 6448
1788 4229
8754 5181
0358 1759
5468
7441
5186
9203
3763
0942
9436
7218
5211
5000
9730
0527
1909
5985
6377
4735
2316
4799
6490
7379
4283
4709
9577
1527
4889
9047
8003
2691
4820
6959
2407
3411
6241
6099
4538
4228
1206
6999
6761
6074
6791
6177
4324
5479
5895
6385
2891
1917
3955
8594
8253
9427
2262
0336
6718
7384
3674
8055
0835
4177
3846
0688
6951
2428
9880
5767
1332
9831
5830
3196
0680
9174
0377
1829
1734
3015
2518
5309
2548
2691
8852
2399
3909
7011
2904
6544
2240
7655
9133
8865
8314
6663
6171
4076
6678
1887
7962
0287
8034
5391
2653
8200
8444
2875
0987
4899
0605
6981
8244
7184
3445
0911
Áreas da Distribuição Normal Padrão
z
0, 00
0, 01
0, 02
0,03
0,04
0,05
0,06
0,07
0, 08
0, 09
–3,40 0,0003 0,0003 0,0003 0,0003 0,0003 0,0003 0,0003 0,0003 0,0003 0,0002 –3,30 0,0005 0,0005 0,0005 0,0004 0,0004 0,0004 0,0004 0,0004 0,0004 0,0003 –3,20 0,0007 0,0007 0,0006 0,0006 0,0006 0,0006 0,0006 0,0005 0,0005 0,0005
–3,10 0,0010 0,0009 0,0009 0,0009 0,0008 0,0008 0,0008 0,0008 0,0007 0,0007 –3,00 0,0013 0,0013 0,0013 0,0012 0,0012 0,0011 0,0011 0,0011 0,0010 0,0010 –2,90 0,0019 0,0018 0,0018 0,0017 0,0016 0,0016 0,0015 0,0015 0,0014 0,0014 –2,80 0,0026 0,0025 0,0024 0,0023 0,0023 0,0022 0,0021 0,0021 0,0020 0,0019 –2,70 0,0035 0,0034 0,0033 0,0032 0,0031 0,0030 0,0029 0,0028 0,0027 0,0026 –2,60 0,0047 0,0045 0,0044 0,0043 0,0041 0,0040 0,0039 0,0038 0,0037 0,0036 –2,50 0,0062 0,0060 0,0059 0,0057 0,0055 0,0054 0,0052 0,0051 0,0049 0,0048 –2,40 0,0082 0,0080 0,0078 0,0075 0,0073 0,0071 0,0069 0,0068 0,0066 0,0064 –2,30 0,0107 0,0104 0,0102 0,0099 0,0096 0,0094 0,0091 0,0089 0,0087 0,0084 –2,20 0,0139 0,0136 0,0132 0,0129 0,0125 0,0122 0,0119 0,0116 0,0113 0,0110 –2,10 0,0179 0,0174 0,0170 0,0166 0,0162 0,0158 0,0154 0,0150 0,0146 0,0143 –2,00 0,0228 0,0222 0,0217 0,0212 0,0207 0,0202 0,0197 0,0192 0,0188 0,0183 –1,90 0,0287 0,0281 0,0274 0,0268 0,0262 0,0256 0,0250 0,0244 0,0239 0,0233 –1,80 0,0359 0,0351 0,0344 0,0336 0,0329 0,0322 0,0314 0,0307 0,0301 0,0294 –1,70 0,0446 0,0436 0,0427 0,0418 0,0409 0,0401 0,0392 0,0384 0,0375 0,0367 –1,60 0,0548 0,0537 0,0526 0,0516 0,0505 0,0495 0,0485 0,0475 0,0465 0,0455
–1,50 0,0668 0,0655 0,0643 0,0630 0,0618 0,0606 0,0594 0,0582 0,0571 0,0559 –1,40 0,0808 0,0793 0,0778 0,0764 0,0749 0,0735 0,0721 0,0708 0,0694 0,0681 –1,30 0,0968 0,0951 0,0934 0,0918 0,0901 0,0885 0,0869 0,0853 0,0838 0,0823 –1,20 0,1151 0,1131 0,1112 0,1093 0,1075 0,1056 0,1038 0,1020 0,1003 0,0985 –1,10 0,1357 0,1335 0,1314 0,1292 0,1271 0,1251 0,1230 0,1210 0,1190 0,1170 –1,00 0,1587 0,1562 0,1539 0,1515 0,1492 0,1469 0,1446 0,1423 0,1401 0,1379 –0,90 0,1841 0,1814 0,1788 0,1762 0,1736 0,1711 0,1685 0,1660 0,1635 0,1611 –0,80 0,2119 0,2090 0,2061 0,2033 0,2005 0,1977 0,1949 0,1922 0,1894 0,1867 –0,70 0,2420 0,2389 0,2358 0,2327 0,2296 0,2266 0,2236 0,2206 0,2177 0,2148 –0,60 0,2743 0,2709 0,2676 0,2643 0,2611 0,2578 0,2546 0,2514 0,2483 0,2451 –0,50 0,3085 0,3050 0,3015 0,2981 0,2946 0,2912 0,2877 0,2843 0,2810 0,2776 –0,40 0,3446 0,3409 0,3372 0,3336 0,3300 0,3264 0,3228 0,3192 0,3156 0,3121 –0,30 0,3821 0,3783 0,3745 0,3707 0,3669 0,3632 0,3594 0,3557 0,3520 0,3483 –0,20 0,4207 0,4168 0,4129 0,4090 0,4052 0,4013 0,3974 0,3936 0,3897 0,3859 –0,10 0,4602 0,4562 0,4522 0,4483 0,4443 0,4404 0,4364 0,4325 0,4286 0,4247 Áreas da Distribuição Normal Padrão (continuação)
z
0, 00
0, 01
0, 02
0, 03
0, 04
0, 05
0, 06
0,07
0,08
0,09
0,00 0,5000 0,5040 0,5080 0,5120 0,5160 0,5199 0,5239 0,5279 0,5319 0,5359 0,10 0,5398 0,5438 0,5478 0,5517 0,5557 0,5596 0,5636 0,5675 0,5714 0,5753 0,20 0,5793 0,5832 0,5871 0,5910 0,5948 0,5987 0,6026 0,6064 0,6103 0,6141 0,30 0,6179 0,6217 0,6255 0,6293 0,6331 0,6368 0,6406 0,6443 0,6480 0,6517 0,40 0,6554 0,6591 0,6628 0,6664 0,6700 0,6736 0,6772 0,6808 0,6844 0,6879 0,50 0,6915 0,6950 0,6985 0,7019 0,7054 0,7088 0,7123 0,7157 0,7190 0,7224 0,60 0,7257 0,7291 0,7324 0,7357 0,7389 0,7422 0,7454 0,7486 0,7517 0,7549 0,70 0,7580 0,7611 0,7642 0,7673 0,7704 0,7734 0,7764 0,7794 0,7823 0,7852 0,80 0,7881 0,7910 0,7939 0,7967 0,7995 0,8023 0,8051 0,8078 0,8106 0,8133 0,90 0,8159 0,8186 0,8212 0,8238 0,8264 0,8289 0,8315 0,8340 0,8365 0,8389 1,00 0,8413 0,8438 0,8461 0,8485 0,8508 0,8531 0,8554 0,8577 0,8599 0,8621 1,10 0,8643 0,8665 0,8686 0,8708 0,8729 0,8749 0,8770 0,8790 0,8810 0,8830 1,20 0,8849 0,8869 0,8888 0,8907 0,8925 0,8944 0,8962 0,8980 0,8997 0,9015 1,30 0,9032 0,9049 0,9066 0,9082 0,9099 0,9115 0,9131 0,9147 0,9162 0,9177 1,40 0,9192 0,9207 0,9222 0,9236 0,9251 0,9265 0,9279 0,9292 0,9306 0,9319 1,50 0,9332 0,9345 0,9357 0,9370 0,9382 0,9394 0,9406 0,9418 0,9429 0,9441
1,60 0,9452 0,9463 0,9474 0,9484 0,9495 0,9505 0,9515 0,9525 0,9535 0,9545 1,70 0,9554 0,9564 0,9573 0,9582 0,9591 0,9599 0,9608 0,9616 0,9625 0,9633 1,80 0,9641 0,9649 0,9656 0,9664 0,9671 0,9678 0,9686 0,9693 0,9699 0,9706 1,90 0,9713 0,9719 0,9726 0,9732 0,9738 0,9744 0,9750 0,9756 0,9761 0,9767 2,00 0,9772 0,9778 0,9783 0,9788 0,9793 0,9798 0,9803 0,9808 0,9812 0,9817 2,10 0,9821 0,9826 0,9830 0,9834 0,9838 0,9842 0,9846 0,9850 0,9854 0,9857 2,20 0,9861 0,9864 0,9868 0,9871 0,9875 0,9878 0,9881 0,9884 0,9887 0,9890 2,30 0,9893 0,9896 0,9898 0,9901 0,9904 0,9906 0,9909 0,9911 0,9913 0,9916 2,40 0,9918 0,9920 0,9922 0,9925 0,9927 0,9929 0,9931 0,9932 0,9934 0,9936 2,50 0,9938 0,9940 0,9941 0,9943 0,9945 0,9946 0,9948 0,9949 0,9951 0,9952 2,60 0,9953 0,9955 0,9956 0,9957 0,9959 0,9960 0,9961 0,9962 0,9963 0,9964 2,70 0,9965 0,9966 0,9967 0,9968 0,9969 0,9970 0,9971 0,9972 0,9973 0,9974 2,80 0,9974 0,9975 0,9976 0,9977 0,9977 0,9978 0,9979 0,9979 0,9980 0,9981 2,90 0,9981 0,9982 0,9982 0,9983 0,9984 0,9984 0,9985 0,9985 0,9986 0,9986 3,00 0,9987 0,9987 0,9987 0,9988 0,9988 0,9989 0,9989 0,9989 0,9990 0,9990 3,10 0,9990 0,9991 0,9991 0,9991 0,9992 0,9992 0,9992 0,9992 0,9993 0,9993
3,20 0,9993 0,9993 0,9994 0,9994 0,9994 0,9994 0,9994 0,9995 0,9995 0,9995 3,30 0,9995 0,9995 0,9995 0,9996 0,9996 0,9996 0,9996 0,9996 0,9996 0,9997 3,40 0,9997 0,9997 0,9997 0,9997 0,9997 0,9997 0,9997 0,9997 0,9997 0,9998 Valores Críticos para a Distribuiçãot de Student
α
ν
0,1
0,05
0,025
0,01
0,005
0,001
0,0005
1
3,08
6,31
12,71
31,82
63,66
318,29
636,58
2
1,89
2,92
4,30
6,96
9,92
22,33
31,60
3
1,64
2,35
3,18
4,54
5,84
10,21
12,92
4
1,53
2,13
2,78
3,75
4,60
7,17
8,61
5
1,48
2,02
2,57
3,36
4,03
5,89
6,87
6
1,44
1,94
2,45
3,14
3,71
5,21
5,96
7
1,41
1,89
2,36
3,00
3,50
4,79
5,41
8
1,40
1,86
2,31
2,90
3,36
4,50
5,04
9
1,38
1,83
2,26
2,82
3,25
4,30
4,78
10
1,37
1,81
2,23
2,76
3,17
4,14
4,59
11
1,36
1,80
2,20
2,72
3,11
4,02
4,44
12
1,36
1,78
2,18
2,68
3,05
3,93
4,32
13
1,35
1,77
2,16
2,65
3,01
3,85
4,22
14
1,35
1,76
2,14
2,62
2,98
3,79
4,14
15
1,34
1,75
2,13
2,60
2,95
3,73
4,07
16
1,34
1,75
2,12
2,58
2,92
3,69
4,01
17
1,33
1,74
2,11
2,57
2,90
3,65
3,97
18
1,33
1,73
2,10
2,55
2,88
3,61
3,92
19
1,33
1,73
2,09
2,54
2,86
3,58
3,88
20
1,33
1,72
2,09
2,53
2,85
3,55
3,85
21
1,32
1,72
2,08
2,52
2,83
3,53
3,82
22
1,32
1,72
2,07
2,51
2,82
3,50
3,79
23
1,32
1,71
2,07
2,50
2,81
3,48
3,77
24
1,32
1,71
2,06
2,49
2,80
3,47
3,75
25
1,32
1,71
2,06
2,49
2,79
3,45
3,73
26
1,31
1,71
2,06
2,48
2,78
3,43
3,71
27
1,31
1,70
2,05
2,47
2,77
3,42
3,69
28
1,31
1,70
2,05
2,47
2,76
3,41
3,67
29
1,31
1,70
2,05
2,46
2,76
3,40
3,66
30
1,31
1,70
2,04
2,46
2,75
3,39
3,65
32
1,31
1,69
2,04
2,45
2,74
3,37
3,62
34
1,31
1,69
2,03
2,44
2,73
3,35
3,60
36 38
1,31 1,30
1,69 1,69
2,03 2,02
2,43 2,43
2,72 2,71
3,33 3,32
3,58 3,57
40
1,30
1,68
2,02
2,42
2,70
3,31
3,55
42
1,30
1,68
2,02
2,42
2,70
3,30
3,54
44
1,30
1,68
2,02
2,41
2,69
3,29
3,53
46
1,30
1,68
2,01
2,41
2,69
3,28
3,51
48
1,30
1,68
2,01
2,41
2,68
3,27
3,50
50
1,30
1,68
2,01
2,40
2,68
3,26
3,50
52
1,30
1,67
2,01
2,40
2,67
3,25
3,49
54
1,30
1,67
2,00
2,40
2,67
3,25
3,48
56
1,30
1,67
2,00
2,39
2,67
3,24
3,47
58
1,30
1,67
2,00
2,39
2,66
3,24
3,47
60
1,30
1,67
2,00
2,39
2,66
3,23
3,46
120
1,29
1,66
1,98
2,36
2,62
3,16
3,37
inf
1,28
1,64
1,96
2,33
2,58
3,09
3,29
Valores Críticos para a Distribuição do Qui-quadrado
α
ν
0,995
0,99
0,975
0,95
0,90
0,10
0,05
0,025
0,01
0,005
1
0,00
0,00
0,00
0,00
0,02
2,71
3,84
5,02
6,63
7,88
2
0,01
0,02
0,05
0,10
0,21
4,61
5,99
7,38
9,21
10,60
3
0,07
0,11
0,22
0,35
0,58
6,25
7,81
9,35
11,34
12,84
4
0,21
0,30
0,48
0,71
1,06
7,78
9,49
11,14
13,28
14,86
5
0,41
0,55
0,83
1,15
1,61
9,24
11,07
12,83
15,09
16,75
6
0,68
0,87
1,24
1,64
2,20
10,64
12,59
14,45
16,81
18,55
7
0,99
1,24
1,69
2,17
2,83
12,02
14,07
16,01
18,48
20,28
8
1,34
1,65
2,18
2,73
3,49
13,36
15,51
17,53
20,09
21,95
9
1,73
2,09
2,70
3,33
4,17
14,68
16,92
19,02
21,67
23,59
10
2,16
2,56
3,25
3,94
4,87
15,99
18,31
20,48
23,21
25,19
11 12
2,60 3,07
3,05 3,57
3,82 4,40
4,57 5,23
5,58 6,30
17,28 18,55
19,68 21,03
21,92 23,34
24,73 26,22
26,76 28,30
13
3,57
4,11
5,01
5,89
7,04
19,81
22,36
24,74
27,69
29,82
14
4,07
4,66
5,63
6,57
7,79
21,06
23,68
26,12
29,14
31,32
15
4,60
5,23
6,26
7,26
8,55
22,31
25,00
27,49
30,58
32,80
16
5,14
5,81
6,91
7,96
9,31
23,54
26,30
28,85
32,00
34,27
17
5,70
6,41
7,56
8,67
10,09
24,77
27,59
30,19
33,41
35,72
18
6,26
7,01
8,23
9,39
10,86
25,99
28,87
31,53
34,81
37,16
19
6,84
7,63
8,91
10,12
11,65
27,20
30,14
32,85
36,19
38,58
20
7,43
8,26
9,59
10,85
12,44
28,41
31,41
34,17
37,57
40,00
21
8,03
8,90
10,28
11,59
13,24
29,62
32,67
35,48
38,93
41,40
22
8,64
9,54
10,98
12,34
14,04
30,81
33,92
36,78
40,29
42,80
23
9,26
10,20
11,69
13,09
14,85
32,01
35,17
38,08
41,64
44,18
24
9,89
10,86
12,40
13,85
15,66
33,20
36,42
39,36
42,98
45,56
25
10,52
11,52
13,12
14,61
16,47
34,38
37,65
40,65
44,31
46,93
26
11,16
12,20
13,84
15,38
17,29
35,56
38,89
41,92
45,64
48,29
27
11,81
12,88
14,57
16,15
18,11
36,74
40,11
43,19
46,96
49,65
28 29
12,46 13,12
13,56 14,26
15,31 16,05
16,93 17,71
18,94 19,77
37,92 39,09
41,34 42,56
44,46 45,72
48,28 49,59
50,99 52,34
30
13,79
14,95
16,79
18,49
20,60
40,26
43,77
46,98
50,89
53,67
31
14,46
15,66
17,54
19,28
21,43
41,42
44,99
48,23
52,19
55,00
32
15,13
16,36
18,29
20,07
22,27
42,58
46,19
49,48
53,49
56,33
33
15,82
17,07
19,05
20,87
23,11
43,75
47,40
50,73
54,78
57,65
34
16,50
17,79
19,81
21,66
23,95
44,90
48,60
51,97
56,06
58,96
35
17,19
18,51
20,57
22,47
24,80
46,06
49,80
53,20
57,34
60,27
36
17,89
19,23
21,34
23,27
25,64
47,21
51,00
54,44
58,62
61,58
37
18,59
19,96
22,11
24,07
26,49
48,36
52,19
55,67
59,89
62,88
38
19,29
20,69
22,88
24,88
27,34
49,51
53,38
56,90
61,16
64,18
39
20,00
21,43
23,65
25,70
28,20
50,66
54,57
58,12
62,43
65,48
40
20,71
22,16
24,43
26,51
29,05
51,81
55,76
59,34
63,69
66,77
>40
Valores Críticos para o Teste de Kolmogorov-Smirnov
n
0,10 α =
Nível de significância 0,05 α =
0,01 α =
1
0,900
0,975
0,995
2
0,684
0,842
0,929
3
0,565
0,708
0,829
4
0,493
0,624
0,734
5
0,447
0,563
0,669
6
0,410
0,519
0,617
7
0,381
0,483
0,576
8
0,358
0,454
0,542
9
0,339
0,430
0,513
10
0,323
0,409
0,489
11
0,308
0,391
0,468
12
0,296
0,375
0,449
13
0,285
0,361
0,432
14
0,275
0,349
0,418
15
0,266
0,338
0,404
16 17
0,258 0,250
0,327 0,318
0,392 0,381
18
0,244
0,309
0,371
19
0,237
0,301
0,361
20
0,232
0,294
0,352
25
0,208
0,264
0,317
30
0,190
0,242
0,290
35
0,177
0,224
0,269
40
0,165
0,210
0,252
n>40
Apêndice VII
Distribuições estatísticas
VII.1. Distribuições discretas Binomial ( p, n)
Parâmetros:
p: probabilidade de sucesso en é o número de tentativas.
Domínio:
Distribuição discreta: x = 0, 1, 2, ..., n
Função
densidade de probabilidade:
Média: Variância:
np np(1 – p)
Modelam o número de sucessos em um conjunto den tentativas, por exemplo: o Aplicações número de itens dentro de uma ordem de serviço, número de defeitos em um lote mais comuns: etc.
Poisson (λ)
Parâmetros:
λ: média, número positivo real
Domínio:
Distribuição discreta: x = 1, 2, 3, ...
Função densidade de probabilidade: Média:
λ
Variância:
λ
Modelam o número de eventos independentes que ocorrem em um intervalo de tempo fixo; por exemplo, o número de gols que ocorrem em uma partida de futebol. Aplicações Se o número de eventos que ocorrem em um intervalo de tempo fixo é um processo mais comuns: de Poisson, então o tempo entre ocorrências sucessivas desses eventos é exponencialmente distribuído.
VII.2. Distribuições contínuas Poisson (α, β)
Parâmetros:
Parâmetros de forma β e α.
Domínio:
0≤ x ≤ 1 (ou [a,b] através da transformação:y = b + ( b – a) x)
Função densidade de probabilidade: Onde B é a função beta completa:
Média:
Variância: Modelam os tempos de conclusão de atividades em redes de planejamento Aplicações mais (PERT). Devido à sua flexibilidade, são muito utilizadas quando não se dispõe de comuns: dados reais coletados.
Poisson (λ, k)
Parâmetros:
λ: taxa de ocorrências e k: parâmetro de forma.
Domínio:
x≥ 0
Função densidade de probabilidade: Média:
Variância: Aplicações mais comuns:
Modelam processos compostos por fases sucessivas nas quais cada fase tem uma distribuição exponencial. Teoria das Filas.
Poisson (λ)
Parâmetros:
λ: taxa de ocorrências.
Domínio:
x≥0
Função densidade de probabilidade: Média: Variância:
Aplicações
Modelam os tempos entre ocorrências sucessivas de eventos ou a duração do evento, por exemplo: chegadas sucessivas de clientes em um banco, tempo entre gols sucessivos em uma partida de futebol etc.
mais comuns: Se o tempo entre de um eventoemé certo exponencialmente distribuído, então ocorrências o número desucessivas eventos que ocorrem intervalo de tempo é um processo de Poisson.
Gama (α, β)
Parâmetros:
α: parâmetro de forma e β: parâmetro de escala.
Domínio:
0< x < +∞
Função densidade de probabilidade:
Onde Γ(α) é a função gama completa: Média:
αβ
Variância:
αβ2
Aplicações mais comuns:
Devido à sua flexibilidade, modelam os tempos entre ocorrências sucessivas de eventos, duração de eventos, tempo entre falhas sucessivas etc.
Lognormal (µ, σ2)
Parâmetros:
µ: parâmetro de escala ou de posição e σ: parâmetro de forma ou de dispersão; números positivos reais.
Domínio:
0 ≤ x < +∞
Função densidade de probabilidade:
Média: Variância: Modelam situações em que a distribuição do processo envolvido pode ser considerada como a multiplicação de um conjunto de processos componentes. Se Aplicações uma variável aleatória X tem distribuição lognormal com parâmetros µ e σ, então, mais comuns: ln(X) tem uma distribuição normal com média µ e desvio-padrão σ. Note que µ e σ não são a média e o desvio-padrão deX, mas a média e o desvio-padrão de ln(X). 2
Normal (µ, σ )
Parâmetros:
σ2: variância e µ: média; número positivo real.
Domínio:
0 ≤ x < +∞
Função densidade de probabilidade: Média:
µ
Variância:
σ2 Modelam situações em que a distribuição do processo envolvido pode ser
Aplicações considerada como a soma de um conjunto de processos componentes. Por exemplo, mais comuns: o tempo execução de uma operação, que é a soma dos tempos de execução de etapas da operação.
Uniforme (a, b)
Parâmetros: Domínio:
a: menor valor e b: maior valor são números reais, tais quea < b a≤x≤b
Função densidade de probabilidade: Média: Variância: Aplicações mais comuns:
Triangular (a, m , b)
Modelam processos em que todos os valores em um intervalo a[ , b] têm igual probabilidade de ocorrência.
Parâmetros:
a: menor valor,b: maior valor em: valor que mais ocorre (moda) são números reais, tais que a < m < b.
Domínio:
a≤x≤b
Função densidade de probabilidade:
Média: Variância: Modelam situações em que não se conhece a forma exata da distribuição, mas Aplicações mais têm-se estimativas para o menor valor, para o valor mais provável de ocorrer e comuns: para o maior valor.
Weibull (α, β)
Parâmetros: Domínio:
α: parâmetro de forma e β: parâmetro de escala 0≤ x < +∞
Função densidade de probabilidade:
Média:
Variância:
onde Γ(α) é a função gama completa:
Aplicações mais comuns:
Modelam os tempos de vida ou de falha de equipamentos. A distribuição exponencial é um caso particular da distribuição de Weibull.
Apêndice VIII
Respostas de exercícios selecionados
Capítulo 1 2) a) Simulação contínua. A variável principal, consumo (medida em mm, por exemplo) varia continuamente com o tempo. b) Simulação discreta. O número de válvulas varia discretamente no tempo, dependendo da ocorrência de um evento “consumo” ou “abastecimento”. c) Simulação discreta. Todos os eventos (chegada de cliente, início de atendimento etc.) ocorrem em intervalos discretos de tempo. d) Simulação discreta. Todos os eventos (início de compra, fechamento de compra, recebimento etc.) ocorrem em intervalos discretos de tempo.
e ) Simulação discreta. Todos os eventos (pegar contêiner, carregar contêiner etc.) ocorrem em intervalos discretos de tempo. f) Simulação contínua. A variável principal altura da árvore (medida em m) varia continuamente com o tempo. g) Simulação discreta ou contínua dependendo do escopo. Se estivermos interessados somente no processo total de carregamento tem-se uma simulação discreta; por outro lado, se analisarmos o processo de carregamento de forma micro, isto é, considerando o nível do tanque ao longo do tempo, temos uma simulação contínua. h) Simulação contínua. O número da população varia continuamente com o tempo.
Capítulo 2 1) Levantamentos de tempos: • Tempos entre as chegadas sucessivas de clientes para os caixas normais; • Tempos entre as chegadas sucessivas de clientes para os caixas expressos; • Tempos de atendimento em um caixa expresso e em um caixa normal. O tempo de atendimento nos caixas deve ser marcado entre o instante de início de atendimento pelo caixa até o instante final de pagamento. Para os caixas expressos, seria conveniente anotar mais um instante: o de início de pagamento, pois, para o caixa expresso, o tempo de pagamento pode ser significativo. Deste modo, o tempo de atendimento seria o tempo de lançamento dos preços no caixa mais o tempo de
pagamento. 3) Levantamentos: • Tempos de encaixe da peça em cada operador; • Tempos entre chegadas sucessivas de peças para montagem. Obs.: Usualmente em linha com esteiras utiliza-se como parâmetro a velocidade da esteira e o número de peças/unidade de comprimento. 4) Triangular/Weibull/Uniforme/Lognormal/Exponencial/Normal. 5) Retirar 3 outliers da amostra: 2, 4.134 e o 10. Como o p-value é 0,67, não rejeitamos a hipótese de que os dados aderem ao modelo uniforme. 8) a) A prova de Inglês apresenta menor desvio padrão. b) A prova de Lógica, pois, além da média de 4,1 ser a maior (empatada com a prova de Inglês), ela apresenta uma mediana maior, indicando que a metade dos alunos tiveram uma nota superior a 6. c) Notar que o “2” é umoutlier .
9)
a) Distribuição normal b) Distribuição normal Número de gols: distribuição de Poisson. Intervalo entre gols: distribuição c) exponencial
d) Determinística (se o semáforo não for inteligente) e ) Exponencial f) Uniforme 12) a)
b) p-value = 0,20, portanto não podemos rejeitar a hipótese de aderência ao modelo exponencial. Como os tempos ocorrências sucessivasdedegols gols exponencialmente c) distribuídos; então, aentre probabilidade de ocorrência em são um intervalo de tempo é uma distribuição de Poisson com parâmetro λ=2,48. Assim:
13) Sim, pois o p-value é maior que 0,10.
Capítulo 3 1) Sistema não conservativo
2) Sistema não conservativo
4) Sistema conservativo
Capítulo 5 1) Não. Uma vez que o modelo acabou de ser implementado, ele se torna um modelo computacional (Fig.1.6). Para executar a simulação e colher resultados, o modelo necessariamente deve passar pelas etapas de validação e verificação para se tornar um modelo operacional. Só depois de se tornar um modelo operacional é que se pode
colher os resultados. 4) Algumas “ocorrências” comuns empubs podem acontecer, e não foram considerados no modelo do pub, por exemplo: a) Falta de chope (considerado como ilimitado); b) Clientes conversando entre si (no modelo os clientes só pedem ou bebem); c) Clientes indo ao banheiro; d) Garçonetes parando de trabalhar por algum motivo ; e ) Número de copos que o cliente gostaria de tomar no início da simulação pode mudar mediante o ambiente ou a qualidade do chope. 6) Para verificar se o modelo simulado representa o sistema real para a medida de desempenho “produtividade no sistema”, deve-se aplicar o teste estatístico descrito no exercício 5. Neste caso tem-se uma t de Student de 14 graus de liberdade, e o intervalo de confiança fica: 2,5 ± 2,25. Portanto, como o intervalo de confiança não contém o zero, o modelo não pode ser considerado válido.
Capítulo 6 1) a) Não terminal b) Não terminal
c) Terminal d) Não terminal e ) Não terminal f) Terminal g) Terminal 3) a) Mais estreito, aumenta a chance de que o intervalo não contenha a média. b) Incorreta, a confiança está relacionada com a chance de sucesso do experimento quando ele é repetido diversas vezes no tempo. c) Incorreta, a confiança está relacionada com a chance de sucesso do experimento quando ele é repetido diversas vezes no tempo. d) Correta. 6) 7) Transitório, não terminal; transitório, terminal; permanente, não terminal; permanente, não terminal; permanente, terminal; permanente, não terminal. 10) a)
a) Não terminal. b) 3.000 s c) --d) 0,045 cliente/s e 0,050 cliente/s e ) Não, pois chegariam mais clientes do que o sistema consegue atender. f) 0,91 g) Não. Como existe aleatoriedade tanto nos processos de chegadas quanto nos de atendimentos, o sistema não conseguiria atender aos clientes, surgindo o fenômeno da “fila infinita”.
Capítulo 7
4) O maior entrave para aumentar a utilização da ferramenta ainda é, sem dúvida, o tempo de processamento computacional. Isso está diminuindo com a utilização de processadores mais poderosos e computação paralela. 5) Variáveis de decisão: • Número de caminhões; • Número de carregadores. Função objetivo: • Minimizar o custo total de recursos (carregadores, caminhões) somado a possível multa de atraso do atendimento (contabilizado se a entrega demorar mais de 600 minutos, por exemplo)
Notas
Capítulo 1 1 Dicionário Houaiss da Língua Portuguesa . 1. ed., Rio de Janeiro: Objetiva, 2001. 2 Do inglês:tool of last resort (tradução livre). 3 Processo que visa certificar-se de que o modelo é uma boa representação da realidade. Esse assunto será discutido no Capítulo 5. 4 O Apêndice II apresenta uma introdução à Teoria das Filas.
. 5 First-in, first-out: o primeiro a chegar é o primeiro a ser atendido 6 “Se lixo entra, lixo sai”, o que quer dizer que, se os dados de entrada de um software (ou mesmo de um modelo de simulação) estão incorretos, é praticamente impossível obtermos dados de saída corretos. 7 A simulação é, em última análise, uma ferramenta da Pesquisa Operacional, ciência aplicada para a resolução de problemas complexos que surgem na gestão de grandes sistemas da indústria, negócios, governo e defesa. A Pesquisa
Operacional tem como foco a tomada de decisões por meio de modelos quantitativos. Assim, a simulação encaixa-se perfeitamente como uma ferramenta para a tomada de decisão. 8 Mainframe é um computador de grande porte utilizado para o processamento de grande volume de informações. Sua utilização é hoje restrita aos setores que além da carga de processamentos, também necessitam de um grande número de terminais, como bancos, companhias de aviação, empresas governamentais, universidades etc. 9 O Apêndice VII apresenta uma relação das distribuições estatísticas mais utilizadas na Simulação de Eventos Discretos. 10 Como destacado no Apêndice II, a caracterização de um modelo de fila é dada pela notação de Kendall-Lee:a/(b/c): (d /e/f), onde:
a: indica o processo de chegadas dos elementos aos postos de atendimento, definido pela distribuição estatística do intervalo entre chegadas dos elementos. São utilizadas as seguintes abreviações padronizadas: M , quando os tempos entre chegadas sucessivas são variáveis aleatórias i.i.d. com distribuição exponencial; D, quando os tempos entre chegadas sucessivas são i.i.d. e determinísticos;Ek , quando os tempos entre chegadas sucessivas são variáveis aleatórias i.i.d. com distribuição Erlang de parâmetro k ; G, quando os tempos entre chegadas sucessivas são variáveis aleatórias i.i.d. com distribuição genérica; b: indica o processo de atendimento dos elementos em cada posto de serviço, definido pela distribuição estatística do tempo de serviço, com as mesmas abreviações utilizadas para os tempos entre chegadas sucessivas; c: é o número de postos de serviço em paralelo; d: é a disciplina de atendimento dos elementos da fila: FCFS, LCFS, SIRO e GD; e: é o número máximo de elementos permitido no sistema (fila mais postos de serviço). Convém mencionar que, em muitas situações, a fila é especificada apenas pelo primeiro termo a /b /c( ), pois se admite que o primeiro a chegar é o primeiro a ser atendido, não há limitação na capacidade do sistema e a população é infinita.
Capítulo 2
1 Uma sequência de variáveis aleatórias é dita independente e identicamente distribuída (i.i.d.) quando todas as variáveis pertencentes à sequência têm a mesma distribuição de probabilidades e são mutuamente independentes entre si. Por exemplo, se lançarmos um dado 10 vezes e em todas as vezes a face obtida for igual a 1, no próximo lançamento, a chance – ou probabilidade – de ocorrência da face 1 continua a mesma, isto é, não aumenta nem diminui em função da sequência de faces obtida no passado. Muitos testes estatísticos partem da hipótese de que a sequência de variáveis aleatórias é i.i.d. 2 A variância da amostra é particularmente afetada, pois representa a média dos desvios ao quadrado (Apêndice I). Neste aspecto, a mediana é uma medida mais robusta, pois é pouco afetada por pequenos erros na amostragem. 3 Se ordenarmos os valores observados do maior valor para o menor e dividirmos em quatro partes iguais, o primeiro quartil (Q1) é o valor que deixa 25% das observações à sua esquerda, o segundo quartil Q2)( ou mediana deixa 50% das observações à sua esquerda, e o terceiro quartil Q ( 3) deixa 75% das observações à sua esquerda. 4 Muitos “eventos raros” podem ser incorporados no estudo de simulação de outras maneiras: através de uma cuidadosa análise de sensibilidade da simulação ou através da incorporação de “falhas” no modelo computacional. 5 Muitas ocorrências com valor baixo e poucas ocorrências com valor alto. 6 Como a distribuição exponencial tem uma média igual ao seu desvio-padrão (Apêndice VII), o coeficiente de variação dessa distribuição é sempre igual a 1. 7 Alguns métodos usuais para estimação de parâmetros das distribuições são: o método da máxima verossimilhança, o método dos momentos e o método gráfico (p. ex., Devore, 2000). 8 Denominado erro “Tipo I”. 9 Outros testes conhecidos (LAWLESS, 1982): Cramer-von Mises, Anderson-Darling e o método gráfico. 10 Baseado em Biller e Nelson (2005). 11 Baseado em Chu (2003). 12 As curvas de Bézier são formadas por um conjunto de curvas parametrizadas, comumente utilizadas na computação gráfica. A partir de um conjunto de pontos de controle, pode-se variar a forma da curva facilmente, daí sua importância no
ajuste de dados (NELSON; YAMNITSKY, 1997).
Capítulo 3 1 Alguns aspectos da complexidade dos modelos de simulação estão descritos na Leitura Complementar ao final deste capítulo. 2 O presente texto (à exceção do exemplo “Filósofos famintos”), até a seção “Outras executivas de simulação”, foi elaborado na íntegra pelo Prof. Ray J. Paul, da Universidade de Brunel (Inglaterra). 3 O processo pode ser automatizado com o auxílio de calculadoras ou mesmo de um computador.
Simulation Modelling , 1993. 4 Alguns exemplos foram adaptados de PAUL; BALMER, 5 Baseado em Chwif et al. (1999). 6 Baseado em Chwif et al. (2000). 7 Originalmente, keep “ it simple and stupid ” (“mantenha-o simples e estúpido”), ou simplesmenteKISS “ ”, acrônimo criado por Kelly Johnson, engenheiro chefe da empresa estadunidense Lockheed. Com o tempo, a frase ganhou novas versões, como a popular “k eep it simple, stupid! ” (“mantenha-o simples, estúpido!”).
Capítulo 4 1 Uma fila M /M /1 é um modelo de fila em que os tempos entre chegadas sucessivas de clientes são exponencialmente distribuídos, os tempos de atendimento no servidor são exponencialmente distribuídos, e existe apenas um servidor de atendimento. Estando o servidor ocupado, os clientes permanecem em uma fila única e são atendidos segundo uma disciplina que respeita a ordem de chegada dos clientes, ou “o primeiro a chegar é o primeiro a ser atendido”. 2 “Python” é uma linguagem de programação de alto nível, interpretada, orientada a objetos e que prioriza a legibilidade do código. Possui um modelo de desenvolvimento comunitário, aberto e gerenciado pela organização sem fins lucrativos Python
Software Foundation. Saiba mais emwww.python.org. 3 Uma versão desde código pode ser obtida no site do livro: www.livrosimulacao.eng.br . 4 Baseado em Banks (2001). 5 www.minutesmansoftware.com. 6 http://lionhrtpub.com/orms/ 7 http://www.argesim.org/comparisons/index.html 8 Consulte o Capítulo 7. 9 Quando um modelo é construído através do POO, podemos criar “objetos-filho”, que “herdam” propriedades do “objetopai”.
Capítulo 5 1 Existe outro tipo de validação denominada validação operacional , mas, quando falamos somente validação, estamos nos referindo à validação conceitual. 2 O primeiro a chegar é o primeiro a ser atendido. 3 Do inglês “accreditation ”. 4 Baseado em: “A Prescriptive Technique for V&V of Simulation Models when no real-life data are avaiable”, de Leonardo Chwif, Paulo Sérgio Muniz e Lúcio Shimada.Proceedings of the 2006 Winter Simulation Conference, Monterey, CA, USA, 2006. 5 Na verdade, a metodologia de V&V proposta srcinalmente pelos autores é um pouco mais complexa do que a descrita nesta leitura complementar, pois envolve uma técnica estatística denominada “Projeto de Experimentos”, que será descrita no Capítulo 7. Além disso, há alguns problemas intrínsecos ligados à matriz de influências causais. Para mais detalhes, recomenda-se a leitura do artigo srcinal.
6 Exemplo retirado de Robinson (2004). Este modelo, para o simulador SIMUL8, está disponível em: http://www.support.simul8.com/library/StewartRobinson/ .
Capítulo 6 1 O Apêndice I apresenta uma breve revisão dos assuntos de probabilidade e estatística. 2 Como já tínhamos 10 replicações, foi necessário realizar mais 10. Contudo, as novas replicações devem ser realizadas com a “semente” de geração dos números aleatórios modificada para cada replicação; caso contrário, as novas 10 replicações seriam idênticas às 10 já obtidas. 3 Existem diversas técnicas práticas e eficientes para ajuste ou suavização de curvas. Um ponto de partida é consultar um bom livro de Pesquisa Operacional, como os de Winston (1994) ou Taha (2002). 4maior Se ovalor. estudo envolve outras medidas de desempenho, todas devem ser analisadas, warm-up eo deve ser escolhido pelo 5 Usualmente, procura-se trabalhar com tempos de simulação superiores a, no mínimo, 10 vezes o tempo warm-up de ; essa quantidade, “10” vezes, é empírica. 6 Esta rodada consumiu cerca de quatro minutos em um Pentium III com 300 MHz, utilizando o software Arena. 7 Duas amostras são ditas “emparelhadas” quando possuem alguma relação entre si. No caso, como as amostras são obtidas a partir de um mesmo modelo de simulação, garante-se o emparelhamento. 8 Para a aplicação do teste, deve-se assumir a hipótese de normalidade para as observações obtidas do modelo de simulação. Essa hipótese é razoável, pois cada observação extraída de uma replicação representa uma média de observações internas desta replicação, e cada replicação é executada sob as mesmas condições. 9 RIRO (randon-in,random-out) .
Dicionário Aurélio. 10 Aντιϑετικóς. [Doantithetikós gr. .] Adj. 1. Que contém ou constitui antítese.
Capítulo 7 1 Para outros tipos de projetos, sugere-se a leitura de: Box e Hunter (1978) e Montgomery (1991). 2 Para verificarmos se os tratamentos são realmente significativos, é necessário montar uma tabela de análise de variância (ANOVA). Para detalhes, ver Montgomery (1991). 3 “Hillo” é um guincho composto de uma estrutura tubular ou de perfis laminados, com altura variando entre 13 e 16 metros. A estrutura sustenta um sistema de cabos com polias que movimenta uma viga horizontal em um movimento ascendente e descendente. 4 Baseado em Paul; Balmer (1993).
Capítulo 8 1 Este caso já foi parcialmente discutido no Exemplo 6.4. 2 Baseado em Myiashita (2002). 3 Disponibilidade é a porcentagem do tempo em que a sonda está disponível para operação, ou seja, não está quebrada nem em manutenção e/ou em espera por manutenção. 4 Baseado em Chisman (1996). 5 Baseado em Dijk (1997). 6 Baseado em Franco et al. (2001). 7 Sugestão de leitura: Larson (1987). 8 Esta área, nos call centers , é chamada de área de antiatrito, ouanti-atrition . 9 Baseado em Saltzman e Mehrotra (2001).
10 Baseado em Larson e Odoni (1981). 11 “How many parts to make a once”,Factory: The Magazine of Management, v. 10, 1913, p.135-136. Republicado em Harris (1990). 12 Ver, por exemplo, Winston (1994), para uma discussão mais detalhada sobre modelos de gestão de estoques probabilísticos. 13 Baseado em Whitt (1986). 14 Baseado em Law; Kelton (1991). 15 Baseado nas anotações de aula da disciplina “Planejamento e Controle da Produção”, do professor Miguel Cezar Santoro, da Escola Politécnica da Universidade de São Paulo. 16 Baseado num projeto real realizado por um dos autores. 17 Baseado em Tauböck (2001). 18 Retirado de um caso real de atendimento médico do SUS, com dados modificados. 19 Baseado em Albeseder; Függer (2004).
Capítulo 9 1 Na planilha eletrônica Excel, por exemplo, a função =ALEATORIO() retorna números aleatórios uniformemente distribuídos entre 0 e 1. Para gerar uma demanda da roleta, pode-se utilizar alguma função de teste lógico dose... tipoentão para converter o número aleatório em uma demanda de jornais. 2 Do Capítulo 6, um intervalo de confiança 100(1-α)% para a média de uma população é construído através da equação (DEVORE, 2000):
onde: é a média da amostra; é a metade do tamanho do intervalo, aqui denominada de precisão ; é
o percentil da distribuição t de Student comn-1 graus de liberdade;
s é o desvio-padrão da amostra; n é o número de dados da amostra. 1 http://home.uchicago.edu/~rmyerson/addins.htm 2 http://projects.gnome.org/gnumeric/ 3
O
arquivo
utilizado
neste
exemplo
está
disponível
no
site
do
livro,
na
seção
de
downloads:
http://livrosimulacao.eng.br/download.html 4 Inicialmente, a dinâmica de sistemas era chamada de Industrial Dynamics. 5 http://www.vensim.com 6 Esta seção contou com a colaboração do pesquisador Luis Gustavo Nardin do Laboratório de Técnicas Inteligentes da Escola Politécnica da USP (LTI,http://www.lti.pcs.usp.br) e do Laboratory of Agent-Based Social Simulation (LABSS, http://labss.istc.cnr.it/). 7 http://conwaylife.com/ 8 Um applet em Java deste jogo pode ser visualizado no site http://www.bitstorm.org/gameoflife/ , enquanto uma aplicação open-source para uso em computadores ou celulares está disponível em http://golly.sourceforge.net/ . 9 Um applet deste jogo pode ser http://ccl.northwestern.edu/netlogo/models/WolfSheepPredation%28docked%29.
visualizado
no
site
10 “World Wide Web” ou simplesmente W “ eb ”, também conhecido comowww, é um termo de língua inglesa que se traduz
por “teia mundial” e identifica o sistema de documentos hipermídia que são conectados e executados na internet. 11 Acrônimo em língua inglesa de Asynchronous Javascript and XML.
Capítulo 10 1 CLP: Controlador Lógico Programável, dispositivo de controle de processos. 2 Pseudocódigo: codificação de um programa em uma linguagem próxima da linguagem natural.
pêndice I 1 Pierre Simon, Marquês de Laplace. “Théorie Analytique des Probabilités ” (1812). 2 O desvio-padrão é definido como a raiz quadrada positiva da variância. 3 Qualidade do que é verossímil ou verossimilhanteDicionário ( Houaiss). 4 Uma discussão interessante sobre o desenvolvimento do método da máxima verossimilhança pode ser encontrada em Aldrich (1997). 5 Outros métodos conhecidos para a estimação de parâmetros são ométodo dos momentos (consultar, por exemplo, Devore, 2000) e ométodo d e Bayes (consultar, por exemplo, Neto, 1986).
pêndice II 1 O leitor é obviamente convidado a refletir (se é que ainda não o fez) sobre quanto custa sua hora de espera em uma fila. Mas lembre-se: pense num valor a partir do qual o prestador de serviço perderá o leitor como cliente e o quanto isso trará de prejuízo para o prestador no futuro.
pêndice III 1 Uma discussão mais aprofundada sobre o método do meio-quadrado pode ser encontrada em Knuth (1997). 2 Ou gerador de congruência linear (linear congruent generator – LCG ). 3 Ou seja: a sequência de números começa a se repetir apósM iterações do algoritmo. 4 Do inglês: “Random number generators should not be chosen at random”.
pêndice IV 1 Norma NBR 10.719 (NB887): “Apresentação de Relatórios Técnicos Científicos”. 2 Ou seja: tudo aquilo que o diretor-presidente não quer ler. 3 Mas, se você prefere imprimir e entregar para o seu cliente um relatório automático de 6.930 páginas, por favor, não comente com ninguém que você leu nosso livro... 4 Atenção, apenas anexe os resultados que foramrealmente utilizados nos cálculos. Se, por exemplo, trata-se do intervalo de tempo de espera em fila, no anexo deve aparecer uma tabela com cada saída de cada replicação apenas para o tempo de espera em fila. Um erro grosseiro é acrescentar saídas completas de softwares de simulação com várias páginas e várias informações inúteis que não fizeram parte do escopo do projeto.
pêndice V 1 No site do livro, o leitor encontra material complementar sobre especificação de modelos de simulação.