最近我对遗传算法的主题感兴趣,但我找不到任何好的资源。如果你知道任何好的资源,书籍或网站我会很感激。我对算法和人工智能有扎实的了解,但我正在寻找遗传编程中有很好介绍的东西。
答案 0 :(得分:28)
目前为我提供的最佳参考资料:
另外,如果你是一个绝对的初学者,我建议你从Hello World of Genetics Algorithms开始。开始时没有什么比干净利落的好例子了。
答案 1 :(得分:15)
我发现Melanie Mitchell的书An Introduction to Genetic Algorithms非常好。为了更广泛地涵盖进化计算主题,Eiben和Smith的Introduction to Evolutionary Computing也是值得的。
如果你刚刚开始,我最近写了一篇可能有用的introductory article。
在该文章中以及我的进化计算框架的home page上还有其他链接。
答案 2 :(得分:5)
我知道这是一个老问题,但尚未接受答案,所以我想我会加入自己的贡献。在我看来,与进化计算(遗传算法,进化策略,遗传编程等)相关的所有事物中最好的免费资源之一是Sean Luke的在线书籍Essentials of Metaheuristics。
答案 3 :(得分:4)
这是一本很好的关于这个主题的免费书
http://www.lulu.com/items/volume_63/2167000/2167025/2/print/book.pdf
答案 4 :(得分:3)
以下是Roger Alsing最近关于使用遗传算法构建“蒙娜丽莎的图片”的文章:http://rogeralsing.com/2008/12/07/genetic-programming-evolution-of-mona-lisa/
已修改以删除指向图片的热门链接请参阅:http://rogeralsing.files.wordpress.com/2008/12/evolutionofmonalisa1.gif
我已经实现了我自己的算法版本:
(来源:tumblr.com)
请参阅http://plindenbaum.blogspot.com/2008/12/random-notes-2008-12.html
答案 5 :(得分:3)
AI-Junkie.com对遗传算法有很好的介绍,还有许多其他AI和机器学习技巧的教程。遗传算法教程旨在“充分解释遗传算法,以便您能够在自己的项目中使用它们”,同时尽可能地保持数学下降。
答案 6 :(得分:2)
这本书可用free in PDF。本书涵盖了大量自然启发的算法,包括进化算法,群体算法和神经算法。
答案 7 :(得分:1)
很久以前我写过的简短介绍here,但更好的简短介绍是here。
有关更大,更全面但有些过时的资源列表,请访问comp.ai.genetic FAQ。
答案 8 :(得分:0)
如果我可以插一本我最喜欢的书籍,史蒂夫斯基纳的The Algorithm Design Manual有很多关于遗传算法的内容(加上很多其他有趣的启发式算法来解决各种类型的问题)。
答案 9 :(得分:0)
OReilly的书Programming Collective Intelligence有关于遗传算法的章节。 它可能有点基础,但它是一个非常简单的例子。
答案 10 :(得分:0)
答案 11 :(得分:0)
答案 12 :(得分:0)
有关介绍性方法(适用于“囚徒困境”),请参阅:
答案 13 :(得分:0)
我用java泛型实现了遗传算法。 https://github.com/juanmf/ga
考虑到Individual,Gen,FitnessMeter和作为春豆暴露的工厂的具体实施,它将应用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();
}
}