• Lingo求解线性规划案例1——生产计划问题


       凯鲁嘎吉 - 博客园

    http://www.cnblogs.com/kailugaji/

    说明:

    Lingo版本:

                            

      某工厂明年根据合同,每个季度末向销售公司提供产品,有关信息如下表。若当季生产的产品过多,季末有积余,则一个季度每积压一吨产品需支付存贮费O.2万元。现该厂考虑明年的最佳生产方案,使该厂在完成合同的情况下,全年的生产费用最低。试建立模型。

    季度j

    生产能力aj()

    生产成本dj (万元/吨)

    需求量bj()

        1

     

        30

     

        15O

     

        20

     

        2

     

        40

     

        14.O

     

        20

     

        3

     

        20

     

        153

     

        30

     

        4

     

        10

     

        148

     

        10

     

    解:现在我们对本问题定义三种不同形式的决策变量从而从不同的途径来构建模型。

    (1)设工厂第j季度生产产品xj吨。

    首先,考虑约束条件

    第一季度末工厂需交货20吨;故应有x1≥20;

    第一季度末交货后积余(x1-20)吨;

    第二季度末工厂需交货20吨,故应有x1-20+ x2≥20;类似地,应有x1+ x2-40+ x3≥30;

    第四季度末供货后工厂不能积压产品,故应有x1+ x2+ x3-70+ x4=10;

    又考虑到工厂每个季度的生产能力,故应有0≤xjaj

    其次,考虑目标函数:

    第一季度工厂的生产费用为15.0x1

    第二季度工厂的费用包括生产费用14 x2及积压产品的存贮费0.2(x1-20);

    类似地,第三季度费用为15.3x3+0.2(x1+ x2-40),

    第四季度费用为14.8x4+0.2(x1+ x2+ x3-70)。

    工厂一年的费用即为这四个季度费用之和。

    整理后,得下列线性规划模型:

    Min f  =15.6 x1+14.4 x2+15.5 x3+14.8 x4-26

    s.t.x1+ x2     ≥40

            x1+ x2+ x3   ≥70

            x1+ x2+ x3+ x4=80

           20≤x1≤30

           0≤x2≤40

           0≤x3≤20

           0≤x4≤10 

    Lingo程序:

    min=15.6*x1+14.4*x2+15.5*x3+14.8*x4-26;
    x1>=20;
    x1<=30;
    x1+x2>=40;
    x2<=40;
    x1+x2+x3>=70;
    x3<=20;
    x1+x2+x3+x4=80;
    x4<=10;
    end

    结果为:

    Global optimal solution found.
      Objective value:                              1165.000
      Infeasibilities:                              0.000000
      Total solver iterations:                             0
    
    
                           Variable           Value        Reduced Cost
                                 X1        20.00000            0.000000
                                 X2        40.00000            0.000000
                                 X3        10.00000            0.000000
                                 X4        10.00000            0.000000
    
                                Row    Slack or Surplus      Dual Price
                                  1        1165.000           -1.000000
                                  2        0.000000          -0.1000000
                                  3        10.00000            0.000000
                                  4        20.00000            0.000000
                                  5        0.000000            1.100000
                                  6        0.000000            0.000000
                                  7        10.00000            0.000000
                                  8        0.000000           -15.50000
                                  9        0.000000           0.7000000

    (2)设第j季度工厂生产的产品为xj吨,j季度初存贮的产品为yj(显然,y10)。

    因为每季度初的存贮量为上季度存贮量、生产量之和与上季度的需求量之差,又考虑到第四季度末存贮量为零,故有;

        x1-20=y2,    

        y2+x2-20=y3,

        y3+x3-30=y4,   

        y4+x4=10;

    同时,每季度的生产量不能超过生产能力:xj≤aj;而工厂四个季度的总费用由每季的生产费用与存贮费用组成,于是得线性规划:

        minf=15.Ox1+O.2y2+14x2+O.2y3+15.3x3+O.2y4+14.8x4

        s.t.  x1-y2=20

                     y2+x2-y3=20

                     y3+x3-y4=30

                     y4+x4=10

                    0≤x1≤30   0≤x2≤40

                   0≤x3≤20   0≤x4≤10

                   0≤yj    j=2,3,4

    Lingo程序:

    min=15*x1+14*x2+15.3*x3+14.8*x4+0.2*y2+0.2*y3+0.2*y4;
    x1-y2=20;
    x2+y2-y3=20;
    y3+x3-y4=30;
    y4+x4=10;
    x1<30;
    x2<40;
    x3<20;
    x4<10;
    end

    结果为:

    Global optimal solution found.
      Objective value:                              1165.000
      Infeasibilities:                              0.000000
      Total solver iterations:                             0
    
    
                           Variable           Value        Reduced Cost
                                 X1        20.00000            0.000000
                                 X2        40.00000            0.000000
                                 X3        10.00000            0.000000
                                 X4        10.00000            0.000000
                                 Y2        0.000000           0.1000000
                                 Y3        20.00000            0.000000
                                 Y4        0.000000           0.7000000
    
                                Row    Slack or Surplus      Dual Price
                                  1        1165.000           -1.000000
                                  2        0.000000           -15.00000
                                  3        0.000000           -15.10000
                                  4        0.000000           -15.30000
                                  5        0.000000           -14.80000
                                  6        10.00000            0.000000
                                  7        0.000000            1.100000
                                  8        10.00000            0.000000
                                  9        0.000000            0.000000

    (3)设第i季度生产而用于第j季度末交货的产品数量为xij吨。

    根据合同要求,必须有:

    x11=20,    

    x12+x22=20,

    x13+x23+x33=30,   

    x14+x24+x34+x44=10。

    又每季度生产而用于当季和以后各季交货的产品数不可能超过该季度工厂的生产能力,故应有。

      X11+x12+x13+x14≤30,

      x22+x23+x24≤40,    

      x33+x34≤20,

      x44≤10。

    i季度生产的用于第j季度交货的每吨产品的费用cij=dj+0.2(j-i),于是,有线性规划模型。

    minf=15.0x11+15.2x12+15.4x13+15.6x14+14x22+14.2x23+14.4x24+15.3x33+15.5x34+14.8x44

     s.t. x11=20

           x12+x22=20

           x13+x23+x33=30

           x14+x24+x34+x44=10

           x11+x12+x13+x14≤30

           x22+x23+x24≤40

           x33+x34≤20

           x44≤10

           xij≥0,  i=1,…,4;j=1,…,4,j≥i。

    Lingo程序为:

    min=15*x11+15.2*x12+15.4*x13+15.6*x14+14*x22+14.2*x23+14.4*x24+15.3*x33+15.5*x34+14.8*x44;
    x11=20;
    x12+x22=20;
    x13+x23+x33=30;
    x14+x24+x34+x44=10;
    x11+x12+x13+x14<30;
    x22+x23+x24<40;
    x33+x34<20;
    x44<10;
    end

    结果为:

    Global optimal solution found.
      Objective value:                              1165.000
      Infeasibilities:                              0.000000
      Total solver iterations:                             4
    
    
                           Variable           Value        Reduced Cost
                                X11        20.00000            0.000000
                                X12        0.000000           0.1000000
                                X13        0.000000           0.1000000
                                X14        0.000000           0.1000000
                                X22        20.00000            0.000000
                                X23        20.00000            0.000000
                                X24        0.000000            0.000000
                                X33        10.00000            0.000000
                                X34        0.000000            0.000000
                                X44        10.00000            0.000000
    
                                Row    Slack or Surplus      Dual Price
                                  1        1165.000           -1.000000
                                  2        0.000000           -15.00000
                                  3        0.000000           -15.10000
                                  4        0.000000           -15.30000
                                  5        0.000000           -15.50000
                                  6        10.00000            0.000000
                                  7        0.000000            1.100000
                                  8        10.00000            0.000000
                                  9        0.000000           0.7000000
  • 相关阅读:
    Python-环境配置
    Linux操作系统基
    BZOJ 1572 贪心(priority_queue)
    POJ 3040 贪心
    POJ 3039 搜索??? (逼近)
    POJ 2433 枚举
    BZOJ 1571 DP
    BZOJ 1232 Kruskal
    BZOJ 1231 状压DP
    POJ 2430 状压DP
  • 原文地址:https://www.cnblogs.com/kailugaji/p/8215266.html
Copyright © 2020-2023  润新知