作者LPH66 (かつて交わした约束)
看板Programming
标题Re: [问题] Gurobi无法允许负值
时间Sun May 7 17:24:37 2017
※ 引述《st880517 ()》之铭言:
: 他会显示:Q Matrix is not Postive Semi-definitive (PSD)
这一行错误讯息是元凶↑
一般来说这种二次规划的函式库只会支援正定矩阵的规划问题
这是因为非正定矩阵的规划问题是 NP-hard
也就是基本上没有很好的演算法能做得出来
(这比 NP-Complete 还惨喔, NP-hard 是你连给你一个解你都很难确定那个解对不对)
那麽你就必须要对你的规划问题的数学型式有所了解
是否你的问题的某个条件能够加以改变以将矩阵变成正定
而这需要你对线性代数有些基本的了解才行
(就连「正定矩阵」这个词也是从线性代数来的,
所以你就连要了解错误在什麽地方也需要有线性代数的知识)
你现在是因为加入了某个条件後发生问题
那可能可以往那个条件本身或与其相关的一些条件做调整
但这都需要一点线性代数的底子, 不是随随便便乱调就有用的
--
将很小又单纯的
命令《Code》组合成
函数《Function》。函数累积成更大更方便的
元件《
Parts》,成为
程式《App》。接着进行动态结合,相互通讯,打造出
服务《Service》。
李奥纳多知道,要得到结果,就必须持续进行非常单纯的作业。
为了展现出匹敌巨大建筑
的技术,现在非得将面前的碎片组合起来。
知道这条路多麽遥远的人,叫做
极客《Geek》。
将这份尊贵具体呈现的人,叫做
骇客《Hacker》。 --记录的地平线 Vol.9 p.299
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.177.29.238
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Programming/M.1494149080.A.BEC.html
1F:推 st880517: 感谢大师解惑,本身研究的问题是属於NP- 58.114.163.173 05/07 18:21
2F:→ st880517: Hard...目前是有想过很多方式改变限制 58.114.163.173 05/07 18:21
3F:→ st880517: 式,但都Unfeasible.. 58.114.163.173 05/07 18:21
4F:→ st880517: 不过照您这样说,Gurobi是无法解Np -Har 58.114.163.173 05/07 18:44
5F:→ st880517: d问题罗? 58.114.163.173 05/07 18:44
我想你可能还没理解 NP-hard 多严重
以应用的角度来看, NP-Complete 和 NP-hard 代表现在没人能给你一个能用的程式解决
也就是说, 虽然我自己没有深入研究, 但应该是可以说不只这一套
现在世上应该没有哪一套函式库能解决这个问题
如果你的 QP 只有限定特定状况的话我会觉得往改变规划条件的方向去试会比较有机会
或许当你把你的原问题做一些变化之後是可以变成正定矩阵的 QP 的
如果硬要正面突破的话, 方法只剩下把所有变数的所有状况都算出来再来比较谁最好了
如果你愿意花这个 (很容易就指数成长的) 时间是可以写一支程式来帮你试就是了啦...
※ 编辑: LPH66 (180.177.29.238), 05/07/2017 20:36:36
6F:推 lc85301: 我还记得演算法课本有说到类似 60.250.111.125 05/12 13:56
7F:→ lc85301: 如果遇到NP 问题,不要试着去解它 60.250.111.125 05/12 13:56
8F:→ lc85301: 试试Approximate 解,或者跳过这个问题 60.250.111.125 05/12 13:56