polyhedral results and a branch-and-cut algorithm for the $$k$$ -cardinality tree problem

28
Math. Program., Ser. A (2013) 142:511–538 DOI 10.1007/s10107-012-0590-3 FULL LENGTH PAPER Polyhedral results and a Branch-and-cut algorithm for the k-cardinality tree problem Luidi Simonetti · Alexandre Salles da Cunha · Abilio Lucena Received: 9 November 2011 / Accepted: 17 August 2012 / Published online: 6 September 2012 © Springer and Mathematical Optimization Society 2012 Abstract Given an undirected graph G with vertex and edge weights, the k -cardinality tree problem asks for a minimum weight tree of G containing exactly k edges. In this paper we consider a directed graph reformulation of the problem and carry out a polyhedral investigation of the polytope defined by the convex hull of its feasible integral solutions. Three new families of valid inequalities are identi- fied and two of them are proven to be facet implying for that polytope. Additionally, a Branch-and-cut algorithm that separates the new inequalities is implemented and computationally tested. The results obtained indicate that our algorithm outperforms its counterparts from the literature. Such a performance could be attributed, to a large extent, to the use of the new inequalities and also to some pre-processing tests intro- duced in this study. Electronic supplementary material The online version of this article (doi:10.1007/s10107-012-0590-3) contains supplementary material, which is available to authorized users. Luidi Simonetti is partially funded by FAPERJ grant E-26/111.819/2010 and CNPq grants 483.243/2010-8, 304793/2011-6. Alexandre Salles da Cunha is partially funded by CNPq grants 302276/2009-2, 477863/2010-8 and FAPEMIG PRONEX APQ-01201-09. Abilio Lucena is partially funded by CNPq grant 310561/2009-4 and FAPERJ grant E26-110.552/2010. L. Simonetti Instituto de Computação, Universidade Federal Fluminense, Rio de Janeiro, Brazil e-mail: [email protected] A. S. da Cunha Departamento de Ciência da Computação, Universidade Federal de Minas Gerais, Belo Horizonte, Brazil e-mail: [email protected] A. Lucena (B ) Departamento de Administração/Programa de Engenharia de Sistemas e Computação, Universidade Federal do Rio de Janeiro, Rio de Janeiro, Brazil e-mail: [email protected] 123

Upload: abilio

Post on 24-Jan-2017

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

Math. Program., Ser. A (2013) 142:511–538DOI 10.1007/s10107-012-0590-3

FULL LENGTH PAPER

Polyhedral results and a Branch-and-cut algorithmfor the k-cardinality tree problem

Luidi Simonetti · Alexandre Salles da Cunha ·Abilio Lucena

Received: 9 November 2011 / Accepted: 17 August 2012 / Published online: 6 September 2012© Springer and Mathematical Optimization Society 2012

Abstract Given an undirected graph G with vertex and edge weights, thek-cardinality tree problem asks for a minimum weight tree of G containing exactlyk edges. In this paper we consider a directed graph reformulation of the problemand carry out a polyhedral investigation of the polytope defined by the convex hullof its feasible integral solutions. Three new families of valid inequalities are identi-fied and two of them are proven to be facet implying for that polytope. Additionally,a Branch-and-cut algorithm that separates the new inequalities is implemented andcomputationally tested. The results obtained indicate that our algorithm outperformsits counterparts from the literature. Such a performance could be attributed, to a largeextent, to the use of the new inequalities and also to some pre-processing tests intro-duced in this study.

Electronic supplementary material The online version of this article(doi:10.1007/s10107-012-0590-3) contains supplementary material, which is available to authorized users.

Luidi Simonetti is partially funded by FAPERJ grant E-26/111.819/2010 and CNPq grants483.243/2010-8, 304793/2011-6. Alexandre Salles da Cunha is partially funded by CNPq grants302276/2009-2, 477863/2010-8 and FAPEMIG PRONEX APQ-01201-09. Abilio Lucena is partiallyfunded by CNPq grant 310561/2009-4 and FAPERJ grant E26-110.552/2010.

L. SimonettiInstituto de Computação, Universidade Federal Fluminense, Rio de Janeiro, Brazile-mail: [email protected]

A. S. da CunhaDepartamento de Ciência da Computação,Universidade Federal de Minas Gerais, Belo Horizonte, Brazile-mail: [email protected]

A. Lucena (B)Departamento de Administração/Programa de Engenharia de Sistemas e Computação,Universidade Federal do Rio de Janeiro, Rio de Janeiro, Brazile-mail: [email protected]

123

Page 2: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

512 L. Simonetti et al.

Keywords Branch-and-cut algorithm · Polyhedral study ·k-Cardinality tree problem

Mathematics Subject Classification 90C27 · 90C35 · 90C57

1 Introduction

Assume that an undirected graph G = (V, E) is given with a set V of n verticesand a set E of m edges. Assume as well that vertex weights {di : i ∈ V }, edgeweights {we : e ∈ E} and a positive integer 1 ≤ k ≤ n − 1 are also associatedwith that graph. Any tree T = (VT , ET ) of G then has a corresponding weight(∑

i∈VTdi +∑

e∈ETwe

)and is called k-cardinality whenever |ET | = k. Accordingly,

the problem of finding a k-cardinality tree with the least weight is known as thek-cardinality tree problem (KCTP).

KCTP was introduced by Fischetti et al. [16] who proved it to be NP-hard whenever2 ≤ k ≤ n − 2. Polynomial solvable cases of the problem occur when k ∈ {1, n − 1}or when the input graph G is a tree [5]. Whenever k = 1, an optimal solution isimplied by an edge e = {u, v} ∈ E of minimum (du+dv+w{u,v}). Conversely, whenk = n − 1, KCTP reduces to the minimum spanning tree problem, for which severalefficient algorithms, such as those by Kruskal [23] and Prim [32], do exist. Finally,when G is a tree, KCTP can be solved in O(nk2) time by the Dynamic Programmingalgorithm of Blum [5].

Applications of KCTP have been suggested for oil field leasing [15], matrix decom-position [8], facility layout problems [17] and open pit mining [30], among others.From the publication of the early paper by Fischetti et al. [16], the problem quicklyattracted considerable interest. As a result, KCTP solution approaches nowadays spana wide range of heuristics [5,15], metaheuristics [6,7,9,19], approximation algorithms[18,27] and exact solution procedures [10,14,33,35].

In this paper, a Branch-and-cut algorithm is proposed and tested for KCTP. Thealgorithm relies on the Chimani et al. [10] directed graph reformulation of the problem.However, we significantly reinforce that reformulation with three new families of validinequalities. In particular, two of them are proven to be facet implying for the polytopedefined by the corresponding convex hull of feasible integral solutions. Furthermore,the use we make of these inequalities, together with new pre-processing tests, allowsour algorithm to outperform the one in [10], i.e., the best exact solution procedureavailable for the problem.

This paper is organized as follows. In Sect. 2, existing formulations for KCTPare reviewed. In Sect. 3, three new families of valid inequalities are suggested forthe problem and their strength is investigated from a polyhedral point of view. Pre-processing tests are discussed next, in Sect. 4. A Branch-and-cut algorithm that benefitsfrom the new inequalities and some pre-processing tests is then described in Sect. 5.The algorithm is computationally tested in Sect. 6. Finally, the paper is closed in Sect. 7with some conclusions drawn from our investigation of the problem.

123

Page 3: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

Polyhedral results and a Branch-and-cut algorithm for the KCTP 513

2 Literature review

Until quite recently, solution approaches for KCTP were mostly based on heuristicsand metaheuristics. According to Chimani [10], the reasoning behind that emphasiswas the existing perception that the very first exact solution algorithm for the problem,i.e., that of Ehrgott and Freitag [14], behaved poorly. However, as pointed out in [10],such an incorrect assessment resulted much more from the limited computationalpower available in [14] than from the real capabilities of that algorithm.

Ehrgott and Freitag’s algorithm relies on the Integer Programming (IP) formulationof Fischetti et al. [16]. At publication time, it was only capable of solving to provenoptimality instances with up to 30 vertices. Such a performance led, throughout the pastdecade and a half, to the development of various high quality heuristics, metaheuristicsand approximation algorithms [1,5–7,9,15,18,19]. Reviews on the most relevant nonexact solution algorithms for KCTP are found in Brimberg et al. [9] and in Blum andBlesa [6].

Recently, Simonetti et al. [35] studied the rooted version of KCTP (RKCTP), wherean apriori defined vertex must be included in a k-cardinality tree. The authors inves-tigated combinatorial lower bounds for RKCTP that improved on those previouslyintroduced by Kataoka et al. [21]. Embedded into a Branch-and-Bound enumerationtree, the new lower bounds led to a much faster exact solution algorithm than thealternatives available.

Additional exact solution approaches for KCTP will be discussed next. In particular,we will comment on reformulations for which exact solution algorithms have beenproposed in the literature.

2.1 KCTP reformulations

To the best of our knowledge, apart from the Branch-and-cut algorithm of Ehrgottand Freitag [14], for which limited computational results are available, only threeadditional exact solution procedures exist for KCTP. Namely, the Branch-and-boundalgorithm of Simonetti et al. [35], the Branch-and-cut algorithm of Chimani et al. [10]and the Branch-and-bound algorithm of Quintão et al. [33]. Although the algorithm in[35] was originally proposed for RKCTP, it can be used to solve KCTP by sequentiallychoosing different root vertices.

The algorithms in [10,33] are based on KCTP reformulations defined over particulardigraphs originating from G. Digraphs are built by initially taking, for every edge ofE , two arcs with the same end vertices and opposite directions. Then, depending on thereformulation, one or more artificial vertices are also used. Feasible solutions for thereformulation in [33] (resp. in [10]) imply spanning (resp. non spanning) arborescencesfor its defining digraph.

Two IP reformulations of KCTP are introduced in [33]. One uses lifted Miller-Tucker-Zemlin constraints [12,28] to enforce solution connectivity. The other relieson network flows for that purpose. A Lagrangian relaxation algorithm that could beembedded into a Branch-and-bound enumeration scheme is also investigated in [33]. Itprovides optimality certificates to a few test instances. Additionally, the primal boundsit generates were, at publication time, the best available for most of the remaining ones.

