- 在线时间
- 1150 小时
- 最后登录
- 2017-1-14
- 注册时间
- 2013-1-3
- 听众数
- 97
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7367 点
- 威望
- 20 点
- 阅读权限
- 150
- 积分
- 3110
- 相册
- 0
- 日志
- 0
- 记录
- 2
- 帖子
- 1299
- 主题
- 21
- 精华
- 2
- 分享
- 0
- 好友
- 298
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求解效果不是很好,我可以用其它工具替代。所以,我在最初写模型时就会尽量考虑写成适用于更多求解器能够求解的形式,而不是只是LINGO。
数学上,你的式子是等价的,而我觉得本题写成prod这种约束,并不利于优化算法的求解,实际建模时我觉得应把容差考虑在内。我不知道LINGO的parser有没有那么智能,在求解时能把prod转化为更简的形式。
就本题, 因为a的取值的特殊性,所以用的bnd,实际上和b一样可以类似处理,这个是semiint变量类型的一般化,LINGO本身不直接给出semiint函数,其内部也是转化成的这种形式。
|
|