差分分组合作协同进化MATLAB代码

合作协同进化已经引入协同进化算法,目的是通过分而治之的范式解决日益复杂的优化问题。理论上,协同改 变子成分的想法是十分适合解决大规模优化问题的。然而在实践中,没有关于问题的先验知识, 问题应如何分解是尚不清楚的。在本文中,我们提出一个自动分解策略,称为差分分组,可以揭示决策变量的底层交互结构和形成子成分,以使它们之间的相互依存关系保持到最低限度。我们在数学上展示这样一个分解策略如何从部分可分性的定义中产生。实证研究表明,这样的近最优的分解可以大大提高大规模的全局优化问题的解决方案的质量。最后,我们展示了这样一个自动分解是如何产生对多样的子成分的分布的更好的近似,导致一个对多样的子成分的计算预算的更高效的分配。

索引词:合作协同进化,大规模优化,问题分解,不可分性,数值优化

差分分组的合作协同进化的大规模优化算法概述

run.m

dg.m

analyze.m

 

9 评论

  1. 请问有完整的程序代码吗,这部分只是分组那部分的代码吧,想看看完整的跑测试函数的代码,或者后半部分的优化代码也可以,感谢

  2. 错误使用 feval
    未定义函数或变量 ‘benchmark_fun’。

    出错 dg (line 102)
    delta1 = feval(fun, p1, fun_number) – feval(fun, p2, fun_number);

    出错 run (line 51)
    [seps, nonseps, FEs] = dg(‘benchmark_fun’, func_num, opts);
    我出现了这个错误,不知道是什么原因,非常感谢!

        • 您好,请问那这上面的代码是不是不全,还是写得有些问题,就是上面的run.m的代码是用来运行的,它在调用 [seps, nonseps, FEs] = dg(‘benchmark_func’, func_num, opts);也就是第51行的代码它的’benchmark_func’这一部分只应用了这个函数,却没有具体的内容,不知道是缺一段整个代码还是在dg.mat里面少一个benchmark_func函数,由于本人最近在研究协同进化的特征选择问题,而且正在写毕业论文,马上就交,比较不容易找到这篇论文,所以请教一下这个算法的全部代码在哪个具体的网站的哪个位置能找到,非常感谢!

回复 贾欣取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注