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/

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.

Data Science com Papai Noel

Ajude o Papai Noel a otimizar a sua agenda de entregas!

Para quem é fera em otimização combinatória, a Kaggle lançou um desafio de agendamento de entregas: o Santa workshop tour (Santa Claus = Papai Noel. É um desafio com prêmios. O time que apresentar a menor rota ganhará um prêmio.

O Kaggle é uma plataforma de educação para ciência de dados, que trabalha na forma de desafios. Há diversos datasets bastante ricos, e técnicas de ponta de cientistas top do mundo todo – o nível é muito alto.

É possível formar times de até 5 pessoas.

Eu gostaria de formar um time brasileiro forte para concorrer. Alguém se habilita? Pré-requisito: background forte em Analytics, Python e Pesquisa Operacional.

https://www.kaggle.com/c/santa-workshop-tour-2019

Otimização (?) Matemática

Há um fascínio enorme dos executivos em geral, sobre métodos mágicos matemáticos que pegam um monte de variáveis e chegam numa solução ótima, coisa que chamaremos aqui de “Otimização Matemática”.
 

Mas na verdade, isto é uma “pseudo-otimização”, ou uma otimização sob certas circunstâncias artificiais. Vejamos o por quê.

 


Há diversos métodos de otimização matemática, para diversos tipos de problema. Há problemas de otimização para funções contínuas, utilizando métodos de cálculo diferencial, que tem muita aplicação em engenharia, química. Para problemas do mundo corporativo, como definir a localização e fluxos de centros de distribuição, minimizar as perdas numa máquina de corte ao escolher uma combinação correta de pedidos, utiliza-se métodos de Programação Linear e Inteira.

 
Acontece mais ou menos assim: o processo do mundo real tem que ser mapeado para um problema, que será uma simplificação do mundo real. Fazer esta simplificação, que atenda os pontos principais do problema e deixe de fora detalhes que não importam, é a grande arte da modelagem. Este modelo terá uma formulação matemática, que será resolvido por um solver de Programação Linear e Inteira.
 

Mas, por melhor que seja a modelagem, há objetivos conflitantes na vida real que devem ser equilibrados.


Vejamos o planejamento da produção de uma fábrica.

 
Temos uma demanda de clientes, cada um com um produto, um volume diferente, um deadline diferente. Para o cliente, o ideal são as máquinas produzirem o que ele quer quando ele quer.

Clientes

Para a fábrica, temos uma programação de corridas de produtos. Para a fábrica, quanto mais tempo ela conseguir produzir o mesmo produto, melhor, porque evita perdas no setup de máquina – note que conflita com o desejo da demanda de clientes, que é ter o que quer na hora que quer.

Setup

 

Em termos de estoque, quanto menor o estoque, melhor. Então, se a fábrica adiantar muito a produção de um cliente, vai pagar a conta de manter o material em estoque.

 

Então, olhando só para este exemplo simples, temos três forças conflitantes: demanda dos clientes, setup de máquina e estoques.

ForçasOtimizacao

 

Como se resolve tal conflito? Pode-se colocar um dos itens, como a demanda de clientes, como uma restrição a ser atendida, que é o que é feito na maioria dos livros de Pesquisa Operacional. Mas, na prática, há demandas de clientes que não precisam ser atendidas, e há clientes que precisam ser atendidos. Além disto, na prática uma restrição tão pesada pode dar “infeasible”, ou seja, não dar solução porque a fábrica não consegue atender.
 

Um outro método de resolver o conflito é ponderando todas as forças. Cada cliente gera uma receita (em $ por tonelada) se atendido, sendo que o cliente mais importante vai remunerar a empresa melhor. O setup tem um custo, ou seja, quanto mais setups, pior. Cada item em estoque tem custo proporcional ao tempo que ficar nos estoques.
 

E a ponderação disto seria a fórmula a ser maximizada.

 

Lucro = receita – custoSetup – custoEstoque

 

Ponderar os fatores conflitantes pelo seu custo é uma forma poderosa de se resolver este tipo de problema, e isto ajuda muito.

 


Problema resolvido? Não.
 

Muitas vezes, acontece de o analista rodar o modelo, e aí descobrir que alguma coisa ruim aconteceu.

  • Exemplo 1: Cliente tal é importante, mas não foi atendido. E não foi atendido porque, apesar de importante, o preço que ele paga pelo produto não é tão mais alto que o do cliente ruim. E assim, o analista aumenta artificialmente a receita do produto para ele.
  • Exemplo 2: Tenho o custo de estoques, mas pela ponderação dos custos, o custo de estoques pode ser muito menor que os demais. Aí o modelo, que é matemático, vai lotar os estoques. Aí o analista dá um peso maior para os estoques e coloca uma regra adicional: coloca uma restrição de estoque máximo.

 

O modelo matemático é burro, ele faz exatamente a conta que lhe é informada. Não tem discernimento para entender se está coerente ou não.

E assim, a gente vai martelando os pontos problemáticos do modelo, para tapar os furos que ele vier a ter, e se chegar numa solução compatível com a do mundo real. É sim um método de otimização, mas não é algo que pode funcionar sozinho: tem que ter um analista bom, capaz de analisar, criticar os resultados e mexer alguns pauzinhos para se chegar numa solução.


 

Este é um ponto de vista eminentemente prático, de alguém que trabalha de verdade com estes métodos. Dificilmente algo assim vai estar escrito em algum livro-texto do mundo acadêmico.

 

Arnaldo Gunzi

Set 2015