Я просто проверить простую задачу линейного программирования с scipy.optimize.linprog:Линейное программирование с scipy.optimize.linprog
1*x[1] + 2x[2] -> max
1*x[1] + 0*x[2] <= 5
0*x[1] + 1*x[2] <= 5
1*x[1] + 0*x[2] >= 1
0*x[1] + 1*x[2] >= 1
1*x[1] + 1*x[2] <= 6
И получил очень странный результат, я ожидал, что х [1] будет быть 1 и х [2] будет 5, но:
>>> print optimize.linprog([1, 2], A_ub=[[1, 1]], b_ub=[6], bounds=(1, 5), method='simplex')
status: 0
slack: array([ 4., 4., 4., 0., 0.])
success: True
fun: 3.0
x: array([ 1., 1.])
message: 'Optimization terminated successfully.'
nit: 2
Может кто-нибудь объяснить, почему я получил этот странный результат?
Ну, это не так уж странно, больше, когда вы понимаете, что 'linprog 'фактически сводит к минимуму :) – cel