Machine learning 使用遗传算法的酷项目?

Machine learning 使用遗传算法的酷项目?,machine-learning,genetic-algorithm,Machine Learning,Genetic Algorithm,我正在寻找一个实际的应用程序来使用遗传算法。一些已经想到的事情是: 网站界面优化 基于物理模拟器的车辆优化 遗传程序设计 自动测试用例生成 但没有一个人真的对我大发雷霆。所以如果你有一段空闲的时间(几个月)花在一个基因算法项目上,你会选择什么样的解决方案? < P>你可能会对Roger Alsing的 < P>感兴趣。 我相信我看到有人提到,使用一个键盘来尝试找到最佳的键盘布局,可以说是“打败德沃夏克”:D我玩康威的生命游戏和遗传算法玩得很开心, 试图进化出先进的生命形式。。不确定这是否会让

我正在寻找一个实际的应用程序来使用遗传算法。一些已经想到的事情是:

  • 网站界面优化
  • 基于物理模拟器的车辆优化
  • 遗传程序设计
  • 自动测试用例生成

但没有一个人真的对我大发雷霆。所以如果你有一段空闲的时间(几个月)花在一个基因算法项目上,你会选择什么样的解决方案?

< P>你可能会对Roger Alsing的

< P>感兴趣。

我相信我看到有人提到,使用一个键盘来尝试找到最佳的键盘布局,可以说是“打败德沃夏克”:D

我玩康威的生命游戏和遗传算法玩得很开心,
试图进化出先进的生命形式。。不确定这是否会让你忙上一段时间

不过有几个月了

也许找一个旅行推销员旅行。我最近试着在巴黎66个地方进行徒步旅行,我发现编码这些东西非常有趣。我认为我的兴奋源于两个方面:一是我能画出这些画(蒙娜丽莎的想法也是一个好东西,或者如果你喜欢工程学,那就是乐高结构),二是有很多方法可以比较:

  • 您可以使用简单的启发式方法,比如“从某个地方开始,总是去最近的、未访问的位置”
  • 您可以使用更复杂的启发式方法,例如“通过增加成本来按顺序添加边(任意位置),除非它会导致一个顶点中有三条边或一个更小的循环”
  • 您可以使用近似算法,例如,如果您的成本满足三角形不等式。作为奖励,您可以编写最小生成树(也许您甚至可以在那里使用GAs,尽管可以使用快速简单的精确算法)。如果你有信心,你可以编写一个基于最小生成树和完美匹配的更难的(3/2)近似算法
  • 如果你有任何旅行推销员之旅,它会交叉,你可以通过“取消交叉”来改进它。同样,这假设了成本函数的一些条件
  • 你甚至可以试着自己找一次旅行,看看你是否能打败你的电脑
  • 最后但并非最不重要的是,遗传算法!这个问题非常适合于气体,因为有一个非常清晰的适应度函数和一个非常简单的重组方法
参见


我觉得它真的很酷。

它已经被用于复杂的合成器来生成声音补丁(例如),我也会尝试在其他机器上使用它,雅马哈DX7出现在我的脑海中,但我想有相当多的软件可供选择。或图像生成


阅读作者在一篇论文中关于补丁算法背后的理论。现在看起来好像是下降了…

回到大学时,我做过多维函数最小化。。假设有一个f(x),它接受参数x1,x2,x3,…,xn并生成一个值Y。。您需要找到参数x1,…,xn,以便Y=Y1。。没那么难。。然而,这是一种有趣的学习方式。虽然内德勒米德效率更高。。这不容易陷入局部极小值。

一个有很多可能性的主题是使用进化算法来进化游戏策略。人们利用进化论为扑克、跳棋、围棋和许多其他游戏制定策略。人们已经使用基因编程来进化机器人,为人类服务

我最近发布了一篇关于进化计算的文章。它包括一些进化算法已经被使用的细节。他还写了一篇很好的文章,其中有很多例子。包含几十个有趣的进化项目的链接


一种不太常见的进化算法是。这就形成了一套对输入进行分类的规则。它可以应用于与神经网络相同的问题。为特定问题开发LCS可能很有趣,例如尝试根据形式预测运动成绩。

遗传算法非常适合优化和调度。例如,安排一组机器,让部件和操作员随着时间的推移完成一组任务。虽然可能不是最令人兴奋的项目,但它会有现实世界的应用。

我读过一些类似于自动生成测试用例的文章。事实上,情况正好相反。您指定测试用例,然后让算法(遗传编程)来创建将通过的代码。通过这种方式,您可以提供规范并培育您的程序。如果你用谷歌搜索一下,你可以找到一些关于它的研究。

我觉得这是一个非常有趣的想法。当然,现在没有人会创建这样的应用程序,但这是一个很好的研究领域。

生成音乐作品!阅读David Cope和他的程序Emily Howell。

旁注:关于蒙娜丽莎算法是否真的是一种遗传算法存在争议。对meIt来说,模拟退火似乎是一种伟大的思想发生器。。。e、 g.创建用于图像压缩的遗传算法。我创建了一个Java版的蒙娜丽莎程序,它是一个合适的遗传算法,种群大小>1。所以你不必像罗杰那样做,这更像是一个1+1的进化策略。类似的想法也可以应用在MP3上生成MIDI。伙计!如果你能有效地生成测试用例,你将变得富有!作为工作的一部分,我曾经做过一个GA来进化测试用例数据(不是测试用例),这很难,但很有趣!让我忙着写论文;)(我培养了一个能干的奥赛罗玩家家庭,这很有趣,因为我以前从未玩过奥赛罗。因此我解决了一个我甚至不理解的问题。这才是真正的力量