块坐标下降法( block coordinate descent )
块坐标下降法的应用场景是对于非凸问题进行优化。
块坐标下降法的解决思想是:在每次迭代的过程中,只针对一个变量进行优化求解,其余变量保持不变,然后交替求解。
下面举个例子
一、优化目标
联合无人机轨迹、无人机发射功率和源节点发射功率最大化端到端的吞吐量。
二、优化目标函数
因为优化变量相互耦合,求解的难度是很大的,因此需要对其进行处理,简化优化目标的求解。
三、算法设计思想
将原始的目标函数,分解为两个子问题,分别进行求解。对于每一个子问题的求解,都需要固定一部分参数。然后进行迭代求解,指导找到最佳的解。
下图是算法的伪代码
分析代码:
首先进行初始化,根据初始化条件进入迭代,这个内是初始化i=0时刻的位置和发射功率,同时需要满意值阈值;
然后进入迭代,每次迭代,分解出来的两个子问题需要重新计算,然后与前一次计算出的值进行比较。对于第一个子问题是固定位置,优化发射功率,得到局部的最优解;对于第二个子问题是固定发射功率,优化轨迹。
判断迭代结束条件:当计算出的结果差值的绝对值小于满意值阈值,就代表结果是满足我们要求的次优解。
设计程序
设计程序的时候,通常是使用while进行编写,思路如下:
kesai=1e-5;%满意值阈值
Lmax=1000:%最大迭代步数
while(cha<=kesai&&L<Lmax)
...%对于子问题1求解
...%对于子问题2求解
...%计算结果差值
...%步数+1
end
也就是说结果会逐渐趋近最佳值。
算法参考文献
UAV-Enabled Relay Communication Under Malicious Jamming: Joint Trajectory and Transmit Power Optimization