问题描述
我正在尝试使用 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 (将#修改为@)