SearchCol: Metaheuristic Search by Column Generation

3 downloads 0 Views 226KB Size Report
M. E. Lübbecke, J. Desrosiers: Selected topics in column generation, Operations ... Daniel Villeneuve, Jacques Desrosiers, Marco E. Lübbecke, François ...
SearchCol: Metaheuristic Search by Column Generation Filipe Alvelos1 , Amaro de Sousa2 , and Dorabella Santos3 1

Departamento de Produ¸ca ˜o e Sistemas / Centro de Investiga¸ca ˜o Algoritmi Universidade do Minho, Portugal [email protected] 2 Instituto de Telecomunica¸co ˜es – P´ olo de Aveiro Departamento de Electr´ onica, Telecomunica¸co ˜es e Inform´ atica Universidade de Aveiro, Portugal [email protected] 3 Instituto de Telecomunica¸co ˜es – P´ olo de Aveiro, Portugal [email protected]

Abstract. We propose a general framework for the combination of column generation (CG) with metaheuristics (MHs) aiming to solve combinatorial optimization problems amenable for decomposition approaches, “SearchCol”. The combination of the two approaches is based on representing the solution of the problem as the selection of a subset of solutions of smaller (sub)problems which are generated by CG. In each iteration of a SearchCol algorithm, CG provides the optimal solution (primal and dual) to the MH which returns a (incumbent) solution used for defining the (perturbed) CG problem of the next iteration. We describe the SearchCol framework and a general SearchCol algorithm based on local search. Keywords: Combinatorial optimization, Column generation, Hybrid metaheuristics, Matheuristics

1

Introduction

Metaheuristic search by column generation, “SearchCol” for short, is a general approach to obtain approximate solutions for combinatorial optimization problems. The core idea of SearchCol is that the decomposition context provided by column generation (CG) is a powerful base for the definition of metaheuristics (MHs). The aim is to obtain good quality solutions in short times through the exchange of information between CG and MH search. SearchCol assumes that a solution of a problem is a combination of solutions of smaller (sub)problems (SPs) which are generated by a CG algorithm. Global constraints (i.e. constraints imposed on subsets of subsolutions from more than one SP) establish the relation between the SPs. Solutions generated by the SPs (which are seen by SearchCol as “black-boxes”) are treated without any problem specific knowledge. Each iteration of SearchCol has two phases. In the first, CG is applied to obtain an optimal solution to the linear programming relaxation of the

problem and solutions from the SPs (associated with the columns of the so-called restricted master problem (RMP)). In the second phase, using the information of CG, a restricted search space is defined and a MH search is conducted. At the end of the second phase, a perturbation on the CG algorithm is introduced by the incumbent solution and a new iteration starts. Several variants can be implemented in an actual SearchCol algorithm. In this paper, we introduce the general ideas of the SearchCol framework and its most basic components. We also describe a general SearchCol algorithm based on local search. A core ingredient of SearchCol is CG, a decomposition approach driven by linear programming, where SPs can be tackled by any optimization algorithm. Although their first developments, due to Ford and Fulkerson [10] and Dantzig and Wolfe [6], have more than 50 years, CG is still an active field of research. We believe there are two main reasons for that. Firstly, the availability of computational tools have simplified and turned more robust the implementation of CG based algorithms, exposing their advantages over other approaches where no decomposition or less computationally demanding decomposition methods (such as subgradient methods) are used. Secondly, CG has been successfully applied on a wide range of problems as, for example, the ones mentioned in [8] and [15]. In recent years, the combination of CG and branch-and-bound (branch-andprice) with or without the inclusion of cuts from polyhedral theory (branch-andcut-and-price) has been a major research topic, allowing remarkable results in obtaining proven optimal solutions for relevant problems, like vehicle routing problems [11]. Besides the use of CG on these powerful exact algorithms, recent research has also been directed to improve its convergence properties [2, 4, 14]. Two main motivations (co)exist for the development of a CG based algorithm. Firstly, it is based on a decomposition approach. Even if a compact model exists (a model where the growth of the number of variables and constraints with respect to the data of the problem is bounded by a polynomial), many times such a model is so large that the possibility of solving it directly, in an efficient way, is ruled out. In such cases, a decomposition approach is attractive since solutions to parts of the model can be obtained by solving smaller SPs and, then, combined to form a solution to the overall problem. Note that most of the practical problems (for many examples, see [17]), for which a compact model can be devised, have some kind of structure that can be used to identify submodels within the model. Thus, even if it is feasible to solve the compact model, many times CG based algorithms are an appealing approach due to their efficiency when compared to other approaches. The decomposition framework can be even extended to problems where the sub-models are not formulated with linear or integer programming. Those can be nonlinear (as is usual in routing and scheduling applications, where, typically, the nonlinear SPs are solved by dynamic programming [9]) or formulated with constraint programming (as, for example, in [19]). The SPs may also take advantage of heuristic solution methods although, if an optimal solution is desired, an exact SP solver is required (see, for example, [20] for a combination of heuristic and exact SP solvers).

