A little integer problem

A little problem to be solved using integer variables (in excel or aimms);

Suppose we have 5 forest stands, with the volumes given as below:

i Vol
1 13.576,00
2 11.635,00
3 12.514,00
4 17.755,00
5 19.947,00

The distances to our basis in A or B are given below (these are random numbers).

j
i A B
1 64 73
2 100 79
3 85 81
4 66 99
5 98 81

A and B both need at least 30.000 tons.

30000 30000

Suppose also when you harvest a stand, it’s completely to one of the destinies, A or B – it can’t be fractioned.

I want to minimize distances, subject to the constraints.

What’s the solution of this case?

The data is given below:

The decision variable is reserved in columns K and L.

The sumproduct per destiny must be greater than 30.000.

The distance is calculated multiplying vol*distance*decision variable

The objective function is the sum of distance*decision variable.

In solver, we include the constraints. And we want to minimize distances.

Because this test is very basic, there’s not much possibilities. In general, integer programming is difficult.

Other little detail: if we need necessary to harvest the plantation, the sum of the decision variable must be one. If not, it can be less or equal 1.

This is a simple example of integer optimization using solver.


Ideias técnicas com uma pitada de filosofia: https://ideiasesquecidas.com

Ferramentas Excel-VBA: https://ferramentasexcelvba.wordpress.com/

Anúncios

Otimizar Match

Sobre o puzzle de match de um site de relacionamento descrito abaixo, vamos fazer a formulação e resolver no excel – solver.

Fonte: PuzzleOR (http://puzzlor.com/)

A primeira coisa a fazer é transcrever os dados da tabela acima para o Excel.


Via fórmulas, nas colunas de K a Q, contamos o número de coincidências.

Esta fórmula verifica se o conteúdo das células é igual. Deve-se fazer fórmula semelhante para cada critério, e somar o número de pontos de cada match possível.

=SE(DESLOC($C$3;$K4;0) = DESLOC($C$3;$L4;0);1;0)

Transcrevo a tabela de pontos na aba “Formulação”, copiando e colando.

Agora, a formulação para resolver com o solver do Excel.

De C18 a L28, o espaço é reservado às variáveis de decisão.
Na célula C1, a função objetivo, um somarproduto da variável de decisão com os pontos.
=SOMARPRODUTO(C5:L14;C19:L28)

Quero maximizar tal função objetivo.

Quem não tiver o solver instalado, ir em Arquivo – Opções – suplementos do excel – suplementos

Acionar o solver (só é necessário fazer a primeira vez).

Em dados – solver, especificar:

  • A função objetivo como a célula C1
  • Células variáveis

Restrições:

  • variáveis binárias (ou é zero ou 1)
  • soma das linhas deve ser <= 1 (só posso fazer o match de uma mulher com um homem)
  • soma das colunas deve ser <= 1 (só posso fazer o match de um homem com uma mulher)

O método deve ser LP Simplex (ou seja, é um Linear program que utiliza o método Simplex), e resolver.

A função objetivo vai assumir o valor 33, e os matches serão os valores 1 na tabela.

Com, isso, esperamos casar as pessoas com o maior número de características possíveis.


Ideias técnicas com uma pitada de filosofia: https://ideiasesquecidas.com

Ferramentas Excel-VBA: https://ferramentasexcelvba.wordpress.com/

Quantas bobinas cabem num contêiner?


No comércio exterior, o termo “estufar” o contêiner significa colocar a carga dentro do contêiner.

Bobinas de pé, num contêiner, podem ser modeladas puramente por geometria.

O algoritmo (download aqui) pede as dimensões do contêiner, as características das bobinas, e sugere o arranjo ideal, restrito ao espaço disponível e à carga máxima permitida.

Outro exemplo:

Há softwares comerciais que fazem isto (ex. Max Load), fazendo também a composição de diferentes tipos de bobinas, e também é possível colocar bobinas deitadas, etc. Entretanto, são softwares bem mais complicados para usar. Para a aplicação simples como o caso acima, o algoritmo do anexo funciona.

Cuidado: só vale para bobinas em pé.


Ideias técnicas com uma pitada de filosofia: https://ideiasesquecidas.com

Ferramentas Excel-VBA: https://ferramentasexcelvba.wordpress.com/

Ferramentas Excel-VBA: https://ferramentasexcelvba.wordpress.com/


Algoritmo para arrumar caixas num pallet

Como arrumar caixas iguais, num pallet?

Segue uma implementação simples de um algoritmo, mais ou menos baseado no artigo em https://www.jstor.org/stable/3009963

Basta informar as dimensões do pallet e da caixa, e rodar (macros devem estar ativadas).

image001.png

Segue outro exemplo.

image002.png

Este não é o método ótimo, mas é bom e simples. E pode ser estendido para alguma aplicação real.

Arquivo excel em https://github.com/asgunzi/caixasempallets.


Ideias técnicas com uma pitada de filosofia: https://ideiasesquecidas.com

Ferramentas Excel-VBA: https://ferramentasexcelvba.wordpress.com/