使用 cvxpy 设置二次程序优化时出现维度错误

问题描述

我正在尝试使用 cvxpy 设置一个简单的二次程序优化:

import numpy as np
import cvxpy as cp

sigma = np.array([[0.000234,0.000167],[0.000167,0.00030]])

ret = np.array([0.06,0.04])

x = cp.Variable(2)

prob = cp.Problem(cp.Maximize(ret.T @ x - (1/2) * cp.quad_form(x,sigma)),[cp.sum(x) == 1,x >= 0])
prob.solve()

但是,我收到以下错误:

Traceback (most recent call last):
  File "C:\Users\fidahur\AppData\Local\Programs\Python\Python37\lib\site-packages\IPython\core\interactiveshell.py",line 3296,in run_code
    exec(code_obj,self.user_global_ns,self.user_ns)
  File "<ipython-input-82-4582a2312a0a>",line 12,in <module>
    prob.solve()
  File "C:\Users\fidahur\AppData\Local\Programs\Python\Python37\lib\site-packages\cvxpy\problems\problem.py",line 395,in solve
    return solve_func(self,*args,**kwargs)
  File "C:\Users\fidahur\AppData\Local\Programs\Python\Python37\lib\site-packages\cvxpy\problems\problem.py",line 744,in _solve
    solver,gp,enforce_dpp)
  File "C:\Users\fidahur\AppData\Local\Programs\Python\Python37\lib\site-packages\cvxpy\problems\problem.py",line 524,in get_problem_data
    data,inverse_data = solving_chain.apply(self)
  File "C:\Users\fidahur\AppData\Local\Programs\Python\Python37\lib\site-packages\cvxpy\reductions\chain.py",line 71,in apply
    problem,inv = r.apply(problem)
  File "C:\Users\fidahur\AppData\Local\Programs\Python\Python37\lib\site-packages\cvxpy\reductions\qp2quad_form\qp_matrix_stuffing.py",line 263,extractor)
  File "C:\Users\fidahur\AppData\Local\Programs\Python\Python37\lib\site-packages\cvxpy\reductions\qp2quad_form\qp_matrix_stuffing.py",line 247,in stuffed_objective
    params_to_P,params_to_q = extractor.quad_form(expr)
  File "C:\Users\fidahur\AppData\Local\Programs\Python\Python37\lib\site-packages\cvxpy\utilities\coeff_extractor.py",line 198,in quad_form
    P = sp.block_diag([P,coeffs[var_id]['P']])
  File "C:\Users\fidahur\AppData\Local\Programs\Python\Python37\lib\site-packages\scipy\sparse\construct.py",line 693,in block_diag
    data = np.concatenate(data)
  File "<__array_function__ internals>",line 6,in concatenate
ValueError: all the input arrays must have same number of dimensions,but the array at index 0 has 1 dimension(s) and the array at index 1 has 2 dimension(s)

任何帮助将不胜感激。谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...