A second motivation is a fundamental one when dealing with integer programming models. In those models, a major issue when they are dealt with by methods based on bounds given by relaxations (such as branch-and-bound) is their quality. Alternative models with a huge number of columns, under certain circumstances, give better lower/upper bounds (if a minimization/maximization problem is considered). A classical illustration is the pioneering work of Gilmore and Gomory in the cutting stock problem [12, 13] where a CG algorithm is devised to obtain “good” linear solutions that are then rounded by a heuristic. Most CG based algorithms have been developed in the context of exact methods, where a proven optimal solution to NP-hard problems is desired. With SearchCol, we propose the combination of CG and MH for achieving good quality solutions in short running times. We take a combinatorial perspective of the problem to be solved. Instead of using branching strategies for solving the “integer” master problem, we see the problem as selecting one solution of each SP. The rationale is that this decomposition-based combinatorial perspective provides a solution’s space which can be efficiently and effectively searched. CG is used not only to define the restricted search spaces but also to guide the search of MHs. The first step of SearhCol is to solve a linear programming model which provides a lower bound (in a minimization problem) to the value of the optimal solution. This lower bound may be useful to overcome two usual drawbacks of MHs: the lack of a measure of the quality of the solution obtained and the lack of a well-defined stopping criterion. There is a fairly large literature on the combination of decomposition methods (CG and Lagrangean relaxation methods) and (meta)heuristics. The vast majority is devoted to specific problems. One exception is [5] where a framework for combing approximate methods with CG is proposed. In that work, MHs are applied in the nodes of the branch-and-price tree for improving the incumbent solution and generating new columns. The resulting hybrid approach is applied to a vehicle routing problem where the master problem has a very specific structure (set partitioning) with only one set of constraints and no convexity constraints. We now discuss SearchCol in the context of the classification for hybrid MHs proposed in [21]. Figure 1 represents the SearchCol basic components. The two main blocks are CG and MH search. The CG has two components corresponding to the linear programming RMP and to the SP that can be solved by any algorithm (in fact, we assume at least one exact algorithm exists for each SP). In the Figure, the MH block has only the components discussed in this paper, although other components can easily be incorporated in the SearchCol framework. According to the classification of [21], the kind of algorithms that are hybridized define the first differentiation criterion. In SearchCol, at least three algorithms must exist: a linear programming algorithm, a (hybrid) metaheuristic and an algorithm for solving the SP. As previously explained, SearchCol can combine any type of algorithm. The second differentiation is the strength of combination. In SearchCol, CG influences MH and the reverse is also true (see details in Section 3). As the algorithms retain their own identities, there is a low

level of hybridization (still following the categorization of [21]). Note that this weak coupling is a consequence of the generality of the approach. The order of execution is interleaved and the combination is collaborative: the CG and the MH exchange information but none is subordinated to the other.

Fig. 1. Basic components of the Searchcol framework.

This paper is organized as follows. In the next section, we introduce the types of problems suitable for SearchCol and establish the link between CG for integer programming and MH by taking a combinatorial perspective over the CG’s master problem. In Section 3, we detail the components of the SearchCol framework for a particular case (used for clarity of exposition). The general problem is described in Section 4. In Section 5, we describe how the SearchCol components can be combined in an actual algorithm. In the last section, we summarize the conclusions of the paper.

2 2.1

Decomposition based approaches and column generation Applications and the optimization problem

A large number of optimization problems can be decomposed in different SPs where each SP is defined in a similar way. Let us consider some examples with references to pioneer decomposition approaches. In a production planning over a temporal horizon, the decision on the number of products of each product type to be produced, given a set of common production resources, can be defined by a similar problem for each product [16]. In vehicle routing [7], the route determination is a similar problem for each vehicle (in the simplest variant where all vehicles have the same characteristics, the problem is equal for all vehicles).

