zoukankan      html  css  js  c++  java
  • LP线性规划初识

    认识LP

    线性规划(Linear Programming) 特指目标函数和约束条件皆为线性的最优化问题.

    • 目标函数: 多个变量形成的函数

    • 约束条件: 由多个等式/不等式形成的约束条件

    • 线性规划: 在线性约束条件下,目标函数求极值的问题

    • 可行解: 满足线性约束条件下的解

    • 可行域: 所有可行解构成的集合

    • 最优解: 使目标函数取得极值的可行解

    线性

    个人觉得最好理解是用向量了. 就是元素满足 加法和数乘 的形式

    • (f(a+b) = f(a)+f(b))

    • (f(ca) = c f(a), c为常数)

    当然要理解上面两个等式可能需要去理解向量空间, 线性变换这些内容,嗯, 反正我自己已经懂了, 有时间可以分享.

    定义模型的步骤

    前提一定是线性的哈

    • 确定决策变量
    • 确定线性目标函数, 求max 或 min
    • 确定线性约束条件
    • 写出数学模型

    case1

    球队运作

    需求:

    需要补充7名球员, 每名球员有攻击值和防守值, 希望7名球员的进攻值大于500, 防守值大于400, 且要尽可能省钱.

    战力值 防守值 价格(万)
    进攻型 90 60 1000
    平衡性 80 80 800
    防守型 40 95 500

    求解:

    定义决策变量: 假设补充进攻型,防守型,平衡性各a,b,c名, 总价格为y万元,即

    (s.t 即 subject to "受制于")

    (min y = 1000a + 800b + 500c)

    s.t.

    (90a + 80b +40c >= 500 \ 60a+ 80b + 95c >= 400 \a + b+ c = 7 \ a,b,c >=0)

    case2

    采购方案

    需求:

    作为采购经理,有2000元经费, 需采购单价为50元的桌子若干和单价20元的椅子若干.

    • 桌椅总数尽可能多
    • 椅子数量不少于桌子, 且不多于桌子的1.5倍

    求解:

    定义决策变量: 购买x1张桌子, x2把椅子, 总数为y.

    (max y = x1 + x2)

    s.t.

    (50x1 + 20x2 <= 2000 \ 1.5x1 >= x2 \ x1<= x2 \ x1,x2 >=0)

    几何求解

    • 约束条件的交集构成可行域

    • 最优解即平行移动目标函数, 使其在可行域上达到截距最大

    • 而最优解, 就是再交集域的顶点, 而无需在内部考虑.(不用严格用什么向量,几何, 什么定比分店,证明,肯定是边界的顶点上嘛)

    证明最优解在边界顶点

    假设平面三角形域顶点分别为x1, x2, x3, 最优解x0在三角形内, 过顶点x1,和x0的直线与底边 x2-x3交于点x4.

    通过中学学的定点分比, 对x0作分解

    $x_0 = $

    LP的标准形式

    (min c^Tx \ s.t. Ax <=b \ x >= 0)

    • x, c, 表列向量, (c^T)是行向量, (c^Tx)表示线性组合

    • (Ax=b) 表示线性齐次方程组, A表示系数拒绝, x表列向量

    • if 目标函数是求max, 则 - max 即转为了求min

    • if 约束条件有 >= , 则 - (>=) 即转为了 <=

    将case2 转为标准型

    (min y = -x1 + -x2)

    s.t.

    (50x1 + 20x2 <= 2000 \ -1.5x1+x2 <= 0 \ x1-x2<= 0 \ x1,x2 >=0)

    将case2转为松弛型

    • 松弛型: 用等式约束来等价表述不等式约束

    • 松弛变量度量了等式约束与原不等式约束直接的松弛或差别

    • 其实就是为了求解方便呗

    $min y = -x1-x2 $

    s.t.

    (50x1 + 20x2 + a1 = 2000 \ -1.5x1+x2 + a2 =0 \ x1-x2+a3=0 \ x1,x2,a1,a2,a3 >=0 \ 其中a1,a2,a3为松弛变量)

    (附) 证明最优解在边界顶点

    假设平面三角形域顶点分别为x1, x2, x3, 最优解x0在三角形内, 过顶点x1,和x0的直线与底边 x2-x3交于点x4.

    通过中学学的定比分点, 对x0作分解

    (x_0 = lambda_1 x_1 + (1-lambda_1) x_4, 其中lambda_1 = ||x0-x1||/||x0-x4||)

    (x4 = lambda_2 x2 + (1- lambda_2) x3, 其中lambda_2 = c(定点分比值)))

    即:

    (x_0 = lambda_1 x1 + (1-lambda_1) lambda_2 x2 + (1-lambda_1)(1-lambda_2) x3)

    其中 (lambda_1 + (1-lambda_1) lambda_2 + (1-lambda_1)(1-lambda_2) = 1)

    假设 (c^tx1 > =c^tx2 >= c^tx3, 根据大前提即:\ c^tx0 >= c^tx1 >= c^tx2 > =c^tx3)

    即:

    $c^tx_0 =x_0 = lambda_1 c^t x1 + (1-lambda_1) lambda_2 c^t x2 + (1-lambda_1)(1-lambda_2) c^t x3 $

    (>=c^tx_0 =x_0 = lambda_1 c^t x1 + (1-lambda_1) lambda_2 c^t x1 + (1-lambda_1)(1-lambda_2) c^t x1)

    $ = c^tx1$

    即说明最优解并不是 x0, 而是顶点x1, 不在内部哦.

  • 相关阅读:
    Markdown
    DNS解析流程
    maven 的各种命令
    ES6初体验——(1)let和const命令
    table相关的选择器 & children()与find()的区别 & 选择器eq(n)与nth-child(n)的差异
    Java MD5加密类
    POI操作Excel异常Cannot get a text value from a numeric cell
    MyEclipse+SSH开发环境配置
    JdbcTemplate详解
    Spring配置声明
  • 原文地址:https://www.cnblogs.com/chenjieyouge/p/11881774.html
Copyright © 2011-2022 走看看