REDUÇÃO DE MODELOS DE SIMULAÇÃO DE EVENTOS DISCRETOS NA SUA CONCEPÇÃO: UMA ABORDAGEM CAUSAL - PDF
REDUÇÃO DE MODELOS DE SIMULAÇÃO DE EVENTOS DISCRETOS NA SUA CONCEPÇÃO: UMA ABORDAGEM CAUSAL
Download "REDUÇÃO DE MODELOS DE SIMULAÇÃO DE EVENTOS DISCRETOS NA SUA CONCEPÇÃO: UMA ABORDAGEM CAUSAL"
Carolina Minho Angelim
1 LEONARDO CHWIF REDUÇÃO DE MODELOS DE SIMULAÇÃO DE EVENTOS DISCRETOS NA SUA CONCEPÇÃO: UMA ABORDAGEM CAUSAL Tese apresentada à Escola Politécnica da Universidade de São Paulo para obtenção do título de Doutor em Engenharia. São Paulo 1999
2 ii LEONARDO CHWIF REDUÇÃO DE MODELOS DE SIMULAÇÃO DE EVENTOS DISCRETOS NA SUA CONCEPÇÃO: UMA ABORDAGEM CAUSAL Tese apresentada à Escola Politécnica da Universidade de São Paulo para obtenção do título de Doutor em Engenharia. Área de concentração: Engenharia Mecânica (Mecatrônica) Orientador: Prof. Dr. Marcos Ribeiro Pereira Barretto. São Paulo 1999
3 iii Chwif, Leonardo Redução de Modelos de Simulação de Eventos Discretos na sua Concepção: Uma Abordagem Causal. São Paulo, p. + apêndices Tese (Doutorado) - Escola Politécnica da Universidade de São Paulo. Departamento de Engenharia Mecânica. 1. Sistemas de Eventos Discretos 2. Modelos de Simulação 3. Redução de Modelos. Universidade de São Paulo. Escola Politécnica. Departamento de Engenharia Mecânica II. t
4 iv E eu vos digo que a vida é realmente escuridão, exceto quando há impulso. E todo impulso é cego, exceto quando há saber. E todo saber é vão, exceto quando há trabalho. E todo o trabalho é vazio, exceto quando há amor. Gibran Khalil Gibran
5 v AGRADECIMENTOS Ao meu orientador, Prof. Dr. Marcos Ribeiro Pereira Barretto, pelas diretrizes e apoio durante a realização deste trabalho. Ao Prof. Dr. Ray J. Paul, pela sua excelente supervisão durante o período de estágio que realizei no exterior. Ao Prof. John Salt, Tillal Eldabi e Hamad Odhabi, pelas discussões acerca do tema em questão. À todos os membros do CASM (Centre for Applied Simulation Modelling) da Universidade de Brunel (Reino Unido), que me auxiliaram durante o peroído em que estive no exterior. Aos meus pais, Sônia e José pelo incentivo e apoio. À minha esposa, Renata, pela paciência e compreensão durante a realização deste trabalho. À CAPES, pela concessão da bolsa que suportou minha pesquisa. A todos que diretamente ou indiretamente, contribuíram para a realização deste trabalho.
6 vi SUMÁRIO Lista de Figuras Lista de Tabelas Lista de Abreviaturas Resumo Abstract CAPÍTULO 1 (INTRODUÇÃO) Introdução Conceitos e termos utilizados Processo de Simulação Ciclo de vida de um modelo de simulação Ambientes de Simulação Modelagem visando a simplicidade de modelos Vantagens e desvantagens dos modelos simples Razões para a existência de modelos complexos Modelos simples, analistas experientes e inexperientes Modelo simples e validade do modelo Modelos simples, desempenho computacional e redução do tempo do ciclo Objetivos e Escopo do Trabalho Organização do Texto CAPÍTULO 2 (REVISÃO BIBLIOGRÁFICA) Literatura de redução de modelos de simulação Métodos de redução de modelos complexidade de modelos de simulação definição da complexidade DE UM MODELO MEDIDAS DE COMPLEXIDADE Modelagem Automatizada (Automated Modelling) Revisão das técnicas de representação de modelos de simulação Requisitos básicos das técnicas de representação do ponto de vista de redução de modelos Técnicas de representação de modelos de simulação Activity Cycle Diagrams Control Flow Graphs Condition specification DEVS (Discrete Event System Specification) Event Graphs Redes de Petri State Charts Process Networks Outras Técnicas de Repesentação Avaliação das Técnicas do ponto de vista da Redução de Modelos de Simulação CAPÍTULO 3 (ACTIVITY CYCLE DIAGRAMS / CONDITION SPECIFICATION: UMA ABORDAGEM COMBINADA) Introdução Comparativo entre ACD e CS... 62
7 3.3 Regras de Conversão ACD/CS Exemplo: Modelo do Reparador de Máquinas Versão Versão Versão CAPÍTULO 4 (TÉCNICA PROPOSTA) Descrição Geral Definição do processo de redução Algoritmo Proposto CAPÍTULO 5 (ESTUDOS DE CASOS) Introdução Estudos de Casos Máquinas em Série Supermercado Pub Inglês Usina CAPÍTULO 6 (CONCLUSÕES) Conclusões Principais Contribuições do Trabalho Sugestões para Trabalhos Futuros ANEXO A ANEXO B ANEXO C ANEXO D REFERÊNCIAS BIBLIOGRÁFICAS Apêndice A vii
8 viii LISTA DE FIGURAS fig. 1.1 Eventos discretos x contínuos...5 fig. 1.2 Ciclo de vida de um modelo de simulação...10 fig. 1.3 Arquitetura SMDE (BALCI e NANCE [92])...11 fig. 1.4 Comparação entre o ciclo de vida de um modelo de simulação com e sem técnicas de redução...19 fig. 2.1 Elementos básicos da técnica de representação de ACD...38 fig. 2.2 Representação em ACD do Pub Inglês na versão simplificada...39 fig. 2.3 Notação para os arcos num CFG [FRITZ e SARGENT, 95] fig. 2.4 Representação em CFG para um servidor com preempção [FRITZ e SARGENT, 95]...43 fig. 2.5 Representação em Condition Specification de um modelo M/M/ fig. 2.6 Representação em DEVS para servidor com interrupção [ZEIGLER, 76]...48 fig. 2.7 Representação básica de um Event Graph [YUCESAN e SCHRUBEN, 92]...49 fig. 2.8 Representação em EG do modelo M/M/1. [YUCESAN e SCHRUBEN, 92]...50 fig. 2.9 Representação em Simulation Nets do Pub Inglês. [DOMINGO, 91]...54 fig Representação de um State-Chart. [GRUER, KOUKAM e MAZIGH, 98]...55 fig Representação em SC do Pub Inglês [DOMINGO, 91]...56 fig Representação em diagramas de blocos GPSS de um sistema M/M/1... [BANKS e CARSON, 84]...58 fig. 3.1 Desvio condicional em um ACD...70 fig. 3.2 Outra forma de conversão de filas, utilizando um atributo "Status"...71 fig. 3.3 Configuração para o modelo do reparador de máquinas para N= fig. 3.4 ACD para o exemplo do reparador de máquina (versão 1)...73 fig. 3.5 ACD para o exemplo do reparador de máquina (versão 2)...76 fig. 5.1 ACD completo do problema das máquinas em série...91 fig. 5.2 ACD reduzido para o modelo das máquinas em série fig. 5.3 ACD para o modelo do supermercado fig. 5.4 ACD para o modelo do Pub Inglês...99 fig. 5.5 Layout esquemático (não em escala) da usina de fundição de aço fig. 5.6 ACD para o modelo da usina fig. 5.7 ACD reduzido para o modelo da usina...106
9 ix LISTA DE TABELAS tab. 2.1 Sintaxe básica do Condition Specification [PAGE, 94]...44 tab. 2.2 Comparativo entre as diversas técnicas de representação, do ponto de vista da redução de modelos...60 tab. 4.1 Especificação da transição em forma tabular...86 tab. 4.2 Tabela de retroação...87 tab. 5.1 Especificação da transição do modelo das máquinas em série tab. 5.2 Tabela de retroação para a taxa de utilização da máquina tab. 5.3 Especificação da transição do modelo reduzido...93 tab. 5.4 Especificação da transição do modelo do supermercado...96 tab. 5.5 Tabela de retroação para a porcentagem de consumidores que partem sem comprar nada...97 tab. 5.6 Especificação da transição do modelo do Pub Inglês...99 tab. 5.7 Tabela de retroação para o tempo médio dos consumidores na fila A.1 Tabela de retroação para o problema das máquinas em série, para a utilização da máquina 2 e para a produção total B.1 Especificação da Transição na forma tabular para o problema das máquinas em série com restrição de buffer finito B.2 Tabela de retroação na forma tabular para o problema das das máquinas em série com restrição de buffer finito C.1 Tabela de retroação do tempo médio que os consumidores gastam no sistema, para o exemplo do supermercado D.1 Especificação da transição para o modelo da usina (inicial) D.2 Tabela de retroação para o modelo da usina D.3 Especificação da transição para o modelo da usina (reduzido)...123
10 x LISTA DE ABREVIATURAS AC ACAG ACIG AGV APN CAP CASM CFG CS DEVS EG FCFS FIFO GIGO GoM GSPN HCFG HIMASS HIRES LIFO LS MC MD MIP PN QPT QR SC SMDE SPN TPN VDM WSCCS X-ACD "Action Clusters" "Action Cluster Attribute Graph" "Action Cluster Incidence Graph" "Automated Guided Vehicle" "Augmented Petri Nets" "Condition Action Pairs" "Computer Aided Simulation Modelling" "Control Flow Graph" "Condition Specification" "Discrete Event System Specification" "Event Graphs" "First Come First Served" "First In First Out" "Garbage In Garbage Out" "Graph of Models" "Generalized Stochastic Petri Nets" "Hierarchical Control Flow Graphs" "Hierarchical Modeling and Simulation System" "HIerarchical REasoning Systems" "Last In Last Out" "Linguagens de Simulação" "Medida de Complexidade" "Medidas de Desempenho" "Machine Inference Problem" "Process Networks" "Qualitative Process Theory" "Qualitative Reasoning" "State Charts" "Simulation Model Development Environment" "Stochastic Petri Nets" "Temporized Petri Nets" "Vienna Development Method" "Weighted Synchronous Calculus of Communicating Systems" "extended Activity Cycle Diagrams"
11 xi RESUMO A simulação de Sistemas de Evetos Discretos é uma ferramenta bem conhecida e utilizada, por sua habilidade inerente de avaliar sistemas complexos e considerar seu comportamento dinâmico. Por outro lado, possui um inconveniente: o tempo para se completar um estudo de simulação é considerado longo, mesmo com o desenvolvimento atual de hardware e software de simulação. Assim, ações são tomadas em alguns casos de processos decisórios que dependem de simulações, antes do estudo apropriado de simulação ter sido completado. Neste cenário onde há uma demanda para se diminuir o tempo de resposta de um estudo de simulação, métodos de simplificação de modelos de simulação possuem um papel fundamental. O objetivo deste trabalho é propor uma técnica para reduzir a complexidade de um modelo de simulação de eventos discretos, na fase de concepção de um estudo de simulação, implicando-se que os resultados computacionais do modelo não são conhecidos a priori para o processo de redução. Para permitir o ganho de tempo proposto, esta técnica deve ser passível de implementação em um computador. A escolha de uma técnica apropriada de representação de modelos de simulação, que suporte o processo de redução, também faz parte do escopo deste trabalho. Os resultados obtidos mostraram a viabilidade da técnica de redução proposta, podendo auxiliar especialmente analistas não experientes na construção de modelos mais simples. Apesar da importância deste assunto, a falta de pesquisa nesta área é uma constante. Este trabalho pode servir como incentivo a futuros pesquisadores que desejam adentrar neste tema.
12 xii ABSTRACT Discrete Event Simulation is a very well known and utilised tool, because of its inherent ability to evaluate complex systems and to consider their dynamic behaviour. On the other hand it has a shortcoming: the time to complete a simulation study is considered to be long, even with current developments in hardware and simulation software. There are some cases in a decision making process which depends on simulation that actions have to be made without time to complete a proper simulation study. In this scenario, where there is a demand for decreasing simulation study response time, simplification methods for simulation models could play a key role. The aim of this work is to propose a technique for reducing the complexity of a discrete event simulation model at the conceptual phase of simulation modelling i.e when the results from the simulation runs are not known a priori for the reduction process. In order to allow the proposed gain of time, this technique should be automatically performed by a computer. The choice of a proper simulation model representation technique to support the reduction process is also within the scope of this work. The achieved results showed the feasibility of the proposed technique allowing to help specially non expert modellers in the construction of simpler models. Despite of the importance of this subject, the lack of research in this area is surprisingly high. This work can serve as incentive for future researchers that would like to endeavor in this area.
13 1 C A P Í T U L O 1 INTRODUÇÃO 1.1 INTRODUÇÃO Simulação é um termo extremamente amplo e, basicamente, pode ser definido como o processo de elaboração de um modelo de um sistema real (ou hipotético) e a condução de experimentos com a finalidade de entender o comportamento de um sistema ou avaliar sua operação [SHANNON, 75]. Na grande maioria das vezes, o modelo é implementado em um computador. Portanto, usualmente, o termo "Simulação" é sinônimo de "Simulação Computacional" pois, embora esta possa ser efetuada manualmente, diante do número maciço de cálculos, o tempo gasto para tal seria inviável, em termos práticos. Embora a simulação computacional esteja datada da década de 50, quando tinha basicamente fins militares, sua popularidade intensificou-se nesta última década, expandindo-se para outras áreas como manufatura e serviços entre engenheiros, administradores e mesmos leigos. Esta popularidade pode ser explicada por alguns fatores: 1. Desenvolvimento dos computadores, que apresentou crescimento extraordinário nos últimos anos; 2. Desenvolvimento de softwares de simulação, com interfaces homem-máquina mais "amigáveis" e com capacidade de processamento gráfico; 3. Natureza da simulação: capacidade de avaliar sistemas complexos e modelar seu comportamento dinâmico, sendo especialmente importante quando inexiste solução analítica (através de modelos matemáticos). Ainda, segundo PIDD [98], pode-se enumerar algumas vantagens da simulação computacional, quando comparada como a experimentação direta de um sistema real. A primeira é em relação aos custos envolvidos: é muito menos oneroso efetuar experiências
14 2 com o modelo de simulação do que com o sistema real, especialmente quando equipamentos de alto custo estão envolvidos. Também a experimentação de um sistema real envolve riscos, tanto materiais quanto humanos, o que não ocorre com um sistema simulado. Apesar de suas vantagens, um problema prático enfrentado por um estudo de simulação é o tempo despendido. Este tempo é usualmente longo, quando comparado com outras técnicas (analíticas), ou mesmo quando a solução parte da experiência e bom senso do analista. Por este motivo, acredita-se que o estudo de técnicas de redução / simplificação de modelos de simulação seja de grande importância para contribuir com a diminuição deste tempo. 1.2 CONCEITOS E TERMOS UTILIZADOS. Antes de prosseguir, torna-se necessário estabelecer alguns termos, com a finalidade de unificar os conceitos e permitir o melhor entendimento deste trabalho, em razão da ampla abrangência da simulação computacional. Os principais termos estão expostos a seguir. O termo sistema, de acordo com GORDON [78], é utilizado numa grande variedade de modos, sendo difícil produzir uma definição suficientemente abrangente para cobrir vários usos e, ao mesmo tempo, concisa o suficiente para ter um propósito útil. Uma definição simples: um sistema é um agrupamento de partes que operam juntas, visando um objetivo em comum [FORRESTER, 68]. Em outras palavras, um sistema é uma combinação de componentes que atuam conjuntamente para a realização de uma função que não é possível realizar com qualquer componente individual [CASSANDRAS, 93]. O estado de um sistema pode ser definido através de uma
15 3 coleção de variáveis necessárias para descrevê-lo totalmente em um dado instante [LAW e KELTON, 91]. Esta coleção é denominada de variáveis de estado. Do enfoque da teoria de sistemas, um modelo pode ser definido como uma representação das relações dos componentes de um sistema, sendo considerada como uma abstração, no sentido em que tende a se aproximar do verdadeiro comportamento do sistema. Aqui cabe a discussão do que é um "bom" ou "mau" modelo. Um "bom" modelo, de uma maneira geral, é aquele que permite atingir os objetivos da simulação (conceito definido a seguir) com o mínimo custo. Segundo [HARREL e TUMAY, 94], o "bom" modelo deve possuir certas características, das quais duas estão dispostas abaixo: 1. É válido - no sentido de representar satisfatoriamente a realidade; 2. É mínimo - no sentido de incluir somente elementos que influenciam no problema a ser solucionado. Os modelos para representar os sistemas podem ser classificados em: modelos simbólicos (ou icônicos), analíticos e modelos de simulação. Os modelos simbólicos (ou icônicos) são constituídos de símbolos gráficos (como retângulos e retas) utilizados para dar noção de seqüência ou outras relações entre entidades. O fluxograma de processos de um sistema de manufatura ou o fluxograma de informações de um negócio são exemplos de modelos simbólicos. Embora estes modelos sejam muito úteis para entendimento e documentação do sistema, são fracos para análise quantitativa, pois só representam os sistemas de uma forma descritiva. Os modelos analíticos basicamente podem ser reduzidos a um conjunto de equações que, ao serem resolvidas, permitem obter a solução esperada. São exemplos de modelos analíticos: os modelos de programação dinâmica, as cadeias de Markov e os modelos de redes de fila [HARREL e TUMAY, 94]. Embora estes modelos forneçam
16 4 soluções precisas, se o sistema a ser modelado for extremamente complexo, as soluções podem se tornar complicadas e, em muitos casos, têm de ser utilizadas hipóteses simplificadoras para que se resolva o modelo analiticamente. Isto pode levar à perda da validade do modelo, visto que o mesmo não conseguiu representar, satisfatoriamente, a realidade. Os modelos de simulação, por sua vez, são implementados através do auxílio de um computador. Assim, como um modelo analítico pode ser representado por um conjunto de equações, um modelo de simulação pode ser representado através de uma linguagem de programação. Para tal, ao contrário dos modelos analíticos, os modelos de simulação são executados, ao invés de solucionados. As desvantagens dos modelos de simulação são: podem ser difíceis de se construir e podem levar a resultados menos precisos do que os modelos analíticos. Em contrapartida, são modelos excelentes para representar sistemas que possuem um número muito grande de variáveis e com dinâmica muito complexa (caso em que a aplicação de modelos analíticos possui restrições). Um modelo de simulação é construído a partir dos objetivos da simulação (também denominados de requisitos de simulação). Estes podem ser traduzidos pelas medidas de desempenho do sistema, que são as variáveis de saída de interesse de um modelo de simulação. Deste modo, considerando um exemplo de um modelo de simulação de uma linha de montagem, este pode ter como objetivo a produtividade e a utilização da mão-de-obra. Portanto, as medidas de desempenho são a produção horária que sai da linha e as taxas de utilização de cada recurso humano na mesma. A simulação computacional pode ser classificada basicamente em três categorias: simulação monte carlo, simulação contínua e simulação de eventos discretos, de acordo com a taxonomia proposta por NANCE [93]. A simulação monte carlo é aquela onde um problema, notadamente não probabilístico, é solucionado através de um processo
17 5 estocástico. Nesta, inexiste uma representação explícita do tempo. Já tanto a simulação contínua como a simulação de eventos discretos levam em conta o tempo. A primeira é utilizada para modelar sistemas cujo estado varia continuamente no tempo, como no exemplo de uma xícara de chá aquecendo. A simulação contínua se utiliza 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 pontos discretos no tempo, a partir da ocorrência de eventos, como é o caso de sistemas de manufatura. Para detalhes sobre sistemas de eventos discretos, ver HO [89]. Estes dois tipos de sistemas estão ilustrados pela figura 1.1. Em alguns casos, é necessário construir um modelo de simulação que compreenda aspectos de eventos contínuos e discretos. Neste caso, a simulação é denominada simulação combinada [PRITSKER, 86]. estado = x x4 x2 x3 x1..xn estados e1..en eventos dx/dt=f(x,t) x(t) x1 e1 e2 e3 e4 Eventos Discretos Eventos Contínuos fig. 1.1 Eventos discretos x contínuos t Uma outra classificação pode ser feita em relação às variáveis com que os modelos de simulação trabalham. Os modelos de simulação que utilizam variáveis aleatórias são denominados Modelos Estocásticos, enquanto que os Modelos Determinísticos trabalham somente com variáveis do tipo não probabilísticas, e o resultado da simulação é sempre o mesmo, não importando quantas vezes se "rode" o
18 6 modelo. A grande maioria dos modelos de simulação são constituídos por variáveis estocásticas. A partir deste ponto, quando não se mencionar o contrário, utiliza-se a palavra "Sistemas" como sinônimo do termo "Sistemas de Eventos Discretos" e o termo "Simulação", por sua vez, como "Simulação de Eventos Discretos". Ao analisar um modelo de simulação, pode-se distinguir, basicamente, três elementos. Uma entidade é qualquer objeto de interesse do modelo. Um atributo é uma propriedade desta entidade. Qualquer processo que pode causar uma mudança no modelo é denominado de atividade. Assim em um modelo de simulação de manufatura, uma entidade pode ser as peças que entram no sistema, sua prioridade de produção pode ser um dos seus atributos e o seu processamento por uma máquina, uma atividade. O modelo de simulação é implementado no computador mediante uma estratégia da simulação (os termos em inglês equivalentes são World View e Conceptual Framework [DERRICK e BALCI, 97]). A estratégia da simulação, de acordo com BALCI [88], é uma estrutura de conceitos e pontos de vista, onde a simulação é guiada para o desenvolvimento do modelo de simulação. Segundo PIDD [98], há,basicamente, quatro estratégias básicas da simulação: a de evento, a de atividade, a de processo e o método das três fases. Na estratégia de evento, o analista especifica quando ocorrem as ações no modelo. Esta estratégia é, portanto, baseada na programação das ações em certos instantes no tempo (localidade de tempo). Na estratégia de atividade, o analista especifica as causas para as ações ocorrerem no modelo, sendo estas baseadas nas pré-condições para uma determinada atividade ocorrer (localidade de estado). Na estratégia de processo, o analista especifica as entidades e descreve todas as sequências de ações de cada entidade, individualmente (localidade de objeto). O método das três fases é uma abordagem que mescla a estratégia de evento com a de atividade. Fases "A", "B" e "C" são introduzidas. A fase "B" checa pelo fim de
19 7 atividades e a fase "C", as condições para as atividades ocorrerem. A fase "A", por sua vez, atualiza o tempo, avançando-o para o próximo evento. Estas estratégias possuem vantagens e desvantagens, que não cabe aqui discutir. O que ocorre, na prática, é que a estratégia de evento é mais popular nos EUA, enquanto que a de atividade e o método das três fases são mais conhecidos no Reino Unido. Para maiores detalhes sobre as estratégias da simulação, ver DERRICK, BALCI e NANCE [89]. Uma discussão mais detalhada sobre os diversos termos discutidos aqui pode ser encontrada em GORDON [78]. 1.3 PROCESSO DE SIMULAÇÃO. Tendo-se definido que, para a análise de um dado sistema é o modelo de simulação que melhor se aplica, deve-se seguir certos passos, a fim de que o estudo de simulação seja bem sucedido. Estes passos ou processo são conhecidos na literatura como "metodologia de simulação" ou "ciclo de vida de um modelo de simulação" (LAW e MCCOMAS, [90], ULGEN et al, [94] e NORDGREN [94]). De acordo com NANCE [83], ocorreu uma mudança de paradigma na comunidade de simulação de eventos discretos, a partir da década de 70, onde, até este período, a simulação era vista somente como a construção de um programa. Sabe-se que a simulação envolve muito mais que a simples construção de um programa, sendo esta atividade apenas uma, dentre as inúmeras atividades de um estudo de simulação CICLO DE VIDA DE UM MODELO DE SIMULAÇÃO Basicamente, o desenvolvimento de um modelo de simulação compõe-se de três grandes etapas [PAUL e BALMER, 93]: 1. Concepção ou formulação do modelo;
20 8 2. Implementação do modelo; 3. Análise dos resultados do modelo. Na primeira etapa ou fase, 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 qual é a abrangência do modelo e o nível de detalhe. Todas as hipóteses devem ser claramente estabelecidas. Após estas decisões, o modelo que está na mente do analista (modelo abstrato) deve ser representado de acordo com alguma técnica de representação de modelo de simulação (as técnicas mais utilizadas de representação de modelos de simulação são revistas no capítulo 2), a fim de torná-lo um modelo conceitual, de modo que outras pessoas possam entendê-lo. Os dados de entrada também devem ser coletados nesta fase. De acordo com SHANNON [75], há uma constante interação entre a construção do modelo conceitual e a coleta dos dados. 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) também é aplicável aos modelos de simulação [PEGDEN, SHANNON e SADOWSKI, 95]. No entanto, é importante ressaltar que o modelo é que deve dirigir a coleta de dados e não vice-versa [PIDD, 96]. Uma discussão mais aprofundada sobre a importância dos dados de entrada, pode ser encontrada em KELTON, SADOWISKI e SADOWSKI [98]. Na segunda etapa, o modelo conceitual é convertido em um modelo computacional através da implementação no computador, com a utilização de uma 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 o C ou Pascal, mas isto é altamente desaconselhável, dado o tempo que é despendido na programação de diversas rotinas já existentes nos simuladores comerciais. Isto deve ser feito somente em última instância caso não se consiga construir o modelo em uma linguagem de simulação
21 9 ou num simulador. O modelo computacional deve, ainda, ser verificado contra o modelo conceitual, a fim de avaliar se está operando de acordo com o pretendido. Alguns resultados devem ser gerados para validar o modelo computacional, observando-se se o modelo é uma representação precisa da realidade (dentro dos objetivos da simulação). O assunto verificação e validação de modelos de simulação é bastante extenso e não cabe aqui expô-lo em detalhes. Consultar SARGENT [96] e BALCI [97], para um aprofundamento neste assunto. Na terceira etapa, após a verificação e validação do modelo computacional, este está pronto para a realização dos experimentos, dando origem ao modelo experimental ou, de acordo com PAUL e BALMER [93], modelo operacional. São efetuadas várias "rodadas" do modelo e os resultados da simulação são analisados, utilizando-se diversas técnicas estatísticas e os resultados documentados. A partir destes 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 este ciclo é reiniciado. Estes passos estão mostrados na figura 1.2. Apesar destes passos estarem dispostos em uma certa seqüência linear, isto não ocorre exatamente desta maneira em um estudo prático de simulação, e, segundo PAUL [92], podem haver várias iterações e realimentações no processo, a medida que o entendimento do problema muda. Em um típico estudo de simulação, estima-se que 30-40% deste ciclo seja atribuído à implementação [LAW e MCCOMAS, 90].
22 10 OBJETIVOS E DEFINIÇÃO DO SISTEMA FORMULAÇÃO DO MODELO ANÁLISE E REDEFINIÇÃO MODELO ABSTRATO RESULTADOS EXPERIMENTAIS MODELO CONCEITUAL REPRESENTAÇÃO DO MODELO DADOS DE ENTRADA EXPERIMENTAÇÃO DO MODELO MODELO OPERACIONAL IMPLEMENTAÇÃO DO MODELO MODELO COMPUTACIONAL VERIFICAÇÃO E VALIDAÇÃO fig. 1.2 Ciclo de vida de um modelo de simulação AMBIENTES DE SIMULAÇÃO Segundo BALCI et al. [90], um Ambiente de Simulação é um "conjunto integrado de ferramentas de hardware e software que fornecem um suporte automatizado, a um custo eficiente, por todo o ciclo de vida de um modelo de simulação". Neste caso, o simulador em si seria apenas um de seus componentes de software. BALCI e NANCE [92] propuseram uma arquitetura denominada SMDE (Simulation Model Development Environment). Esta arquitetura é composta, basicamente, de 4 camadas: Hardware e Sistema Operacional (0), Núcleo SMDE (1), SMDE mínimo (2) e SMDE (3). O SMDE mínimo contém ferramentas específicas para o desenvolvimento do modelo de simulação, como o administrador de projetos, administrador de pré-modelos, interpretador de linguagem, gerador de modelo, analisador de modelos e verificador de modelos, além de ferramentas de uso geral, como administrador de código fonte, sistema de e editor de texto. Esta arquitetura está ilustrada na figura 1.3.
23 11 Gerador do Modelo Analizador do Modelo Tradutor do Modelo Interpretador de Linguagem Verificador do Modelo 3 2 Adminstador de Assistência 1 0 Administrador De Código Fonte Adminstador de Premodelos Sistema de Correio Eletrônico NÚCLEO SMDE Adminstador de Projetos Editor de Texto HARDWARE E S.O. SMDE MÍNIMO SMDE fig. 1.3 Arquitetura SMDE (BALCI e NANCE [92]) PAUL [92] também propôs um ambiente denominado CASM (Computer Aided Simulation Modelling), que consiste, basicamente, em uma série de geradores de programas de simulação interativos, com o objetivo principal de automatizar a formulação do problema (gerar o modelo conceitual a partir do modelo abstrato) e análise estatística dos dados de saída, utilizando-se diálogos em linguagem natural, sistemas especialistas e sistemas gráficos. Como outros ambientes de simulação, podemos citar o JADE [UNGER et. al. 86], KBSim [ROTHENBERG, 91] e ROSS [ROTHEMBERG, 88]. Embora a finalidade dos ambientes de simulação seja a de melhorar a qualidade dos modelos, aumentar a eficiência de um time de projeto de simulação e reduzir o tempo de desenvolvimento do modelo [BALCI e NANCE, 92], estes ainda carecem de produtos comerciais, tendo-se somente desenvolvidos sistemas protótipo em Universidades. 1.4 MODELAGEM VISANDO A SIMPLICIDADE DE MODELOS Como foi comentado, o tempo do ciclo de um estudo de simulação é considerado grande. Uma das maneira de reduzí-lo é a criação de modelos mais simples, através da