2017-01-10 11 views
0

Я использую Java API программного обеспечения для оптимизации CPLEX. После того, как решатель завершает оптимизацию, она выводит решение и параметры LP, а также:Печать CPLEX устраняет строки, столбцы и подстановки

MIP Presolve eliminated 282 rows and 230 columns. 
Aggregator did 14 substitutions 

Как наблюдать эти устранены строки и столбцы? Есть ли встроенная функция в API?

ответ

1

Вы можете получить доступ к модели с разрешенной/уменьшенной версией с помощью API C, но вы не можете использовать Java API или Concert в целом. В Java API есть PresolveCallback, но это не так удобно использовать (т. Е. Он вызывается несколько раз во время решения, и вы не обязательно знаете, какой вызов вам нужен). Возможно, стоит посмотреть быстро, если это соответствует вашим потребностям.

Другой способ получения этой информации - перенаправить журнал CPLEX в собственный поток (используя метод setOut) и проанализировать строки, которые выглядят так: «MIP Presolve исключает XXX строки и XXX столбцы». Вы можете найти примеры этого here и here. Это скорее общий метод программирования Java (не связанный с CPLEX), поэтому я не буду пытаться предоставить дополнительные фрагменты кода для этого здесь.