Нам дана проблема, которая требовала минимизации стоимости еды для студента. Она должна иметь калории (2000 ккал), белок (55 г) и кальций (800 мг). и есть шесть видов пищи в общей сложности. Мы должны решить эту проблему с помощью пакета Python CVXPY. Вот мой код, но он возвращает ошибку ValueError: Cannot broadcast dimensions (3,) (3, 1)
. Вот код моей матрицы.
A=np.array([[110,205,160,160,420,260],[4,32,13,8,4,14],[2,12,54,285,22,80])
//Note:A is the matrix with the contents of all the foods//
b=np.array([[2000,55,800]])
//Note: b represents the desired value for calories, protein and calcium.//
c=np.array([[3,24,13,9,20,19]])
//Note c represents the price of the 6 types of food. //
Был добавлен дополнительный критерий, когда требовалась максимальная порция каждого вида пищи. и мой код для этого выглядел так:
d= np.array([[4,3,2,8,2,2]])
x_vec = cp.Variable(6)
//where d represented the max serving constraints on each of the six types of foods.//
Наконец, я должен написать код для минимизации и решения проблем, которые по какой-то причине просто не работают
matrix_prob = cp.Problem(cp.Minimize(cp.sum(c.T @ x_vec)),
constraints=[A@x_vec <= b, x_vec <= d])
//Note:here I minize the sum of matrix c while considering the constraints of b and d.//
matrix_solution = matrix_prob.solve()
print('Optimal value (matrix form): {:.4f}'.format(matrix_solution))