商用コードで遺伝的アルゴリズムのアプローチを見つけることがどれほど一般的であるか疑問に思っていました。
メイン アルゴリズムの補足として、一部の種類のスケジューラは GA エンジンの恩恵を受けることができると常に私には思われていました。
商用コードで遺伝的アルゴリズムのアプローチを見つけることがどれほど一般的であるか疑問に思っていました。
メイン アルゴリズムの補足として、一部の種類のスケジューラは GA エンジンの恩恵を受けることができると常に私には思われていました。
遺伝的アルゴリズムは、商業的に広く使用されています。列車のルーティングを最適化することは、初期のアプリケーションでした。最近の戦闘機は、翼の設計を最適化するために GA を使用しています。私は仕事で GA を広範囲に使用して、非常に大きな探索空間を持つ問題の解決策を生成してきました。
多くの問題は、GA の恩恵を受ける可能性は低いです。理解するのが難しすぎるというトーマスの意見には同意しません。GA は実際には非常に単純です。GA を特定の問題に最適化することから得られる膨大な量の知識があり、それは困難である可能性があり、常に大量の並列計算を管理することは、多くのプログラマーにとって引き続き問題であることがわかりました。
GA の恩恵を受ける問題には、次のような特徴があります。
おそらくGAの恩恵を受ける可能性のある多くの問題があり、将来的にはおそらくより広く展開されるでしょう。GA は人々が考えているよりも最先端のエンジニアリングで使用されていると思いますが、ほとんどの人 (私の会社のように) はそれらの秘密を非常に厳重に守っています。GA が使用されていたことが明らかになったのは、かなり後のことです。
ただし、「通常の」アプリケーションを扱うほとんどの人は、おそらくそれらをあまり使用していません。
例を見つけたい場合は、Postgres の Query Planner を見てください。それは多くの技術を使用しますが、そのうちの 1 つがたまたま遺伝的なものです。
http://developer.postgresql.org/pgdocs/postgres/geqo-pg-intro.html
私は修士論文で GA を使用しましたが、その後の日々の仕事の中で、他のアルゴリズムでは解決できなかった問題を GA で解決できるものは何も見つかりませんでした。
私は聞いたことがありませんが、この会社 (名前は思い出せません) は、変異する遺伝的アルゴリズムを使用して、アンテナ (または何か) の配置と長さを計算する会社のことを友人から聞いたことがあります。そして、彼らは(私の友人によると)これで大成功を収めるはずです。「平均的な Joe 開発者」が主流になるには、GA は複雑すぎると思います。Map Reduce のようなもの - 目を見張るほどクールですが、高度すぎて「主流」にならない...
論文の一部として、多目的最適化アルゴリズム mPOEMS (進化した改善ステップを使用した多目的プロトタイプ最適化) の汎用 Java フレームワークを作成しました。これは、進化的概念を使用した GA です。問題に依存しない部分と問題に依存する部分をすべて分離したジェネリックであり、問題に依存する部分を追加するだけでフレームワークを使用するためのインターフェイスが提供されます。したがって、アルゴリズムを使用したい人はゼロから始める必要がなく、作業が非常に容易になります。
コードはこちらにあります。
このアルゴリズムで見つけることができるソリューションは、科学研究で最先端のアルゴリズム SPEA-2 および NSGA と比較されており、メトリックに応じて、アルゴリズムが同等またはそれ以上のパフォーマンスを発揮することが証明されています。特に最適化の問題に応じて、パフォーマンスを測定します。
ここで見つけることができます。
また、私の論文と仕事の証明の一部として、このフレームワークをポートフォリオ管理で見つかったプロジェクト選択問題に適用しました。それは、会社に最大の価値を付加するプロジェクト、会社の戦略を最もサポートするプロジェクト、またはその他の恣意的な目標をサポートするプロジェクトを選択することです。例えば、特定のカテゴリーから一定数のプロジェクトを選択したり、プロジェクトの相乗効果を最大化したりする...
このフレームワークをプロジェクト選択問題に適用する私の論文: http://www.ub.tuwien.ac.at/dipl/2008/AC05038968.pdf
その後、フォーチュン 500 の 1 つのポートフォリオ管理部門で働きました。そこでは、GA をプロジェクト選択問題/ポートフォリオ最適化にも適用する商用ソフトウェアを使用していました。
その他のリソース:
フレームワークのドキュメント: http://thomaskremmel.com/mpoems/mpoems_in_java_documentation.pdf
mPOEMS プレゼンテーション ペーパー: http://portal.acm.org/citation.cfm?id=1792634.1792653
実際、少し熱意があれば、誰もが汎用フレームワークのコードを任意の多目的最適化問題に簡単に適応させることができました。