Pyomo中是否有一种方法可以控制目标函数中有效位数的数量以及发送到求解器的约束矩阵系数?
在我的情况下,目标的形式和问题数据可从文件中获取或在程序中创建,然后顺序解决所产生的问题。结果,使用舍入功能或十进制程序包只能部分地控制有效数字的数量。理想情况下,Pyomo中的某些全局方法将能够控制最终模型中的有效位数,该最终模型会以LP文件的形式发送到求解器。
答案 0 :(得分:0)
您正在使用哪个求解器。例如IP-OPT有许多设置。这两个可以帮助您:
tiny_step_tol 0 <= (2.22045e-15) < +inf
Tolerance for detecting numerically insignificant steps.
If the search direction in the primal variables (x and s) is, in relative
terms for each component, less than this value, the algorithm accepts the
full step without line search. If this happens repeatedly, the algorithm
will terminate with a corresponding exit message. The default value is 10
times machine precision.
tiny_step_y_tol 0 <= ( 0.01) < +inf
Tolerance for quitting because of numerically insignificant steps.
If the search direction in the primal variables (x and s) is, in relative
terms for each component, repeatedly less than tiny_step_tol, and the
step in the y variables is smaller than this threshold, the algorithm
will terminate.
要使用它们,您需要在工作目录的ipopt.opt
文件中设置它们的新值。