2012-02-03 70 views
1

我使用遗传算法来解决NP难题。事实上,它使用额外的本地搜索方法,这是一个考虑问题冲突的特别程序。 改写标题: 我想知道蜜蜂/蚁群和PSO算法与现代GA相比是否有缺点?其实,我必须证明遗传算法解决我的问题的选择。 我故意不想提出这个问题,只想知道默认和明显的(也许是唯一的)GA优势。让我们假装我们被赋予宣传广告和批评其他最先进的metaheuristics的任务。与更现代的蜜蜂/蚁群和PSO算法相比,遗传算法是否有优势?

回答

0

遗传算法在其标准形式最初被发明用于优化可通过二进制值的向量来表示问题。如果你有这样的问题,而且你什么都不知道,我会说GA可能是第一个申请的选择。如何优化这样的问题在图式理论中被描述,这是一个整洁的理论基础。

一个问题我有PSO是在调整参数的难度。有群体规模,惯性权重,对个人最好的吸引力和对全球最好的吸引力。这是一个离散的和三个连续的参数。但它不是参数的数量,而是它们的效果。人们可以用这些参数创建各种不同的群体行为,并且我已经将参数建议为违反直觉的好参数。例如,我们的基于Pederson博士论文的PSO实现默认为消极的个人最佳吸引力。

另一方面,遗传算法具有种群大小,变异率,交叉,变异算子和选择算子。这是4个离散的,只有一个连续的参数。这看起来可能起初很多,但通常情况下,您可以选择两个或三个交叉算子,也可能选择两个或三个变异算子,并且变异率通常不会对性能产生如此大的影响,只要它大于0.您可能设置它要么5或10%,并完成它。这让你的人口规模和选择运营商调整,这是不是很困难。所以基本上你可以尝试4-5个不同的参数配置,如果它能够解决问题,就已经获得了一个好的照片。我不得不承认,有些实现也有交叉概率。

另外遗传算法也可以用于组合优化,所以它可以做二元问题,连续问题,组合问题,因此有更多的应用程序。我认为这也是它受欢迎的原因之一。因此,我认为遗传算法是一个关于参数的更稳健的算法(它的行为当然会发生变化,但不会像它在PSO中那样具有戏剧性)。由于它不限于连续搜索空间,因此适用范围更广。

顺便说一句,如果你有兴趣,我们开发了一个软件,其中许多这样的算法实施,还有一些问题。我们用它来解决新问题,比较算法以及参数。它被称为HeuristicLab并在Windows上运行(它有一个GUI)。

3

遗传算法(GA)是一种搜索算法,用于查找NP难问题的近似解。您无法证明GA在大多数现实生活问题中找到的解决方案的全局最优性。

粒子群优化(PSO)和GA可以根据他们的计算效率和他们找到解决方案的质量进行比较。在连续变量的无约束非线性问题中,PSO往往在两个标准specially in computational efficiency中都优于GA。

如果搜索空间是离散的,是高度受限和不连续的,那么GA可能会寻找更高质量的解决方案。突变和交叉算子将帮助GA跳跃搜索空间的不连续性并导致更好的探索。另一方面,规范(标准)PSO将陷入搜索空间的不连接组件。

不连续的搜索空间的存在于很多现实生活中的设计问题,即使它在这一领域的许多研究者所忽视。