123

Page 4: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

514 L. Simonetti et al.

Contrary to the reformulations in [33], solution connectivity for the reformulationin [10] is enforced by cutset inequalities. Since the latter reformulation is the onebehind our Branch-and-cut algorithm, we will be describing it in detail. However,prior to doing that, let us first introduce some necessary notation.

For the previously defined undirected graph G = (V, E), indistinctively denoteby {i, j} or { j, i} an edge of E with endpoints i and j . Furthermore, for a givennonempty subset S ⊆ V , denote by E(S) ⊆ E the set of edges with both endpointsin S. Additionally, denote by δ(S) = {{i, j} ∈ E : i ∈ S, j �∈ S} the set of edgeswith exactly one endpoint in S. Whenever S contains a single vertex, say S = {i}, wesimply use δ(i) instead of δ({i}). Finally, as previously indicated, a k-tree of G is aconnected acyclic subgraph T = (VT , ET ) containing exactly k edges.

Let us now turn to digraph D = (V ′, A′), with a vertex set V ′ and an arc set A′.An arc a ∈ A′ pointing from i to j is denoted by (i, j) while A(S), for a nonemptyS ⊆ V ′, identifies those arcs of D having both endpoints in S. Additionally, let AE

be an orientation of the edge set of G defined as AE = {(i, j), ( j, i) : {i, j} ∈ E}.Assuming that AE ⊂ A′ and S ⊂ V ′, denote by δ+E (S) and δ−E (S) those arcs of AE

respectively leaving and entering S. As before, if S = {i}, we use δ+E (i) and δ−E (i)instead of respectively using δ+E ({i}) and δ−E ({i}). Finally we denote by AE (S) thesubset of arcs of AE having both endpoints in S ⊆ V ′.

2.1.1 A directed graph reformulation of KCTP

Chimani et al. [10] proposed a KCTP reformulation defined over a directed graphD = (V , A), where V = V ∪{0} and A = AE∪{(0, i) : i ∈ V }. Corresponding feasi-ble solutions imply (k+1)-cardinality arborescences of D. These must be rooted at arti-ficial vertex 0 and have a single arc pointing outwards of it. Removal of that arc resultsin a k-cardinality arborescence of D that, in turn, implies a k-cardinality tree of G.

Under the KCTP reformulation outlined above, original edge and vertex weights forG may be combined into weights that only apply to the arcs of D. Accordingly, theseweights are defined as {c(0,i) = di : i ∈ V } and {c(i, j) = w{i, j} + d j : (i, j) ∈ AE }.Therefore, irrespective of G being edge and/or vertex weighted, its correspondingdigraph D is always arc weighted.

The reformulation in [10] uses variables {yi ∈ {0, 1} : i ∈ V } to identify feasiblearborescence vertices. Accordingly, yi = 1 if vertex i is in the arborescence whileyi = 0 applies otherwise. Additionally, variables {xa ∈ {0, 1} : a = (i, j) ∈ A} areused to identify arborescence arcs and xa = 1 holds if arc a is in the arborescencewhile xa = 0 applies otherwise. The reformulation is then given by

min

⎧⎨

a∈ A

ca xa : (x, y) ∈ PDCU T ∩ (R2m+n, Bn)

⎫⎬

⎭, (1)

where PDCU T ⊂ R2(m+n) is defined as

( j,i)∈δ−E (i)

x ji + x0i = yi , ∀i ∈ V, (2)

123

Page 5: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

Polyhedral results and a Branch-and-cut algorithm for the KCTP 515

(i, j)∈δ−E (S)

xi j +∑

i∈S

x0i ≥ yv, ∀S ⊂ V,∀v ∈ S, (3)

(i, j)∈AE

xi j = k, (4)

i∈V

x0i = 1, (5)

xi j ≥ 0, ∀(i, j) ∈ A, (6)

yi ≥ 0, ∀i ∈ V . (7)

Constraints (2) determine whether or not a given vertex i ∈ V appears in a feasiblearborescence. If yi = 0 holds, vertex i is left out of the arborescence and no arc pointinginwards of it therefore exists. Otherwise, yi = 1 applies and a variable associated withexactly one of these arcs must assume a value of one. If x0i is such a variable, arc(0, i) must then appear in the feasible arborescence and vertex i be the root for itscorresponding KCTP arborescence. Finally, if yi = 1 and x0i = 0 apply, vertex i mustbe an ordinary KCTP arborescence vertex. Accordingly, x ji = 1 must hold for somej ∈ V .

Constraints (3) are directed cutset inequalities that ensure solution connectivity andadditionally prevent the formation of circuits. Constraint (4) enforces that k arcs ofAE are selected in any feasible arborescence. Finally, constraint (5) guarantees thatthere exists exactly one arc pointing outwards of 0, say arc (0, i), where i necessarilybelongs to V .

It has been shown in [10] that reformulation PDCU T and the formulation of Fischettiet. al. [16] are polytope-wise equivalent, i.e., they imply the same Linear Programming(LP) relaxation bounds. Additionally, it has also been indicated in [10] how a multi-commodity flow based KCTP reformulation could also be established for digraphD. LP relaxations bounds for such a reformulation would also match those given byPDCU T (see [10], for details). Finally, the two reformulations introduced/indicatedin [10] could easily be shown to be equivalent, in terms of the strength of their LPrelaxation bounds, to the multi-commodity flow reformulation introduced in [33].

A Branch-and-cut algorithm based on PDCU T was implemented in [10] and pro-duced impressive computational results. The algorithm also seems to be very robust.Accordingly, CPU times reported in [10] do not vary much for different values of k anddifferent types of graphs and densities. It should also be mentioned that, for varioustest instances, the algorithm finds proven optimal solutions faster than it takes KCTPheuristics to produce feasible ordinary ones. In particular, for many test instances it isat least one order of magnitude faster than the Lagrangian heuristic in [33].

3 Polyhedral results

In this section, three families of valid inequalities are introduced for reformulationPDCU T . Additionally, for two of them, inequalities are proven to imply facets of thecorresponding convex hull of feasible integral solutions. As we shall see later on,

123

Page 6: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

516 L. Simonetti et al.

reinforcing PDCU T with these inequalities leads to a very effective Branch-and-cutalgorithm.

3.1 Valid inequalities

Let X = {(x, y) ∈ PDCU T ∩ (B2m+n, Bn)} be the set of points corresponding to

feasible integral solutions to (1). Additionally, denote by P the convex hull definedby these points. Furthermore, for conveniently defined (π, β, b) ∈ (R2m+n, R

n, R),let

∑(i, j)∈ A πi j xi j +∑

i∈V βi yi ≤ b be a generic description for a valid inequality of

P . Accordingly, denote by F(π, β, b) = {(x, y) ∈ (R2m+n, Rn) : πx + βy = b} ∩P

the face of P induced by πx + βy ≤ b. Finally, recall that feasible integral solutionsto PDCU T imply arborescences of D, rooted at 0, containing exactly k + 1 additionalvertices. These arborescences are denoted feasible and, after dropping vertex 0 fromthem, a KCTP arborescence results. In what follows, whenever an algebraic contextis involved, we will be referring to feasible solutions. Alternatively, when a geometriccontext applies, we will be referring to feasible arborescences or their correspondingKCTP arborescences.

In the design of a Linear Programming based Branch-and-bound algorithms,Branch-and-cut algorithms in particular, one would ideally hope to obtain formu-lations defining as tight as possible approximations of the corresponding convex hullof feasible integral solutions. Accordingly, in an attempt to find a better approximationof P , we will reinforce PDCU T with the inequalities to be discussed next.

Proposition 1 Inequalities

(i, j)∈δ+E (S)

xi j +∑

(i, j)∈δ−E (S)

xi j − yv ≥ 0, ∀S ⊂ V, 2 ≤ |S| ≤ k,∀v ∈ S, (8)

(i, j)∈δ+E (S)

xi j −∑

i∈S

x0i ≥ 0, ∀S ⊂ V, 2 ≤ |S| ≤ k, (9)

and

(i, j)∈AE (S)

xi j +∑

(i, j)∈δ+E (S)

xi j ≤ (k − 1)∑

(i, j)∈δ−E (S)

xi j

+k∑

j∈S

x0 j ,∀S ⊂ V, |S| ≥ k + 1. (10)

define proper faces of P .

Proof We firstly prove that inequality (8) is valid for P and then that it defines aproper face for that polytope. Validity proofs for inequalities (9) and (10) then follow.However, proofs that these inequalities define proper faces of P are omitted since theywould be very similar to the corresponding proof for (8).

123

Page 7: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

Polyhedral results and a Branch-and-cut algorithm for the KCTP 517

– Inequalities (8): If vertex v does not belong to a feasible arborescence, yv = 0applies and the inequality is trivially satisfied since xi j ≥ 0 holds for every (i, j) ∈A. Conversely, if v belongs to a feasible arborescence, yv = 1 holds. However,since 2 ≤ |S| ≤ k, at least 1 out of the k + 1 vertices in the corresponding KCTParborescence must belong to V \S. Therefore, for connectivity reasons, at leastone arc of (δ−E (S) ∪ δ+E (S)) must be part of the arborescence. Consequently, theinequality is once again satisfied and it is thus valid. As for defining proper facesof P , notice that the left-hand-side of (8) exactly adds to 0 when all vertices of Sdo not belong to the KCTP arborescence. Alternatively, it is strictly larger than 0,for instance, whenever |S| > 1, all but one vertex of S, say vertex l, belong to theKCTP arborescence, and the inequality is written for v = l. Therefore, (8) definesproper faces of P .

– Inequalities (9): Feasible solutions may be partitioned into two sets. For the firstone, corresponding KCTP arborescences have their roots in V \S and x0i = 0 thusholds for every i ∈ S. For the other one, roots belong to S and

∑i∈S x0i = 1

