• 线性规划对偶问题学习笔记


    线性规划对偶问题学习笔记

    今天做FJ省队集训感觉需要用KM,然后来学

    由于我数学太弱,可能会用比较通俗的语言解释,数学符号混乱注意。

    线性规划

    线性规划通常可以用矩阵的形式表示为:

    定义 (m imes n) 的矩阵 (A) 和向量 (mathbf{b}=left[b_{1}, cdots, b_{m} ight]^{T}, mathbf{c}=left[c_{1}, cdots, c_{n} ight]),求(mathbf{x}=[x_1,cdots,x_n]^T),满足以下条件

    这里B、X就当它是一个竖着的数组,只是为了方便用数学语言表示之后的乘

    [operatorname{maximize} quad mathbf{c x}\ operatorname{s.t.} quad A mathbf{x} leq mathbf{b}, mathbf{x} geq 0 ]

    这是什么意思呢?首先cx就是(sum_{i} x_ic_i),即物品总价值

    然后有若干个约束,AX<=b 就是我们开对每一行(A_i),有(sum_j A_{i,j}x_jleq b_i)

    表示每单位每个物品 (j) 需耗费(A_{i,j})单位材料 (i)(b_i)为材料总单位数

    对偶问题

    每个线性规划问题,称为原问题,都可以变换为一个对偶问题。上述问题的对偶问题为:

    [operatorname{minimize} quad mathbf{b}^{T} mathbf{y}\ operatorname{s.t.} quad A^{T} mathbf{y} geq mathbf{c}, mathbf{y} geq 0 ]

    我们现在考虑另一个公司要买原来公司的材料,y表示购买单位材料的价值。显然原来的企业只有卖材料的收益比卖物品高的时候才会卖材料,那么我们只要最小化购买单位材料的总价值,之前物品的收益就最高。感性理解一波,相当于从上面逼近。

    by是所有材料的价值,(A^Ty)是一种物品的材料价值

    对偶问题推论

    我们知道 (A_{i} mathbf{x} leq b_{i}) 会对偶成 (y_{i},)(y_{i} geq 0) 。那么对于 (A_{i} mathbf{x} geq b_{i})(A_{i} mathbf{x}=b_{i}) 的条件又如何对偶?
    (A_{i} mathbf{x} geq b_{i}) 可以写成 (-A_{i} mathbf{x} leq-b_{i},) 那么就可以照常对偶。
    对于 (A_{i} mathbf{x}=b_{i},) 我们可以写成两个条件 (A_{i} mathbf{x} leq b_{i})(-A_{i} mathbf{x} leq-b_{i}) 。这样会对偶出两个变量 (y_{i}^{prime})(y_{i} ") 。而
    他们的系数是恰好相反的,因此可以合并成 (left(y_{i}^{prime}-y_{i}^{prime prime} ight)) 乘系数的形式。而 (y_{i}^{prime}-y_{i}^{prime prime}) 没有 (geq 0) 的限制。因此(A_{i} mathbf{x}=b_{i}) 会对偶出变量 (y_{i},)(y_{i}) 没有 (geq 0) 的限制。

    单纯形算法

    看不懂 不会 挖坑

    例题

    NOI2008 志愿者招募
    ZJOI2013 防守战线

    KM算法

    https://www.cnblogs.com/fzl194/p/8834847.html

    这东西也不难懂,大概就是给每个点分配一个权值,然后权值相加等于边权的时候才能匹配。不能匹配的时候就把左边都减1,右边都加1,那么对于原来的边不受影响,还新增了可能匹配的边,然后总权值之减了1(左边n个点,右边n-1个点),一定是最优的。

  • 相关阅读:
    5. support vector machine
    机器学习实战(二)决策树
    机器学习实战(一)kNN
    深度学习笔记(无)VGG14
    深度学习笔记(一)线性分类器(基础知识)
    Eclipse代码风格
    windows安装java环境
    linux matlab2013b 安装教程
    小白Linux入门 五
    机器学习 0
  • 原文地址:https://www.cnblogs.com/lcyfrog/p/13062566.html
Copyright © 2020-2023  润新知