記事"遺伝的アルゴリズム - とても簡単です!"についてのディスカッション - ページ 15

 

こんにちは、質問はしません。

ただ、あなたの仕事に心から感謝しています!ありがとう!

とても助かりました。

 

こんにちは。最近、GAに注目するようになりました。GAについて」の情報源はどれも私を落胆させた。どこに行けばいいのかわからなくて...。そして、あるリンクからあなたの記事に出会ったのです。一言で言えば、万歳!))

いくつか質問があります。この記事がかなり前に書かれたものであることは承知しています。それでも...

1.宣言された 変数はどこにも使われていません。

input int    FFNormalizeDigits_P  = 0;        //適応マーク数
input int    GeneNormalizeDigits_P= 0;        //遺伝子の文字数

これは将来の計画なのでしょうか?

2.2.UGAを何度か実行したが、異なる値、つまり1度目は正しく、2度目は全く正しくない。質問 - UGAパラメータのどれを「大きく」設定すれば正解数が増えるのか。

予告編では...左の写真は正しくない結果。

ファイル:
111.png  8 kb
 
Alexey_74:

...問題は、正答数を増やすためには、どのGAパラメーターを「大きく」設定すべきか、ということだ。

一般的に、残念ながら、明確な答えは存在しないし、存在し得ない。すべてはタスクに依存する。

あなたの特定のケースでは、これらのパラメーターをひねってみてください:

input int    ChromosomeCount_P    = 100;    //コロニー内の染色体数
input int    Epoch_P               = 50;    //改善されなかったエポック数
//---
input string GA_OperatorParam     =        "---オペレーター・パラメーター-----";
input double ReplicationPortion_P  = 100.0; //Dole レプリケーション。
input double NMutationPortion_P    = 10.0;  //自然突然変異の割合。
input double ArtificialMutation_P  = 10.0;  //人工突然変異のドール。
input double GenoMergingPortion_P  = 20.0;  //遺伝子の借用。
input double CrossingOverPortion_P = 20.0;  //クロスオーバー・シェア
input double ReplicationOffset_P   = 0.5;   //インターバル境界オフセット係数
input double NMutationProbability_P= 5.0;   //各遺伝子の突然変異の確率(%)。

:)

最初の2つのパラメーターを上向きに変更すると、一義的に収束性が高まりますが、もちろん探索時間は長くなります。

 

返信ありがとう。遊んで、観察して...。一般的に、すべての観察を共有する意味はない。極端なバリエーション」で十分です。

最初の2つのパラメータがそれぞれ50と2に等しい場合、アルゴリズムの実行時間は170-200ミリ秒です。

......、100と50に等しい場合、実行時間は103203ミリ秒であった。そう、このアルゴリズムは、"その通り "と "結果通り "の絶対的な一致をもたらしたのだ。

しかし、残念なことに、時間消費は達成された結果にまったく対応していない。

 
Alexey_74:

返信ありがとう。遊んで、観察して...。一般的に、すべての観察を共有する意味はない。極端なバリエーション」で十分です。

最初の2つのパラメータがそれぞれ50と2に等しい場合、アルゴリズムの実行時間は170-200ミリ秒です。

......、100と50に等しい場合、実行時間は103203ミリ秒であった。そう、このアルゴリズムは、"その通り "と "結果通り "の絶対的な一致をもたらしたのだ。

しかし、残念なことに、時間消費は達成された結果にまったく対応していない。

ニュートン法で解ける問題なら、ニュートン法で解くべきだ。短時間で正確な結果が得られるでしょう。

そうでないなら、GAへようこそ。顕微鏡と木の実のことわざがここで思い出される。

 
Urain:

ニュートン法で解ける問題なら、ニュートン法で解くべきだ。短時間で正確な結果を得る。

そうでないなら、GAに行けばいい。顕微鏡と木の実のことわざを思い出す。

残念ながら、単純な方法はない。どのような作業をするにしても、最適化の問題が前面に出てくる。指標と呼ばれるBPハイポスターはすべてパラメトリックである。同じジグザグでも......。

そして、パラメータがある以上、それらは再(サブ)ビートされるべきであるということだ。最も単純な変形は入れ子サイクルである。練習が示すように、ほとんどの場合、それはオプションではない。だからGAを使うんだ。そして、邪悪なものからでは全くない。))急務なのだ。

1、2年前、私は純粋な実験をした。周期の長い2つのマスキを 取ると、その差は(別ウィンドウで)明らかに正弦波形のかなり滑らかなグラフのように見える。私は

いくつかの正弦波の和がこのグラフを繰り返せるかどうか。私は3つの正弦波をピックアップするスクリプトを作った。最初は5つ欲しかったが、3つに変更した(実験、なぜ熱くなる?)結果は3サイクル(2つの入れ子)だった。

もちろん、サイクルからコメントを取り除けば、サイクリックアルゴリズムはより速く機能する。しかし、残念ながら100回ではないし、プロセスを追跡する可能性は完全になくなってしまう。

