QQ登录

只需要一步,快速开始

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

LINGO编程问题,求大神帮解答~~~

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

2

主题

6

听众

71

积分

升级  69.47%

  • TA的每日心情
    开心
    2013-9-8 00:23
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    自我介绍
    热爱学习

    群组2013年数学建模国赛备

    跳转到指定楼层
    1#
    发表于 2013-8-30 11:16 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    SETS:
         DEMAND/1..6/:A,B,D;
         SUPPLY/1..2/:X,Y,E;
         LINK(DEMAND,SUPPLY):C;
    ENDSETS
    DATA:
    !LOCATIONS FOR THE DEMAND;
    A=1.25,8.75,0.5,5.75,3,7.25;
    B=1.25,0.75,4.75,5,6.5,7.75,
    !QUANTITIES OF THE SUPPLY AND DEMAND   ;
    D=3,5,4,7,6,11;E=20,20;
    ENDDATA
    INIT:
    !INITIAL LOCATIONS FOR THE SUPPLY;
    X,Y=5,1,2,7;
    ENDINIT
    !OBJECTIVE FUNCTION;
    [OBJ]MIN=@SUM[LINK(I,J):C(I,J)*{([X(J)-A(I)^2+Y(J)-B(I)^2)^(1/2)};
    !DEMAND CONSTRAINTS;
    @FOR(DEMAND(I):[DEMEND_CON] @SUM(SUPPLY(J):C(I,J)=D););
    !SUPPLY CONSTRAINTS;
    @FOR(SUPPLY(I):[SUPPLY_CON] @SUM(DEMAND(J):C(J,I)<=E(I););
    @FOR(SUPPLY:@FREE(Y););
    end
    上面就是我在LINGO中写的解决一个最优化问题的程序,但是我每次运行的时候都会出现错误提醒如下:
    Invalid number of initialization values in a DATA /INIT/CALC
    statement.    The required number of values is:             6.
    13]    D=3,5,4,7,6,11;E=20,20;
             ^
    我真的不知道错误是出在了哪里啊啊啊!!!请大神帮我解答一下吧~~超级感谢~~







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

    2

    主题

    6

    听众

    71

    积分

    升级  69.47%

  • TA的每日心情
    开心
    2013-9-8 00:23
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    自我介绍
    热爱学习

    群组2013年数学建模国赛备

    本帖最后由 袁海亮 于 2013-8-31 00:32 编辑

    额   一不小心打错了。。。。
    程序的倒数第二行应该是:
    @FOR(SUPPLY:@FREE(Y););
    发帖的时候不知道怎么不小心改成了那个表情了{:soso_e127:}
    请各位懂得大神帮忙解答下吧     先在这谢过了~~
    回复

    使用道具 举报

    2

    主题

    6

    听众

    71

    积分

    升级  69.47%

  • TA的每日心情
    开心
    2013-9-8 00:23
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    自我介绍
    热爱学习

    群组2013年数学建模国赛备

    回复

    使用道具 举报

    老肖        

    8

    主题

    6

    听众

    179

    积分

    升级  39.5%

  • TA的每日心情
    奋斗
    2014-9-4 21:46
  • 签到天数: 35 天

    [LV.5]常住居民I

    自我介绍
    喜欢独立

    群组自然数狂想曲

    群组2013年数学建模国赛备

    群组2013年国赛赛前培训

    换个输入法吧。。

    点评

    青枫浦上本  是输入法的问题吗?我在LINGO里面输的时候是@的,不是表情 但是就是会出现上面的那个错误提示~不知道到底是怎么了  详情 回复 发表于 2013-8-30 22:25
    回复

    使用道具 举报

    2

    主题

    6

    听众

    71

    积分

    升级  69.47%

  • TA的每日心情
    开心
    2013-9-8 00:23
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    自我介绍
    热爱学习

    群组2013年数学建模国赛备

    老肖 发表于 2013-8-30 15:33
    换个输入法吧。。

    是输入法的问题吗?我在LINGO里面输的时候是@的,不是表情    但是就是会出现上面的那个错误提示~不知道到底是怎么了
    回复

    使用道具 举报

    magic2728 实名认证    中国数模人才认证   

    61

    主题

    478

    听众

    4861

    积分

    升级  95.37%

  • TA的每日心情
    慵懒
    2014-9-29 19:37
  • 签到天数: 409 天

    [LV.9]以坛为家II

    群组数学中国 2015美赛护航

    群组数模专题强化培训

    群组建模思维养成培训

    群组2015美赛护航(强化)

    群组2013年数学建模国赛备

    X,Y=5,1,2,7;
    这样写合法吗?

    点评

    青枫浦上本  这样写是可以的吧 。。。。 等同于X=5,2;Y=1,7 难道是错的?我看到LINGO的教程里面是这么说的  详情 回复 发表于 2013-8-31 09:56
    回复

    使用道具 举报

    madio        

    3万

    主题

    1311

    听众

    5万

    积分

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

    [LV.Master]伴坛终老

    自我介绍
    数学中国站长

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

    群组数学建模培训课堂1

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

    群组Matlab讨论组

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

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

    1. SETS:
    2.      DEMAND/1..6/:A,B,D;
    3.      SUPPLY/1..2/:X,Y,E;
    4.      LINK(DEMAND,SUPPLY):C;
    5. ENDSETS
    6. DATA:
    7. !LOCATIONS FOR THE DEMAND;
    8. A=1.25,8.75,0.5,5.75,3,7.25;
    9. B=1.25,0.75,4.75,5,6.5,7.75;
    10. !QUANTITIES OF THE SUPPLY AND DEMAND   ;
    11. D=3,5,4,7,6,11;
    12. E=20,20;
    13. ENDDATA
    14. INIT:
    15. !INITIAL LOCATIONS FOR THE SUPPLY;
    16. X=5,1;
    17. Y=2,7;
    18. ENDINIT
    19. !OBJECTIVE FUNCTION;
    20. [OBJ]MIN=@SUM(LINK(I,J):C(I,J)*((X(J)-A(I)^2+Y(J)-B(I)^2)^(1/2)));
    21. !DEMAND CONSTRAINTS;
    22. @FOR(DEMAND(I):[DEMEND_CON] @SUM(SUPPLY(J):C(I,J))=D);
    23. !SUPPLY CONSTRAINTS;
    24. @FOR(SUPPLY(I):[SUPPLY_CON] @SUM(DEMAND(J):C(J,I))<=E(I));
    25. @FOR(SUPPLY:@FREE(Y));
    26. end
    复制代码
    我把语法错误给你改了!

    点评

    青枫浦上本  恩恩 超级感谢啊~ 但是我刚把代码复制试了下还是提示说有错误。。。。提示如下: Invalid input.A syntax error has occurred SETS: DEMAND/1..6/:A,B,D; SUPPLY ^ 真的是不懂问题出在哪啊  详情 回复 发表于 2013-8-31 10:45
    数学建模社会化
    回复

    使用道具 举报

    2

    主题

    6

    听众

    71

    积分

    升级  69.47%

  • TA的每日心情
    开心
    2013-9-8 00:23
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    自我介绍
    热爱学习

    群组2013年数学建模国赛备

    magic2728 发表于 2013-8-31 01:28
    X,Y=5,1,2,7;
    这样写合法吗?

    这样写是可以的吧 。。。。   等同于X=5,2;Y=1,7   难道是错的?我看到LINGO的教程里面是这么说的
    回复

    使用道具 举报

    21

    主题

    97

    听众

    3110

    积分

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

    [LV.8]以坛为家I

    本帖最后由 wujianjack2 于 2013-8-31 10:23 编辑

        楼主你好!很抱歉昨天没有看到你的问题,这里我对这个问题做出一个回答:
        正确的代码如下:
    MODEL:
    SETS:
         DEMAND/1..6/:A,B,D;
         SUPPLY/1..2/:X,Y,E;
         LINK(DEMAND,SUPPLY):C;
    ENDSETS
    DATA:
    !LOCATIONS FOR THE DEMAND;
    A=1.25,8.75,0.5,5.75,3,7.25;
    B=1.25,0.75,4.75,5,6.5,7.75;
    !QUANTITIES OF THE SUPPLY AND DEMAND;
    D=3,5,4,7,6,11;E=20,20;
    ENDDATA
    INIT:
    !INITIAL LOCATIONS FOR THE SUPPLY;
    X,Y=5,1,2,7;
    ENDINIT
    !OBJECTIVE FUNCTION;
    [OBJ]MIN=@SUM(LINK(I,J):C(I,J)*((X(J)-A(I))^2+(Y(J)-B(I))^2)^(1/2));
    !DEMAND CONSTRAINTS;
    @FOR(DEMAND(I):[DEMEND_CON] @SUM(SUPPLY(J):C(I,J))=D(I));
    !SUPPLY CONSTRAINTS;
    @FOR(SUPPLY(I):[SUPPLY_CON] @SUM(DEMAND(J):C(J,I))<=E(I));
    @FOR(SUPPLY:@FREE(Y);@FREE(X));
    END

    在LINGO 11上运行得到如下结果:
      Local optimal solution found.
      Objective value:                              85.26604
      Infeasibilities:                                   0.000000
      Total solver iterations:                          68

      Variable               Value             Reduced Cost
         X( 1)           3.254883            0.000000
         X( 2)           7.250000          -0.1853513E-05
         Y( 1)           5.652332            0.000000
         Y( 2)           7.750000          -0.1114154E-05

    或许楼主已经解决了这个问题,但是,我想再给出我的建议:
    一.本问题应该来自谢金星的《优化建模与LINDO/LINGO软件》,希望楼主在输入代码时一定要仔细,注意括号的匹配
    二.LINGO中的语句均以圆括号开始结束,暂时不存在花括号与方括号,数据输入以分号结束,切记!
    三.本程序可以对X,Y作一个范围限定,以减少程序的搜索空间,或许可以改善下求解步骤;
    四.madio站长和magic2728超级版主很辛苦,他们对于这个问题的回答或许不如楼主意,madio站长的程序的目标函数或许不是楼主想要的,但其余语法是没有问题的。至于赋初值,你的做法是可以的,可能magic2728看错了,抱歉!希望你能够理解并继续支持我们,再次表示感谢!

    以上是我个人的一些建议,仅供楼主参考,谢谢!

    点评

    青枫浦上本  超级超级感谢aaa,我复制你写的代码试了,没有问题,出来结果了~~真的是太感谢了 我之前一直不对是不是因为我的括号出错了啊~我仔细对比下 嘿嘿  详情 回复 发表于 2013-8-31 10:57
    有什么好说的
    回复

    使用道具 举报

    2

    主题

    6

    听众

    71

    积分

    升级  69.47%

  • TA的每日心情
    开心
    2013-9-8 00:23
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    自我介绍
    热爱学习

    群组2013年数学建模国赛备

    madio 发表于 2013-8-31 08:28
    我把语法错误给你改了!

    恩恩    超级感谢啊~ 但是我刚把代码复制试了下还是提示说有错误。。。。提示如下:
    Invalid input.A syntax error has occurred
    SETS:
    DEMAND/1..6/:A,B,D;
    SUPPLY      ^
    真的是不懂问题出在哪啊

    点评

    wujianjack2  楼主,你为什么不看我给你的解答呢?好桑心啊!  详情 回复 发表于 2013-8-31 10:55
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-8-19 06:37 , Processed in 0.980638 second(s), 100 queries .

    回顶部