全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1833 1
2014-04-04
大家好,在使用 proc LP 这个命令的时候碰到了奇怪的问题,求高手帮忙。
我用proc LP 做一个linear minimization, constraint 包括所有变量都有 upper bound, 数个线性的等式constraint, 还有所有变量的 Low bound=0,。

命令写的是最简单的,就是类似于
proc lp data= trial_t2  PRIMALOUT=optimal  MAXIT1=1000000 MAXIT2=100000 ;
id id;
type type;
rhs rhs;  run;
这种。

我碰到的问题是,他解出来之后,会得到小于0的变量值,也就是说已经低于我给的lower bound了。但是程序并不会报错说constraint infeasible 之类的,反而是说"terminated sucessfully". 而且,程序是认识我设的lower bound的。比如如果我把lower bound的值改成 0.00001,那绝大部分变量都会取值0.00001, 并且显示出是被lower bound 给binding了,但是仍旧会有两个变量取值负数,而且在status里显示出他没有被binding 住。就好像对这两个变量来说,lower bound 不存在似的。为什么会这样呢?我非常困惑。如果我把这两个负变量删除,重新做optimization的话,又会有另外两个原来正常的变量取成负值。

求高手帮助。我在网上查了好久了,也没发现解决方法。

万分感谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-4-4 16:05:41
附件一下,附件里就是我需要optimized的问题的数据,按照 proc LP 的格式写的。
谢谢大家!
附件列表

trial_t2.xlsx

大小:202.51 KB

 马上下载

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群