zoukankan      html  css  js  c++  java
  • LinGo:装货问题——线性规划,整数规划,1988年美国数模B题

    7种规格的包装箱要装有两辆铁路平板车上去,包装箱的宽和高相同,但厚度(t,以cm计)和重量(以kg计)不同,

    表A-1给出了每包装箱的厚度、重量和数量,每辆车有10.2m长的地方用来装包装箱(像面包片那样),车的载重为40吨,

    C5、C6、C7、规格的包装箱的总数有一个特殊的限制:这些规格箱子所占的空间(厚度)不能超过302.7cm。

    试把包装箱装到两辆平板车上去(图A-6)使得浪费的空间最小。

     

    表A-1 每种包装箱的厚度、重量和数量

     

    C1

    C2

    C3

    C4

    C5

    C6

    C7

    t(cm)

    w(kg)

    n

    48.7

    2000

    8

    52.0

    3000

    7

    61.3

    1000

    9

    72.0

    500

    6

    48.7

    4000

    6

    52.0

    2000

    4

    64.0

    1000

    8

    解:

    一.设决策变量:

        Xij表示第i辆平板车放j类包装箱Xij

    tj为第j个包装箱的厚度(cm)

    wj为第j个包装箱的重量(kg)

    nj表示第j个包装箱的数量

     

    二.分析约束条件

    1. 两辆车上的各种包装箱数量必须小于等于各类包装箱的总数

    2.每辆车上的载重必须小于等于400000kg

      

    3.每辆车上包装箱的长度必须小于等于1020cm

      

    4. C5、C6、C7、规格的包装箱的总厚度不能超过302.7cm

    5.包装箱的件数必须是整数

    @for(link(i,j) : @gin(x(i,j)));

    三.目标函数

    [OBJ] min = 2040 - @sum(link(i,j) : x(i,j)*t(j));

    四.LinGo代码

    model:
    sets:
        row/1..2/;
        col/1..7/ : t, w, n;
        link(row, col) : x;
    endsets
    
    data:
        t = 48.7, 52.0, 61.3, 72.0, 48.7, 52.0, 64.0;
        w = 2000, 3000, 1000, 500, 4000, 2000, 1000;
        n = 8, 7, 9, 6, 6, 4, 8;
    enddata
    
    @for(col(j) : @sum(row(i) : x(i,j)) <= n(j));
    
    @for(row(i) : @sum(col(j) : x(i,j)*w(j)) <= 400000);
    
    @for(row(i) : @sum(col(j) : x(i,j)*t(j)) <= 1020);
    
    @sum(row(i) : @sum(col(j) | j#ge#5 : x(i,j) * t(j) )) <= 302.7;
    
    @for(link(i,j) : @gin(x(i,j)));
    
    [OBJ] min = 2040 - @sum(link(i,j) : x(i,j)*t(j));
    
    end

     五.LinGo运算结果

    Global optimal solution found.
      Objective value:                             0.6000000
      Objective bound:                             0.6000000
      Infeasibilities:                              0.000000
      Extended solver steps:                            9342
      Total solver iterations:                         40250


                           Variable           Value        Reduced Cost
                              T( 1)        48.70000            0.000000
                              T( 2)        52.00000            0.000000
                              T( 3)        61.30000            0.000000
                              T( 4)        72.00000            0.000000
                              T( 5)        48.70000            0.000000
                              T( 6)        52.00000            0.000000
                              T( 7)        64.00000            0.000000
                              W( 1)        2000.000            0.000000
                              W( 2)        3000.000            0.000000
                              W( 3)        1000.000            0.000000
                              W( 4)        500.0000            0.000000
                              W( 5)        4000.000            0.000000
                              W( 6)        2000.000            0.000000
                              W( 7)        1000.000            0.000000
                              N( 1)        8.000000            0.000000
                              N( 2)        7.000000            0.000000
                              N( 3)        9.000000            0.000000
                              N( 4)        6.000000            0.000000
                              N( 5)        6.000000            0.000000
                              N( 6)        4.000000            0.000000
                              N( 7)        8.000000            0.000000
                           X( 1, 1)        8.000000           -48.70000
                           X( 1, 2)        1.000000           -52.00000
                           X( 1, 3)        0.000000           -61.30000
                           X( 1, 4)        6.000000           -72.00000
                           X( 1, 5)        3.000000           -48.70000
                           X( 1, 6)        0.000000           -52.00000
                           X( 1, 7)        0.000000           -64.00000
                           X( 2, 1)        0.000000           -48.70000
                           X( 2, 2)        6.000000           -52.00000
                           X( 2, 3)        9.000000           -61.30000
                           X( 2, 4)        0.000000           -72.00000
                           X( 2, 5)        0.000000           -48.70000
                           X( 2, 6)        3.000000           -52.00000
                           X( 2, 7)        0.000000           -64.00000

                                Row    Slack or Surplus      Dual Price
                                  1        0.000000            0.000000
                                  2        0.000000            0.000000
                                  3        0.000000            0.000000
                                  4        0.000000            0.000000
                                  5        3.000000            0.000000
                                  6        1.000000            0.000000
                                  7        8.000000            0.000000
                                  8        366000.0            0.000000
                                  9        367000.0            0.000000
                                 10       0.3000000            0.000000
                                 11       0.3000000            0.000000
                                 12       0.6000000            0.000000
                                OBJ       0.6000000           -1.000000

    结论:

    浪费空间最小为:0.6cm

        C1  C2  C3  C4  C5  C6  C7

    第一辆 8    1    0    6    3    0     0

    第二辆   0    6    9    0    0    3     0

    ——现在的努力是为了小时候吹过的牛B!!
  • 相关阅读:
    [C++] const 限定符
    [国嵌笔记][028][Bootloader设计蓝图]
    [国嵌笔记][027][ARM协处理器访问指令]
    [国嵌笔记][026][ARM伪指令]
    [国嵌笔记][025][ARM指令分类学习]
    [国嵌笔记][024][ARM汇编编程概述]
    [国嵌笔记][023][ARM寻址方式]
    [国嵌笔记][021-022][ARM处理器工作模式]
    [国嵌笔记][020][ARM家族大检阅]
    [国嵌笔记][019][Eclipse集成开发环境]
  • 原文地址:https://www.cnblogs.com/pingge/p/3265817.html
Copyright © 2011-2022 走看看