У меня есть большая система линейных неравенств, которую я пытаюсь решить в python, в идеале с неотрицательными целыми числами.
Например: ![enter image description here](https://i.stack.imgur.com/YQ06H.png)
У меня есть матрица A размера (1000 * 700) и матрица b размера (700), где каждая строка в системе установить так, чтобы A *C <= b. Я пытаюсь решить для C. Несколько онлайн-решений включают модуль оптимизации Scipy, однако для этого требуется функция оптимизации. Попытка поставить все 0 для коэффициентов в функции оптимизации и ввести ограничения как систему неравенств дает мне решение, которое является неправильным. Я записал часть своего кода ниже. </p>
from scipy.optimize import linprog
coefficients_min_y = [0] * len(A[0])
res = linprog(coefficients_min_y, A_ub=A, b_ub=b, bounds=(0, None))
if res.success:
coefficients = res.x
else:
print("Solution is infeasible")
matrixMult = np.dot(A, coefficients)
Учитывая, что linprog выводит выполнимое решение, я использую matrixMult, чтобы проверить, удовлетворяет ли решение условиям. Однако это не решает правильно. Это из-за функции оптимизации или я что-то не так делаю.