协同优化算法 协同优化算法的原理是将一复杂的目标函数分解成简单的子目标函数然后再将这些子目标函数进行协同优化具体说来协同优化是在优化每一子目标函数同时综合考虑其它子目标函数的结果使子目标函数之间的优化结果能够一致优化结果一致是指使每一变量的值在每一子目标函数的优化结果中能够一致一般来说可以证明如果变量的值一致则为最优解协同优化算法没有局部最优问题同时具有非常良好的收敛特性 它很好地解决了许多实际中非线性优化及组合优化难题 如果目标函数是一n个变量的函数 E  x   x     x n  displaystyle Exxldots xn 简写成 E  x  displaystyle Ex 协同优化算法先将它分解成n个简单的子目标函数 E  x   E   x   E   x     E n  x  displaystyle ExExExldots Enx  如果单独优化每一子目标函数则它们的结果很难达到一致例如变量 x i displaystyle xi 在包含它的子目标函数中的最优解值很难相同对于 i        n displaystyle ildots n 如果我们取 E i  x  displaystyle Eix 的最优解中 x i displaystyle xi 的值作为该变量的值表示成 x  i displaystyle tilde xi  x  i  arg  min x i min X i  x i E i  x  displaystyle tilde xiarg min ximin Xisetminus xiEix 这里 X i displaystyle Xi 是 E i  x  displaystyle Eix 的变量集 X i  x i displaystyle Xisetminus xi 指变量集 X i displaystyle Xi 除去元素 x i displaystyle xi   x    x      x  n  displaystyle tilde xtilde xldots tilde xn 则很难为原目标函数 E  x  displaystyle Ex 的最优解 为了使子目标函数之间的优化结果能够一致协同优化算法在优化每一子目标函数 E i  x  displaystyle Eix 同时考虑其它子目标函数的结果 Ψ j  x j   min X j  x j E j  x  displaystyle Psi jxjmin Xjsetminus xjEjx  具体做法是利用其它子目标函数的优化结果通过数值加权修正每一个子目标函数如下    λ  E i  x   λ k  j w i j Ψ j  x j  displaystyle leftlambda rightEixlambda ksum jwijPsi jxj 这里 λ k  w i j displaystyle lambda kwij 为加权系数满足   λ k  w i j   displaystyle leq lambda kwijleq   然后对修正后的子目标函数进行优化优化结果再叠代放入修正的子目标函数中协同优化算法的叠代方程如下 Ψ i  k   x i   min X i  x i     λ k  E i  x   λ k  j w i j Ψ j  k     x j    f o r i        n  displaystyle Psi ikximin Xisetminus xileftleftlambda krightEixlambda ksum jwijPsi jkxjrightquad forildots n 协同优化结果使每一变量的值在每一子目标函数的优化结果中达到一致如果一致则子目标函数的优化解既为最优解