什么是小生活方案?

时间:2012-12-08 08:28:56

标签: genetic-algorithm evolutionary-algorithm

我目前正在阅读一篇关于在约束优化问题中使用GA的论文。在某些方面,它正在谈论在个人(或他们制造的帕累托前线)上应用 niching scheme

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

有人可以尽可能简单地向我解释, niching scheme 是什么?

2 个答案:

答案 0 :(得分:37)

简单地说,niching是一类尝试在单次运行中收敛到多个解决方案的方法。

Niching是将GA的种群划分为不相交的集合的想法,旨在使得在健身功能的每个区域中至少有一个成员是“有趣的”;一般来说,这意味着你涵盖了不止一个地方最优。

想象一下像f(x) = sin(x^2)这样的函数。

enter image description here

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

的内容

standard GA

Niching是一类通用技术,旨在最终将大约一半的人口聚集在每个最小值中(或者甚至可能包括少数成员在x=0处的最小值)。

niching

正如我刚才所说,niching并不是一种算法,而是一类算法。一种这样的方法是Goldberg的健身分享。在此方法中,我们定义了一个利基半径sigma。任何两个比这个sigma更接近的人被认为是在同一个利基,因此必须分享他们的适应值(认为这是一个降低每个成员的适应性的功能,人口密度更高)利基是)。然后,您可以使用GA操作共享适应值而不是原始值。

这里的想法是,通过假装那里的资源有限,你不鼓励融合到健身功能的单个区域。试图入住的人越多,他们的情况就越糟糕。结果是,当GA在某处收敛到单个局部最优时,由于生态位内的竞争加剧,该最优的适应性降低。最终,健身景观的另一个区域变得更具吸引力,并且个人在那里迁移。我们的想法是达到稳定状态 - 动态中的一个固定点 - 保持每个利基的适当表示。

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

答案 1 :(得分:1)

是的,deong对小生的好解释。 所有这些技术都是为了维持人口的多样性。

这就是帕累托阵线的作用。正在寻找帕累托前沿的GA是多目标进化算法。他们试图不仅优化一个标准,而且优化两个或更多标准。 因此,帕累托前线都是不是由人口中的个体主导的所有个体。 http://en.wikipedia.org/wiki/Pareto_efficiency

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