add_oa_cuts
(函数来自 pyomo.contrib.mindtpy.cut_generation)
- pyomo.contrib.mindtpy.cut_generation.add_oa_cuts(target_model, dual_values, jacobians, objective_sense, mip_constraint_polynomial_degree, mip_iter, config, timing, cb_opt=None, linearize_active=True, linearize_violated=True)[source]
添加OA切割。
生成并添加OA切割(线性化非线性约束)。 对于非凸问题,请开启‘config.add_slack’。 松弛变量将始终用于非线性等式约束。
- Parameters:
target_model (Pyomo 模型) – 松弛的线性模型。
dual_values (list) – 每个约束的对偶值。
雅可比矩阵 (ComponentMap) – 非线性约束的映射 –> 映射(变量 –> 约束相对于变量的雅可比矩阵).
objective_sense (Int) – 模型的目标意义。
mip_constraint_polynomial_degree (Set) – 被视为线性的约束的多项式次数。
mip_iter (Int) – MIP 迭代计数器。
config (ConfigBlock) – MindtPy 的具体配置。
cb_opt (SolverFactory, optional) – Gurobi_persistent 求解器,默认为 None。
linearize_active (bool, optional) – 是否线性化活动的非线性约束,默认为 True。
linearize_violated (bool, optional) – 是否线性化违反的非线性约束,默认为 True。