QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 3067|回复: 1
打印 上一主题 下一主题

多阶段生产的lingo问题

[复制链接]
字体大小: 正常 放大

1

主题

5

听众

8

积分

升级  3.16%

  • TA的每日心情
    开心
    2014-5-5 17:35
  • 签到天数: 1 天

    [LV.1]初来乍到

    自我介绍
    爱好学习的青年,希望认识更多志同道合的人一起为梦想奋斗。

    社区QQ达人

    跳转到指定楼层
    1#
    发表于 2014-5-5 17:32 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    将一个lingo程序用集的形式改写之后结果有点儿出入,烦请大神帮忙看看,指正指正!
    model:
    sets :      
    week_i/1..4/:x,y,z,a,b,c,m,n,q;
    endsets
    [OBJ]max=@Sum (week_i(i):350*y(i)+470*b(i)+610*n(i)-9*z(i)-10*c(i)-18*q(i));!目标函数;
    @for(week_i(i):x(i)+a(i)<=120);
    @for(week_i(i):m(i)<=48);
    @for(week_i(i):10*x(i)+15*a(i)+20*m(i)<=2000);
    z(1)=22+x(1)-y(1); z(2)=z(1)+x(2)-y(2);
    z(3)=z(2)+x(3)-y(3);  z(4)=z(3)+x(4)-y(4);
    c(1)=42+a(1)-b(1); c(2)=c(1)+a(2)-b(2);
    c(3)=c(2)+a(3)-b(3);c(4)=c(3)+a(4)-b(4);
    q(1)=36+m(1)-n(1); q(2)=q(1)+m(2)-n(2);
    q(3)=q(2)+m(3)-n(3); q(4)=q(3)+m(4)-n(4);   
    @for(week_i(i):@gin(x(i));@gin(y(i));@gin(z(i));@gin(a(i));@gin(b(i));
    @gin(c(i));@gin(m(i));@gin(n(i));@gin(q(i)););
    @for(week_i(i):@bnd(20,b(i),40););
    @bnd(20,y(1),60);
    @bnd(20,y(2),80);
    @bnd(20,y(3),120);
    @bnd(20,y(4),140);
    @bnd(20,n(1),50);
    @bnd(20,n(2),40);
    @bnd(20,n(3),30);
    @bnd(20,n(4),70);  
    end
    改写后的lingo程序: 2.xlsx (9.3 KB, 下载次数: 3)





    MODEL:
    SETS:
       constraints/A,B,MP/: pp;
       products / 1,2,3/:
        price,cost,s0;
           month/1..4/:;
       link11( constraints, products): lk;
       link2(month,products):x,d,s,dmin,dmax;
    ENDSETS

    DATA:
       pp = @OLE('\2.XLSX');
       price = @OLE('\2.XLSX');
       lk = @OLE('\2.XLSX');
       dmin = @OLE('\2.XLSX');
       dmax = @OLE('\2.XLSX');
        s0 = @OLE('\2.XLSX');
       cost = @OLE('\2.XLSX');
    ENDDATA

    MAX = @SUM( link2( k,j):
    price( j) * d( k,j)-cost(j)*s(k,j));
    @for(month(k):@for( constraints( i):
    @SUM( products( j):
    lk( i, j) *x(k,j)) <= pp(i)
    ));
    @for(month(k)|k#gt#1:@for(products(j):s(k,j)=s(k-1,j)+x(k,j)-d(k,j)));
    @for(products(j):s(1,j)=s0(j)+x(1,j)-d(1,j));
    @for(link2(k,j):@bnd(dmin(k,j),d(k,j),dmax(k,j)););
    @for(link2(k,j):@gin(x(k,j));@gin(s(k,j)););
    END


    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    madio        

    3万

    主题

    1311

    听众

    5万

    积分

  • TA的每日心情
    奋斗
    2024-7-1 22:21
  • 签到天数: 2014 天

    [LV.Master]伴坛终老

    自我介绍
    数学中国站长

    社区QQ达人 邮箱绑定达人 优秀斑竹奖 发帖功臣 风雨历程奖 新人进步奖 最具活力勋章

    群组数学建模培训课堂1

    群组数学中国美赛辅助报名

    群组Matlab讨论组

    群组2013认证赛A题讨论群组

    群组2013认证赛C题讨论群组

    1. MODEL:
    2. SETS:
    3.    constraints/A,B,MP/: pp;
    4.    products / 1,2,3/:
    5.     price,cost,s0;
    6.        month/1..4/:;
    7.    link11( constraints, products): lk;
    8.    link2(month,products):x,d,s,dmin,dmax;
    9. ENDSETS

    10. DATA:
    11.    pp = @OLE('2.XLSX');
    12.    price = @OLE('2.XLSX');
    13.    lk = @OLE('2.XLSX');
    14.    dmin = @OLE('2.XLSX');
    15.    dmax = @OLE('2.XLSX');
    16.     s0 = @OLE('2.XLSX');
    17.    cost = @OLE('2.XLSX');
    18. ENDDATA

    19. MAX = @SUM( link2( k,j):
    20. price( j) * d( k,j)-cost(j)*s(k,j));
    21. @for(month(k):@for( constraints( i):
    22. @SUM( products( j):
    23. lk( i, j) *x(k,j)) <= pp(i)
    24. ));
    25. @for(month(k)|k#gt#1:@for(products(j):s(k,j)=s(k-1,j)+x(k,j)-d(k,j)));
    26. @for(products(j):s(1,j)=s0(j)+x(1,j)-d(1,j));
    27. @for(link2(k,j):@bnd(dmin(k,j),d(k,j),dmax(k,j)););
    28. @for(link2(k,j):@gin(x(k,j));@gin(s(k,j)););
    29. END
    复制代码
    没有问题,就是链接xlsx文件的路径不对,把2.xlsx文件放到和代码同一个目录下,使用上面的程序就可以了运行出结果,而且是全局最优解。

    Global optimal solution found.
      Objective value:                              301944.0
      Objective bound:                              301944.0
      Infeasibilities:                              0.000000
      Extended solver steps:                               0
      Total solver iterations:                            94

      Model Class:                                      MILP

      Total variables:                     36
      Nonlinear variables:                  0
      Integer variables:                   24

      Total constraints:                   25
      Nonlinear constraints:                0

      Total nonzeros:                      93
      Nonlinear nonzeros:                   0


                                    Variable           Value        Reduced Cost
                                      PP( A)        120.0000            0.000000
                                      PP( B)        48.00000            0.000000
                                     PP( MP)        2000.000            0.000000
                                   PRICE( 1)        350.0000            0.000000
                                   PRICE( 2)        470.0000            0.000000
                                   PRICE( 3)        610.0000            0.000000
                                    COST( 1)        9.000000            0.000000
                                    COST( 2)        10.00000            0.000000
                                    COST( 3)        18.00000            0.000000
                                      S0( 1)        22.00000            0.000000
                                      S0( 2)        42.00000            0.000000
                                      S0( 3)        36.00000            0.000000
                                   LK( A, 1)        1.000000            0.000000
                                   LK( A, 2)        1.000000            0.000000
                                   LK( A, 3)        0.000000            0.000000
                                   LK( B, 1)        0.000000            0.000000
                                   LK( B, 2)        0.000000            0.000000
                                   LK( B, 3)        1.000000            0.000000
                                  LK( MP, 1)        10.00000            0.000000
                                  LK( MP, 2)        15.00000            0.000000
                                  LK( MP, 3)        20.00000            0.000000
                                    X( 1, 1)        18.00000           -350.0000
                                    X( 1, 2)        100.0000           -470.0000
                                    X( 1, 3)        16.00000           -610.0000
                                    X( 2, 1)        40.00000           -350.0000
                                    X( 2, 2)        56.00000           -470.0000
                                    X( 2, 3)        38.00000           -610.0000
                                    X( 3, 1)        40.00000           -350.0000
                                    X( 3, 2)        80.00000           -470.0000
                                    X( 3, 3)        20.00000           -610.0000
                                    X( 4, 1)        40.00000           -350.0000
                                    X( 4, 2)        80.00000           -470.0000
                                    X( 4, 3)        20.00000           -610.0000
                                    D( 1, 1)        40.00000            0.000000
                                    D( 1, 2)        60.00000            0.000000
                                    D( 1, 3)        50.00000            0.000000
                                    D( 2, 1)        40.00000            0.000000
                                    D( 2, 2)        80.00000            0.000000
                                    D( 2, 3)        40.00000            0.000000
                                    D( 3, 1)        40.00000            0.000000
                                    D( 3, 2)        120.0000            0.000000
                                    D( 3, 3)        20.00000            0.000000
                                    D( 4, 1)        40.00000            0.000000
                                    D( 4, 2)        98.00000            0.000000
                                    D( 4, 3)        20.00000            0.000000
                                    S( 1, 1)        0.000000            9.000000
                                    S( 1, 2)        82.00000            10.00000
                                    S( 1, 3)        2.000000            18.00000
                                    S( 2, 1)        0.000000            9.000000
                                    S( 2, 2)        58.00000            10.00000
                                    S( 2, 3)        0.000000            18.00000
                                    S( 3, 1)        0.000000            9.000000
                                    S( 3, 2)        18.00000            10.00000
                                    S( 3, 3)        0.000000            18.00000
                                    S( 4, 1)        0.000000            359.0000
                                    S( 4, 2)        0.000000            480.0000
                                    S( 4, 3)        0.000000            628.0000
                                 DMIN( 1, 1)        20.00000            0.000000
                                 DMIN( 1, 2)        20.00000            0.000000
                                 DMIN( 1, 3)        20.00000            0.000000
                                 DMIN( 2, 1)        20.00000            0.000000
                                 DMIN( 2, 2)        20.00000            0.000000
                                 DMIN( 2, 3)        20.00000            0.000000
                                 DMIN( 3, 1)        20.00000            0.000000
                                 DMIN( 3, 2)        20.00000            0.000000
                                 DMIN( 3, 3)        20.00000            0.000000
                                 DMIN( 4, 1)        20.00000            0.000000
                                 DMIN( 4, 2)        20.00000            0.000000
                                 DMIN( 4, 3)        20.00000            0.000000
                                 DMAX( 1, 1)        40.00000            0.000000
                                 DMAX( 1, 2)        60.00000            0.000000
                                 DMAX( 1, 3)        50.00000            0.000000
                                 DMAX( 2, 1)        40.00000            0.000000
                                 DMAX( 2, 2)        80.00000            0.000000
                                 DMAX( 2, 3)        40.00000            0.000000
                                 DMAX( 3, 1)        40.00000            0.000000
                                 DMAX( 3, 2)        120.0000            0.000000
                                 DMAX( 3, 3)        30.00000            0.000000
                                 DMAX( 4, 1)        40.00000            0.000000
                                 DMAX( 4, 2)        140.0000            0.000000
                                 DMAX( 4, 3)        70.00000            0.000000

                                         Row    Slack or Surplus      Dual Price
                                           1        301944.0            1.000000
                                           2        2.000000            0.000000
                                           3        32.00000            0.000000
                                           4        0.000000            0.000000
                                           5        24.00000            0.000000
                                           6        10.00000            0.000000
                                           7        0.000000            0.000000
                                           8        0.000000            0.000000
                                           9        28.00000            0.000000
                                          10        0.000000            0.000000
                                          11        0.000000            0.000000
                                          12        28.00000            0.000000
                                          13        0.000000            0.000000
                                          14        0.000000            350.0000
                                          15        0.000000            470.0000
                                          16        0.000000            610.0000
                                          17        0.000000            350.0000
                                          18        0.000000            470.0000
                                          19        0.000000            610.0000
                                          20        0.000000            350.0000
                                          21        0.000000            470.0000
                                          22        0.000000            610.0000
                                          23        0.000000            350.0000
                                          24        0.000000            470.0000
                                          25        0.000000            610.0000

    数学建模社会化
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-8-18 07:17 , Processed in 0.685585 second(s), 64 queries .

    回顶部