卢卡,一年过去了,您可能已经研究了自己的答案。我在这里回答您的一些问题仅供参考。我针对您提到的问题复习了一些拉格朗日松弛算法,并概述了与学习的联系(尤其是遵循专家的建议)。我在这里不对SDP算法发表评论。
请注意,您提到的特定算法不会在几乎线性的时间内运行。(有一个接近线性时间的算法可以
明确给出打包或覆盖问题。请参见
节拍单形以了解分数打包和覆盖线性程序。)您所想到的算法通常具有以几乎线性的迭代次数运行的变体,但每个变体迭代通常也至少需要线性时间。我在下面讨论其中一些算法。
一些有用的功能
yLmax(y)ln∑iexp(yi)maxiyimaxiyi ≤ Lmax(y) ≤ maxiyi+lnm.
Lmin(y)−Lmax(−y)miniyi
为了方便起见,我们使用表示的梯度。我们使用表示的梯度。g(y)∇Lmin(y)G(y)∇Lmax(y)
明确地,为
而为。gi(y)exp(−yi)/∑i′exp(−yi′)Gi(y)exp(yi)/∑i′exp(yi′)
Lmin和Lmax 在以下意义上是光滑的:对于任何向量和,
和
d∈[0,ε]ny∈RnLmin(y+d) ≥ Lmin(y) + (1−O(ε))d⋅g(y)
Lmax(y+d) ≤ Lmax(y) + (1+O(ε))d⋅G(y).
注意,两个梯度的1范数等于1:
。(在整个过程中,我们使用表示1范数。)|G(y)|=|g(y)|=1|z|
还要注意,对于矩阵,函数相对于的梯度
为(通过链式规则)。更明确地,函数相对于的偏导数
为。同样,
相对于的Lmax的偏导数为。Ax↦Lmin(Ax)x(g(Ax))TAxj∑iAijexp(−Aix)/∑iexp(−Aix)(Ax)xj∑iAijexp(Aix)/∑iexp(Aix)
分数套盖
修复Set-Cover实例。令表示元素/集合关联矩阵。因此,如果,则,否则为0,并且是分数覆盖覆盖元素的程度。AAes=1e∈sAexxe
LP为。给定,该算法为min{|x|:Ax≥1;x≥0}ε∈(0,1)
- 初始化所有。令。 xs=0N=log(n)/ε
重复直到: mineAex≥N
2.1。选择最大化LMIN的偏导数 WRT。
(明确地,选择最大化。) s(Ax)xs
s∑e∈sexp(−∑s′∋exs′)
2.2。增加由。 xsε
返回。x/mineAex
该算法以迭代返回近似解,其中是元素数,而是最优分数集覆盖(通常)。(Chandra提到的论文中出现了类似的算法。“顶点覆盖”当然是特例。)(1+O(ε))O(|x∗|log(n)/ε2)nx∗|x∗|≤n
(注:请注意,迭代边界不取决于集合的数量,而仅取决于元素的数量。因此,只要给定元素的权重,一个算法就可以有效地与隐式定义的集合系统一起使用。查找最大(或接近最大)总重量的集合。这种预言与将椭圆形算法应用于对偶问题所需的分隔预言相同。对于打包问题(例如装箱),您需要一个预言,给定元素的权重,则返回使总权重最小的集合。例如,对于多商品流等问题,您可能需要找到一条路径,以使某些给定的边缘权重之和最小。
这是性能保证证明的草图。在每次迭代中,选择的的偏导数
至少为,其中是最佳分数集覆盖率。s1/|x∗|x∗
(要知道为什么,请回想一下Lmin相对于的梯度为。如果我们要从分布中随机选择集合,,因此相对于的偏导数的期望值
为。由于,因此至少。由于,因此至少。因此,必须至少存在一些给出偏导数由于该算法选择(Ax)x(g(Ax))TAs′x∗/|x∗|xs′(g(Ax))TAx∗/|x∗|Ax∗≥1|g(Ax)|/|x∗||g(Ax)|=11/|x∗|s1/|x∗|xs在每次迭代中使
偏导数最大化,它的偏导数至少达到) 1 / | x ∗ |1/|x∗|
然后,将步长选择得足够小,以使坐标增加不超过。因此,由于Lmin的平滑性,将
增加到会使至少增加
。εAxεxsxs+εLmin(Ax)(1−O(ε))ε/|x∗|
这样,该算法将保持不变
(请注意,Lmin等于。)Lmin(Ax)≥(1−O(ε))|x|/|x∗|−lnn.
(0¯¯¯)lnn
在终止处,在不变式中,项是乘以左侧,因此通过计算得出。在算法的最后一行进行归一化之后,这意味着。lnnO(ε)mineAex≥(1−O(ε))|x|/|x∗||x|≤(1+O(ε))|x∗|
FWIW,证明不变量的不等式与证明切尔诺夫界的不等式基本相同。(实际上,可以通过将条件概率方法应用于随机四舍五入方案来推导该算法,该方案从分布
(有替换项)重复采样集,为每个采样集增加。这样的去随机化给出了算法:基本不变性只是悲观估计量保持在1以下。悲观估计量的指数惩罚来自舍入方案分析中使用的Chernoff界,此基本思想将进一步说明。在钱德拉提到的论文中。)x∗/|x∗|xss
小数加权集合覆盖(和一般小数覆盖)
为了有效处理诸如“加权集覆盖”之类的问题,我们修改了算法以使用非均匀增量(这是Garg和Konemann提出的想法)。
LP是,其中覆盖元素,覆盖集合,所有变量均为非-负。为了展示该算法,首先将问题改写为一般覆盖问题。让用于和否则。然后(通过更改变量,将每个缩放为),LP为,我们可以将其视为一般的LP。这是算法:min{c⋅x:(∀e)∑s∋exs≥1}esAes=1/cse∈sAes=0xscsmin{|x|:Ax≥1;x≥0}
初始化所有。令。xs=0N=log(n)/ε
重复直到所有覆盖约束都被删除:
2.1。选择最大化LMIN的偏导数 WRT。
(明确地,选择最大化。)s(Ax)xs小号Σ Ë ∈ 小号 EXP (- Σ 小号' ∋ è X 小号')/ C ^ 小号
s∑e∈sexp(−∑s′∋exs′)/cs
2.2。增加通过,其中被选择最大限度这样,对于每一个其余的覆盖约束,在增加为至多。xsδδeAe⋅xε
2.3删除所有覆盖约束使得。eAe⋅x≥N
返回。x/mineAe⋅x
该算法以迭代返回 -近似解,其中是覆盖约束的数量。(每次迭代通过增加一些剩余的;在删除约束之前,只能对约束执行次。)正确性的证明基本上是通过与Set Cover相同的不变性进行的。(1+O(ε))O(nlog(n)/ε2)nAexεN/ε
加权顶点覆盖是一种特殊情况。
最大分数二分匹配
给定图,问题的自然LP为。G=(U,W,E)max{|x|:∀v.∑e∋vxe≤1}
在矩阵表示中,这是包装LP
系数为0-1的(如果则)。这样的问题不需要非均匀的增量,因此类似于未加权的Set Cover算法(但用于打包)的简单算法可以做到:max{|x|:Ax≤1;x≥0}Ave=1v∈e
- 初始化所有。令。xe=0N=log(n)/ε
当:Ax<N
2.1。选择最小化Lmax wrt的偏导数。
(明确地,选择以最小化。)e(Ax)xe Ë Σ v ∈ È EXP (Σ Ë ' ∋ v X ë ')
e∑v∈eexp(∑e′∋vxe′)
2.2。增加由。 xeε
返回。x/maxvAvx
该算法以迭代返回 -近似解。(这是因为每次迭代都会使增加,最后在归一化之前,。)(1−O(ε))O(nlog(n)/ε2)|x|ε|x|=O(Nn)
只是为了好玩,这是一种完美的二分匹配的替代算法。回想一下。令。G=(U,W,E)n=|U|=|W|
- 初始化所有。令。 xe=0N=4ln(n)/ε
重复次:nN
2.1。从中随机均匀地选择。
2.2。选择使中的最小化。
2.3。将增加。 uU
w(u,w)∈E∑e∋wxe
xuwε
返回。x/N
如果具有完美的匹配,算法返回的,使得,并且,以高概率,为所有顶点,,对于所有顶点,。如果您对证明的细节感兴趣,请询问...Gx|x|=nu∈U1−O(ε)≤∑e∋uxe≤1+O(ε)w∈W∑e∋wxe≤1+O(ε)
混合包装和覆盖
您可能已经问过有关二部匹配的问题,希望以混合包装和覆盖问题为例,即的形式之一
这是解决此类问题的一种算法。首先,规范化,以便和。∃x? Px≤p;Cx≥c;x≥0.
p=1¯¯¯c=1¯¯¯
令为约束的数量(行加上行)。mPC
- 初始化所有。令。xj=0N=2ln(m)/ε
而:Px<N
2.1。选择使得Lmax相对于的偏导数最多为Lmin相对于的偏导数。(明确地,选择使得j(Px)xj(Cx)xjj∑iPijexp(Pix)∑iexp(Pix)≤∑iCijexp(−Cix)∑iexp(−Cix).)
2.2。增加通过,其中被选择最大限度使得没有约束或剩余约束比更增加。xjδδPixCixε
2.3。删除所有覆盖约束使得。iCix≥N
返回。x/maxiPix
假设给定的问题是可行的,该算法返回,使得
和。迭代次数为,因为每次迭代都会增加约束,并且每个约束最多可以发生次。xPx≤1Cx≥1−O(ε)O(mln(m)/ε2)εN
正确性的证明是通过不变的
不变量表示
在终止处,左侧为,证明了性能保证。Lmax(Px)≤2ln(m)+(1+O(ε))Lmin(Cx).
maxPx≤2ln(m)+(1+O(ε))minCx.
Ω(log(m)/ε)
在步骤2.1中,只要原始问题可行,所需的就必须存在。(这是因为,对于任何可行的和任何,如果我们要从分布选择随机,则Lmax的偏导数的期望值相对于
将是至多。(参见集合覆盖先前证明草图)同样地,LMIN的偏导数的预期值相对于
至少为。因此,存在一个jX * X Ĵ ' X * x∗xj′x∗/|x∗|(Px)xj′1/|x∗|(Cx)xj′1/|x∗|j使得Lmax相对于
的偏导数最多为Lmin的偏导数。)(Px)xj′(Cx)
然后在每次迭代中保持不变,因为通过选择和以及Lmin和Lmax的平滑度,将增加到
会使Lmax
最多增加
倍。 Lmin增加。xjδxjxj+δ(Px)1+O(ε)(Cx)
学习(跟随专家/促进)
理解这种联系的一个参考是
Freund和Schapire的使用乘法加权的自适应游戏。这里是一个简短的总结,给出了技术思想。
考虑下面的重复游戏。在每个回合中: t
- 您在(个所谓的专家)上选择概率分布。 pt[n]n
- 对手知道了,然后选择的支付向量。 ptat∈[0,1]n
- 您收到该回合的收益。 pt⋅at
几轮游戏后游戏停止。你的目标是相比于任何单一的专家(即纯策略)尽量减少你的遗憾。也就是说,您的目标是最小化。i(maxi∑tati)−∑tpt⋅at
修复任何。令向量表示,也就是说,
乘以收益向量的向量总和直到时间。回想一下是Lmax的梯度。ε>0ytε∑s≤tasεtG(y)(y)
这是我们将分析的基本策略:
在第轮,选择为。tptG(yt−1)
通过检查,可以得出回合。at⋅G(yt−1)t
由于的平滑性,
也就是说,在每个回合中,增加不能超过收益的倍。由于,因此保持不变,即
最多是您的总回报时间,加上。另一方面,与最佳专家相比,您的遗憾
是,即FLmax(yt)≤Lmax(yt−1)+(1+O(ε))εat⋅G(yt−1).
Lmax(yt)ε(1+O(ε))Lmax(0¯¯¯)=lnnLmax(yt)ε(1+O(ε)ln(n)imaxi∑tatiε−1maxiyti ε - 1 Lmax的(ÿ 吨),这最多是。ε−1Lmax(yt)
因此,您的遗憾最多是加上乘以总收益。ε−1ln(n)O(ε)
备注:我认为,正如Freund和Schapire所指出的那样,“提升”算法(在学习理论中)在该分析中也是隐含的。有关更多详细信息,请参见他们的论文。
最小化总收益
您可以为目标是最小化而不是最大化总收益的设置派生类似的策略。您仍然希望最小化的遗憾是。在那种情况下,相应的策略是选择作为的梯度。使用此策略,您的后悔最多还是
加乘以总收益。∑tpt⋅at−miniatiptLmin(yt)ε−1lnnO(ε)
与拉格朗日松弛算法的连接
要查看与Lagrangian松弛算法的连接,请修复Set-Cover实例。考虑后一种类型的游戏(目标是最大程度地减少收益),其中专家对应您所设置系统的元素。在每个回合中,如上所述,将概率分布选择
为Lmin的梯度,然后让对手选择收益向量作为的函数,如下所示:
选择集合最大化,然后让如果,和否则。ept(yt)atptst∑e∈spteate=1e∈state=0
给定正确的停止条件(如下所述),此过程将为您提供刚开始讨论的Set-Cover算法。
该算法的性能保证如下所述。令为对手在比赛中选择set次数。令为最优分数集覆盖。令是打的回合数。后悔界限意味着
Xssx∗T=|Xs|∑tat⋅pt≤ε−1ln(m)+mine∑tate.
使用的定义,第个收益(左侧总和中的第个项)等于。对手选择来最小化此收益。如果对手改为从分布随机选择,,那么回报的期望应该是
(上面我们对所有使用,并且)由于每次收益至少为attt∑e∈stpteststx∗/|x∗|∑sx∗s|x∗|∑e∈spte = 1|x∗|∑epte∑s∋ex∗s ≥ 1|x∗|∑epte = 1|x∗|.
∑s∋ex∗s≥1e|pt|=11/|x∗|,后悔界限意味着
根据的定义,我们有(每个回合选择一组),并且,得到
当,我们使过程停止,因此(重新排列)
也就是说,归一化得到最大为的分数集覆盖最佳时间。T|x∗|≤ε−1ln(m)+mine∑tate.
X|X|=T∑tate=∑e[e∈st]=∑s∋eXs|X||x∗|≤ε−1ln(m)+mine∑s∋eXs.
mine∑s∋eXs=Ω(ε−2lnm)|X|mine∑s∋eXs ≤ (1+O(ε)|x∗|.
X(1+O(ε))
备注:从某种意义上说,这种学习理论解释是对算法解释的概括。但是,提高效率所必需的一些算法技术(例如非均匀增量和下降的满足覆盖约束)似乎不会自然地延续到学习理论中。同样,用于混合打包和覆盖LP(例如这些)的算法
在学习理论环境中似乎没有自然的类似物。