Método de Monte Carlo e os perigos de ignorar o desvio padrão

Método de Monte Carlo

Este pequeno experimento visa demonstrar o efeito e perigos de fazer dimensionamento a partir da média, desconsiderando o desvio padrão. Utilizaremos o método de Monte Carlo, em Excel, para isto. Download do arquivo.

Suponha a seguinte situação. Uma fábrica produz 10 mil itens por dia, envia para um centro consumidor, e neste, 10 mil itens são consumidos por dia. Pergunta: qual o estoque necessário para suportar a demanda?

Monte01.jpg

Montando num excel, é só considerar uma coluna para produção (10 mil), outra para demanda (10 mil).
Só tem uma fórmula: estoque de hoje = estoque dia anterior + produção – consumo.

Monte02.png

Resposta: É necessário estoque zero. Nada.
Se o mundo fosse determinístico, perfeito, não seria necessário ter item algum em estoque. Produção é igual à demanda, e fim de papo.


 

Mundo não-determinístico

O único problema é que o mundo não é determinístico. É o livre-arbítrio de cada um de nós que decide o que queremos fazer, o que queremos consumir. A soma de todas essas decisões individuais é o mercado. Não controlamos o mercado. É o mercado que dita as regras, e tais regras podem ter um comportamento estatístico modelável (ou não). Para descrever este comportamento estatístico, podemos lançar mão de ferramentas como o Método de Monte Carlo.

Basicamente, o método de Monte Carlo simula o comportamento da fábrica e o do consumidor, segundo alguma distribuição estatística.

Uma normal (ou gaussiana) é completamente definida por uma média e um desvio padrão. Quanto maior o desvio padrão, maior a chance do valor observado estar mais distante da média.

Monte03.png

No mesmo caso descrito, digamos que tanto a produção quanto o consumo sejam modelados por uma normal de média 10 mil e desvio padrão de 3 mil.

Monte04.jpg

O Monte Carlo vai sortear um valor para a produção, que vai ser próximo de 10 mil, talvez um pouco para cima ou um pouco para baixo. 65% dos valores estarão entre 7 mil e 13 mil (mais ou menos um desvio padrão), 95% dos valores estarão entre 4 mil e 16 mil (dois desvios padrões). Portanto, pode haver um dia com consumo muito acima da média, mas tais ocorrências serão raras. Por haver sorteios, este método lembra um cassino, por isso o nome “Monte Carlo”, em referência ao cassino.

Em termos de modelo Excel, usamos a função genNormal(média, desvio) para simular um sorteio de uma variável aleatória normal. Esta função é do pacote Yasai, cujas fórmulas estão contidas na planilha anexa. O Yasai é um pacote open source para simulação em planilha. Alguns pacotes mais famosos são o Cristal Ball e AtRisk.

Para um trial, ou seja, uma rodada aleatória, a produção gira em torno de 10 mil, a demanda também em torno de 10 mil. Estoque inicial igual a zero. Mas o estoque varia ao longo dos dias.

Monte05.png

No gráfico, nota-se que o estoque ficou negativo a maior parte do tempo.

Monte06.png

Para um outro trial:
(para simular outro trial no excel, apertar F9).

Monte07.png

Deve-se simular o modelo diversas vezes e guardar os resultados, para ter massa de dados para compensar o efeito da aleatoriedade de um trial.

Rodando uns 1000 trials neste caso, vai dar que 50% das vezes haverá problemas de desabastecimento e 50% sem problemas.

Na média, o consumo é igual à produção, mas o problema é o desvio padrão. Para suportar tais flutuações, são necessários os estoques.

 

Digamos, um estoque de 7 mil peças dá um aumento da garantia de abastecimento. O estoque tem que ser suficiente para cobrir o efeito somado dos desvios padrões (consumo e produção).

Monte08.jpg

Deve-se variar o estoque inicial, rodar outros tantos 1000 trials, e verificar a probabilidade de desabastecimento.

A pergunta final a responder é: qual o risco que quero correr? Qual o estoque mínimo que compense o custo do desabastecimento?

  • Se o produto não for importante, pode faltar à vontade, e é necessário pouco ou nenhum estoque.
  • Se o produto for crucial, é bom que o estoque seja bem calculado.
  • Quanto maior o custo do desabastecimento, maior o estoque de segurança necessário.

 

O método de Monte Carlo pode ser utilizado para modelar situações complexas da vida real, e fornecer uma estimativa dos riscos associados. O modelo apresentado é muito simples, mas este pode ser tão complicado quanto se queira, com outras distribuições estatísticas, etc.

Ponderar Riscos x Seguros é exatamente a mesma conta de fazer o seguro do carro. Pagar o seguro é salgado, digamos 2 mil reais, mas ter o azar de ter o carro roubado é muito pior, digamos 50 mil reais.

Um seguro, um estoque, custa caro, mas vale a pena se este for dimensionado para evitar um prejuízo ordens de grandeza maior.

 

 

 

Blogs técnicos

