Я использую оптимизатор IBM cplex для решения проблемы оптимизации, и я не хочу, чтобы все распечатывания терминалов выполнялись оптимизатором. Есть ли член, который отключает это в классе IloCplex или IloModel? Это отпечатки о разрезах и итерациях. Распечатки на терминале дороги, и моя проблема в конечном итоге будет порядка миллионов переменных, и я не хочу тратить время на эти излишние результаты. Спасибо.
Как сделать cplex не выводимым на терминал
Ответ 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)