3 Decomposition Methods

分解方法是解决问题的一般方法,其将问题分解为更小的问题并且并行地或者顺序地解决每个更小的问题(当采用顺序的方式时,优点是问题的复杂性呈超线性增长(more than linearly)。
如果问题在单步操作中分解有效,那么我称该问题为(块)可分的,或者容易并行化的。例如,假定变量x可以分解为子向量x1,...,xk,目标函数是每个关于xi函数的和。每个约束仅涉及到子矢量x1,...,xk中的一个。那么显然,我们可以分别求解每个子问题(并性地),然后重组构成解x。当然这是一个容易并且无趣的例子。
更有趣的情况出现在当两个子矢量之间存在某种耦合或者交叉时,因此这一的问题不能独立的求解。对于这些情况,存在一些技术能够通过迭代的求解一系列的更小的问题来求解。存在很多方式可以做到这一点。在本文中,我们考虑一些简单的例子来阐这些思想。
在第一节,我们描述最简单地分解方法,原始分解。第二节描述对偶分解.在第4,5节探索一般的分解结构,和相关联的分解方法。第六节详细的描述两个更特殊的例子。

1 Primal decompositon

我们首先考虑第一个例子:无约束的最小化问题。形式为:

minimizef(x)=f1(x1,y)+f2(x2,y)(1)

其中变量x=(x1,x2,y)。虽然在这里维度不重要,但是将x1x2认为有一个相当高的维度,以及y是相当小的维度是很重要的。目标函数几乎是关于x1x2是块可分的。实际上,如果我们固定子矢量y,问题变成用x1x2是可分的。因此,我们可以独立的通过求解这两个子问题来求解总的问题。出于这个元音,y称为复杂变量。因为正是这个变量连接了两个子问题。我们可以将x1(x2)看作是第一(二)个问题的私有变量或者局部变量,将y看作两个子问题的公有变量或者接口变量或者边界变量。
通过观察,发现当y固定的时候,问题可以进行分解,这给出了一个求解问题(1)的思路。令ϕ1(y)表示下面问题的最优解:
minimizex1f1(x1,y)(2)

同样地,令ϕ2(y)表示下面问题的最优解:
minimizex2f1(x2,y)(3)

(注意,如果函数f1f2是凸函数(是关于x_1和y),那么ϕ1ϕ2也是凸函数)。我们称问题(2)为子问题(1),称问题(3)为子问题(2)。
那么原问题(1)等价于问题:
minimizeyϕ1(y)+ϕ2(y)

这个问题称为主问题。如果原问题是凸的,那么主问题也是凸的。主问题的变量是原问题的复杂变量或者耦合变量。主问题的目标函数是两个子问题最优值的和。
解决问题(1)的一个分解的方法是通过求解主问题来求解,即使用一个迭代的方法,比如次梯度方法。每一次迭代需要解决两个子问题来计算ϕ1(y)ϕ2(y),以及它们的梯度或者次梯度。这可以通过并行来计算,但是即使通过顺序的方式计算,如果问题计算的复杂度与问题的大小称超线性增长的话,则将需要大量的存储空间。
我们先看一下如何计算ϕ1在y处的次梯度,并且假定问题是凸的。我们首先求解相关的子问题,即找到x¯1(y)使f1(x1,y)最小化。因此,函数f1存在形式为(0,g1)的一个次梯度,并且显然,g1ϕ1在y处的一个次梯度。我们可以进行同样的过程找到一个次梯度g2ϕ2(y),那么g1+g2ϕ1+ϕ2在y处的一个次梯度。
我们可以通过各种方法来求解主问题,包括二分法(y是1维的情况),梯度或者拟牛顿法(如果函数是可微的),次梯度方法,切平面法,或者椭球法(函数不可微的情况)。这种基本的分解方法称为原始分解,因为(某些)原变量。
当我们使用一个次梯度方法来求解主问题时,我们得到一个非常简单的原分解算法。
重复:
求解子问题(可能可以通过并行的方式)
找到x¯1,最小化f1(x1,y),以及一个次梯度g1ϕ1(y)
找到x¯2,最小化f2(x2,y),以及一个次梯度g21ϕ2(y)
更新复杂变量:
y:=yαk(g1+g2)
这里,αk是步长,可以通过任意标准方式选择。
我们可以将这种分解方法解释如下。我们有两个带有私有变量或者局部变量x1,x2的子问题。同样,我们在两个子问题上都有复杂变量y。再主算法的每一步,复杂变量固定,这使得两个子问题可以独立的求解。从两个局部解,我们构造主问题的一个次梯度,并且使用这个次梯度来更新复杂变量,然后重复这个过程。
当主问题中使用了一个次梯度的方法,并且ϕ1ϕ2是可微的时,更新过程可以很容易的理解。我们将g1,g2解释为子问题最优值的梯度(关于y)。更新过程简单地在整个目标函数改善的方向上移动。
当含有少量的复杂变量,并且我们有好的方法或者快速的方法求解子问题时,原分解方法很有效。例如,如果其中一个子问题是二次的,我们可以解析求解。在这种情况下,最优值同样也是二次的,并且通过局部二次代价函数的一个Schur补给出。(但是,这个技巧简单,因此许多人不称其为分解方法)。
上面描述的基本的原始分解方法可以通过几个方式扩展。我们可以增加可分割的约束,即约束的形式为:x1C1,x2C2。在这种情况下(并且或者在domfi,对于y的一些选择,我们可能有ϕi(y)=(也就是所,ydomϕ。在这种情况下,我们找到一个可以将y从ϕ分割出来切平面(在主算法中使用)。

1.1 简单的例子

我们用一个简单的,1维的复杂变量例子来阐述原分解。问题拥有(1)的形式,其中f1f2分别是关于x1yx2y段线性凸函数。我们考虑特定问题的实例,x1R20,x2R20,并且f1f2是各自的100个仿射函数的最大值。因为复杂变量y是标量,我们可以使用一个二分算法关于y求最优化。
图1展示了ϕ1ϕ2,并且ϕ1+ϕ2是关于y的函数。该问题的在y0.14最优值为p1.71。图2展示了
最小化ϕ1(y)+ϕ2(y)的二分方法的过程,初始化间隔为[-1,1]。在每一步,两个子问题使用当且y值,分别的求解两个子问题。

Dual decomposition

我们可以通过引入新的变量到问题(1)的分解中,采用对偶问题。首先引入一个新的变量和等式约束,我们将问题表示为:

minimizef(x)=f1(x1,y1)+f2(x2,y2)

subject toy1=y2

我们引入了复杂变量y的一般局部版本,并且满足一致约束,即两个局部版本相等。注意到现在目标函数是关于(x1,y1)(x2,y2)可分的。
现在我们构造对偶问题。拉格朗日函数为:
L(x1y1,x2,y2)=f1(x1,y1)+f2(x2,y2)+vTy1vTy2

其是可分的。对偶函数为:
g(v)=g1(v)+g2(v)

其中
g1(v)=infx1,y1(f1(x1,y1)+vTy1)g2(v)=infx2,y2(f1(x2,y2)+vTy2)

注意g1g2完全可以独立的计算(即并行的方式)。同时也注意,g1g2可以表示为函数f1f2的共轭形式:
g1(v)=f1(0,v),g2(v)=2(0,v)

对偶问题是:
maximizeg1(v)+g2(v)=f1(0,v)f2(0,v)(6)

变量为v。这是对偶分解形式的主问题。使用次梯度,切平面或者其他方法求解这个主问题。
计算g1(org2)很容易。我们找到使得函数f1(x1,y1)+vTy1关于x1,y1最小化的x1,y1。那么g1在v处的一个次梯度通过y¯1给出。同样地,。我们找到使得函数f2(x2,y2)+vTy2关于x2,y2最小化的x2,y2。那么g2在v处的一个次梯度通过y¯2给出。这样负对偶函数g的一个次梯度通过y¯2y¯1给出,它仅仅是一致性的约束残差。
如果我们使用一个次梯度方法求解主问题,那么对偶分解算法有一个非常简单的形式。
重复:
求解子问题(可能并行的方式)
找到最小化f1(x1,y1)+vTy1x1y1。找到最小化f2(x2,y2)vTy2x2y2
更新对偶变量(价格)
v:=vαk(y2y1)

这里αk是步长,可以通过一些方式选择。如果对偶函数g是可微的,我们可以选择一个固定的步长,并且假定其足够的小。在这种情况下,另外一个选择是在对偶目标函数上进行线性搜索。如果对偶函数是非可微的,我们可以使用一个不断减小的不可和的步长,例如αk=α/k
在对偶分解算法的每一步,关于p我们有一个下界,即原问题的最优值,通过下式给出:

pg(v)=f1(x1,y1)+vTy1+f2(x2,y2)vTy2

其中x1,y1,x2,y2是迭代项。一般地,迭代项不是原问题的可行解,也就是说y2y1\noteq0(如果它们是可行的,我们有最大化的g)。
一个合理猜测的可行点可以从迭代项中构造为:
(x1,y¯),(x2,y¯)

其中y¯=(y1+y2)/2。换句话说,我们使用它们的平均值替代y1y2(它们是不同的)。这个平均值是(y1,y2)到可行集y1=y2的投影。这给处了关于p的一个上界,通过下面的不等式给出:
pf1(x1,y¯)+f2(x2,y¯)

一个更好的可行点可以通过将y1y2替换为平均值来找到,然后求解原分解中碰到的两个子问题(2)和(3),也就是说计算ϕ1(y¯)+ϕ12(y¯),这给定边界:
pϕ1(y¯)+ϕ2(y¯).

2.1 Simple example

我们使用同样的简单的例子来阐述对偶分解。图3展示了关于v的g1,g2以及g1+g2。v的最优值是v0.27。图4展示了二分法求解最大化g1(v)+g2(v)的过程,从初始间隔为[-1,1]开始。在每一步,使用当前的价格v,来独立地求解两个子问题。我们也展示了关于p的两个上界。较大的(较差的)边界是f1(x1+y¯)+f2(x2+y¯)。较小的(较好的)边界是ϕ1(y¯)+ϕ2(y¯)(通过求解子问题(2)和(3)获得)。

posted on 2016-08-10 12:38  Raby_Draby  阅读(477)  评论(0)    收藏  举报

导航