Prezados leitores,
Estou lançando hoje mais dois outros blogs, ambos com viés técnico. Um com ferramentas em Excel-VBA, e outro sobre Otimização Matemática.
O de Excel VBA (https://ferramentasexcelvba.wordpress.com/) deriva diretamente de anos de expertise no assunto. Conterá ferramentas plug & play em Excel, automatizando tarefas úteis. Ainda não tem muita coisa, mas a ideia é colocar toda semana algo novo.
SimuladorMinMax.png
O de otimização combinatória (https://analyticsgrainofsand.wordpress.com/) explica métodos matemáticos e disponibiliza uma série de aplicações sobre o assunto. É um dos assuntos mais difíceis da matemática e da computação. Pelo assunto ser muito específico e muito difícil, não há tantas pessoas no Brasil que se interessem tão a fundo. Por isso, a linguagem será o inglês.
simplex.png

O Forgotten Lore é um experimento. Sempre gostei de escrever, e, como em qualquer coisa na vida, tenho que treinar para melhorar. O meu estilo de escrita melhorou imensamente nos últimos meses, graças à prática.
Devido aos muitos feedbacks positivos, me sinto seguro a manter este trabalho e escrever sobre esses outros dois assuntos específicos e muito ricos.
Agradeço aos leitores pela companhia e feedbacks.
Arnaldo Gunzi

Boids e inteligência de enxame

O algoritmo Boids é um algoritmo de inteligência de enxame, inspirado no comportamento de pássaros.

Vide vídeo a seguir.

 

As regras são muito simples. O algoritmo começa com um número X de boids. Cada boid tenta seguir as seguintes regras:

 

  • Cada boid tenta ir em direção ao centro de massa de seus vizinhos mais próximos
  • Cada boid mantém uma distância mínima para outros objetos (inclusive outros boids)
  • Cada um tenta igualar a velocidade com outros boids próximos

 

O engraçado é que são três regras muito simples, que podem gerar uma complexidade e beleza inimaginável.

São inúmeras configurações possíveis, e ninguém sabe de antemão como será a dança dos boids.

 

boids

 

Arnaldo Gunzi

Ago 2015

 

Link do pseudocódigo do Boids

http://www.kfish.org/boids/pseudocode.html

A quadratura do círculo

Na época da Grécia antiga, alguns problemas matemáticos desafiavam a imaginação das melhores cabeças da época. Um desses problemas era a “quadratura do círculo”. Mas o que é esta tal de quadratura do círculo?

Quadratura é o mesmo que medir uma área, e surgiu de problemas usuais, cotidianos. Na época, como se fazia para medir a área de um terreno? É muito fácil se o terreno for um quadrado, basta multiplicar o tamanho do lado ao quadrado, para se chegar a área (não por acaso, a área tem como medida o metro quadrado, pé quadrado, etc).

Mas os terrenos da vida não são quadrados. São irregulares, tortos. E como se faz para medir uma área de forma fácil? Basta separar a área irregular em quadrados, fazer a conta em cada quadrado separado e somar os resultados.
Por isso, medir uma área tornou-se sinônimo de tirar a quadratura do objeto desejado. E isto é o mesmo que desenhar um quadradão com a mesma área do objeto irregular.

Então, para polígonos com linhas retas consigo fazer a quadratura da área. Mas, e para um círculo? Qual a área de um círculo? Qual o quadrado equivalente à área de um círculo? E como construir tal quadrado utilizando apenas régua (sem escalas) e compasso?

Hoje, sabemos que área do círculo é dada por pi*r^2/2. E que o Pi é um número irracional, ou seja, que não pode ser representada por nenhum número fracionário com coeficientes inteiros. Métodos do tipo régua e compasso geram necessariamente resultados fracionários, porque trabalham com medidas conhecidas (como o raio do círculo) que podem ser somadas, divididas por 2, e outras operações simples. Mas não dá para chegar no valor de Pi em um número finito de passos.

Portanto, os gregos não conseguiram quadrar o círculo porque era impossível, pelos métodos utilizados.

Como eram os computadores antes dos computadores?

 

 

Na verdade, não eram computadores, e sim, computadoras. Uma sala cheia de mulheres, cada uma em sua baia, fazendo contas com lápis e papel.

 

As computadoras foram utilizadas no Projeto Manhattan, na Segunda Grande Guerra. O Projeto Manhattan foi o projeto secreto com a finalidade de fabricação da bomba atômica. Para a execução deste, juntaram-se os maiores gênios da física da época, incluindo judeus foragidos da Alemanha Nazista.

Continue a ler o post  no meu blog de tecnologia:

http://exceltequila.wordpress.com/2014/02/01/computadoras/

A solução ótima para o problema errado

De que adianta obter a solução ótima para o problema errado?

solucaoOtima.JPG

Primeiro, uma definição. A solução ótima é a melhor solução possível, analisada do ponto de vista global, para um determinado problema. Nas ciências exatas, as áreas de Pesquisa Operacional, métodos analíticos, têm como objetivo resolver problemas difíceis para encontrar soluções ótimas.

A grande complexidade dos problemas do mundo real não está em resolver com perfeição um problema difícil. Está em formular tal problema. A realidade é, e sempre será, muito mais complexa do que qualquer modelo matemático concebível pelo ser humano. E, para colocar em moldes matemáticos “resolvíveis”, é necessário simplificar a realidade. É aí o calcanhar de Aquiles.

 

Além disso, a solução ótima é ótima para um cenário estacionário. Onde nenhuma hipótese vai mudar, e se tudo continuar da forma que sempre foi. Ora, não foi dada ao ser humano a capacidade de prever o futuro. E quando o mundo mudar? Não seria mais interessante ter respostas rápidas para acompanhar o mundo mutante?

Na natureza, não se encontra um único caso em que dada espécie tente otimizar algum recurso pensando de forma global. Isto porque:

  1. A demanda de energia de processamento para encontrar o ótimo é desproporcionalmente grande
  2. O mundo muda constantemente. Não é possível chegar num ótimo global quando as perguntas mudam. O que pode ser bom hoje não necessariamente será amanhã.
  • Portanto, vejo um extremo desequilíbrio entre os trabalhos acadêmicos desta área e o mundo real. É um caso de “Mura”, do sistema Toyota. Tenta-se resolver com precisão indescritível e métodos cada vez mais mirabolantes os problemas errados. E o por que disto? Talvez em algum post futuro eu tente descrever o que penso.