1

私には解決すべき問題があり、建設的な助けがあれば良いでしょう。

とにかく、Ball-and-Beam の問題を解くためのニューラル ネットワークを作成する遺伝的アルゴリズムを作成する必要があります。私が想像する唯一のフィットネス関数は、いくつかの時間を設定し(3〜10秒など)、各ユニットが船上で生き残るかどうかをテストすることです(フィットネス= t / T; t - 生き残った時間、T - 合計時間)、長い時間がかかります:(。

シミュレーションはこんな感じ

その遺伝的アルゴリズムは、各隠れ層の重み、トレーニングの係数、およびニューロンの数を生成する必要があります。残りのことはほとんどやっていますが、フィットネスが最大の問題です。

手伝ってくれてありがとう !

4

1 に答える 1

0

「時間を設定して、各ユニットが船内で生き残るかどうかをテストする」というのは正しい方法だと思います。

「ブリッジビルダーの遺伝的アルゴリズム」で同様のことを行いました。その場合のフィットネス関数は、「橋を建設し、車を通過させます。車で作られた距離と時間がフィットネスの結果でした」. この種のフィットネス関数を評価するには時間がかかるため、何かを試して高速化することができます。

  • 並列処理: GA が染色体の適応度を並列に評価することをサポートしていると思います。サポートされている場合は、できるだけ多くのボール アンド ビーム シミュレーションを同時に実行できます。ブリッジビルダーのフィットネス機能の場合、同時に100個ほどのブリッジをテストしました。
  • 物理エンジンのタイム スケール: 物理エンジンを使用してシミュレーションを実行している場合は、おそらくそのタイム スケールを変更できます。タイム スケールを 0.5 以下に変更してみてください。結果は、通常のタイム スケールのように完全ではない可能性がありますが、ニューラル ネットワークを作成するには許容できるものです。

遺伝的アルゴリズムを構築するためにどの言語を使用しているかわかりません。C# を使用している場合は、 GeneticSharp を使用してみてください。これを使用して、並列適合度関数評価を備えたブリッジ ビルダーの遺伝的アルゴリズムを作成しました。

于 2016-05-31T12:02:03.580 に答える