Solution approach
3.8 The column generation framework
A distribution pattern is a single vehicle replenishing a subset of customers at a certain cost rate. What we need to nd is a collection of distribution patterns such that (i) every customer is replenished by one of the vehicles and (ii) the sum of the cost rates of these distribution patterns is minimal.
In other words, a partition of the set of customers S into disjoint subsets, each covered by a separate distribution pattern, needs to be found, such that the sum of cost rates of the distribution patterns is minimal. If we let DP denote the collection of all distribution patterns, this problem is formulated as follows.
(MP) Minimize TCR = X
d2DP
CdXd subject to:
X
d2DP
AdjXd= 1 8j 2 S (3.1)
Xd2 f0; 1g 8d 2 DP
where Cd is the cost rate of distribution pattern d 2 DP , and Adj is the binary matrix stating whether distribution pattern d 2 DP covers customer j 2 S or not. The binary variable Xd indicates whether distribution pattern d 2 DP is selected or not.
The set DP of possible distribution patterns, i.e. the number of columns in prob-lem (MP), is innitely large. Therefore, we need an ecient way of producing only the most promising distribution patterns in DP , such that a (near-)optimal solution for the problem is quickly reached. This consideration made us decide on adopting a column generation framework. The column generation procedure consists of the following steps.
1. The set of distribution patterns DP is initiated with the jSj `basic' dis-tribution patterns, i.e. those that visit only one customer. A separate distribution pattern is thus constructed for each customer, and the initial matrix A is the identity matrix.
2. The linear programming relaxation of the `restricted' master problem (MP) is solved. The relaxation consists in the fact that the Xdvariables are allowed to take fractional values, while the restriction is in the fact that DP is only a subset of all possible distribution patterns.
3.8 The column generation framework 77
3. The LP-relaxed solution gives us a dual price for each of the customers,
j; 8j 2 S. These dual prices are obtained from Constraints (3.1).
4. The dual prices of the customers are used in an attempt to construct new distribution patterns with negative reduced cost rates. This is the column generation subproblem.
(a) Use the dual prices j as customer priorities.
(b) Perform the adjusted savings heuristic, using reduced cost rates, to construct a solution and apply the improvement heuristic to it.
(c) Perform the insertion heuristic to construct a solution and apply the improvement heuristic to it.
If new distribution patterns with negative reduced cost rates are found in steps (b) and (c), they are added to the set DP and the corresponding columns are added to the matrix A. The process then returns to Step 2.
If no such distribution patterns are found, we move to Step 5.
5. The restricted master problem is solved to integrality (Xd 2 f0; 1g) to provide the nal solution. Remember that DP is now the set of all dis-tribution patterns generated during the column generation process.
Column generation
Column generation is a strategy to extend a linear program columnwise as needed in the solution [24]. When the subproblem of nding the least reduced cost column is solved optimally, column generation is an exact solution ap-proach for linear programs.
When applied to integer linear programs, column generation does not guarantee an optimal solution, but still it is often used for the following two purposes.
The optimal solution of the LP-relaxed master problem can be used as a lower (or upper) bound for the integer optimum. This bound can be used to evaluate heuristic solution approaches.
Column generation can be combined with branch-and-bound in optimal, so-called branch-and-price procedures [7].
In our application, the master problem is an integer linear program. However, since the subproblem is not solved to optimality, our column generation serves neither of the above purposes. As such, our column generation procedure is a mathematical programming based heuristic with no guarantee of optimality.
In fact, there is much similarity between our column generation framework and our multi-start framework. In both approaches, the insertion and savings heuristic are iterated a number of times with dierent customer priorities such that a wide variety of good solutions is obtained. The dierence between both approaches is two-fold.
1. Customer priorities.
In the multi-start framework, customer priorities are generated by dis-tributing the cost rates of the distribution patterns in the last proposed solution over the customers in a cost allocation system. In the col-umn generation framework, customer priorities are obtained from the dual prices of the customers in the master problem. These dual prices hold information on all previously generated solutions that were added as columns in the master problem, instead of just the information from the last proposed solution.
2. The nal solution.
In the multi-start framework, the nal solution is just the cheapest of all solution proposals encountered in the dierent iterations. In the column generation framework, all solutions are kept as columns in the master problem, and mathematical programming is used to select an appropriate subset of distribution patterns. This may correspond exactly to one of the solution proposals suggested by the savings or insertion heuristic in one of the iterations, but it may also consist of distribution patterns from dierent solutions proposals that constitute an even better solution together.
Tailoring the column generation procedure
In traditional column generation, e.g. when applied to the cutting stock prob-lem, the subproblem is solved to optimality and only a single column with a negative reduced cost is added to the restricted master problem per iteration.
In our case, adding a single column per iteration would cause some problems.
The constraints from which the dual prices are obtained, are equality con-straints. This means that the dual prices jcan be both positive and negative.
Further, the number of distribution patterns needed to visit all customers is al-ways less than the number of customers. In other words, the number of columns (distribution patterns) used for a solution of the restricted master problem is less than the number of rows (or constraints). This means that solutions are always degenerate, and from the same solution, dierent shadow prices can be derived, depending on which columns are used to ll the basis.
When only a single new distribution pattern (or column) with a negative re-duced cost rate is added per iteration, this new column will certainly become part of the basis. Shadow prices then change, but when implementing this, it turns out that only one shadow price changes, namely the shadow price of the customer that had the highest shadow price before. As a result, the distribu-tion pattern constructed in the next iteradistribu-tion has a high chance of visiting the same customers, except for that one customer. This way, for large problem instances, it takes a long time before new distribution patterns are generated for customers which have smaller shadow prices.
3.8 The column generation framework 79
An even more important problem is encountered in Step 5. Because of the overlap of the dierent distribution patterns that are being generated, it is dif-cult to nd a good integer solution, i.e. a partitioning of the set of customers.
When only a single distribution pattern is generated, usually it visits one or more customers that the previous distribution pattern (column) already visits.
Consider e.g. a problem instance with 6 customers. Suppose that in each of the subproblems, a distribution pattern visiting four of these customers can be constructed. These four-customer distribution patterns are all overlapping, so only one of them can be selected for the nal integer solution, meaning that two of the basic distribution patterns are required in the nal solution. The ac-tual optimal solution most probably consists of only two distribution patterns visiting three customers, or maybe one visiting two and the other one visiting four customers. The problem is that these two- and three-customer distribu-tion patterns are not added as columns in the restricted master problem, even though they may be encountered at a certain moment as intermediate solutions in the distribution pattern generation subproblem.
To avoid these problems, we decided to construct complete solutions in the subproblem and to add all intermediate distribution patterns with a negative reduced cost that are encountered as new columns in the restricted master problem. Furthermore, since the solution proposal in a single iteration may be better than any solution encountered so far, all distribution patterns in that solution proposal are added to the restricted master problem, regardless of their reduced cost rates.
In the column generation subproblem, heuristics are used. It may happen that these heuristics do not nd columns with negative reduced costs, even though they exist. If this is the case, the shadow prices will remain the same in the restricted master problem and the column generation procedure will be stopped prematurely. To prevent this from happening, the same extension as in the multi-start procedure is used: randomization of the priorities. When the shadow prices remain unchanged, instead of stopping with generating columns, the shadow prices are multiplied with a uniformly generated random number between 0 and 10, and the column generation is continued. However, if ran-domization would always be performed after shadow prices remain unchanged, the column generation would run innitely. Therefore, the number of shadow price randomizations is limited to 5, so when the shadow prices remain the same for the sixth time, the generation of columns is stopped after all. The outline of the column generation is then as follows.
1. The set of distribution patterns DP is initiated with the jSj `basic' dis-tribution patterns, i.e. those that visit only one customer. A separate distribution pattern is thus constructed for each customer, and the initial matrix A is the identity matrix.
2. The linear programming relaxation of the restricted master problem is solved.
3. Constraints (3.1) give us a dual price for each of the customers, j; 8j 2 S.
4. If the dual prices of the customers are the same as in the previous itera-tion, they are randomized by multiplying them with a uniformly gener-ated random number between 0 and 10. If this is the sixth time that the shadow prices are randomized, the process goes to Step 5. Else, generate new columns.
(a) Use the dual prices j as customer priorities.
(b) Perform the adjusted savings heuristic, using reduced cost rates, to construct a solution and apply the improvement heuristic to it.
(c) Perform the insertion heuristic to construct a solution and apply the improvement heuristic to it.
If new distribution patterns with negative reduced cost rates are found in steps (b) and (c), they are added to the set DP and the corresponding columns are added to the matrix A. Furthermore, if a new best solution is encountered, all distribution patterns with positive reduced cost rates are also added to the set DP and their corresponding columns added to the matrix A. The process then returns to Step 2.
5. The restricted master problem is solved to integrality (Xd 2 f0; 1g) to provide the nal solution. Remember that DP is now the set of all dis-tribution patterns generated during the column generation process.
In Step 4 of the column generation process, the so-called subproblem, new dis-tribution patterns are constructed and added to the master problem. However, when executing the insertion and savings heuristic, it can happen that a `new' distribution pattern is encountered that covers the same set of customers as another distribution pattern that is already included in DP , but for which the organisation of tours is dierent. In this case, only the cheaper of both is kept in DP .
Mixed integer model for the subproblem
In Table 2.3 of Section 2.2, a mixed integer formulation is presented for the cyclic inventory routing problem, when using the routing concept of multi-tours. In this paragraph, a mixed integer formulation is given for the subprob-lem in a column generation approach, also when restricted to the multi-tours.
The notations used in this formulation are the following.
S+ is the set of `locations', indexed by j; k and l. It consists of the set of customers S and the depot .
cjk is the variable transportation cost between locations j and k.
tjk is the travel time between locations j and k.
3.8 The column generation framework 81
The following variables are used in the model of the multi-tour generation subproblem, shown in Table 3.2.
T is the cycle time of the multi-tour that is being constructed.
Xjk is a binary variable that indicates whether the vehicle travels from location j 2 S+to location k 2 S+ in this multi-tour or not.
Zjk is the cumulative demand rate of all remaining customers in a tour when the vehicle goes from location j 2 S+ to location k 2 S+. It is zero if the vehicle does not go directly from j to k. This additional variable is needed to impose that tours start and end in the depot.
Table 3.2: Mixed integer model for the multi-tour generation subproblem
Min RCR = + X
The rst constraint, (3.2), imposes that a customer is visited at most once. Con-straint (3.3) is the vehicle ow conservation conCon-straint: the number of vehicles entering a location is equal to the number of vehicles leaving that location.
The following two constraints impose the minimal cycle time of the multi-tour, based on both the travelling, loading and unloading times (Constraint (3.4))
and on the customer imposed frequency constraints (Constraint (3.5)). Con-straint (3.6) is the ow conservation conCon-straint for the Zjk variables: when visiting location k, the cumulative demand rate of all remaining customers in the tour is reduced by the demand rate of this location, dk. Constraint (3.7) links the continuous Zjk variables with the binary Xjk variables. The two -nal constraints determine the maximal cycle time of the multi-tour, based on both the vehicle capacity (Constraint (3.8)) and the customer storage capacities (Constraint (3.9)).
3.9 Conclusion
This chapter presents some solution approaches for the cyclic inventory rout-ing problem. First, two constructive heuristics and an improvement heuristic are proposed, together with heuristic methods for the subproblems of nding tour frequencies and constructing delivery schedules. Then, two metaheuris-tic solution approaches are developed: a multi-start and a column generation procedure. These methods use and reuse the constructive and improvement heuristics to generate a whole set of solution proposals from which a nal so-lution is then extracted.
The proposed solution approaches are highly generic, since they evaluate many alternatives (from single tours over multi-tours to distribution patterns with a variety of possible tour frequency combinations) and since they do not perform any a priori clustering of customers. In the computational results, presented in Chapter 4, our approach is evaluated.