数学建模社区-数学中国

标题: 一个小小的LINGO建模技巧 [打印本页]

作者: wujianjack2    时间: 2014-1-4 22:19
标题: 一个小小的LINGO建模技巧
本帖最后由 wujianjack2 于 2014-11-25 18:53 编辑

  本帖将以一个看似简单,实则求解很难的优化测试题来讨论LINGO的求解能力(LINDO API),个人见识有限,敬请谅解!
  参考帖子:
  http://forum.simwe.com/thread-806242-1-1.html     (原问题提出者为shamohu版主,16楼为我的回复)

1.问题陈述:
   参考文献:
   1stOpt and Global Optimization Platform-Comparison and Case Study.caj
    Difficult Problem
   
   文献给出参考结果:(取较优解)
    Solution_Doc

2.LINGO程序代码:(以LINGO 14及【LINGO学习杂谈 二】中Patch的LINDO API版本为求解引擎)
   方案一:直接编写
  (1)源代码一:
MIN=(X1^X2+X2^X1-5*X1*X2*X3-85)^2+(X1^3*X2^X3*X3^X2-60)^2+(X1^X3+X3^X1-X2-0.55)^2;            @FREE(X1);@FREE(X2);@FREE(X3);
   
   运行结果截图:
   运行状态:
    Status_1

   运行结果:
    Global_Solu_1

(2)源代码二:
X1^X2+X2^X1-5*X1*X2*X3-85=0;X1^3*X2^X3*X3^X2-60=0;
X1^X3+X3^X1-X2-0.55=0;
@FREE(X1);@FREE(X2);@FREE(X3);

  运行结果截图:
  Global Solver Status:
   Global_Status 2
   
  Local Nonlinear Solver Status:
   Local_Status 2
  
   Local Nonlinear Solver运行结果:
    Local_Solu 2
  综上,可以看出,如果直接编写,LINGO对于此题的求解结果并不理想,但这并不意味着此题LINGO无法求解,只是,我们需要改变下策略。

   方案二:把复杂的约束简化(前提:把X1,X2,X3的定义域缩小为非负)
   对于方案一的代码,LINDO Systems公司的Mark Wiley先生给出了评价,并给出了合理的建议:
    Remark_By Mark Wiley

   如下代码基本沿用Mark Wiley先生给出的思路,稍作调整:
[C1]  X1^X2+X2^X1-5*X1*X2*X3-85=0;
[LC2] 3*@LOG(X1)+X3*@LOG(X2)+X2*@LOG(X3)-@LOG(60)=0;
[C3]  X1^X3+X3^X1-X2-0.55=0;

   使用Global Solver与否均可较快得到较好的结果:(以下结果为Global Solver求解结果)
    Diff_Global_Solu
   有兴趣的可尝试其它版本,包括各种Crack,由于LINDO API版本号的不同,求解效果也可能出现差异。



作者: 雪夜邀月    时间: 2014-1-5 09:08
不明觉厉。。500体力值?本人数学中国菜鸟一枚
作者: wujianjack2    时间: 2014-1-5 10:29
雪夜邀月 发表于 2014-1-5 09:08
不明觉厉。。500体力值?本人数学中国菜鸟一枚

  嗯,对,每天我会总共拿出上限为500体力的体力奖励来奖励大家的精彩回帖。
  祝新年快乐!
作者: 秋の名山で戦    时间: 2014-1-24 18:21
太感谢慷慨的楼主了  可以建个群 大家一起讨论?感觉楼主比较大牛
作者: 紫菱666    时间: 2014-1-24 21:02
这个问题用这种方法真是很好啊  !
作者: wujianjack2    时间: 2014-2-4 16:03
秋の名山で戦 发表于 2014-1-24 18:21
太感谢慷慨的楼主了  可以建个群 大家一起讨论?感觉楼主比较大牛

   不客气,承蒙抬举!在论坛交流也不错啊。
作者: wujianjack2    时间: 2014-2-4 16:04
紫菱666 发表于 2014-1-24 21:02
这个问题用这种方法真是很好啊  !

   同感,欢迎积极发言讨论!新年快乐!
作者: 晴璟123    时间: 2014-2-4 18:26
被你折服了,真的很有用,谢谢楼主分享
作者: 糖姑娘。    时间: 2014-2-4 20:56

