Как сделать так, чтобы cplex не выводился на терминал
Я использую оптимизатор IBM cplex для решения проблемы оптимизации, и я не хочу, чтобы все распечатки терминала выполнялись оптимизатором. Есть ли член, который отключает это в классе IloCplex или IloModel? Это отпечатки про разрезы и итерации. Печать в терминал стоит дорого, и моя проблема в конечном итоге составит порядка миллионов переменных, и я не хочу тратить время на эти лишние результаты. Благодарю.
1 ответ
Используя cplex/ концерт, вы можете полностью отключить ведение журнала cplex на консоли с помощью
cpx.setOut(env.getNullStream())
Где cpx - это объект IloCplex. Вы также можете использовать функцию setOut для перенаправления журналов в файл.
Существует несколько параметров cplex для управления тем, что регистрируется, например, MIPInterval устанавливает количество узлов MIP, ищущих между строками. Например, переключение MIPDisplay в 0 отключит отображение разрезов, за исключением случаев, когда будут найдены новые решения, причем MIPDisplay из 5 будет отображать подробную информацию о каждой подзадаче lp.
Параметры, связанные с ведением журнала, включают MIPInterval MIPDisplay SimDisplay BarDisplay NetDisplay
Вы устанавливаете параметры с помощью функции setParam.
cpx.setParam(IloCplex::MIPInterval, 1000)