A = 1112161923252627293437384346485859626473
B = 237911161831323341424347535460616481
C = 79152224252728293442444652536466676870
D = 1541518192432343942464748496061687277
E = 912192124272935434546555861646566687182
F = 611122226324248525458616465728384879497
G = 49141519263537394045485253596367707476
A + B + C + D + E + F + G = 256
残念ながら、私は数学者ではないので、このページの冒頭に書かれていることがよくわかりませんでした。私の問題で言えば、7つのベクトルの集合があり、これらのベクトルの要素の可能な組み合わせをすべて見つける必要があり、合計256個になります。
そして、なぜ トピックスターターとヴィタリーが この問題の解決策を必要とするのか、誰もが考えたことがあるだろうか--しかも、あらゆるバリエーションで。
少し考えてみました。そして、実用的な意味がわからないと表現しています。
vitali_yv:
なぜTCなのかはわかりません。問題の条件を策定するように言われたので必要なのですが、こんな複雑な問題をGAで解決するのはどうなんでしょう。
おっとっと。そして、私は逆に、あなたがトピックスターターなのだと思いました。:[
そうすると、すべてがキャンセルになります。謎の不要論者の登場を待っています。
なぜ中止なのですか?私がTCである場合のみ解決したい場合は、私の条件であなた専用のスレッドを作成させてください )
新しいブランチを立ち上げる必要はありません。これについては、すでに アレクセイの ブランチが あります。ここに挙げた問題のすべてのバリエーションがGAで解決されています。
それにしても、運輸部門の責任者の話を聞いてみたいものだ。
ここにきて、金塊の山を約束された。
では、課題を出します。変数の値が繰り返されるかどうかは分からないので、仮に繰り返されるとします。問題は7変数20変種に単純化されています。
さて、問題は解決しました。その解決策のひとつがこれです。
64+11+9+24+24+72+52=256
この問題を解決するための約束されたソースコードを添付します。
ただひとつ、小さなこだわりがあります。このアルゴリズムは、例えばこのような関数のように、変数が厳密に一意であり、式中の並べ替えが許されないような問題のために開発されたものである。
f(x,y)=x*x+y.
xとyの値が入れ替わると、関数の値が変わってしまうことは明らかです。そのため、次のようなタイプの染色体だけが、絶対に同一であると考えられているのです。
3,9,8,7,4,5,3 и 3,9,8,7,4,5,3.3,9,8,7,4,5,3型と3,8,9,7,4,5,3型の染色体を比較すると、全く別の染色体であると判断できます。
ですから、私のアルゴリズムは、上記のような「足し算の場所を並べ替えても和が変わらない」タイプの問題のすべての解を 求めるのには向いていないのです。
このため、アルゴリズムの1回の実行では、すべての解の変形ではなく、1つの解の変形しか得られない可能性があります。上にあげた解決策の一つ。
このような問題に適用できるようにするためには、オプションで「足し算の場所を並べ替えても和が変わらない」というルールを導入し、3,9,8,7,4,5,3 や 3,8,9,7,4,5,3 といった染色体を重複として扱えるようにする必要があります。
ソースコードはMQL5で 書かれています。
PS 何千年の話だったっけ?:)