mit Hilfe der Halle) - Seite 7

 

Leider bin ich kein Mathematiker, ich habe nicht ganz verstanden, was Sie am Anfang dieser Seite geschrieben haben. Wenn wir über mein Problem sprechen, gibt es eine Menge von sieben Vektoren, wir müssen alle möglichen Kombinationen von Elementen dieser Vektoren finden, was eine Gesamtzahl von 256 ergibt.

 
Hat sich schon einmal jemand gefragt, warum der Themenstarter und Vitaly dieses Problem lösen wollen - und das mit allen Optionen?
 
Ich weiß nicht, wozu das gut sein soll. Ich wurde gebeten, die Bedingungen des Problems zu formulieren, und ich bin neugierig, wie ein so kompliziertes Problem mit Hilfe der GA gelöst werden kann.
 
Mathemat:
Und hat schon mal jemand darüber nachgedacht, warum die Themenstarter und Vitaly die Lösung dieses Problems brauchen - und das mit allen Varianten?

Ich habe darüber nachgedacht. Und ich habe zum Ausdruck gebracht, dass ich den praktischen Nutzen nicht sehe.

vitali_yv:

Ich weiß nicht, warum die TC. Ich brauche sie, weil ich gebeten wurde, die Bedingungen des Problems zu formulieren, und ich frage mich, wie GA zur Lösung eines so komplexen Problems eingesetzt werden kann.

Ups. Und ich dachte im Gegenteil, dass Sie der Themenstarter sind. :[

Dann wird alles abgebrochen. Wir warten auf den mysteriösen Schöpfer des mysteriöserweise unnötigen Problems.

 
Warum also absagen? Lassen Sie mich ein spezielles Thema für Sie mit meinem Zustand machen, wenn Sie es nur lösen wollen, wenn ich der TC bin )
 
vitali_yv:
Warum wird sie gestrichen? Lassen Sie mich einen Thread speziell für Sie mit meiner Bedingung erstellen, wenn Sie es nur lösen wollen, wenn ich der TC bin )

Es ist nicht nötig, eine neue Zweigstelle zu gründen. Es gibt bereits einen Zweig von Alexei für diesen Zweck. Alle Varianten des hier aufgeführten Problems werden mit GA gelöst.

Trotzdem würde ich gerne etwas vom Leiter der Verkehrsabteilung hören.

 
Da haben Sie es, und Ihnen wurde ein Berg von Gold versprochen.
 
vitali_yv:
Hier sind wir, und sie versprachen einen Berg von Gold.
Eine Lösung wird am Abend vorgestellt.
 
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

Nun, ich gebe Ihnen eine Aufgabe. Sie wissen nicht, ob sich die Werte in den Variablen wiederholen, also nehmen wir an, sie tun es. Das Problem wird auf 7 Variablen und 20 Varianten vereinfacht.

Nun, Problem gelöst. Eine der Lösungen ist diese:

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


Der versprochene Quellcode zur Lösung dieses und ähnlicher Probleme liegt bei.

Es gibt nur ein kleines Detail. Der Algorithmus wurde für Probleme entwickelt, bei denen die Variablen streng eindeutig sind und ihre Vertauschung in einem Ausdruck nicht erlaubt ist, z. B. für solche Funktionen:

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

Es ist ganz klar, dass die Werte von x und y nicht vertauscht werden können, da sich sonst der Wert der Funktion ändert. Deshalb werden nur Chromosomen der folgenden Typen als absolut identisch angesehen

3,9,8,7,4,5,3 и 3,9,8,7,4,5,3. Vergleicht man Chromosomen des Typs 3,9,8,7,4,5,3 und 3,8,9,7,4,5,3, so handelt es sich um völlig unterschiedliche Chromosomen.

Mein Algorithmus ist also nicht geeignet, alle Lösungen der oben genannten Problemtypen zu finden, bei denen "das Umstellen der Summandenstellen die Summe nicht verändert".

Aus diesem Grund ist es möglich, nach einem einzigen Durchlauf des Algorithmus nur eine Lösungsvariante zu erhalten und nicht alle. Eine der Lösungen, die ich oben genannt habe.

Um den Algorithmus für solche Arten von Problemen anwendbar zu machen, sollten Sie die optional enthaltene Regel "die Summe ändert sich nicht, wenn die Stellen der Summanden umgeordnet werden" einführen und Chromosomen wie 3,9,8,7,4,5,3 und 3,8,9,7,4,5,3 als Duplikate behandeln.


Der Quellcode ist in MQL5 geschrieben.


PS: Von welcher Art von Jahrtausenden sprachen Sie, um das Problem zu lösen? :)

Dateien:
 
Sehr interessant, schade, dass nicht alle Optionen verfügbar sind. Es ist schwer zu vergleichen. Respekt.