2023-12-13 22:25:18 +04:00
|
|
|
|
import numpy as np
|
|
|
|
|
import scipy.optimize as sp
|
|
|
|
|
|
|
|
|
|
# Целевая функция - коэффициенты y1, y2, y3 , y4 соответственно
|
|
|
|
|
obj = [18, 16, 5, 21]
|
|
|
|
|
# Левая сторона неравенств т.к. библитека не умеет работать со знаком >=, то умножаем неравенства на -1.
|
|
|
|
|
A = [[-1, -2, 0, -3], [-3, -1, -1, 0]]
|
|
|
|
|
B = [-2, -3]
|
|
|
|
|
# Границы y
|
|
|
|
|
bnd = [(0, None), (0, None), (0, None), (0, None)]
|
|
|
|
|
# Результат
|
|
|
|
|
res = sp.linprog(obj, A_ub=A, b_ub=B, bounds=bnd, method='highs', options={"disp": True})
|
|
|
|
|
print(f"Оптимальное значние целевой функции L* = {res.fun}")
|
|
|
|
|
print(f"Оптимальный план X* = {res.x}")
|