Numa ocasião, estive a apresentar um modelo de planejamento da produção que desenvolvi no passado. Era um modelo de programação linear inteira mista, horizonte de 18 meses, que balanceava demanda, produção e estoques.
Uma pessoa do público fez uma pergunta. Era algo assim: “O seu modelo é determinístico, mas o mundo pode mudar, há uma série de incertezas. Uma sugestão de melhoria é considerar programação estocástica para obter o melhor resultado sob incertezas”.
Achei a pergunta curiosa, porque a pessoa que fez falou num tom assim, de cima para baixo, como se dissesse “eu sei fazer e você não”.
Ao mesmo tempo que parece uma questão válida, o problema é que implementar algo assim não é nada trivial.
Minha resposta foi em algumas linhas de pensamento:
1 – A solução não precisa ser perfeita, tem que ser melhor do que a atual. Antes do modelo, o analista ficava simulando as produções no Excel e perdia horas processando no braço um monte de informação, inclusive o ETL. A ferramenta automatizava todo o processamento, encontrava uma solução, e aí o analista analisava a solução, mexia nos inputs, colocava ou retirava alguma restrição (como nível de estoque desejado por produto ou prioridade de atendimento, por exemplo). E isso já dava um trabalho considerável, envolvia pelo menos uma dezena de tabelas diferentes.
2 – Incerteza envolve, é claro, não saber o que vai acontecer. A programação estocástica envolve quantificar um pouco da incerteza (tipo, a demanda vai de média – desvio padrão até médio + desvio). Porém, e se desvio for muito maior? Do tipo, um cliente grande dar churn e o volume dele ir a zero. Ou se o Trump começar uma guerra com a China, vai bagunçar tudo muito mais do que uma programação estocástica consegue prever. São tantas variáveis que não tem como um pretenso modelo capturar. E isto pode ser resolvido de outras formas, com outros níveis de processo. A notar, pelo menos dois.
- Num nível mais estratégico: analisar grandes riscos, tentar se precaver com estoques, contratos, precificação, simular cenários de risco.
- Num nível mais tático: pequenas variações podem ser absorvidas pela operação. Se a alteração fosse um pouco maiores, a gente tinha um simulador mais simples, que pegava o plano como um todo e analisava mudanças.
É como eu estar fazendo uma viagem pela Europa. Tenho um plano de roteiro a seguir. A ferramenta me dava este guia base, o melhor plano a seguir.
Podem ocorrer mudanças grandes, do tipo a pessoa que eu iria visitar na Itália não estará por lá, e vou pular esta etapa. São tantas possibilidades neste nível que não tem como otimizar estocasticamente, teria que analisar todas as combinações possíveis e as que podem surgir (ex. o meu amigo agora está na Grécia).
Podem ocorrer mudanças pequenas, como a Torre Eiffel estar fechada no dia que me programei, aí remanejo só o pedaço da França. Tipo adianto outra visita e remarco a torre para o final de semana.
De todo caso, preciso de um plano base para começar minimamente a me planejar. Imprevistos certamente surgirão, e isto envolverá processos diferentes para lidar com eles.
A ferramenta é um pedaço do todo, e nunca vai responder a todas as questões. Apenas a um pedacinho.
Para a pergunta e o modelo citado, na prática, a complexidade aumentaria muito, para um ganho pequeno, e o problema da incerteza pode ser resolvido de outras maneiras.
