||
在利用CVX求解凸优化问题时,我们往往在cvx_begin/cvx_end环境中输入的是原始问题(即Primalproblem)。这是因为Primal problem更加直观,更加方便我们对问题的建模。
但是,在某些特殊的问题中,我们需要获得对偶问题中的最优对偶变量,即拉格朗日乘子。这些对偶变量是有物理意义的,它们意味着Primalproblem中各个对应约束条件的sensitivity,也就是说,乘子越大,这个约束越push,越应该active。
另一方面,在CVX求解凸优化问题时,从计算效率角度出发,也是往往通过求解dual problem来求解Primal problem(前提是strong duality holds)。
因此,我们只需在CVX的环境中声明一下对偶变量,即可在CVX运行之后输出最优的对偶变量,而并不需要输入对偶问题的具体形式。
例如:一个线性规划问题:
其中变量是x。其对偶问题是
其中变量是y。为了输出最优对偶变量,我们有如下代码:
这样,CVX将同时输出最优的Primal和Dual变量值。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-4-29 10:48
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社