什么是“Hello World!”遗传算法有用吗?

时间:2009-03-29 00:45:14

标签: c# c++ genetic-algorithm

我发现了这个very cool C++ sample,字面意思是“Hello World!”遗传算法。

我决定用C#重新编写整个代码,结果是this

现在我问自己:是否有任何实际的应用程序沿着从一群随机字符串开始生成目标字符串?

编辑:我在Twitter上的好友刚刚发推文说“对转录类型的内容很有用,例如翻译。不一定是Monkey的”。我希望我有一个线索。

5 个答案:

答案 0 :(得分:13)

  

从一群随机字符串开始生成目标字符串是否有任何实际应用?

不确定。想象一下,在任何情况下,您都知道如何评估特定字符串的适应性,以及选择是以某种方式离散和约束的:

  • 挑选明显的名字(“Xhjkxc”具有低适应性;“Artekzo”具有较高的适应性)
  • 尝试一系列国际象棋动作
  • 猜测组合物是否安全,假设您可以知道解锁每个不倒翁的距离
  • 挑选评估为单词的电话号码(例如“843-2378”具有很高的适应性,因为它拼写为“THE-BEST”)

答案 1 :(得分:2)

没有。每次运行GA时,您都会给出最终答案。这非常适合展示GA如何工作并展示它有多强大,但除此之外没有任何其他目的。

答案 2 :(得分:1)

你可以编写一个EA,用IronPython这样的动态语言编写代码,目标是创建a)执行而不会崩溃的代码,b)分析股票市场并智能地购买和卖出股票。

对于必要的事情,这是一种非常简单的看法,但这是可能的。您需要一个为IronPython代码提供大量方法的主机(技术指标等)和一个滴答数据库。

不仅生成任何旧的随机代码也是明智之举,以免您格式化自己的硬盘。您需要一个沙箱,并且您需要限制可访问的名称空间,并且您需要提供时间限制以避免无限循环。您还可以提供允许其选择适当的已批准关键字的语义指南,而不是将随机字母串在一起 - 这将大大加快进化。

所以,我参与了一个除EA之外的所有项目。我们有一个卫星天线,可以从纳斯达克获得实时的股票价格,这是一种具有API的交易服务,以及一个原始的决策“大脑”,随着时间的推移做出决定。

可悲的是,其中一个合伙人退出了工作,退出了工作,分配了项目(得到了他自己的菜等),并开始交易没有准备好的逻辑。他失去了一大笔钱。事实证明,对于某些人来说,这类项目距离普通赌博只有一步之遥。但无论如何,该项目在此之后失败了。然而,演变逻辑部分是缺失的环节。而且我知道那里有人在做这类事情。

答案 3 :(得分:0)

我在2个实际研究问题中使用了GA。

一个是电源优化问题(最大化设备数量,满足每个设备的可用电源限制和服务保证)

另一种用于无线电网络优化,在给定固定设备预算的情况下最大化覆盖区域

答案 4 :(得分:0)

GA有一个主要的缺点,它通常与遗传速度有关,因此在一些严重的时间依赖项目中使用它是非常危险的。