Итак, принимая тривиальную задачу, test.lp
Maximize
obj: b1 + b2
Subject To
c1: + 2 b1 + 2 b2 <= 3
Binary
b1 b2
End
Имеет сразу очевидный ответ, что либо b1, либо b2 должно быть 1, а остальные 0.
Я могу запустите SoPlex
как:
soplex --lpfile test.lp -X -x
, который выдает:
SoPlex status : problem is solved [optimal]
Solving time (sec) : 0.00
Iterations : 1
Objective value : 1.50000000e+00
Primal solution (name, value):
b1 5.0000000000000000e-01
b2 1.0000000000000000e+00
Что ясно, что это "нормализовало" проблему делив все на 2 (как вы можете видеть, цель равна 1,5, а не 3, и она возвращает решение, b1 равно 0,5 вместо 1).
Поэтому мой вопрос заключается в том, как вывести фактическое решение переменной. Желательно в своем собственном файле. Кажется, это было бы действительно очевидно, но я не могу ничего найти после нескольких часов поиска и экспериментов!