In the generalized assignment problem, where a set of jobs must be assigned to a set of agents with limited capacity, the determination of the jobs assigned to agents is a similar problem for each agent [23]. In machine scheduling, where a set of tasks must be scheduled in a set of machines, the determination of the tasks assigned to machines is a similar problem for each machine [1]. Note that in general, an optimization problem can be addressed through different decompositions and solution techniques efficiency might be different between them (for comparisons of different decompositions on the same problem, please see [3], [18], and [22]). When an optimization problem can be decomposed by a set of similar SPs, the overall problem can be defined by an integer programming model, which we define as problem (P ), in the following way: (P ) Min

X X

ckj yjk

(1)

k∈K j∈J k

subject to X yjk = 1

k ∈ K := {1, ...h}

(2)

i ∈ I := {1, ..., m}

(3)

j∈J k

X

akij yjk {≤, =, ≥}bi

j∈J k

yjk ∈ {0, 1}

k ∈ K, j ∈ J k

The set of variables of (P ) are partitioned in h subsets, indexed by k. For each subset k, the set of indexes of the corresponding decision variables, yjk , is represented by J k . The column associated with variable yjk has a coefficient ckj in the objective function (1), a coefficient 1 in the k-th constraint (2), and coefficient akij in constraints (3). A decision variable, yjk , is equal to one if the j-th solution of the k-th subset is chosen and 0, otherwise. Constraints (2) state that one subsolution of each subset must be in the solution. Constraints (3) are global, as they include variables from different subsets. A sketch of the match of the previous examples and (P ) is given in Table 1. 2.2

Unifying CG algorithms

Relation with Dantzig-Wolfe decomposition A fundamental issue when solving (P ) is that, typically, it has a huge number of variables/columns. It is well known that, when solving the linear relaxation of (P ), this huge number of columns is amenable by CG if the problem (P ) results from a Dantzig-Wolfe decomposition [6] of a compact model. In that case, a SP results directly from a set of constraints of the compact model and the CG algorithm is based on solving the SP at the dual (optimal) solution of a restricted version of (P ) (the RMP) for obtaining variables with negative reduced costs which are then introduced in the RMP as columns (by column, we mean the coefficient of a variable in the objective

Table 1. Examples of problems that fit the decomposition framework. Problem Decomposition by... One variable of subset k represents a... Production planning product production plan of the k-th product Vehicle routing vehicle route of the k-th vehicle Generalized assignment agent subset of tasks assigned to the k-th agent Machine scheduling machine schedule for the k-th machine Problem Production planning Vehicle routing Generalized assignment Machine scheduling

Global constraints (3) A variable is included in subset k have to do with... only if it meets... the availability of common the production requirements resources required for production of the k-th product (for example, (e.g., machine capacities) forced by existing demand) constraints imposed the route and vehicle constraints on the fleet of vehicles (e.g., a route must end at a depot and (e.g., must visit all clients) vehicle capacity cannot be exceeded) constraints imposed on the capacity of the the group of agents (e.g., all k-th agent tasks must be performed) constraints imposed on jobs machine constraints (e.g., all jobs must be done) (e.g., release time, two tasks cannot be made at the same time)

function and all its coefficients in the constraints). One optimal solution to the linear relaxation of (P ) is obtained when no variables with negative reduced costs are found in the SP when solved at an optimal dual solution of the RMP. Unifying Type II and III of CG approaches As proven in [24], there is always at least one compact model in which the application of a Dantzig-Wolfe decomposition results in (P ). The compact formulation may not be known explicitly, but the relevant set of variables for the definition of a column in (P ) and an algorithm able to generate the minimum reduced cost column at any dual solution, are usually easy to identify. This result provides a strong link between the two types of column generation algorithms defined in [25]: the type in which a Dantzig-Wolfe decomposition is applied in a compact model (type III) and the type in which a Dantzig-Wolfe decomposition is not present (type II). Furthermore, it allows the definition of a SP in a much more general way than the one provided by Dantzig-Wolfe decomposition. This general definition is the one used by SearchCol and is detailed in the following subsection. Note that although the concept of original variable does not exist in this perspective, SP’s variables play the same role when devising perturbations in the master problem (as branching constraints in a branch-andprice context). 2.3

Subproblem

The SP is responsible for generating the minimum reduced cost column of (P ). For that purpose, we introduce a vector of decision variables of a SP k represented by xk . We do not make any assumption on the type of these variables, but we remark that, usually, at least some of them are binary. We also assume that

the feasible set of solutions, X k is bounded. We represent the dual variables associated with the convexity constraints (2) of (P ) by π k , k = 1, ..., h and the dual variables associated with global constraints (3) by ωi , i = 1, ..., m. A solution xk∗ associated with a minimum reduced cost column of (P ) at a fixed dual solution is an optimal solution of problem (SP k ): (SP k ) zSP k = Min