consequently applies. For the former set, the inequality is clearly satisfied sincexi j ≥ 0 holds for any (i, j) ∈ A. For the latter one, given that |S| ≤ k, at least oneKCTP arborescence vertex, say vertex j , must necessarily lie in V \S. Therefore,there must exist an arc belonging to δ+E (S) in the path linking vertex 0 to vertex j .Consequently, the inequality is once again satisfied and it is thus valid.

– Inequalities (10): We will split the proof into the following three cases:– x0 j = 1, for some j ∈ S. The right-hand-side (rhs) of (10) is at least k and since∑

(i, j)∈AE (S) xi j +∑(i, j)∈δ+E (S) xi j ≤ ∑

(i, j)∈AExi j = k holds, the inequality

is satisfied.–

∑j∈S x0 j = 0 and yv = 1, for some v ∈ S. In order to satisfy (3),

at least one arc in δ−E (S) must be selected. Let (p, q) ∈ δ−E (S) be suchan arc. Accordingly, the rhs of (10) is at least k − 1. It then follows that∑

(i, j)∈AE (S) xi j + ∑(i, j)∈δ+E (S) xi j ≤ ∑

(i, j)∈AExi j − x pq = k − 1 holds

and the inequality is thus satisfied.–

∑j∈S x0 j = 0 and yv = 0,∀v ∈ S. Both the rhs and the left-hand-side of (10)

assume a value of zero. Consequently, the inequality is once again satisfied andis therefore valid.

� In the sequel, we show that inequalities (9) and (10) induce facets of P . Proofs

are carried out along the same guidelines. In particular, we do not explicitly rely onthe dimension of P and follow an indirect proof technique based on Theorem 3.6 ofNemhauser and Wolsey [29]. However, P is not full dimensional, as implied by (2)–(5). Therefore, any valid inequality for P , facets in particular, may be represented ininfinitely many equivalent forms, depending on which linear combination of equalityconstraints (2)–(5) is added to the inequality. Therefore, in Lemma 1, we firstly describea convenient representation for a facet defining inequality for P .

Lemma 1 Without loss of generality, one may assume that any valid inequality forP is equivalent (in terms of the face of P it implies) to πx + βy ≤ b, where, for anyS ⊆ V, βi = 0 for any i ∈ S and π0v = 0 for a given v ∈ V . In addition, coefficients

123

Page 8: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

518 L. Simonetti et al.

πpq and πul could take a value of zero for any given (p, q) ∈ AE and (u, l) ∈ δ−E (l),where l /∈ S.

Proof – For a given nonempty S ⊆ V , consider Eq. (2) for every i ∈ S. Multi-ply each of them by its corresponding βi and sum them over i ∈ S to obtain∑

i∈S βi yi =∑i∈S βi x0i +∑

i∈S βi∑

( j,i)∈δ−E (i) x ji . Next, replace∑

i∈S βi yi in∑

i∈V π0i x0i+∑i∈V βi yi+∑

(i, j)∈AEπi j xi j ≤ b by its corresponding expression

above to arrive, after some algebraic manipulation, at

i∈V \Sπ0i x0i +

i∈S

(π0i + βi )x0i +∑

i∈V \Sβi yi +

(i, j)∈AE | j /∈S

πi j xi j

+∑

(i, j)∈AE | j∈S

(πi j + β j )xi j ≤ b.

At this point, for every i ∈ S, rename (π0i + βi ) by π0i and (π j i + βi ) by π j i toobtain

i∈V

π0i x0i +∑

i∈V \Sβi yi +

(i, j)∈AE

πi j xi j ≤ b,

thus completing the first part of the proof, i.e., that βi = 0 for every i ∈ S.– Now take v′ ∈ V and notice, from (5), that x0v′ = 1 − ∑

i∈V \{v′} x0i holds.Multiply this equation by π0v′ and subtract it from the inequality we were left withabove to obtain

i∈V \{v′}(π0i − π0v′)x0i +

i∈V \Sβi yi +

(i, j)∈AE

πi j xi j ≤ b − π0v′,

that does not involve variable x0v′ .– Let us now consider constraint (2) for l ∈ V \S and (u, l) ∈ δ−E (l). Multiply

that equation by πul and obtain an expression for πul xul . Then, replace πul xul in∑i∈V π0i x0i +∑

i∈V \S βi yi +∑(i, j)∈AE

πi j xi j ≤ b by that expression to arriveat

i∈V \{l}π0i x0i + (π0l − πul)x0l +

i∈V \(S∪{l})βi yi + (βi + πul)yl

+∑

(i, j)∈AE | j �=l

πi j xi j +∑

(i,l)∈δ−E (l) | i �=u

(πil − πul)xil ≤ b,

that does not involve variable xul .– Finally, to show that any given πpq could take a value of zero, multiply equation

(4), i.e.,∑

(i, j)∈AExi j = k, by πpq and subtract it from the inequality we were left

with, above. The resulting inequality does not involve variable x pq and the proofis thus complete. �

123

Page 9: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

Polyhedral results and a Branch-and-cut algorithm for the KCTP 519

For the facetial proofs that follow, we assume that a given facet implying inequal-ity for P conforms to the description suggested in Lemma 1. For each proof and itscorresponding facet defining inequality, we exhibit points (x, y) ∈ X for which theinequality is tight and perform some arc exchange operations to establish that the can-didate inequality and the facet are equivalent. To that aim, we use auxiliary Figs. 1, 2and 3, each of them corresponding to a different point (x, y) used in the proofs. Anarrow for any of these figures represents an arborescence arc while a vertex appear-ing in isolation indicates that it is not spanned by the arborescence. Finally, verticescorresponding to a given set S appear encircled.

Theorem 1 Inequality (9) is facet defining for P .

Proof The idea of the proof is to show, for α > 0 and for any two pairs of verticess1, s2 ∈ S and v1, v2 ∈ V \S, that the following relations hold: (a) πv1s1 = πv1v2 =πs1s2 = π0v1 = 0 and (b) π0s1 = −πs1v1 = α.

Assume that s1, s2 ∈ S and v1, v2 ∈ V \S. Additionally, consider those feasibleKCTP solutions corresponding to the points p1 and p2 of X depicted in Fig. 1a,b. Depending on how many arcs with at least one endpoint in S are selected in eachfigure, remaining ones, required to reach the total k of AE arcs appearing in any KCTParborescence, are chosen from among those pointing outwards of v1. Notice for p1

and p2 that both sides of (9) assume a value of 0 and that the inequality is thereforetight at these points. Furthermore, recall from Lemma 1 that βi = 0 could be assumedfor all i ∈ V . As such, inequality (9) is respectively written for points p1 and p2 as

(i, j)∈δ−E (S)

πi j p1i j +

(i, j)∈AE (V \S)

πi j p1i j + π0v1 = b, (11)

(a) (c)

(d)(b)

Fig. 1 Auxiliary figures for the proof of Theorem 1

123

Page 10: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

520 L. Simonetti et al.

(a) (b)

(c)

Fig. 2 Auxiliary figures for the proof of Theorem 2

(a)

(b)

(c)

Fig. 3 Auxiliary figures for the proof of Theorem 3

and

(i, j)∈δ−E (S)

πi j p2i j +

(i, j)∈AE (V \S)

πi j p2i j + π0v1 = b. (12)

Subtracting (11) from (12) implies that πv1s1 = πv2s2 . Since v1 and v2 do notbelong to S and s1 and s2 are arbitrarily chosen, the result holds for any choice ofv1, v2 ∈ V \S and s1, s2 ∈ S.

123

Page 11: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

Polyhedral results and a Branch-and-cut algorithm for the KCTP 521

Let us now focus on p1. It is not difficult to see that replacing arc (v1, v2) by (s1, s2),inequality (9) is still tight and πs1s2 = πv1v2 holds. Furthermore, unless |S| = k andk = |V | − 2, there must exist a non arborescence vertex in V \S, say v3, and yv3 = 0therefore applies. Replacing (v1, s1) by (v2, v3) one would obtain πv1s1 = πv2v3 . Onthe other hand, if |V \S| = 2, point p3 can be used to check that our k arcs may beselected without using arcs (v1, v2) or (v2, v1). Accordingly, after replacing (s1, v1)

by (s1, v2) one concludes that πs1v1 = πs1v2 . It is also possible to replace (s1, s2) by(v1, v2) (or (s1, s2) and (s1, v1) respectively by (s1, v2) and (v2, v1)) to conclude thatπv1v2 = πv2v1 applies when |S| = k and |V \S| = 2.

So far, we have shown that πv1v2 = πs1s2 = πv1s1 , for any (v1, v2) ∈AE (V \S), (s1, s2) ∈ AE (S) and (v1, s1) ∈ δ−E (S). Recalling from Lemma 1 that thereexists an arc (p, q) ∈ AE for which πpq = 0, let us choose it from AE (V \S) and setto 0 its corresponding entry in π . One would then have πv1v2 = πv1s1 = πs1s2 = 0,for any (v1, v2) ∈ AE (V \S), (s1, s2) ∈ AE (S) and (v1, s1) ∈ δ−E (S).

Applying Lemma 1 once again, there must exist a v′ ∈ V \S such that π0v′ = 0.Accordingly, pick v′ = v1 and set π0v1 = 0. With all coefficients in (11) being equalto zero, b = 0 is thus implied.

Let us now concentrate on the coefficients for the other variables in the cut, namelycoefficients {πsv : (s, v) ∈ δ+E (S)}. To that aim consider the points p3 and p4 shown inFig. 1c, d. From previous results, for each of these points, inequality (9) is respectivelywritten as

πs1v1 + π0s1 = 0 (13)

and

πs1v1 + π0s2 = 0. (14)

Accordingly, π0s1 − π0s2 = 0 is thus implied.Replacing in p3 arc (s1, v1) by (s2, v2), it then follows that πs1v1 = πs2v2 holds for

any (s1, v1) and (s2, v2) belonging to δ+E (S). Furthermore, after setting πs1v1 = −α,one establishes, through (13), that π0s1+πs1v1 = π0s1−α = 0 holds and that π0s1 = α

