【MIP】Column generation Algorithm

Column generation

Standard form LP
min ⁡ c ′ x s . t . A x = b x ≥ 0 \begin{aligned} &\min &c'x\\ &s.t. & Ax=b\\ &&x\geq 0 \end{aligned} mins.t.cxAx=bx0
where A A A is m × n m\times n m×n matrix with linearly independent rows. Suppose n n n is too large, making it impossible to generate and store the entire A A A matrix. If we can select the entering variable with explicitly constructing all the columns of A A A and computing all the reduced costs, we can still carry out revised simplex iterations.

A master iteration consists of solving the restricted master problem (RMP) and the column generating subproblem (GCSP).

Basic scheme

  1. In the basic scheme, we have simply modified the classical greedy Dantzig’s variable selection rule, to prioritize variables in I I I.
  2. We first choose entering columns by the most negative reduced cost of variables in I I I.
  3. Once they are all nonnegative, seek in CGSP.

The cutting stock problem

m m m rolls of length L ∈ Z + , i ∈ [ n ] : = { 1 , 2 , … , n } L\in \mathbb{Z}_+, i\in[n]:=\{1,2,\dots, n\} LZ+,i[n]:={ 1,2,,n}
min ⁡ ∑ j = 1 m y j s . t . ∑ j = 1 m x i j = d i , i ∈ [ n ] x i j ≤ d i y j , i ∈ [ n ] , j ∈ [ m ] x i j ∈ Z + , i ∈ [ n ] , j ∈ [ m ] y j ∈ 0 , 1 , j ∈ [ m ] \begin{aligned} &\min &\sum_{j=1}^m y_j\\ &s.t. &\sum_{j=1}^m x_{ij}=d_i, i\in [n]\\ && x_{ij}\leq d_iy_j,i\in [n], j\in [m]\\ && x_{ij}\in \mathbb{Z}_+, i\in [n], j\in [m]\\ && y_j\in {0, 1}, j\in [m] \end{aligned} mins.t.j=1myjj=1mxij=di,i[n]xijdiyj,i[n],j[m]xijZ+,i[n],j[m]yj0,1,j[m]

Column Generation Formulation

Column generation techniques are possible as the Simplex method only requires some of the variables initially, and the addition of columns that can potentially improve the solution can be delayed. In addition, the simplex method theory of reduced cost allows to define a criterion on wheter a new pattern may or not improve the current solution.

The initial problem with a limited subset of columns is known as the master problem while the problem of generating new columns is known as the sub problem.

The master problem can be intialized with dummy variables with costs which are higher than standard patterns that will be generated later. And, dual values can be used in the sub-problem in charge of generating new pattern with negative (minimization) reduced cost:

The column generation process will then loop on master and sub problems util no new pattern with negative reduced cost can be generated.

猜你喜欢

转载自blog.csdn.net/qq_18822147/article/details/119895326