楼主: yeyangever
1885 1

[问答] 用Proc LP 做optimization, 解出来的值在lower bound以外,可程序并没有报错,求高手 [推广有奖]

  • 0关注
  • 0粉丝

大专生

81%

还不是VIP/贵宾

-

威望
0
论坛币
16467 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
362 点
帖子
45
精华
0
在线时间
80 小时
注册时间
2010-8-29
最后登录
2019-2-21

楼主
yeyangever 发表于 2014-4-4 11:09:58 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
大家好,在使用 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的话,又会有另外两个原来正常的变量取成负值。

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

万分感谢!
二维码

扫码加我 拉你入群

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

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

关键词:Optimization ATION Optim Bound lower 程序

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

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-3 19:22