therefore applies for any s1 ∈ S. That concludes the proof. �

Theorem 2 Inequality (10) is facet defining when |V \S| ≥ k + 2 and |S| ≥ k + 2.

Proof The idea of the proof is to show, for α > 0 and for any two pairs of verticess1, s2 ∈ S and v1, v2 ∈ V \S, that the following relations hold: (a) βv1 = βs1 =πv1v2 = π0v1 = 0, (b) πs1s2 = πs1v1 = α, (c) π0s1 = −kα and (d) πv1s1 = −(k−1)α.To show that, it should be recalled, from Lemma 1, that βi = 0 could be assumed forall i ∈ V .

Assume that s1, s2 ∈ S and v1, v2 ∈ V \S. Additionally, consider those feasibleKCTP solutions corresponding to the points p5, p6 and p7 of X depicted in Fig. 2a–c.For the last two figures, other than the explicitly identified vertex s4, there may existadditional vertices of S that are not spanned by KCTP arborescences. Irrespective of

123

Page 12: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

522 L. Simonetti et al.

that, one may write

(i, j)∈AE (V \S)

πi j p5i j + π0v1 = b, (15)

(i, j)∈AE (S)

πi j p6i j + π0s1 = b (16)

and

πv1s1 +∑

(i, j)∈AE (S)

πi j p7i j + π0v1 = b, (17)

respectively for points p5, p6 and p7.Initially, let us focus on point p5. Accordingly, it is not difficult to see that replacing

arc (v1, v2) by (v3, v4), inequality (10) is still tight and πv1v2 = πv3v4 holds. Similaroperations allows one to show that πv1v2 = πv3v4 , for any (v1, v2) and any (v3, v4)

in AE (V \S). Replacing arcs (0, v1) and (v1, v2) respectively by (0, v2) and (v2, v1),leads to π0v1 + πv1v2 = π0v2 + πv2v1 and π0v1 = π0v2 therefore results.

Recall now, from Lemma 1, that there must exist an arc (p, q) such that πpq = 0.One could then fix πv1v2 = πpq = 0 and πv1v2 = 0 results for any (v1, v2) ∈AE (V \S). Resorting to Lemma 1 once again, there must exist v′ ∈ V \S such thatπ0v′ = 0. Accordingly, pick v′ = v1 and π0v1 = π0v′ = 0 thus results, implying thatb = 0.

Let us now apply similar arc exchange operations to p7. Replacing arc (s1, s2) by(s3, s4), it is not difficult to see that inequality (10) remains tight and that πs1s2 = πs3s4

is implied. This result could be easily extended to any choice of (s1, s2) and (s3, s4)

in AE (S). Accordingly, after replacing arcs (0, v1), (v1, s1) and (s1, s2) respectivelyby (0, v2), (v2, s2) and (s2, s1), inequality (10) remains tight and πv1s1 = πv2s2 resultsfor any choice of {s1, s2} ∈ S and {v1, v2} ∈ V \S.

Let us now turn to point p6. After replacing arcs (0, s1) and (s1, s2) respectively by(0, s2) and (s2, s1), π0s1 = π0s2 is obtained. Additionally, after replacing arc (s1, s3)

by (s2, v1), one obtains πs1s3 = πs2v1 for any choice of vertices s1, s2, s3 ∈ S andv1 ∈ V \S.

Finally, let us fix πs1s2 = πs1v1 = α, recall that |S| ≥ k + 2, and notice thatexactly k arcs pointing outwards of AE (S) were selected for p6. As such, (16) impliesπ0s1 + kπs1s2 = 0 and π0s1 = −kα thus results. By similar arguments, (17) impliesthat π0v1+πv1s1+(k−1)πs1s2 = 0 and πv1s1 = −(k−1)α thus results. That concludesthe proof. �

Provided certain conditions are met, directed cutset inequalities (3) are also facetdefining for P . These conditions and the corresponding facetial proof are presentednext.

Theorem 3 Restricting S ⊂ V to |S| ≥ 2, inequalities (3) are facet defining for P if|V \S| ≥ k + 1 applies. Otherwise, they are dominated by (9).

123

Page 13: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

Polyhedral results and a Branch-and-cut algorithm for the KCTP 523

Proof Firstly notice that inequalities (3) reduce to Eq. (2) if |S| = 1 applies. Addi-tionally, observe that if |V \S| ≤ k holds, a feasible solution to KCTP cannot be foundfrom among only the vertices in V \S and (3) is therefore dominated by (9). To checkthat it suffices to rewrite (9) as

∑(i, j)∈δ−E (S) xi j +∑

i∈S x0i ≥ 1.Addressing now the general case, the idea of the proof is to show, for α > 0 and for

any two pairs of vertices {s1, s2} ∈ S and {v1, v2} ∈ V \S, that the following relationshold: (a) πv1s1 = πv1v2 = πs1s2 = π0v1 = 0, (b) πv1s1 = π0s1 = α and (c) βv = −α,for v as defined in Lemma 1.

Assume that s1, s2 ∈ S and v1, v2 ∈ V \S. Additionally, consider those feasibleKCTP solutions corresponding to the points p8, p9, and p10 of X depicted in Fig. 3a–c. Additionally, recall from Lemma 1 that, for a given v ∈ V, βi = 0 could be assumedfor all i ∈ V \{v}.

For points p8 or p10, after replacing arcs of AE (S) by arcs of AE (V \S) or arcsof AE (V \S) by arcs in the cut δ−E (V \S), πs1s2 = πv1v2 and πv1v2 = πs1v3 result forany v1, v2, v3 ∈ V \S, s1, s2 ∈ S and s2 �= v. Furthermore, from Lemma 1, theremust exist a (p, q) such that πpq = 0 could be assumed. Accordingly, we choose(p, q) ∈ AE (V \S) for that role.

Let us now turn to point p8. Setting s1 = v, it is not difficult to see that replacing arcs(0, s1) and (s1, s2) respectively by (0, s2) and (s2, s1), inequality (9) is still tight andπ0s1 = π0s2 + πs2s1 is obtained. Furthermore, if there exists s3 ∈ S, one may replace(s2, s1) and (v1, v2) respectively by (s2, s3) and (s3, s1) to obtain πs2s1 = πs3s1 . Giventhat Lemma 1 ensures the existence of an arc (u, l) such that πul = 0, we then take(u, l) = (u, v) ∈ δ−E (v). Accordingly, πs2s1 = 0 and π0s1 = π0s2 = α are obtained.

Performing on p9 arc exchange operations similar to the ones conducted above,π0v1 = π0v2 results for all v1, v2 ∈ V \S. Furthermore, resorting to Lemma 1 onceagain, there exists v′ ∈ V \S such that π0v′ = 0 and π0v1 = π0v′ = 0 is thus obtained.

For point p9, all inequality coefficients have a value of zero and b = 0 is thusimplied. Furthermore, since only two inequality coefficients are non zero valued forpoints p8 and p10, π0s1 + βv = πv1s1 + βv, πv1s1 = α and βv = −α result for anys1 ∈ S and v1 ∈ V \S. That concludes the proof. �

4 Pre-processing tests

In this section, two pre-processing tests are suggested for KCTP. One applies toinstances subjected to vertex and edge weights. The other is restricted to instanceswith vertex weights only. They both take as an input a graph G = (V, E), correspond-ing vertex and/or edge weights, and a constant k. Prior to describing the tests, let usfirst introduce the following additional notation:

– For a given subset of edges Q ⊂ E , denote by V (Q) ⊆ V those vertices of G thatare end nodes for the edges of Q.

– For a given vertex i ∈ V , denote by Γi ⊂ V the set of neighbor vertices to i , i.e.,all those vertices of G that share an edge with i .

– Given a tree T = (VT , ET ) of G and a vertex i ∈ VT , denote by δT (i) = {e : e ∈δ(i) ∩ ET } those edges of T that are incident to i .

123

Page 14: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

524 L. Simonetti et al.

– For sets Q ⊂ E and V (Q) ⊆ V as defined above, let d(Q) = ∑i∈V (Q) di ,

w(Q) =∑e∈Q we and f (Q) = d(Q)+w(Q) respectively denote corresponding

sums of vertex weights, edge weights, and vertex and edge weights.– Let Gl = (V l , El) be a subgraph of G satisfying |V l | = |El | = l. Additionally, let

Ll = w(El)+ d(V l) be a lower bound on the weight of any tree of G containingexactly l edges. Under these definitions, it should be noticed that one may end uphaving (a) i ∈ V l and i �∈ V (El) and (b) i ∈ V (El) and i �∈ V l .

Two different approaches are used to select subsets of edges El ⊆ E . The first onesimply chooses the cheapest l edges of G. The second selects these edges by applyingto G, under edge costs {w{i, j} : {i, j} ∈ E}, the first l iterations of Kruskal’s MinimumSpanning Tree algorithm. Selection of V l is carried out by simply picking the cheapestl vertices of V , under vertex weights {di : i ∈ V }.Proposition 2 Assume that {we ≥ 0 : e ∈ E} and {di ≥ 0 : i ∈ V } are given anddenote by P a path of G that does not contain edge {i, j} ∈ E but has i and j as itsend points. Assume as well that z = min{k − 1; |P| − 1}. Then, if

w{i, j} + di + d j + Lz ≥ f (P) (18)

applies, there must exist an optimal KCTP solution that does not contain edge {i, j}.Proof Assume that T = (VT , ET ) is an optimal KCTP tree and let {i, j} ∈ ET .Accordingly notice that w{i, j} + di + d j + Lz ≤ w(ET ) + d(VT ) holds and thattherefore w{i, j} + di + d j + Lz is a valid lower bound on the weight of T .

Let us now investigate path P while considering two possibilities for it. For thefirst one, |P| ≥ k applies and a subpath P ′ ⊆ P should be selected from it. P ′ musthave |P ′| = k and is not guaranteed to connecting i and j . Notice, in this case, that(V (P ′), P ′) is a KCTP tree and that therefore f (P ′) ≤ f (P) ≤ f (ET ) holds.

