prendendo l'aiuto della sala) - pagina 7

 

Purtroppo, non sono un matematico, non ho capito bene quello che hai scritto all'inizio di questa pagina. Se parliamo del mio problema, c'è un insieme di sette vettori, dobbiamo trovare tutte le possibili combinazioni di elementi di questi vettori, per un totale di 256.

 
Qualcuno si è mai chiesto perché il topicstarter e Vitaly vorrebbero risolvere questo problema - e con tutte le opzioni?
 
Non so a cosa serva. Mi è stato chiesto di formulare la condizione del problema, inoltre sono curioso di sapere come un problema così complicato possa essere risolto con l'aiuto del GA.
 
Mathemat:
E qualcuno ha mai pensato perché il topicstarter e Vitaly hanno bisogno della soluzione di questo problema - e con tutte le varianti?

Ci ho pensato un po'. E ho espresso che non vedo il punto pratico.

vitali_yv:

Non so perché il TC. Ne ho bisogno perché mi è stato chiesto di formulare le condizioni del problema e mi chiedo come GA possa essere usato per risolvere un problema così complesso.

Ops. E io, al contrario, pensavo che tu fossi il topicstarter. :[

Allora tutto viene cancellato. Stiamo aspettando il misterioso creatore del problema misteriosamente inutile.

 
Beh, perché cancellarlo? Lasciatemi fare un topic speciale per voi con la mia condizione, se volete risolverlo solo se io sono il TC )
 
vitali_yv:
Perché è stato cancellato? Lasciatemi creare un thread appositamente per voi con la mia condizione, se volete risolverla solo se io sono il TC )

Non c'è bisogno di iniziare un nuovo ramo. C'è già un ramo di Alexei per questo. Tutte le varianti del problema qui elencate sono risolte con GA.

Tuttavia, mi piacerebbe sentire il capo del dipartimento dei trasporti.

 
Ecco, e ti è stata promessa una montagna d'oro.
 
vitali_yv:
Eccoci qui, e hanno promesso una montagna d'oro.
Una soluzione sarà presentata in serata.
 
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

Bene, lascia che ti dia un compito. Non sapete se i valori nelle variabili sono ripetuti, quindi diciamo che lo sono. Il problema è semplificato a 7 variabili, 20 varianti.

Bene, problema risolto. Una delle soluzioni è questa:

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


Promesso codice sorgente per risolvere questo problema e altri simili in allegato.

C'è solo un piccolo dettaglio. L'algoritmo è sviluppato per problemi in cui le variabili sono strettamente uniche e la loro permutazione in un'espressione non è permessa, per esempio per tale funzione:

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

È abbastanza chiaro che i valori di x e y non possono essere scambiati, altrimenti il valore della funzione cambia. Ecco perché solo i cromosomi dei seguenti tipi sono considerati assolutamente identici

3,9,8,7,4,5,3 и 3,9,8,7,4,5,3. Se si confrontano i cromosomi del tipo 3,9,8,7,4,5,3 e 3,8,9,7,4,5,3, sono considerati cromosomi completamente diversi.

Quindi il mio algoritmo non è adatto a trovare tutte le soluzioni dei suddetti tipi di problemi, dove "riordinare i posti degli addendi non cambia la somma".

Per questo motivo, dopo una singola esecuzione dell'algoritmo, è possibile ottenere solo una variante di soluzione e non tutte. Una delle soluzioni che ho dato sopra.

Per rendere l'algoritmo applicabile a questo tipo di problemi, si dovrebbe introdurre la regola opzionale "la somma non cambia quando si riordinano i posti degli addendi" e trattare cromosomi come 3,9,8,7,4,5,3 e 3,8,9,7,4,5,3 come duplicati.


Il codice sorgente è scritto in MQL5.


PS Di quali millenni stavi parlando per risolvere il problema? :)

File:
 
Molto interessante, è un peccato che non tutte le opzioni siano disponibili. È difficile fare un paragone. Rispetto.
Motivazione: