【发布时间】:2012-11-26 09:10:39
【问题描述】:
我目前正在阅读一篇关于在约束优化问题中使用 GA 的论文。在某些方面,它是在谈论对个人(或他们所做的帕累托前沿)应用利基方案。
这似乎是一个典型的选择方案,但当我搜索时,我找不到很好的解释。
谁能尽可能简单地向我解释一下利基方案是什么?
【问题讨论】:
标签: genetic-algorithm evolutionary-algorithm
我目前正在阅读一篇关于在约束优化问题中使用 GA 的论文。在某些方面,它是在谈论对个人(或他们所做的帕累托前沿)应用利基方案。
这似乎是一个典型的选择方案,但当我搜索时,我找不到很好的解释。
谁能尽可能简单地向我解释一下利基方案是什么?
【问题讨论】:
标签: genetic-algorithm evolutionary-algorithm
简单地说,Niching 是一类在一次运行中尝试收敛到多个解决方案的方法。
Niching 是将 GA 的总体分割成不相交的集合的想法,目的是让您在适应度函数的每个区域中至少有一个“有趣”的成员;一般来说,我们的意思是您涵盖了多个局部最优值。
想象一个像f(x) = sin(x^2) 这样的函数。
一个正常的遗传算法最终会收敛到两个全局最小值之一。哪一个取决于初始种群和整个运行过程中发生的随机遗传漂移,但最终,您将在一个或另一个山谷中获得一个个体的n 副本。例如,如果您在几乎收敛时查看这样的 GA,您可能会看到类似
Niching 是一类通用技术,旨在最终使大约一半的人口在每个最小值中收敛(或者甚至可能在x=0 处包含一些不太适合的最小值)。
正如我刚才所说,小生境与其说是一种算法,不如说是一种通用算法。一种这样的方法是戈德堡的健身分享。在这个方法中,我们定义了一个生态位半径sigma。任何比sigma 靠得更近的两个人都被认为是在同一个生态位中,因此必须共享他们的适应度值(认为这是一个降低生态位每个成员的适应度的函数,生态位人口越密集)。然后让 GA 对共享的适应度值而不是原始值进行操作。
这里的想法是通过假装那里的资源有限来阻止收敛到适应度函数的单个区域。越多的人试图搬进来,他们的处境就越糟糕。结果是,当 GA 在某个地方收敛到单个局部最优值时,该最优值的适应度会因为生态位内竞争的增加而降低。最终,健身景观的另一个区域变得更具吸引力,并且个体迁移到那里。我们的想法是达到一个稳定状态 - 动态中的一个固定点 - 维持每个利基的适当表示。
分享很困难,因为需要手动设置小众半径,算法对这个选择非常敏感。另一种选择是拥挤。特别是,您可能会查找“Deterministic Crowding”,这是一段时间内流行的方法。在基于拥挤的方法中,我们不是处理明确的半径,而是通过将新后代可以替换的个体集合限制为一组类似的解决方案来工作,例如,一个后代可能只允许替换其父母中的一个。其效果是试图防止将一个独特的个体替换为与人口中其他十几个非常相似的个体,从而以这种方式保持多样性。
【讨论】:
是的,deong 很好地解释了利基市场。 所有这些技术都是为了保持人口的多样性。
这也是帕累托前沿的作用。寻找帕累托前沿的 GA 是多目标进化算法。他们不仅尝试优化一个标准,还尝试优化两个或更多。 因此,帕累托阵线都是不由人口中的个人主导的帕累托个人。 http://en.wikipedia.org/wiki/Pareto_efficiency
简而言之: 如果总体中没有个体 B 在每个标准上至少与 A 一样好并且在至少一个标准上优于 A,则个体 A 是帕累托前沿的成员。
【讨论】: