CVXPY数值不稳定性

时间:2020-08-12 18:13:09

标签: python cvxpy

我注意到,如果您将目标乘以零,则会大大影响解决方案。我在我无法上传的数据集上使用cvxpy时发现了此错误。但这是他们官方资源中的一个示例:https://www.cvxpy.org/examples/basic/sdp.html

import cvxpy as cp
import numpy as np

# Generate a random SDP.
n = 3
p = 3
np.random.seed(1)
C = np.random.randn(n, n)
A = []
b = []
for i in range(p):
    A.append(np.random.randn(n, n))
    b.append(np.random.randn())

# Define and solve the CVXPY problem.
# Create a symmetric matrix variable.
X = cp.Variable((n,n), symmetric=True)
# The operator >> denotes matrix inequality.
constraints = [X >> 0]
constraints += [
    cp.trace(A[i] @ X) == b[i] for i in range(p)]

prob = cp.Problem(cp.Minimize(cp.trace(C @ X)),
              constraints)
prob.solve()

# Print result.
print("The optimal value is", prob.value)
print("A solution X is")
print(X.value)

现在做同样的事情,但是要改变

prob = cp.Problem(cp.Minimize(cp.trace(C @ X) + 0*cp.trace(C @ X)**9),
              constraints)

您会看到X的值将会改变。

0 个答案:

没有答案
相关问题