zoukankan      html  css  js  c++  java
  • 对偶问题

    对偶问题

    定义

    其实就是一个式子:

    [maxlbrace c^Txmid Axleq b brace=minlbrace b^Ty|A^Tygeq c brace ]

    其中(x,y,b,c)为列向量(只有一列的矩阵),(A)为一个(n imes 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)即为每条边在所有链中出现了多少次,而限制条件即为这条边被覆盖的次数小于等于包含它的链的权值。

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

  • 相关阅读:
    Windows10右键添加“在此处打开命令窗口"
    赋值简单理解
    应用 EditPlus 配置 Java 编译环境
    进程和线程的区别
    Java栈与堆
    进程与线程的简单解释
    java的多态性(二)
    内部类详解(很详细)
    java的super和this关键字用法总结
    Java类成员(成员变量和方法)的覆盖与隐藏归纳
  • 原文地址:https://www.cnblogs.com/heyujun/p/10519952.html
Copyright © 2011-2022 走看看