• 线性规划(二)——数学模型样例


    描述

    • 线性规划的数学模型通常可以使用计算机求解,因此现实中的难点通常在于
      • 理解要解决的问题
      • 应该将什么作为决策变量?
      • 如何构建线性目标函数?
      • 约束条件有哪些,是否足够完善?
    • 通过大量的例子的练习,可以提高我们对于现实问题的分析能力,进而归纳总结
    • 注:先不要看解,最好自己思考出解,这是在磨砺抽象实际问题的能力

    例子一——供给、运输问题

    • 题目:
      • 某汽车企业,有三个汽车制造工厂A、B、C,四个销售中心D、E、F、G。汽车制造工厂和销售中心都在不同的位置,现需要将工厂生产出的汽车调运到销售中心售卖,运输会有不同的成本。将工厂生产数、销售中心预计销量、运输成本汇总后,统计如下图。我们应该如何制定调运方案,以节省运输成本?
    工厂\销售中心DEFG生产数(辆)
    A428720
    B764925
    C637115
    预计销售(辆)14161512
    • 解:
      • 由题意,我们可以直接设
        • A工厂运输到D销售中心的汽车数量为 x A D x_{AD} xAD
        • A工厂运输到E销售中心的汽车数量为 x A E x_{AE} xAE
        • ……
        • C工厂运输到G销售中心的汽车数量为 x C G x_{CG} xCG
      • 则总运费为各汽车数量乘以运费后的和
        f = 4 x A D + 2 x A E + 8 x A F + 7 x A G + 7 x B D + 6 x B E + 4 x B F + 9 x B G + 6 x C D + 3 x C E + 7 x C F + x C G f=4x_{AD} + 2x_{AE} + 8x_{AF} + 7x_{AG} + 7x_{BD} + 6x_{BE} + 4x_{BF} + 9x_{BG} + 6x_{CD} + 3x_{CE} + 7x_{CF} + x_{CG} f=4xAD+2xAE+8xAF+7xAG+7xBD+6xBE+4xBF+9xBG+6xCD+3xCE+7xCF+xCG
      • 显然,
        • A、B、C各自运输到不同销售中心的汽车数据不能超过自己生产的总量
        • D、E、F、G销售中心收到汽车数量应大于预计销售量(这样才能满足销售需求)
      • 那么,我们可以得到数学模型如下
        max ⁡ { f = 4 x A D + 2 x A E + 8 x A F + 7 x A G + 7 x B D + 6 x B E + 4 x B F + 9 x B G + 6 x C D + 3 x C E + 7 x C F + x C G } s.t. x A D + x A E + x A F + x A G ≤ 20 x B D + x B E + x B F + x B G ≤ 25 x C D + x C E + x C F + x C G ≤ 15 x A D + x B D + x C D ≥ 14 x A E + x B E + x C E ≥ 16 x A F + x B F + x C F ≥ 15 x A G + x B G + x C G ≥ 12 x i j ≥ 0 , ( i = A , B , C ; j = D , E , F , G )
        max{f=4xAD+2xAE+8xAF+7xAG+7xBD+6xBE+4xBF+9xBG+6xCD+3xCE+7xCF+xCG}s.t.xAD+xAE+xAF+xAG20xBD+xBE+xBF+xBG25xCD+xCE+xCF+xCG15xAD+xBD+xCD14xAE+xBE+xCE16xAF+xBF+xCF15xAG+xBG+xCG12xij0,(i=A,B,C;j=D,E,F,G)" role="presentation" style="position: relative;">max{f=4xAD+2xAE+8xAF+7xAG+7xBD+6xBE+4xBF+9xBG+6xCD+3xCE+7xCF+xCG}s.t.xAD+xAE+xAF+xAG20xBD+xBE+xBF+xBG25xCD+xCE+xCF+xCG15xAD+xBD+xCD14xAE+xBE+xCE16xAF+xBF+xCF15xAG+xBG+xCG12xij0,(i=A,B,C;j=D,E,F,G)
        maxs.t.{f=4xAD+2xAE+8xAF+7xAG+7xBD+6xBE+4xBF+9xBG+6xCD+3xCE+7xCF+xCG}xAD+xAE+xAF+xAG20xBD+xBE+xBF+xBG25xCD+xCE+xCF+xCG15xAD+xBD+xCD14xAE+xBE+xCE16xAF+xBF+xCF15xAG+xBG+xCG12xij0,(i=A,B,C;j=D,E,F,G)

    例子二——人力资源分配利用问题

    • 题目:
      • 某大型商场A,一周内每日有不同数量的顾客光临,需要销售员服务。同一销售员每周会连续工作5天,休息2天,销售员间需要排班。因为每天顾客数量不同,需要的销售员数量也不同(每日销售员需求量统计如下表),如果每天销售员数量一致,就会浪费人力成本。我们应当如何在满足商场的服务需求下,更少的配备销售员呢?
    时间星期一星期二星期三星期四星期五星期六星期日
    所需销售员数量12192518282728
    • 解:
      • 这个问题很难像前面的问题一样一眼看出来如何去构建模型
      • 首先,我们要明确目的:
        • 销售人员数量要满足商场每日的服务需求(这个是约束)
        • 让销售人员数量最少,降低成本(这个是目标)
      • 同时,我们还有个约束:同一销售员每周会连续工作5天,休息2天。我们需要对销售员进行排班。
      • 这个时候我们很难去定义决策变量,因为一个销售员不只工作一天,他们需要排班。我们先顺着题意思考一下,随便排班试试
        • 倘若销售员A在星期一开始上班,那么他会上星期一至星期五,休周六、周日
        • 倘若销售员B在星期二开始上班,那么他会上星期二至星期六,休周日、星期一
        • ……
      • 总结一下,也就是说,在同一天开始上班的人,会在同一天开始休息,那么我们可以
        • 把在星期一开始上班的人抽象为一个群体,设为 x 1 x_1 x1
        • 把在星期二开始上班的人抽象为一个群体,设为 x 2 x_2 x2
        • ……
        • 把在星期日开始上班的人抽象为一个群体,设为 x 7 x_7 x7
      • 显然 x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 x_1,x_2,x_3,x_4,x_5,x_6,x_7 x1,x2,x3,x4,x5,x6,x7构成了所有的销售人员,也就是说销售人员总数
        f = x 1 + x 2 + x 3 + x 4 + x 5 + x 6 + x 7 f=x_1 + x_2 + x_3 + x_4 + x_5 + x_6 + x_7 f=x1+x2+x3+x4+x5+x6+x7
      • 我们的目标就是使 f f f最小化
      • 下面来看约束条件。因为同一销售员每周会连续工作5天,休息2天,那么我们可以知道
        • 周一的人数为 x 1 + x 4 + x 5 + x 6 + x 7 x_1 + x_4 + x_5 + x_6 + x_7 x1+x4+x5+x6+x7,商场需要至少12人
        • 周二的人数为 x 1 + x 2 + x 5 + x 6 + x 7 x_1 + x_2 + x_5 + x_6 + x_7 x1+x2+x5+x6+x7,商场需要至少19人
        • ……
      • 根据上面的目标函数、约束条件,我们可以得到数学模型如下:

    max ⁡ { f = x 1 + x 2 + x 3 + x 4 + x 5 + x 6 + x 7 } s.t. x 1 + x 4 + x 5 + x 6 + x 7 ≥ 12 x 1 + x 2 + x 5 + x 6 + x 7 ≥ 19 x 1 + x 2 + x 3 + x 6 + x 7 ≥ 25 x 1 + x 2 + x 3 + x 4 + x 7 ≥ 18 x 1 + x 2 + x 3 + x 4 + x 5 ≥ 28 x 2 + x 3 + x 4 + x 5 + x 6 ≥ 27 x 3 + x 4 + x 5 + x 6 + x 7 ≥ 28 x j ≥ 0 , ( j = 1 , 2 , . . . , 7 )

    max{f=x1+x2+x3+x4+x5+x6+x7}s.t.x1+x4+x5+x6+x712x1+x2+x5+x6+x719x1+x2+x3+x6+x725x1+x2+x3+x4+x718x1+x2+x3+x4+x528x2+x3+x4+x5+x627x3+x4+x5+x6+x728xj0,(j=1,2,...,7)" role="presentation" style="position: relative;">max{f=x1+x2+x3+x4+x5+x6+x7}s.t.x1+x4+x5+x6+x712x1+x2+x5+x6+x719x1+x2+x3+x6+x725x1+x2+x3+x4+x718x1+x2+x3+x4+x528x2+x3+x4+x5+x627x3+x4+x5+x6+x728xj0,(j=1,2,...,7)
    maxs.t.{f=x1+x2+x3+x4+x5+x6+x7}x1+x4+x5+x6+x712x1+x2+x5+x6+x719x1+x2+x3+x6+x725x1+x2+x3+x4+x718x1+x2+x3+x4+x528x2+x3+x4+x5+x627x3+x4+x5+x6+x728xj0,(j=1,2,...,7)

    例子三(待编辑)

    例子四(待编辑)

    例子五(待编辑)

  • 相关阅读:
    二叉树【树的基本概念】
    小发猫物联网平台搭建与应用模型
    小红书关键词爬虫
    Spring Boot 之开发注册功能
    一文教你搞懂Go中栈操作
    干货很干:5个有效引流方法,让客户找上门
    OpenResty“更好更灵活的 Nginx”,这份OpenResty开发指南你值得拥有
    新手必看:Bitget Wallet 上购买 ETH 的步骤解析
    瑞士奢侈手表制造商百年灵现在接受比特币
    在线订餐管理系统
  • 原文地址:https://blog.csdn.net/alionsss/article/details/126238300