如何解释cvxopt.solvers.qp的结果?

时间:2015-06-08 22:43:08

标签: convex-optimization cvxopt

没有足够的文档,我的数学知识有限。

模型

sol = solvers.qp(P=P, q=q,G=G,h=h, A=L, b=t)

    pcost       dcost       gap    pres   dres
0:  6.3316e+08  6.3316e+08  7e+00  3e+00  7e-10
1:  6.3316e+08  6.3316e+08  2e+00  1e+00  3e-10
2:  6.3316e+08  6.3316e+08  2e+00  1e+00  3e-10
3:  1.3393e+10 -3.5020e+09  2e+10  9e-01  2e-10
4:  7.6898e+08 -1.7925e+10  4e+10  8e-01  2e-10
5:  2.1728e+09 -3.8363e+09  6e+09  6e-16  2e-14
6:  2.1234e+09  2.0310e+09  9e+07  2e-16  3e-16
7:  2.0908e+09  2.0899e+09  1e+06  1e-18  2e-16
8:  2.0905e+09  2.0905e+09  1e+04  7e-21  9e-17
9:  2.0905e+09  2.0905e+09  1e+02  2e-16  3e-16
Optimal solution found.

结果

{'dual infeasibility': 2.538901219845834e-16,
 'dual objective': 2090476416.743256,
 'dual slack': 59.256743485146764,
 'gap': 95.35084344459145,
 'iterations': 9,
 'primal infeasibility': 2.220446049250331e-16,
 'primal objective': 2090476512.0941,
 'primal slack': 1.0136346108956689e-08,
 'relative gap': 4.561201584523881e-08,
 's': <2x1 matrix, tc='d'>,
 'status': 'optimal',
 'x': <2x1 matrix, tc='d'>,
 'y': <1x1 matrix, tc='d'>,
 'z': <2x1 matrix, tc='d'>}

我怎样才能将s,x,z与我变量的结果联系起来?

如果我打印s和x,我总会得到接近1的东西和接近0的东西,这似乎无限错误。

>>> np.array(sol['x'])
>>> array([[  9.99999990e-01],[  1.01363461e-08]])

1 个答案:

答案 0 :(得分:0)

我认为斯坦福大学的short text可能对您有所帮助。突出显示有关结果的引用部分:

  

可以从sol变量中提取有关溶液的许多属性>   (字典)。   特别是,“状态”,“ x”和“主要目标”可能是最重要的。如果状态是最优的,则后两者给出最优解,并给出其目标   值。您可以像使用常规Python词典一样访问这些字段:

documentation还提供了深入的说明。要了解结果,请转到第69页