对偶问题

对偶问题

定义

其实就是一个式子:

\[\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:\) 每种原料一个单位以多少的价格卖出。

那么我们想一想,你既然都卖原料了,那肯定利润要比直接卖商品多啊,而且必须保证每种原料换成商品比原来卖的价格高啊,所以我们就有了左边=右边

感性理解吼啊

例题

CF671D

考虑这道题怎么用对偶问题转化:

\(c\)为全\(1\)列向量,长度为\(m\)
\(y\)\(0,1\)长度为\(m\)列向量,表示一条链选或不选。
\(A\)为有\(m\)行,\(n-1\)列的矩阵,\(A[j][i]\)表示第\(i\)条边是否包含于第\(j\)条链中。
\(b\)表示长为\(m\)的列向量,表示选一条链的代价。

然后我们就只要使\(c^Tx\)最大,只需要考虑\(x\)是什么了。

发现\(x\)即为每条边在所有链中出现了多少次,而限制条件即为这条边被覆盖的次数小于等于包含它的链的权值。

这样我们就将问题转化了,后续过程戳这里

posted @ 2019-03-12 21:55  heyujun  阅读(1270)  评论(2编辑  收藏  举报