Podcast Hipster – Otimização do Planejamento Florestal

Podcast Hipster – Otimização do Planejamento Florestal

Eu e a Andréia Pimentel (Gerente de Planejamento Florestal) participamos do podcast Hipster, com o Paulo Silveira.

Conversamos sobre florestas, modelos de Programação Linear Inteira para planejamento florestal, e experiências da vida real.

Três pontos importantes:
Modelos são vivos, mudando conforme as restrições da vida real mudam.

Para evitar soluções de curto prazo que prejudiquem o longo prazo, há processos estruturados, diversos horizontes de planejamento, indicadores de aderência aos planos e entre horizontes, além de pessoas treinadas tomando conta de cada etapa da decisão.

Há uma gama infindável de trabalhos em Advanced Analytics que podemos atacar na indústria. Ter forte formação matemática, técnica em geral, ajuda muito a resolver problemas de forma assertiva.

Ouça sobre o nosso trabalho em:

Ou, na sua plataforma de podcast preferida, procure por Hipster Ponto Tech.

Como melhorar a fase de grupos nos esportes: escolher oponentes

Como projetar uma boa fase de grupos?

A fase de grupos é aquela em que há grupos com diversos times, dos quais alguns se classificam para a fase seguinte, de mata-mata. Imagine a Copa do Mundo: 8 grupos de 4 times, e todo mundo joga contra todo mundo dentro do grupo.

A fase de grupos serve para eliminar alguns times e ranquear os que vão para próxima etapa.

Há uma série de falhas que ocorrem:
– Manipular jogo final da fase de grupos pensando em fase seguinte (é chamado de “shirking”)
– Time ir bem na fase de grupos e não ter vantagem alguma depois
– “Bad matches”: um time forte pegar uma pedreira e ser eliminado precocemente

Todo mundo que acompanha futebol conhece casos de shirking. Ex. Copa de 2018, última rodada da fase de grupos, Inglaterra x Bélgica. Já classificados e quem vencesse pegaria o Brasil. Ninguém tinha vontade de vencer (a Bélgica acabou vencendo e eliminando o Brasil a seguir).

Lembro de uma época que o Campeonato Brasileiro tinha 20 times, e jogava todo mundo contra todo mundo, para classificar os 8 primeiros para o mata-mata posterior. A rigor, o primeiro colocado jogaria com o oitavo, o segundo contra o sétimo, etc, teoricamente os primeiros tendo vantagem. Na prática, dava na mesma ficar em primeiro ou em oitavo – o objetivo dos times era se classificar, e o que valia mesmo era o mata-mata. Ou seja, uma quantidade enorme de jogos pouco úteis.

Por que um projeto de campeonato com tais defeitos é ruim? Pelo prestígio da competição, interesse dos torcedores (quem vai ver jogo para cumprir tabela?), possíveis problemas legais (houve US$ 1,8 Bi em apostas em 2018), rankings e estatísticas pouco críveis para as fases seguintes.

A Teoria dos Jogos tem aplicação quando há pelo menos dois oponentes, como no Dilema do Prisioneiro. O tema em questão foi mostrado no Informs 2022, da qual participei.

Solução proposta: escolher oponentes. O primeiro da fase de grupos escolhe qualquer um dos outros 7. O segundo escolhe qualquer um dos que não foram escolhidos. E assim sucessivamente.

A solução de escolher oponentes:
– É justo para os primeiros colocados
– Reduz shirking
– Resolve pedreiras

Reduz o shirking porque há um ganho real em ficar em posições melhores no grupo, é justo para os primeiros.

Resolve pedreiras, porque o melhor jogador não vai escolher justamente aquele capaz de o bater.

O design de torneios deve manter competitividade, mas também o interesse do público. Ex. Uma solução possível seria só o primeiro da fase de grupos passar. Só que isso causaria perda de interesse (3/4 dos times eliminados), e não deve ser nada fácil um time ir a outro país, jogar a Copa e ser eliminado. Portanto, este é um exemplo de proposta que não rodaria.

Quem sabe, um dia, a gente não tenha uma Copa do Mundo com escolha de oponentes?

A Teoria dos Jogos é bastante interessante de entender. E melhor ainda, no papel do projetista de torneios (ou de contratos, quem está escrevendo as regras do jogo).

Veja também:

O projeto de mercados, e como a matemática pode salvar vidas

A palestra de encerramento do Informs 2022 foi de Alvin Roth, professor da Harvard Business School e Prêmio Nobel de Economia 2012. Foi uma aula espetacular, com direito a um case extremamente interessante sobre transplante de rins, da qual faço um resumo aqui.

O tema de estudo de Roth é “Como criar regras para bons mercados?”. Ele estudou e ajudou a desenhar marketplaces diversos, em sua carreira.