Alternatively, assume that |P| < k and consider T ′ = (VT ′ , ET ′), a connectedsubgraph of G where ET ′ := (ET \{i, j}) ∪ (P\ET ) and VT ′ := V (ET ′). Notice, inassociation, that |ET ′ | is possibly larger than k. Accordingly, if applicable, set R← ∅and build a KCTP tree from T ′ by applying (|P| − |ET ∩ P| − 1) times the followingtwo steps:

1. If there exists a cycle C ⊆ ET ′ , let e = arg max{we : e ∈ C\P}. Otherwise, lete = {p, q}, where {p, q} = arg max{w{p,q}+dp : {p, q} ∈ ET ′ \P, |δT ′(p)| = 1}.

2. ET ′ ← ET ′ \{e}, R← R ∪ {e}.For the procedure above, R contains the set of edges eventually removed from ET ′ .Accordingly, let us redefine T ′ as T ′ = (V (ET ′), ET ′) and notice that it now impliesa KCTP tree. Furthermore, observe that f (ET ′)− f (ET ) = f (P)−d(V (P)∩VT )−w(P ∩ ET )−w{i, j} −w(R)− d(V (R)\VT ′) holds. Then, |R| + |ET ∩ P| = |P| − 1results and f (ET ′)− f (ET ) ≤ f (P)− di − d j −w{i, j} − L |P|−1 ≤ 0 thus follows.That concludes the proof. �

Two strategies were followed for selecting paths for the pre-processing test above.The first one enumerates all different paths of G involving no more than 3 edges. Thesecond relies on shortest paths for all distinct combinations of different end vertices iand j belonging to V .

123

Page 15: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

Polyhedral results and a Branch-and-cut algorithm for the KCTP 525

Proposition 3 Assume that {we = 0 : e ∈ E} and {di ≥ 0 : i ∈ V } are given andselect a vertex i ∈ V , a neighbor vertex v = arg min{d j : j ∈ Γi }, and a subsetof vertices S ⊆ V \{i} such that: (i)

∑j∈S d j ≤ di , (ii) the subgraph of G induced

by S, (S, E(S)), is connected, (iii) Γi ⊆ ⋃j∈S Γ j and (iv) dv ≤ di . For i, v and

S satisfying the conditions above, there exists an optimal KCTP tree that does notcontain edges of (δ(i)\{i, v}).

Proof Notice, for every pair of vertices in Γi , that there exists at least one path havingthese vertices as end points and only involving edges of E(S). Additionally, let T =(VT , ET ) be an optimal KCTP tree containing i ∈ V . Provided {i, v} is the onlyedge in δT (i), we are done. Otherwise, let T ′ = (VT ′ , ET ′) be a subgraph of T witha vertex set VT ′ = VT \{i} and an edge set ET ′ = ET \δT (i). T ′ contains exactly|δT (i)| connected components and there must exist a Q ⊆ E(S∪ (Γi ∩VT )) such that(VT ′ ∪V (Q), ET ′ ∪Q) induces a connected acyclic subgraph of G. Let T = (VT , ET ),with a vertex set VT = VT ′ ∪ V (Q) and an edge set ET = ET ′ ∪ Q, be such asubgraph. Accordingly, if |ET | = k applies, f (ET ) ≤ f (ET ) then holds. Conversely,if k < |ET |, one should keep removing edges { j, z} ∈ ET with |δT ( j)| = 1, until|ET | = k results. At that point, f (ET ) ≤ f (ET ) is enforced once again. Finally,assume that k > |ET | and notice, in this case, that the only admissible value for |ET |is k − 1. If S �⊂ VT , one then adds any edge connecting VT to the vertex in S\VT . Onthe other hand, if S ⊆ VT then S ⊆ VT and V (Q) = ∅ apply if k > |ET |. Therefore,if S ⊆ VT and v �∈ VT hold, an edge connecting S to v may also be added. Finally, ifS ⊆ VT and v ∈ VT , one should respectively add edge {i, v} to ET and vertex i to VT .Therefore, for any of the three situations just outlined, after appending the missingedge to ET , f (ET ) ≤ f (ET ) once again results. That concludes the proof. �

In our implementation of the pre-processing test above, sets S are selected as: (a)S = {v}, for all v ∈ V , and (b) for a given j ∈ V and S ⊆ Γ j , an S with no more than4 vertices is chosen from S.

5 A Branch-and-cut algorithm for solving KCTP

The most important aspects of our Branch-and-cut algorithm are described in thissection. The XPRESS optimization package, release 7.1, is used for solving linearprograms and also for the overall management of the enumeration tree. However, itsautomatic generation of cutting planes, pre-processing tests and primal heuristics arekept switched off.

Since symmetry is an issue for the KCTP reformulation we use, attempts to reduceits negative impacts are described next, in Sect. 5.1. Additionally, in Sects. 5.2 and 5.3,separation procedures are presented respectively for the directed cutset inequalities(3) and for the new inequalities (8)–(10). A description of our branching rule thenfollows in Sect. 5.4 while a primal heuristic for KCTP is presented next in Sect. 5.5.Finally, dual pricing tests are described in Sect. 5.6.

123

Page 16: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

526 L. Simonetti et al.

5.1 Attempting to break symmetries

For any given KCTP tree of G, say T = (VT , ET ), k+ 1 symmetrical KCTP arbores-cences are implied in D. They differ from each other by their respective root vertices,a different vertex of VT playing that role for every different arborescence. It should bepointed out, however, that symmetry is not exclusive to PDCU T but similarly appliesto the KCTP reformulations in [33].

Branch-and-bound algorithms for formulations that exhibit symmetries tend, ingeneral, to behave poorly. The reason being the various different enumeration roundsthat must be carried out to investigate what essentially is a same solution. Therefore,in an attempt to reduce the negative impact symmetry imposes on PDCU T , we suggestthe use of the following inequalities:

j>i

x0 j + yi ≤ 1,∀i ∈ V . (19)

They impose, for every KCTP tree T = (VT , ET ) of G, that only one of its k + 1corresponding arborescences of D remains feasible. This condition applies to thatarborescence where arc (0, j) is defined for the smallest indexed vertex of VT .

Chimani et al. [10] attempted to break PDCU T symmetries with inequalities

x0 j + yi ≤ 1,∀i, j ∈ V, i < j, (20)

that are somewhat similar to the ones above. It should be noticed that neither (19) nor(20) are capable of improving LP relaxation bounds for PDCU T . However, inequalities(19) present at least one advantage over (20). They only number O(n) whereas O(n2)

inequalities exist for (20).

5.2 Separation of directed cutset inequalities

Our Branch-and-cut algorithm firstly solves the linear program

min

⎧⎨

a∈ A

ca xa : (x, y) ∈ P ∩ R2(m+n)+

⎫⎬

⎭, (21)

where P is the relaxation of PDCU T implied by constraints (2), (4)–(6). Denote by(x, y) an optimal solution to (21). If (x, y) is integer and its corresponding supportgraph is cycle free, then (x, y) solves (1). Otherwise, we attempt to find valid inequal-ities for P that are violated by (x, y).

In our Branch-and-cut algorithm, the directed cutset constraints (3) are the firstfamily of valid inequalities that we attempt to separate. This is carried out by solvinga global minimum cut problem formulated over a network defined by digraph D =(V , A) and arc capacities {xi j : (i, j) ∈ A}. Separation of (3) could therefore becarried out in O(n3) time. Assume now that W ⊂ V is the set of vertices implying

123

Page 17: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

Polyhedral results and a Branch-and-cut algorithm for the KCTP 527

a minimum cut in D. Then a directed cutset inequality (3) is violated whenever thecapacity of its corresponding cut, i.e., the sum of the capacities for the arcs pointinginto W , is less than yv , for v ∈ W .

At every tree node, in an attempt to speed up convergence to optimal LP relaxationbounds, we implemented the creep-flow strategy proposed by Koch and Martin [22]. Itamounts to appending to the relaxation, among all maximally violated cuts, only thosewith as few non-zero entries as possible. Accordingly, an ε = 10−6 factor is added tothe capacity of every arc (i, j) ∈ AE having xi j = 0. As a result, networks becomedenser and CPU times for max-flow computations increase. However this increase isoffset by CPU time reductions attained in solving resulting linear programs.

5.3 Separation of inequalities (8)–(10)

Two different types of heuristics are used for the separation of inequalities (8)–(10).The first one is based on finding minimum cuts in networks while the second is agreedy one.

5.3.1 Procedures based on min-cut computations

Our first separation heuristic directly follows from the procedure described in Sect. 5.2.Accordingly, let W ⊂ V be a subset of vertices implying a global minimum cut forthe network defined in that section. Whenever |W | ≤ k (resp. |V \W | ≤ k) holds, wethen check, by inspection, if the corresponding inequalities (8) and (9) are violated forS = W (resp. S = V \W ). Accordingly, if |W | ≥ k + 2 (resp. |V \W | ≥ k + 2) holds,inequality (10) is then checked for violation for S = W (resp. S = V \W ).

The separation procedure described above makes a very straightforward use of theglobal minimum cuts defined in Sect. 5.2. No additional max-flow computations arecarried out in an attempt to systematically investigate vertex sets other than S = Wand S = V \W . In order to do that we will compute global minimum cuts for sourcenodes different from 0. Indeed, node 0 will even be excluded from the networks to beinvestigated. More precisely, we choose a vertex v ∈ V with yv > 0 and compute aglobal minimum cut separating v from vertices in V \{v}. Having done that, one shouldthen verify if the cardinality of the vertex set implied by the cut (resp. its complementin V ) matches the cardinalities imposed on (8)–(10). Whenever applicable, violationof these inequalities should then be checked.

5.3.2 Greedy heuristic

We have also implemented greedy heuristics for the separation of (8)–(10). In par-ticular, the description of the procedure that follows is geared into the separation ofinequalities (8). However, as it will become evident, it could easily be adapted toseparate inequalities (9) and (10) as well.

The heuristic involves two basic steps. Firstly, a tentative vertex set S is attemptedto be obtained. Then, it should be enlarged whenever the cardinality required by (8)is not met or when a violated inequality is not implied. This enlargement process