作者: cpholzn    时间: 2014-2-4 23:20
这对于LINGO初学者来说很难把握啊
作者: 博学日新    时间: 2014-2-6 17:15
感谢楼主分享
作者: 空木葬花    时间: 2014-2-12 15:00
非常感谢楼主的福利!
作者: xiaoguozi    时间: 2014-2-22 17:57
lingo处理一些问题的能力超强啊,有时候比matlab也强啊
作者: 空木葬花    时间: 2014-3-4 20:01
非常感谢楼主的福利!
作者: 空木葬花    时间: 2014-3-4 22:07
非常感谢楼主的福利!
作者: tumi10    时间: 2014-3-20 13:04
赞赞赞赞赞赞赞赞
作者: 飞翔的大白菜3    时间: 2014-4-2 08:12
不错。以后大家多多交流!!!
作者: 海贼王海贼王    时间: 2014-4-6 18:28
好东西,顶一下
作者: zr_sdu    时间: 2014-4-17 21:29
赞啊超级赞啊
作者: zzc799412032    时间: 2014-4-17 22:16
楼主,太强大了 ,同为数模人,希望能有机会交流,另求楼主lingo的安装文件!小弟qq799412032.在此谢过!
作者: wujianjack2    时间: 2014-4-17 22:34
zzc799412032 发表于 2014-4-17 22:16
楼主,太强大了 ,同为数模人,希望能有机会交流,另求楼主lingo的安装文件!小弟qq799412032.在此谢过!

   http://www.madio.net/thread-190400-1-1.html
   http://www.madio.net/thread-205095-1-1.html

   谢谢支持!
   如今我不做版主了,自己以后来论坛时间很少,希望我留下的这点资源能够帮助你。
作者: Summer's_Dream    时间: 2014-4-17 22:43
还不错哦。。。。。。
作者: 添奇学生    时间: 2014-4-18 21:28
嗯嗯,很不错
作者: 情未央    时间: 2014-4-28 13:17
非常感谢楼主!
作者: 情未央    时间: 2014-4-28 13:24
非常感谢楼主!
作者: cuiweieee    时间: 2014-4-28 18:45
学点东西真费劲。
作者: cuiweieee    时间: 2014-4-28 18:46
学点东西真费劲。
作者: 刘氏金枝陈    时间: 2014-5-3 14:04
加油加油加油加油加油加油加油加油加油加油加油加油
作者: 刘氏金枝陈    时间: 2014-5-3 14:05
加油加油加油加油加油加油加油加油加油加油加油加油
作者: 刘氏金枝陈    时间: 2014-5-3 14:14
加油加油加油加油加油加油加油加油加油加油加油加油加油加油加油加油
作者: 情未央    时间: 2014-5-5 00:28
非常感谢楼主!
作者: 情未央    时间: 2014-5-5 00:28
非常感谢楼主!
作者: 空木葬花    时间: 2014-5-5 00:30
非常感谢楼主!
作者: ecology2008    时间: 2014-5-5 12:51
谢谢楼主的分享,学习了。
作者: 情未央    时间: 2014-5-7 00:14
非常感谢楼主!
作者: lt1210    时间: 2014-5-9 13:45
收藏,学习
lingo14破解版可有啊,想体验一下新版本呢,下了好几个都是拿lingo11骗人的,86622398@qq.com,谢谢各位大侠了
作者: TaskForce    时间: 2014-5-12 13:02
感谢版主^_^
作者: 格莱德182    时间: 2014-5-14 17:00

作者: DAVID_WHM    时间: 2014-5-21 19:35
刚入门数学建模,求指导
作者: zhydw317    时间: 2014-5-25 12:35
这么好
作者: zhydw317    时间: 2014-5-25 12:36
这么好
作者: zhydw317    时间: 2014-5-25 12:36
这么好

