|
关键思想是通过忽略除少数约束(36)外的所有约束来解决(35)的放松版本。假设这个松弛程序的最优解是(c)*, θ*). 如果解满足所有忽略的约束,则找到了最优解;否则,我们通过用固定的c=c求解(34)来生成一个新的约束*此外还有一个轻松的问题。以下是Benders分解算法的总结:1。初始化:设置θ← -∞, K← 0,c← 0,l← 0.2. 修正cl,求解M=1,2,···,M的以下M个子程序:Vm=minuM,νmMXm=1\'pTum+emTνm+clTνm以um为准≥ 0,对于m=1,2,··,m,νm≥ 0,对于m=1,2,··,m,νm≥ πνm+w- um,对于m=1,2,··,m.表示溶液为(um*, νm*), 对于m=1,2,··,m.3。如果mxm=1Vm=θl,则终止,CLI为最佳值。4.设定l← l+1,K← K+1,(um(K),νm(K))← (微米)*, νm*), 对于m=1,2,··,m.5。解决以下主要问题:maxc,θ(37)subject toTc≤ C、 C≥ 0,θ ≤MXm=1\'pTu(k)m+emTν(k)m+cTν(k)m对于k=1,2,··,k.将溶液表示为(c*, θ*). 设θl← θ*, 氯← C*. 然后进入第2步。在该算法中,在每次迭代中,我们用N个变量求解M+1个LPs,而不是用MN+N个变量求解一个LP,这节省了计算复杂度和内存开销。注意,与Benders分解的一般形式(见[50]第2.3节)相比,上述算法更简单。由于LP(31)总是可行且有界的,因此在[50]中没有必要考虑约束(22b)。[50]中的步骤(2\')也可以移动,因为(37)总是有界的。5.2投影随机梯度下降在本节中,我们引入投影随机梯度下降法来求解(26)。这是一个在线算法,它允许我们一次处理一个样本,而无需构建一个庞大的线性程序。
|