fbpx
Wikipedia

Column generation

Column generation or delayed column generation is an efficient algorithm for solving large linear programs.

The overarching idea is that many linear programs are too large to consider all the variables explicitly. The idea is thus to start by solving the considered program with only a subset of its variables. Then iteratively, variables that have the potential to improve the objective function are added to the program. Once it is possible to demonstrate that adding new variables would no longer improve the value of the objective function, the procedure stops. The hope when applying a column generation algorithm is that only a very small fraction of the variables will be generated. This hope is supported by the fact that in the optimal solution, most variables will be non-basic and assume a value of zero, so the optimal solution can be found without them.

In many cases, this method allows to solve large linear programs that would otherwise be intractable. The classical example of a problem where it is successfully used is the cutting stock problem. One particular technique in linear programming which uses this kind of approach is the Dantzig–Wolfe decomposition algorithm. Additionally, column generation has been applied to many problems such as crew scheduling, vehicle routing, and the capacitated p-median problem.

Algorithm edit

The algorithm considers two problems: the master problem and the subproblem. The master problem is the original problem with only a subset of variables being considered. The subproblem is a new problem created to identify an improving variable (i.e. which can improve the objective function of the master problem).

The algorithm then proceeds as follow:

  1. Initialise the master problem and the subproblem
  2. Solve the master problem
  3. Search for an improving variable with the subproblem
  4. If an improving variable is found: add it to the master problem then go to step 2
  5. Else: The solution of the master problem is optimal. Stop.

Finding an improving variable edit

The most difficult part of this procedure is how to find a variable that can improve the objective function of the master problem. This can be done by finding the variable with the most negative reduced cost (assuming without loss of generality that the problem is a minimization problem). If no variable has a negative reduced cost, then the current solution of the master problem is optimal.

When the number of variables is very large, it is not possible to find an improving variable by calculating all the reduced cost and choosing a variable with a negative reduced cost. Thus, the idea is to compute only the variable having the minimum reduced cost. This can be done using an optimization problem called the pricing subproblem which strongly depends on the structure of the original problem. The objective function of the subproblem is the reduced cost of the searched variable with respect to the current dual variables, and the constraints require that the variable obeys the naturally occurring constraints. The column generation method is particularly efficient when this structure makes it possible to solve the sub-problem with an efficient algorithm, typically a dedicated combinatorial algorithm.

We now detail how and why to compute the reduced cost of the variables. Consider the following linear program in standard form:

 

which we will call the primal problem as well as its dual linear program:

 

Moreover, let   and   be optimal solutions for these two problems which can be provided by any linear solver. These solutions verify the constraints of their linear program and, by duality, have the same value of objective function ( ) which we will call  . This optimal value is a function of the different coefficients of the primal problem:  . Note that there exists a dual variable   for each constraint of the primal linear model. It is possible to show that an optimal dual variable   can be interpreted as the partial derivative of the optimal value   of the objective function with respect to the coefficient   of the right-hand side of the constraints:  or otherwise  . More simply put,   indicates by how much increases locally the optimal value of the objective function when the coefficient   increases by one unit.

Consider now that a variable   was not considered until then in the primal problem. Note that this is equivalent to saying that the variable   was present in the model but took a zero value. We will now observe the impact on the primal problem of changing the value of   from   to  . If   and   are respectively the coefficients associated with the variable   in the objective function and in the constraints then the linear program is modified as follows:

 

In order to know if it is interesting to add the variable   to the problem (i.e to let it take a non-zero value), we want to know if the value   of the objective function of this new problem decreases as the value   of the variable   increases. In other words, we want to know  . To do this, note that   can be expressed according to the value of the objective function of the initial primal problem:  . We can then compute the derivative that interests us:

 

In other words, the impact of changing the value   on the value   translates into two terms. First, this change directly impacts the objective function and second, the right-hand side of the constraints is modified which has an impact on the optimal variables   whose magnitude is measured using the dual variables  . The derivative   is generally called the reduced cost of the variable   and will be denoted by   in the following.

