我正在尝试在以下线性程序设置中求解理想矩阵 X:
X = N by T 矩阵,这是我们的变量。为简单起见,我们将 N 设置为 4,将 T 设置为 3。
X_column_sum = 1 by T 矩阵,其中每列值是 X 中对应列的所有值的总和
R = N x 1 矩阵,具有随机确定的值
G = 常数(为简单起见,我们设置为 100)
d = 1 × T 矩阵,其值在 [0, G-1] 范围内
P = 1 × T 矩阵等于 X_column_sum + d
C = X 点缀着 P
我想最小化 C 的条目总和,同时保留以下约束:
- X 中的所有值都必须 >= 0
- X 的每个对应行中所有值的总和必须至少等于 R 中的对应值
我在 python 中使用 cvxpy 尝试了以下代码,但无济于事:
from cvxpy import *
X = Variable(N,T)
G = 100
d = np.random.randn(1, T)
d *= G-1
X_column_sum = cumsum(X,axis=0)
P = cost_matrix_cars + d
R = matrix([[10]]*N) # all set to 10 for testing
objective = Minimize(sum_entries(X@P)) #think this is good
constraints = [0 <= X, cumsum(X,axis=0) >= R]
prob = Problem(objective, constraints)
print("Optimal value", prob.solve())
print("Optimal X is",x.value ) # A numpy matrix.