使用Python实现Primal-Dual Interior Point Method

Primal Dual Problem

对于每一个优化问题(Primal problem),都有其对应的对偶问题(Dual problem)。每个优化问题的对偶问题可设置一个优化问题的Lagrangian function并求其最优解得出。例如:

对优化问题  min \frac{1}{2}x^{T}Qx+c^{T}x 约束条件为Ax=bx\geq 0,Lagrangian funciton可表示为:L(x)=\frac{1}{2}x^{T}Qx+c^{T}x-\mu ^{T}x+\lambda ^{T}(Ax-b),对其求最优解可得:x=-Q^{-1}(A^{T}\lambda -\mu +c),将x带入Lagrangian function,则得到对偶问题为:max -\frac{1}{2}(c-\mu +A^{T}\lambda )^{T}Q^{-1}(c-\mu +A^{T}\lambda)-b^{T}\lambda约束条件为\mu \geq 0

在每次迭代求解时,对偶问题都为初始问题提供了一个下限(lower bound),在迭代的过程中初始问题和对偶问题会向着各自的最优解方向移动,当初始问题达到最优解时其对偶问题也达到最优解,此时初始问题和其对偶问题最优解对应的目标函数值相同。

Interior Point Method

Interior Point method 为上述求初始问题和对偶问题的最优解提供了一个可迭代的算法,在每次的迭代过程中初始问题目标函数的值与对偶问题目标函数的值之差会越来越小,当该算法收敛时初始问题的目标函数的值和对偶函数的目标函数的值相等。

Barrier Reformulation

为了更简便地使用迭代算法并保证每次迭代后的点都在可行区间内,可以使用-\mu \sum ln(x)来替代约束条件x\geq 0,因此一个线性优化问题就可转化为:

,其Lagrangian function可表示为:

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值