column, generation, delayed, column, generation, efficient, algorithm, solving, large, linear, programs, overarching, idea, that, many, linear, programs, large, consider, variables, explicitly, idea, thus, start, solving, considered, program, with, only, subse. Column generation or delayed column generation is an efficient algorithm for solving large linear programs The overarching idea is that many linear programs are too large to consider all the variables explicitly The idea is thus to start by solving the considered program with only a subset of its variables Then iteratively variables that have the potential to improve the objective function are added to the program Once it is possible to demonstrate that adding new variables would no longer improve the value of the objective function the procedure stops The hope when applying a column generation algorithm is that only a very small fraction of the variables will be generated This hope is supported by the fact that in the optimal solution most variables will be non basic and assume a value of zero so the optimal solution can be found without them In many cases this method allows to solve large linear programs that would otherwise be intractable The classical example of a problem where it is successfully used is the cutting stock problem One particular technique in linear programming which uses this kind of approach is the Dantzig Wolfe decomposition algorithm Additionally column generation has been applied to many problems such as crew scheduling vehicle routing and the capacitated p median problem Algorithm editThe algorithm considers two problems the master problem and the subproblem The master problem is the original problem with only a subset of variables being considered The subproblem is a new problem created to identify an improving variable i e which can improve the objective function of the master problem The algorithm then proceeds as follow Initialise the master problem and the subproblem Solve the master problem Search for an improving variable with the subproblem If an improving variable is found add it to the master problem then go to step 2 Else The solution of the master problem is optimal Stop Finding an improving variable editThe most difficult part of this procedure is how to find a variable that can improve the objective function of the master problem This can be done by finding the variable with the most negative reduced cost assuming without loss of generality that the problem is a minimization problem If no variable has a negative reduced cost then the current solution of the master problem is optimal When the number of variables is very large it is not possible to find an improving variable by calculating all the reduced cost and choosing a variable with a negative reduced cost Thus the idea is to compute only the variable having the minimum reduced cost This can be done using an optimization problem called the pricing subproblem which strongly depends on the structure of the original problem The objective function of the subproblem is the reduced cost of the searched variable with respect to the current dual variables and the constraints require that the variable obeys the naturally occurring constraints The column generation method is particularly efficient when this structure makes it possible to solve the sub problem with an efficient algorithm typically a dedicated combinatorial algorithm We now detail how and why to compute the reduced cost of the variables Consider the following linear program in standard form min x c T x subjected to A x b x R displaystyle begin aligned amp min x c T x amp text subjected to amp Ax b amp x in mathbb R end aligned nbsp which we will call the primal problem as well as its dual linear program max u u T b subjected to u T A c u R displaystyle begin aligned amp max u u T b amp text subjected to amp u T A leq c amp u in mathbb R end aligned nbsp Moreover let x displaystyle x nbsp and u displaystyle u nbsp be optimal solutions for these two problems which can be provided by any linear solver These solutions verify the constraints of their linear program and by duality have the same value of objective function c T x u T b displaystyle c T x u T b nbsp which we will call z displaystyle z nbsp This optimal value is a function of the different coefficients of the primal problem z z c A b displaystyle z z c A b nbsp Note that there exists a dual variable u i displaystyle u i nbsp for each constraint of the primal linear model It is possible to show that an optimal dual variable u i displaystyle u i nbsp can be interpreted as the partial derivative of the optimal value z displaystyle z nbsp of the objective function with respect to the coefficient b i displaystyle b i nbsp of the right hand side of the constraints u i z b i displaystyle u i frac partial z partial b i nbsp or otherwise u z b displaystyle u frac partial z partial b nbsp More simply put u i displaystyle u i nbsp indicates by how much increases locally the optimal value of the objective function when the coefficient b i displaystyle b i nbsp increases by one unit Consider now that a variable y displaystyle y nbsp was not considered until then in the primal problem Note that this is equivalent to saying that the variable y displaystyle y nbsp was present in the model but took a zero value We will now observe the impact on the primal problem of changing the value of y displaystyle y nbsp from 0 displaystyle 0 nbsp to y displaystyle hat y nbsp If c y displaystyle c y nbsp and A y displaystyle A y nbsp are respectively the coefficients associated with the variable y displaystyle y nbsp in the objective function and in the constraints then the linear program is modified as follows min x c T x c y y subjected to A x b A y y x R displaystyle begin aligned amp min x c T x c y hat y amp text subjected to amp Ax b A y hat y amp x in mathbb R end aligned nbsp In order to know if it is interesting to add the variable y displaystyle y nbsp to the problem i e to let it take a non zero value we want to know if the value z y displaystyle z hat y nbsp of the objective function of this new problem decreases as the value y displaystyle hat y nbsp of the variable y displaystyle y nbsp increases In other words we want to know d z y d y displaystyle frac dz hat y d hat y nbsp To do this note that z y displaystyle z hat y nbsp can be expressed according to the value of the objective function of the initial primal problem z y c y y z c A b A y y displaystyle z hat y c y hat y z c A b A y hat y nbsp We can then compute the derivative that interests us d z y d y z y y d z d y c y z c d c d y z A d A d y z b d b d y c y z b d b d y c y u A y c y u A y displaystyle begin aligned frac dz hat y d hat y amp amp amp frac partial z hat y partial hat y frac dz d hat y amp amp amp c y frac partial z partial c frac dc d hat y frac partial z partial A frac dA d hat y frac partial z partial b frac db d hat y amp amp amp c y frac partial z partial b frac db d hat y amp amp amp c y u A y amp amp amp c y u A y end aligned nbsp In other words the impact of changing the value y displaystyle hat y nbsp on the value z y displaystyle z hat y nbsp translates into two terms First this change directly impacts the objective function and second the right hand side of the constraints is modified which has an impact on the optimal variables x displaystyle x nbsp whose magnitude is measured using the dual variables u displaystyle u nbsp The derivative d z y d y displaystyle frac dz hat y d hat y nbsp is generally called the reduced cost of the variable y displaystyle y nbsp and will be denoted by c r y displaystyle cr y nbsp in the following nbsp This applied mathematics related article is a stub You can help Wikipedia by expanding it vte Retrieved from https en wikipedia org w index php title Column generation amp oldid 1181781951, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.