枚举二进制解决方案
(函数来自 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 (float 或 None) – 原始目标的相对最优性差距,将为其找到变量边界。None 表示不会将相对差距约束添加到模型中。
abs_opt_gap (float 或 None) – 原始目标的绝对最优性差距,将为其找到变量边界。None 表示不会向模型添加绝对差距约束。
search_mode ('optimal', 'random', 或 'hamming') – 表示用于生成替代解决方案的模式。 optimal 模式找到下一个最佳解决方案。random 模式 在随机射线的方向上找到一个替代解决方案。hamming 模式 迭代地找到与先前发现的解决方案的汉明距离最大化的解决方案。
solver (string) – 要使用的求解器。
solver_options (dict) – 传递给求解器的选项-值对。
tee (boolean) – 布尔值,指示是否应显示求解器输出。
seed (int) – 可选的整数种子,用于numpy随机数生成器
- Returns:
解决方案对象的列表。 [Solution]
- Return type:
解决方案