您是否曾在实际应用中使用过遗传算法?

时间:2008-11-20 07:47:05

标签: genetic-algorithm

我想知道在商业代码中找到遗传算法的方法是多么常见。

在我看来,某些类型的调度程序可以从GA引擎中受益,作为主算法的补充。

7 个答案:

答案 0 :(得分:20)

遗传算法已在商业上广泛使用。优化列车路线是一种早期应用。最近,战斗机使用GA来优化机翼设计。我在工作中广泛使用了GA来为具有极大搜索空间的问题生成解决方案。

许多问题不太可能从GA中受益。我不同意托马斯他们太难理解了。 GA实际上非常简单。我们发现,从优化遗传算法到可能难以解决的特定问题,可以获得大量知识,而且对于许多程序员来说,管理大量并行计算仍然是一个问题。

从GA中受益的问题将具有以下特征:

  • 编码潜在解决方案的好方法
  • 计算数字分数以评估解决方案质量的方法
  • 答案不明显的大型多维搜索空间
  • 一个好的解决方案就足够了,不需要完美的解决方案

有许多问题可能会从GA中受益,并且将来它们可能会得到更广泛的部署。我认为,GA比最先进的工程更多地用于尖端工程,但是大多数人(比如我的公司)都非常密切地保护这些秘密。只是在事实证明使用了GA之后很久。

大多数处理“正常”应用程序的人可能对它们没有多大用处。

答案 1 :(得分:10)

如果您想查找示例,请查看Postgres的查询计划程序。它使用了许多技术,其中一种恰好是遗传。

http://developer.postgresql.org/pgdocs/postgres/geqo-pg-intro.html

答案 2 :(得分:4)

我在硕士论文中使用了GA,但之后我在日常工作中没有找到任何东西,GA可以解决我用其他算法无法更快解决的问题。

答案 3 :(得分:3)

我没有,但我听说过这家公司(不记得他们的名字),它使用变异的遗传算法来计算我朋友的天线(或其他东西)的位置和长度。他们应该(据我的朋友说)在这方面取得了巨大的成功。我猜GA对于“普通的Joe开发者”来说太复杂了,无法成为主流。有点像Map Reduce - 非常酷,但是太过先进而无法击中“主流”......

答案 4 :(得分:2)

我认为在日常商业代码中找到遗传算法并不常见。它们更常见于学术/研究代码中,其中找到“最佳算法”的需求不如找到问题的良好解决方案的需要重要。

尽管如此,我已经咨询了几个使用GA的商业项目(主要是因为我参与了GAUL)。我认为最有趣的例子是生物技术公司。他们使用GA来优化用于虚拟筛查的评分函数,作为其药物发现应用的一部分。

今年早些时候,通过我的current company,我为其中一个使用其他GA的产品添加了一项新功能。我想我们可能会在下个月推销这款产品。基本上,GA用于探索具有结合蛋白质潜力的分子,因此可以作为靶向该蛋白质的药物进一步研究。同样使用GA的竞争产品是EA inventor

答案 5 :(得分:2)

作为我论文的一部分,我为多目标优化算法mPOEMS(具有演化改进步骤的多目标原型优化)编写了一个通用的Java框架,这是一个使用进化概念的GA。它是通用的,所有与问题无关的部分都与问题相关的部分分开,并且界面被设置为仅使用添加与问题相关的部分来使用框架。因此,想要使用该算法的人不必从零开始,并且它促进了很多工作。

您可以找到代码here

使用此算法可以找到的解决方案已经在科学工作中与最先进的算法SPEA-2和NSGA进行了比较,并且已经证明 算法执行可比较甚至更好,具体取决于您衡量性能的指标,尤其取决于您正在查看的优化问题。

你可以找到它here

作为我的论文和工作证明的一部分,我将这个框架应用于项目组合管理中的项目选择问题。它是关于选择为公司增加最大价值的项目,支持大多数公司的战略或支持任何其他任意目标。例如。从特定类别中选择一定数量的项目,或最大化项目协同效应,......

我的论文将此框架应用于项目选择问题: http://www.ub.tuwien.ac.at/dipl/2008/AC05038968.pdf

之后,我在财富500强中的一个投资组合管理部门工作,他们使用商业软件,同时将GA应用于项目选择问题/投资组合优化。

更多资源:

框架的文档: http://thomaskremmel.com/mpoems/mpoems_in_java_documentation.pdf

mPOEMS演示文稿: http://portal.acm.org/citation.cfm?id=1792634.1792653

实际上,只要有一点热情,每个人都可以轻松地将通用框架的代码调整为任意的多目标优化问题。

答案 6 :(得分:0)

LibreOffice Calc 在其求解器模块中使用它。