Я пытался переписать ваш код:
import cvxpy as cp
import numpy as np
c = np.array([[3,11,18,22],
[12,3,12,19],
[15.5,13,5,7],
[24,18,8,5]])
C=1200
O=[400,460,400,702]
D=[260,400,500,802]
L=4
K=4
x = cp.Variable((K, L),pos=True) #pos AS X is allowed to be zero in your last constraint
obj = cp.Maximize(cp.sum(cp.entr(x)))
#error
constraints=[]
for j in range (L):
constraints += [cp.sum(x,axis=0)==O[j]] #Assign all the sum of columns to be equal O
for i in range (L):
constraints += [cp.sum(x,axis=1)==D[j]] #Assign all the sum of rows to be equal D
constraints+= [ (cp.sum(cp.multiply(c,x)) == C)] # The sum of dot product of the c,x matrix equal to C
prob = cp.Problem(obj, constraints)
prob.solve()
print("\nThe optimal value is:", prob.value)
print('\nThe optimal solution is:')
print(x.value)
К сожалению, он возвращает:
Оптимальное значение: -inf
Оптимальное решение:
Нет
Я не уверен, что константы в вашем примере должны сходиться к решению. В любом случае, я надеюсь, что вы можете взять это отсюда.