get_shifted_linear_model

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

pyomo.contrib.alternative_solutions.shifted_lp.get_shifted_linear_model(model, block=None)[source]

将具有有界(离散和)连续变量(l <= x <= u)的(MI)LP转换为标准形式,其中所有连续变量均为非负实数,且所有约束均为等式。对于形式为纯LP的情况,

\[min/max cx s.t. A_1 * x = b_1 A_2 * x <= b_2 l <= x <= u\]

一个形式的问题,

\[min/max c'z s.t. Bz = q z >= 0\]

将被创建并添加到返回的块中。z 由 var_lower 和 var_upper 变量组成,这些变量被替换到原始的 x 变量中,以及用于将原始不等式转换为等式的 slack_vars。所有 z 中的变量都有边界。对于 MILPs,只有问题的连续部分被转换。

参见Lee, Sangbum., C. Phalakornkule, M. Domach, I. Grossmann, 递归 MILP模型用于在代谢网络的LP模型中寻找所有替代最优解,计算机与化学工程,第24卷,第2-7期,2000年, 第712页以获取更多详细信息。

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

  • block (Block) – 新模型应添加到的Pyomo块。

Returns:

包含重构模型的块。

Return type:

block