Características a serem consideradas do mercado:

– Espessura

– Congestionamento

– Segurança

– Simplicidade

A espessura diz respeito ao número de participantes. O marketplace da Amazon, com milhares de vendedores e compradores, é muito mais interessante do que um marketplace de amigos da escola, que será muito menor.

O congestionamento diz respeito a diversos gargalos, seja tempo de transação, restrições diversas, que tornam o mercado ineficiente.

A segurança me lembra os primórdios do e-commerce, meados dos anos 2000. Poucos estavam acostumados com cartão de crédito. Além disso, quem garantiria que o comprador entregaria o produto, após o pagamento? O feedback com a reputação do vendedor, ou o marketplace garantindo devolução ajudaram a dar segurança aos participantes.

Simplicidade é o que o próprio nome sugere. Um mercado simples e direto é melhor a um mercado complicado.

Exemplo. No início, o trigo era negociado por cada comprador para cada vendedor. Uma revolução ocorreu quando houve a padronização de qualidades de trigo como commodity. Com isso, houve aumento da espessura do mercado (mais compradores poderiam comprar de mais vendedores o trigo da mesma qualidade), além de segurança (rating confiável de qualidade) e simplicidade (ao invés de combinações de compradores e vendedores, todo mundo no mesmo mercado).

Com o café etíope, algo similar. Após a implementação de teste cego de qualidade e commoditização, o mercado cresceu, melhorou em qualidade e simplicidade.

Mercado de rins

O “mercado” de rins não é um “mercado”, no conceito de troca de órgãos por dinheiro, até porque isso é ilegal e imoral na maior parte do mundo.

Há uma fila de 100 mil pessoas e 20 mil mortes por ano. É muito comum a pessoa que necessita de um rim ter um doador da família (a mãe, o pai, irmão). Porém, nem sempre o doador vai ser compatível com o paciente – tipo sanguíneo e outros testes analisam essa compatibilidade.

É possível fazer uma doação cruzada: o doador de um paciente ser compatível com outro paciente, e vice-versa.

Aqui, uma nota. Para uma doação cruzada, é necessário ter 4 salas cirúrgicas simultâneas (duas para retirar e duas para transplantar). Isso porque um atraso entre as cirurgias pode fazer um possível doador “mudar de ideia” nesse meio tempo, tornando a vida do outro paciente um pesadelo (além de continuar com o problema nos rins, perdeu o seu doador).

É aqui que entra a matemática. Que tal formar cadeias cada vez mais longas? Há um limite para tal, por conta da necessidade de salas simultâneas, mas teoricamente é possível.

Há doadores e receptores mais universais que outros, que são “fáceis” de encaixar e promover trocas. Há os mais difíceis também, de modo que é claramente um problema de matching, resolvível via programação inteira. É como ter um grafo direcional, com a função objetivo de formar a maior quantidade de conexões possíveis.

Nota: o próprio Roth citou que as técnicas e solver modernos facilitam muito a análise matemática. Na época em que o estudo começou, esse problema era um desafio bem maior do que é hoje.

Outro desafio é o acesso à informação. Hospitais são instituições privadas, que, a seu modo, concorrem por pacientes. É tentador fechar doações “fáceis” no próprio hospital, e deixar as “complicadas” para o pool nacional de doações.

Adicionalmente, há doadores externos. Como temos dois rins, é possível doar um e continuar a vida (só não pode beber muito). Esses doadores altruístas não precisam da doação de um rim, de modo que eles podem iniciar uma cadeia de doações. Antigamente, o rim dele era doado ao primeiro compatível da fila. Hoje, é doado a quem conseguir iniciar o gatilho da cadeia de cirurgias mais longa possível. Além disso, há o benefício adicional de que não é necessário ter operações simultâneas – é possível esperar um tempo entre cirurgias. Não há muito prejuízo se alguém “quebrar o link”, porque o paciente continua como antes, na fila, e com o seu doador intacto.

Roth cita que houve uma cadeia de 30 doações em 2012, o que não seria possível sem o seu trabalho.

Além do trabalho citado, há diversas outras questões. Por exemplo, expandir o banco de dados de países para troca de rins é bom, porque engrossa o mercado. Porém, o Irã permite a compra de órgãos por dinheiro. Quem garante que alguém rico o suficiente não compre um rim no Irã e inclua no pool americano para se beneficiar? São questões éticas que geram inúmeros debates.

Conclusões

O trabalho de Alvin Roth é um trabalho aplicado, muita mão na massa, para ajudar as pessoas de verdade – seja no caso dos rins, seja em outros mercados que ele ajudou a melhorar. Ele mostrou, nas palestras, fotos dele acompanhando cirurgias reais, a fim de dimensionar melhor a cadeia de trocas.

