最近、遺伝的アルゴリズムのトピックに興味がありますが、適切なリソースが見つかりませんでした。良いリソース、書籍、サイトをご存知でしたら、よろしくお願いします。私はアルゴリズムと人工知能について確かな知識を持っていますが、遺伝的プログラミングの入門に適したものを探しています。
14 に答える
これまでのところ、私にとって最高の参考文献:
- David E. Goldberg 著、Genetic Algorithms in Search, Optimization, and Machine Learning : クラシックであり、多くの人が GA のバイブルと考えています。
- An Introduction to Genetic Algorithms by Melanie Mitchell: 以前のリファレンスよりも新しく、おそらくもっと興味深い例が満載です。
- A Field Guide to Genetic Programming by Poli, Langdon, McPhee: これはより実践的なガイドであり、非常に高い評価を得ています。
また、まったくの初心者の場合は、 Hello World of Genetics Algorithmsから始めることをお勧めします。開始するのに最適なクリーンな例はありません。
Melanie Mitchell の著書An Introduction to Genetic Algorithmsは非常に優れていることがわかりました。Eibenと Smith によるEvolutionary Computing の紹介も価値があります。
あなたが始めたばかりなら、私は最近、役立つかもしれない入門記事を書きました。
その記事と私の進化的計算フレームワークのホームページの両方に、さらにリンクがあります。
これは古い質問であることは知っていますが、まだ回答が受け入れられていないため、自分の貢献を追加すると思いました. 進化計算 (遺伝的アルゴリズム、進化戦略、遺伝的プログラミングなど) に関連するすべてのことについて、私の意見では最高の無料リソースの 1 つは、Sean Luke のオンラインブックEssentials of Metaheuristicsです。
これは、テーマに関する素晴らしい無料の本です
http://www.lulu.com/items/volume_63/2167000/2167025/2/print/book.pdf
AI-Junkie.comには、遺伝的アルゴリズムの優れた紹介と、他の多くのAIおよび機械学習技術に関するチュートリアルがあります。遺伝的アルゴリズムのチュートリアルは、数学を可能な限り抑えながら、「遺伝的アルゴリズムを十分に説明して、自分のプロジェクトで使用できるようにする」ことを目的としています。
これは、遺伝的アルゴリズムを使用して「モナリザの絵」を作成することに関するロジャー アルシングの最近の記事です。
写真へのホットリンクを削除するために編集されました。
このアルゴリズムの独自のバージョンを実装しました。
(ソース: tumblr.com )
http://plindenbaum.blogspot.com/2008/12/random-notes-2008-12.htmlを参照してください。
私がずっと前に書いた簡単な紹介はここにありますが、より良い短い紹介はここにあります。
多少古くなっていますが、より大きく包括的なリソースのリストについては、comp.ai.genetic FAQを参照してください。
OReillyによる「 ProgrammingCollectiveIntelligence」という本には、遺伝的アルゴリズムをカバーする章がありました。基本的には少しかもしれませんが、非常にわかりやすい例でした。
私のお気に入りの本の1つを差し込むとしたら、 Steve Skienaによるアルゴリズム設計マニュアルには遺伝的アルゴリズムに関するすばらしいセクションがあります(さらに、さまざまなタイプの問題を解決するための他の多くの興味深いヒューリスティック)。
「遺伝的アルゴリズムの紹介」http://www.burns-stat.com/pages/Tutor/genetic.html
For an introductory approach (with an application to the Prisoner's Dilemma), see into:
Javaジェネリックを使用して遺伝的アルゴリズムを実装しました。https://github.com/juanmf/ga
Individual、Gen、FitnessMeter、Spring Bean として公開されたファクトリの具体的な実装を考慮して、3 つの演算子 (Mutation、crossing、Selection) を適用し、集団を進化させます。
/*This is all you have to add to the Spring App context
* before running the application
*/
@Configuration
public class Config {
@Bean(name="individualFactory")
public IndividualFactory getIndividualFactory() {
return new Team.TeamFactory();
}
@Bean(name="populationFactory")
public PopulationFactory getPopulationFactory() {
return new Team.TeamPopulationFactory();
}
@Bean(name="fitnessMeter")
public FitnessMeter getFitnessMeter() {
System.out.println("getFitnessMeter");
return new TeamAptitudeMeter();
}
}