枚举线性解

(函数来自 pyomo.contrib.alternative_solutions.lp_enum)

pyomo.contrib.alternative_solutions.lp_enum.enumerate_linear_solutions(model, *, num_solutions=10, rel_opt_gap=None, abs_opt_gap=None, zero_threshold=1e-05, search_mode='optimal', solver='gurobi', solver_options={}, tee=False, seed=None)[source]

寻找(混合整数)线性规划的替代最优解。

此函数实现了这里描述的技术:

S. Lee, C. Phalakornkule, M.M. Domach, 和 I.E. Grossmann, “用于在代谢网络的LP模型中寻找所有替代最优解的递归MILP模型”, 计算机与化学工程, 24 (2000) 711-716.

Parameters:
  • model (ConcreteModel) – 一个具体的Pyomo模型

  • num_solutions (int) – 生成的最大解决方案数量。

  • rel_opt_gap (floatNone) – 原始目标的相对最优性差距,将为其找到变量边界。None 表示不会将相对差距约束添加到模型中。

  • abs_opt_gap (floatNone) – 原始目标的绝对最优性差距,将为其找到变量边界。None 表示不会向模型添加绝对差距约束。

  • zero_threshold (float) – 连续变量的值被认为等于零的阈值。

  • search_mode ('optimal', 'random', 或 'norm') – 表示用于生成替代解决方案的模式。 optimal 模式找到下一个最佳解决方案。random 模式 在随机射线的方向上找到一个替代解决方案。norm 模式迭代地找到与先前发现的解决方案的 L2 距离最大化的解决方案。

  • solver (string) – 要使用的求解器。

  • solver_options (dict) – 传递给求解器的选项-值对。

  • tee (boolean) – 布尔值,指示是否应显示求解器输出。

  • seed (int) – 可选的整数种子,用于numpy随机数生成器

Returns:

解决方案对象的列表。 [Solution]

Return type:

解决方案