Decomposition

Decomposition Problem

Introduction

Decomposition is a approach to solving a problem by breaking it up into smaller ones and solving each of smaller ones separately, or sequentially.

If the problem is separable, i.e., the objective is comprised by the sum of functions of sub-vector xi and each constraint only involve only one variable from one of the sub-vector xi, then each smaller problem involving xi separately can be easily solved(called trivially parallelizable or block separable). The more interesting problem is that sub-vectors are tangled.

The core idea of decomposition is: using effective methods to solve sub-problems and combining the results in such a way as to solve the larger problem. Two techniques will be introduced in the following.

Primal decomposition

unconstrainted case

minf(x)=f1(x1,y)+f2(x2,y)

where x1 and x2 are called private or local variables, y is the complicating or coupling variable which complicates the problem and x={x1,x2,y}. If y is fixed, the problem is separable and the subproblem is equivalent to find ϕ1(y)=minx1f1(x1,y) and ϕ2(y)=minx2f2(x2,y). The original problem becomes

minyϕ1(y)+ϕ2(y)

which is called master problem.

A decomposition method solve the original problem by a iterative method, such as the subgradient method.

IcMdp9.png

Dual decomposition

consistency constraint

(1)minf1(x1,y1)+f2(x2,y2)(2)s.t.y1=y2

The Lagrangian is

L(x1,x2,y1,y2,v)=f1(x1,y1)+f2(x2,y2)+vTy1vTy2

The dual function is

g(v)=g1(v)+g2(v)

where g1(v)=infx1,y1f1(x1,y1)+vTy1=f1(0,v), g2(v)=infx2,y2f2(x2,y2)vTy2=f2(0,v)

The dual problem is

maxg1(v)+g2(v)=minf1(0,v)+f2(0,v)

where g1(v) and g2 can be solved separately, according to the Primal decomposition context.

IcBdaQ.png

Decomposition with constraints

(3)minf1(x1)+f2(x2)(4)s.t.x1C1,x2C2(5)h1(x1)+h2(x2)0

where the last constraint complicates the problem, called complicating constraints.

Primal decomposition

Assigning a fixed amount of resource t to h1(x1) and the amount of h2(x2) is t, then the original problem can be separable.

(6)minf1(x1)(7)s.t.x1C1(8)h1(x1)t

(9)minf2(x2)(10)s.t.x2C2(11)h2(x2)t

Let ϕ1(t) and ϕ2(t) be the optimal value of the problem 6 and 9, λ1 and λ2 denote the optimal dual variable of corresponding subproblem. Then the optimization process is:

  1. Solve the subproblem 6, to find an optimal x1 and λ1
  2. Solve the subproblem 9, to find an optimal x2 and λ2
  3. t=tα(λ2λ1)

Dual decomposition

The partial Lagrangian is

(12)L(x1,x2,λ)=f1(x1)+f2(x2)+λT(h1(x)+h2(x))(13)=(f1(x1)+λTh1(x))+(f2(x2)+λTh2(x))

The problem is the same with 1

The more complicated decomposition can be represented by a hypergraph or net.

IcyMOP.png

There are three subproblems and each link represent the coupling variable or constraint between the adjoined subproblems.

How primal and dual decomposition work:

  • In primal decomposition, each hyperedge or net has a single variable associated with it. Each subproblem is optimized separately, using the public variable values (asserted) on the nets. Each subproblem produces a subgradient associated with each net it is adjacent to. These are combined to update the variable value on the net, hopefully in such a way that convergence to (global) optimality occurs.
  • In dual decomposition, each subproblem has its own private copy of the public variables on the nets it is adjacent to, as well as an associated price vector(dual variable λi). The subsystems use these prices to optimize their local variables, including the local copies of public variables. The public variables on each net are then compared, and the prices are updated, hopefully in a way that brings the local copies of public variables into consistency (and therefore also optimality).

General framework for decomposition structures

There are K subproblems with private variables xi, public variables yi, public variable fi and the local feasible set Ci. Let y denote the set of all public variables, i.e., y=(y1,y2,,yK) and (y)i be the i-th component. Suppose there are N nets, let zRN be the common value on the nets. Then y=Ez, where E is the matrix with

E={1(y)i is in net j0otherwise

The whole problem is

(14)mini=1Kfi(xi,yi)(15)s.t.(xi,yi)Ci(16)yi=Ezi

Primal Decomposition

In primal decomposition, at each iteration we fix the vector z of net variables, and we fix the
public variables as yi=Eiz. Each subsystem can (separately) find optimal values for its local variables xi

(17)minfi(xi,yi)(18)s.t.(xi,yi)C1

To find a subgradient of ϕ, we find giϕi(yi) . We then have

g=i=1KEiTgi

The entire process is

  1. yi=Eiz,i=1,...,K
  2. Solve subproblems to find optimal xi, and giϕ(yi),i=1,2,K
  3. g=i=1KEiTgi
  4. z=zαkg.

Dual Decomposition

The partial Lagrangian is

(19)L(x,y,z,v)=i=1Kfi(xi,yi)+vT(yEz)(20)=i=1Kfi(xi,yi)+viTyivTEz

the subproblem is

(21)minfi(xi,yi)+viTyi(22)s.t.(xi,yi)Ci

Let gi(vi) be the optimal value of the subproblem and the subgradient of gi at vi is yi. The dual problem is

(23)maxi=1Kgi(vi)(24)s.t.ETv=0

where the last constraint comes from minzL(x,y,z,v).

We can solve this dual decomposition master problem using a projected subgradient method. Projection onto the feasible set {v|ETv=0}, which consists of vectors whose sum over each net is zero. The projection is given by multiplication by Iidentity matrixE(ETE)1ETaverage value on the graph, where ETE=diag{d1,,dN}, di is the degree of the net i. i.e., the number of subsystems adjacent to net i.

IcWjns.png

posted @   Neo_DH  阅读(238)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示