f0k (xk ) − π k −

X

ωi fik (xk )

(4)

i∈I

subject to xk ∈ X k where f0k (xk ) is a function that returns the objective coefficient of the column associated with solution xk , i.e., the value ckj for the solution associated with the j-th column of SP k. Similarly, fi (xk ) is a function that returns the coefficient of the column associated with xk in the i-th global constraint, i.e., the value akij . 2.4

CG algorithm

Figure 2 shows a CG algorithm that determines an optimal solution for the linear relaxation of (P ). We note that the objective modification of the SP stated in line 7 corresponds to (4). The calculation of the column of line 11 is based on, for the optimal solution of the SP k, xk∗ , obtaining the associated coefficient in the objective function, c∗ = f0 (xk∗ ) and the associated coefficients in constraints, k k∗ 1 for the k − th convexity constraint and ak∗ i = fi (x ) for the i − th global constraint. Note that this algorithm is the first step of the branch-and-price method to solve the integer programming model (P ). After this first step, each node of the branch-and-bound search tree is also solved by column generation. In SearchCol, the linear relaxation of (P ) is also solved by the CG algorithm in the first step but, then, no implicit enumeration strategy is used. Instead, SearchCol uses MH search in a restricted search space defined by the SP’s solutions associated with the columns of the RMP. These solutions are inserted in a pool (line 13 of the CG algorithm) during the execution of the CG algorithm. This restricted search space may be enlarged by applying again the CG algorithm with some modifications or reduced by removing solutions from the pool. Strategies to modify the restricted search space will be described later in the next section.

3 3.1

SearchCol framework Overview

SearchCol is the combination of CG and MH search. CG is used to solve the linear relaxation of (P ). At the end of the optimization, an “optimal” RMP (in the

1: Initialize the RM P and the SPs SP k , k ∈ K 2: repeat 3: Optimize the RM P 4: π, ω ← optimal duals from the RM P 5: end ← true 6: for all k ∈ K do Modify the objective function of SP k according to π k and ω 7: 8: Optimize SP SP k 9: zSP k ← optimal value of SP k 10: if zSP k < 0 then Obtain the RMP column associated with the optimal solution of SP k 11: 12: Update the RMP by adding that column 13: Save the optimal solution of SP k in the solution pool of SP k 14: end ← f alse 15: end if 16: end for 17: until end = true Fig. 2. Column generation algorithm.

sense that its solution is optimal to the linear relaxation of (P )) is available. Then a MH search is started. The search is influenced by the information provided by the optimal RMP and also by the current incumbent solution. When the search ends, the incumbent solution is used to modify the RMP problem and a new iteration begins. Two stopping criteria are defined: (i) the relative gap (given by |zinc − zLR |/|zinc | where the zinc is the value of the incumbent solution and zLR is the value of the linear relaxation) smaller than a given parameter and (ii) a given number of iterations without improvement of the incumbent solution. The core idea of the search phase of SearchCol is to look at (P ) as a combinatorial problem: we have to select one element from each subset J k , k ∈ K, such that the sum of the costs associated with each selected element is minimum and the global constraints (3) are fulfilled. Since the number of columns is huge, information provided by optimal RMPs is used to define restricted search spaces where, hopefully and reasonably, good quality integer solutions will be found. Taking this combinatorial perspective, a (global) solution can be represented as s = (s(1), s(2), ..., s(h)) where s(k), k ∈ K represents the index of the columm of SP k included in solution s (note that this representation does not rely on any problem specific characteristic). In the next subsections, we describe the basic search components of the SearchCol framework. The search phase uses information provided by the last optimal RMP. In particular, the search phase may use the value of each column (the primal solution of the optimal RMP), its reduced cost, and the dual solution (duals of the convexity constraints and of the global constaints), depending on the components selected for an actual SearchCol algorithm.

3.2

Defining the restricted search space

Depending on the number of solutions of each SP generated during the CG phase, the search space may be extremely large. Defining the number of solutions associated with SP k as nk , then the restricted search space has n1 × n2 ×...×nh global solutions. Defining nmin = min{n1 , n2 , ..., nh } and nmax = max{n1 , n2 , ..., nh } then the number of solutions, n, in the restricted search space has a value between (nmin )h and (nmax )h . A small value of n may restrict the search space too much, while a large value of n may turn the search too heavy. A balance between these two extremes must be achieved in an actual SearchCol algorithm. Noting that an upper bound to the dimension of the basis of the linear relaxation is h + m, a value of α(h + m) with α ≥ 1 is adequate. If the search space exceeds this value, solutions associated with the columns with larger reduced cost are removed from the search space. 3.3

