A Bayesian Discrete Optimization Algorithm for Permutation Based Combinatorial Problems
1.摘要
本文提出了新的基于位置信息的核函数,该核函数使用稀疏高斯过程模型,具体创新点如下:
- 使用模拟退火算法帮助降维(解决高斯模型高维诅咒)
- 基于降维后的维度计算新的协方差矩阵
- 协方差矩阵里的距离函数定义了先验知识
2.介绍
分析了处理离散组合优化问题时,基于模型的方法的优劣。
3.处理离散问题的贝叶斯优化
介绍了使用基于模型优化的MBO(Model-Based Optimization)研究的相关工作。我们针对模型的改进主要集中在模型的核函数(协方差矩阵)的计算和获取函数(采集函数上的改进)。原文提到很多在这方面的研究论文,感兴趣的读者可以前去看看。
4.基于序列的组合问题的贝叶斯离散优化算法
A A A.高斯过程建模
高斯模型的一般描述为:
即使用到平均函数
u
(
x
)
u(x)
u(x)和协方差核
K
(
x
,
x
′
)
K(x,x')
K(x,x′),本文使用到的基于序列的组合问题的核函数定义为:
其中
d
(
∙
,
∙
)
d(∙,∙)
d(∙,∙)是序列表示的距离测量,
θ
\theta
θ和
p
p
p是控制模型衰减率和平滑度的超参数。它们是基于最大似然估计(MLE)从观察到的样本X中学习到的。
观测数据的对数边际似然可以表示为:
然后,对给定观测值(决策变量)的目标值的预测遵循一个具有均值的高斯分布:
以及方差:
其中,
x
∗
x^*
x∗是一个测试输入(预测时输入的决策变量),
µ
(
x
∗
)
µ(x^*)
µ(x∗)和
σ
2
(
x
∗
)
\sigma ^2(x^*)
σ2(x∗)分别是决策变量对应的目标值的均值和方差,
k
∗
k_*
k∗是真实观测值
X
X
X和测试输入
x
∗
x^*
x∗之间的协方差函数值的n维向量,
I
I
I是一个识别矩阵,
σ
0
2
\sigma^2_0
σ02是测量误差。更多模型的细节在:Gaussian processes in machine learning。
贝叶斯优化框架如下:
B B B. 相似性测量
由于GP模型的使用就是建立在假定两个彼此接近的解也有相似的目标值的基础上,所以相似性测量的方法会影响到BO的准确性。为了测量序列空间的相似性,基于不同序列距离的协方差函数被证明是一种有效的方法。
根据文献Distance Measures for Permutations in Combinatorial Efficient Global Optimization的实验结果和本文的初步实验,位置距离是我们的调度问题的一个很好的选择,定义为:
其中
i
i
i和
k
k
k分别是解
x
(
j
)
x^{(j)}
x(j)和
x
(
l
)
x^{(l)}
x(l)中相同元素的索引或位置,
n
d
n_d
nd是排列的长度。 计算位置距离的时间复杂度为
O
(
n
d
2
)
O(n^2_d)
O(nd2)。 为了更有效地计算位置距离,我们可以记录下相同元素i在两个解的位置
p
i
k
p^{k}_i
pik和
p
i
j
p^{j}_i
pij。 则距离可以定义为:
则时间复杂度可以减少为
O
(
n
d
)
O(n_d)
O(nd)。
但作者认为上面这种方法还不够好,于是提出了一个新的带限制的协方差函数,它在上面的等式6的基础上加上了先验知识的相似性考量。
文中这里举了个例子,例如,在AM作业调度问题中,多个部件由一个3D打印机逐层同时打印。 打印机头部从一层移动到另一层所浪费的累积时间是很显著的,我们目标是找到最佳的作业顺序,使得时间最少,所以我们希望尽量减少这个移动时间。这里的先知知识是,打印相似尺寸的零件的时间将会相似。通过将高度相似、横截面面积相似的零件分组成批,可以减少层间的切换时间。因此,新的协方差函数包含两个距离函数。它们是两个解之间的高度差
d
h
(
∙
,
∙
)
d_h(∙,∙)
dh(∙,∙)和面积差
d
a
(
∙
,
∙
)
d_a(∙,∙)
da(∙,∙)。 因此约束协方差函数是:
这里的
θ
h
\theta_h
θh和
θ
a
\theta_a
θa是两个新超参数,对应于两个新加的协方差函数。而高度差
d
h
(
∙
,
∙
)
d_h(∙,∙)
dh(∙,∙)和面积差
d
a
(
∙
,
∙
)
d_a(∙,∙)
da(∙,∙)具体定义如下:
C
C
C. 稀疏GP用于贝叶斯离散优化
使用高斯模型时,用n个样本进行训练的时间复杂度为
O
(
n
3
)
O(n^3)
O(n3),存储的时间复杂度为
O
(
n
2
)
O(n^2)
O(n2),每次预测的时间复杂度为
O
(
n
2
)
O(n^2)
O(n2)。为了解决时间复杂度随样本数的增大而过高的问题,我们使用到了稀疏GP模型。在稀疏GP中,我们使用来自输入数据的m(m<n)个样本的子集来逼近全GP模型,我们称这m个样本为诱导点集或活动集。通过用Nystrom近似代替精确的协方差函数,可以将协方差矩阵描述为:
其中
K
~
\widetilde{K}
K
是
K
K
K的近似,
K
n
m
K_{nm}
Knm是n行m列(n个样本,m个诱导点)的协方差矩阵,而
K
m
n
K_{mn}
Kmn=
K
n
m
T
K^T_{nm}
KnmT。然后我们基于 Sherman-Morrison-Woodbury formula计算协方差矩阵的逆(最大似然估计要求):
此时,求逆的时间复杂度将从
O
(
n
3
)
O(n^3)
O(n3)减少为
O
(
m
2
n
)
O(m^2n)
O(m2n)。
然而,诱导点的选择导致了另一个组合问题,即找到所有样本的一个好的子集,以最小化近似误差。为此,McIntire等人提出了一种适用于好区域的更新权重的在线GP。在这本文改进了Scalable Gaussian Processes on Discrete Domains,将诱导点的选择定义成0-1背包问题。背包的容量设成m,再通过最大化对数边际似然估计来求解(MLE)。
由于MLE的计算已经在GP模型的超参数训练中,因此集成很简单。
我们使用模拟退火来选择诱导点,如下图所示。
SA从随机解
Z
0
Z_0
Z0开始,然后从当前解
Z
Z
Z生成一个新的解
Z
n
e
w
Z_{new}
Znew。 对于新样本的生成,我们定义了一个扰动,即先前选择的点与新候选点之间的替换。 由于
Z
Z
Z和
Z
n
e
w
Z_{new}
Znew的大多数样本都是相同的,所以不是每次迭代都重新计算似然函数,我们可以更新它来加快算法。
如果新的解决方案
Z
n
e
w
Z_{new}
Znew有更好的目标值,就将
Z
n
e
w
Z_{new}
Znew设置为当前解
Z
Z
Z。 否则,
Z
n
e
w
Z_{new}
Znew是基于概率被接受的。 概率由温度控制, 当温度较高时,算法接受新解的概率较高。 扰动在每个温度下重复L次。 温度逐渐降低,由
α
∈
(
0
,
1
)
\alpha\in(0,1)
α∈(0,1)控制。为考虑效率,诱导点仅在增加一定数量的新点时才进行优化和更新。
4.实验
本文使用一个流水线车间调度问题和一个AM作业调度问题来测试所提出的BDO算法。
第一个问题用于研究稀疏GP对BDO算法性能的影响。同时本文基于实际问题,测试了新的协方程函数是一种特殊的调度设计。并将BDO算法的性能与基于序列的组合高效全局优化算法( Efficient global optimization for combinatorial problems和Surrogate models for discrete optimization problems)和基于实例的进化算法进行了比较。
A . A M A.AM A.AM调度问题
该问题是个np问题。我们可以利用启发式算法、禁忌搜索和进化算法解决AM调度问题。然而,这些基于实例的算法的效率受到了仿真成本(即真实评估成本)的限制。所以在此应用所提出的BDO算法来解决这个序列问题。
AM调度流程如下图:
图中共有
J
1
−
J
8
J1-J8
J1−J8共8个调度作业。我们用一个序列表示工作顺序,如图中的工作的排列顺序为[1,3,4,2,6,5,7,8]。接着,根据构建平台的顺序和大小,可以看到图中,我们同时将工作分成了
B
1
−
B
3
B_1-B_3
B1−B3共3组,最后每个解都是一个序列,而每个解对应的目标值为刚才那3组中完成时间最长的那个。
因此,优化的目的是找到问题的最小完成时间,计算完成时间的细节在文献:Improved evolutionary algorithm for parallel batch processing machine scheduling in additive manufacturing。
B B B. 稀疏GP对BDO算法性能的影响
本文提出的稀疏GP建模针对具有大量样本的复杂问题。 用一个流水线车间调度问题(Analysis of irregular three-dimensional packing problems in additive manufacturing: a new taxonomy and dataset)测试其有效性,它的目标函数评估的成本较低。 为了比较不同问题大小下的可伸缩性,测试了三个不同大小的流店问题,分别表示为t001、t011和t031。 下表列出了这三个实例的作业和机器数量。
每个实例中的作业数是排列的长度,即问题的维度。 而机器的数量反映了问题的复杂性。
在实验中,所有测试算法的目标函数评估次数的预算被设置为1000。 初始样品数量为60个。 为了进行公平的比较,参数,改进的获取函数,进化算法中用来优化离散的获取函数都设置成了同样一个式子。此外,对于稀疏GP模型,根据的结果,将诱导点数设置为100个。对每添加20个新样本进行诱导点的优化。
由于算法的随机性,所有三种算法都对每个实例进行了20次测试。 由于CEGO算法和BDO算法都是序列模型的算法,我们通过绘制目标值与迭代的比较,比较了基于每次迭代的均值和标准误差的搜索过程,如下图。
红色的是BDO的结果,蓝色的是CEGO的结果。阴影表示每次迭代时的标准误差,而线代表平均值。
在第61次迭代中,这2个目标值都迅速降低了,因为初始样本的数量为60个。
当迭代次数较低时,CEGO算法的性能优于BDO算法。然而,随着迭代次数的增加,BDO算法在平均值和标准误差方面都表现更好,这意味着BDO算法在足够的迭代条件下性能更稳定。另外,BDO的性能超过CEGO的原因可能是由于诱导点的选择,从而减少了冗余信息。因此,具有稀疏GP的BDO算法可以更多地关注重要的搜索区域。
为了进一步将结果与EA进行比较,上表给出了得到的目标值的平均值和标准差,并采用成对Wilcoxon符号秩检验来比较了性能差异的统计学意义。“+”,“=”和“−”表明,基于0.05显著性水平的Wilcoxon signed-ranked测试,BDO比竞争对手更好、类似或更差。可以观察到,在所测试的问题上,BDO在解决方案质量和稳定性方面都明显优于GA和CEGO。
C C C. 新协方差函数的影响
为了验证所提出的新协方差函数,我们将新的协方差函数与基于位置距离的函数进行了比较。 为了进行公平的比较,在没有稀疏GP的情况下,基于CEGO测试了新的协方差函数。 其他参数设置与上次测试相同。 目标功能评价预算为300。 用于测试新协方差的实例是从文献Improved evolutionary algorithm for parallel batch processing machine scheduling in additive manufacturing改编的。 我们测试了新的协方差函数随维数的增加。
所有的实例都用两个协方差函数运行了20次。所有的实验都是在具有英特尔核心I7、16GB内存和10系统的PC上进行的。结果如下:
红色显示新的协方差函数的结果,蓝色是位置距离函数的结果。零件号从20到70不等。如图所示,当零件数为20时,新的协方差似乎与位置距离具有相同的性能。然而,当数字增加时,新的协方差函数可以更好,特别是当数字是70时。其原因是,当零件数量很少时,问题不太复杂,位置距离包含足够的信息来度量相似性。 因此,两者的表现是平等的。 然而,当零件数量增加时,问题更加复杂,更多的附加信息是有帮助的。
5.总结
为了解决排列输入的离散优化问题,如AM中的调度问题,我们提出了一种贝叶斯离散优化算法,该算法提出了一种新的协方差函数,该函数包含位置距离和先验知识。 新的协方差函数可以更准确地反映解之间的相似性,提高优化的收敛性。 为了进一步提高计算效率,采用稀疏GP建模方法,从所有样本中选择诱导点来逼近完全协方差矩阵的逆。 这可以显著提高GP建模的效率。 用AM调度问题对所提出的BDO算法进行了演示和评价。 结果表明,该算法比基于全GP模型的BO算法具有更好的性能。
在未来的工作中,我们计划进一步评估和测试所提出的BDO算法的不同采集函数。新算法需要测试更多的效率、准确性和大问题的可扩展性。由于有较大的求解空间,基于置换的优化在本质上是很复杂的。可伸缩性对于解决这些问题以及其他离散优化至关重要。同时,可伸缩性也是贝叶斯优化的主要局限性。对可扩展BO的研究很有价值。目前的BDO算法也可以类似地扩展到解决其他离散问题,如组合和混合整数优化。这种扩展需要进行未来的研究。