作者: zhydw317    时间: 2014-5-25 12:36
这么好
作者: zhuhui2013    时间: 2014-5-25 23:48
好好好 !!!!!
作者: 驭风影舞    时间: 2014-6-8 15:26
这么牛逼 楼主厉害
作者: yk3066    时间: 2014-7-5 23:54
不明觉厉  
作者: psychopath    时间: 2014-7-8 14:32
给楼主点赞!!!!!!
作者: Michael01    时间: 2014-7-8 21:38
路过。。。。。。。。
作者: Michael01    时间: 2014-7-8 21:38
看看,,,,
作者: Michael01    时间: 2014-7-8 21:38
不错。。。。。
作者: Michael01    时间: 2014-7-8 21:39
赞一个,,
作者: 梦想之间    时间: 2014-7-12 18:21
很厉害的样子
作者: 弘道    时间: 2014-7-26 13:54
谢谢!!!!!!!!!!!!!!!
作者: 弘道    时间: 2014-7-27 00:23
挺好的 楼主辛苦了
作者: 奥霸马2014    时间: 2014-8-1 11:44
谢谢楼主分享。。。。。
作者: 麦咭    时间: 2014-8-2 14:30

作者: 麦咭    时间: 2014-8-2 14:30

作者: Here小帅    时间: 2014-8-3 18:53
lingo虽然不及matlab,规划上真心厉害
作者: 模天大楼    时间: 2014-8-10 16:24
收下了O(∩_∩)O~
作者: 空木葬花    时间: 2014-8-16 16:31
非常感谢楼主!
作者: 空木葬花    时间: 2014-8-16 16:39
非常感谢楼主!
作者: 空木葬花    时间: 2014-8-16 16:40
非常感谢楼主!
作者: zhangdewei62377    时间: 2014-8-17 12:26
感觉资料不错
作者: kedi87135    时间: 2014-8-17 16:32
顶一哈,学习了!!!!!!!!!!
作者: impluse007    时间: 2014-8-17 16:37
楼主好牛,看了好久才明白一点,lingo菜鸟学习中
作者: 赵小力    时间: 2014-8-17 16:41
楼主好人一生平安
作者: 雾锁关中    时间: 2014-8-18 22:24
lingo貌似不难啊,但是真正学的时候也不那么简单
作者: chenjinxiong    时间: 2014-8-20 22:51
太给力了。
作者: 樊朋朋    时间: 2014-8-22 14:47
好难懂呀。。。
作者: 樊朋朋    时间: 2014-8-22 14:47
楼主顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: 樊朋朋    时间: 2014-8-22 14:47
谢谢分享。
作者: plusone    时间: 2014-8-22 19:52
顶楼主!!!!!!!!!!!!
作者: 767841020    时间: 2014-8-25 20:23
这对于LINGO初学者来说很难把握啊

作者: Mr.zeng    时间: 2014-8-26 22:32
感谢。。。。。。。。。。。。。。。。。
作者: 小苹果°ヾ    时间: 2014-8-27 17:28

作者: 流雨星月    时间: 2014-8-31 14:39
顶一个。。。。
作者: zzx6155    时间: 2014-9-9 21:11
这么多体力啊 哈哈  我是来学习的
作者: z919953051    时间: 2014-9-9 21:44
我想知道咋获得体力值。虽然我看不太懂那个外国先生说的话。。。
作者: 屋外的雪    时间: 2014-9-15 09:15
感谢楼主精彩演示,楼主大材啊
作者: wangrui2014    时间: 2015-1-26 14:38
学习了,lingo确实强大

作者: buaaflylc    时间: 2015-2-1 21:29
线性优化用它的确不错

作者: 我叫纪坑坑    时间: 2015-7-21 01:16
因为解非常非常小吗,今天上课也遇到类似问题,不过不是在求解中,是限定条件。

作者: 我叫纪坑坑    时间: 2015-7-21 01:26
我是在限定条件中,老师说lingo没有定义不等于,l例如,要使a*b不等于0在lingo不能直接实现,而如果a*b等于一个极小的数,lingo就认定a*b=0了,为防止这种情况,可以令@abs(a*b)>=10^(-100),转个弯解决不等于0.    不知道这种情况是不是类似。。

作者: colinwang    时间: 2015-8-16 10:21
赞,,,,,,,,,,

作者: 拿着菜刀砍蛆    时间: 2016-1-28 17:04
求体力啊!!!!!!

作者: myron_lee    时间: 2016-3-16 16:49
这论坛怎么没人讨论lingo api在第三方高级编译语言的一些知识点啊,难道都是直接在lingo上写然后求解看结果吗?我觉得真正发挥价值,提高系统友好性还得跟业务系统集成整合。

作者: xiangbeihai    时间: 2017-3-8 13:07
不错不错!!!!!!!





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