如何写出原问题的对偶问题

\(优化问题原问题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)的时候注意定义域\)

posted @ 2021-12-13 11:58  筷点雪糕侠  阅读(863)  评论(0编辑  收藏  举报