Как сделать 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)