Branch-and-cut is the most widely used algorithm for solving integer programs, employed by commercial solvers like CPLEX and Gurobi. Branch-and-cut has a wide variety of tunable parameters that have a huge impact on the size of the search tree that it builds, but are challenging to tune by hand. An increasingly popular approach is to use machine learning to tune these parameters: using a training set of integer programs from the application domain at hand, the goal is to find a configuration with strong predicted performance on future, unseen integer programs from the same domain. If the training set is too small, a configuration may have good performance over the training set but poor performance on future integer programs. In this paper, we prove sample complexity guarantees for this procedure, which bound how large the training set should be to ensure that for any configuration, its average performance over the training set is close to its expected future performance. Our guarantees apply to parameters that control the most important aspects of branch-and-cut: node selection, branching constraint selection, and cutting plane selection, and are sharper and more general than those found in prior research.
翻译:分支和切割是用于解决整数程序的最广泛使用的算法, 由CPLEX 和 Gurobi 等商业求解者使用。 分支和切割有各种各样的金枪鱼参数, 这些参数对它建造的搜索树的大小有巨大影响, 但很难手工调和。 日益流行的方法是使用机器学习来调和这些参数: 使用手头应用域的整数程序的培训组, 目标是找到一个配置, 在未来的预测性能很强, 同一域的无形整数程序。 如果训练组太小, 组合的性能可能优于训练组, 但未来整数程序的业绩差。 在本文中, 我们证明这个程序的精细复杂性保证, 使训练组的精细性能保证对于任何组合来说, 其培训组的平均性能接近其预期的未来性能。 我们的保证适用于控制分支和切割最重要的方面的参数: 节选, 分节选, 和剪切平面选择, 并且比先前研究中发现的范围更清晰、 更一般。