对偶问题
对偶问题
定义
其实就是一个式子:
\[\max\lbrace c^Tx\mid Ax\leq b\rbrace=\min\lbrace b^Ty|A^Ty\geq c\rbrace
\]
其中\(x,y,b,c\)为列向量(只有一列的矩阵),\(A\)为一个\(n\times m\)的矩阵,\(A^T\)表示\(A\)的转置。
两个矩阵比大小:若\(A\)中的每个元素在\(B\)中对应位置均小于\(A\),则有\(A<B\)。
感觉好像很迷啊。。。那么这个东西我们怎么理解呢?
现在我们有一个商人,它要卖商品,然后我们还有一些原料,考虑这些东西代表什么:
\(A_{j,i}:\) 第\(i\)个商品需要多少个原料\(j\)。
\(b:\) 每种原料有多少。
\(x:\) 每种商品卖了多少。
\(c:\) 每种商品的价格。
再看看左边的式子,就好理解多了,表示的就是他最多能卖出的价格,
那么右边的式子呢?这个商人现在转行了,他不卖商品了,他去卖原料去了。。。(雾
那么有:
\(y:\) 每种原料一个单位以多少的价格卖出。
那么我们想一想,你既然都卖原料了,那肯定利润要比直接卖商品多啊,而且必须保证每种原料换成商品比原来卖的价格高啊,所以我们就有了左边=右边
感性理解吼啊
例题
考虑这道题怎么用对偶问题转化:
\(c\)为全\(1\)列向量,长度为\(m\)。
\(y\)为\(0,1\)长度为\(m\)列向量,表示一条链选或不选。
\(A\)为有\(m\)行,\(n-1\)列的矩阵,\(A[j][i]\)表示第\(i\)条边是否包含于第\(j\)条链中。
\(b\)表示长为\(m\)的列向量,表示选一条链的代价。
然后我们就只要使\(c^Tx\)最大,只需要考虑\(x\)是什么了。
发现\(x\)即为每条边在所有链中出现了多少次,而限制条件即为这条边被覆盖的次数小于等于包含它的链的权值。
这样我们就将问题转化了,后续过程戳这里。