大体流程就是 LHS初始化-->LLSO-->GBDT-->L1 exploitation-->粒子选择算法-->LLSO .....
大体流程:LHS--LLSO--GBDT--L1--LLSO
LLSO (PSO)的变种:
vj,i = r1 × vj,i + r2 × (xk1 − xj,i ) + φ × r3 × (xk2 − xj,i )
xj,i = xj,i + vj,i
总体论文的创新在于:
1、LLSO+GBDT
2、L1 exploitation的提出
LLSO+GBDT的更新方法(4层为例子):
4层:从1-3层随机选2个粒子,保证RL1粒子<RL2粒子,也就是 RL1粒子的适应度要大于RL2粒子的适应度,然后用这2个粒子的适应度更新。
3层:从1-2层随机选2个粒子,保证RL1粒子<RL2粒子,也就是 RL1粒子的适应度要大于RL2粒子的适应度,然后用这2个粒子的适应度更新。
2层:从1层随机选2个粒子,保证RL1粒子<RL2粒子,也就是 RL1粒子的适应度要大于RL2粒子的适应度,然后用这2个粒子的适应度更新。
1层不更新。
每一次更新完,要用GBDT预测,如果预测结果为0,也就是粒子更新到了第1层,就直接将粒子划到第一层。总体上说,就是不断的将粒子更新到0。
L1 exploitation的更新:
总体从代码上看,就像父母更新完后,子代继续更新,相当于做2次更新,但是子代的更新次数取决于父代更新的次数,父代更新越少,子代的迭代次数越多。