Para mim, é muito inspirador, no sentido de utilizar muita técnica, pesquisa operacional, e ter resultado prático direto na vida das pessoas.

Recomendação de livro: “Como funcionam os mercados”, de Alvin Roth.

https://amzn.to/3TyRUxT

Veja também:

Informs Anual Meeting 2022

Estou no #Informs2022 Anual Meeting – o maior encontro do mundo na área de Pesquisa Operacional. Grandes mentes de todo lugar do mundo, discutindo #Optimization, #Simulation, #decisionscience, #advancedanalytics.

Vou postar temas interessantes em futuro próximo.

Guten Tag, Hannover!

I’m attending the #hannovermesse2022, in Germany. It is the most important industrial fair of the world, with more than 5.000 expositors and 200.000 visitants from all around the world, including we, from Brazil.

Some technological trends and curiosities:

– Every year there is a partner country. This year is Portugal

#iot is not only sensors anymore. Current solutions integrate sensors, transmission, data storage in cloud, also training algorithms, in order to have an almost plug and play solution

– Energy and #sustainability continue to be very hot topics, and Germany takes if very seriously. In the route between Frankfurt and Hannover, I saw at least a dozen wind turbines, for example

– A closed loop of information is a trend: seamless integration of several internal and external sources of information, to facilitate data mining and insights. Also, integration of information along the supply chain

– The noble area of #operationsresearch is also present: Google showed a case of optimization of data centers. Modern data centers are estimated to consume around 1,8% of the energy of the world. There are huge fluctuations in the demand and also in weather conditions, affecting costs and sustainability. Using OR techniques, they’re able to double the energy efficiency of their data centers.

– Hannover is a wonderful city, with a mix of green areas, modern city and historical architecture. With less than 1 million inhabitants, it has a fairly good structure of trains, easy even for tourists like us.

Danke, Hannover!

See also:

Os efeitos gênesis e apocalipse dos modelos de otimização

 
Quando falamos que encontramos a “solução ótima”, esta é com aspas mesmo: todo modelo é necessariamente uma simplificação do mundo real, extremamente complexo e cheio de efeitos de segunda e terceira ordem.
 
O “efeito gênese” ocorre no início, quando as variáveis ainda não estão “a todo vapor”. É a fase de aquecimento, transitória, e o modelo ainda é jovem demais para aproveitar.
 
Já o “efeito apocalipse” ocorre no final. Como o mundo do modelo acaba com o fim da simulação, ele tende a otimizar tudo: para de produzir, consome todo o estoque, curte a vida adoidado.
 
Nem todos trabalhos sofrem com esses efeitos, obviamente depende do caso. São mais frequentes principalmente nos que envolvem o tempo.


 
Para contrabalancear. No caso da gênese, começar com variáveis iniciais próximas ao estável – ou deixar rodar por alguns períodos e desprezar esse começo. No caso do apocalipse, a mesma coisa: ter restrições contrabalanceando o mínimo de variáveis, e/ou deixar ele rodando por um tempo e desprezar os períodos finais.
 
Quando a gente constrói um modelo e manda otimizar, ele otimiza mesmo, e encontra furos que não fazem sentido na vida real. Boa parte do trabalho é ficar fechando esses furos lógicos.
 
Fica a dica.

Veja artigos semelhantes e me siga no LinkedIn:

https://ideiasesquecidas.com/2021/12/19/o-bilionario-que-fazia-graficos-com-lapis-coloridos/

https://www.linkedin.com/in/arnaldogunzi/

Manufacturing summit

Participei do Manufacturing Summit 2022, discutindo sobre #advancedanalytics e #AI.

Alguns temas principais abordados:

– A cada dia, mais sensores estão gerando dados, e bases estão sendo digitalizadas e integradas;

– Por outro lado, métodos analíticos avançados e AI estão cada vez mais acessíveis, por avanços em software e hardware;

– Existe uma tendência mundial de centros de excelência, para acelerar a transformação digital, agregar valor de forma eficiente e colher ganhos;

– Começar pequeno, agregar valor, mostrar trabalho, e isso vai retornar em demandas cada vez mais nobres, um ciclo virtuoso;

– Além de agregar valor diretamente com projetos, também é possível dedicar parte do tempo para treinamentos, eventos e mentoria de analistas das áreas de negócio da empresa;

– Por fim, ter em mente que a otimização de recursos, aumento de produtividade, etc, vai retornar para o consumidor final e a sociedade como um todo, na forma de um produto mais barato e sustentável.

Agradeço pelo convite, e estou à disposição de quem quiser trocar experiências.

Conhece algum gênio na área de Advanced Analytics / Data Science?

