19

我目前正在阅读一篇关于在约束优化问题中使用 GA 的论文。在某种程度上,它正在谈论对个人(或他们所做的帕累托前沿)应用利基方案。

这似乎是一个典型的选择方案,但当我搜索时,我找不到一个很好的解释。

有人可以尽可能简单地向我解释一下,什么是利基计划

4

2 回答 2

41

简而言之,Niching 是一类试图在一次运行中收敛到多个解决方案的方法。

Niching 是将 GA 的总体分割成不相交的集合的想法,旨在使您在适应度函数的每个区域中至少有一个“有趣”的成员;通常,我们的意思是您涵盖了多个局部最优值。

想象一个像f(x) = sin(x^2).

在此处输入图像描述

一个正常的 GA 最终会收敛到两个全局最小值之一。哪一个取决于初始种群和整个运行过程中发生的随机遗传漂移,但最终,您将n在一个或另一个山谷中获得一个个体的副本。例如,如果您在几乎收敛时查看这样的 GA,您可能会看到类似

标准遗传算法

Niching 是一类通用技术,旨在最终使大约一半的人口收敛于每个最小值(或者甚至可能包括一些不太适合最小值的成员x=0)。

利基

正如我刚才所说,小生境与其说是一种算法,不如说是一种通用算法。一种这样的方法是戈德堡的健身分享。在这种方法中,我们定义了一个小生境半径sigma。任何两个比这更接近的个体sigma都被认为是在同一个生态位中,因此必须共享他们的适应度值(认为这是一个降低生态位每个成员的适应度的函数,生态位人口越密集)。然后让 GA 对共享的适应度值而不是原始值进行操作。

这里的想法是你通过假装那里的资源有限来阻止收敛到适应度函数的单个区域。越多的人试图搬进来,他们的处境就越糟糕。结果是,当 GA 在某个地方收敛到单个局部最优值时,该最优值的适应度会因为生态位内竞争的增加而降低。最终,健身景观的另一个区域变得更具吸引力,并且个体迁移到那里。这个想法是要达到一个稳定状态——动态中的一个固定点——在这个状态下,每个利基都保持适当的表示。

由于需要手动设置小众半径,因此共享很困难,并且算法对这种选择非常敏感。另一种选择是拥挤。特别是,您可能会查找“Deterministic Crowding”,这是一段时间内流行的方法。在基于拥挤的方法中,我们不是处理明确的半径,而是通过将新后代可以替换的个体集合限制为一组类似的解决方案来工作,例如,一个后代可能只允许替换其父母中的一个。其效果是试图防止将一个独特的个体替换为与人口中其他十几个非常相似的个体,从而以这种方式保持多样性。

于 2012-12-10T11:42:41.233 回答
1

是的,deong 很好地解释了利基。所有这些技术都是为了保持人口的多样性。

这也是帕累托前沿所做的。寻找帕累托前沿的 GA 是多目标进化算法。他们不仅尝试优化一个标准,还尝试优化两个或更多。因此,帕累托阵线都是不由人口中的个人主导的帕累托个人。 http://en.wikipedia.org/wiki/Pareto_efficiency

简而言之:如果总体中没有个体 B 在每个标准上至少与 A 一样好并且在至少一个标准上优于 A,则个体 A 是帕累托前沿的成员。

于 2013-01-10T14:42:24.153 回答