123

Page 18: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

528 L. Simonetti et al.

should go on until a violated inequality is found or when S itself cannot grow anyfurther.

Assume that (x, y) is available at the first step of the heuristic. One should thenattempt to identify directed paths that only include arcs with the same correspondingvalues in x . These paths are called blocks and whenever an arc (i, j) is included in ablock, its reverse arc ( j, i) should also be included in the same block. For example,if xv1v2 = xv2v3 = xv2v4 = 0.8, xv2v1 = xv3v2 = 0.2 and xv4v2 = 0 hold, twodifferent blocks, namely {[v1, v2], [v2, v3]} and {[v2, v4]}, are identified by the algo-rithm. Blocks appear to be attractive structures to investigate. Indeed, we empiricallyobserved that inequalities (8)–(10) violated by (x, y) are likely to be associated withsets S containing all vertices spanned by a same block. Quite clearly, blocks may notimply a violated inequality and, in most cases, they do not even imply a valid inequalityfor PDCU T . Therefore, whenever applicable, in the second step of the heuristic, oneshould attempt to enlarge a given block by adding to it adjacent blocks. This shouldbe done in a greedy way, aimed not only at finding violated inequalities but also atmaximizing the amount of violation.

Greedy separation heuristics, as described above, were implemented for every fam-ily of inequalities (8)–(10). For each of the resulting algorithms, every different set ofvertices defining a block is used as an initial tentative set S.

5.4 Branching rules

At every node in the enumeration tree, separation algorithms for inequalities (8)–(10)are applied until they all fail. When that happens, symmetry breaking inequalities (19)are then separated. In case violated inequalities are found, the resulting reinforcedrelaxation of (1) is solved and separation of (8)–(10) is then resumed, as previouslyindicated.Otherwise, branching is carried out over the Special Ordered Sets impliedby constraints (2), taking complements in 1 for variables {yi : i ∈ V }.

5.5 Primal heuristic

We use the Dynamic Tree heuristic suggested in [5] to generate feasible KCTPsolutions. The heuristic involves two basic steps and exploits the fact that KCTP couldbe solved in polynomial time whenever graph G = (V, E) is a tree. Accordingly, atthe first step of the algorithm, a spanning tree of G is obtained. That tree is then used,at the second step, as an input graph over which a KCTP tree is obtained. A DynamicProgramming (DP) algorithm is used for that purpose and the tree thus obtained isguaranteed to be optimal for our simpler input graph.

The key issue to be addressed by Dynamic Tree is how to identify an attractivespanning tree of G for the subsequent application of DP. Blum [5] proposed the useof auxiliary edge weights, capable of simultaneously handling the vertex and edgeweights of G. Accordingly, a minimum spanning tree of G is then computed over theseauxiliary weights. Two minimum spanning tree algorithms were tested in [5], namely,Prim tree and Kruskal tree. Experiments carried out in [5], indicate thatKruskal tree performs better than Prim tree. Therefore, Kruskal tree

123

Page 19: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

Polyhedral results and a Branch-and-cut algorithm for the KCTP 529

is used here, under edge weights {w{i, j} = w{i, j} + di + d j : {i, j} ∈ E}. DynamicTree is applied prior to running our Branch-and-cut algorithm.

5.6 Dual pricing reduction tests

At the root node of the enumeration tree, we attempt to identify decision variablesthat must be zero valued at any optimal KCTP solution. Accordingly, assume thatan upper bound ub and a valid LP relaxation solution are available for the problem.Furthermore, let {rc(i, j) : (i, j) ∈ A} be the LP reduced costs corresponding to therelaxation and lb be the lower bound it implies for KCTP. From LP duality theory, avariable xi j must be zero valued if rc(i, j) + lb ≥ ub holds. Clearly, the stronger thelower and the upper bounds are, the more likely these variables are to be identified.

KCTP is a member of a family of combinatorial optimization problems that could beformulated as restricted minimum cost non-spanning arborescences of a given digraph.For these problems, our pricing test could be made stronger by following some of theideas proposed in Duin [13] and Polzin and Daneshmand [31]. In accordance withthem, taking LP reduced costs as corresponding arc costs, one should first computeshortest paths connecting the root vertex 0 to every vertex v ∈ V . Let p(v) denote thecost of the path connecting 0 to v. Then, whenever min{p(i), p( j)}+rc(i, j)+lb ≥ ubholds, arc {i, j} is guaranteed not to be part of any optimal KCTP arborescence. Weapply this reinforced test at the root node of our Branch-and-cut tree. It is used forevery 5 cutting plane rounds or whenever lower bound improvement is at least 0.5.

6 Computational experiments

Our Branch-and-cut algorithm was tested on an Intel Core 2 Duo machine with 2 GB ofRAM and running at 2.93 GHz. Only one processor was used and no multi-threadingwas allowed. For every test instance, a CPU time limit of 2 h was enforced. The fol-lowing five test sets span the whole KCTP literature and were used in our experiments:

– (BX) - Blesa and Xhafa [4]. The set contains instances defined over 4-regulargraphs where |V | ranges from 25 to 1,000. The same cardinality k = 20 is imposedon all instances. In accordance with previous results [6,10], these instances areeasy to solve. In particular, they are all solved by the Branch-and-cut algorithm ofChimani et al. [10] in 0.85 s, on the average.

– (BB) - Blum and Blesa [6]. The set is organized into subsets, each of them corre-sponding to a different type of graph. The first subset corresponds to grid graphswhere |V | = 225, i.e., 15×15 grids, and k ∈ {20, 40, 60, 80}. Instances are identi-fied with names initiated by bb. The second subset contains some of the instancesin set BX, redefined with k assuming values other than 20. The third subset origi-nates from benchmark instances for the Steiner Tree Problem (STP) [2,22,25,26].Underlying graphs have |V | ∈ {500, 1, 000} and various different values of k areused. Finally, the fourth subset is associated with Leighton graphs [3,6] where|V | = 450 and k ∈ {45, 135, 225, 405}.

123

Page 20: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

530 L. Simonetti et al.

– (H) - Chimani et al. [10]. The set also originates from the STP literature andcontains Hypercube instances, named after the graphs it involves. It was originallyproposed for STP [34] and was later on used for the Prize Collecting STP (PCSTP)(see [11,24]). For PCSTP, vertices and edges are assigned non-negative weights.In our experiments, two subsets of H instances are considered. The first one is onlyedge weighted while the second is vertex and edge weighted. For the second subset,instances are exactly the ones previously suggested for PCSTP. As in [11,24], Hinstances are further divided into p and u instances.

– (BUM) - Brimberg et al. [9]. The set contains vertex weighted KCTP instances.It is divided into two subsets: BUM1 for grid graphs and BUM2 for random ones.In both cases, vertex weights are randomly generated integers, drawn from theuniform distribution in the range [10, 1,000]. The first subset contains very sparseinstances, defined over grids of sizes 30× 30, 40× 40 and 50× 50. The second isassociated with denser graphs with |V | ∈ {3, 000, 4, 000, 5, 000} and an averageedge degree of 10 for every vertex. For instances in either subsets, values of k aretaken as the following percentages of |V | : 10, 20, . . . , 50%.

– (Q) - Quintão et al. [33]. The set involves vertex weighted grid graphs generatedas suggested in [9]. Graphs are associated with grids of sizes 10×10, 15×15, 20×20, 30×30, 40×40 and 50×50. Their corresponding values of k are respectively50, 112, 200, 450, 800 and 1,250, that approximately amounts to � |V |2 �, for eachgraph. These values of k were empirically observed in [9] to be the ones leading tothe hardest to solve KCTP instances.

6.1 Pre-processing results

Results for the pre-processing tests of Sect. 4 are presented in Table 1. They are groupedrow wise by the following instance types: vertex weighted, edge weighted and, finally,vertex and edge weighted. For each of these groups, entries in the third table columnindicate the average, the minimum and the maximum number of edges removed fromG. The next two columns show what percentage of m = |E | these figures representand t (s), the corresponding CPU time, in seconds, spent on the tests.

For the values of k considered here, the outcome of the pre-processing tests do notdepend on k. That happens because the maximum number of edges in the paths webuild (see Sect. 4, for details) is usually smaller than the smallest value of k underinvestigation. Therefore, results in Table 1 refer to 201 instances only (118 for vertexweighted, 69 for edge weighted and 14 for vertex and edge weighted) instead of the947 instances reported in the literature. Accordingly, a single value of k is used for allinstances that originate from a same underlying graph.

Results in Table 1 suggest that our pre-processing tests are much more effectivefor edge weighted instances than they are for instances in the other two groups. Foredge weighted instances, on the average, they managed to eliminate more than 17 %of the edges involved. For that reason, prior to running our Branch-and-cut algorithm,pre-processing tests are only applied to edge weighted instances. For the remaininggroups, their use clearly do not pay off.

123

Page 21: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

Polyhedral results and a Branch-and-cut algorithm for the KCTP 531

Table 1 Pre-processing computational results

Instance type # of instances tested # of edges fixed % of m t (s)

Node weighted 118 Average 7.03 0.68 7.91

Min 0 0.00 0.00

Max 26 6.11 49.17

Edge weighted 69 Average 950.36 17.37 0.57

Min 1 0.06 0.00

Max 20,481 83.41 8.12

Node and edge weighted 14 Average 0.00 0.00 1.59

Min 0 0.00 0.00

Max 0 0.00 8.85

Table 2 Linear programming relaxation statistics: root node bounds for selected instances

Instance k Opt LP bound Gap LP bound Gap # of cuts

PDCU T (%) P+DCU T (%) (8) (9) (10)

bb15×15_2 20 253 233.58 7.68 253 0.00 83 33 4

bb45×5_1 20 306 295.5 3.43 302.33 1.20 482 274 63

bb45×5_1 40 695 682.88 1.74 693.52 0.21 150 32 20

bb45×5_2 20 302 272.95 9.62 299.82 0.72 253 175 40

g1,000-4-04_20 20 298 286.87 3.73 298 0.00 32 16 7