Evaluating solutions

SearchCol uses different ways of evaluating feasible and infeasible solutions. A feasible solution compares favourably with an infeasible solution. The values given by the feasible (infeasible) evaluation function are only used for comparing two feasible (infeasible) solutions. In any evaluating function, a smaller value is better than a larger one. A feasible solution can be evaluated in two different ways. The first way is by using its real cost and the second way is by using its reduced cost: Ã ! X X P k k k k evalf eas2 (s) = evalf eas1 (s) = k∈K cs(k) cs(k) − π − ωi ais(k) k∈K

i∈I

The rationale behind the evaluation by real cost is straightforward. The rationale behind the evaluation by reduced cost is the minimization of the violation of the complementary slackness conditions of the primal variables when s replaces the optimal solution of the linear relaxation. Note that if a column in s has a positive value in the optimal solution of the linear relaxation, then it has a zero reduced cost. If all columns belonging to s have zero reduced costs, evalf eas2 (s) = 0, and all complementary slackness conditions of the primal variables continue to be fulfilled when the primal solution of the linear relaxation is replaced by s. When a column of s has a zero value in the optimal solution of the linear relaxation, its reduced cost is positive (excluding degeneracy). When the optimal solution of the linear relaxation is replaced by s, the reduced cost of that column measures its contribution to the violation of the complementary slackness conditions. SearchCol defines five functions for evaluating infeasible solutions. Let us first introduce some notation. We consider the slack of a constraint i in a solution s P given by ui (s) = k∈K akis(k) −bi . We set wi = 1 when constraint i is violated and wi = 0 otherwise. We quantify the violation of a constraint i as vi (s) = |ui | · wi , i.e., it is null for a non-violated constraint and it is the absolute value of its slack

otherwise. We define two alternative factors to replace the value of a dual variable when its value is zero. In the first, σmin = mini∈I {|ωi | : ωi 6= 0}. In the second, σmax = maxi∈I {|ωi | , i ∈ I}. Finally, we define pimin = σmin if ωi = 0 and pimin = |ωi |, otherwise, i ∈ I. We define pimax in a similar way. The infeasibility evaluation functions are: evalinf eas1 (s) =

X

pimin vi (s)

evalinf eas3 (s) =

i∈I

evalinf eas2 (s) =

X i∈I

X

wi (s)

i∈I

pimax vi (s)

evalinf eas4 (s) =

X

vi (s)

i∈I

evalinf eas5 (s) = max{vi (s)} i∈I

In the first two evaluation infeasibility functions the violation of the constraints are weighted by their duals (or by a constant when their duals are zero avoiding evaluating with zero a violated constraint). The third evaluation function just counts the number of constraints being violated. The fourth evaluating function corresponds to the sum of the absolute violations of all constraints. The fifth evaluation function considers only the absolute violation of the constraint which is being more violated. 3.4

Initial solutions

The actual SearchCol algorithm detailed in this paper uses multi-start local search as the core of the search phase. Different procedures for generating solutions from scratch and based on the perturbation of a given (incumbent) solution are proposed. Their use may co-exist in an actual SearchCol algorithm. Deterministic creation. For each SP, we select the solution associated with the variable with the highest value in the optimal solution of the last solved RMP. (Weighted) random creation. We consider two variants. For each SP, we define the weight of a solution as the value of its associated variable in the optimal solution of the last solved RMP. In the weighted random creation, we randomly select a solution for each SP with a probability given by its weight. In the pure random creation, an uniform distribution is used instead of the weights. (Deterministic/randomized) greedy construction. In the deterministic variant, a permutation of the SPs is first defined by sorting in non-increasing order the absolute value of the duals of the convexity constraints. Then, a solution is built incrementally by taking each SP in turn and selecting the SP’s solution which causes the smallest increase in the current evaluation function. The rationale is that the SPs with higher influence on the optimal value of the linear relaxation (measured by the convexity duals) should have priority in selecting their solution. In the randomized variant, the permutation of the SPs is randomly chosen.

(Convexity based) solution modification. A solution is built by modifying a given solution on a number of SPs given by an input parameter (if it is 0.5, half of the SPs are selected for modification). For each of these SPs, a new solution is randomly selected. The SPs are randomly selected in the pure solution modification, or based on their convexity dual values of the last solved RMP in convexity based solution modification. 3.5

