Approaches based on Binary decision diagrams (BDDs) have recently achieved state-of-the-art results for multiobjective integer programming problems. The variable ordering used in constructing BDDs can have a significant impact on their size and on the quality of bounds derived from relaxed or restricted BDDs for single-objective optimization problems. We first showcase a similar impact of variable ordering on the Pareto frontier (PF) enumeration time for the multiobjective knapsack problem, suggesting the need for deriving variable ordering methods that improve the scalability of the multiobjective BDD approach. To that end, we derive a novel parameter configuration space based on variable scoring functions which are linear in a small set of interpretable and easy-to-compute variable features. We show how the configuration space can be efficiently explored using black-box optimization, circumventing the curse of dimensionality (in the number of variables and objectives), and finding good orderings that reduce the PF enumeration time. However, black-box optimization approaches incur a computational overhead that outweighs the reduction in time due to good variable ordering. To alleviate this issue, we propose LEO, a supervised learning approach for finding efficient variable orderings that reduce the enumeration time. Experiments on benchmark sets from the knapsack problem with 3-7 objectives and up to 80 variables show that LEO is ~30-300% and ~10-200% faster at PF enumeration than common ordering strategies and algorithm configuration. Our code and instances are available at https://github.com/khalil-research/leo.
翻译:基于二叉决策图(BDD)的方法近年来在多目标整数规划问题中取得了最优结果。用于构建BDD的变量顺序会显著影响其规模,以及从松弛或受限BDD中导出的单目标优化问题边界的质量。我们首先展示了变量顺序对多目标背包问题帕累托前沿(PF)枚举时间的类似影响,表明需要推导能提升多目标BDD方法可扩展性的变量顺序方法。为此,我们基于变量评分函数推导了一个新颖的参数配置空间,该函数在一小组可解释且易计算的变量特征上呈线性关系。我们展示了如何通过黑盒优化高效探索该配置空间,从而规避(变量数目和目标数目上的)维度灾难,并找到能缩短PF枚举时间的优质顺序。然而,黑盒优化方法会产生计算开销,抵消了优质变量顺序带来的时间缩减。为解决此问题,我们提出LEO,一种用于寻找能缩短枚举时间的高效变量顺序的监督学习方法。在包含3-7个目标及多达80个变量的背包问题基准集上的实验表明:相较于常用排序策略和算法配置,LEO在PF枚举上快约30-300%和10-200%。我们的代码和实例见https://github.com/khalil-research/leo。