【问题标题】:cvxopt.solvers.qp in python causes the kernel to diepython中的cvxopt.solvers.qp导致内核死机
【发布时间】:2017-01-26 18:10:50
【问题描述】:

当我尝试使用 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 在没有约束或非负约束下......无论我做什么,它都会杀死我的内核。可能是什么问题?

也许重要的是要说,那

  • 我使用的是 Ubuntu 16
  • 我使用 Python 3.5
  • 我使用 cvxopt 1.1.9
  • 包 cvxopt 也使用 C 文件。

【问题讨论】:

    标签: python linux anaconda cvxopt


    【解决方案1】:

    您可以从终端运行脚本来获取此错误的原因。

    当我收到此错误时,原因是Intel MKL FATAL ERROR: Cannot load libmkl_avx2.so or libmkl_def.so。 我使用 conda,这就是我的解决方案:

    conda config --add channels conda-forge
    conda install -f cvxopt
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-03
      • 2018-10-05
      • 1970-01-01
      • 1970-01-01
      • 2016-01-03
      • 2021-06-11
      • 1970-01-01
      • 2022-08-03
      相关资源
      最近更新 更多