2

当我们将遗传算法(GA)的结构与粒子群优化(PSO)的结构进行比较时,可以说:

  1. GA 中的人口 = PSO 中的 Swarm。

  2. GA中的染色体(潜在解决方案)= PSO中的粒子(潜在解决方案)。

  3. GA中染色体的基因= PSO中粒子的坐标。

4

1 回答 1

0

您必须知道 GA(遗传算法)和 PSO(粒子群优化)都属于进化计算。这两种进化启发式是基于种群的搜索方法。

好像,我们考虑原始 GA 的情况(我什至不是在谈论稍微修改的 GA,这里)。它受到遗传学和进化原理的启发,它模仿了在生物种群或环境中观察到的繁殖行为。它遵循“适者生存”的原则来选择和生成适应环境或约束的后代。然而,如果我们谈论 PSO。它的灵感来自于在鱼群和鸟群中观察到的行为。他们如何利用他们的认知集体力量对外部刺激做出反应或表现(以达到适应度函数的最大值或最小值)?

PSO 被认为是对 GA 的改进,因为计算所需结果所需的时间更少。然而,由于易于实施和理解,GA 仍然被许多人和公司使用。

现在,让我们讨论一下您的问题:

  1. GA 中的人口 = PSO 中的 Swarm ?

我认为答案是肯定的,但并非总是如此。因为在某些情况下,我们不能直接用 PSO 来表示总体,但我们可以用 GA 来表示它。例如 - 如果我们考虑离散向量表示,那么我们可以轻松地使用 GA,但在将向量输入 PSO 算法之前,我们必须进行一些修改。

  1. GA中的染色体(潜在解决方案)= PSO中的粒子(潜在解决方案)?

也许,你可能是对的。但是让我提醒你为什么我们使用 EC 技术?因为,问题的可能解决方案的数量(通过使用 EC 技术解决)通常具有非常多的状态空间。而且,我们只考虑它的一小部分作为我们的输出或结果。因此,即使我们达到了所需的基准,我们也不能确定结果是否匹配。

  1. GA中染色体的基因= PSO中粒子的坐标?

我们都知道 GA 本质上是为评估离散向量表示而设计的,而 PSO 在具有连续变量的无约束问题上表现最好。因为,原始 PSO对局部最大值最小值不是很免疫。因此,它有时可能会在约束条件下显示过早收敛。这在 GA 中很少见(由于突变)。所以,我会说不。遗传算法中染色体的基因并不总是粒子群算法中粒子的坐标。

编辑:

你能给我一个简单的例子吗:“......在将向量输入 PSO 算法之前,我们必须做一些修改。”

因为我已经告诉过你,GA 本质上是为离散评估而设计的,而 PSO 在连续变量的情况下效果更好。让我们考虑一个案例。我们得到了一系列的0and 1。我们要满足给定的适应度函数f(x)来终止循环。众所周知,01是两个离散的数字。因此,在应用交叉或突变时(在 GA 的情况下),我们将获得离散输出。之后,我们将此输出输入适应度函数以检查其强度。如果它在 f(x) 中幸存下来,那么我们会将输出推送到下一代。

但是在 PSO 的情况下,我们一般会考虑位置向量或这种情况下的一串 '0' 和 '1',以及速度向量或将数字更改为相反数字的概率(表示更改0为的概率,1反之亦然)。现在,假设将值0变为1is0.61变为0is的概率0.3。然后在应用概率分布时,我们将得到一个过渡状态,该状态要么成立,要么0具有1一定程度的概率。换句话说,即将到来的状态将包含介于0和被包含的值1,这本身是不正确的。而且,因为我们只期望离散数字。因此,我们必须在下面放置一些基准0.5将是0)及以上0.5将是1)。而且,现在这个基准或修改后的输出将用作下一代的输入。

于 2016-02-12T11:00:32.467 回答