我正在研究一个资源分配问题,它是凸的并且有几个约束,我想比较以下算法的计算复杂度。
1)通过对偶分解使用迭代次梯度法的算法:它从对偶变量的初始值开始,然后在每次迭代中,根据对偶变量和拉格朗日函数找到原始变量。然后它使用对偶函数的次梯度(使用每次迭代中的原始变量获得)更新对偶变量,并继续直到两次连续迭代的对偶变量之间的误差小于一个 epsilon。该算法迭代次数多,收敛速度慢,我认为这主要是由于存在多个对偶变量。
2)一种启发式算法,其中我将问题划分为具有一个约束的凸子问题,并对每个子问题使用黄金分割搜索方法。该算法有明确的步骤,例如 O(NM),用于将主要问题划分为子问题,并且每个子问题的黄金分割搜索收敛得非常快。
我需要通过模拟和理论来展示这些算法在复杂性方面的差异。理论上,我如何比较这些算法的计算复杂度?换句话说,是否有一种系统化的方法,例如具有固定迭代次数的算法(例如,一种算法是 O(XY),另一种是 O(Ylog(X)))来显示计算复杂度的区别?
提前致谢。