当我尝试使用python中cvxopt包中的solvers.qp解决二次规划问题时,它会在几秒后杀死我的内核。
该软件包的文档位于http://cvxopt.org/userguide/coneprog.html#cvxopt.solvers.qp。如果我从该页面运行示例代码:
from math import sqrt
from cvxopt import matrix
from cvxopt.solvers import qp
# Problem data.
n = 4
S = matrix([[ 4e-2, 6e-3, -4e-3, 0.0 ],
[ 6e-3, 1e-2, 0.0, 0.0 ],
[-4e-3, 0.0, 2.5e-3, 0.0 ],
[ 0.0, 0.0, 0.0, 0.0 ]])
pbar = matrix([.12, .10, .07, .03])
G = matrix(0.0, (n,n))
G[::n+1] = -1.0
h = matrix(0.0, (n,1))
A = matrix(1.0, (1,n))
b = matrix(1.0)
# Compute trade-off.
N = 100
mus = [ 10**(5.0*t/N-1.0) for t in range(N) ]
portfolios = [ qp(mu*S, -pbar, G, h, A, b)['x'] for mu in mus ]
大约2秒钟后,我从python收到以下回复:
内核似乎意外死亡。使用'重启内核'继续使用此控制台。
内核似乎意外死亡。使用'重启内核'继续使用此控制台。
内核似乎意外死亡。使用'重启内核'继续使用此控制台。
...
我也不明白这个[' x']选项是什么。但即使我离开它,它也会给我带来意想不到的'内核的死亡。我也试过qp问题肯定有解决方案。像没有约束或非负性约束的x ^ 2 + y ^ 2 ...我做什么,它杀死了我的内核。可能是什么问题?
也许重要的是,
答案 0 :(得分:0)
您可以从终端运行脚本以解决此错误。
当我收到此错误时,原因是Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so
。
我使用conda这是我的解决方案:
conda config --add channels conda-forge
conda install -f cvxopt