Как отключить определенные сообщения в AMPL?

У меня есть сценарий AMPL, который включает многократный вызов «решить» в линейной программе. Я использую решатель MINOS. После каждого решения он выводит:

МИНОС 5.51:

"опция abs_boundtol 2.220446049250313e-16;" или "опция rel_boundtol 2.220446049250313e-16;" изменит выведенные двойственные значения.

Есть ли способ подавить это сообщение?

Я прочитал это в инструкции MINOS:

Для вызовов из команды решения AMPL или формы

минос заглушка...

(где stub.nl из опций вывода AMPL -ob или -og), вы можете использовать outlev= для управления количеством и видом вывода:

outlev=0 нет болтовни на stdout

outlev=1 сообщать только параметры на стандартный вывод

outlev=2 итоговый файл на стандартный вывод

Файл журнала outlev=3 на стандартный вывод, без решения

файл журнала outlev=4, включая решение, на стандартный вывод

что может быть актуально, но я этого не понимаю.

Я включил «optionsolver_msg 0;» в моем сценарии; он отключает объявление от MINOS о том, что он получил такое-то и такое-то оптимальное значение с таким-то количеством итераций, но это не влияет на сообщение, о котором я здесь спрашиваю.


person Water    schedule 21.03.2014    source источник


Ответы (2)


Вы можете перенаправить оставшийся вывод решателя на /dev/null (или эквивалент для вашей системы) следующим образом:

solve > /dev/null;

Что касается сообщения о abs_boundtol и rel_boundtol, я думаю, вы можете установить для них небольшое положительное значение, большее, чем 2.220446049250313e-16, чтобы сообщение исчезло. Обратите внимание, что это повлияет на двойные значения, вычисленные для предварительно решенных ограничений.

См. также https://groups.google.com/d/msg/ampl/ERJ8nF_LnNU/75yWK9deBjUJ

person vitaut    schedule 22.03.2014
comment
Это успешно перенаправляет строку MINOS 5.51:, но другие строки по-прежнему печатаются, как и раньше. Это наводит меня на мысль, что они печатаются AMPL, а не MINOS (что имеет смысл, если посмотреть, что они означают), но я до сих пор не могу понять, как их отключить. Спасибо хоть; Я не знал, что можно так перенаправить вывод решателя - очень удобно! - person Water; 22.03.2014
comment
@Water Вы правы, сообщение об опциях исходит от самого AMPL. Я обновил ответ. - person vitaut; 22.03.2014

для меня "опция show_boundtol 0;" работал. Вы можете попробовать это. По умолчанию это «опция show_boundtol 1;».

Вы можете прочитать об этом здесь (http://ftp.icm.edu.pl/packages/netlib/ampl/changes)

person Alok    schedule 08.04.2015