枚举二进制解决方案

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

pyomo.contrib.alternative_solutions.balas.enumerate_binary_solutions(model, *, num_solutions=10, variables=None, rel_opt_gap=None, abs_opt_gap=None, search_mode='optimal', solver='gurobi', solver_options={}, tee=False, seed=None)[source]

使用无优切割为二元问题寻找替代最优解。

此函数实现了一种继承自Balas关于规范切割工作的无优切割技术[BJ72]

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

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

  • 变量 (一组 Pyomo _GeneralVarData 变量) – 将为其生成边界的变量。无表示 将包括所有变量。或者,可以提供一组 _GenereralVarData 变量。

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

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

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

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

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

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

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

Returns:

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

Return type:

解决方案