O “cubo fantasma”

Forgotten Lore

O “cubo fantasma” é o da foto abaixo. É um cubo mágico 3x3x3, porém sem cores e completamente assimétrico.

Juro que demorei mais de um ano para resolver este cubo maluco (não contínuos, mexendo de tempos em tempos).

Isto porque a grande dificuldade é saber qual a posição final da peça. Em comparação, no Rubik comum, pelas cores é fácil saber para onde a peça deve ir. No cubo fantasma, praticamente impossível!

Para mim, virou uma busca exaustiva, tentando encaixar peça a peça, girar, tentar encaixar.

Não vou postar um tutorial, porque os algoritmos são os mesmos do Rubik normal. Há, porém, alguns cuidados a tomar.

Uma dificuldade é que a posição final, mostrada abaixo, não é a posição de girar o cubo. Para girar o cubo, temos que girar cada layer para fazer coincidir as peças de centro e edge – e torna mais difícil ainda reconhecer a posição…

Ver o post original 121 mais palavras

Anúncios

A little integer problem

Ferramentas em Excel-Vba

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…

Ver o post original 59 mais palavras

Como representar o 42 como a soma de 3 cubos?

Como representar um número inteiro como a soma de três cubos?
Por 65 anos, a resposta para todos os números pequenos foi descoberta, exceto o número 42.

Por algum motivo, o 42 apresentava um grau extremamente elevado de dificuldade.
A reportagem descreve um pouco desta descoberta.

Aliás, 42 = -80538738812075974³ + 80435758145817515³ + 12602123297335631³

https://www.uol.com.br/tilt/ultimas-noticias/bbc/2019/09/13/apos-65-anos-matematicos-finalmente-solucionam-enigma-da-soma-dos-tres-cubo.htm

Port in a storm

Here’s follow the solution (aimms) to the challenge Port in a Storm (puzzleor).

We need to create the sets docks and groups.

The distances, given in the spreadsheet:

Tip: in the definition, we can fill the matrix with the values.

Another tip: it is easy to exchange indexes. Make sure it does not happen.

The variable has range integer in dimensions (g,d)

Contraints: max docks and the minimum we have to distribute from the groups

Next, the mathematical programming.

We’re minimizing.

FO is the sum of variables times distances.

In the main execution, we write solve port (name of the mathematical programming);

Type F6 to run:

Result is FO = 31, the same as in the excel.

Note that the assignment is different from excel – in this case there’s more than one solution.

The zip file here contains the formulation. And here, the Excel solver version.

Below transcribed the full formulation.

MAIN MODEL Main_Port_in_a_storm

DECLARATION SECTION

SET:

   identifier   :  Docks

   subset of    :  Integers

   index        :  d

   definition   :  {1..3} ;



SET:

   identifier   :  Groups

   subset of    :  Integers

   index        :  g

   definition   :  {1..3} ;



PARAMETER:

   identifier   :  distances

   index domain :  (g,d)

   definition   :  data { ( 1, 1 ) : 1,  ( 1, 2 ) : 3,  ( 1, 3 ) : 2,  ( 2, 1 ) : 2,  ( 2, 2 ) : 2,  ( 2, 3 ) : 1,  ( 3, 1 ) : 3,  ( 3, 2 ) : 2,  ( 3, 3 ) : 1 } ;



PARAMETER:

   identifier   :  max_docks

   index domain :  d

   definition   :  data { 1 : 4,  2 : 7,  3 : 9 } ;



PARAMETER:

   identifier   :  min_groups

   index domain :  (g)

   definition   :  data { 1 : 8,  2 : 5,  3 : 7 } ;



VARIABLE:

   identifier   :  aloc

   index domain :  (g,d)

   range        :  integer ;



VARIABLE:

   identifier   :  fo

   range        :  free

   definition   :  sum((g,d),aloc(g, d)*distances(g, d)) ;



CONSTRAINT:

   identifier   :  c_docks

   index domain :  d

   definition   :  sum(g, aloc(g,d))<=max_docks(d) ;



CONSTRAINT:

   identifier   :  c_groups

   index domain :  (g)

   definition   :  sum(d, aloc(g,d))&gt;=min_groups(g) ;



MATHEMATICAL PROGRAM:

   identifier   :  Port

   objective    :  fo

   direction    :  minimize

   constraints  :  AllConstraints

   variables    :  AllVariables

   type         :  Automatic ;

ENDSECTION ;

PROCEDURE

identifier :  MainInitialization

ENDPROCEDURE ;

PROCEDURE

identifier :  MainExecution

body       : 

  solve port;

ENDPROCEDURE ;

PROCEDURE

identifier :  MainTermination

body       : 

  return DataManagementExit();

ENDPROCEDURE ;

ENDMODEL Main_Port_in_a_storm ;

Ideias técnicas com uma pitada de filosofia:

https://ideiasesquecidas.com/