遺伝的アルゴリズムとその応用の可能性 - ページ 3

 
Igor Makanu:

それは適している、遺伝的最適化モードで "ユーザー基準の最大値 "によってテスターのGAがダブルOnTester()から得られた結果を最大化します - すべてが動作しますが、それは見つかったローカル最大の周りに収束し始め、入力パラメータによって他のバリエーションを検索したくないときに "GAを元気づけるために" 自動化に問題があります、微調整で一般的にGAには条件をOnTester()またはいくつかの間隔に最適化のパラメータの分割によって 追加することによって支援しなければなりません

ちなみに、どのように実装するのですか?また、そのようにしようと考え始めました。

タグコノウ
ある環境に最適化され、適応した「スマート」という意味ですか?

そうですね、選別は必ず何らかの基準で行われます。ちなみに、この基準そのものは、必要に応じて世代交代してもよい。

 
Реter Konow:
特定の環境に最適化され、適応する「インテリジェント」という意味ですか?

OKです。相互作用するシステムの複合体から、閉じた環境を作り出す。例えば、3遺伝子の個体が2遺伝子の個体から「逃げられない」場合、「食い尽くす」(自分にくっついて成長する)(仮に遺伝子XとYが平面上の座標だとする)。3つの遺伝子を持つ個体には、3つ目の次元である遺伝子Zが加わっています。優位性を持っています。2遺伝子個体の課題は、捕まらないように生き残ることであり、3遺伝子個体の課題は、2遺伝子をできるだけ早く捕らえ、時間と資源を節約することである。

ゴール:遺伝的に弱い個体が生き残るためには、遺伝的に強い個体を計算しなければならない。
三次元の人間は、鳥がネズミを見るように、二次元の人間を平面で見ている。しかし、大きな集団の中では、多くのバイジェニックが存在し、それぞれがその部族を食い尽くすという出来事を、いつ、どこで捕らえたか、ということを捉えているのです。つまり、敵が3次元空間にどのような障害物を持ち、どのように適応すれば生き残れるかについて、すべての世代から得られた経験や知識である「知覚」を一般化することができるのである。
 
Aleksey Mavrin:

ちなみに、どのように実装するのですか?また、こんな風にやってみたいと思うようになりました。

それはテスターで通常の作業です - まず、最適化のためのすべてのパラメータを設定し、次にテスターが各パスで水平線を描き始める瞬間までテスト - これはGAが1ローカル最大の周りに収束したことを示すものです、そして、あなたはGAが変更を停止したパラメータを最適化タブで見て、次の最適化が実行 されて、他の間隔でこれらのパラメータ(これはGAを変更しない)壊します、それは頻繁に最適化キャッシュを削除(保存)テスターを再起動するには十分ですが - GAが間違って初期化してください。

 
Igor Makanu:

それはテスターで通常の作業です - まず、最適化のためのすべてのパラメータを設定し、あなたはテスターが各パスで水平線を描き始める瞬間までテストしている - それはGAが一つのローカル最大の周りに収束したことを示すものです、あなたは最適化タブで見るどのパラメータGAが変更を停止し、次の最適化は、他の間隔でこれらのパラメータ(これはGA変更しません)、それはしばしば最適化キャッシュを削除(保存)テスターを再起動するのに十分ですが壊します - GAを初期化します。

GAでは、パラメータ変更のステップが十分低ければ、(局所的ではなく)一般的な最大値に収束するはずだと思います。ステップが高すぎる場合、ステップの間隔を変更しても、最大値が隣接する値の間でスリップすることがあります。

それなら、最低ステップでフルエンミングを行い、GAで最悪レンジを淘汰する方がシンプルです。

 
Aleksey Mavrin:

そうすると、最低ピッチでフルオーバーシュートしやすくなり、GAして、最悪のレンジを淘汰していきます。

簡単ではありませんが、私のEAを最適化してみました。


1.5年間、このEAの単一のテストの1つのパスが1.5〜2秒かかりますが、オプティマイザでほぼ同じ速度、あなたはどのくらいのフル検索を取るだろうと推定することができ、20〜50分以内にGA私はすでに私を満足させる結果が見つかりました

 
Igor Makanu:

簡単ではありませんが、私のEAを最適化しているところです。


このEAを1.5年で1回テストすると1.5~2秒かかります。オプティマイザもほぼ同じ速度で、フル稼働するのにかかる時間を見積もることができ、20~50分以内にGAすれば、すでに満足できる結果が得られています。

パス数を科学的に表示すると、遺伝子の桁あふれになり、(全くと言っていいほど)機能しない。そうせざるを得なかったのです。