Neighborhood structure and local search

The neighborhood structure of SearchCol is based P on the modification of a solution of a SP. The size of the neighborhood is k∈K (nk − 1) which is amenable for a maximum descent local search as long as the number of solutions of the SPs is kept in reasonable sizes. 3.6

Perturbed CG

At the end of the search phase, an incumbent solution is available and it is used to perturb the CG phase of the next iteration. The aim is to lead the CG algorithm to generate SP solutions / columns which can improve the current incumbent. In order to keep the procedure independent of the problem, this is accomplished by using the global constraints to identify SP variables to forbid in the next RMP. Forbidding columns / SP solutions from being part of the optimal solution of an RMP is similar to perform a down branching (on the SP’s variables) in branch-and-price and is easily achieved by removing the RMP columns which include the forbidden variables and removing them also from the SP. We propose three ways, which can be used in conjunction, of defining which SP variables are forbidden. In the first, we forbid all the SP variables which contribute to the violation of rows being violated by the incumbent solution. In the second, we forbid SP variables which belong to the incumbent solution and contribute to left hand side being equal to the right hand side of the constraints having zero slack and the higher (absolute) duals. In the third, we forbid a randomly selected set of SP variables belonging to the incumbent solution. In the last two cases, we use a parameter to set the proportion of rows / SP variables to be considered / forbidden.

4

The general problem

Problem (P ) is a particular case of the more general problem with two additional sets of variables. The first set is the one composed by variables y0k , k ∈ K, which are used when parameter δ is equal to 1. In such cases, a global solution does not include a solution for SP k when y0k = 1 (variables y0k may be seen as the slacks of the convexity constraints). The introduction of these variables allows SearchCol to represent the solutions as before, extending its applicability to problems where

the number of SP solutions used in a global solution is not known a priori and might even be the value to optimize. The second set in the one composed by continuous variables yj0 which are not associated with any SP (J 0 defines this set). SearchCol deals with these variables by fixing them with their optimal values (given by the RMP) before each search phase begins. With this approach, the search is done in the very same way as described before. The general problem, (G), is given by: (G)

Min

X

X X

c0j yj0 +

k∈K

j∈J 0

ckj yjk

j∈J k

subject to X yjk = 1 δy0k + X

j∈J k

a0ij yj0 +

j∈J 0

5

X

akij yjk {≤, =≥}bi

k ∈ K := {1, ...h} i ∈ I := {1, ..., m}

j∈J k

yjk ∈ {0, 1}

k ∈ K, j ∈ J k

y0k ∈ {0, 1}

k∈K

yj0 ≥ 0

j ∈ J0

SearchCol algorithm

A SearchCol algorithm can be seen as having two cycles. The outer cycle corresponds to the CG phase, where a (pertubed) CG is optimized and a pool of solutions of SPs is defined. The inner cycle correspond to the MH search phase. Using multi-start local search, this phase corresponds to a set of runs of a local search algorithm, each one starting at a different solution (possibly, obtained from a perturbation of another one). The parameters of the actual SearchCol algorithm are given in Table 2 and the multi-start local search SearchCol algorithm is shown in Figure 3. Some of the parameters were already described in the previous subsections, while others are related with the different alternatives proposed in the previous subsections. The parameter size restricted space is the α introduced in subsection 3.2. For evaluating feasible solutions (subsection 3.3), two different situations are considered. Parameter f easibility evaluation incremental defines the function to be used when constructing a solution. Note that evaluation by reduced cost may be more suitable in this case, because when using the original costs in a greedy procedure, it is very likely that the solutions obtained will be infeasible (as no information of the global constraints is taken into account). Parameter f easibility evaluation f ull defines the function to be used when evaluating a global solution. Typically, the original costs should be used. Each infeasibility evaluation function of subsection 3.3 corresponds to a value of parameter

Table 2. Parameters for multi-start local search SearchCol. Parameter Meaning size restricted space Removal of columns of the RMP f easibility evaluation incremental Feasibility evaluation function for constructive procedures f easibility evaluation f ull Feasibility evaluation function for full solutions inf easibility evaluation Infeasibility evaluation function f irst solution Generation of the first solution initial inner solution Generation of the initial solution of each inner iteration (except the first) initial outer solution Generation of the initial solution of each outer iteration (except the first) colgen perturbation Perturbation of the column generation stop inner iterations Maximum number of inner iterations stop outer iterations Maximum number of outer iterations stop relative gap Relative gap tolerance