Alguém apaixonado por números e por aplicações na vida real?
Divulgue esta vaga para ele!

A gigante Klabin S.A., do setor de papel e celulose, está montando um time de altíssimo nível para os enormes desafios de otimização combinatória, simulação de eventos discretos, inteligência artificial, data science e temas correlatos, tanto na indústria quanto na área florestal.

Procuramos alguém com imensa vontade de implementar modelos na prática, agregar valor de verdade, devorar livros e liderar esta revolução que está chegando!

(É uma vaga diretamente no time que gerencio).

Link:

https://www.linkedin.com/jobs/view/2954724699/?refId=54Up20t6Ro%2B9IToUtwhmlg%3D%3D

Uma bobina a mais e o MP Load

Descrevendo uma situação que me deixou bastante feliz. Durante visita à unidade de Sacos, em Lages, o meu amigo Marcelo Oliveira contou que a utilização do MP-Load, descrito abaixo, possibilitou o envio de um pallet a mais no contêiner. “Não cabe”, dizia o pessoal; “Cabe, olha só o estudo”, disse o Marcelo.

O MP Load é uma ferramenta extremamente simples, feita em Excel – VBA.

Basta preencher as dimensões (Altura – Largura – Comprimento) e carga máxima do contêiner; e dimensões da bobina a ser transportada – diâmetro externo, largura e peso individual.

As unidades das dimensões estão em milímetros.

Como hipótese, as bobinas sempre vão de pé, e todas as bobinas são iguais. O limite é o volume geométrico ou o peso máximo, o mais restritivo.

Há ferramentas de formação de carga extremamente mais complexas, que conjugam bobinas de vários tipos, deitadas, de pé, etc. Porém, a situação simples de bobina única e de pé deve atender uns 90% das situações, e a beleza é ela ser puramente geométrica, simples de resolver.

O MP Load surgiu com a inspiração acima, pelo amigo Didiel Peça. A ideia era utilizar na hora de tirar pedidos dos clientes de mercado externo, de modo que o valor solicitado fechasse exatamente a carga de um contêiner.

Para o caso de Pallets, basta escolher “P” no campo. As dimensões agora são comprimento – largura – altura (pelo pallet ser retangular) e o peso por pallet.

Há também uma folga adicional de 10 mm no comprimento e na largura, por hipótese.

E que diferença faz uma bobina a mais por carregamento, ou um pallet a mais? Otimização de frete.

Uma bobina faz pouca diferença, individualmente. Mas uma bobina, multiplicada por todas as áreas que otimizam o carregamento, multiplicada por todos os dias em que o estudo é feito, faz toda a diferença.

Segue link.

https://1drv.ms/x/s!Aumr1P3FaK7jn2hfs8JKd7qiZX30

Hipóteses utilizadas:

  • As bobinas são todas idênticas (idem para pallets)
  • As bobinas sempre vão de pé
  • No caso de pallets, há uma folga considerada de 10 mm
  • O comprimento do contêiner é maior do que a largura do mesmo

Como o cálculo é realizado?

Tanto para bobinas quanto para pallets, são analisados dois padrões: retangular e zig-zag

O padrão retangular é um do lado do outro.

Para o cálculo, arrendondar para baixo as dimensões do contêiner dividido pelo diâmetro da bobina.

Já o padrão zig-zag (por falta de um nome melhor), considera um encaixe tipo laranjas empilhadas:

Sejam c e d catetos de um triângulo retângulo, com a hipotenusa sendo o diâmetro externo.

d = sqrt ( Dext^2 – c^2)

Se encontrarmos o valor de c, o valor de d estará definido pela fórmula acima.

No zig-zag, o contorno externo terá um Dext de dimensão, e as camadas internas serão X vezes a dimensão c.

O limite máximo para X é dado pela (Largura do contêiner – Dext) dividido pelo Dext, arredondando para cima.

Com isso, calculamos o número de linhas X, o c e o d, todos os parâmetros para a distribuição.

Por fim, analisamos o carregamento pelo padrão retangular x padrão zig-zag, e pegamos o que ficou melhor.

Um mundo melhor através do Analytics.

https://ideiasesquecidas.com

Veja também:

Ideias Analíticas Avançadas

Estou lançando uma publicação na plataforma Medium: a Ideias Analíticas Avançadas (https://medium.com/ideias-anal%C3%ADticas-avan%C3%A7adas).

Os objetivos são:

  • Escrever sobre Analytics Hard: Otimização, Matemática, Python, Computação Quântica, com código e tudo
  • Convidar outros autores a publicar sobre o tema.

Fica já o convite, quem quiser escrever sobre alguns dos temas e divulgar ali.

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://forgottenmath.home.blog/) 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.
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