1.ステップ数を減らす。歩数が粗くならないように、そして目的の範囲をカバーするために、歩数をノンリニアにしたのです。パラメータ変更 0.001〜0.099、0.01〜0.99、0.1〜9.9、・・・・。すなわち、1%程度の精度でステップします。

2.最適化する変数の数を減らすこと、これが最大のポイントです。

2а.変数をほぼ独立した(グループの)グループに分割し、別々に最適化する。

2б.他の変数に依存している変数を見つけ、それらをリンクさせる。私はその方法で、非常に長い間大騒ぎをした後、いくつかの変数を削除しました。

2в.収益性を極端に低下させる代償として、定数化できる変数を見つけること。も発見されました。

3.何度も評価をして、変数の範囲を絞り込む。

そのような犠牲を払うまで、私の最適化は効果がなかったのです。これは、変数が多すぎる最適化の話です。これ自体は間違っているのですが、専門家の中には、複雑にするよりも単純化する方に進化していく人もいます。

 
Igor Makanu:

簡単ではありませんが、私のEAを最適化しているところです。


1.5年間でこのEAの単一のテストの1つのパスが1.5〜2秒かかります、オプティマイザでほぼ同じ速度、あなたはそれが完全な列挙にかかる時間を見積もることができ、20〜50分以内にGA私はすでに私を満足させる結果を見つけることができます。

これは、システムの複雑さの問題です。GUのスレッドで議論してました。完全な列挙のために、3~5歩は歩きますね。あなたは、スクリーンショットの18パラメータを持って、それは(3-5)^18 = 400M〜3.8兆、すでに同情になるだろうが、それはたくさんあり、最も重要なペア、私はすべてではないフル検索を行い、いくつかの、そしてすでにその後一緒に決定GAにグループで固定されている - 絞り込みGM。

と、より詳細な記述に完全に同意します。

エドガー・アフマディエフ

パスの数を科学的に表示すると、圧倒されるのは遺伝子のデジタル化で、(全くと言っていいほど)機能しない。そうせざるを得なかったのです。

1.ステップ数を減らす。歩数が粗くならないように、そして目的の範囲をカバーするために、歩数をノンリニアにしたのです。パラメータ変更 0.001〜0.099、0.01〜0.99、0.1〜9.9、・・・・。すなわち、1%程度の精度でステップします。

2.最適化する変数の数を減らすこと、これが最大のポイントです。

2а.変数をほぼ独立した(グループの)グループに分割し、別々に最適化する。

2б.他の変数に依存している変数を見つけ、それらをリンクさせる。私はこの方法で、非常に長い間大騒ぎをした後、いくつかの変数を削除しました。

2в.収益性を極端に低下させる代償として、定数化できる変数を見つけること。 も発見されました。

3.何度も評価をして、変数の範囲を絞り込む。

そのような犠牲を払うまで、私の最適化は効果がなかったのです。これは、変数が多すぎる最適化の話です。これ自体は間違っているのですが、専門家の中には、複雑にするよりも単純化する方に進化していく人もいます。

その人その人のやり方がある、要するにみんなわかっているんでしょうね。
 
Edgar Akhmadeev:

パス数を科学的に表示すると、遺伝子のデジタル化がオーバーフローしてしまい、まったく間違った動作をします(動作するとしたら)。


完全に間違った動作をする」とはどういう意味ですか?

作品の不正確さをどう再現するのか?

 
Edgar Akhmadeev:

パス数を科学的に表示すると、遺伝子の桁がオーバーフローしてしまい、(全くと言っていいほど)機能しない。

私はGAが明確に動作し、私は成功したパスのEA設定ファイルに書き込み、私は入力最適化パラメータ自体のMD5ハッシュからファイル名を作成し、すなわち、最適化中に私はファイルが共通フォルダに表示されるのを参照してください。

GAが最適化パラメータの小さなグループに収束し始めることがありますが、これは正常で、すべてのGAがこのように動作し、その使用上の問題であると思います。

しかし、明確にGAが動作し、ハングアップしない - 私は、追加されたファイルとユニークな名前でそれを参照してください。

 
Slava:

全く正常に動作しない」とはどういうことですか?

誤動作を再現する方法を教えてください。

昔、EAでフレームを使った時に書いたことがあります。もう正確なところは覚えていませんが、全部のフレームが来るわけではない(結果が良くなる)ようになったのだと思います。古い記事を探して、解明してみます。

しかし、Expert Advisorでは、オーバーシュートの回数が一定数を超え、それが科学的に表示されると同時に、私の遺伝子が壊れるという、はっきりとした再現性があったことを記憶しています。重要なのは、変数のステップ数が多いことだけではありません。