数学建模社区-数学中国

标题: “K-Best Solution” in LINGO [打印本页]

作者: wujianjack2    时间: 2014-1-4 20:33
标题: “K-Best Solution” in LINGO
本帖最后由 wujianjack2 于 2014-11-25 18:50 编辑

  本帖以一个简单的实例讨论LINGO求解整数规划中存在多解问题时的求解策略,如knapsack。

声明: 自LINGO 11版本后,已可以直接求解了,此处仅作简单分享。
           本帖内容主要参考文献:Lingo 11 Users Manual

1.示例程序(来自LINGO 11安装文件Samples文件夹KBEST.lg4
MODEL:
SETS:
   ITEMS: INCLUDE, WEIGHT, RATING;
   MYFAVORITES( ITEMS);
ENDSETS
DATA:
   KNAPSACK_CAPACITY = 15;
   ITEMS   WEIGHT  RATING =
     BRATS       3      1
     BROWNIES    3      1
     BEER        3      1
     ANT_REPEL   7      1
     BLANKET     4      6
     FRISBEE     1      6
     SALAD       5     10
     WATERMELON  7      9;
   MYFAVORITES = BRATS BROWNIES BEER;
ENDDATA
MAX = @SUM( ITEMS: RATING * INCLUDE);
@SUM( ITEMS: WEIGHT * INCLUDE) <= KNAPSACK_CAPACITY;
@FOR( ITEMS: @BIN( INCLUDE));
NUMFAVE = @SUM( MYFAVORITES: INCLUDE);
END

2.问题求解:(求解使用LINGO 11 Extended_English Crack)
如果直接用LINGO求解,无论是使用默认设置,还是使用Global Solver,均得到如下结果:
Global Sol_Knapsack
以上结果为Global Solver求解结果。

然而,这种问题最优解往往不止一个,或者,我们还想知道一些次优解,如何简单地利用LINGO实现呢?
操作流程:(以LINGO 11为例)
LINGO->Options->Integer Solver->K-Best Solutions(修改Desired值)
截图如下:(本例修改Desired值为3)
KBEST_Sol

运行结果:
KBEST_Solutions

完整结果:
Total Solutions

自定义选择结果:(以第一个值为23的解为例)
KBEST_Selected Solu

     对于类似的问题,采用上述操作,则可以得到所需的多解,但Desired值也不宜过大,建议由小到大逐个试。程序也要保证有多个解,这样避免出现不可预知的错误。
     有意者详情见参考文献。



作者: 秋の名山で戦    时间: 2014-1-24 18:23
是否可以拜师学艺 真心觉得佩服
作者: 紫菱666    时间: 2014-1-24 21:04
真是既简便,又快速啊,我们组是真没想到这样做啊
作者: wujianjack2    时间: 2014-2-4 16:00
秋の名山で戦 发表于 2014-1-24 18:23
是否可以拜师学艺 真心觉得佩服

   新年快乐!承蒙厚爱!享受在论坛的时光,加油!祝你好运!
作者: wujianjack2    时间: 2014-2-4 16:01
紫菱666 发表于 2014-1-24 21:04
真是既简便,又快速啊,我们组是真没想到这样做啊

   新年快乐!希望对你有帮助!
作者: 空木葬花    时间: 2014-3-4 22:08
非常感谢楼主的福利!
作者: fanwenzhe52    时间: 2014-3-6 11:18
真是既简便,又快速啊,我们组是真没想到这样做啊123
作者: csdl1314    时间: 2014-3-10 10:50
学习了啊哈哈
作者: &me    时间: 2014-3-10 22:09
初学者   不大看得懂呢
作者: 飞翔的大白菜3    时间: 2014-4-2 08:12
不错。以后大家多多交流!!!
作者: 木头绝    时间: 2014-4-2 20:25
作为初学者,觉得你这方法还是很实用的,有时候明明知道不止一个最优解,但是运行以后只出现一个结果就让人很抓狂了!这个方法不错,学到手了!
作者: wujianjack2    时间: 2014-4-2 20:38
木头绝 发表于 2014-4-2 20:25
作为初学者,觉得你这方法还是很实用的,有时候明明知道不止一个最优解,但是运行以后只出现一个结果就让人 ...


作者: jmdx2006    时间: 2014-4-6 10:53
很好的经验哦,谢谢分享

作者: 木头绝    时间: 2014-4-8 19:50
木头绝 发表于 2014-4-2 20:25
作为初学者,觉得你这方法还是很实用的,有时候明明知道不止一个最优解,但是运行以后只出现一个结果就让人 ...

方法很好!值得学习
作者: 归零~谨脩    时间: 2014-4-21 22:51
小弟是初学者,第一次用lingo时,系统显示”语法错误“,求解?
作者: 情未央    时间: 2014-4-28 13:24
非常感谢楼主!
作者: ecology2008    时间: 2014-5-5 12:57
谢谢楼主分享,
作者: 情未央    时间: 2014-5-7 00:17
feichangganxie21
作者: 情未央    时间: 2014-5-10 12:13
非常感谢楼主!
作者: TaskForce    时间: 2014-5-12 13:02
感谢版主^_^
作者: 小糊糊咪咪    时间: 2014-5-13 09:41
学习学习!!
作者: 小糊糊咪咪    时间: 2014-5-13 09:41
学习学习!!
作者: 格莱德182    时间: 2014-5-14 16:57
大家好,我是新来的!
作者: psychopath    时间: 2014-7-8 14:31
非常感谢楼主!!!!点赞哈哈
作者: tidy93    时间: 2014-7-12 23:07
觉得楼主是个很好的人,很细腻的人呢
作者: janus0802    时间: 2014-7-16 08:20
好像看着好麻烦啊
作者: 弘道    时间: 2014-7-26 13:55
谢谢!!!!!!!!!!!!!!!
作者: ..继续、_Contin    时间: 2014-8-15 17:54
恩,学习一下
作者: 空木葬花    时间: 2014-8-16 16:38
非常感谢楼主!
作者: 小苹果°ヾ    时间: 2014-8-20 20:12
好好。。。。。。。。。。。。。
作者: 梦@di?~    时间: 2014-8-21 08:19
lingo求解整数规划
作者: 樊朋朋    时间: 2014-8-22 14:45
顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: 小苹果°ヾ    时间: 2014-8-27 17:29
顶                       
作者: 小苹果°ヾ    时间: 2014-8-27 17:29

作者: 流雨星月    时间: 2014-8-31 14:39
顶一个。。。。
作者: 哇哈哈哈丨    时间: 2014-9-3 15:27
健哥此做法仅限于ILP问题而不适合于LP问题
作者: wfg786200304    时间: 2014-10-6 16:37
赞。。。。。。。。。。。。。。。。。。。
作者: chengfei1004    时间: 2014-10-17 23:02

作者: wujianjack2    时间: 2014-10-18 10:31
chengfei1004 发表于 2014-10-17 23:02

    看来是我误会啦,表示歉意。
    我之前查看你回复的其它帖子以及分享的资料,感觉你应该是一个比较有修养的人,且为人应当不错。只是你回复我均是这个表情,而我误解为“鄙视”之意。我以为你有什么意见或者建议,但不想说,加上你如今应该也在西安上学,以及我最近心情不好...........是故有此一问未直接警告什么的,冒犯之处,望多多包容。
    一个小建议哈,尽量不要用纯表情回复,以后数学中国也许也会再出现如我一般挑剔的版主,避免不必要的误会啊,你是新注册用户,希望你享受在论坛的时光。
    论坛里实则大杂烩,各色人均有,以后若有人对你言语不当,不要往心里去,Enjoy yourself !
    Good Luck !




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5