Я пытаюсь реализовать этот LP в CVXPY:
, но я пытаюсь найти эффективный способ реализации первого ограничения здесь. Единственный способ, который я нашел, это работает - это добавлять каждую сумму в качестве своего собственного ограничения, но оно быстро увеличивается в размере по мере увеличения размера проблемы. Есть ли более простой / более эффективный способ указать это ограничение?
import cvxpy as cp
import numpy as np
n_j = 10
n_i = 100
a = cp.Variable(n_j, nonneg=True)
b = cp.Variable(n_i, nonneg=True)
g = np.random.randint(low=1, high=10, size=n_j)
v = np.random.normal(size=(n_i, n_j))
obj = cp.Minimize(cp.sum(cp.multiply(g, a)) + cp.sum(b))
constraints = [a[j] + b[i] >= values[i, j]
for j in range(n_j) for i in range(n_i)]
prob = cp.Problem(obj, constraints)
prob.solve()