我使用遗传算法来解决NP难问题。实际上,它使用了额外的局部搜索方法,这是一种考虑问题特征的临时程序。 重新标题: 我想知道与现代的GA相比,蜂/蚁群和PSO算法是否有缺点? 实际上,我必须证明选择GA来解决我的问题是正确的。 我故意不想为这个问题命名,只想知道默认和明显(也许是唯一的)GA优势。让我们假装我们的任务是宣传GAs并批评其他最先进的元启发式。
答案 0 :(得分:4)
遗传算法(GA)是一种搜索启发式算法,可以找到NP难问题的近似解。您无法证明GA在大多数现实生活中遇到的解决方案的全局最优性。
粒子群优化(PSO)和遗传算法可以根据他们的计算效率和他们找到的解决方案的质量进行比较。在具有连续变量的无约束非线性问题中,PSO在两个标准中都倾向于优于GA specially in computational efficiency。
如果搜索空间是离散的并且受到高度约束和不连续,那么GA可能会找到更高质量的解决方案。突变和交叉算子将帮助GA跳过搜索空间中的不连续性并导致更好的探索。另一方面,规范(标准)PSO将卡在搜索空间的断开连接的组件中。
搜索空间的不连续存在于许多现实生活中的设计问题中,尽管该领域的许多研究人员都忽视了这一问题。
答案 1 :(得分:2)
其规范形式的遗传算法最初是为优化可由二元值向量表示的问题而发明的。如果您遇到这样的问题并且您对此一无所知,我会说GA可能是申请的首选。图式理论中描述了如何优化这些问题,这是一个很好的理论基础。
我对PSO的一个问题是调整参数有困难。有群体大小,惯性权重,对个人最佳的吸引力和对全球最佳的吸引力。这是一个离散的和三个连续的参数。但它不是参数的数量,而是它们的影响。可以使用这些参数创建各种不同的swarm行为,我已经看到建议的参数是反直觉的好参数。例如,我们的PSO实施基于Pederson的博士论文,默认为负面的个人最佳吸引力。
另一方面,GA具有种群大小,突变率,交叉,变异算子和选择算子。这是4个离散且只有一个连续参数。这可能看起来很多,但通常情况下,您可以在两个或三个交叉算子之间进行选择,也可能选择两个或三个变异算子,并且突变率通常不会对性能产生如此大的影响,只要它能够实现。 >你可能把它设置为5%或10%并完成它。这使得人口规模和选择算子可以调整,这是非常困难的。所以基本上你尝试了4-5种不同的参数配置,并且如果它能够解决问题就已经得到了很好的图像。我不得不承认,有些实现也有交叉概率。
此外,GA也可以用于组合优化,因此它可以解决二元问题,连续问题,组合问题,因此有更多应用。我认为这也是其受欢迎的一个原因。
所以我认为GA在其参数方面是一个更强大的算法(它的行为当然会改变,但不会像在PSO中那样戏剧化)。它也适用范围更广,因为它不仅限于连续搜索空间。
不过,如果您对此感兴趣,我们已经开发出一种软件,其中实现了许多此类算法以及许多问题。我们用它来解决新问题,比较算法和参数。它被称为HeuristicLab并在Windows上运行(它有一个GUI)。