QQ登录

只需要一步,快速开始

 注册地址  找回密码
12
返回列表 发新帖
楼主: simonsnow
打印 上一主题 下一主题

lingo和matlab求解

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

21

主题

97

听众

3110

积分

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

    [LV.8]以坛为家I

    11#
    发表于 2015-7-24 12:28 |只看该作者
    |招呼Ta 关注Ta
    liwenhui 发表于 2015-7-24 11:24
    可能这是见仁见智,你给出的程序中这一段可能结构化不是很强:在a属于{0,1,2,3,4} b属于{2,4,6,7}的时候, ...

      确是见仁见智。
      我这么写的原因是让约束的形式尽量一点,这样,如果LINGO求解效果不是很好,我可以用其它工具替代。所以,我在最初写模型时就会尽量考虑写成适用于更多求解器能够求解的形式,而不是只是LINGO。
      数学上,你的式子是等价的,而我觉得本题写成prod这种约束,并不利于优化算法的求解,实际建模时我觉得应把容差考虑在内。我不知道LINGO的parser有没有那么智能,在求解时能把prod转化为更简的形式。
      就本题, 因为a的取值的特殊性,所以用的bnd,实际上和b一样可以类似处理,这个是semiint变量类型的一般化,LINGO本身不直接给出semiint函数,其内部也是转化成的这种形式。
    有什么好说的
    回复

    使用道具 举报

    21

    主题

    97

    听众

    3110

    积分

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

    [LV.8]以坛为家I

    liwenhui 发表于 2015-7-24 11:24
    可能这是见仁见智,你给出的程序中这一段可能结构化不是很强:在a属于{0,1,2,3,4} b属于{2,4,6,7}的时候, ...

      另外,你可以试一下两段不同的表述的细微的运行时间与结果的差别,在我的LINGO 15上,我这段程序用local求解器返回的结果即也是global,你的表述在我这里不是。
      也可以看看迭代步数的区别,当然,我这个表述的代价是引入了更多的变量:-)
    有什么好说的
    回复

    使用道具 举报

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

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2024-6-8 22:56 , Processed in 0.593637 second(s), 54 queries .

    回顶部