调整求解器时间设置
(函数来自 pyomo.contrib.pyros.util)
- pyomo.contrib.pyros.util.adjust_solver_time_settings(timing_data_obj, solver, config)[source]
根据到目前为止PyROS求解器的总运行时间,调整允许的从属求解器的最大时间。
- Parameters:
timing_data_obj (Bunch) – PyROS 计时器。
solver (solver type) – 用于调整最大时间设置的从属求解器。
config (ConfigDict) – PyROS 求解器配置。
- Returns:
original_max_time_setting (float or None) – 如果使用IPOPT或BARON,则返回一个浮点数。 如果使用GAMS,则返回
solver的options.add_options属性。 否则,返回None。custom_setting_present (bool or None) – 如果使用IPOPT或BARON,如果指定了最大时间,则返回True,否则返回False。 如果使用GAMS,如果属性
options.add_options不为None,则返回True,否则返回False。 如果config.time_limit为None,则返回None。
注意
仅支持GAMS、BARON和IPOPT接口的调整。在引入通用的Pyomo接口以设置时间限制后,此例程可以推广到其他求解器。
对于IPOPT和BARON,可以调整CPU时间限制,而不是挂钟时间限制,因为可能没有明确指定挂钟时间限制的方法。
对于GAMS,我们通过GAMS Reslim选项调整时间限制。然而,这可能会被包含在GAMS optfile中的任何用户规范所覆盖,这可能难以追踪。
为了确保时间限制被指定为一个严格的正值,时间限制被调整到至少1秒。