遺伝的アルゴリズムを使用するクールなプロジェクト? [閉まっている]

StackOverflow https://stackoverflow.com/questions/472030

質問

私は、遺伝的アルゴリズムを使用する実用的なアプリケーションを探しています。考えられていることは次のとおりです。

  • ウェブサイトのインターフェースの最適化
  • 物理シミュレーターによる車両の最適化
  • 遺伝的プログラミング
  • テストケースの自動生成

しかし、誰も本当に私に飛び出していません。では、遺伝的アルゴリズムプロジェクトに費やす自由時間(数か月)があった場合、何に取り組むことを選択しますか?

役に立ちましたか?

解決

可能性のあるトピックの1つは、進化アルゴリズムを使用してゲームプレイの戦略を進化させることです。人々は進化を使用して、ポーカー、チェッカー/ドラフト、Go、および他の多くのゲームの戦略を生み出してきました。 J-GAP の人々は、遺伝プログラミングを使用して Robocode

最近、紹介記事進化的計算について。進化的アルゴリズムが使用されているもののいくつかの詳細が含まれています。 Adam Marczyk も、多くの例を含む優れた記事を書いています。 Genetic Argonautブログには、興味深い進化プロジェクトへの多数のリンクが含まれています。

あまり一般的ではないタイプの進化アルゴリズムは、学習分類システムです。これにより、入力を分類するための一連のルールが進化します。ニューラルネットワークが使用されるのと同じ種類の問題に適用できます。フォームに基づいてスポーツの結果を予測しようとするなど、特定の問題に対してLCSを開発することは興味深いかもしれません。

他のヒント

進化するレゴ構造を最も考慮しますGAの興味深いおもちゃプロジェクト。

http://static.23.nu/md/Pictures/ZZ099735B6.jpg

自動テストケース生成に対して提案されているものに似たものについて読みました。実際、それは正反対でした。テストケースを指定し、アルゴリズム(遺伝的プログラミング)に渡して渡すコードを作成します。このようにして、仕様を提供し、プログラムを作成します。少しグーグルで検索すると、いくつかの研究を見つけることができます。
これは非常に興味深いアイデアだと思います。もちろん、今では誰もこのようなアプリを作成しませんが、それは素晴らしい学習領域です。

おそらく巡回セールスマンツアーを見つける。私は最近、パリの約66か所を歩くウォーキングツアーを見つけようとしましたが、これらすべてをコーディングするのはとても楽しいことがわかりました。私の興奮は2つのソースに由来すると思いました:ツアーを描くことができるという事実(モナリザのアイデアについての良い点、またはエンジニアリングのことならレゴの構造)、そしてあなたができる多くのアプローチがあるという事実比較:

  • <!> quot;どこかで開始し、常に最も近い未訪問の場所<!> quot;のような単純なヒューリスティックを使用できます。
  • <!> quot; 1つの頂点から3つのエッジまたは小さなサイクルが発生する場合を除き、コストを上げることでエッジを(どこでも)追加し続ける<!> quot;などのより複雑なヒューリスティックを使用できます。
  • 最小スパニングツリーに基づく簡単なアルゴリズムなどの近似アルゴリズムを使用できます。 >コストが三角形の不等式を満たしている場合。おまけとして、最小スパニングツリーをコーディングできます(高速で簡単な正確なアルゴリズムが利用可能であっても、GAを使用することもできます)。自信があれば、最小全域木と完全一致に基づいて、より難しい(3/2)近似アルゴリズムをコーディングできます。
  • 旅行中のセールスマンツアーがあり、それ自体が交差する場合は、<!> quot;交差しない<!> quot;で改善できます。繰り返しますが、これはコスト関数に関するいくつかの条件を想定しています。
  • 自分でツアーを見つけて、コンピューターを倒せるかどうかを確認することもできます。
  • 最後になりましたが、遺伝的アルゴリズム!この問題は、非常に明確なフィットネス関数と非常に簡単な組み換えの方法があるため、GAに非常に適しています。

サウンドパッチを生成するために複雑なシンセサイザーで使用されています(例: Clavia Nord Modular G2 )他のマシンでも試してみます。ヤマハDX7が思い浮かびますが、ソフトウェアの代替品はかなりあると思います。または画像生成。

Palle Dahlstedtによる論文のパッチアルゴリズムの背後にある理論について読む。現時点ではダウンしているようです...

遺伝的アルゴリズムは、最適化とスケジューリングに適しています。例としては、一連のマシンをスケジュールし、時間の経過とともにパーツとオペレーターにタスクのセットを完了させることです。おそらく最もエキサイティングなプロジェクトではありませんが、実世界のアプリケーションがあります。

コンウェイのゲームオブライフと遺伝的アルゴリズムで遊ぶのが楽しかった、
高度な生命体を進化させようとしています。 しかし、数ヶ月..

プロジェクトの言及を見て、最適なものを試してみてください。キーボードレイアウトは次のようになります-<!> quot; beat Dvorak、<!> quot;そのまま。 :D

大学に戻って、多次元関数の最小化を行いました。パラメータx1、x2、x3、...、xnを取り、値Yを生成するaf(x)があるとします。パラメータx1を見つける必要があります..、xn Y = Y1 ..そんなに難しくない..それでも面白い学習方法。 Nedlermeadの方が効率的ですが、これはローカルミニマムで立ち往生する傾向がありません。

楽曲を生成します! David Copeと彼のプログラムEmily Howellについて読んでください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top