Hillier 20

73
INTRODUÇÃO À PESQUISA OPERACIONAL 8 a Edição FREDERICK S. HILLIER Stanford University GERALD J. LIEBERMAN Ex-Professor Titular da Stanford University Tradução ARIOVALDO GRIESI Revisão Técnica JOÃO CHANG JUNIOR Doutor em Administração — FEA/USP Professor Titular do Programa de Mestrado da UNIP Professor Titular da FAAP Bangcoc Bogotá Beijing Caracas Cidade do México Cingapura Lisboa Londres Madri Milão Montreal Nova Delhi Santiago São Paulo Seul Sydney Taipé Toronto

Transcript of Hillier 20

  • INTRODUO PESQUISA OPERACIONAL

    8a Edio

    FREDERICK S. HILLIERStanford University

    GERALD J. LIEBERMANEx-Professor Titular da Stanford University

    TraduoARIOVALDO GRIESI

    Reviso TcnicaJOO CHANG JUNIOR

    Doutor em Administrao FEA/USPProfessor Titular do Programa de Mestrado da UNIP

    Professor Titular da FAAP

    Bangcoc Bogot Beijing Caracas Cidade do MxicoCingapura Lisboa Londres Madri Milo Montreal Nova Delhi

    Santiago So Paulo Seul Sydney Taip Toronto

  • A tcnica de simulao tem sido h muito tempo uma importante ferramenta do projetista.Por exemplo, a simulao de vo de um avio em um tnel de vento uma prtica comumquando se projeta um avio novo. Teoricamente, as regras da fsica poderiam ser usadas parase obter as mesmas informaes sobre como o desempenho da aeronave muda medida queforem alterados os parmetros de projeto, porm, por questes prticas, a anlise se torna-ria muito complicada para resolver o problema todo. Outra opo seria construir aeronaves

    20Simulao

    C A P T U L O

    1

    20.1 A ESSNCIA DA SIMULAO

    Neste captulo final, estamos prontos para nos concentrarmos na ltima das tcnicas-chave da pesquisa operacional. A simulao se destaca entre essas tcnicas sendo amais usada delas. Alm disso, por ser uma ferramenta to flexvel, poderosa e intuitiva, elacontinua a ganhar rapidamente popularidade.

    Essa tcnica envolve o uso de um computador para imitar (simular) a operao de uminteiro processo ou sistema. Por exemplo, a simulao freqentemente usada para realizaranlises de risco em processos financeiros, imitando repetidamente a evoluo das transa-es envolvidas para gerar um perfil de possveis resultados. A simulao tambm ampla-mente usada para analisar sistemas estocsticos que continuaro a operar indefinidamente.Para tais sistemas, o computador gera e registra, aleatoriamente, as ocorrncias dos vrioseventos que dirigem o sistema como se eles estivessem operando fisicamente. Em virtude desua velocidade, o computador pode simular at mesmo anos de operao em uma questode segundos. Registrar o desempenho da operao simulada do sistema para uma srie deprojetos ou procedimentos operacionais alternativos habilita ento a avaliao e a compara-o dessas alternativas antes de escolher uma.

    A Seo 20.1 descreve e ilustra a essncia da simulao. A Seo 20.2 apresenta umasrie de aplicaes comuns de simulao. As Sees 20.3 e 20.4 se concentram em duas fer-ramentas-chave da simulao: a gerao de nmeros aleatrios e a gerao de observaesaleatrias a partir das distribuies de probabilidades. A Seo 20.5 descreve o procedimen-to geral para aplicao da simulao. A Seo 20.6 mostra como as simulaes agora podemser executadas de forma eficiente em planilhas e, depois, a Seo 20.7 estende essa metodo-logia baseada em planilhas em busca de uma soluo tima para modelos de simulao. Umsuplemento do captulo contido no CD-ROM introduz algumas tcnicas especiais paramelhorar a preciso das estimativas das medidas de desempenho do sistema simulado. Umsegundo suplemento no CD-ROM apresenta um mtodo estatstico inovador para analisar asada de uma simulao.

  • 2 CAPTULO 20 SIMULAO

    reais com projetos alternativos e test-los em vos reais para escolher o projeto final, noentanto, isso seria muito caro (alm de no ser seguro). Portanto, aps a realizao de algu-mas anlises tericas preliminares para desenvolver um pr-projeto, a simulao de vo emum tnel de vento uma ferramenta vital para experimentar projetos especficos. Essa simu-lao equivale a imitar o desempenho de um avio de verdade em um ambiente controladode modo a estimar qual ser o real desempenho. Aps um projeto detalhado ter sido desen-volvido dessa maneira, um modelo prottipo pode ser construdo e testado em um vo realpara ajustar o projeto final.

    O Papel da Simulao em Estudos de Pesquisa Operacional

    A simulao desempenha o mesmo papel em muitos estudos de PO. Entretanto, em vez deprojetar um avio, a equipe de PO se preocupa com o desenvolvimento de um projeto ouprocedimento operacional para algum sistema estocstico (um sistema que evolui probabi-listicamente ao longo do tempo). Alguns desses sistemas estocsticos lembram os exemplosdas cadeias de Markov e sistemas de filas descritos nos Captulos 16 e 17, e outros so maiscomplexos. Em vez de usar um tnel de vento, o desempenho do sistema real imitadousando-se distribuies de probabilidades para gerar aleatoriamente diversos eventos queocorrem no sistema. Portanto, um modelo de simulao sintetiza o sistema construindo-o,componente por componente, e evento por evento. Em seguida, o modelo executa o sistemasimulado para obter observaes estatsticas do desempenho do sistema resultante de diver-sos eventos gerados aleatoriamente. Como as execues de simulao normalmente exigema gerao e o processamento de um enorme volume de dados, esses experimentos estatsti-cos simulados so, inevitavelmente, realizados em um computador.

    Quando a simulao for usada como parte de um estudo de PO, ele comumente pre-cedido e seguido pelas mesmas etapas descritas anteriormente para o projeto de um avio.Particularmente, feita alguma anlise preliminar (talvez com modelos matemticos apro-ximados) para se obter um esboo do sistema (inclusive de seus procedimentos operacio-nais). Em seguida, usada a simulao para experimentar projetos especficos para estimaro desempenho de cada um deles. Aps um projeto detalhado ter sido desenvolvido e sele-cionado dessa maneira, o sistema provavelmente testado na prtica para ajustes no proje-to final.

    Para preparar a simulao de um sistema complexo, um modelo de simulao detalha-do precisa ser formulado para descrever a operao do sistema e como ele deve ser simula-do. Um modelo de simulao tem diversos blocos construtivos bsicos:

    1. Uma definio do estado do sistema (por exemplo, o nmero de clientes em um sis-tema de filas).

    2. Identificar os possveis estados do sistema que podem ocorrer.3. Identificar os possveis eventos (por exemplo, chegadas e trminos de atendimento

    em um sistema de filas) que mudariam o estado do sistema.4. Uma proviso para um relgio simulado, localizado no mesmo endereo do progra-

    ma de simulao, que vai registrar a passagem do tempo (simulado).5. Um mtodo para gerar eventos aleatoriamente de diversos tipos.6. Uma frmula para identificar as transies de estado que so geradas pelos diver-

    sos tipos de eventos.

    Grandes avanos tm sido feitos no sentido do desenvolvimento de software especial(descrito na Seo 20.5) para integrar de forma eficiente o modelo de simulao em um pro-grama de computador e ento realizar as simulaes. No obstante, ao lidar com sistemasrelativamente complexos, a simulao tende a ser um procedimento relativamente caro.Aps formular um modelo de simulao detalhado, necessrio um tempo considervelpara desenvolver e depurar os programas de computador necessrios para executar a simu-lao. Em seguida, talvez sejam necessrios diversos processamentos longos para se obterdados de qualidade sobre como ser o desempenho de todos os projetos alternativos do sis-tema. Finalmente, todos esses dados (que apenas fornecem estimativas do desempenho dosprojetos alternativos) deveriam ser analisados cuidadosamente antes de se chegar a qualquer

  • Voc o felizardo de uma rifa. Seu prmio uma viagem com todas as despesas pagas em umluxuoso hotel em Las Vegas, incluindo algumas fichas para apostas no cassino do hotel.

    Aps entrar no cassino, voc descobre que, alm dos jogos usuais (blackjack, roletaetc.), eles dispem de um novo e interessante jogo com as seguintes regras.Regras do Jogo

    1. Cada rodada do jogo envolve lanar repetidamente uma moeda no viciada at quea diferena entre o nmero de caras obtido e o nmero de coroas seja 3.

    20.1 A ESSNCIA DA SIMULAO 3

    EXEMPLO 1 Um Jogo de Lanamento de Moeda

    concluso final. Todo esse processo normalmente consome muito tempo e esforo. Portanto,a simulao no deveria ser usada quando existir um procedimento menos oneroso capaz defornecer as mesmas (ou melhores) informaes.

    Normalmente a simulao usada quando o sistema estocstico envolvido for muitocomplexo para ser analisado satisfatoriamente pelos tipos de modelos matemticos (porexemplo, modelos de filas) descritos em captulos precedentes. Um dos principais pontosfortes de um modelo matemtico o fato de ele abstrair a essncia do problema e revelarsua estrutura subjacente fornecendo, portanto, as relaes causa-efeito contidas no sistema.Assim, se o modelador for capaz de construir um modelo matemtico que seja, ao mesmotempo, uma idealizao razovel do problema e tratvel para soluo, essa abordagem geral-mente superior em relao simulao. Entretanto, diversos problemas so muito comple-xos para permitir o uso dessa metodologia. Logo, a simulao normalmente a nica abor-dagem prtica a um problema.

    Simulao por Eventos Discretos versus Simulao Contnua

    Duas amplas categorias de simulaes so as simulaes por eventos discretos e as simula-es contnuas.

    A simulao por eventos discretos aquela em que as mudanas no estado do siste-ma ocorrem instantaneamente em pontos aleatrios no tempo como resultado da ocorrnciade eventos discretos. Por exemplo, em um sistema de filas no qual o estado do sistema onmero de clientes no sistema, os eventos discretos que mudam esse estado so a chegadae a sada de um cliente em decorrncia da finalizao desse servio. A maioria das aplica-es de simulao, na prtica, simulao por eventos discretos.

    A simulao contnua aquela na qual as mudanas no estado do sistema ocorremcontinuamente ao longo do tempo. Por exemplo, se o sistema de interesse for um avio emvo e seu estado for definido como a posio atual da aeronave, ento o estado est mudan-do continuamente ao longo do tempo. Algumas aplicaes de simulaes contnuas ocorremem estudos de projetos de tais sistemas de engenharia.

    As simulaes contnuas normalmente exigem o emprego de equaes diferenciaispara descrever a taxa de mudana das variveis de estado. Logo, a anlise tende a ser rela-tivamente complexa.

    Aproximando as mudanas contnuas do estado de um sistema por mudanas oca-sionais discretas, muitas vezes possvel usar a simulao por eventos discretos paraaproximar o comportamento de um sistema contnuo. Isso tende a simplificar enorme-mente a anlise.

    Este captulo se concentra daqui em diante nas simulaes por eventos discretos.Assumimos esse tipo em todas as referncias feitas posteriormente simulao.

    Vejamos agora dois exemplos para ilustrar as idias bsicas da simulao. Esses exem-plos so consideravelmente mais simples do que a aplicao usual dessa tcnica de modo adestacar as principais idias de forma mais rpida. De fato, o primeiro sistema to simplesque a simulao nem mesmo precisa ser realizada em um computador. O segundo sistemaincorpora um nmero maior de caractersticas comuns de uma simulao, embora ela seja,tambm, suficientemente simples para ser resolvida analiticamente.

  • 4 CAPTULO 20 SIMULAO

    2. Caso decida participar do jogo, exigido uma aposta de US$ 1 para cada lanamen-to da moeda. No permitido abandonar o jogo durante uma rodada.

    3. Voc receber US$ 8 no final de cada rodada do jogo.Logo, voc ganhar dinheiro caso o nmero de lanamentos necessrio for menor que 8,porm perder dinheiro caso sejam necessrios mais de 8 lanamentos. Eis alguns exemplos(em que H representa cara e T coroa).

    HHH 3 lanamentos. Voc ganha US$ 5THTTT 5 lanamentos. Voc ganha US$ 3THHTHTHTTTT 11 lanamentos. Voc perde US$ 3

    Como voc decidiria se deve ou no participar desse jogo?Muitas pessoas baseariam sua deciso em simulao, embora elas provavelmente

    no usasse essa denominao. Nesse caso, a simulao equivale a nada mais do que sim-plesmente participar do jogo muitas vezes sem apostar at que se torne claro se vale apena ou no jogar por dinheiro. Meia hora jogando repetidamente uma moeda e regis-trando os ganhos ou perdas resultantes talvez seja suficiente. Essa uma simulao ver-dadeira, pois estamos imitando a realizao do jogo sem, na verdade, ganhar ou perderqualquer dinheiro.

    Vejamos agora como um computador pode ser usado para realizar esse mesmo experi-mento simulado. Embora um computador no seja capaz de lanar moedas, ele pode simu-lar isso. Ele faz isso gerando uma seqncia de observaes aleatrias a partir de uma dis-tribuio uniforme entre 0 e 1, em que essas observaes aleatrias sejam conhecidas comonmeros aleatrios uniformes ao longo do intervalo [0, 1]. Uma maneira fcil de gerar essesnmeros aleatrios uniformes usar a funo RAND() do Excel. Por exemplo, o canto infe-rior esquerdo da Figura 20.1 indica que RAND() foi introduzido na clula C13 e entocopiado no intervalo C14:C62 com o comando Copy. preciso empregar parnteses nessafuno, mas, na realidade, no se insere nada entre eles. Isso faz que o Excel gere os nme-ros aleatrios mostrados nas clulas C13:C62 da planilha. As linhas 2756 foram ocultaspara poupar espao na figura.

    As probabilidades para o resultado de se lanar uma moeda so

    P(caras) 12 , P(coroas) 12.

    Portanto, para simular o lanamento de uma moeda, o computador pode simplesmente dei-xar que qualquer metade dos possveis nmeros aleatrios corresponda a caras e a outrametade, a coroas. Para ser especfico, usaremos a seguinte correspondncia.

    0,0000 a 0,4999 corresponde a caras.0,5000 a 0,9999 corresponde a coroas.

    Usando a frmula,

    IF(RandomNumber 0.5, Caras, Coroas),em cada uma das clulas da coluna D da Figura 20.1, o Excel insere Caras se o nmero alea-trio for menor que 0,5 e insere Coroas, caso contrrio. Conseqentemente, os primeiros 11nmeros aleatrios gerados na coluna C resultam na seguinte seqncia de caras (H) ecoroas (T):

    HTTTHHHTHHH,

    em cujo ponto o jogo pra, pois o nmero de caras (7) excede o nmero de coroas (4) emtrs unidades. As clulas D7 e D8 registram o nmero total de lanamentos (11) e as vit-rias resultantes (US$ 8 US$ 11 US$ 3).

    As equaes na parte inferior da Figura 20.1 mostram as frmulas que foram introdu-zidas nas diversas clulas introduzindo-as na parte superior e depois usando o comandoCopy para copi-las para baixo das colunas. Usando-se essas equaes, a planilha registra

  • 20.1 A ESSNCIA DA SIMULAO 5

    123456789

    1 01 11 21 31 41 51 61 71 81 92 02 12 22 32 42 52 65 75 85 96 06 16 2

    A B C D E F GJogo de Lanamento de Moeda

    Diferena Exigida 3Dinheiro acumuladono final do jogo

    US$

    US$

    8

    Resumo do JogoResumo do Jogo 11

    Vitrias - 3

    Nmero Total TotalLanamento Aleatrio Resultado de Caras de Coroas Parar?

    1 0,6961 Caras 1 02 0,2086 Coroas 1 13 0,1457 Coroas 1 24 0,3098 Coroas 1 35 0,6996 Caras 2 36 0,9617 Caras 3 37 0,6117 Caras 4 38 0,3948 Coroas 4 49 0,7769 Caras 5 4

    10 0,5750 Caras 6 411 0,6271 Caras 7 4 Parar12 0,2017 Coroas 7 5 NA13 0,7660 Caras 8 5 NA14 0,9918 Caras 9 5 NA45 0,2461 Coroas 23 22 NA46 0,7011 Caras 24 22 NA47 0,3533 Coroas 24 23 NA48 0,7136 Caras 25 23 NA49 0,7876 Caras 26 23 NA50 0,3580 Coroas 26 24 NA

    1 11 21 31 41 51 61 7

    Nmero Total TotalAleatrio Resultado Caras Coroas=RAND()=RAND()=RAND()

    =Se(NumeroAleatorio

  • 6 CAPTULO 20 SIMULAO

    ento a simulao de uma rodada completa do jogo. Para praticamente garantir que ojogo ser completado, foram simulados 50 lanamentos da moeda. As colunas E e Fregistram o nmero cumulativo de caras e coroas aps cada lanamento. As equaesintroduzidas nas clulas da coluna G deixam cada clula em branco at que a diferenano nmero de caras e coroas chegue a 3, cujo ponto PARE inserido na clula. A partirda, NA (de No se Aplica) inserido em seu lugar. Usando-se as equaes mostradaslogo abaixo da planilha na Figura 20.1, as clulas D7 e D8 registram o resultado da roda-da simulada do jogo.

    Tais simulaes de rodadas do jogo podem ser repetidas quanto for desejado com essaplanilha. A cada vez, o Excel vai gerar uma nova seqncia de nmeros aleatrios e, portan-to, uma nova seqncia de caras e coroas. O Excel vai repetir uma seqncia de nmerosaleatrios somente se selecionarmos o intervalo de nmeros que queremos repetir, copiaresse intervalo por meio do comando Copy, selecionarmos Paste Special do menu Edit, sele-cionarmos a opo Values e ento clicarmos em OK.

    As simulaes normalmente so repetidas muitas vezes para se obter uma estimati-va mais confivel de um resultado mdio. Por essa razo, essa mesma planilha foi utili-zada para gerar a tabela de dados da Figura 20.2 para 14 rodadas do jogo. Conforme indi-cado no canto superior direito dessa figura, isso feito introduzindo-se equaes naprimeira linha da tabela de dados que se referem sada das clulas de interesse naFigura 20.1 e, portanto, NumeroDeLancamentos introduzido na clula K6 eVitorias introduzido na clula L6. O prximo passo selecionar todo o contedo databela (clulas J6:L20) e selecionar Table do menu Data. Finalmente, selecione qualquerclula em branco (por exemplo, a clula E4) como clula para introduo na coluna e cli-que OK. O Excel recalcula ento as clulas de sada nas colunas K e L para cada linhana qual um nmero qualquer introduzido na linha J. Por intermdio da introduo dessasequaes, AVERAGE(K7:K20) ou (L7:L20), nas clulas K22 e L22, teremos as mdiasdadas nessas clulas.

    123456789

    10111213141516171819202122

    I K L MTabela de Dados para o Jogo de Lanamento de Moeda (14 repeties)

    Nmero deRodada Lanamentos Vitrias

    1 93

    -U$ 12 5 U$ 3

    U$ 5

    3 7 U$ 14 11 -U$ 35 5 U$ 36 3 U$ 57 3 U$ 58 11 -U$ 39 7 U$ 110 15 -U$ 711 3 U$ 512 7 U$ 113 9 -U$ 114 5 3

    Mdia 7.14 U$ 0,86

    Selecione a tabela inteira(J6:L20) antes de escolher Table do menu Data.

    456

    KNmero de Lanamentos Vitrias

    =NumeroDeLancamentos =Vitorias

    22J K L

    Mdia =MEDIA(K7:K20) =MEDIA(L7:L20)

    Nome da Faixa de Clulas ClulaNumeroDelancamentos D7Vitorias D8

    L

    J

    FIGURA 20.2Uma tabela de dados que registra os resultados da realizao de 14 repeties de uma simulao com a planilha daFigura 20.1.

  • Embora essa execuo de simulao em particular exija o emprego de duas planilhas uma para executar cada repetio da simulao e a outra para registrar os resultados dasrepeties em uma tabela de dados devemos destacar que as repeties de algumas outrassimulaes podem ser realizadas em uma nica planilha. Esse o caso toda vez que cadarepetio puder ser realizada e registrada em uma nica linha da planilha. Por exemplo, sefor necessrio apenas um nico nmero aleatrio uniforme para executar uma repetio,ento todo o processamento da simulao pode ser feito e registrado usando-se uma plani-lha similar quela da Figura 20.1.

    Retornando Figura 20.2, a clula K22 revela que essa amostra de 14 rodadas do jogofornece uma mdia amostral igual a 7,14 lanamentos. A mdia amostral proporciona umaestimativa da verdadeira mdia da distribuio de probabilidades subjacente do nmero delanamentos necessrios para uma rodada do jogo. Logo, essa mdia amostral igual a 7,14poderia indicar que, em mdia, voc ganharia cerca de US$ 0,86 (clula L22) cada vez queparticipar desse jogo. Portanto, se no tiver uma averso relativamente alta a correr riscos,parece que voc deveria optar por participar desse jogo, preferencialmente um grande nme-ro de vezes.

    Entretanto, cuidado! Um erro comum no uso de simulao que as concluses sebaseiam em amostras demasiadamente pequenas, pois a anlise estatstica era inadequada ousimplesmente ausente. Nesse caso, o desvio-padro da amostra 3,67, de modo que o des-vio-padro estimado da mdia amostral 3,67/14 0,98. Dessa forma, mesmo se sesupuser que a distribuio de probabilidades do nmero de lanamentos necessrios parauma rodada do jogo seja uma distribuio normal (que uma suposio grosseira, pois averdadeira distribuio assimtrica), qualquer intervalo de confiana razovel para a ver-dadeira mdia dessa distribuio se estenderia bem acima de 8. Logo, necessrio umtamanho de amostra muito maior antes de podermos tirar uma concluso vlida em umnvel razovel de significncia estatstica. Infelizmente, como o desvio-padro de umamdia amostral inversamente proporcional raiz quadrada do tamanho da amostra, pre-ciso um grande aumento no tamanho da amostra para se obter um aumento relativamentepequeno na preciso da estimativa da mdia verdadeira. Nesse caso, parece que 100 roda-das simuladas (repeties) do jogo poderiam ser adequadas, dependendo de quo prximoa mdia da amostra se encontra em relao a 8, porm realizar 1.000 repeties seria muitomais seguro.

    Acontece que a mdia verdadeira do nmero de lanamentos necessrios para umarodada desse jogo 9. Essa mdia pode ser encontrada analiticamente, mas no de formafcil. Assim, a longo prazo, voc, na verdade, estaria perdendo em mdia US$ 1 cada vezque participar do jogo. Parte da razo para o experimento simulado descrito anteriormenteter falhado para se tirar essa concluso que voc tem uma pequena chance de perda muitogrande em qualquer rodada do jogo, mas jamais poder ganhar mais de US$ 5 por vez.Entretanto, 14 rodadas simuladas do jogo no foram suficientes para obter quaisquer obser-vaes distantes na cauda da distribuio de probabilidades da quantia ganha ou perdida emuma rodada do jogo. Somente uma rodada simulada forneceu uma perda de mais de US$ 3e esta for de apenas US$ 7.

    A Figura 20.3 fornece os resultados da execuo da simulao para 1.000 rodadas dosjogos (com as linhas 171.000 no mostradas). A clula K1008 registra o nmero mdio delanamentos como 8,97, muito prximo da mdia verdadeira igual a 9. Com esse nmero derepeties, as vitrias mdias de US$ 0,97 na clula L1008 agora oferece uma base con-fivel para concluir que esse jogo no lhe dar lucro a longo prazo. Pode apostar que o cas-sino j usou simulao para comprovar esse fato antecipadamente.

    Embora construir formalmente um modelo de simulao totalmente desenvolvido notenha precisado dessa simulao simples, faremos isso agora para fins ilustrativos. O siste-ma estocstico simulado o lanamento sucessivo da moeda para uma rodada do jogo. Orelgio de simulao registra o nmero de lanamentos (simulados) t que aconteceram atento. As informaes sobre o sistema que define seu estado atual, isto , o estado do sis-tema,

    N(t) nmero de caras menos o nmero de coroas aps t lanamentos.

    20.1 A ESSNCIA DA SIMULAO 7

  • Considere o modelo M/M/1 da teoria das filas (processo de entrada de Poisson, tempos deatendimento exponenciais e um nico atendente) que foi discutido no incio da Seo 17.6.Embora esse modelo j tenha sido resolvido analiticamente, ser instrutivo considerar comoestud-lo pela simulao. Para ser mais especfico, suponha que os valores da taxa de che-gada e taxa de atendimento sejam

    3 por hora, 5 por hora.Para resumir a operao fsica do sistema, os clientes que chegam entram na fila, so

    eventualmente atendidos e ento saem. Logo, necessrio para o modelo de simulao des-crever e sincronizar a chegada e o atendimento dos clientes.

    8 CAPTULO 20 SIMULAO

    Exemplo 2 Um Sistema de filas M/M/1

    Os eventos que mudam o estado do sistema so a obteno de uma cara ou de uma coroa. Omtodo de gerao de eventos a gerao de um nmero aleatrio uniforme ao longo dointervalo [0, 1], em que

    0,0000 a 0,4999 uma cara,0,5000 a 0,9999 uma coroa.

    A frmula de transio de estado

    Reset N(t) O jogo simulado termina ento no primeiro valor de t no qual N(t) 3, em que a obser-vao de amostragem resultante para o experimento simulado 8 t, a quantia ganha (posi-tiva ou negativa) para essa rodada do jogo.

    O prximo exemplo ilustrar esses blocos componentes de um modelo de simulaopara um sistema estocstico proeminente da teoria das filas.

    se o lanamento t der carase o lanamento t der coroa.

    N(t 1) 1N(t 1) 1

    123456789

    1 01 11 21 31 41 51 6

    10011002100310041005100610071008

    I J K L MTabela de Dados para o Jogo de Lanamentode Moeda (14 repeties)

    Nmero deLanamentosRodada Vitrias

    5 $31 3 $52 3 $53 7 $14 11 -US$3

    -US$5

    -US$1

    -US$19

    -US$1-US$9

    5 136 7 $17 3 $58 7 $19 3 $5

    10 9995 5 $3996 27997 7 $1998 3 $5999 9

    1000 17

    Mdia 8,97 -US$0,97

    USUSUSUS

    USUS

    US

    USUS

    USUS

    FIGURA 20.3Esta tabela de dados aumen-ta a confiabilidade da simula-o registrada na Figura 20.2realizando 1.000 repetiesem vez de apenas 14.

  • 20.1 A ESSNCIA DA SIMULAO 9

    Partindo do instante 0, o relgio de simulao registra o perodo (simulado) t que trans-correu at ento, durante a execuo da simulao. As informaes sobre o sistema de filasque define seu estado atual, isto , o estado do sistema,

    N(t) nmero de clientes no sistema no instante t.Os eventos que mudam o estado do sistema so a chegada de um cliente ou o trmino

    de um atendimento para o cliente que est sendo atendido no momento (se existir realmen-te algum). Iremos descrever o mtodo de gerao de eventos um pouco mais frente. A fr-mula de transio de estados

    Reset N(t) H dois mtodos bsicos usados para avanar o relgio de simulao e registrar a ope-

    rao do sistema. No faremos a distino entre esses mtodos para o Exemplo 1, pois eles,na verdade, coincidem para essa situao simples. Entretanto, agora, descreveremos e ilus-traremos esses dois mtodos de avano de tempo (incremento de tempo fixo e incrementodo prximo evento) um de cada vez.

    Pelo mtodo de avano de tempo com incrementos de tempo fixos, usado repetida-mente o seguinte procedimento de dois passos.

    Resumo do Mtodo de Incrementos de Tempo Fixos1. Avance no tempo de um pequeno valor fixo.2. Atualize o sistema determinando que eventos ocorreram durante o intervalo de tempo

    decorrido e qual o estado resultante do sistema. Registre tambm as informaes dese-jadas sobre o desempenho do sistema.

    Para o modelo da teoria das filas considerado, podem ocorrer apenas dois tipos deeventos durante cada um dos intervalos de tempo decorridos, a saber: uma ou mais chega-das e um ou mais trminos de atendimento. Alm disso, a probabilidade de duas ou maischegadas ou de dois ou mais trminos de atendimento durante um intervalo desprezvelpara esse modelo se o intervalo for relativamente pequeno. Assim, os dois nicos eventospossveis durante tal intervalo que precisam ser investigados so a chegada de um cliente eo trmino do atendimento para um cliente. Cada um desses eventos possui uma probabili-dade conhecida.

    Como ilustrao, usaremos 0,1 hora (6 minutos) como o menor perodo fixo com queo relgio avana por vez. Normalmente, seria usado um intervalo de tempo consideravel-mente menor para tornar desprezvel a probabilidade de chegadas mltiplas ou de trminosde atendimento mltiplos, porm a opo aqui adotada criar mais dinmica para fins ilus-trativos. Como tanto os tempos entre as chegadas como os tempos de atendimento possuemuma distribuio exponencial, a probabilidade PA de que um intervalo de tempo de 0,1 horavai incluir uma chegada

    PA 1 e3/10 0,259,

    e a probabilidade PD de que ele incluir uma sada (trmino de atendimento), dado que umcliente estava sendo atendido no incio do intervalo,

    PD 1 e5/10 0,393.

    Para gerar aleatoriamente qualquer tipo de evento de acordo com essas probabilidades,a abordagem similar quela do Exemplo 1. Novamente o computador usado para gerarum nmero aleatrio uniforme ao longo do intervalo [0, 1], isto , uma observao aleat-ria da distribuio uniforme entre 0 e 1. Se representarmos esse nmero aleatrio uniformepor rA,

    rA 0,259 ocorreu uma chegada,rA 0,259 no ocorreu uma chegada.

    se as chegadas ocorrerem no instante tse o trmino do atendimento ocorrer no instante t.

    N(t) 1N(t) 1

  • 10 CAPTULO 20 SIMULAO

    Similarmente, com outro nmero aleatrio uniforme rD,

    rD 0,393 ocorreu uma sada,rD 0,393 no ocorreu uma sada,

    dado que um cliente estava sendo atendido no incio do intervalo de tempo. Sem nenhumcliente em atendimento ento (isto , nenhum cliente no sistema), supe-se que no possaocorrer nenhuma sada durante o intervalo, mesmo que ocorra efetivamente uma chegada.

    A Tabela 20.1 ilustra o resultado de se usar essa abordagem para dez iteraes do pro-cedimento em incrementos de tempo fixos, iniciando com nenhum cliente no sistema e usan-do minutos como unidade de tempo.

    O Passo 2 do procedimento (atualizar o sistema) inclui o registro das medidas dedesempenho desejadas sobre o comportamento agregado do sistema durante esse intervalode tempo. Por exemplo, ele poderia registrar o nmero de clientes no sistema de filas e otempo de espera de qualquer cliente que acabasse de ter completado seu tempo de espera.Se for suficiente estimar apenas a mdia em vez da distribuio de probabilidades de cadauma dessas variveis aleatrias, o computador vai meramente adicionar o valor (se houveralgum) no final do intervalo de tempo atual a uma soma cumulativa. As mdias das amos-tras sero obtidas aps a execuo da simulao ter sido finalizada dividindo-se essas somaspelos tamanhos das amostras envolvidos, isto , respectivamente, o nmero total de interva-los de tempo e o nmero total de clientes.

    Para ilustrar esse procedimento estimativo, suponha que a execuo da simulao naTabela 20.1 estivesse sendo usada para estimar W, o tempo de espera de estado estvel espe-rado de um cliente no sistema de filas (incluindo atendimento). Dois clientes chegaramdurante essa execuo da simulao, um durante o primeiro intervalo de tempo e o outrodurante o stimo, e cada um permaneceu no sistema para trs intervalos de tempo. Portanto,desde a durao de cada intervalo de tempo seja 0,1 hora, a estimativa de W

    Est{W} 3 23

    (0,1 hora) 0,3 hora.

    Isso , logicamente, apenas uma estimativa extremamente grosseira, baseada em umtamanho de amostra de apenas 2. Usando a frmula para W dada na Seo 17.6, seu valorverdadeiro W 1/( ) 0,5 hora. Normalmente seria usado um tamanho de amostrabem maior.

    Outra deficincia de se usar apenas a Tabela 20.1 que essa execuo de simulao ini-ciou sem nenhum cliente no sistema, o que faz que as observaes iniciais de tempos deespera tendem a ser ligeiramente menores que o valor esperado quando o sistema se encon-tra em uma condio de estado estvel. J que o objetivo estimar o tempo de espera deestado estvel esperado, importante rodar a simulao por algum tempo sem coletar dadosat que se acredite que o sistema simulado tenha atingido basicamente uma condio de

    TABELA 20.1 Incremento de tempo fixo aplicado ao Exemplo 2

    t, tempo Chegada no Sada no(min) N(t) rA Intervalo? rD Intervalo?

    0 06 1 0,096 Sim

    12 1 0,569 No 0,665 No18 1 0,764 No 0,842 No24 0 0,492 No 0,224 Sim30 0 0,950 No 36 0 0,610 No 42 1 0,145 Sim 48 1 0,484 No 0,552 No54 1 0,350 No 0,590 No60 0 0,430 No 0,041 Sim

  • estado estvel. O segundo suplemento para este captulo no CD-ROM descreve um mtodoespecial para contornar esse problema. Esse perodo esperado para basicamente atingir umacondio de estado estvel antes de coletar dados chamado perodo de aquecimento.

    O incremento pelo prximo evento difere do incremento em tempo fixo em: o rel-gio de simulao incrementado por um valor varivel em vez de um valor fixo de cada vez.Esse valor varivel o tempo do evento que acaba de ocorrer at a ocorrncia do prximoevento de qualquer tipo, isto , o relgio pula de evento em evento. Segue um resumo.

    Resumo do Incremento pelo Prximo Evento1. Avance o tempo para o tempo do prximo evento de qualquer tipo.2. Atualize o sistema determinando seu novo estado que resulta desse evento e gerando alea-

    toriamente o tempo at que a prxima ocorrncia de qualquer tipo de evento possa ocor-rer desse estado (caso no tenha sido previamente gerado). Registre tambm as informa-es desejadas sobre o desempenho do sistema.

    Para esse exemplo, o computador precisa acompanhar dois eventos futuros, isto , aprxima chegada e o prximo trmino de atendimento (se um cliente estiver sendo atendi-do no momento). Esses tempos so obtidos efetuando-se, respectivamente, uma observaoaleatria da distribuio de probabilidades dos tempos entre chegadas e de atendimento.Como antes, o computador efetua uma observao aleatria gerando e usando um nmeroaleatrio. Essa tcnica ser discutida na Seo 20.4. Logo, cada vez que ocorrer uma chega-da ou trmino de atendimento, o computador determina quanto tempo levar at a prximaocorrncia desse evento, adicionar esse tempo ao horrio atual do relgio e depois armaze-nar essa soma em um arquivo. Se o trmino de atendimento no deixar nenhum cliente nosistema, ento a gerao do tempo at o prximo trmino de atendimento adiada at aocorrncia da prxima chegada. Para determinar qual evento vai ocorrer em seguida, o com-putador encontra o menor valor de horrio armazenado no arquivo. Para acelerar o proces-so de manuteno de registros envolvido, linguagens de programao de simulao forne-cem uma rotina de horrios que determina o horrio de ocorrncia e o tipo do prximoevento, avana o horrio e transfere o controle para o subprograma apropriado para o tipode evento.

    A Tabela 20.2 mostra o resultado da aplicao desse mtodo por meio de cinco itera-es do procedimento de incremento pelo prximo evento, iniciando sem nenhum cliente nosistema e usando minutos como unidade de tempo. Para referncia posterior, inclumos osnmeros aleatrios uniformes rA e rD usados para gerar os tempos entre chegadas e os tem-pos de atendimento, respectivamente, pelo mtodo a ser descrito na Seo 20.4. Esses rA erD so os mesmos usados na Tabela 20.1 de modo a fornecer uma comparao mais consis-tente entre os dois mecanismos de avano do tempo.

    Os arquivos em Excel deste captulo no Courseware de PO incluem um procedimentoautomtico, chamado Queueing Simulator, para aplicao do procedimento de incrementopelo prximo evento em diversos tipos de sistemas de filas. O sistema pode ter um ou vriosatendentes. Encontram-se disponveis diversas opes (exponenciais, de Erlang, degenera-das, uniformes ou exponenciais transformadas) para as distribuies de probabilidades detempos entre chegadas e tempos de atendimento. A Figura 20.4 ilustra a entrada e sada

    20.1 A ESSNCIA DA SIMULAO 11

    TABELA 20.2 Incremento pelo prximo evento aplicado ao Exemplo 2

    Next Nextt, tempo Interarrival Service Prxima Prxima Prximo(min) N(t) rA Time rD Time Chegada Sada Evento

    0 0 0,096 2,019 2,019 Chegada2,019 1 0,569 16,833 0,665 13,123 18,852 15,142 Sada

    15,142 0 18,852 Chegadal18,852 1 0,764 28,878 0,842 22,142 47,730 40,994 Sada40,994 0 47,730 Chegadal47,730 1

  • (usando horas como unidade) da aplicao do Queueing Simulator ao exemplo atual parauma execuo de simulao com 10.000 chegadas de clientes. Usando-se a notao para asdiversas medidas de desempenho para sistemas de filas introduzida na Seo 17.2, a colunaF fornece a estimativa de cada uma dessas medidas obtidas pelo processamento da simula-o. Usando-se as frmulas fornecidas na Seo 17.6 para um sistema de filas M/M/1, osvalores reais dessas medidas so L 1,5; Lq 0,9; W 0,5; Wq 0,3; P0 0,4 e Pn 0,4(0,6)n. As colunas G e H mostram o intervalo de confiana de 95% correspondente paracada uma dessas medidas. Note que esses intervalos de confiana so ligeiramente maisamplos que o esperado aps um processamento de simulao to longo. Em geral, sonecessrios processamentos de simulao surpreendentemente longos para se obter estima-tivas relativamente precisas (intervalos de confiana estreitos) para as medidas de desempe-nho de um sistema de filas (ou para a maioria dos sistemas estocsticos).

    O procedimento de incremento pelo prximo evento consideravelmente mais bemadequado a esse exemplo e a sistemas estocsticos similares que o procedimento de incre-mentos de tempo fixos. O procedimento de incremento pelo prximo evento requer umnmero menor de iteraes para cobrir o mesmo perodo de simulao, alm de gerar umaprogramao precisa da evoluo do sistema em vez de uma aproximao grosseira.

    O procedimento de incremento pelo prximo evento ser ilustrado novamente nosegundo suplemento para este captulo contido no CD-ROM no contexto de um experimen-to estatstico completo para estimativa de certas medidas de desempenho para outro sistemade filas. Esse suplemento tambm descreve o mtodo estatstico que usado pelo QueueingSimulator para obter seus intervalos de confiana e estimativas pontuais.

    Ainda ficaram sem resposta diversas perguntas pertinentes sobre como conduzir umestudo de simulao desse tipo. Essas respostas so apresentadas em um contexto maisamplo em sees posteriores.

    Mais Exemplos no Courseware de PO

    Os exemplos de simulao so mais fceis de serem compreendidos quando puderem serobservados em ao, em vez de simples comentrios em uma pgina de um livro. Portanto,o setor de simulao do Tutorial IOR inclui um procedimento automtico intituladoAnimation of a Queueing System (Animao de um Sistema de Filas) que mostra uma

    12 CAPTULO 20 SIMULAO

    FIGURA 20.4A sada obtida pelo emprego do Queueing Simulator incluso nos arquivos em Excel deste captulo para realizar umasimulao do Exemplo 2 ao longo de um perodo de 10.000 chegadas de cliente.

  • A simulao uma tcnica extremamente verstil. Ela pode ser usada (com diversos grausde dificuldade) para investigar praticamente qualquer tipo de sistema estocstico. Essa ver-satilidade fez da simulao a tcnica de PO mais largamente utilizada para estudos quelidam com tais sistemas e sua popularidade continua a crescer.

    Por causa da enorme diversidade de suas aplicaes, torna-se impossvel enumerartodas as reas especficas nas quais a simulao vem sendo usada. Entretanto, descrevere-mos brevemente aqui algumas categorias particularmente importantes de aplicaes.

    As trs primeiras categorias dizem respeito a tipos de sistemas estocsticos considera-dos em alguns dos captulos precedentes. comum usarmos os tipos de modelos matemti-cos descritos naqueles captulos para analisar verses simplificadas do sistema e depois apli-car a simulao para refinar os resultados.

    Projeto e Operao de Sistemas de Filas

    A Seo 17.3 fornece muitos exemplos de sistemas de filas comumente encontrados, queilustram como tais sistemas invadiram diversas reas da sociedade. Muitos modelosmatemticos se encontram disponveis (incluindo aqueles apresentados no Captulo 17)para anlise de sistemas de filas relativamente simples. Infelizmente, esses modelos socapazes de fornecer, na melhor das hipteses, apenas aproximaes grosseiras para sis-temas de filas mais complexos. Entretanto, a simulao se ajusta bem para lidar atmesmo com sistemas de filas muito complexos e, portanto, muitas de suas aplicaesrecaem nessa categoria.

    Os dois exemplos demonstrativos de simulao no Tutor PO (ambos lidando com ocaso de quantos caixas disponibilizar para os clientes de um banco) so desse tipo. Pelo fatode as aplicaes de simulao serem to dominantes, nosso Courseware de PO inclui umprocedimento automtico denominado Queueing Simulator (ilustrado anteriormente naFigura 20.4) para simulao de sistemas de filas. Esse procedimento especial fornecido emum dos arquivos Excel deste captulo.

    20.2 ALGUNS TIPOS COMUNS DE APLICAES DE SIMULAO 13

    20.2 ALGUNS TIPOS COMUNS DE APLICAES DE SIMULAO

    simulao na qual se pode observar na prtica os clientes entrando e saindo de um sistemade filas. Logo, ver essa animao ilustra a seqncia de eventos que o procedimento deincremento pelo prximo evento geraria durante a simulao de um sistema de filas. Almdisso, a rea de simulao do Tutor PO inclui dois exemplos demonstrativos que deveriamser vistos neste momento.

    Ambos os exemplos demonstrativos envolvem um banco que planeja abrir uma novaagncia. As questes so quantos caixas (postos de atendimento) oferecer e quantos caixas(funcionrios) ter em servio no incio de atividade. Portanto, o sistema estudado um sis-tema de filas. Entretanto, ao contrrio do sistema de fila M/M/1 que acabamos de conside-rar no Exemplo 2, esse sistema de filas muito complicado para ser resolvido de forma ana-ltica. Esse sistema tem vrios atendentes (caixas) e as distribuies de probabilidades detempos entre chegadas e tempos de atendimento no se ajustam aos modelos tradicionais dateoria das filas. Alm disso, na segunda demonstrao, decidiu-se que uma categoria declientes (comerciantes) deve receber prioridade no-preemptiva em relao aos demaisclientes, porm, as distribuies de probabilidades para essa categoria so diferentes daque-las dos demais clientes. Essas complicaes so tpicas daquelas que podem ser prontamen-te incorporadas em um estudo de simulao.

    Em ambas as demonstraes, voc poder ver clientes chegando e clientes atendidosdeixarem o sistema, bem como o procedimento de incremento pelo prximo evento aplica-do simultaneamente execuo da simulao.

    As demonstraes tambm introduzem um procedimento interativo denominadoInteractively Simulate Queueing Problem (Problema de Fila com Simulao Inte-rativa) do Tutorial IOR que voc achar muito til ao lidar com alguns dos problemas nofinal deste captulo.

  • Entre as sete aplicaes consagradas apresentadas na Seo 17.3, duas delas tambmfazem uso intenso de simulao. Uma o estudo do sistema de deteno para acusao dacidade de Nova York que levou a grandes melhorias na eficincia desse sistema, bem como auma economia anual de US$ 9,5 milhes. A outra o caso da AT&T que desenvolveu um sis-tema baseado em PCs para ajudar seus clientes comerciais no desenho ou redesenho de seuscall centers, resultando em lucro anual de mais de US$ 750 milhes para esses clientes.

    Administrando Sistemas de Estoque

    As Sees 18.6 e 18.7 apresentam modelos para a administrao de sistemas de estoquequando os produtos envolvidos mostram uma demanda incerta. A Seo 18.8 descreve ostipos de sistemas de estoque maiores que comumente surgem na prtica. Embora os mode-los matemticos possam algumas vezes ajudar a analisar esses sistemas mais complicados,a simulao tambm desempenha papel fundamental.

    Como exemplo, podemos citar o artigo da edio de abril de 1996 da OR/MS Today quedescreve um estudo de PO desse tipo, que foi realizado para a IBM PC Company da Europa.Enfrentando implacvel presso de concorrentes cada vez mais geis e agressivos, a empre-sa tinha de encontrar uma maneira de melhorar substancialmente seu desempenho no aten-dimento rpido de encomendas feitas pelos clientes. A equipe de PO analisou como fazerisso, simulando os diversos redesenhos de toda a cadeia de suprimento da empresa (a redede instalaes e recursos que abrangem a aquisio, manufatura e distribuio, inclusive detodos os estoques acumulados ao longo da cadeia). Isso levou a profundas mudanas nodesenho e na operao da cadeia de suprimento (incluindo seus sistemas de estoque) quemelhoraram substancialmente a posio competitiva da empresa. Foi alcanada tambmuma economia em custos diretos de US$ 40 milhes por ano.

    A Seo 20.6 vai ilustrar a aplicao da simulao a um tipo de sistema de estoque rela-tivamente simples.

    Estimativas da Probabilidade de Completar um Projeto dentro do Prazo

    Uma das principais preocupaes de um gerente de projetos se sua equipe ser capaz decompletar determinado projeto dentro do prazo. A Seo 22.4 (no CD-ROM) descreve comoa metodologia Pert de trs estimativas pode ser usada para se obter uma estimativa grossei-ra da probabilidade de atender o prazo de um projeto atual. Esta seo tambm descreve trsaproximaes simplificadoras feitas por essa metodologia para estimar essa probabilidade.Infelizmente, em decorrncia dessas aproximaes, a estimativa resultante demasiadamen-te otimista e algumas vezes difere em muito da realidade.

    Conseqentemente, est se tornando cada vez mais comum usar-se simulao paraobter melhor estimativa dessa probabilidade. Isso envolve a gerao de observaes aleat-rias das distribuies de probabilidades da durao das diversas atividades nos projetos.Usando-se a rede de projetos, fica fcil ento simular quando cada atividade se inicia e ter-mina e, portanto, quando o projeto termina. Repetindo-se essa simulao milhares de vezes(em uma execuo em um computador), pode-se obter uma estimativa muito boa da proba-bilidade de se cumprir o prazo.

    Uma ilustrao detalhada desse tipo particular de aplicao pode ser encontrada naSeo 28.2 do CD-ROM.

    Projeto e Operao de Sistemas de Manufatura

    Pesquisas demonstram que grande parte das aplicaes de simulao envolvem sistemasde manufatura. Muitos desses sistemas podem ser vistos como um sistema de filas dealgum tipo (por exemplo, um sistema de filas no qual as mquinas so os atendentes e astarefas a serem processadas so os clientes). Entretanto, vrios fatores complicadores ine-rentes a esses sistemas (como quebras de mquinas ocasionais, produtos com defeito queprecisam ser retrabalhados e diversos tipos de tarefas) vo alm do escopo dos modelos

    14 CAPTULO 20 SIMULAO

  • de filas usuais. Tais fatores complicadores podem ser tratados prontamente por meio dasimulao.

    Eis alguns exemplos dos tipos de questes que poderiam ser resolvidas.

    1. Quantas mquinas de cada tipo deveriam ser providenciadas?2. Quantas unidades de manipulao de materiais de cada tipo deveriam ser providenciadas?3. Considerando-se prazos para trmino de todo o processo produtivo, que regra deveria

    ser usada para escolher a ordem na qual as tarefas alocadas no momento a uma mqui-na deveriam ser processadas?

    4. Que prazos de entrega seriam realistas para tais tarefas?5. Qual ser o gargalo em termos de operaes em um novo processo produtivo em con-

    formidade com seu projeto atual?6. Qual ser a produo (taxa de produo) de um novo processo produtivo?

    Projeto e Operao de Sistemas de Distribuio

    Qualquer indstria de porte precisa de um sistema de distribuio eficiente para distribuiros produtos de suas fbricas e depsitos para seus clientes. Existem muitas incertezas envol-vidas na operao de um sistema destes. Quando estaro disponveis veculos para transpor-te dos produtos? Quanto tempo levar para carreg-los e transport-los? Quais sero asdemandas dos diversos clientes? Gerando-se observaes aleatrias das distribuies de pro-babilidades relevantes, a simulao pode lidar prontamente com esses tipos de incertezas.Logo, ela usada com bastante freqncia para testar diversas possibilidades para aperfei-oamento do projeto e operao desses sistemas.

    Uma aplicao consagrada desse tipo descrita na edio de janeiro-fevereiro de 1991da Interfaces. A Reynolds Metal Company gasta mais de US$ 250 milhes anuais para entre-gar seus produtos e receber matrias-primas. O transporte feito por caminho, trem, navioe avio por meio de uma rede de mais de uma centena de locais para despacho entre fbri-cas, depsitos e fornecedores. Uma combinao de programao inteira binria mista(Captulo 11) e simulao foi usada para projetar um novo sistema de distribuio com des-pacho centralizado. O novo sistema melhorou tanto a entrega pontual das mercadorias comoreduziu os custos anuais com frete em mais de US$ 7 milhes.

    Anlise de Risco Financeiro

    A anlise de risco financeiro foi uma das primeiras reas de aplicao da simulao e elacontinua a ser uma rea muito ativa. Por exemplo, considere a avaliao de uma propostade investimento de capital com fluxos de caixa futuros incertos. Gerando-se observaesaleatrias a partir das distribuies de probabilidades para o fluxo de caixa em cada um dosrespectivos perodos (e considerando-se as relaes entre esses perodos), a simulao capaz de gerar milhares de cenrios de como resultar o investimento. Isso fornece umadistribuio de probabilidades do retorno (por exemplo, valor presente lquido) sobre oinvestimento. Essa distribuio (algumas vezes chamada perfil de risco) permite que osadministradores avaliem o risco envolvido em fazer um investimento.

    Uma abordagem similar permite analisar o risco associado a investir em diversospapis, incluindo os mais exticos instrumentos financeiros, como opes de venda, opesde compra, mercado de futuros, aes etc.

    A Seo 28.4 do CD-ROM fornece um exemplo detalhado do emprego da simulaona anlise de risco financeiro.

    Aplicaes na rea da Sade

    Sade outra rea onde, assim como na avaliao de riscos em investimentos, a anlise dasincertezas futuras fundamental para a tomada de deciso no momento. Entretanto, em vezde lidar com fluxos de caixa futuros incertos, as incertezas agora envolvem coisas, como aevoluo de doenas do ser humano.

    20.2 ALGUNS TIPOS COMUNS DE APLICAES DE SIMULAO 15

  • Conforme demonstrado pelos exemplos da Seo 20.1, implementar um modelo de simula-o requer nmeros aleatrios para se obter observaes aleatrias a partir das distribuiesde probabilidades. Um mtodo para gerao de tais nmeros aleatrios usar um dispositi-vo fsico como um disco giratrio ou um gerador aleatrio eletrnico. Diversas tabelas denmeros aleatrios foram geradas dessa forma, inclusive uma contendo 1 milho de dgitosaleatrios, publicada pela Rand Corporation. Um trecho dessa tabela da Rand fornecido naTabela 20.3.

    Os dispositivos fsicos agora foram substitudos por computadores como principalfonte para gerao de nmeros aleatrios. Por exemplo, destacamos na Seo 20.1 que o

    16 CAPTULO 20 SIMULAO

    20.3 GERAO DE NMEROS ALEATRIOS

    Eis alguns exemplos dos tipos de simulaes que podem ser realizados para orientar odesenvolvimento de sistemas para a rea da sade.

    1. Simular o emprego de recursos hospitalares ao tratar pacientes com doenas coronarianas.2. Simular despesas com sade em diferentes planos de seguro.3. Simular o custo e a eficincia de check-ups para a deteco precoce de doenas.4. Simular o emprego do complexo de servios cirrgicos em um centro mdico.5. Simular o tempo e a localizao de pedidos de ambulncias.6. Simular a aceitao de rins doados em receptores para transplante.7. Simular a operao de um pronto-socorro.

    Aplicaes em Outros Segmentos de Servios

    Assim como na sade, outros segmentos de servios tambm provaram ser terreno frtil paraa aplicao de simulao. Entre esses segmentos podemos destacar: servios governamen-tais, bancos, hotelaria, restaurantes, instituies educacionais, planejamento contra desas-tres, as foras armadas, centros de entretenimento e muitos outros. Em muitos casos, os sis-temas simulados so, na verdade, sistemas de filas de algum tipo.

    A edio de janeiro-fevereiro de 1992 da Interfaces descreve uma aplicao consagra-da nessa categoria. O United States Postal Service identificou a tecnologia de automaocomo a nica maneira de ele poder lidar com o crescente volume de correspondncias eoutros tipos de remessas e, ao mesmo tempo, ter preos competitivos e atender s metas deatendimento. Foi necessrio um extensivo planejamento ao longo de vrios anos para fazera converso para um sistema altamente automatizado que atendesse a essas metas. A espi-nha dorsal de uma anlise que levasse ao plano adotado foi realizada por um modelo desimulao abrangente chamado Meta (modelo para avaliao de alternativas tecnolgicas).Esse modelo foi aplicado pela primeira vez de forma extensiva e em todo o territrio norte-americano e ento transferido para o nvel local para planejamento detalhado. O planoresultante precisava de um investimento total na casa de US$ 12 bilhes, mas tambm foiprojetado para alcanar economias de mais de US$ 4 bilhes por ano. Outra conseqnciadessa aplicao bem-sucedida da simulao foi que o valor das ferramentas de PO agora reconhecido nos mais altos escales do Correio norte-americano. Tcnicas de pesquisaoperacional continuam a ser usadas pelo pessoal de planejamento tanto na matriz quantonas filiais.

    Novas Aplicaes

    Aplicaes mais inovadoras de simulao esto sendo feitas a cada ano que passa. Muitasdessas aplicaes so anunciadas publicamente pela primeira vez na conferncia anualWinter Simulation Conference, realizada no ms de dezembro em alguma cidade dosEstados Unidos. Desde seu princpio em 1967, essa conferncia tem sido uma instituiono campo da simulao. Atualmente participam dessa conferncia quase mil indivduos,divididos de forma aproximadamente igual entre acadmicos e profissionais da rea.Centenas de trabalhos so apresentados para anunciar avanos na metodologia, bem comonovas aplicaes.

  • Excel usa a funo RAND() para essa finalidade. Muitos outros pacotes de software tam-bm possuem a capacidade de gerar nmeros aleatrios sempre que necessrio duranteuma simulao.

    Caractersticas dos Nmeros Aleatrios

    O procedimento usado por um computador para obter nmeros aleatrios chamado gera-dor de nmeros aleatrios.

    Um gerador de nmeros aleatrios um algoritmo que produz seqncias denmeros que seguem uma distribuio de probabilidades especificada e possui oaspecto de aleatoriedade.

    A referncia s seqncias de nmeros significa que o algoritmo produz diversos nmerosaleatrios de uma forma serial. Embora um usurio comum normalmente possa precisarapenas de alguns nmeros, geralmente o algoritmo deve ser capaz de produzir muitos nme-ros. A distribuio de probabilidades implica que a declarao de probabilidade possa serassociada ocorrncia de cada nmero produzido pelo algoritmo.

    Iremos reservar o termo nmero aleatrio para significar uma observao aleatriade alguma forma de distribuio uniforme, de modo que todos os possveis nmeros sejamigualmente provveis. Quando estivermos interessados em alguma outra distribuio deprobabilidades (como na seo seguinte), iremos usar o termos observaes aleatriasdessa distribuio.

    Os nmeros aleatrios podem ser divididos em duas categorias principais, nmerosaleatrios inteiros e nmeros aleatrios uniformes, definidos como se segue:

    Um nmero aleatrio inteiro uma observao aleatria de uma distribuiouniforme discretizada ao longo de algum intervalo n

    , n

    1, . . . , n. As probabilida-

    des para essa distribuio so

    P(n

    ) P(n

    1) . . . P(n) 1 .n n 1

    20.3 GERAO DE NMEROS ALEATRIOS 17

    TABELA 20.3 Tabela de dgitos aleatrios

    09656 96657 64842 49222 49506 10145 48455 23505 90430 0418024712 55799 60857 73479 33581 17360 30406 05842 72044 9076407202 96341 23699 76171 79126 04512 15426 15980 88898 0635884575 46820 54083 43918 46989 05379 70682 43081 66171 3894238144 87037 46626 70529 27918 34191 98668 33482 43998 75733

    48048 56349 01986 29814 69800 91609 65374 22928 09704 5934341936 58566 31276 19952 01352 18834 99596 09302 20087 1906373391 94006 03822 81845 76158 41352 40596 14325 27020 1754657580 08954 73554 28698 29022 11568 35668 59906 39557 2721792646 41113 91411 56215 69302 86419 61224 41936 56939 27816

    07118 12707 35622 81485 73354 49800 60805 05648 28898 6093357842 57831 24130 75408 83784 64307 91620 40810 06539 7038765078 44981 81009 33697 98324 46928 34198 96032 98426 7748804294 96120 67629 55265 26248 40602 25566 12520 89785 9393248381 06807 43775 09708 73199 53406 02910 83292 59249 18597

    00459 62045 19249 67095 22752 24636 16965 91836 00582 4672138824 81681 33323 64086 55970 04849 24819 20749 51711 8617391465 22232 02907 01050 07121 53536 71070 26916 47620 0161950874 00807 77751 73952 03073 69063 16894 85570 81746 0756826644 75871 15618 50310 72610 66205 82640 86205 73453 90232

    Fonte: Reproduzido com a permisso da The Rand Corporation. A Million Random Digits with 100,000 NormalDeviates. Copyright pela The Free Press, Glencoe, IL, 1955, parte superior da pgina 182.

  • Normalmente, n

    0 ou 1, e esses so valores convenientes para a maioria das aplicaes.Se n

    tiver outro valor, ento subtraindo-se n

    ou ento n

    1 do nmero aleatrio inteiro

    muda-se o trecho inferior do intervalo para 0 ou ento 1.

    Um nmero aleatrio uniforme uma observao aleatria de uma distribuio uniforme(contnua) ao longo de algum intervalo [a, b]. A funo densidade probabilstica dessa dis-tribuio uniforme

    b 1

    a se a x bf(x)

    0 caso contrrio.

    Quando a e b no forem especificados, supe-se que eles sejam a 0 e b 1.Os nmeros aleatrios gerados inicialmente por um computador normalmente so

    nmeros aleatrios inteiros. Entretanto, se desejado, esses nmeros podem ser imediatamen-te convertidos em um nmero aleatrio uniforme como se segue:

    Para dado nmero aleatrio inteiro no intervalo 0 a n, dividir esse nmero por n resulta(aproximadamente) em um nmero aleatrio uniforme. Se n for pequeno, essa aproxima-o deve ser melhorada somando-se 12 ao nmero aleatrio inteiro e depois dividindo-sepor n 1.

    Esse o mtodo usual para gerao de nmeros aleatrios uniformes. Com os valores imen-sos de n comumente usados, ele passa a ser essencialmente um mtodo exato.

    A rigor, os nmeros gerados por um computador no deveriam ser designados nme-ros aleatrios, pois eles so previsveis e reproduzveis (o que, algumas vezes, vantajoso),dado o gerador de nmeros aleatrios empregado. Portanto, s vezes, eles recebem a deno-minao nmeros pseudo-aleatrios. Entretanto, o ponto importante que eles desempe-nham satisfatoriamente o papel de nmeros aleatrios na simulao se o mtodo usado parager-los for vlido.

    Foram propostos vrios procedimentos estatsticos relativamente sofisticados para tes-tar se uma seqncia de nmeros gerada tem um aspecto aceitvel de aleatoriedade.Basicamente, as exigncias so que cada nmero sucessivo da seqncia tenha uma proba-bilidade igual de assumir qualquer um dos valores possveis e que ele seja estatisticamenteindependente dos demais nmeros da seqncia.

    Mtodos Congruentes para Gerao de Nmeros Aleatrios

    H uma srie de geradores de nmeros aleatrios disponvel, dos quais os mais popularesso os mtodos congruentes (aditivos, multiplicativos e mistos). O mtodo congruente mistoinclui recursos dos outros dois e, portanto, iremos apresent-lo em primeiro lugar.

    O mtodo congruente misto gera uma seqncia de nmeros aleatrios inteiros aolongo do intervalo que vai de 0 a m 1. O mtodo sempre calcula o nmero aleatrioseguinte a partir do ltimo obtido, dado um nmero aleatrio inicial x0, chamado semente,que pode ser obtido de alguma fonte publicada como a tabela Rand. Particularmente, ele cal-cula o (n 1)o nmero aleatrio xn 1 a partir do n-simo nmero aleatrio xn usando arelao de recorrncia

    x n 1 (axn c)(mdulo m),em que a, c e m so inteiros positivos (a m, c m). Essa notao matemtica significaque x n 1 o resto quando axn c for dividido por m. Logo, os possveis valores de x n 1so 0, 1, . . . , m 1, de modo que m represente o nmero desejado de valores diferentesque poderiam ser gerados para os nmeros aleatrios.

    Para fins ilustrativos, suponha que m 8, a 5, c 7 e x0 4. A seqncia de nme-ros aleatrios resultante calculada na Tabela 20.4. A seqncia no pode ser continuadaalm, pois ela simplesmente comearia a repetir os nmeros na mesma ordem. Note que essaseqncia inclui cada um dos oito nmeros possveis exatamente uma vez. Essa proprieda-de necessria para uma seqncia de nmeros aleatrios inteiros, mas ela no ocorre com

    18 CAPTULO 20 SIMULAO

  • alguns valores de a e c. Experimente a 4, c 7 e x0 3. Felizmente, existem regras dis-ponveis para escolha dos valores de a e c que garantiro o cumprimento dessa propriedade.No h restries na semente x0, porque ela afeta apenas o incio da seqncia e no a pro-gresso dos nmeros.

    O nmero de nmeros consecutivos em uma seqncia antes de ela comear a repetir-se conhecida como durao do ciclo. Logo, a durao do ciclo no exemplo 8. A dura-o de ciclo mximo m, de modo que os nicos valores de a e c considerados sejam aque-les que resultam nessa durao de ciclo mximo.

    A Tabela 20.5 ilustra a converso de nmeros aleatrios inteiros em nmeros aleatriosuniformes. A coluna da esquerda fornece os nmeros aleatrios inteiros obtidos na colunamais direita da Tabela 20.4. A coluna direita fornece os nmeros aleatrios uniformes cor-respondentes a partir da frmula

    Nmero aleatrio uniforme .

    Note que cada um desses nmeros aleatrios uniformes cai no ponto mdio de um dos oitointervalos de igual tamanho 0 a 0,125, 0,125 a 0,25, . . . , 0,875 a 1. O menor valor de m 8 no nos permite obter outros valores ao longo do intervalo [0, 1], portanto estamos obten-do aproximaes relativamente grosseiras dos nmeros aleatrios uniformes reais. Na pr-tica, geralmente so usados valores de m bem maiores.

    A seo de Exemplos Trabalhados no CD-ROM inclui outro exemplo de aplicao domtodo congruente misto com um valor m relativamente menor (m 16) e depois conver-

    nmero aleatrio inteiro 12

    m

    20.3 GERAO DE NMEROS ALEATRIOS 19

    TABELA 20.4 Ilustrao do mtodo congruente misto

    n xn 5xn 7 (5xn 7)/8 xn1

    0 4 27 3 38

    3

    1 3 22 2 68

    6

    2 6 37 4 58

    5

    3 5 32 4 08

    0

    4 0 7 0 78

    7

    5 7 42 5 28

    2

    6 2 17 2 18

    1

    7 1 12 1 48

    4

    TABELA 20.5 Convertendo nmeros aleatrios inteiros em nmeros aleatrios uniformes

    Nmero Aleatrio Inteiro Nmero Aleatrio Uniforme

    3 0,43756 0,81255 0,68750 0,06257 0,93752 0,31251 0,18754 0,5625

  • Dada uma seqncia de nmeros aleatrios, como se pode gerar uma seqncia de observa-es aleatrias de dada distribuio de probabilidades? Existem vrias metodologias dife-rentes, dependendo da natureza da distribuio.

    Distribuies Discretas Simples

    Para algumas distribuies discretas simples, uma seqncia de nmeros aleatrios inteirospode ser usada para gerar observaes aleatrias de forma direta. Simplesmente aloque os

    20 CAPTULO 20 SIMULAO

    20.4 GERAO DE OBSERVAES ALEATRIAS DE UMA DISTRIBUIODE PROBABILIDADES

    te os nmeros aleatrios inteiros resultantes em nmeros aleatrios uniformes. Esse exem-plo explora ento os problemas que surgem do emprego de um valor m to pequeno.

    Para um computador binrio com uma palavra de tamanho b bits, a opo usual para m m 2b; esse o nmero total de inteiros no-negativos que pode ser expresso dentro dacapacidade do tamanho da palavra. Quaisquer inteiros indesejados que surgem na seqnciade nmeros aleatrios simplesmente no so usados. Com essa opo de m, podemos garan-tir que cada nmero possvel ocorre exatamente apenas uma vez antes de qualquer nmeroser repetido selecionando qualquer um dos valores a 1, 5, 9, 13, . . . e c 1, 3, 5, 7, . . .. Para um computador decimal com uma palavra de tamanho d dgitos, a opo usual param m 10d, e a mesma propriedade garantida selecionando-se qualquer um dos valoresa 1, 21, 41, 61, . . . e c 1, 3, 7, 9, 11, 13, 17, 19, . . . (isto , todos os inteiros mparespositivos, exceto aqueles que terminam com o dgito 5). A seleo especfica pode ser feitabaseando-se na correlao serial entre nmeros gerados sucessivamente, que difere consi-deravelmente entre essas alternativas.1

    Ocasionalmente, so desejados nmeros aleatrios inteiros com um nmero de dgitosrelativamente pequeno. Suponha, por exemplo, que sejam desejados apenas trs dgitos, deforma que os possveis valores possam ser expressos como 000, 001, . . . , 999. Em tal caso,o procedimento usual ainda usar m 2b ou m 10d, de forma que um nmero extrema-mente grande de nmeros aleatrios inteiros possa ser gerado antes de a seqncia comeara se repetir. Entretanto, exceto para fins de clculo do prximo nmero aleatrio inteirodessa seqncia, todos, exceto trs dgitos de cada nmero gerado, seriam descartados parase obter o nmero aleatrio inteiro de trs dgitos desejado. Uma conveno pegar os lti-mos trs dgitos (isto , os trs dgitos finais).

    O mtodo congruente multiplicativo apenas o caso especial do mtodo congruentemisto em que c 0. O mtodo congruente aditivo tambm similar, porm ele configuraa 1 e substitui c por algum nmero aleatrio xn precedente na seqncia, por exemplo, xn1(de modo que mais de uma semente seja necessria para comear a calcular a seqncia).

    O mtodo congruente misto fornece enorme flexibilidade na escolha de determinadogerador de nmeros aleatrios (uma combinao especfica de valores para a, c e m).Entretanto, preciso tomar muito cuidado na escolha do gerador de nmeros aleatrios, poisa maioria das combinaes de valores de a, c e m leva a propriedades indesejadas (por exem-plo, uma durao de ciclo menor que m). Quando os pesquisadores identificam geradores denmeros aleatrios interessantes so feitos testes exaustivos em busca de qualquer falha eisso pode levar a um gerador de nmeros aleatrios melhor. Por exemplo, vrios anos atrs,m 231 era considerada uma escolha interessante, porm atualmente os especialistas a con-sideram inaceitvel e esto recomendando em seu lugar certos nmeros muito maiores,inclusive valores especficos de m prximos de 2191.2

    1 Ver COVEYOU, R. R. Serial Correlation in the Generation of Pseudo-Random Numbers. Journal of the As-sociation of Computing Machinery, n. 7, p. 72-74, 1960.

    2 Para recomendaes recentes sobre a escolha do gerador de nmeros aleatrios, ver LECUYER, P. et al. AnObject-Oriented Random-Number Package with Many Long Streams and Substreams. Operations Research,v. 50, p. 1.073-1.075, 2002.

  • possveis valores de um nmero aleatrio aos diversos resultados na distribuio de proba-bilidades em proporo direta s respectivas probabilidades desses resultados.

    Para o Exemplo 1 da Seo 20.1, em que esto sendo simulados lanamentos de umamoeda, os resultados possveis de um lanamento so cara ou coroa, no qual cada resultadotem uma probabilidade igual a 12 de vir a ocorrer. Portanto, em vez de usar nmeros aleat-rios uniformes (como foi feito na Seo 20.1), teria sido suficiente usar dgitos aleatriospara gerar os resultados. Cinco dos dez possveis valores de um dgito aleatrio (digamos,0, 1, 2, 3, 4) seriam associados ao resultado cara e os outros cinco (digamos, 5, 6, 7, 8, 9)ao resultado coroa.

    Como outro exemplo, considere a distribuio de probabilidades do resultado do lan-amento de dois dados. conhecido que a probabilidade de se obter 2 316 (assim como aprobabilidade de se obter 12), a probabilidade de se obter 3 326 e assim por diante. Portanto,316 dos possveis valores de um nmero aleatrio inteiro deve ser associado obteno de 2,

    326 dos valores com a obteno de 3 e assim por diante. Logo, se estiverem sendo usados

    nmeros aleatrios inteiros de dois dgitos, 72 dos 100 valores sero selecionados para con-siderao, de forma que um nmero aleatrio inteiro ser rejeitado se ele assumir qualquerum dos demais 28 valores. Ento, 2 dos 72 valores possveis (digamos, 00 e 01) sero asso-ciados obteno de 2, quatro deles (digamos 02, 03, 04 e 05) associados obteno de 3e assim por diante.

    Usar nmeros aleatrios inteiros dessa forma conveniente quando eles estiveremsendo extrados de uma tabela de nmeros aleatrios ou ento estiverem sendo gerados dire-tamente por um mtodo congruente. Entretanto, ao realizar a simulao em um computador,normalmente mais conveniente fazer que um computador gere nmeros aleatrios unifor-mes e ento us-los da maneira correspondente. Todos os prximos mtodos para geraode observaes aleatrias usam nmeros aleatrios uniformes.

    Mtodo de Transformao Inversa

    Para distribuies mais complicadas, ou discreta ou contnuas, o mtodo da transformaoinversa pode, algumas vezes, ser usado para gerar observaes aleatrias. Fazendo que Xseja a varivel aleatria envolvida, representamos a funo de distribuio cumulativa por

    F(x) P{X x}.Gerar cada observao requer ento as duas etapas a seguir.

    Resumo do Mtodo de Transformao Inversa

    1. Gere um nmero aleatrio uniforme r entre 0 e 1.2. Configure F(x) r e resolva em termos de x, que ento a observao aleatria dese-

    jada da distribuio de probabilidades.Esse procedimento ilustrado na Figura 20.5 para o caso no qual F(x) representado grafi-camente e o nmero aleatrio uniforme r por acaso 0,5269.

    Embora o procedimento grfico ilustrado pela Figura 20.5 seja conveniente se a simu-lao for feita manualmente, o computador tem de reverter a alguma metodologia alternati-va. Para distribuies discretas, pode-se adotar uma metodologia de pesquisa em tabelas,construindo uma tabela que fornea um intervalo (salto) no valor de F(x) para cada pos-svel valor de X x. O Excel dispe de uma funo conveniente, VLOOKUP, para imple-mentar essa metodologia ao realizar uma simulao em uma planilha.

    Para ilustrar o funcionamento dessa funo, suponha que uma empresa esteja simulan-do o programa de manuteno para suas mquinas. O tempo entre quebras dessas mquinas sempre 4, 5 ou 6 dias, em que esses tempos ocorrem, respectivamente, com probabilidades0,25, 0,5 e 0,25. O primeiro passo na simulao dessas quebras criar a tabela mostrada naFigura 20.6 em algum ponto da planilha. Note que cada nmero na segunda coluna fornecea probabilidade cumulativa anterior ao nmero de dias na terceira coluna. A segunda e ter-ceira colunas (abaixo dos cabealhos de coluna) constituem a pesquisa em tabela. A fun-o VLOOKUP possui trs argumentos. O primeiro fornece o endereo da clula que est for-

    20.4 GERAO DE OBSERVAES ALEATRIAS DE UMA DISTRIBUIO 21

  • necendo o nmero aleatrio uniforme sendo usado. O segundo argumento identifica o inter-valo de endereos de clula para a pesquisa em tabela. O terceiro indica qual coluna da pes-quisa em tabela fornece a observao aleatria, portanto esse argumento igual a 2 nessecaso. A funo VLOOKUP com esses trs argumentos introduzida como equao para cadaclula na planilha onde a observao aleatria da distribuio deve ser introduzida.

    Para certas distribuies contnuas, o mtodo de transformao inversa pode ser imple-mentado em um computador resolvendo-se primeiramente a equao F(x) r analiticamen-te em termos de x. Um exemplo na seo de Exemplos Trabalhados no CD-ROM ilustra essaabordagem (aps aplicar primeiramente o mtodo grfico).

    Tambm ilustraremos essa metodologia a seguir com a distribuio exponencial.

    Distribuies Exponenciais e de Erlang

    Conforme indicado na Seo 17.4, a funo de distribuio cumulativa para a distribuioexponencial

    F(x) 1 ex, para x 0,em que 1/ a mdia da distribuio. Configurando-se F(x) r resulta ento em

    1 ex r,

    de modo que

    ex 1 r.

    Portanto, tomando-se o logaritmo natural de ambos os lados

    ln ex ln (1 r),de forma que

    x ln (1 r),

    22 CAPTULO 20 SIMULAO

    Distribuio de tempo entre quebras

    Probabilidade Cumulativa Nmero de Dias

    0,25 0.00 40,5 0,25 50,25 0,75 6

    FIGURA 20.6A tabela que seria construdaem uma planilha paraemprego da funo VLOO-KUP do Excel para implementar o mtodo da transformao inversa para o exemplo do programa de manuteno.

    Observao aleatria

    F(x)

    0

    1

    r 0,5269

    x

    FIGURA 20.5Ilustrao do mtodo datransformao inversa para seobter a observao aleatriade dada distribuio de pro-babilidades.

  • que resulta em

    x ln (

    1

    r)

    como observao aleatria desejada da distribuio exponencial.Essa aplicao direta do mtodo de transformao inversa fornece a maneira mais dire-

    ta de se gerar observaes aleatrias de uma distribuio exponencial. Tambm foramdesenvolvidas tcnicas mais complexas para essa distribuio3 que so mais rpidas para umcomputador do que calcular um logaritmo.

    Observe que 1 r por si s um nmero aleatrio uniforme. Portanto, para economi-zar uma subtrao, comum na prtica simplesmente usar o nmero aleatrio uniforme ori-ginal r diretamente no lugar de 1 r.

    Uma extenso natural desse procedimento para a distribuio exponencial tambmpode ser usada para gerar a observao aleatria de uma distribuio de Erlang (gama)(ver Seo 17.7). A soma de k variveis aleatrias exponenciais independentes, cada umadelas com mdia 1/(k), possui uma distribuio de Erlang com parmetro de forma k emdia 1/. Assim, dada uma seqncia de k nmeros aleatrios uniformes entre 0 e 1, diga-mos, r1, r2, . . . , rk, a observao aleatria desejada da distribuio de Erlang

    x k

    i1ln (

    1

    k

    ri),

    que se reduz a

    x k1 ln

    k

    i1(1 ri),

    em que indica multiplicao. Enfatizando, as subtraes podem ser eliminadas simples-mente usando-se ri diretamente no lugar de 1 ri.

    Distribuies Normais e Qui-quadrado

    Uma tcnica particularmente simples (mas ineficiente) para gerar uma observao aleatriade uma distribuio normal obtida aplicando-se o teorema do limite central. Como umnmero aleatrio uniforme tem uma distribuio uniforme de 0 a 1, ela possui mdia 12 edesvio-padro 1/12. Portanto, esse teorema implica que a soma de n nmeros aleatriosuniformes tem aproximadamente uma distribuio normal com mdia n/2 e desvio-padron/12. Logo, se r1, r2, . . . , rn forem uma amostra de nmeros aleatrios uniformes, ento

    x n

    i1ri

    n

    2

    uma observao aleatria de uma distribuio aproximadamente normal com mdia edesvio-padro . Essa aproximao excelente (exceto nas caudas da distribuio),mesmo com valores pequenos para n. Logo, valores n de 5 a 10 podem ser adequados; n 12 tambm um valor conveniente, pois ele elimina termos da raiz quadrada daexpresso anterior.

    J que h ampla disponibilidade de tabelas da distribuio normal (ver, por exemplo, oApndice 5), outro mtodo simples para gerar uma aproximao mais justa da observaoaleatria usar uma tabela dessas para implementar diretamente o mtodo de transformaoinversa. Isso bastante conveniente quando estamos gerando algumas observaes aleat-rias manualmente, mas bem menos para implementao por computador j que requer oarmazenamento de uma grande tabela e ento usar uma pesquisa em tabela.

    n/12

    n/12

    20.4 GERAO DE OBSERVAES ALEATRIAS DE UMA DISTRIBUIO 23

    3 Por exemplo, ver AHRENS, J. H.; DIETER, V. Efficient Table-Free Sampling Methods for Exponential, Cauchyand Normal Distributions. Communications of the ACM, v. 31, p. 1.330-1.337, 1988.

  • Diversas tcnicas exatas para gerar observaes aleatrias de uma distribuio normaltambm foram desenvolvidas.4 Essas tcnicas exatas so suficientemente rpidas que, naprtica, so usadas em vez dos mtodos aproximados descritos anteriormente. Uma rotinapara cada uma dessas tcnicas normalmente j est incorporada em um pacote de softwarecom recursos de simulao. Por exemplo, o Excel usa a funo NORMINV(RAND(), ,) para gerar a observao aleatria de uma distribuio normal com mdia e desvio-padro .

    Um mtodo simples para manipular a distribuio qui-quadrado usar o fato que ela obtida somando-se os quadrados das variveis aleatrias normais padronizadas. Logo, sey1, y2, . . . , yn so n observaes aleatrias de uma distribuio normal com mdia 0 e des-vio-padro 1, ento

    x n

    i1yi2

    uma observao aleatria de uma distribuio qui-quadrado com n graus de liberdade.

    Mtodo da Aceitao-Rejeio

    Para muitas distribuies contnuas, no vivel aplicar o mtodo de transformao inver-sa, pois x F 1(r) no pode ser calculado (ou pelo menos calculado de forma eficiente).Portanto, foram desenvolvidos diversos outros tipos de mtodos para gerar observaesaleatrias de tais distribuies. Freqentemente, esses mtodos so consideravelmentemais rpidos que o mtodo de transformao inversa, mesmo quando o ltimo mtodopode ser usado. Para fornecer a mesma noo da abordagem para esses mtodos alterna-tivos, agora ilustraremos uma abordagem chamada mtodo da aceitao-rejeio em umexemplo simples.

    Considere a distribuio triangular com uma funo densidade probabilstica

    f(x)

    O mtodo da aceitao-rejeio usa os dois passos a seguir (talvez repetidamente) para geraruma observao aleatria.

    1. Gere um nmero aleatrio uniforme r1 entre 0 e 1 e faa que x 2r1 (de modo que ointervalo de possveis valores de x se encontre de 0 a 2).

    2. Aceite x com

    Probabilidade para ser a observao aleatria desejada [j que essa probabilidade igual a f(x)]. Casocontrrio, rejeite x e repita os dois passos.Para gerar aleatoriamente o evento de aceitar (ou rejeitar) x de acordo com essa proba-

    bilidade, o mtodo implementa o passo 2 como se segue:

    2. Gere um nmero aleatrio uniforme r2 entre 0 e 1.

    Aceite x se r2 f(x).Rejeite x se r2 f(x).Se x for rejeitado, repita os dois passos.

    Como x 2r1 est sendo aceito com uma probabilidade f(x), a distribuio de probabili-dades de valores aceitos tem f(x) como sua funo densidade, de forma que valores aceitosso observaes aleatrias vlidas de f(x).

    se 0 x 1se 1 x 2,

    x

    1 (x 1)

    se 0 x 1se 1 x 2caso contrrio.

    x

    1 (x 1)0

    24 CAPTULO 20 SIMULAO

    4 Ibid.

  • At ento, este captulo se concentrou principalmente no processo de realizar uma simula-o e algumas aplicaes. Agora, veremos esse material de uma perspectiva mais ampla,descrevendo brevemente todos os passos envolvidos em um importante estudo de pesquisaoperacional que se baseia na aplicao de simulao. Praticamente os mesmos passos tam-bm se aplicam quando o estudo estiver aplicando outras tcnicas de pesquisa operacional.

    Devemos enfatizar que algumas aplicaes de simulao no requerem todo o esforodescrito nos passos a seguir. O advento do Excel e de programas complementares para Excelpara realizar, de forma eficiente, simulaes bsicas em uma planilha (conforme descrito naprxima seo) muitas vezes permite conduzir o estudo em tempo muito menor e mais bara-to que antes. Entretanto, aplicaes mais complexas de simulao ainda exigem o esforoestendido descrito nesta seo.

    Passo 1: Formular o Problema e Planejar o Estudo

    A equipe de pesquisa operacional precisa iniciar agendando uma reunio com a direo pararesolver os seguintes tipos de questes.

    1. Qual o problema que a direo quer que seja estudado?2. Quais so os objetivos gerais do estudo?3. Que questes especficas devem ser resolvidas?4. Que tipos de configuraes de sistema alternativas devem ser considerados?5. Que medidas de desempenho do sistema so de interesse para a direo?6. Quais so as restries de tempo para realizao do estudo?Alm disso, a equipe de PO tambm precisa se reunir com engenheiros e pessoal operacio-nal para conhecer os detalhes de exatamente como o sistema deveria operar. Essa equipegeralmente tambm vai incluir um ou mais membros com um conhecimento prtico do sis-tema. Se existir uma verso atual do sistema em operao, a equipe de PO observar o sis-tema para identificar seus componentes e as ligaes entre eles.

    Antes de concluir essa etapa, o lder da equipe de PO tambm precisa planejar o estu-do geral em termos do nmero de pessoas, suas responsabilidades, o cronograma e o ora-mento para o estudo.

    Passo 2: Coletar os Dados e Formular o Modelo de Simulao

    Os tipos de dados necessrios dependem da natureza do sistema a ser simulado. Para um sis-tema de filas, dados fundamentais seriam a distribuio de tempos entre chegadas e a distri-buio de tempos de atendimento. Para um sistema de estoque de um nico produto, a equi-pe de PO precisaria da distribuio de demanda para o produto e a distribuio do tempo deespera entre colocar um pedido para reabastecer o estoque e receber a quantidade solicita-da. Para um sistema de manufatura envolvendo mquinas que quebram ocasionalmente, aequipe de PO precisa determinar a distribuio do tempo at uma mquina quebrar e a dis-tribuio de tempos de reparo.

    Em cada um desses exemplos, note que so as distribuies de probabilidades dasquantidades relevantes que so necessrias. De modo a gerar cenrios representativos decomo um sistema deveria atuar, essencial que uma simulao gere observaes aleatriasdessas distribuies em vez de simplesmente usar mdias.

    Geralmente, ser possvel apenas estimar essas distribuies. Isso feito aps se fazerobservaes diretas de uma verso existente do sistema em estudo ou de um sistema simi-

    20.5 DESCRIO DE UM IMPORTANTE ESTUDO DE SIMULAO 25

    20.5 DESCRIO DE UM IMPORTANTE ESTUDO DE SIMULAO

    Fomos felizardos nesse exemplo que o maior valor de f(x) para qualquer x era exata-mente 1. Se esse maior valor fosse, ao contrrio, L 1, ento r2 seria multiplicado por L nopasso 2. Com esse ajuste, o mtodo facilmente estendido para outras funes densidadeprobabilsticas ao longo de um intervalo finito e conceitos similares podem ser usados aolongo de um intervalo infinito tambm.

  • lar. Aps examinar esses dados para determinada quantidade, se a forma da distribuio nofor clara, mas relembrar a forma de um tipo padro de distribuio, poder ser usado umteste de aderncia de valor estatstico para testar se os dados se ajustam a essa forma-padro. Conforme descrito na Referncia Selecionada 14, testes desse tipo amplamente usa-dos so os testes do qui-quadrado, Kolmogorov-Smirnov e Anderson-Darling. Diversospacotes de software de simulao podem aplicar um teste destes para identificar a forma dadistribuio. Por exemplo, o pacote Crystal Ball introduzido na Seo 20.6 inclui uma exten-sa gama de distribuies e um recurso especial para identificar qual distribuio melhor seajusta aos dados histricos, conforme descrito em detalhes na Seo 28.6 do CD-ROM. Amdia da amostra e a varincia da amostra dos dados tambm fornecem uma estimativa damdia e da varincia da distribuio. Se no se puder obter nenhum dado relevante em razoda inexistncia de um sistema similar, outras possveis fontes de informao para estimati-va de uma distribuio so os estudos de tempo de engenharia industrial, registros de enge-nharia, manuais de operao, especificaes de mquinas e entrevistas com indivduos comexperincia similar nesses tipos de operaes.

    Normalmente formulado um modelo de simulao em termos de um diagrama defluxo que rene os diversos componentes do sistema. So fornecidas regras de operaopara cada componente, inclusive as distribuies de probabilidades que controlam quan-do os eventos vo ocorrer ali. O modelo precisa apenas conter detalhes suficientes paracapturar a essncia do sistema. Para um estudo mais amplo uma boa idia iniciar formu-lando e depurando uma verso relativamente simples do modelo antes de acrescentar deta-lhes importantes.

    Passo 3: Verifique a Preciso do Modelo de Simulao

    Antes de construir um programa de computador, a equipe de PO deve juntar as pessoas maisintimamente familiarizadas com a questo de como o sistema vai operar na verificao dapreciso do modelo de simulao. Isso normalmente feito realizando-se um ensaio estru-turado do modelo conceitual, usando-se um retroprojetor, diante de um pblico formado portodas as pessoas-chave. Em uma tpica reunio destas, diversas suposies de modelo err-neas sero descobertas e corrigidas, algumas poucas suposies sero acrescidas e algumasquestes sero resolvidas em relao profundidade de detalhes necessria nas diversas par-tes do modelo.

    Alm de ajudar a garantir a preciso do modelo de simulao, esse processo tende afornecer as pessoas-chave com algum senso de propriedade do modelo e do estudo.

    Passo 4: Selecionar o Software e Construir um Programa de Computador5

    Existem quatro classes principais de software usadas para simulaes via computador. Umadelas a planilha de software. O Exemplo 1 da Seo 20.1 ilustrou como o Excel capazde realizar algumas simulaes bsicas em uma planilha. Alm disso, alguns excelentes pro-gramas complementares para Excel agora esto disponveis para aperfeioar esse tipo demodelagem de planilha. A prxima seo se concentra no uso desses programas.

    As outras trs classes de software para simulaes se destinam a aplicaes mais exten-sivas em que no mais conveniente usar planilha software. Uma classe destas uma lin-guagem de programao de propsito genrico, como o C, Fortran, Pascal, Basic etc. Taislinguagens (e suas predecessoras) normalmente eram usadas nos primrdios da rea em vir-tude de sua grande flexibilidade para programar qualquer tipo de simulao. Entretanto, emdecorrncia de um tempo considervel de programao elas no so to usadas hoje em dia.

    A terceira classe uma linguagem de simulao de propsito genrico. Essas lingua-gens fornecem muitos dos recursos necessrios para programar um modelo de simulao e,

    26 CAPTULO 20 SIMULAO

    5 Essa subseo no tenta enumerar ou descrever os vrios pacotes de software de simulao disponveis nomomento. Para detalhes sobre uma srie de pacotes desse tipo, ver as pesquisas de software de simulao naspginas 45-51 da edio de maio de 2002 da IIE Solutions e nas pginas 46-57 da edio de agosto de 2003da OR/MS Today.

  • portanto, podem eventualmente reduzir substancialmente o tempo de programao exigido.Elas fornecem uma estrutura natural para modelagem de simulao, j que seus construto-res de modelagem bsicos so desenvolvidos especificamente para esse fim. Isso tambmsimplifica a tarefa de modificar e manter um modelo de simulao aps ele ser construdoinicialmente. Alm disso, essas linguagens fornecem uma boa deteco de erros devido adiversos tipos de erro potenciais em um modelo de simulao serem verificados automati-camente. Embora menos flexveis que uma linguagem de programao de propsito genri-co, elas so capazes de programar praticamente qualquer tipo de modelo de simulao.Entretanto, necessria alguma especializao na linguagem.

    Um desenvolvimento-chave nas dcadas de 1980 e 1990 foi o surgimento da quartaclasse de software, chamada simuladores orientados a aplicaes (ou simplesmentesimuladores de forma abreviada). Cada um desses simuladores desenvolvido para simu-lar tipos bastante especficos de sistemas, tal como certos tipos de sistemas de manufatu-ra, computador e comunicaes. Alguns deles so muito especficos (por exemplo, paraengenharia de produo de gs e petrleo ou anlise de usinas de energia nuclear ou fisio-logia cardiovascular). A meta deles ser capaz de construir um programa de simulaopelo uso de menus e grficos, sem a necessidade de programao. Eles so relativamentefceis de aprender e possuem blocos de modelagem intimamente relacionados com o sis-tema de interesse.

    Um simulador pode ser excelente se o sistema que voc pretende simular se ajusta per-feitamente categoria prescrita para o simulador. Entretanto, a prescrio de recursos de sis-tema permitidos tende a ser bastante estreita. Portanto, o principal inconveniente de muitossimuladores o fato de eles serem limitados apenas modelagem daquelas configuraesde sistema que so permitidas pelos seus recursos-padro. Alguns simuladores possuem aopo de incorporar rotinas escritas em uma linguagem de programao de fim genricopara lidar com recursos no-padro. Essa opo freqentemente necessria ao simular sis-temas relativamente complexos.

    Recentemente, essa distino entre linguagens de simulao de propsito genrico esimuladores orientados a aplicaes est se tornando cada vez mais indistinta. Linguagensde simulao de propsito genrico agora podem incluir alguns recursos especiais que astornam quase to adequadas quanto os simuladores para certos tipos especficos de aplica-es. No entanto, os simuladores tendem a incluir maior flexibilidade do que tinham ante-riormente para lidar com uma classe de sistemas mais ampla.

    Outro desenvolvimento fundamental nos ltimos anos foi o de recursos de animaopara exibir simulaes computadorizadas em ao. Em uma animao, elementos-chave deum sistema so representados na tela de um computador por cones que mudam de forma,cor ou posio quando h uma alterao no estado do sistema de simulao. A maioria dosfornecedores de software de simulao atualmente oferece uma verso de seus softwarescom recursos de animao. Alm disso, a animao est se tornando cada vez mais elabora-da, incluindo at recursos tridimensionais em alguns casos.

    A principal razo para a popularidade da animao sua habilidade de transmitir aessncia de um modelo de simulao (ou da execuo de uma simulao) a gerentes e outraspessoas-chave. Isso aumenta incrivelmente a credibilidade da metodologia de simulao.Tambm, a animao pode ser til na depurao do programa de computador para um pro-grama de simulao.

    Passo 5: Testar a Validade do Modelo de Simulao

    Aps o programa de computador ter sido criado e depurado, o prximo passo fundamental testar o modelo de simulao incorporado no programa para ver se ele est fornecendoresultados vlidos para o sistema que est representando. Especificamente, as medidas dedesempenho para o sistema real sero aproximadas de forma suficiente pelos valores dessasmedidas geradas pelo modelo de simulao?

    Essa questo normalmente difcil de se responder, pois a maioria das verses do siste-ma real no existe no momento. Tipicamente, o objetivo da simulao investigar e com-parar diversas configuraes de sistema propostas para ajud-lo a escolher a melhor delas.

    20.5 DESCRIO DE UM IMPORTANTE ESTUDO DE SIMULAO 27

  • Entretanto, alguma verso do sistema real deve estar em operao no momento. Casoisso ocorra, seus dados de desempenho devem ser comparados queles das medidas de sadacorrespondentes geradas por execues-piloto do modelo de simulao.

    Em alguns casos, pode ser que haja um modelo matemtico disponvel para uma ver-so simples do sistema. Nesse caso, esses resultados tambm devem ser comparados com osresultados da simulao.

    Quando no tivermos nenhum dado real disponvel para comparao com os resultadosda simulao, uma possibilidade conduzir um teste de campo para coletar tais dados. Issoenvolveria a construo de um pequeno prottipo de alguma verso do sistema proposto ecoloc-lo em operao. Esse prottipo talvez tambm pudesse ser usado, aps o estudo desimulao ter sido completado, para fazer um ajuste fino do desenho do sistema, antes de osistema real ser instalado.

    Outro teste de val