inf easibility evaluation. Parameter f irst solution is used for defining how the first incumbent solution (which, of course, can be infeasible) is generated. Any method of subsection 3.4 not relying on a previous solution can be used. For example, using deterministic creation corresponds to round the optimal solution of the RMP. Parameter initial inner solution is used for defining how the solution used as the initial solution in each run of the multi-start local search algorithm of the inner cycle (except the first which is defined by f irst solution or initial outer solution) is generated. Any method of subsection 3.4 can be used. Methods based on perturbing a solution may use the incumbent solution or the local optimum obtained in the previous run of local search. Parameter initial outer solution is used for defining how the solution used as the initial solution of the first run of the inner cycle (except the first which is defined by f irst solution) is generated. Any method of subsection 3.4 can be used. Methods based on perturbing a solution use the incumbent solution. For simplicity of notation, we represent only a parameter related with the perturbation of CG, colgen perturbation. In fact, a set of parameters corresponding to the pertubation methods described in subsection 3.6 are used. Parameter stop inner iterations corresponds to the maximum number of runs of the multistart local search algorithm without improvement of the best solution found in the inner cycle. Parameter stop outer iterations corresponds to the maximum number of outer iterations without improvement of the incumbent solution and is used to define one of the two stopping criteria. The other stopping criterion is if a solution with relative gap less than or equal to stop relative gap was found. Concerning the SearchCol algorithm (Figure 3), the outer cycle, which corresponds to the CG phase, starts after the initializations (line 5). Its mais components are the application (line 6) and the perturbation (line 42) of CG. The inner cycle, which corresponds to the MH phase, is associated with lines 20 to 36. In each iteration of the inner cycle, a local search algorithm is applied (line 24) starting from different solutions. The stopping conditions of both cycles have to do with the number of iterations without improvement, which are

5:

10:

15:

20:

25:

30:

35:

40:

Initialize CG Set the evaluation functions according to f easibility evaluation incremental, f easibility evaluation f ull and inf easibility evaluation Value of the incumbent solution ← ∞ outer iterations ← 0 while outer iterations ≤ stop outer iterations and current gap ≤ stop relative gap do Apply CG Define the restricted search space according to size restricted space if First outer iteration then Generate current solution according to f irst solution else Generate current solution according to initial outer solution end if if current solution is better than incumbent solution then incumbent solution ← current solution outer iterations ← 0 Update current gap end if inner iterations ← 0 best inner solution ← current solution while inner iterations ≤ stop inner iterations do if Not the first inner iteration then Generate current solution according to initial inner solution end if Apply LS if current solution is better than best inner solution then best inner solution ← current solution inner iterations ← 0 if current solution is better than incumbent solution then incumbent solution ← current solution incumbent solution was updated Update current gap end if else inner iterations ← inner iterations + 1 end if end while if incumbent solution was updated then outer iterations ← 0 else outer iterations ← outer iterations + 1 end if Perturb CG according to colgen perturbation end while Fig. 3. SearchCol algorithm based on multi-start local search.

counted by outer iterations and inner iterations. An improvement in the inner cycle is related with the initial solution of the inner cycle and not with the incumbent solution. Therefore the best solution of the inner cycle is kept (best inner solution). As described before, the way the initial solutions are generated depends on the iteration, allowing, for example, (i) the first incumbent to be obtained by rounding, (ii) the initial solution of an outer iteration (except the first of all) to be given by perturbing the incumbent solution, and (iii) the initial solution of an inner iteration (except the first) to be given by perturbing the last local optimum.

6

Conclusions

We have proposed metaheuristic search by column generation, SearchCol. SearchCol combines linear programming decomposition techniques (column generation), problem specific algorithms and metaheuristics in a common framework. We described a general column generation model that hides variables from an (implicit) compact model in a subproblem and defines restricted spaces where a search is conducted without any problem-specific information. A SearchCol algorithm based on multi-start local search for a general decomposable problem (which may include continuous variables) was presented.

Acknowledgements This work have been partially funded by FCT (Funda¸c˜ao para a Ciˆencia e a Tecnologia - Portugal) through project ”SearchCol: Metaheuristic search by column generation” (PTDC/EIA-EIA/100645/2008) and through the post-doc grant SFRH/BPD/41581/2007 of D. Santos.