そのため、実験は開始されることなく中止された。しかし、一見単純に見える事態のスケールと重大さに「聞いた」私は驚き、怖くなりそうだった。))

 

アンドリュー もう2つ質問がある:

1.代替ジグザグの例で、「...染色体の遺伝子型が表現型と一致しない場合」という表現を使われました。これはGAとの関係ではどういう意味ですか?

2.私の理解では、ランキングは降順で行われます。つまり、Colony[0][chromos]の値が高いほど、その個体の適応度が高いということでしょうか?

つまり、FFでクリブリンを扱う場合、相関係数rやRは0->1の傾向があるので使える(使うべき)。

 
Alexey_74:

アンドリュー もう2つ質問がある:

1.代替ジグザグの例で、「...染色体の遺伝子型が表現型と一致しない場合」という表現を使われました。これはGAとの関係ではどういう意味ですか?

2.私の理解では、ランキングは降順で行われます。つまり、Colony[0][chromos]の値が高いほど、適応度が高いということでしょうか?

3.つまり、私の理解が正しければ、FFでカーブリンを扱う場合、相関係数rやRは0->1の傾向があるため、使うことができる(はず)であり、MSEは->0であるため、使うことができない。

1.染色体の遺伝子が最適化される関数の引数と同じ場合、遺伝子型は表現型に対応する(遺伝子型-遺伝子値、表現型-引数値)。遺伝子と引数が等しくない(ある種の変換が使われている)場合は、対応しない。生物学における遺伝子型と 表現 型の概念についてはググってください。

2.はい。順位の方向を明示的に指定することもできるし、FF値に-1を掛けることもできる。

3.すみません、質問の意味がわかりませんでした。

 
joo:

1.染色体の遺伝子が最適化される関数の引数と同じ場合 - 遺伝子型は表現型に対応する(遺伝子型 - 遺伝子の値、表現型 - 引数の値)。遺伝子と引数が等しくない(ある種の変換が使われている)場合は、対応しない。生物学における遺伝子型と 表現 型の概念についてはググってください。

2.はい。順位の方向を明示的に指定することもできるし、FF値に-1を掛けることもできる。

3.すみません、質問の意味がわかりませんでした。

ありがとうございます。

1.それは私の推測です。しかし、推測は不確かで危険なものだ。確かなことを知る方がずっと望ましい。ググることについては、アドバイスをありがとう。劣性、優性、対立遺伝子、表現型、遺伝子型、ホモ接合体、ヘテロ接合体...。なんということだろう、私の頭の中はゴミだらけだ。そうそう、ソ連の学校では知識の与え方を知っていたんだ。))

2.これも理解できる。

3.しかし、3つ目のポイントはなかった。ただ3行目(2段落目の続き)に、「もし私が正しければ...」というようなことを声に出して考えた。質問ではない。そう見えるかもしれないが。では、修辞的質問。意味を説明しよう。例えば、純粋に合成的に。正弦波形のカーブ信号があり、それが3つの正弦波の和であることがわかっている。GAがこのタスクに簡単に対処し、3つの正弦波すべての周期を生成することはほぼ間違いない。しかし、その過程で、3つの正弦波の和が基準にどれだけ似ているかを測定する必要がある。私の武器にはそのような測定が3つある:r(ピアソン)、R(p二乗)、MSE。特にこれらはニューラルネットワークのパラダイムでも「フィットネス」の尺度として使われているからね。

ありがとうございます。繰り返しになるが、私は最近GAの話題に飛び込んだばかりだ。だから、初心者とか、ダミーとか、バレノックとか、そういう蔑称はすべて、残念ながら私のものだ...。))

追伸:もちろん、生物学的類似体については知っている。しかし、この知識は純粋に、高級プログラミング言語で記述されるプロセスの本質を理解するためのものである。そしてそれは、どこにでもあるわけでも、常にあるわけでもない。私は、生物学的アナロジーとニューロコンピュータのアナロジーをきつく結びつけてはいない。生物学(自然)では、どういうわけか、すべてが一回限りで機能する。しかしニューロコンピューティングでは、なぜかうまくいかないことが多い。

 

アンドリュー、もうひとつ質問だ。

input string GA_OperatorParam     =        "---オペレーター・パラメーター-----";
input double ReplicationPortion_P  = 100.0; //Dole レプリケーション。
input double NMutationPortion_P    = 10.0;  //自然突然変異の割合。
input double ArtificialMutation_P  = 10.0;  //人工突然変異のドール。
input double GenoMergingPortion_P  = 20.0;  //遺伝子の借用。
input double CrossingOverPortion_P = 20.0;  //クロスオーバー・シェア
input double ReplicationOffset_P   = 0.5;   //インターバル境界オフセット係数
input double NMutationProbability_P= 5.0;   //各遺伝子の突然変異の確率(%)。

このような変数の値は、ほとんどの最適化問題に適していると言えるのでしょうか?いくつかの情報源で言われているように、「...90%の問題は普通のパーセプトロンを使って解くことができる "とあります。