Chapter 4 BRANCH-AND-CUT METHOD FOR HVRPUD
4.2 Separation algorithms for SEC
In the literature of the TSP, the VRP and their variants, di↵erent separation al- gorithms have been proposed for the Sub-tour Elimination Constraints (SEC). As the VRP is an extension of the TSP, all exact separation algorithms for the SEC introduced for the TSP are only heuristic algorithms for the VRP and its variants. Usually methods within Graph Theory and Network Optimization are deployed to identify the violated constraints. Bard et al. [12] and Lysgraad et al. [54] review and introduce various types of separation algorithms for the SEC. Recall the SEC as follows for a given LP solutionx⇤ at some node on the branch-and-bound tree:
X i2S X j2S¯ x⇤ij 2dq(S) Qm e (4.1)
We first briefly review the existing separation algorithms and then a greedy separation algorithm will be presented to separate the SEC.
Shrunk Support Graph In this class of algorithms, the vertices presenting the customers iteratively one by one are shrunk and create a new vertex which is called
supernode or supervertex. The weight assigned to the supervertex isq(S) =Pi2Sqi and an edge {s, j}, s 2 S, j 2 S¯ is given the weight of Ps2SPj2S¯x⇤sj. Since the vertices are shrunk into a supervertex, to make sure that we do not miss any violated constraint because of using this procedure the notion of safe shrinking has been introduced and characterised as follows [54]: Whenever there is a violated capacity inequality in G, there exists a set of supervertices in the shrunk graph whose union defines a capacity inequality with at least the same violation. Lysgraad et al. [54] generalise the conditions under which a shrinking is safe as follows.
For separation of the SEC, it is safe to shrink a customer setSifPi2SPj2S¯x⇤ij 2 and Pi2RPj2R¯x⇤ij 2, 8R⇢S .
The next step is to identify a vertex and shrink it into a supervertex. Di↵erent strategies have been proposed to answer this question. A greedy heuristic introduced by Lysgraad et al. [54] considers each supervertex as a seed and shrink vertexj to the supervertex that minimizes the slack of the SEC for S[{j}. When we cannot expendS, we select another seed and continue the procedure.
Bard et al. [12] suggest another strategy based on the following equivalent form of the SEC.
X
i2S
X
j2S
where S ⇢Vc and |S|>2, and k(S) is the minimum number of vehicles needed to serve setS.
The weight of each supervertex is equal to the sum of the weights of those edges that connect vertices inside S. The shrinking procedure is shown in Figure 4.1. The shrinking procedure is repeated until the resulting graph consists of one disconnected supervertex or more. Recall that if xij = 0, then there is no edge between i and j which may lead to a disconnected graph. During this procedure, k(S) for each supervertex is calculated and is compared with the weight of the supervertex to identify violated constraints.
1 2 3 4 5 (1, 3) 2 4 5
Figure 4.1: Shrinking procedure.
Min-Cut problem For a special case when x(E(S : Vc\S)) <2, we can apply algorithms for the the min-cut problem to find violated SECs. For any S ⇢ Vc, if x(E(S : Vc \S)) is less that 2, then S violates a constraint of the SEC. Several algorithms with di↵erent complexities have been proposed for this heuristic. The best know algorithm is by Frank [35] whose complexity isO(|V||E|). For a more general setting, Lysgaard et al. [54] adopt a heuristics based on the max-flow problem for the so-called fractional capacity inequalities. The fractional capacity inequalities are the sub-tour elimination constraint (4.1) where the right-hand side is replaced by
q(S)/Qm. If a violated fractional capacity inequality is identified, then constraint (4.1) is violated, too. By solving the max-flow problem forS⇢Vc, we minimize the slack of the fractional capacity inequalities. Moreover, these heuristic can be run on the shrunk graph obtained from safe shrinking procedures.
A greedy algorithm Motivated by the shrinking procedure, we here introduce a greedy separation algorithm to identify violated SEC. A new approach to find the violated constraints can be based on calculating and ordering a set of values for each customer. Let S be a sub-set of customers, we would like to find vertex j 2Vc\S so that by adding it, new setS[{j}violates a constraint of the fractional SEC. So, the following integer programme can find the vertex if the optimal solution value is strictly positive.
max ↵ (4.3)
s.t. q(S) Qm
(1 +yj) x⇤( (S))
x⇤(E(j: ¯S))yj+x⇤(E(S:j))yj ↵, 8j 2S¯c (4.4)
X
j2S¯c
yj= 1 (4.5)
yj2{0,1}, 8j2S¯c (4.6) where constraint (4.4) evaluates the slack if customerj 2 Vc\S is contracted into setS. Also,yj is a binary variable which takes value one ifj is added toS, and zero if otherwise. If ↵ >0, then S[{j} violates a constraint. But if for allj 2Vc\S, the objective function is non-positive (↵0), then it is better to contract the vertex
with highest value intoS. The larger the objective function is, the more likely it will be to have violated constraints in next iterations. The above problem identifies only one vertex to be added to setS, but it can identifyk vertex by simple changes.
The above problem can be reduced to a simple ordering as follows. Let f = q(S)
Qm x
⇤( (S)) which is a fixed value for all customers in one iteration and, let q(j) = qj
Qmyj x
⇤(E(j : ¯S))yj+x⇤(E(S : j))yj for j 2 Vc\S . Now we can sort f +q(j) for j 2 S¯c in a descending order. If f +q(j) > 0, then violates the SEC, hence we add the corresponding customer to setSand the corresponding constraint to the problem. The process will be repeated until there is no strictly positive value forf+q(j). Then as mentioned the vertex with highest f+q(j) will be added toS and run the algorithm again untilS =Vc. In each iteration of the B&C method, we run the above heuristic 10 times selecting randomly a vertex as the seed (S).