References 1. J. M. van den Akker, J. A. Hoogeveen, S. L. van de Velde: Parallel machine scheduling by column generation, Operations Research 47, 862–872 (1999) 2. H. Ben Amor, J. Desrosiers, and J. M. Val´erio de Carvalho: Dual-optimal inequalities for stabilized column generation, Operations Research 54, 454–463 (2006) 3. F. Alvelos and J. M. Val´erio de Carvalho: Comparing branch-and-price algorithms for the unsplittable multicommodity flow problem, In proceedings of the INOC - International Network Optimization Conference, W. Ben-Ameur, A. Petrowski (Eds.), Evry/Paris, 7-12 (2003) 4. F. Alvelos and J. M. Val´erio de Carvalho: An Extended Model and a Column Generation Algorithm for the Planar Multicommodity Flow Problem, Networks 50, 3–16 (2007) 5. E. Danna and C. L. Pape: Branch-and-Price Heuristics: A Case Study on the Vehicle Routing Problem with Time Windows, in G. Desaulniers, J. Descrosiers, M.M. Solomon (eds.), Column Generation, Springer Science and Business Media, New York, Ch. 4 (2005)

6. G. B. Dantzig and P. Wolfe: Decomposition principle for linear programs, Operations Research 8, 101–111 (1960) 7. J. Desrosiers, F. Soumis, M. Desrochers: Routing with time windows by column generation, Networks 14, 545–565 (1984) 8. G. Desaulniers, J. Desrosiers, M. M. Solomon (eds.): Column Generation, Springer, New York (2005) 9. J. Desrosiers, Y. Dumas, M. M. Solomon, F. Soumis: Time Constrained Routing and Scheduling, Network Routing, eds. M. O. Ball, T. L. Magnanti, C. L. Monma, G. L. Nemhauser. North Holland, Amsterdam, 35–139 (1995) 10. L. R. Ford and D. R. Fulkerson: A suggested computation for maximal multicommodity network flows, Management Science 5, 97–101 (1958) 11. R. Fukasawa, H. Longo, J. Lysgaard, M. Poggi de Arag˜ ao, M. Reis, E., Uchoa, and R. F. Werneck: Robust Branch-and-Cut-and-Price for the Capacitated Vehicle Routing Problem, Mathematical Programming, Series A 106, 491–511 (2006) 12. P. C. Gilmore, R. E. Gomory: A linear programming approach to the cutting stock problem, Operations Research 9, 849–859 (1961) 13. P. C. Gilmore, R. E. Gomory: A linear programming approach to the cutting stock problem - Part II, Operations Research 11, 863–888 (1963) 14. Dong Liang and Wilbert E. Wilhelm: A generalization of column generation to accelerate convergence, Mathematical Programming, Series A 122, 349–378 (2010) 15. M. E. L¨ ubbecke, J. Desrosiers: Selected topics in column generation, Operations Research 53, 1007–1023 (2005) 16. Alan S. Manne: Programming of Economic Lot Sizes, Management Science 4, 115– 135 (1958) 17. R. K. Martin: Large Scale Linear and Integer Optimization, A Unified Approach, Kluwer Academic Publishers (1999) 18. C. Pimentel, F. P. Alvelos, J. M. Val´erio de Carvalho: Comparing Dantzig-Wolfe decompositions and branch-and-price algorithms for the multi-item capacitated lot sizing problem, Optimization Methods and Software 25, 299–319 (2010) 19. D.Pisinger, M. Sigurd: Using decomposition techniques and constraint programming for solving the two-dimensional bin-packing problem, INFORMS Journal on Computing 19, 1007–1023 (2007) 20. Jakob Puchinger and G¨ unther R. Raidl: Models and algorithms for three-stage twodimensional bin packing, European Journal of Operational Research 183, 1304–1327 (2007) 21. G¨ unther R. Raidl: A Unified View on Hybrid Metaheuristics, in Hybrid Metaheuristics, 1–12 (2006) 22. D. Santos, A. de Sousa, F. Alvelos: Traffic Engineering of Telecommunication Networks based on Multiple Spanning Tree Routing, Lecture Notes on Computer Science 5464, Springer, 114 – 129 (2008) 23. M. Savelsbergh: A branch-and-price algorithm for the generalized assignment problem, Operations Research 45, 831–841 (2007) 24. Daniel Villeneuve, Jacques Desrosiers, Marco E. L¨ ubbecke, Fran¸cois Soumis: On Compact Formulations for Integer Programs Solved by Column Generation , Annals of Operations Research 139, 375–388 (2005) 25. Wilhelm, W. E.: A technical review of column generation in integer programming, Optimization and Engineering 2, 159-200 (2001)