【发布时间】:2010-09-23 04:56:06
【问题描述】:
我想知道在商业代码中找到遗传算法方法有多普遍。
在我看来,某些调度程序可以从 GA 引擎中受益,作为主要算法的补充。
【问题讨论】:
我想知道在商业代码中找到遗传算法方法有多普遍。
在我看来,某些调度程序可以从 GA 引擎中受益,作为主要算法的补充。
【问题讨论】:
遗传算法已在商业上广泛使用。优化火车路线是一个早期的应用。最近,战斗机使用 GA 来优化机翼设计。我在工作中广泛使用 GA 来生成具有极大搜索空间的问题的解决方案。
许多问题不太可能从 GA 中受益。我不同意托马斯的观点,他们太难理解了。 GA 实际上非常简单。我们发现,通过优化 GA 来解决可能很困难的特定问题,可以获得大量知识,并且与往常一样,管理大量并行计算仍然是许多程序员面临的问题。
可以从 GA 中受益的问题将具有以下特征:
有许多问题可能会从 GA 中受益,并且在未来它们可能会得到更广泛的部署。我相信 GA 在尖端工程中的使用比人们想象的要多,但是大多数人(就像我的公司一样)非常严密地保护这些秘密。很久以后才发现使用了 GA。
大多数处理“普通”应用程序的人可能对它们没有太多用处。
【讨论】:
如果您想找到一个示例,请查看 Postgres 的查询计划器。它使用了许多技术,其中一种恰好是遗传的。
http://developer.postgresql.org/pgdocs/postgres/geqo-pg-intro.html
【讨论】:
我在硕士论文中使用了 GA,但在那之后,我在日常工作中没有发现任何 GA 可以解决的问题,而我无法使用其他算法更快地解决。
【讨论】:
我认为在日常商业代码中找到遗传算法并不常见。它们更常见于学术/研究代码中,在这些代码中,找到“最佳算法”的需求不如找到问题的好解决方案的需求重要。
尽管如此,我咨询过几个使用 GA 的商业项目(主要是因为我参与了 GAUL)。我认为最有趣的例子是在一家生物技术公司。作为药物发现应用程序的一部分,他们使用 GA 优化了用于虚拟筛选的评分函数。
今年早些时候,通过我的current company,我为我们使用另一个 GA 的产品添加了一项新功能。我想我们可能会从下个月开始营销这个。基本上,GA 用于探索有可能与蛋白质结合的分子,因此可以作为靶向该蛋白质的药物进行进一步研究。也使用 GA 的竞争产品是 EA inventor。
【讨论】:
作为我论文的一部分,我为多目标优化算法 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
实际上,只要有一点热情,每个人都可以轻松地使通用框架的代码适应任意多目标优化问题。
【讨论】:
我没有,但我听说过这家公司(不记得他们的名字),它使用变异的遗传算法从我的朋友那里计算天线(或其他东西)的位置和长度。他们应该(据我的朋友说)在这方面取得了巨大的成功。我想 GA 对于“普通的 Joe 开发人员”来说太复杂了,无法成为主流。有点像 Map Reduce - 非常酷,但是太先进了,无法进入“主流”......
【讨论】:
LibreOffice Calc 在其 Solver 模块中使用它。
【讨论】: