levando a ajuda do salão) - página 7

 

Infelizmente, eu não sou matemático, não entendi bem o que você escreveu no início desta página. Se falamos do meu problema, há um conjunto de sete vetores, precisamos encontrar todas as combinações possíveis de elementos desses vetores, dando um total de 256.

 
Alguém já se perguntou por que o Iniciador de Tópicos e Vitaly quereria resolver este problema - e com todas as opções?
 
Eu não sei para que serve. Foi-me pedido que formulasse a condição do problema, e estou curioso em saber como um problema tão complicado pode ser resolvido com a ajuda da AG.
 
Mathemat:
E alguém já pensou por que o iniciante do tema e Vitaly precisa da solução deste problema - e com todas as variantes?

Refleti um pouco sobre isso. E eu expressei que não vejo o ponto prático.

vitali_yv:

Eu não sei por que o TC. Eu preciso disso porque me pediram para formular as condições do problema e me pergunto como a GA pode ser usada para resolver um problema tão complexo.

Oops. E eu, pelo contrário, pensava que você era o iniciador do tema. :[

Depois, tudo é cancelado. Estamos esperando pelo misterioso criador do misteriosamente desnecessário problema.

 
Bem, por que cancelar? Deixe-me fazer um tópico especial para você com minha condição, se você quiser resolvê-lo somente se eu for o TC )
 
vitali_yv:
Por que é cancelado? Deixe-me criar uma linha específica para você com minha condição, se você quiser resolvê-la apenas se eu for o TC )

Não há necessidade de abrir uma nova filial. Já existe uma filial de Alexei para isso. Todas as variantes do problema listado aqui são resolvidas com GA.

Mesmo assim, gostaria de ouvir o chefe do departamento de transportes.

 
Aí está, e foi-lhe prometida uma montanha de ouro.
 
vitali_yv:
Aqui estamos nós, e eles prometeram uma montanha de ouro.
Uma solução será apresentada à noite.
 
vitali_yv:
A =  11    12    16    19    23    25    26    27    29    34    37    38    43    46    48    58    59    62    64    73
B =   2     3     7     9    11    16    18    31    32    33    41    42    43    47    53    54    60    61    64    81
C =   7     9    15    22    24    25    27    28    29    34    42    44    46    52    53    64    66    67    68    70
D =   1     5     4    15    18    19    24    32    34    39    42    46    47    48    49    60    61    68    72    77
E =   9    12    19    21    24    27    29    35    43    45    46    55    58    61    64    65    66    68    71    82
F =   6    11    12    22    26    32    42    48    52    54    58    61    64    65    72    83    84    87    94    97
G =   4     9    14    15    19    26    35    37    39    40    45    48    52    53    59    63    67    70    74    76

A + B + C + D + E + F + G = 256

Bem, deixe-me dar-lhe uma tarefa. Você não sabe se os valores nas variáveis se repetem, então digamos que se repetem. O problema é simplificado para 7 variáveis, 20 variantes.

Bem, problema resolvido. Uma das soluções é esta:

64+11+9+24+24+72+52=256


Código fonte prometido para resolver este problema e outros como este anexados.

Há apenas um pequeno detalhe. O algoritmo é desenvolvido para problemas em que as variáveis são estritamente únicas e sua permutação em uma expressão não é permitida, por exemplo, para tal função:

f(x,y)=x*x+y.

É bastante claro que os valores de x e y não podem ser trocados, caso contrário, o valor da função será alterado. É por isso que somente os cromossomos dos seguintes tipos são considerados absolutamente idênticos

3,9,8,7,4,5,3 и 3,9,8,7,4,5,3. Se forem comparados cromossomos do tipo 3,9,8,7,4,5,3 e 3,8,9,7,4,5,3, eles são considerados cromossomos completamente diferentes.

Portanto, meu algoritmo não é adequado para encontrar todas as soluções dos tipos de problemas acima mencionados, onde "rearranjar os locais de adição não altera a soma".

Por este motivo, após uma única execução do algoritmo, é possível obter apenas uma variante de solução, não todas elas. Uma das soluções que eu dei acima.

A fim de tornar o algoritmo aplicável para tais tipos de problemas, você deve introduzir a regra opcional incluída "a soma não muda ao rearranjar os locais de adição" e tratar os cromossomos como 3,9,8,7,4,5,3 e 3,8,9,7,4,5,3 como duplicados.


O código fonte é escrito em MQL5.


PS De que tipo de milênios você estava falando para resolver o problema? :)

Arquivos anexados:
 
Muito interessante, é uma pena que nem todas as opções estejam disponíveis. É difícil de comparar. Respeito.
Razão: