如何寫出原問題的對偶問題


\(優化問題原問題P,P不一定是凸問題\)

\(\begin{cases} min\ f(x)\\ s.t.\ g_i(x)\le 0,i=1,...,l\\ \ \ \ \ \ \ \ \ h_i(x)=0,i=1,...,m \end{cases}\)

一.計算對偶問題流程

\(1.寫出拉格朗日函數\)

\(L(x)=f(x)+\sum_{i=1}^{l}\lambda_i g_i(x)+\sum_{i=1}^{m}\mu_i h_i(x)\)

\(2.寫出拉格朗日對偶函數\)

\(d(\lambda,\mu)=inf_{x\in X}\{f(x)+\sum_{i=1}^{l}\lambda_i g_i(x)+\sum_{i=1}^{m}\mu_i h_i(x)|x\in X\},X是函數f(x)的定義域(\color{red}{求解的時候定義域不要漏了}),inf是求下確界的意思\)

\(3.求解拉格朗日對偶函數\)

\(這一步具體問題具體分析\)

\(4.寫出對偶問題問題\)

\(對偶問題標准格式\)
\(\begin{cases} max\ d(\lambda,\mu)\\ s.t.\ \lambda_i\ge 0, \mu_i無約束 \end{cases}\)

二.案例分析

1.最小二乘問題

\(\begin{cases} min\ f(x)=||x||_2^2 = x^Tx\\ s.t.\ Ax =b \end{cases},x\in R^n\)

寫出拉格朗日函數和對偶函數

\(L(x)=f(x)+\sum_{i=1}^{l}\lambda_i g_i(x)+\sum_{i=1}^{m}\mu_i h_i(x) = x^Tx+ \mu ^T(Ax-b)\)

\(d(\lambda,\mu)=inf_{x\in X}\{f(x)+\sum_{i=1}^{l}\lambda_i g_i(x)+\sum_{i=1}^{m}\mu_i h_i(x)|x\in X\}\)
\(=inf_{x\in X}\{ x^Tx+ \mu ^T(Ax-b)|x\in R^n\}\)

\(d對x求偏導,求最小值,也就是下確界\)

\(\frac{\partial d}{\partial x} = 2x+A^T\mu =0\)
\(即x=-\frac{A^T\mu}{2}時,對偶函數d(\lambda,\mu)有下確界\)
\(d(\lambda,\mu)=x^Tx+ \mu ^T(Ax-b) = (-\frac{A^T\mu}{2})^T(-\frac{A^T\mu}{2}) + \mu^T(A( -\frac{A^T\mu}{2})-b)\)
\(=\frac{1}{4}\mu^TAA^T\mu - \frac{1}{2}\mu^TAA^T\mu - \mu^T b\)
\(=- \frac{1}{4}\mu^TAA^T\mu - \mu^T b\)

寫出對偶問題

\(\begin{cases} max\ - \frac{1}{4}\mu^TAA^T\mu - \mu^T b \\ \mu 無約束\\ \end{cases}\)

2.線性規划問題

\(\begin{cases} min\ f(x)=c^Tx\\ s.t.\ Ax =b \end{cases},x\in R^n\)

寫出拉格朗日函數和對偶函數

\(L(x)=f(x)+\sum_{i=1}^{l}\lambda_i g_i(x)+\sum_{i=1}^{m}\mu_i h_i(x) = c^Tx+ \mu ^T(Ax-b)\)

\(d(\lambda,\mu)=inf_{x\in X}\{f(x)+\sum_{i=1}^{l}\lambda_i g_i(x)+\sum_{i=1}^{m}\mu_i h_i(x)|x\in X\}\)
\(=inf_{x\in X}\{ c^Tx+ \mu ^TAx-\mu ^Tb|x\in R^n\}\)

求最小值,也就是下確界

\(這里沒法像上面一樣求導,注意觀察 c^Tx+ \mu^T Ax-\mu^T b 是一個線性函數,怎么可能取到最小值呢?\)
\(顯然必須c^T+ \mu ^TA =0,則最小值/下確界=-\mu ^Tb\)

\(d(\lambda,\mu) = \begin{cases} -\mu ^Tb & c^T+ \mu ^TA =0 \\ -\infty & otherwise \\ \end{cases}\)

寫出對偶問題

\(\begin{cases} max\ -\mu^Tb\\ c^T+ \mu ^TA =0\\ \mu 無約束\\ \end{cases}\)

三.總結

\(寫對偶問題是可以按照套路來的,切記不要偷工減料,\mu都是無約束的,但是建議還是寫上,求d(\lambda,\mu)的時候注意定義域\)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM