QQ登录

只需要一步,快速开始

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

Lingo输出的问题

[复制链接]
字体大小: 正常 放大
gf2015 实名认证       

3

主题

10

听众

375

积分

升级  25%

  • TA的每日心情
    奋斗
    2016-11-19 18:24
  • 签到天数: 178 天

    [LV.7]常住居民III

    社区QQ达人

    跳转到指定楼层
    1#
    发表于 2015-7-27 23:30 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    本帖最后由 gf2015 于 2015-7-27 23:30 编辑
    1. data:  !手动输入各种车的数量;
    2.     Car1=?;
    3.     Car2=?;
    4.     Car3=?;
    5. enddata

    6. sets: !五个表的定义;
    7. A/1..15/:AI,AII,AIII,AR,aa;
    8. B/1..5/:BI,BII,BR,bb;
    9. C/1..21/:CI,CII,CIII,CR,cc;
    10. D/1..6/:DI,DII,DR,dd;
    11. E/1..6/:EI,EII,ER,ee;
    12. Tenp/1..15/:de;
    13. endsets

    14. data: !将各列数据赋进来;
    15. AI,AII,AIII,AR,BI,BII,BR,CI,CII,CIII,CR,DI,DII,DR,EI,EII,ER=@ole('D:\A题模式.xlsx');
    16. de=0;
    17. enddata

    18. min=Z;

    19. !对车辆的约束;
    20. @sum(A:aa)=@sum(B:bb);
    21. @sum(C:cc)=@sum(D:dd);
    22. @sum(C:cc)=@sum(E:ee);

    23. @for(Tenp(I)|I#le#6:de=@abs(dd(I)-ee(I)));
    24. @sum(Tenp:de)=0;

    25. @for(A(I):@bnd(0,aa(I),50));
    26. @for(B(I):@bnd(0,bb(I),50));
    27. @for(C(I):@bnd(0,cc(I),50));
    28. @for(D(I):@bnd(0,dd(I),50));
    29. @for(E(I):@bnd(0,ee(I),50));

    30. @for(A(I):@gin(aa(I)));
    31. @for(B(I):@gin(bb(I)));
    32. @for(C(I):@gin(cc(I)));
    33. @for(D(I):@gin(dd(I)));
    34. @for(E(I):@gin(ee(I)));
    35. !对运量的约束;
    36. @sum(A(I):AI(I)*aa(I))+@sum(B(I):BI(I)*bb(I))+@sum(C(I):CI(I)*cc(I))+@sum(D(I):DI(I)*dd(I))+@sum(E(I):EI(I)*ee(I))>=Car1;
    37. @sum(A(I):AII(I)*aa(I))+@sum(B(I):BII(I)*bb(I))+@sum(C(I):CII(I)*cc(I))+@sum(D(I):DII(I)*dd(I))+@sum(E(I):EII(I)*ee(I))>=Car2;
    38. @sum(A(I):AIII(I)*aa(I))+@sum(C(I):CIII(I)*cc(I))>=Car3;

    39. @sum(C:cc)<=@sum(A:aa)/5;

    40. !目标值;

    41. Z=@sum(C:cc)+@sum(A:aa);
    42. end
    复制代码
    以上是一个线性优化的代码。
    因为我定义的集比较多,集里面的属性多。结果输出是吧所有的属性值全部作为Variable,导致输出结果冗长。
    如下图: 2015-07-27_22-29-03.png


    我想请问的是:怎样才能使Lingo输出特定的变量而不是把变量全部输出?





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

    70

    主题

    65

    听众

    5199

    积分

    独孤求败

  • TA的每日心情
    擦汗
    2018-4-26 23:29
  • 签到天数: 1502 天

    [LV.Master]伴坛终老

    自我介绍
    紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。 重剑无锋,大巧不工。四十岁前恃之横行天下。 四十岁后,不滞于物,草木竹石均可为剑。自此精修,渐进至无剑胜有剑之境。

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

    群组计量经济学之性

    群组LINGO

    有三个函数也许可以帮你定制你自己的输出,一个叫@solu,一个叫@divert,以及@write

    点评

    gf2015  谢谢你的指导,但是@solu这个函数能帮我再讲清楚一点吗? 具体的用法我还是不会。  详情 回复 发表于 2015-7-28 10:54
    回复

    使用道具 举报

    gf2015 实名认证       

    3

    主题

    10

    听众

    375

    积分

    升级  25%

  • TA的每日心情
    奋斗
    2016-11-19 18:24
  • 签到天数: 178 天

    [LV.7]常住居民III

    社区QQ达人

    本帖最后由 gf2015 于 2015-7-28 10:59 编辑
    The SOLU, or SOLUTION, command displays a solution report for the current model. The syntax of the SOLU command is:

    SOLU ['header_text'] [ var_or_row_names]

    For a standard solution report, omit the two optional arguments and enter the SOLU command by itself. LINGO will print primal and dual values for all the variables and rows in the model. LINGO will label all the columns in the report.

    The first optional field, header_text, will be displayed as a title header in the solution report. If the header_text argument is included, LINGO prints primal values only, omitting all labels in the report.

    The second optional field, var_or_row_names, is a variable and/or row name list that, if included, will limit the report to the given variable or row name. The standard wild card characters (* and %) are supported in the variable and row names.

    As an example, in the following session, we load the Chess Snackfoods example from the Using Sets section and then generate several solution reports using SOLU:
    1. : TAKE CHESS.LNG
    2. : TERSE
    3. : GO

    4. Global optimal solution found at step:         0
    5. Objective value:                       2692.308

    6. : !Generate a standard SOLU report
    7. : SOLU

    8.                  Variable      Value  Reduced Cost
    9.          SUPPLY( PEANUTS)   750.0000     0.0000000
    10.          SUPPLY( CASHEWS)   250.0000     0.0000000
    11.              PRICE( PAWN)   2.000000     0.0000000
    12.            PRICE( KNIGHT)   3.000000     0.0000000
    13.            PRICE( BISHOP)   4.000000     0.0000000
    14.              PRICE( KING)   5.000000     0.0000000
    15.            PRODUCE( PAWN)   769.2308     0.0000000
    16.          PRODUCE( KNIGHT)   0.000000     0.1538461
    17.          PRODUCE( BISHOP)   0.000000     0.7692297E-01
    18.            PRODUCE( KING)   230.7692     0.0000000
    19.   FORMULA( PEANUTS, PAWN)   15.00000     0.0000000
    20. FORMULA( PEANUTS, KNIGHT)   10.00000     0.0000000
    21. FORMULA( PEANUTS, BISHOP)   6.000000     0.0000000
    22.   FORMULA( PEANUTS, KING)   2.000000     0.0000000
    23.   FORMULA( CASHEWS, PAWN)   1.000000     0.0000000
    24. FORMULA( CASHEWS, KNIGHT)   6.000000     0.0000000
    25. FORMULA( CASHEWS, BISHOP)   10.00000     0.0000000
    26.   FORMULA( CASHEWS, KING)   14.00000     0.0000000

    27.            Row    Slack or Surplus      Dual Price
    28.              1            2692.308        1.000000
    29.              2            0.000000        1.769231
    30.              3            0.000000        5.461538

    31. : !Generate a SOLU report for PRODUCE
    32. : SOLU PRODUCE

    33.                 Variable       Value  Reduced Cost
    34.           PRODUCE( PAWN)    769.2308     0.0000000
    35.         PRODUCE( KNIGHT)    0.000000     0.1538461
    36.         PRODUCE( BISHOP)    0.000000     0.7692297E-01
    37.           PRODUCE( KING)    230.7692     0.0000000

    38. : !Now add a header and use a wildcard
    39. : SOLU 'PRODUCTION QUANTITIES' PROD*

    40. PRODUCTION QUANTITIES
    41.         769.2308
    42.         0.000000
    43.         0.000000
    44.         230.7692
    复制代码
    这是我找到的帮助文档,因为英语不是很好,只明白大概:
    SOLU ['header_text'] [var_or_row_names]
    如果没有两个可选参数,那么就是默认输出,和我得到的结果一样。
    如果有参数:header_text,则输出以该参数为变量名的变量与结果。
    如果有参数:var_or_row_names,则可控制输出的行与列。

    但是我还是不会用。
    我在原程序下面加上了:
    1. solu AA
    复制代码
    想只输出AA变量,但会有下面的问题:
    D:\2015-07-28_10-50-19.png
    还请大家再帮我指导一二。

    2015-07-28_10-58-35.png (18.59 KB, 下载次数: 272)

    2015-07-28_10-58-35.png

    回复

    使用道具 举报

    gf2015 实名认证       

    3

    主题

    10

    听众

    375

    积分

    升级  25%

  • TA的每日心情
    奋斗
    2016-11-19 18:24
  • 签到天数: 178 天

    [LV.7]常住居民III

    社区QQ达人

    回复

    使用道具 举报

    gf2015 实名认证       

    3

    主题

    10

    听众

    375

    积分

    升级  25%

  • TA的每日心情
    奋斗
    2016-11-19 18:24
  • 签到天数: 178 天

    [LV.7]常住居民III

    社区QQ达人

    liwenhui 发表于 2015-7-28 09:34
    有三个函数也许可以帮你定制你自己的输出,一个叫@solu,一个叫@divert,以及@write

    谢谢你的指导,但是@solu这个函数能帮我再讲清楚一点吗?
    具体的用法我还是不会。

    点评

    liwenhui  怎么不显示回复结果呢?论坛出问题了?  详情 回复 发表于 2015-7-28 12:43
    回复

    使用道具 举报

    liwenhui        

    70

    主题

    65

    听众

    5199

    积分

    独孤求败

  • TA的每日心情
    擦汗
    2018-4-26 23:29
  • 签到天数: 1502 天

    [LV.Master]伴坛终老

    自我介绍
    紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。 重剑无锋,大巧不工。四十岁前恃之横行天下。 四十岁后,不滞于物,草木竹石均可为剑。自此精修,渐进至无剑胜有剑之境。

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

    群组计量经济学之性

    群组LINGO

    gf2015 发表于 2015-7-28 10:54
    谢谢你的指导,但是@solu这个函数能帮我再讲清楚一点吗?
    具体的用法我还是不会。

    @solu需要在calc区域使用,所以你要先把你的模型定义一个子模型,然后在calc区域调用,比如你只想在输出结果中显示变量AI,那么你可以在calc区域写 @solu(0,AI)。
    四十岁后,不滞于物,草木竹石均可为剑。
    回复

    使用道具 举报

    liwenhui        

    70

    主题

    65

    听众

    5199

    积分

    独孤求败

  • TA的每日心情
    擦汗
    2018-4-26 23:29
  • 签到天数: 1502 天

    [LV.Master]伴坛终老

    自我介绍
    紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。 重剑无锋,大巧不工。四十岁前恃之横行天下。 四十岁后,不滞于物,草木竹石均可为剑。自此精修,渐进至无剑胜有剑之境。

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

    群组计量经济学之性

    群组LINGO

    gf2015 发表于 2015-7-28 10:54
    谢谢你的指导,但是@solu这个函数能帮我再讲清楚一点吗?
    具体的用法我还是不会。

    怎么不显示回复结果呢?论坛出问题了?

    点评

    gf2015  什么意思?你的回复就是 还有其他的吗?  详情 回复 发表于 2015-7-28 12:54
    四十岁后,不滞于物,草木竹石均可为剑。
    回复

    使用道具 举报

    gf2015 实名认证       

    3

    主题

    10

    听众

    375

    积分

    升级  25%

  • TA的每日心情
    奋斗
    2016-11-19 18:24
  • 签到天数: 178 天

    [LV.7]常住居民III

    社区QQ达人

    liwenhui 发表于 2015-7-28 12:43
    怎么不显示回复结果呢?论坛出问题了?

    什么意思?你的回复就是
    有三个函数也许可以帮你定制你自己的输出,一个叫@solu,一个叫@divert,以及@write

    还有其他的吗?
    回复

    使用道具 举报

    21

    主题

    97

    听众

    3110

    积分

  • TA的每日心情
    奋斗
    2014-3-2 00:26
  • 签到天数: 243 天

    [LV.8]以坛为家I

       lingo自带的例子soduku以及稍高版本中的graphpsn中有一些用法可以看看。
       总的来说,输出函数有table, write, writefor, format, newline等等,
       solu这是command script中的用法,不是常用的lingo script中的,与之类似的有nonz等等。

    点评

    liwenhui  正解  详情 回复 发表于 2015-7-31 22:19
    已有 1 人评分体力 收起 理由
    liwenhui + 5 正解

    总评分: 体力 + 5   查看全部评分

    有什么好说的
    回复

    使用道具 举报

    liwenhui        

    70

    主题

    65

    听众

    5199

    积分

    独孤求败

  • TA的每日心情
    擦汗
    2018-4-26 23:29
  • 签到天数: 1502 天

    [LV.Master]伴坛终老

    自我介绍
    紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。 重剑无锋,大巧不工。四十岁前恃之横行天下。 四十岁后,不滞于物,草木竹石均可为剑。自此精修,渐进至无剑胜有剑之境。

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

    群组计量经济学之性

    群组LINGO

    wujianjack2 发表于 2015-7-29 19:33
    lingo自带的例子soduku以及稍高版本中的graphpsn中有一些用法可以看看。
       总的来说,输出函数有table ...

    正解
    四十岁后,不滞于物,草木竹石均可为剑。
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-8-8 09:15 , Processed in 0.654262 second(s), 110 queries .

    回顶部