Python 参数*范数下DCP规则的CVXPY问题
我最近发现了cvxpy包,并尝试将其用于一个非常基本的最小化问题。 但在初始化凸问题时,我总是得到一个无法解释的DCP错误Python 参数*范数下DCP规则的CVXPY问题,python,cvxpy,convex-optimization,Python,Cvxpy,Convex Optimization,我最近发现了cvxpy包,并尝试将其用于一个非常基本的最小化问题。 但在初始化凸问题时,我总是得到一个无法解释的DCP错误 x=变量(m) gamma=参数(值=1.0) 成本=平方和(np.转置(A_形)*x-b_实)+伽马*范数(x,1) obj=最小化(成本) constr=[np.转置(A_形)*x=b_实-abs(b_实*eps)] prob=问题(obj,CONTR) 打印(问题是\u dcp()) 所有参数如m、A_形、b_实和eps都在前面定义 我的问题: 每当我在成本声明中使
x=变量(m)
gamma=参数(值=1.0)
成本=平方和(np.转置(A_形)*x-b_实)+伽马*范数(x,1)
obj=最小化(成本)
constr=[np.转置(A_形)*x=b_实-abs(b_实*eps)]
prob=问题(obj,CONTR)
打印(问题是\u dcp())
所有参数如m、A_形、b_实和eps都在前面定义
我的问题:
每当我在成本声明中使用参数gamma并想要解决它时,cvxpy告诉我问题不符合DCP规则,这是因为子表达式param123*norm124。
当我用1.0替换gamma或删除它时,我没有得到这个错误,prob.is_dcp()返回True,这我无法解释,因为我用值1.0初始化gamma
如果您需要更多信息,请随时询问,并提前表示感谢 好吧,我找到了解决方案:
我只测试了将参数的参数nonpos设置为False,但没有帮助。我不知道的是,还有参数nonneg,然后我将其设置为True,现在DCP分析也返回True。好的,我找到了解决方案: 我只测试了将参数的参数nonpos设置为False,但没有帮助。我不知道的是,还有一个参数nonneg,我将它设置为True,现在DCP分析也返回True