什么是小生活方案?

问题描述 投票:16回答:2

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

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

有人可以尽可能简单地向我解释一下,这是一种什么样的方案?

genetic-algorithm evolutionary-algorithm
2个回答
37
投票

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

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

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

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

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

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

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

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


1
投票

这是deong对niching的好解释。所有这些技术都是为了保持人口的多样性。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.