最近我对遗传算法的话题很感兴趣,但是我找不到任何好的资源。如果您知道任何好的资源、书籍或网站,我将不胜感激。我对算法和人工智能有扎实的了解,但我正在寻找在遗传编程方面有很好介绍的东西。
14 回答
到目前为止对我来说最好的参考资料:
- David E. Goldberg的《搜索、优化和机器学习中的遗传算法》:经典之作,至今仍被许多人视为 GA 的圣经。
- 梅兰妮·米切尔 (Melanie Mitchell ) 的遗传算法简介:比以前的参考资料更新,并包含可能更有趣的示例。
- 由 Poli、Langdon、McPhee编写的遗传编程领域指南:这更像是一本实用指南,并且获得了非常好的评价。
此外,如果您是绝对的初学者,我建议您从Hello World of Genetics Algorithms开始。没有什么比一个很好的干净示例更能开始了。
我知道这是一个老问题,但尚未接受任何答案,所以我想我会添加自己的贡献。在我看来,所有与进化计算(遗传算法、进化策略、遗传编程等)相关的最好的免费资源之一是 Sean Luke 的在线书籍Essentials of Metaheuristics。
这是一本关于该主题的不错的免费书籍
http://www.lulu.com/items/volume_63/2167000/2167025/2/print/book.pdf
这是 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
AI-Junkie.com上对遗传算法有很好的介绍,还有许多其他 AI 和机器学习技术的教程。遗传算法教程旨在“充分解释遗传算法,以便您能够在自己的项目中使用它们”,同时尽可能降低数学。
我很久以前写的简短介绍可以在这里找到,但更好的简短介绍在这里。
如需更大、更全面但有些过时的资源列表,请访问comp.ai.genetic 常见问题解答。
如果我可以插入我最喜欢的书之一, Steve Skiena的《算法设计手册》中有一个关于遗传算法的精彩部分(加上许多其他有趣的启发式方法来解决各种类型的问题)。
OReilly 的Programming Collective Intelligence一书有一章涵盖了遗传算法。它可能有点基本,但它是一个非常说明性的例子。
对于介绍性方法(适用于囚徒困境),请参阅:
我用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();
}
}