QQ登录

只需要一步,快速开始

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

关于lingo模型的理解不透彻

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

23

主题

8

听众

372

积分

升级  24%

  • TA的每日心情
    开心
    2014-10-4 18:19
  • 签到天数: 102 天

    [LV.6]常住居民II

    自我介绍
    本人是在校学生,即将参加有史以来的第一场国赛,希望能在这里获得帮助。
    跳转到指定楼层
    1#
    发表于 2013-7-31 11:02 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    model:

    sets:
    needs/1..4/:length,num;
    cuts/1..3/:x;
    patterns(needs,cuts):r;
    endsets

    data:
    length=4 5 6 8;
    num =  50 10 20 15;
    x = 1 2 3;
    enddata

    min=@sum(patterns(i,j):r(i,j));
    @for(cuts(i): @sum(needs(j):r(j,i))<6;);
    @for(needs(j): @sum(cuts(i):r(i,j))<6;);

    end


    如上面的程序
    有几个疑问:  1、在needs 和 cuts 的基础上再定义集合patterns   那么这个集合据说有 4*3 个元素, 然后我想看看里面的元素值是各是什么,但结果显示  全是0;奇怪的是我又在书上看多一个程序,如图: 图片1.png 。它却可以把c(i,j)*式子。这样不是白费力气吗?  因为c(i,j)不是全部为0吗?  它又没有赋值过?  为什么?
                           2、如两个限制条件,分别把  cuts  与 needs  交换位置  那么结果是一样  还是有所区别呢?
                           3、在编写代码过程中,有没有好像java  c# 那些通过快捷键快速得到变量名称呢?

    真心不理解第一个疑问,patterns的含义  和  元素的值  是怎样理解的 。
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    袁海亮     中国数模人才认证   

    148

    主题

    160

    听众

    2万

    积分

  • TA的每日心情
    难过
    2021-12-27 17:15
  • 签到天数: 337 天

    [LV.8]以坛为家I

    2013挑战赛参赛者

    社区QQ达人 元老勋章 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组2013年第二期美赛论文

    群组2013年国赛赛前培训

    群组网络挑战赛一阶段C题

    群组2013年数学建模国赛备

    群组有事没事来点事做

    model:

    !集合定义部分;
    sets:
    needs/1..4/:length,num;!needs集合的名称,1,2,3,4集合内的成员,length,num是集合的属性,可以看成是一个一维数组。;
    cuts/1..3/:x;
    patterns(needs,cuts):r;!衍生(派生)集合,patterns集合的名称,needs,cuts初始集合,r衍生集合的属性;
    endsets

    !数据的初始化;
    data:
    length=4 5 6 8;
    num =  50 10 20 15;
    x = 1 2 3;
    enddata

    !目标函数和约束条件;
    min=@sum(patterns(i,j):r(i,j)); !目标函数 此处@sum的第一个参数patterns(i,j),表示求和运算对衍生集合patterns进行,该集合是二维的,共有12个成员;
    @for(cuts(i): @sum(needs(j):r(i,j)<6;);!for生成一个约束表达式,他有两个参数,第一个是集合名,表示对该集合的所有成员声称对应的约束表达式,
    第二个参数是约束表达式的具体内容,此处在调用@sum函数,表示对约束表达式的左边是求和,是对needs的4个成员,并且对表达式r(i,j)中的第二维J求和;
    @for(needs(j): @sum(cuts(i):r(i,j))<6;);

    end
    回复

    使用道具 举报

    袁海亮     中国数模人才认证   

    148

    主题

    160

    听众

    2万

    积分

  • TA的每日心情
    难过
    2021-12-27 17:15
  • 签到天数: 337 天

    [LV.8]以坛为家I

    2013挑战赛参赛者

    社区QQ达人 元老勋章 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组2013年第二期美赛论文

    群组2013年国赛赛前培训

    群组网络挑战赛一阶段C题

    群组2013年数学建模国赛备

    群组有事没事来点事做

    回复

    使用道具 举报

    23

    主题

    8

    听众

    372

    积分

    升级  24%

  • TA的每日心情
    开心
    2014-10-4 18:19
  • 签到天数: 102 天

    [LV.6]常住居民II

    自我介绍
    本人是在校学生,即将参加有史以来的第一场国赛,希望能在这里获得帮助。
    袁海亮 发表于 2013-7-31 22:33
    也是刚接触 多多交流

    那楼主中的问题里  patterns(needs,cuts):r      这个  r(i,j)有值吗?   还是全部为0。  如果不为0,则数值代表什么意义呢?
    回复

    使用道具 举报

    袁海亮     中国数模人才认证   

    148

    主题

    160

    听众

    2万

    积分

  • TA的每日心情
    难过
    2021-12-27 17:15
  • 签到天数: 337 天

    [LV.8]以坛为家I

    2013挑战赛参赛者

    社区QQ达人 元老勋章 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组2013年第二期美赛论文

    群组2013年国赛赛前培训

    群组网络挑战赛一阶段C题

    群组2013年数学建模国赛备

    群组有事没事来点事做

    本帖最后由 袁海亮 于 2013-8-1 10:15 编辑
    数学不烦 发表于 2013-8-1 01:18
    那楼主中的问题里  patterns(needs,cuts):r      这个  r(i,j)有值吗?   还是全部为0。  如果不为 ...


    r  是衍生集合的属性  在DATA 初始化时,如果没有对其赋值,全是 0  
    回复

    使用道具 举报

    23

    主题

    8

    听众

    372

    积分

    升级  24%

  • TA的每日心情
    开心
    2014-10-4 18:19
  • 签到天数: 102 天

    [LV.6]常住居民II

    自我介绍
    本人是在校学生,即将参加有史以来的第一场国赛,希望能在这里获得帮助。
    本帖最后由 袁海亮 于 2013-8-1 10:16 编辑
    袁海亮 发表于 2013-8-1 09:15
    r  是衍生集合的属性  在DATA 初始化时,如果没有对其赋值,全是 0


    朋友,我还有一个问题,“默认使用衍生集合里面的值”   能根据上面的数据,列出r(i,j)的全部值吗?   因为我想在数据中感悟,理解。谢谢你
    回复

    使用道具 举报

    袁海亮     中国数模人才认证   

    148

    主题

    160

    听众

    2万

    积分

  • TA的每日心情
    难过
    2021-12-27 17:15
  • 签到天数: 337 天

    [LV.8]以坛为家I

    2013挑战赛参赛者

    社区QQ达人 元老勋章 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组2013年第二期美赛论文

    群组2013年国赛赛前培训

    群组网络挑战赛一阶段C题

    群组2013年数学建模国赛备

    群组有事没事来点事做

    本帖最后由 袁海亮 于 2013-8-1 10:37 编辑
    数学不烦 发表于 2013-8-1 09:37
    朋友,我还有一个问题,“默认使用衍生集合里面的值”   能根据上面的数据,列出r(i,j)的全部值吗?   ...


    0,0
    0,0
    0,0
    0,0
    0,0
    0,0
    0,0
    0,0
    0,0
    0,0
    0,0
    0,0
    亲 无临时无法给你上传图片  你研究一下 这段代码

    model:

    sets:
    WH/w1..w6/:AI;
    VD/v1..v8/:DJ;
    links(WH,VD):c,x;
    endsets

    data:
    AI=60,55,51,43,41,52;
    DJ=35,37,22,32,41,32,43,38;
    !c=6,2,6,7,4,2,5,9
      4,9,5,3,8,5,8,2
      5,2,1,9,7,4,3,3
      7,6,7,3,9,2,7,1
      2,3,9,5,7,2,6,5
      5,5,2,2,8,1,4,3;
    c=0,0,0,0,0,0,0,0
    0,0,0,0,0,0,0,0
    0,0,0,0,0,0,0,0
    0,0,0,0,0,0,0,0
    0,0,0,0,0,0,0,0
    0,0,0,0,0,0,0,0;
    enddata

    min=@sum(links(i,j):c(i,j)*x(i,j));!目标函数;
    @for(WH(i):@sum(VD(j):x(i,j))<AI(i));!约束条件;
    @for(VD(j):@sum(WH(i):x(i,j))=DJ(j));
    end
    回复

    使用道具 举报

    8#
    无效楼层,该帖已经被删除
    madio        

    3万

    主题

    1311

    听众

    5万

    积分

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

    [LV.Master]伴坛终老

    自我介绍
    数学中国站长

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

    群组数学建模培训课堂1

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

    群组Matlab讨论组

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

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

    patterns没有赋值,当然值都是0了,你要做为参数使用的话,就要在data段赋值,如果是做为变量使用的话,就不用赋值,lingo也会求解出值来,至于第二个问题,你要将 cuts  与 needs  交换位置结果肯定是不一样的,因为一个是求和@sum的范围,一个是@for循环的范围,换了连约束条件的个数都不一样多。
    数学建模社会化
    回复

    使用道具 举报

    23

    主题

    8

    听众

    372

    积分

    升级  24%

  • TA的每日心情
    开心
    2014-10-4 18:19
  • 签到天数: 102 天

    [LV.6]常住居民II

    自我介绍
    本人是在校学生,即将参加有史以来的第一场国赛,希望能在这里获得帮助。
    madio 发表于 2013-8-1 10:10
    patterns没有赋值,当然值都是0了,你要做为参数使用的话,就要在data段赋值,如果是做为变量使用的话,就不 ...

    哈哈,谢谢你的金言,学习了!
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2025-8-6 12:42 , Processed in 0.847375 second(s), 101 queries .

    回顶部