Как установить ограничение на время, прошедшее за игрой

Мы используем resLim, чтобы установить ограничение на прошедшее время в операторах решения. Есть ли способ установить ограничение по времени на общее время выполнения игрового кода, который содержит несколько операторов решения в циклах. Я думал, что, может быть, если это будет делать, но это не помогает.

tii=TimeElapsed;
if(tii>10000, stop loops;)

person mohammad reza sourati    schedule 08.08.2020    source источник


Ответы (1)


Для этого можно использовать etLim.

person Lutz    schedule 08.08.2020
comment
Спасибо, это то, что я хочу, но все еще не могу использовать это. я пробовал 1) установить etLim 100; 2) опция etLim=100; 3) попробуйте панель команд. также в документации по играм нет четкой информации об этой опции. не могли бы вы, как именно его использовать? - person mohammad reza sourati; 09.08.2020
comment
Я использовал gams myfile.gams etlim 400, gams myfile.gams etlim 400, но не повезло - person mohammad reza sourati; 09.08.2020
comment
В документации написано «Доступно: командная строка», так что то, что вы пробовали, должно действительно работать. Обновлена ​​ли ваша версия GAMS (версия 32.1.0)? Что значит не повезло? Любое конкретное сообщение в журнале и/или файле lst? - person Lutz; 10.08.2020
comment
Привет, спасибо за ваш ответ, я использую GAMS 24.1.2, в документации этой версии существует именно опция etLim. к сожалению, я имею в виду, что ограничение по времени, которое я установил на etLim, не действует, и игры работают за пределами этого ограничения по времени. в файле журнала нет никаких признаков опции etLim. - person mohammad reza sourati; 11.08.2020
comment
В старых версиях etLim не влиял на reslim для конкретного решения, поэтому, если etLim будет превышен во время работы решателя, решатель не будет прерван, но после этого выполнение будет остановлено. Это было изменено в GAMS 32. Это из примечаний к выпуску (gams.com/ 32/docs/RN_32.html#g3210_GAMS): расширено влияние параметра командной строки etLim, чтобы он уменьшал resLim для моделей, решаемых автоматически, если он больше, чем etLim - timeElapsed. - person Lutz; 11.08.2020
comment
вы совершенно правы, это проблема. Спасибо за ваше время и помощь. - person mohammad reza sourati; 12.08.2020