g10×10 10 227 213.67 5.87 219 3.52 243 177 75

g221 40 1,541 1,473.75 4.36 1,532.64 0.54 964 192 65

g75-4-02_20 20 295 290 1.69 295 0.00 19 7 0

GRID_40_800_2 800 228,382 226,756.28 0.71 228,382 0.00 7,369 639 0

GRID_50_1,250_3 1,250 344,398 342,174.36 0.65 344,397.22 0.00 18,096 409 0

steinc5 2 5 3.5 30.00 5 0.00 7 7 2

6.2 Branch-and-cut results

The very first results reported in this section highlight the benefits arising from theuse of inequalities (8)–(10). In particular, they show the strengthening these inequal-ities bring to PDCU T lower bounds. Accordingly, we will be denoting by P+DCU Tformulation PDCU T strengthened with the new inequalities.

Table 2 presents detailed computational results for a few representative instances ofour five test sets. Additionally, Table 3 reports on average and maximum CPU timesfor a group of 610 instances, out of a total of 947. These are the ones we succeeded ingenerating individual LP bounds, i.e. those for PDCU T and P+DCU T , within the CPUtime limit of 2 h. It should be pointed out, however, that for most of the remaining337 instances, due to the use of inequalities (8)–(10), LP bounds could be computedfor P+DCU T within the imposed time limit. Therefore, separating inequalities (8)–(10)

123

Page 22: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

532 L. Simonetti et al.

Table 3 Linear Programmingrelaxation statistics: average andmaximum results

PDCU T P+DCU T

Avg duality gap (%) 0.46 0.30

Max duality gap (%) 30.00 9.95

Avg # of cuts (8) – 1,618.6

Avg # of cuts (9) – 865.5

Avg # of cuts (10) – 215.5

Max # of cuts (8) – 27,802

Max # of cuts (9) – 55,425

Max # of cuts (10) – 8,464

# of instances such that:

Gap = 0 299 413

P+DCU T improved PDCU T – 242

turned out to be effective not only for improving LP bounds but also to accelerateconvergence of the cutting plane algorithm.

The first, second and third columns of Table 2 respectively indicate instance name,corresponding value of k and optimal objective function value, opt. For the next twocolumns, we report on the lower bound implied by formulation PDCU T and its corre-sponding percentage duality gap from optimality. Similar information is provided forformulation P+DCU T , in the two columns that follow. Finally, the last three columnsbring the overall number of cuts (8)–(10) generated in each Branch-and-cut tree.

Table 3 shows the average and the maximum duality gaps implied by formulationsPDCU T and P+DCU T . It also indicates the average and the maximum number of cuts(8)–(10) generated within the enumeration trees. Additionally, the table also bringsthe number of instances having a LP duality gap of zero, respectively for PDCU T andP+DCU T , and the number of instances, out of 610, for which the lower bounds givenby P+DCU T improved on their PDCU T counterparts.

From the results in Tables 2 and 3, it could be observed that inequalities (8)–(10)led to significant lower bound improvements. Accordingly, P+DCU T lower bounds arenot only much tighter than corresponding PDCU T bounds but they also imply optimalintegral solutions for 413 test instances. That compares with a total of 299 instances forPDCU T . Furthermore, in spite of the fact that the new inequalities are only heuristicallyseparated, maximum duality gaps dropped from 30 % for PDCU T to less than 10 %for P+DCU T .

The next set of results compare our Branch-and-cut algorithm with the state-of-the-art solution algorithm in the KCTP literature, i.e., the Branch-and-cut algorithmof Chimani et al. [10]. The computational results presented in [10] are given in averagevalues for the BX, BB and H instances. They correspond to values of k that representsome specific percentages values of |V |. Therefore, we decided to carry out compar-isons directly against the results presented in the PhD thesis of Chimani [20]. These,in any case, are the ones behind the aggregated results presented in [10].

Computational experiments in [20] were carried out on a 2.33 GHz Intel Xeon5,140 machine with 2 Gbytes of RAM memory. As it was the case for our experi-ments, no multi-threading was allowed in [20]. However, the machine used there is

123

Page 23: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

Polyhedral results and a Branch-and-cut algorithm for the KCTP 533

Table 4 CPU time comparisons with the algorithm in Chimani [20]: selected instances

Instance k CPU time (in seconds) Speed-up factor

BC+ BC BC (adjusted) BC+ BC (adjusted)

bb50×50_2 500 213.79 6,211.05 4,906.73 22.95 1.00

bb50×50_1 250 53.97 5,851.12 4,622.38 85.65 1.00

steine5 2,498 0.7 2,224.48 1,757.34 2,510.49 1.00

bb50×50_2 2,250 14 2,149.56 1,698.15 121.30 1.00

steine5 2,250 15.03 2,146.72 1,695.91 112.83 1.00

bb50×50_2 2,498 6.32 1,991.96 1,573.65 249.00 1.00

bb15×15_2 20 0.09 148.39 117.23 1,302.56 1.00

bb45×5_1 100 27.02 6.54 5.17 1.00 5.23

bb45×5_1 80 92.59 21.46 16.95 1.00 5.46

g400-4-05 40 7.08 1.41 1.11 1.00 6.38

Table 5 CPU time comparisonswith the algorithm in Chimani[20]: aggregate results

# of Instances for which:

BC+ solved slower than BC (adjusted) 11

BC+ solved faster than BC (adjusted) 243

Ties 3

Avg speed up factor of BC+ 34.03

Max speed up factor of BC+ 2,510.49

Avg speed up factor of BC (adjusted) 1.09

Max speed up factor of BC (adjusted) 6.38

slower than ours. Therefore, to compare the two algorithms fairly, we will be present-ing not only the CPU times for our algorithm and those reported in [20] but also thelatter ones multiplied by a conversion factor. This factor takes into account the differ-ence in the number of floating point operations per second (flops), for each machine.Corresponding figures are 23,440 Mflops for our CPU and 18,664 Mflops for the onein [20]. Therefore, a 0.79 conversion factor is then used.

Tables 4 and 5 compare CPU times for the two algorithms. The Branch-and-cutalgorithm in [20] is identified as BC, whereas ours, which is based on P+DCU T , isidentified as BC+. As before, results are split into two tables. The first one, Table 4,provides detailed computational results for some selected instances. Then, to high-light more general trends, Table 5 follows with average and maximum results fora larger test bed. These results were obtained over the 258 instances for which adirect comparison could be established between the two algorithms. Detailed com-putational results for each algorithm could be found at www.dcc.ufmg.br/~acunha/KTREE/detailedbccomparisons.pdf.

The first column in Table 4 identifies the test instance while the second one showsits corresponding values of k. CPU times, quoted in seconds, then follow: one entry forour Branch-and-cut algorithm and another for the algorithm in [20]. Corresponding

123

Page 24: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

534 L. Simonetti et al.

Table 6 BC+ statistics for solved and unsolved instances

Total Q BX BB BUM H

BUM1 BUM2 Nodeweighted

Node andedge weigthed

p u p u

# of Instances 947 39 35 226 200 195 63 63 63 63

# of BC+ solved 823 38 35 224 190 145 61 63 31 36

# of BC+ unsolved 124 1 0 2 10 50 2 0 32 27

adjusted CPU times for the latter algorithm are presented next. In the two followingcolumns, speed up factors are presented for each algorithm. These correspond, for anytest instance and for a given algorithm, to the ratio between the CPU time taken by thealgorithm to solve the instance and that demanded by the slowest algorithm. Thereforespeed up factors are always equal to one for the slowest algorithm and larger than onefor the fastest.

Table 5 reports on the number of instances for which BC+ was faster, slower andtied up (up to the second decimal digit) with BC (adjusted). Also shown in that tableare the average and maximum speed up factors for each algorithm. In what follows,for convenience, we will refer to BC (adjusted) as BC.

As it could be observed from Tables 4 and 5, for most of the comparisons carried out,BC+ is faster than BC. Specifically, BC+ managed to solve 243 instances faster thanBC, whereas for only 11 instances it happened otherwise. Furthermore, correspondingaverage and maximum speed-up factors for BC+ are respectively 34 and 2,510. Thatcontrasts with the corresponding figures of 1.09 and 6.38 for BC. For each algorithm,excluding from average speed-up figures those instances for which the algorithm wasslower, average speed-up for BC+ is 35.9 while it is 3.0 for BC. Bearing in mindthat lower bounds for BC are based on PDCU T , the reason for such a performancedifference must be attributed to our use of inequalities (8)–(10).

Tables 6 and 7 show additional computational results for the 947 instances con-sidered here. Results are split into various columns, each of them corresponding toa different test set, namely, sets Q, BX, BB, BUM and H. Results for set H are fur-ther split into four groups as p and q instances are considered here with and withoutcorresponding node weights.

Table 6 shows the number of instances contained in each test set. This is followed,under the imposed CPU time limit of 2 h, by the number of instances BC+ managedto solve to proven optimality, for each of these sets.

Various average and maximum value information are presented next in Table 7.They relate to (a) gaps between primal heuristic and optimal solution values, (b) dualitygaps implied by formulations PDCU T and P+DCU T , and (c) number of enumeration treenodes for BC+. The last two rows in the table show average CPU times for BC+. Twodifferent values are presented. One involving all test instances, no matter if they weresolved within the CPU time limit or not. The other, restricted to only those instancesthat could be solved within that limit.

123

Page 25: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

Polyhedral results and a Branch-and-cut algorithm for the KCTP 535

Tabl

e7

Com

puta

tiona

lres

ults

invo

lvin

gal

l947

test

bed

inst

ance

s

Tota

lQ

BX

BB

BU

MH

BU

M1

BU

M2

Nod

ew

eigh

ted

Nod

ean

ded

gew

eigt

hed

pu

pu

%G

apfo

rhe

uris

ticA

vg1.

261.

981.

321.

660.

492.

190.

010.

000.

831.

88

Max

11.7

63.

896.

2311

.76

4.28

11.4

20.

040.

004.

819.

30

%G

apfo

rP

DC

UT

