en prenant l'aide de la salle) - page 7

 

Malheureusement, je ne suis pas un mathématicien, je n'ai pas bien compris ce que vous avez écrit au début de cette page. Si nous parlons de mon problème, il y a un ensemble de sept vecteurs, nous devons trouver toutes les combinaisons possibles d'éléments de ces vecteurs, ce qui donne un total de 256.

 
Quelqu'un s'est-il déjà demandé pourquoi le topicstarter et Vitaly voudraient résoudre ce problème - et avec toutes les options ?
 
Je ne sais pas à quoi ça sert. On m'a demandé de formuler la condition du problème, et je suis curieux de savoir comment un problème aussi compliqué peut être résolu à l'aide de l'AG.
 
Mathemat:
Et est-ce que quelqu'un a déjà pensé pourquoi le topicstarter et Vitaly ont besoin de la solution de ce problème - et avec toutes les variantes ?

J'y ai réfléchi. Et j'ai dit que je ne voyais pas l'intérêt pratique.

vitali_yv:

Je ne sais pas pourquoi le TC. J'en ai besoin car on m'a demandé de formuler les conditions du problème et je me demande comment l'AG peut être utilisé pour résoudre un problème aussi complexe.

Oups. Et moi, au contraire, je pensais que c'était vous qui étiez à l'origine du sujet. :[

Alors tout est annulé. Nous attendons le mystérieux créateur de ce problème mystérieusement inutile.

 
Pourquoi l'annuler ? Permettez-moi de faire un sujet spécial pour vous avec ma condition, si vous voulez le résoudre seulement si je suis le TC ;)
 
vitali_yv:
Pourquoi est-elle annulée ? Laissez-moi créer un fil de discussion spécialement pour vous avec ma condition, si vous ne voulez le résoudre que si je suis le CT ;)

Il n'est pas nécessaire de créer une nouvelle branche. Il y a déjà une branche d'Alexei pour cela. Toutes les variantes du problème énuméré ici sont résolues avec GA.

Quand même, j'aimerais entendre le chef du département des transports.

 
Voilà, et on vous a promis une montagne d'or.
 
vitali_yv:
Nous sommes là, et ils ont promis une montagne d'or.
Une solution sera présentée dans la soirée.
 
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

Eh bien, laissez-moi vous donner une mission. Vous ne savez pas si les valeurs des variables sont répétées, alors disons qu'elles le sont. Le problème est simplifié à 7 variables, 20 variantes.

Eh bien, problème résolu. L'une des solutions est la suivante :

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


Le code source promis pour résoudre ce problème et d'autres semblables est joint.

Il y a seulement un petit détail. L'algorithme est développé pour les problèmes dans lesquels les variables sont strictement uniques et leur permutation dans une expression n'est pas autorisée, par exemple pour une telle fonction :

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

Il est tout à fait clair que les valeurs de x et y ne peuvent pas être interchangées, sinon la valeur de la fonction changera. C'est pourquoi seuls les chromosomes des types suivants sont considérés comme étant exactement les mêmes

3,9,8,7,4,5,3 и 3,9,8,7,4,5,3. Si l'on compare des chromosomes de type 3,9,8,7,4,5,3 et 3,8,9,7,4,5,3, on considère qu'il s'agit de chromosomes complètement différents.

Mon algorithme n'est donc pas adapté à la recherche de toutes les solutions des types de problèmes susmentionnés, pour lesquels "le réarrangement de la place des additions ne change pas la somme".

C'est pourquoi, après une seule exécution de l'algorithme, il est possible d'obtenir une seule variante de solution et non toutes. Une des solutions que j'ai données ci-dessus.

Afin de rendre l'algorithme applicable à ce type de problèmes, vous devez introduire la règle optionnelle "la somme ne change pas lorsque l'on réarrange les places des additions" et traiter les chromosomes comme 3,9,8,7,4,5,3 et 3,8,9,7,4,5,3 comme des doublons.


Le code source est écrit en MQL5.


PS : De quel genre de millénaires parlez-vous pour résoudre le problème ? :)

Dossiers :
 
Très intéressant, c'est dommage que toutes les options ne soient pas disponibles. C'est difficile de comparer. Respect.