Решение CVXPY Matrix Optimization Линейное программирование

Я пытаюсь найти идеальную матрицу X в следующей линейной программе:

X = N по матрице T, которая является нашей переменной. Для простоты давайте установим N на 4 и T на 3.

X_column_sum = 1 по матрице T, где каждое значение столбца является суммой всех значений соответствующего столбца в X

R = N на 1 матрицу со случайно определенными значениями

G = константа (давайте установим 100 для простоты)

d = 1 по матрице T, значения которой принимают в диапазоне [0, G-1]

P = 1 по матрице T, равной X_column_sum + d

C = X с точками P

Я хочу минимизировать сумму записей C, сохраняя при этом следующие ограничения:

  • все значения в X должны быть>= 0
  • сумма всех значений в каждой соответствующей строке X должна быть, по крайней мере, равна соответствующему значению в R

Я попробовал следующий код, используя cvxpy в Python, но безрезультатно:

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.

0 ответов

Другие вопросы по тегам