Avg

0.46

0.08

0.58

0.33

0.00

0.44

0.01

0.00

0.90

2.07

Max

30.0

00.

713.

7330

.00

0.01

7.35

0.10

0.00

5.51

9.47

%G

apfo

rP+ D

CU

TA

vg0.

300.

000.

090.

040.

000.

270.

000.

000.

902.

07

Max

9.47

0.06

1.38

2.41

0.01

7.22

0.03

0.00

5.46

9.47

#of

BC+

node

sA

vg13

3.59

1.26

1.29

2.55

1.17

3.79

14.9

21

665.

351,

300.

68

Max

25,1

586

583

673

113

111

,779

25,1

58

Ave

rage

BC

CPU

time

(sec

onds

)+O

ver

all

1,20

0.8

324.

80.

114

5.6

616.

42,

580.

831

8.3

0.02

3,80

8.3

3,25

4.4

T.lim

it29

6.9

143.

90.

182

.626

9.9

988.

192

.60.

030

7.0

295.

1

123

Page 26: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

536 L. Simonetti et al.

Results in Tables 6 and 7 suggest that BUM2, together with node and edge weightedH instances, are the hardest for BC+ to solve. Accordingly, they account for almostall of the instances left unsolved by that algorithm. Furthermore, they also present thehighest P+DCU T duality gaps and worst Dynamic Tree primal solutions, measuredin terms of percentage distances from optimality. For BUM2 instances, in particular,our algorithm typically hits the CPU time limit before one could even solve root nodeLP relaxations. It is not clear, however, why some H instances are so hard. Some oftheir edge and node weighted instances could be solved after exploring thousands ofenumeration tree nodes. However, all we could achieve for some similar instances wassolving their root node LP relaxations within the imposed CPU time limit.

7 Conclusions

In this paper, a polyhedral investigation was conducted for the k-Cardinality Tree Prob-lem. Three new families of valid inequalities were identified and two of them wereproven to be facet defining for the convex hull of k-cardinality trees. Additionally, newpre-processing tests and a primal heuristic were also introduced in this study. Finally, aBranch-and-cut algorithm that, in addition to separating the new inequalities also ben-efited from our two additional contributions was implemented and extensively tested.

The new inequalities led to significant improvements over existing LP relaxationbounds for the problem. Despite the fact that they were only heuristically separated,average and maximum LP relaxation duality gaps, over 610 test instances, droppedfrom 0.46 and 30 % respectively to 0.30 and 9 %. On the other hand, computationalexperiments also indicated that that our separation heuristics are quite effective. Notonly did they manage to find violated cuts but, for many test instances, they alsocontributed to accelerate convergence of the cutting plane algorithms.

A very robust Branch-and-cut algorithm emerged as a result of the two pointshighlighted above. Extensive computational tests indicate that our algorithm comparesfavorably with the state-of-art Branch-and-cut algorithm in the KCTP literature, i.e.,the one in [10,20]. Benefiting from a better approximation of the convex hull ofk−cardinality trees, it outperforms that algorithm, in CPU time terms, for 84 % of theinstances where a direct comparison could be established between the two.

Acknowledgments The authors wish to thank Ivana Ljubic and Maria Kandyba-Chimani for sending usdetailed computational results of their algorithm.

References

1. Awerbuch, B., Azar, Y., Blum, A., Vempala, S.: Improved approximation guarantees for minimumweight k-trees and prize-collecting salesmen. In: Proceedings of the 27th Annual ACM Symposiumon Theory of Computing, ACM Press, pp. 277–283 (1995)

2. Beasley, J.E.: An SST-based Algorithm for the Steiner Problem in Graphs. Networks 19, 1–16 (1989)3. Beasley, J.E.: OR-Library: distributing test problems by electronic mail. J. Oper. Res. Soc. 41(11),

1069–1072 (1990)4. Blesa, M.J., Xhafa, F.: A C++ implementation of Tabu search for v-cardinality tree problem based on

generic programming and component reuse. In. Net. Object. Days 2000, 648–652 (2000)5. Blum, C.: Revisiting dynamic programming for finding optimal subtrees in trees. Eur. J. Oper. Res.

177, 102–115 (2007)

123

Page 27: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

Polyhedral results and a Branch-and-cut algorithm for the KCTP 537

6. Blum, C., Blesa, M.J.: New metaheuristic approaches for the edge-weighted k-cardinality tree problem.Comput. Oper. Res. 32(6), 1355–1377 (2005)

7. Blum, C., Ehrgott, M.: Local search algorithms for the k-cardinality tree problem. Discret. Appl. Math.128, 511–540 (2003)

8. Borndörfer, R., Ferreira, C., Martin, A.: Decomposing matrices into blocks. SIAM J. Optim. 9(1),236–269 (1998)

9. Brimberg, J., Urosevic, D., Mladenovic, N.: Variable neighborhood search for the vertex weightedk-cardinality tree problem. Eur. J. Oper. Res. 171, 74–84 (2006)

10. Chimani, M., Kandyba, M., Ljubic, I., Mutzel, P.: Obtaining optimal k cardinality trees fast. ACM J.Exp. Algorithm., 14, 5:25–5:2.23 (2009)

11. da Cunha, A.S., Lucena, A., Maculan, N., Resende, M.: A relax-and-cut algorithm for the prize col-lecting steiner problem in graphs. Discret. Appl. Math. 157(6), 1198–1217 (2010)

12. Desrochers, M., Laporte, G.: Improvements and extensions to the miller-tucker-zemlin subtour elimi-nation constraints. Oper. Res. Lett. 10, 27–36 (1991)

13. Duin, C.: Steiner’s Problem in Graphs. PhD thesis, University of Amsterdam (1993)14. Ehrgott, M., Freitag, J.: K_TREE/K_SUBGRAPH: a program package for minimal weighted

k-cardinality trees and subgraphs. Eur. J. Oper. Res. 93, 224–225 (1996)15. Ehrgott, M., Hamacher, H.W., Freitag, J., Maffioli, F.: Heuristics for the k-cardinality tree and subgraph

problems. Asia-Pacific J. Oper. Res. 14, 87–114 (1997)16. Fischetti, M., Hamacher, H., Jörnsten, K., Maffioli, F.: Weighted k-cardinality trees: complexity and

polyhedral structure. Networks 24, 11–21 (1994)17. Foulds, L.R., Hamacher, H.W., Wilson, J.: Integer programming approaches to facilities layout models

with forbidden areas. Ann. Oper. Res. 81, 405–417 (1998)18. Garg, N., Hochbaum, D.: An o(log k) approximation algorithm for the k minimum spanning tree

problem on the plane. Algorithmica 18, 111–121 (1997)19. Jörnsten, K., Lokketangen, A.: Tabu search for weighted k-cardinality trees. Asia-Pacific J. Oper. Res.

14, 9–26 (1997)20. Kandyba-Chimani, M.: Exact algorithms for Network Design Problems using Graph Orientations.

PhD thesis, Fakultät für Informatik, Technischen Universität Dortmund, 2011. Available for downloadfrom: https://eldorado.tu-dortmund.de/bitstream/2003/27701/1/Dissertation.pdf

21. Kataoka, S., Araki, N., Yamada, T.: Upper and lower bounding procedures for minimum rootedk-subtree problem. Eur. J. Oper. Res. 122, 561–569 (2000)

22. Koch, T., Martin, A.: Solving steiner tree problems in graphs to optimality. Networks 32, 207–232(1998)

23. Kruskal, J.B.: On the shortest spanning subtree of a graph and the traveling salesman problem. Proc.Am. Math. Soc. 7, 48–50 (1956)

24. Ljubic, I., Weiskircher, R., Pferschy, U., Klau, G., Mutzel, P., Fischetti, M.: Solving the Prize-CollectingSteiner Problem to Optimality. Technische Universität Wien, Institut für Computergraphik und Algo-rithmen, Technical Report (2004)

25. Lucena, A., Beasley, J.E.: A branch and cut algorithm for the steiner problem in graphs. Networks 31,39–59 (1998)

26. Maculan, N.: The steiner problem in graphs. Ann. Discret. Math. 31, 185–212 (1987)27. Marathe, M.V., Ravi, R., Ravi, S.S., Rosenkrantz, D.J., Sundaram, R.: Spanning trees—short or small.

SIAM J. Discret. Math. 9(2), 178–200 (1996)28. Miller, C.E., Tucker, A.W., Zemlin, R.A.: Integer programming formulations and travelling salesman

problems. J. Assoc. Comput. Mach. 7, 326–329 (1960)29. Nemhauser, G.L., Wolsey, L.A.: Integer and Combinatorial Optimization. Wiley Interscience,

New York (1988)30. Philpott, A.B., Wormald, N.C.: On the optimal extraction of minimum weight k trees. Technical Report

TR-21/93., University of Auckland (1997)31. Polzin, T., Daneshmand, S.V.: Improved algorithms for the steiner problem in networks. Discret. Appl.

Math. 112(1–3), 263–300 (2001)32. Prim, R.C.: Shortest connection networks and some generalizations. Bell Sys. Tech. J. 36, 1389–1401

(1957)33. Quintão, F.P., da Cunha, A.S., Mateus, G.R., Lucena, A.: The k-cardinality tree problem: reformulations

and lagrangian relaxation. Discret. Appl. Math. 158, 1305–1314 (2010)

123

Page 28: Polyhedral results and a Branch-and-cut algorithm for the $$k$$ -cardinality tree problem

538 L. Simonetti et al.

34. Rosseti, I., Poggi de Aragão, M., Ribeiro, C.C., Uchoa, E., Werneck, R.F.: New benchmark instancesfor the Steiner problem in graphs. In: Extended Abstracts of the 4th Metaheuristics InternationalConference, pp. 557–561 (2001)

35. Simonetti L., Protti, F., Frota, Y., de Souza, C.C.: New branch-and-bound algorithms for k-cardinalitytree problems. Elect. Notes Discret. Math. 37, 27–32 (2011). LAGOS’11 - VI Latin-American Algo-rithms, Graphs and Optimization Symposium

123