Artificial intelligence 进化算法与#x27;接近';?

Artificial intelligence 进化算法与#x27;接近';?,artificial-intelligence,evolutionary-algorithm,Artificial Intelligence,Evolutionary Algorithm,所以我在读进化算法,我很困惑 进化规划、进化策略和遗传算法之间的“传统”区别是什么?我相信在现代,它们基本上都收敛到了同一个东西上 我的理解是,遗传算法通过改变“基因”来产生结果,进化策略通过改变参数来改变个体。它的确切含义是什么(http://en.wikipedia.org/wiki/Evolutionary_algorithm)? 进化规划主要是通过实数上的变异而变化的 进化规划和遗传规划是寻找解决问题的程序的方法吗?而遗传算法和进化策略是使用候选者寻找问题解决方案的方法吗?这种区别对我来

所以我在读进化算法,我很困惑

进化规划、进化策略和遗传算法之间的“传统”区别是什么?我相信在现代,它们基本上都收敛到了同一个东西上

我的理解是,遗传算法通过改变“基因”来产生结果,进化策略通过改变参数来改变个体。它的确切含义是什么(http://en.wikipedia.org/wiki/Evolutionary_algorithm)? 进化规划主要是通过实数上的变异而变化的

进化规划和遗传规划是寻找解决问题的程序的方法吗?而遗传算法和进化策略是使用候选者寻找问题解决方案的方法吗?这种区别对我来说并不明显,我在进化策略和遗传算法中看到的唯一区别是参数列表和染色体,实数和整数


谢谢。

希望这能为您澄清一些事情:

进化算法:在给定的候选解决方案群中,尝试找到“最适合”的解决方案的算法。该算法从随机候选开始,并试图通过复制、变异、重组和选择从中进化

从这里,您可以使用几种“标准方法”来调用几个进化算法家族。论文名称由学术研究机构命名;我认为命名惯例中的细微差异既有细微的原因,也有随着时间的推移缺乏可用词汇的原因:

  • 遗传算法:给定的群体被定义为“一串数字”(传统上是0和1的向量)

  • 遗传编程:给定的群体是一组结构不同的计算机程序。问题是哪个程序“最适合”解决给定问题。如果您熟悉Lisp处理,您将知道整个程序可以表示为一棵树;假设您的算法对这些树进行了变异或重组。你最终会有很多程序从你最初的候选人身上发展而来,其中一些会比其他人更好地解决你的问题

  • 进化规划:给定一个特定的计算机程序,该程序具有固定的结构但参数不变,所研究的群体就是通过这些参数的变化而获得的程序集。例如,如果您认为您的问题可以用有限状态机来表示,那么此技术可以帮助您找到状态数、状态之间的授权转换以及这些转换的概率

  • 进化策略:给定的群体是一个实数+参数的向量,如研究候选群体中试图达到最优的变异率。假设你从(c1,c2,c3)三维向量的总体开始。在每一代中,通过向c1、c2和c3添加一个随机值来对它们进行变异。随机值可能基于标准偏差S的高斯分布。从S的大值开始可能会很有趣,这样突变会产生到处都是的向量,一旦你开始找到感兴趣的向量,你就开始减少S,以便“聚焦”这些感兴趣的向量


记住,这些名称只是命名约定。有些人擅长描述他们的意思,有些人则没有那么优化。人工智能领域的进化命名仍在进行中;-)

我欣赏进化命名;)。例如,你能详细说明为什么你有大量的计算机程序可供选择来“解决”一个问题(遗传编程)以及为什么/如何帮助选择它们的常数,例如,举个例子吗?此外,您能否详细说明如何使用进化策略?我不明白为什么进化策略能更好地完成一些事情。参数和实数向量会变化吗?这是怎么发生的;我试图尽我所能添加一些例子,这些例子离现实生活不太远,但又足够接近命名“分类”。我无法想象,对于那些第一次尝试对所有动物和植物进行分类的人来说,这有多么困难——它们是独立发明的,因此我怀疑是否存在太多冲突。从概念上讲,重组(用于ES)和交叉(用于GA)之间也有区别。这种交叉被认为是将这些基因合并到一个新的孩子身上,这样就不会发生或只发生很少的突变。突变将被视为一种不会在任何父母身上发生的基因。重组通常需要多个父母(甚至整个群体),并试图找到某种形心个体。然后,该质心是使用突变对新生儿童进行抽样的基础。