con la ayuda de la sala) - página 7

 

Desgraciadamente, no soy matemático, no he entendido bien lo que has escrito al principio de esta página. Si hablamos de mi problema, hay un conjunto de siete vectores, necesitamos encontrar todas las combinaciones posibles de elementos de estos vectores, dando un total de 256.

 
¿Alguien se ha preguntado por qué el iniciador del tema y Vitaly querrían resolver este problema, y con todas las opciones?
 
No sé para qué sirve. Me pidieron que formulara la condición del problema, además tengo curiosidad por saber cómo se puede resolver un problema tan complicado con la ayuda del AG.
 
Mathemat:
¿Y alguien ha pensado por qué el topicstarter y Vitaly necesitan la solución de este problema - y con todas las variantes?

He pensado en ello. Y he expresado que no veo el sentido práctico.

vitali_yv:

No sé por qué el TC. Lo necesito porque me han pedido que formule las condiciones del problema y me pregunto cómo se puede utilizar el AG para resolver un problema tan complejo.

Uy. Y yo, por el contrario, pensaba que tú eras el tópico. :[

Entonces todo se cancela. Estamos esperando al misterioso creador del problema misteriosamente innecesario.

 
Bueno, ¿por qué cancelarlo? Déjame hacer un tema especial para ti con mi condición, si quieres resolverlo sólo si soy el TC )
 
vitali_yv:
¿Por qué se cancela? Déjame crear un hilo específicamente para ti con mi condición, si sólo quieres resolverlo si soy el TC )

No es necesario crear una nueva sucursal. Ya existe una rama de Alexei para esto. Todas las variantes del problema enumeradas aquí se resuelven con GA.

Aun así, me gustaría escuchar al jefe del departamento de transporte.

 
Ahí tienes, y te prometieron una montaña de oro.
 
vitali_yv:
Aquí estamos, y nos prometieron una montaña de oro.
Por la noche se presentará una solución.
 
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

Bueno, déjame darte una tarea. No sabes si los valores de las variables se repiten, así que digamos que sí. El problema se simplifica a 7 variables, 20 variantes.

Bueno, problema resuelto. Una de las soluciones es ésta:

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


Se adjunta el código fuente prometido para resolver este problema y otros similares.

Sólo hay un pequeño detalle. El algoritmo está desarrollado para problemas en los que las variables son estrictamente únicas y no se permite su permutación en una expresión, por ejemplo para dicha función:

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

Está claro que los valores de x e y no pueden intercambiarse, ya que de lo contrario el valor de la función cambiaría. Por eso sólo se consideran absolutamente idénticos los cromosomas de los siguientes tipos

3,9,8,7,4,5,3 и 3,9,8,7,4,5,3. Si se comparan cromosomas del tipo 3,9,8,7,4,5,3 y 3,8,9,7,4,5,3, se considera que son cromosomas completamente diferentes.

Por lo tanto, mi algoritmo no es adecuado para encontrar todas las soluciones de los tipos de problemas mencionados, en los que "la reorganización de los lugares de los sumandos no cambia la suma".

Por esta razón, tras una única ejecución del algoritmo, es posible obtener sólo una variante de solución, no todas. Una de las soluciones que di más arriba.

Para que el algoritmo sea aplicable a este tipo de problemas, debe introducir la regla opcional "la suma no cambia al reordenar los lugares de los sumandos" y tratar los cromosomas como 3,9,8,7,4,5,3 y 3,8,9,7,4,5,3 como duplicados.


El código fuente está escrito en MQL5.


PS ¿De qué milenios hablabas? :)

Archivos adjuntos:
 
Muy interesante, es una pena que no estén disponibles todas las opciones. Es difícil comparar. Respeto.