- About this Journal ·
- Abstracting and Indexing ·
- Advance Access ·
- Aims and Scope ·
- Article Processing Charges ·
- Articles in Press ·
- Author Guidelines ·
- Bibliographic Information ·
- Citations to this Journal ·
- Contact Information ·
- Editorial Board ·
- Editorial Workflow ·
- Free eTOC Alerts ·
- Publication Ethics ·
- Reviewers Acknowledgment ·
- Submit a Manuscript ·
- Subscription Information ·
- Table of Contents

Advances in Operations Research

Volume 2011 (2011), Article ID 143732, 38 pages

http://dx.doi.org/10.1155/2011/143732

## Solving the Minimum Label Spanning Tree Problem by Mathematical Programming Techniques

Institute of Computer Graphics and Algorithms, Vienna University of Technology, 1040 Vienna, Austria

Received 20 November 2010; Accepted 5 March 2011

Academic Editor: I. L. Averbakh

Copyright © 2011 Andreas M. Chwatal and Günther R. Raidl. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

#### Abstract

We present exact mixed integer programming approaches including branch-and-cut and branch-and-cut-and-price for the minimum label spanning tree problem as well as a variant of it having multiple labels assigned to each edge. We compare formulations based on network flows and directed connectivity cuts. Further, we show how to use odd-hole inequalities and additional inequalities to strengthen the formulation. Label variables can be added dynamically to the model in the pricing step. Primal heuristics are incorporated into the framework to speed up the overall solution process. After a polyhedral comparison of the involved formulations, comprehensive computational experiments are presented in order to compare and evaluate the underlying formulations and the particular algorithmic building blocks of the overall branch-and-cut- (and-price) framework.

#### 1. Introduction

The minimum label spanning tree (MLST) problem was first introduced in [1] and has, for instance, applications in telecommunication network design and data compression [2]. For the MLST problem we are given an undirected graph with nodes (or vertices) and edges connecting pairs of nodes. In addition a labelling function is given, assigning to each edge an element, called “label”, from a finite set . The objective is to find a minimum cardinality label subset inducing a spanning tree in the sense that for each edge in the spanning tree, its corresponding label is selected. We also consider the situation of where more than one label can be assigned to an edge.

#### 2. Related Work

The minimum label spanning tree (MLST) problem has been introduced by Chang and Leu [1] for the first time. In this work, the authors showed the MLST problem to be -hard, and proposed an exact and an approximative algorithm called *maximum vertex covering Algorithm* (MVCA). Krumke and Wirth [3] proposed a modified construction algorithm and derived a performance guarantee for it. Moreover, it has been shown that the problem cannot be approximated with a constant factor. An improved performance bound has been obtained by Wan et al. [4], and a tight bound has then been found by Xiong et al. [5]. An experimental comparison of further MVCA variations is presented in [6].

Besides approximative methods many metaheuristic algorithms have been proposed and studied in the literature during the last decade. Various genetic algorithms have been developed in [7, 8]. Methods based on local search have been treated from a theoretical point of view in [9], and from a more practical one in [10–14]. In particular, the latter publications also cover metaheuristics like greedy randomized search procedures, local search, variable neighborhood search and the pilot method.

Less work does exist regarding exact algorithms. An exact algorithm based on -search has been proposed in [1], a similar approach, however, not using the guidance function of the -algorithm, has been proposed in [12]. So far, only two mathematical-programming approaches have been considered in the literature. The first mixed integer programming (MIP) formulation proposed by Chen et al. [15] is based on Miller-Tucker-Zemlin inequalities (cf. Section 3.1) which ensure that the decision variables for the edges induce a connected subgraph covering all nodes of the initial graph. In a recent work of Captivo et al. [16], the authors propose an MIP formulation based on single commodity flows, a frequently used modelling technique for spanning trees. A branch-and-cut algorithm based on directed connection cuts and cycle-elimination cuts for an extension of the MLST problem has been described in [17]. For a general introduction to integer linear programming-(ILP-) based algorithms like branch-and-cut and branch-and-price we refer the reader to [18].

In this work we propose a branch-and-cut (and-price) (BCP) framework for the solution of moderately sized problem instances. We present a polyhedral and computational comparison of an underlying flow-formulation to a formulation based on directed connection cuts. The latter is proposed for this particular problem for the first time, and it is further shown how the cut-separation can be performed more efficiently than for many other spanning tree problems. New inequalities based on the label variables are introduced to strengthen the formulations. Optionally, also cycle-elimination cuts are separated. Furthermore we show how to use odd hole inequalities to strengthen the formulation by cutting off fractional values of the label variables. For these particular inequalities, a MIP-based separation heuristic is proposed for the first time. We further consider branch-and-cut-and-price, where instead of starting the algorithm with a full model, we start with a restricted set of labels and include further (label) variables only on demand. In order to obtain valid integral solutions in each node of the branch-and-bound (B&B) tree fast, we apply primal heuristics based on the well known MVCA-heuristic [3]. A detailed description of the formulations and algorithmic building blocks is given in Section 3, their properties are then theoretically investigated in Section 3.6. In Section 4, we finally present a comparison of the described formulations and algorithmic components based on computational experiments.

#### 3. Mixed Integer Programming Framework

In this section we first give a rather abstract formulation of the MLST as mixed integer program (MIP). For the spanning-tree property, we present two concrete instantiations: (1) based on a flow-formulation, and (2) a formulation based on directed connectivity cuts, respectively. Both formulations as well as additional inequalities to strengthen the formulations and methods for cutting-plane separation and dynamic variable generation are described within one generic framework, as they can be used in different combinations.

We use the following variables: variables , for all indicate if label is part of the solution; edge variables , for all , denote if edge is used in the final spanning tree; variables , for all , denote directed arc variables used for the cut-based formulation, where we introduce for each edge two arcs and . For the flow formulation, we analogously introduce two directed flow variables . Let further denote the set of labels associated to edge .

##### 3.1. Mixed Integer Formulation

The basic formulation is given by the following abstract integer linear program:

The objective function (3.1) minimizes the number of required labels, Inequalities (3.2) ensure that for each selected edge (at least) one label is selected. For the abstract condition (3.3), we will subsequently introduce alternative formulations.

The number of selected edges may be fixed according to a valid spanning tree: Note, that (3.5) is however not required for a valid description of the MLST problem.

###### 3.1.1. Single-Commodity Flow Formulation

A single-commodity flow formulation, also considered in [16], is given as follows:

Equation (3.6) ensures the correct quantity of flow leaving the (arbitrary) root node with index 0. For all other nodes flow consumption (3.7) must hold, that is, one unit of flow is consumed at each node. Inequalities (3.8) finally ensure that only edges with a sufficient amount of flow may be selected. Flow formulations have the big advantage that they permit to formulate a spanning tree by a polynomial number of variables and therefore provide a relatively compact model.

###### 3.1.2. Multicommodity Flow Formulation

The single-commodity flow formulation's major shortcoming is, however, that it provides a relatively poor LP-relaxation [19]. This is particularly due to the weak coupling of to -variables in Inequalities (3.8), the linking constraints. This drawback can be circumvented by the introduction of multiple commodities for each node . Again, all flows of commodity originate from node 0 and must be delivered to node . The formulation is given by the following equalities: Linkage of flow to edge variables is then given by

This formulation, however, has the drawback of having more variables than the single-commodity flow formulation, that is, flow variables in contrast to only .

###### 3.1.3. Directed Cut Formulation

An alternative formulation is given by directed-connection inequalities, stating that to each node a valid (directed) path must exist. In contrast to the flow model, this formulation consists of an exponential number of inequalities and therefore cannot be directly passed to an ILP-solver for larger instances. However, this formulation provides a better LP-relaxation to many spanning tree problems, as it exactly describes the convex hull of the minimum spanning tree polyhedron. The corresponding inequalities, linkage to the edge variables are given by the following:

Here denotes the set of ingoing arcs to some node set . Instead of Inequalities (3.12) we could also directly link the labels to the directed arcs. However, we proceed with Inequalities (3.12) for sake of a unified notation. The separation of these directed-connection inequalities is discussed in Section 3.2.

It is well known to be practically advantageous to initially add the inequalities to directed (cut-based) formulations, see [20, 21]. Inequalities (3.13) avoid short cycles corresponding to a single edge, Inequalities (3.14) assure that each node has one incoming arc. By we denote the set of incoming arcs to node .

###### 3.1.4. Cycle-Elimination Formulation

We can also ensure feasibility for integer solutions by *cycle-elimination inequalities*. These inequalities enforce the resulting graph not to contain any cycles, which is together with the enforced number of arcs also a sufficient condition for spanning trees, and is given by the following Inequalities:

###### 3.1.5. Miller-Tucker-Zemlin Formulation

A further way for prohibiting cycles is models based on the well-known *Miller-Tucker-Zemlin* inequalities [22]. Such a model for the MLST problem has been proposed in [15], however with some differences. Let for all denote variables assigning numeric values to each node. By inequalities
cycles can be inhibited by just using a polynomial number of variables, however with the drawback, that a large multiplicative factor appears, usually leading to bad LP-relaxations. Main difference to the formulation proposed in [15] is the meaning of the variables. Whereas we use distinct variables for labels and edges ( variables), and link them by Inequalities (3.8) which are in total constraints, they introduce variables with , corresponding to edges and index corresponding to labels.

In [16], the authors pointed out an important property of the flow formulation. They showed that the edge variables are not required to be an integer in order to obtain the correct (optimal) objective function value. Furthermore it is easy to derive a valid MLST solution based on the set of labels provided by the MIP solution. Based on this reasoning, we can establish the following theorem, which extends this result to further MLST formulations, and also immediately provides an improved cut formulation with a fast separation method.

###### 3.1.6. Epsilon-Connectivity Formulation

Theorem 3.1. *For any MIP formulation given by (3.1), (3.2) and (3.5), , for all any set of labels corresponding to an optimal solution to this formulation, and additionally meeting the following inequalities “epsilon-connectivity”
**
implies a valid MLST. Here, denotes some arbitrary small real number.*

*Proof. *The number of edges is fixed by (3.5), but a solution may still contain fractional edges. However, as the label variables are integer and required to be greater than the value of the corresponding edge variables by Inequalities (3.2), they are always one if the corresponding edge variable has a value greater than . Consequently, fractional edge variables will only appear in the final solution if they do not raise the objective function value (by requiring additional labels). Due to Inequalities (3.18), the labels obtained from the MIP solution facilitate paths between all pairs of nodes.

Given a label set of an optimal MIP solution, a feasible spanning tree can easily be derived in polynomial time, by determining an arbitrary spanning tree on the edges induced by the label set, as described in [16]. As a direct consequence of Theorem 3.1, the domain of the variables and need not be restricted to Boolean values, restricting them to nonnegative values by inequalities is already sufficient.

Theorem 3.1 also suggests a further formulation for the MLST problem. Although not explicitly containing any constraints describing a valid spanning tree, (3.1), (3.2), (3.5), and (3.18) already provide a complete description to the MLST problem, and could be further strengthened by and Inequalities (3.22), which are defined later on in Section 3.3. Inequalities (3.18) will again be separated on demand as cutting planes, which can, however, be performed more efficiently than the separation for the directed connection cuts, which will be discussed in detail in Section 3.2.

Note that epsilon-connectivity as defined by Theorem 3.1 is not guaranteed if cycle-elimination Inequalities (3.15) are used exclusively to describe a valid spanning tree. A fractional LP-solution not containing a cycle may still contain a *subtour*, that is, a subgraph where the sum over corresponding edges is larger than the size of its nodes minus one. Such a situation is depicted in Figure 1. As a consequence, the domain of the -variables must be restricted to Boolean values if only cycle-elimination inequalities are used to describe a valid spanning tree. The same is true for the Miller-Tucker-Zemlin formulation given by Inequalities (3.16).

We now draw our attention to the special case of having only one single label assigned to each edge. If we have not fixed the number of edges, we can impose further equalities instead of Inequalities (3.2), which provide a more direct link between labels and their corresponding edges. This approach emphasizes the search for a feasible label set of minimal cardinality rather then the search for a feasible spanning tree.

##### 3.2. Cutting-Plane Separation

The directed connection Inequalities (3.11) can be separated by computing the maximum flow from the root node to each node as target node. This provides a minimum -cut. We have found a violated inequality if the value of the corresponding arcs according to the sum of the LP-values is less than 1. Our separation procedure utilizes Cherkassky and Goldberg's implementation of the push-relabel method for the maximum flow problem [23] to perform the required minimum cut computations.

The cycle-elimination cuts (3.15) can be easily separated by shortest path computations with Dijkstra's algorithm. Hereby we use as the arc weights with denoting the current value of the LP-relaxation for arc in the current node of the B&B-tree. We obtain cycles by iteratively considering each arc and searching for the shortest path from to . If the value of a shortest path plus is less than 1, we have found a cycle violating Inequalities (3.15). We add this inequality to the LP and resolve it. In each node of the B&B-tree, we perform these cutting plane separations until no further cuts can be found.

Theorem 3.1 suggested a formulation not requiring any auxiliary variables (like flow or arc variables), where validity of the labels is obtained by Inequalities (3.18) exclusively. Instead of using the minimum cut-based separation routine (which would also be valid), we can perform a faster separation by a simple depth first search (DFS). Given an LP-solution, we first select an arbitrary start node for which we call the DFS procedure. Within this procedure we only consider edges with . Within the DFS, we keep track of all visited nodes, if there are unvisited nodes at the end of the DFS, we have found a valid cut. The DFS can be carried out in time, which is clearly superior to the time of the maximum flow algorithm running in .

##### 3.3. Strengthening the Formulations

As each node must be connected to the spanning tree by one of its incident edges, we can further impose additional inequalities to strengthen the formulation w.r.t. the label variables:
Here, , denotes the set of labels being associated to the edges incident to node . We will subsequently refer to this set of inequalities as *node-label-inequalities*. Figure 2 gives a simple example of an LP solution where the node is sufficiently connected according to the sum of the LP-values of the ingoing arcs and therefore its incident edges, but the corresponding sum over the labels associated to these edges is clearly infeasible w.r.t. Inequalities (3.22). Therefore Inequalities (3.22) strengthen the presented formulations w.r.t. their LP-relaxation. In Section 3.6, we formally prove this property with respect to the particular proposed MIP-formulations for the MLST. Note, that we will use MIP variables and their corresponding graph-entities equivalently in the the context of subsequent figures and proofs for simplicity, for example, we will simply designate a label by (or ) instead of explicitly referring to the MIP variables .

This basic idea used in Inequalities (3.22) can be pursued by considering sets of two nodes, say and . Let denote the edge joining and . Let further denote the set of labels associated with this edge. For set , we can observe, that at least two labels are required to feasibly connect the nodes and , if . However, if , we still require two labels from . We therefore obtain the following valid inequalities: which are not directly implied by Inequalities (3.22). Figure 3 shows an example where Inequalities (3.23) dominate Inequalities (3.22).

As we can expect a lot of branching on the label variables, further cutting-planes cutting of fractional label solutions may be helpful. In order to identify such valid inequalities, we consider situations where fractional label variables lower the objective value of LP solutions. Such a situation is depicted in Figure 4. If labels in the LP solutions, the corresponding arcs can be set to 1/2 as well without violating any directed connectivity inequality. However, w.r.t. these arc set, at least two labels must be selected in an integer solution. Consequently, adding the inequality will cut off this fractional solution, but is only valid if no additional arcs/edges are incident to these nodes.

In the following we show how to apply *odd hole inequalities* to cut-off such and more general situations. These inequalities are well known from studies of the set-covering polytope, their application becomes evident by the observation that the MLST problem can be seen as a set covering problem where each *node * needs to be covered by a label from the set and the corresponding edges fulfilling further constraints (i.e., forming a valid spanning tree). In particular, we use a MIP-based heuristic to separate valid inequalities for the set-covering problem with coefficients , which have been proposed in [24].

Let be a matrix with if node is labeled with , otherwise. A submatrix of of odd order is called an *odd hole* if it contains exactly two ones per row and column. For the subproblem the inequality
is valid. In [24] the authors showed that this inequality even remains valid if , where is an odd hole, and being a special matrix closely related to . Finding an odd hole to a given matrix is -hard, but if we have found such an odd hole, it is possible to decide in polynomial time whether and therefore (3.24) is valid [24].

###### 3.3.1. Separation-Heuristic for the Odd Hole Inequalities

In order to cut off fractional label solutions, we consider the subset of nodes whose labels are either fractional or zero in the current LP solution. Let denote the matrix where each entry represents the current LP value of label associated to node , or −1 if the label is not associated to node . Let further denote the corresponding matrix representing which labels are assigned to particular nodes, that is, its elements are one if label , and zero otherwise. Our goal is to heuristically search for odd holes in , based on the information provided by matrix , and then transform the related inequality to a valid inequality for the initial problem by the according lifting steps. We are hence searching for an odd hole with with and being odd. By the procedure of [24] we can now decide if is valid for . The term results from lifting all labels which are associated to a node but are not part of the odd hole induced by and . The lifting-coefficient is denoted by , the calculation of its value will be discussed later on. By the following MIP (3.26)–(3.38) we aim to find subsets and forming an odd hole and for which inequality (3.25) is violated according to the current LP solution. For this purpose we define a bipartite directed graph , , , . Each cycle with length corresponds to an odd cycle w.r.t. the number labels, and is, therefore, a potential odd hole. Variables represent the arcs from node to label and are intended to finally describe a valid odd hole. Variables denote other arcs which connect nodes being part of the odd hole (described by the variables) and other labels not being part of the odd hole. For each arc the coefficient is the LP value of label if and zero otherwise;

From (3.28), we can see that . As we prefer solutions where (3.25) is considerably violated, we maximize the difference between and . The term gives a lower bound for the sum over all labels we need to lift w.r.t. some particular . The correct coefficient which is to be discussed later on, cannot be formulated by a linear expression. By (3.27), this particular expression is enforced to be larger than zero, as the resulting inequality to be added to the MLST-MIP would not be violated otherwise. As a consequence, all feasible solutions to MIP (3.26)–(3.38) fulfill this property which is desirable for the heuristic separation procedure discussed subsequently. For each node on the cycle, the numbers of ingoing and outgoing arcs are limited to one by equations (3.29) and (3.30) and flow-conservation is imposed for each node (3.31). The integer variables assign numeric values to the nodes and prevent multiple cycles in the solution by Miller-Tucker-Zemlin-inequalities (3.32), that is, by enforcing for each arc on the cycle (except the one going out from the node with (3.33)) to have at least one smaller source than target node. By Inequalities (3.34) all arcs connecting nodes which *are* part of the odd cycle to be determined (by -variables) to nodes *not* being part of this cycle. Finally, , for all are enforced to be smaller than (3.35), and the node selection and arc variables are required to be Boolean (3.36), (3.37). The -variables only need to be restricted to , for all , as they are implicitly integer by Inequalities (3.34). Figure 5 shows an example for a solution to the MIP. The arcs selected by -variables are depicted in red color, the dashed ones do not contribute to the objective function. The blue arcs correspond to the “lifting-arcs”, selected by -variables.

Given a solution to the MIP (3.26)–(3.38), we still need to check, if (3.25) is valid for this particular solution. The -variables are derived by taking all labels selected by in (3.26)–(3.38). For this purpose, we use the criteria described in [24]—here we only provide a rough explanation. An arc connecting two nodes on the odd cycle determined by (3.26)–(3.38) which is not part of the cycle itself is called a *chord*. In order to fulfill (3.24), and therefore (3.25) after the lifting, all chords of the odd cycle must be *compatible*. The chord set is called compatible, if (1) no chord induces even cycles (w.r.t. nodes on the cycle), and (2) every pair of crossing chords is compatible. Compatibility for crossing chords is defined on the basis of the mutual distances of their adjacent nodes on the cycle. Let , , and , , be two crossing chords. We now remove and its two incident arcs from the odd hole. The chords are compatible, if the unique path from to has an even distance w.r.t. nodes in in this graph.

It remains to determine the lifting-coefficients . If a lifting-label only covers one node of the odd hole, the sum over all labels necessary to feasibly cover all nodes from the odd hole does not change. The label can, however, be used alternatively for one of the odd hole labels and therefore gets coefficient one. Otherwise, if one lifting-label covers all odd hole nodes, the coefficient must equal the right-hand side of (3.25), that is, in this case. Suppose some lifting-label covers odd hole nodes, then the size of the remaining odd hole nodes is . These remaining nodes are still adjacent to two labels in the odd hole, pairwise having one label in common. We can, therefore, derive the following value for the lifting coefficient

During the branch-and-bound MLST solution process, the MIP (3.26)–(3.38) is solved with very tight runtime limits. As soon as an incumbent integer solution has been found, this solution is checked for validity by the mentioned criterions. Obtained valid MLST-inequalities are added immediately. Then the incumbent integer solution is rejected to the MIP solver by which we enforce to search for further solutions. This process continues until the time limit is reached.

##### 3.4. Heuristics

In order to improve the overall performance—in particular the ability to generate feasible integer solutions fast—we embed a primal heuristic into the framework. For this purpose we adopt the well-known MVCA heuristic [1, 3, 6]. This heuristic can create feasible solutions from scratch, but also complete partial solutions given by label set . Creating complete solutions is important for the acquisition of strong upper bounds to efficiently cut-off unprofitable branches of the B&B-tree from the beginning on, but also to obtain an initial solution for BCP (Section 3.5). On the other hand the MVCA heuristic can be used to obtain feasible integer solutions and therefore upper bounds for each B&B-node based upon some variables already fixed to integer values. Many further fast metaheuristic techniques do exist for this problem, which could also easily be integrated into this framework. This is however beyond the scope of this work, as we primarily focus on mathematical programming methods for the MLST.

##### 3.5. Pricing Problem

Problem formulations with a large (usually exponential) number of variables are frequently solved by column generation or branch-and-price algorithms. Such algorithms start with a restricted set of variables and add potentially improving variables during the solution process on demand. If these algorithms also include cutting-plane generation, we call them branch-and-cut-and-price (BCP). Although the presented MLST formulation only has a polynomial number of label variables, these particular variables typically lead to extensive branching on them, requiring a special treatment. Hence we based a solution approach on BCP, operating on just a subset of variables. Such approaches follow the same idea as sparse graph techniques as proposed in [25].

We obtain the *restricted master problem* by replacing the complete set of labels by a subset in (3.1). The set is required to imply a feasible solution and is obtained by the MVCA heuristic. Then, new variables and, therefore, columns potentially improving the current objective function value in the simplex tableau are created during the B&B process. These new variables are obtained from the solution of the *pricing problem* which is based upon the dual variables. Let denote the dual variables corresponding to constraints (3.2), and the ones corresponding to (3.22). They reflect a measure for the costs of some particular edge w.r.t. the currently selected labels (), and the costs of connecting some node w.r.t. the currently selected labels (). The pricing problem is to find a variable with negative reduced costs
within the set of all labels . Here denotes all arcs having label and denotes the set of nodes incident to arcs with label . Finding such a variable or even the one with minimal reduced costs can be done by enumeration. Although only a polynomial number of labels is involved, we may benefit from the pricing scheme as we only need to solve smaller LPs within the B&B procedure.

##### 3.6. Polyhedral Comparison

In this section we compare various formulations resulting from combining the equations and inequalities from Section 3 as listed in Table 1. The only formulation just requiring a polynomial number of constraints is the flow-formulation with roughly variables and constraints. The directed cut-formulation requires variables and an exponential number of constraints. Also, the modified “epsilon” cut-formulation requires exponentially many constraints, but only has variables.

In the following we use the graph depicted in Figure 6 to show the properties of the polyhedra defined by the formulations listed in Table 1.

Proposition 3.2.

*Proof. *As contains the same equations and inequalities as , but additionally Inequalities (3.22); thus we have . Figure 7 shows an LP solution of that is not contained in , which implies . Such an LP solution may still contain fractional labels due to odd holes, as shown in Figure 5, by which we obtain .

If the values of the edge and label variables in Figure 7 are decreased as much as possible for , we obtain , and implying . As contains the additional Inequality (3.5), we can conclude that .

Proposition 3.3.

*Proof. *The proof of follows by the same reasoning as for the proof of Proposition 3.2. Figure 8 shows that . However, the requirement that each directed cut must have a value greater than one already implies that , for all . This implies . An LP-solution to may contain more edges than an LP-solution to , which does, however, due to the minimality not affecting the objective value of the LP-relaxation, that is, .

Let denote the projection of some polyhedron to a subspace .

Proposition 3.4.

*Proof. *By applying the same reasoning as for the proofs of the last two theorems, we can prove Proposition 3.4. Figure 9 gives an example for .

In the following we will show the relations between the formulations , and .

Theorem 3.5.

*Proof. *Figures 8, 7, and 9 already showed that the polyhedrons are not equal. To prove that , we show a procedure to transform all -variables of any valid LP-solution of to a valid -solution in . For all , there exists at least one path from to with all edges having LP-values greater than zero. If we consider a network with source and target , only containing edges being part of one of these paths and having capacities there exists a flow of at least one unit from to . We now arbitrarily select a root node (w.l.o.g. ) and show how to construct a valid flow permitting the same -configuration for as in . For an edge to have LP value , a corresponding flow variable must be larger than . We start by setting all flow variables to zero. Then, for each node we construct all paths from to , considering all edges with . Summing up for all edges on these paths may not exceed , as the number of edges is fixed by (3.5) when . However, this sum may usually be smaller than , say , but integer. Now, we backtrack all these paths and set their flow values to minimal values according to flow conservation (3.7) and LP-values for the edges. Note that after this first step. We then continue this procedure for all further . According to (3.5) in step at most not yet considered edges need to be added, possibly increasing by exactly this amount. We finally end up with all nodes being feasibly connected and fulfilling (3.6) and flow conservation (3.7) being fulfilled at each node.

It is trivial to see that the -variables of a valid LP-solution of are also valid for .

Theorem 3.6.

*Proof. *In the proof of Theorem 3.5, we already showed how each projection of a solution of to the subspace defined by the -variables can be transformed into a solution of , and likewise to . The only difference of the polyhedrons considered in Theorem 3.6 are the constraints (3.22), which clearly do not affect this transformation. It needs to be shown that the polyhedrons are not equal, which is done by the example in Figure 10. The depicted solution is not valid for or , respectively, although the node-label constraints (3.22) are fulfilled. However, the value of edge can be increased to 1/5 (implying the need to decrease the values of edges and accordingly), which makes the solution feasible to . Nevertheless, this solution remains infeasible to , by which we have shown the theorem.

#### 4. Results

In this section we present a comprehensive computational comparison of the presented formulations and separation strategies, and compare our methods to other work. Three different data sets are used for our computational tests. We start by a description of the test instances used for our experiments and tests.

##### 4.1. Test Instances

The first set is the publicly available benchmark set used in [6, 10, 12, 13]. We refer to this data set as ** Set-I**. It consists of graphs with 100 to 500 nodes and various densities , defined by , and different numbers of labels . The instances are organized in groups of ten for each configuration of and for each . So far, primarily metaheuristics have been applied to this instance set, but also an exact algorithm based on -search, as reported in [12].

The second test set ** Set-II** is created following the specification of the instances used in [16], in order to obtain comparable results to the MIPs presented therein. This set is organized in four groups. In contrast to SET-I, the instances of the first two groups just contain very few labels, that is, . The number of nodes ranges from 20 to 1000, and network densities are set to . Moreover, this set contains various *grid-graphs* (group 3) of sizes , , , , and . The fourth group contains instances with and and various network densities .

In addition to SET-I and SET-II we created a further test set **Set-III** containing also instances with multiple labels assigned to the edges. The construction is performed by first creating a spanning tree and assigning labels from set to its edges. Usually if not stated otherwise, but is used to study the effect of having optimal solutions with significantly less labels than for completely random label assignment for the particular graph properties. Next further edges are added until a specified density or specified number of edges is reached. Then, we randomly assign all labels not used yet. In the final step we iterate over all edges and assign further labels by uniform random decision. Parameter specifies how many labels can be assigned to each edge, if not stated otherwise . Instead of directly using as a parameter, we may also specify the size of the label set by parameter . In contrast to the other instances, the instances of SET-III have relatively high values of , that is, and . Although such instances are less likely to occur within practical applications regarding telecommunication network design, they may be relevant for other scenarios, as for instance the compression model based on the MLST problem presented in [17].

##### 4.2. Test Environment

The generic framework presented in Section 3 has been implemented in C++ (gpp-4.3) within the SCIP framework [26]. The standard plugins have been used for all computational tests unless explicitly stated otherwise. In addition some branch-and-cut algorithms (not involving any pricing procedures) have been implemented within the ILOG CONCERT framework [27] for comparison purposes. As LP solver ILOG CPLEX (in version 12.0) [27] has been used for both frameworks.

All computational tests have been performed on an Intel Xeon E5540 processor operating at 2.53 GHz and having 24 GB for total 8 cores. The operation system is Ubuntu 9.10 with Linux-kernel 2.6.31. All runs have been performed in single-threaded mode, CPU times have been limited to 7200 seconds, unless stated otherwise.

##### 4.3. Comparison of Described Methods

In this section, we present a comparison of the described formulations based on computational tests. Furthermore, we analyze the impact of particular “components” to each of the formulations. These components consist of the node-label-inequalities (3.22), the extended node-label-inequalities (3.23), the strong linkage of the edges to the edges (3.21), which can, however, only be used if only one label is assigned to the edges and the number of edges is not fixed by (3.5). Table 1 provides an overview of these components and corresponding notation. After the comprehensive analysis and comparison of the particular methods in this section, we compare the results of the newly proposed methods to previous work in Section 4.4.

###### 4.3.1. MIP Formulations

In this section, we primarily focus on the comparison of formulations EC, DCut and SCF. However, particularities like node-label-constraints (3.22), or fixed number of edges (3.5), or the direct linkage of labels to edges (3.21), may significantly change the picture regarding the superiority of one method over another one. For this reason, we present the results not only for three formulations, but rather four to five variants of each formulation. Recall, that directly linking the labels to edges by (3.21) is only possible for instances with one label assigned to each edge (3.21), that is, and is generally not possible for flow-formulations. In order not to be biased towards some particular class of instances, we report these results for each of the three instance sets.

Tables 2 and 3 show the results for instances of SET-I with and . These instances include graphs with various densities , where , and different numbers of labels, that is, , and . In these tables, as well as in the following ones, we report the following entities for each method and group of instances. Columns “cnt” contain the number of instances within each group, which is 10 in most of the cases. The reason for less than ten instances reported is not being able to finish some instances with particular formulations due to high memory requirements. Columns “opt” report the number of instances that have been solved and proved to be optimal within the time limit. In columns “obj” the average objective value for all instances in the group is reported. If all instances have not been solved to optimality, this value corresponds to the average value of feasible solutions that have been found within the timelimit. Average running times in seconds are then reported in columns “”. The average number of branch-and-bound nodes is listed in columns “bbn”, the average number of generated cuts in column “cuts”. Results of the fastest method(s) for each group are emphasized with bold letters.

From Tables 2 and 3 we can already observe that the difficulty of solving these instances is strongly correlated to the objective function values of the instances. Higher values, in particular those larger than ten, require significantly more B&B-nodes, and the separation of more cuts. This also implies longer average running times. This property holds for all of the considered formulations. The results in Tables 2 and 3 show that formulation consistently gives the best results for these instances. The single-commodity flow formulations show a slightly better performance than the directed-cut formulations for most of the instances.

The strength of the node-label-inequalities (3.22) is also demonstrated by the results in Tables 2 and 3. Their addition to the plain formulations does not only yield a significant speedup, but also enables to solve more instances regarding the set with . The difference between Inequalities (3.22) and their extended form, given by Inequalities (3.23) is examined in Section 4.3.2. Regarding Equation (3.5) no clear conclusion can be drawn from these instances. If, however, combinations of these components are considered, the variants only using the node-label-constraints are superior in most of the cases. For formulations EC and DCut it is also possible to directly link the edges to the labels by (3.21). In most of the cases, this yields the best results, when combined with the node-label-inequalities for both formulations, and in particular in combination with EC the overall best results.

Table 4 reports the results for the same formulations for the instances of SET-II. These instances have the major difference to contain only graphs of extremely low density and just very few labels. Again, we can observe a clear superiority of formulations and , which are able to solve all these instances with average running times of less than half second.

In Tables 5, 6, and 7, results for the instances from SET-III are reported. Table 5 shows the results for instances with and , that is, one single label assigned to the edges. As already mentioned in Section 4.1, this instances differ from the previous ones in the way that they contain a higher number of labels, that is, and with . It can be observed that it is beneficial to limit the number of edges to by (3.5) in this case. Thus, the stronger LP-relaxation implied by this restriction is beneficial in the case of higher values of . For instances with formulation EC still shows the best performance, but DCut provides better results in the case of . Hence, the strong LP-relaxation becomes even more important if is in the same order of magnitude as .

With a single exception, the same effect can be observed for the instances with reported in Table 6. The effect of more than one label being assigned to the edges seems to make the problem easier to solve, but the effect is relatively small. It is important to note, that directly linking the labels to the edges, which was beneficial for the instances with , cannot be applied to instances with larger .

Table 7 shows the result for grid-graphs with 100 and 400 nodes and . The average optimal objective value on these graphs is relatively high, which makes them difficult to solve. However, all instances with could be solved to optimality by formulation , which showed the overall best performance on this class of instances.

Having now analyzed the main variations of the discussed formulations we draw our attention to further approaches and enhancements that have been proposed in Section 3.

###### 4.3.2. Further Methods

In Section 4.3.1 the node-label-inequalities (3.22) have been shown to be of utter importance for a strong formulation. In Section 3.3 we have also presented an extension of this idea, where two nodes are considered instead of just one. This led to the class of Inequalities (3.23). Table 8 shows a comparison of formulations and with on the one hand the node-label-inequalities (3.22) and on the other hand additional Inequalities (3.23). In particular for formulation these further inequalities turn out to be useful in many cases. They do not only speedup the solution process, but moreover frequently enable to solve more instances to provable optimality. However, also the opposite is often the case. It is therefore not possible to decide which approach is superior over the other based on the available data. On grid-graphs Inequalities (3.23) have not been beneficial at all.

Further formulations, considered in Section 3, are based on the property that a tree must not contain a cycle by definition. Formulation requires just a polynomial number of variables, but contains constraints with infamous “Big-M” constants, as the SCF formulation does. On the contrary CEF contains an exponential number of Inequalities (3.15), which need to be separated as cutting-planes as for the DCut or EC formulation. Due to their fast separation by a simple shortest-path computation, other formulations may benefit from additionally using cycle-elimination cuts. Corresponding results are reported in Table 9, column “cec” lists the average number of separated cycle-elimination cuts. Whereas and show a relatively weak performance on the instances with , they provide good results in the case of . In particular, for the low-density graphs could solve all instances to optimality, which no other method was able to do. For the dense graphs best results are obtained by and .

Table 10 shows the results that have been obtained by including primal heuristics into the branch-and-bound algorithm. Formulations , , , and are considered for this purpose. As indicated by preliminary experiments it turned out to be advantageous only to use the primal heuristics in the root node, as they were generally not able to find improved solutions based on the information provided by the LP-solution in other B&B-nodes. Embedding MVCA in B&B has a positive effect w.r.t. the variants “” of formulations EC and DCut, but a negative impact concerning variants “”.

###### 4.3.3. Odd hole Inequalities

We now draw our attention to the odd hole inequalities. Within preliminary tests, we determined a tight timelimit of 10^{−3} seconds for solving the MIP (3.26)–(3.38) to show a generally good performance. Two algorithmic variants are considered for the results reported in Table 11. The first version (denoted with index ) simply adds the found valid cutting-planes to the MIP. Alternatively, the set of labels corresponding to the obtained odd hole can also be used to deduce a branching rule. This was motivated by the observation that many lifted odd hole cutting planes, found by MIP (3.26)–(3.38), were not strong enough to define facets w.r.t. the involved label variables. As a consequence, these variables remained fractional after the cutting-plane was added to the MIP. However, odd holes provide important information and references to situations where special configurations of label-variables artificially reduce the LP-relaxation. Hence it is likely that immediately branching over these variables may be beneficial. This is done by inserting all labels of the odd hole into a global queue, and always branch over such a variable unless the queue is empty. Index denotes this approach in Table 11. Odd hole cuts are separated with lowest priority amongst the user-defined cutting-planes, and are only separated in levels of the B&B-tree which are multiples of ten.

The results in Table 11 show that the odd hole inequalities are beneficial in many cases, in particular when used to deduce branching rules from the corresponding label-variables. For instances from SET-I and SET-II, almost no odd holes have been found with the described parameter settings. For dense graphs it is less likely to find odd holes that are violated by the current LP-solution, as each node is incident to many edges. Hence is in the same order of magnitude as in the expected case. This implies many nonzero lifting coefficients in Inequalities (3.25), reducing the chance of finding a valid inequality that is actually violated by the current LP-solution. Hence, the separation of odd hole inequalities is most beneficial for sparse graphs. Also the number of labels compared to the number of edges has an impact on the efficiency of the odd hole separation. If the number of labels is relatively low, the expected label frequency will be high. This implies high values for the lifting coefficients , which in turn reduces the chance of finding violated odd hole inequalities. If, on the other hand, the number of edges is too high, odd holes are generally less likely to occur, as the sets , for all can be expected to be very small or even empty.

###### 4.3.4. Branch-and-Cut-and-Price

Additionally, using the column generation approach within the B&C framework, that is, branch-and-cut-and-price (BCP) is only beneficial for a very special class of instances. For most of the instances almost all variables are priced in during the solution process. The computational overhead for solving the pricing problem and resolving the MIP implies significantly higher running times in this case. However, if the instances consist of a high number of labels, and have an optimal solution that is significantly lower than the average optimal solution value when assigning the labels to the edges randomly in the instance construction process, BCP shows a superior performance. To study this effect, special instances have been created containing single optima having a relatively low number of labels. The computational results for these instances are reported in Table 12. In particular for the larger instances a clear superiority of the BCP approach w.r.t. the corresponding B&C algorithm can be observed. For this special class of instances, the percentage of created label variables is always less than 30% of the total number of labels (reported in column “priced”). Although the importance of such instances may be quite limited for many purposes, the instances used for the data compression approach presented in [17] exhibit comparable properties. For the data-compression application presented therein, the BCP approach is thus a valuable and important mean for exactly solving large instances.

###### 4.3.5. Summary

In Table 13, we finally report the best method for each group of instances from the three instance sets. For this purpose, variations including primal heuristic and using cycle-elimination cut separation are also considered. In the case a variant including a primal heuristic yields the best performance, we additionally report the best method not using primal heuristics. Formulations and are the best formulations for almost all instances of SET-I, with the primal heuristic often yielding small improvements. The same is true for the instances of SET-II, where almost all variations of formulation EC are able to solve the considered instances in less than a second. For SET-III formulation DCut is superior for many instances with , whereas EC is better for instances with . In contrast to SET-I, it is beneficial to restrict the number of edges to as indicated with index “”. Additionally separating cycle-elimination cuts frequently yields the overall best method, in particular for instances with . Furthermore it can be observed that variants using separation of odd hole inequalities are frequently the overall best methods for this group.

##### 4.4. Comparison to Other Work

In this section, we present direct comparisons to existing work, in particular [16]. Table 14 shows the results presented in [16], running times have been rounded to integers. Formulation “MLSTb” corresponds to formulation SCF of this work. Formulation “MLSTc” only uses a weaker coupling of labels to edges, given by the following inequalities: Table 14 furthermore reports results for the implementation of the exact backtracking method from [1], labelled with “MLST-CL”. Table 15 shows the running times of selected MIP variants in comparison to our reimplementation of the flow formulation “MLSTb” from [16] (SCF). Formulation is clearly superior to the others, all instances have been solved in less than one second. Higher running times of SCF as opposed to “MLSTb” can be explained due to the fact that the SCIP framework [26] has been used for the implementation of SCF whereas “MLSTb” has been implemented with the ILOG CONCERT framework [27].

Table 16 shows the results of selected MIP variants in comparison to the exact backtracking-search procedure used in [12]. The -algorithm is very effective for instances with small optimal objective value, but instances with larger objective values or large sets of labels cannot be solved. The time limit imposed by the authors of [12] was three hours. It is important to note that the running times listed in Table 16 are not directly comparable, as the authors of [12] list the computation time at which the best solution was obtained, and also different hardware has been used. For some groups, where could not solve all instance (indicated by “NF”), the MIP method was able to do so. Furthermore, it is reported if the MIP method could solve some but not all instances within some group. In any case the average objective value for the ten instances of each group is reported in column “avg()”, also considering the best feasible solutions that have been found within the time limit of two hours. If all instances have not been solved to optimality, this is indicated with “(*)” in this particular columns.

In general, it can be observed that relatively small instances could be solved efficiently by the MIP approach, but, for larger instances with and , it generally fails to produce provable optimal solutions within the allowed time limit.

##### 4.5. Summary

For all formulations, the node-label-constraints (3.22) significantly improved running times and reduced the number of branch-and-bound nodes. Despite its relatively poor LP-relaxation, formulation turned out to be superior to the other ones for a broad class of test instances, which is mainly to the fast cut separation and the low number of involved variables. Amongst the other considered formulations, is superior to for dense graphs with a huge number of labels.

The odd hole cuts (3.25) significantly improved running times and number of branch-and-bound nodes for some classes of instances, in particular when branching rules are deduced from the label sets corresponding to the found odd holes. Using BCP for dynamically adding new labels during the solution process turned out to be beneficial only in the case where the input instances significantly deviate from random label assignments, that is, where the optimal solution is much lower than the expectation value of randomly assigned labels. However, such solutions may likely easily be found also by heuristic methods. Nevertheless, this could remain the only way to prove optimality for “easy” large-scale instances.

#### 5. Conclusions

In this work we presented a branch-and-cut- (and-price) framework for solving MLST instances exactly. We gave a comparison of an underlying flow-formulation in comparison to the (better) directed cut-based formulations, which has been applied for the MLST problem for the first time. Furthermore, a new connectivity formulation permitting a fast cutting-plane separation has been presented. We further introduced new valid inequalities to strengthen the formulations and the application of odd hole inequalities to this problem. To separate cutting-planes based on these odd hole inequalities, a new separation heuristic based on a mixed integer program using Miller-Tucker-Zemlin inequalities has been proposed.

Moreover, a detailed theoretical and computational comparison of the contribution of the presented algorithmic building blocks has been presented. Our results show that the presented framework is able to solve small- to medium-sized instances to optimality within a relatively short amount of time. Existing benchmark instances could be solved within a significantly shorter computation time than before, and new (larger) instances could be solved to proven optimality for the first time.

#### References

- R.-S. Chang and S.-J. Leu, “The minimum labeling spanning trees,”
*Information Processing Letters*, vol. 63, no. 5, pp. 277–282, 1997. View at Publisher · View at Google Scholar · View at MathSciNet - A. M. Chwatal, G. R. Raidl, and O. Dietzel, “Compressing fingerprint templates by solving an extended minimum label spanning tree problem,” in
*Proceedings of the 7th Metaheuristics International Conference (MIC '07)*, Montreal, Canada, 2007. - S. O. Krumke and H.-C. Wirth, “On the minimum label spanning tree problem,”
*Information Processing Letters*, vol. 66, no. 2, pp. 81–85, 1998. View at Publisher · View at Google Scholar · View at Zentralblatt MATH · View at MathSciNet - Y. Wan, G. Chen, and Y. Xu, “A note on the minimum label spanning tree,”
*Information Processing Letters*, vol. 84, no. 2, pp. 99–101, 2002. View at Publisher · View at Google Scholar · View at Zentralblatt MATH · View at MathSciNet - Y. Xiong, B. Golden, and E. Wasil, “A one-parameter genetic algorithm for the minimum labeling spanning tree problem,”
*IEEE Transactions on Evolutionary Computation*, vol. 9, no. 1, pp. 55–60, 2005. View at Publisher · View at Google Scholar - S. Consoli, J. A. Moreno, N. Mladenovic, and K. Darby-Dowman, “Constructive heuristics for the minimum labelling spanning tree problem: a preliminary comparison,” Tech. Rep., DEIOC, 2006. View at Google Scholar
- Y. Xiong, B. Golden, and E. Wasil, “Improved heuristics for the minimum label spanning tree problem,”
*IEEE Transactions on Evolutionary Computation*, vol. 10, no. 6, pp. 700–703, 2006. View at Publisher · View at Google Scholar - J. Nummela and B. A. Julstrom, “An effective genetic algorithm for the minimum-label spanning tree problem,” in
*Proceedings of the 8th Annual Conference on Genetic and Evolutionary Computation (GECCO '06)*, pp. 553–558, ACM Press, 2006. - T. Brüggemann, J. Monnot, and G. J. Woeginger, “Local search for the minimum label spanning tree problem with bounded color classes,”
*Operations Research Letters*, vol. 31, no. 3, pp. 195–201, 2003. View at Publisher · View at Google Scholar · View at Zentralblatt MATH · View at MathSciNet - R. Cerulli, A. Fink, M. Gentili, and S. Voß, “Metaheuristics comparison for the minimum labelling spanning tree problem,” in
*The Next Wave in Computing, Optimization, and Decision Technologies*, vol. 29 of*Operations Research/Computer Science Interfaces Series*, pp. 93–106, Springer, New York, NY, USA, 2005. View at Google Scholar - S. Consoli, J. A. Moreno, N. Mladenovic, and K. Darby-Dowman, “Mejora de la exploracion y la explotacion de las heuristicas constructivas para el mlstp,” in
*Spanish Meeting on Metaheuristics*, 2007. - S. Consoli, K. Darby-Dowman, N. Mladenovic, and J. Moreno-Pérez, “Heuristics based on greedy randomized adaptive search and variable neighbourhood search for the minimum labelling spanning tree problem,”
*European Journal of Operational Research*, vol. 196, no. 2, pp. 440–449, 2009. View at Google Scholar - S. Consoli, K. Darby-Dowman, N. Mladenovic, and J. Moreno-Pérez, “Solving the minimum labelling spanning tree problem using hybrid local search,” Tech. Rep., Brunel University, 2007. View at Google Scholar
- S. Consoli, K. Darby-Dowman, N. Mladenović, and J. A. Moreno-Pérez, “Variable neighbourhood search for the minimum labelling Steiner tree problem,”
*Annals of Operations Research*, vol. 172, pp. 71–96, 2009. View at Publisher · View at Google Scholar - Y. Chen, N. Cornick, A. O. Hall, et al., “Comparison of heuristics for solving the gmlst problem,” in
*Telecommunications Modeling, Policy, and Technology*, vol. 44 of*Operations Research/Computer Science Interfaces Series*, pp. 191–217, Springer, New York, NY, USA, 2008. View at Google Scholar - M. E. Captivo, J. C. N. Clímaco, and M. M. B. Pascoal, “A mixed integer linear formulation for the minimum label spanning tree problem,”
*Computers & Operations Research*, vol. 36, no. 11, pp. 3082–3085, 2009. View at Publisher · View at Google Scholar · View at Zentralblatt MATH - A. M. Chwatal, G. R. Raidl, and K. Oberlechner, “Solving a $k$-node minimum label spanning arborescence problem to compress fingerprint templates,”
*Journal of Mathematical Modelling and Algorithms*, vol. 8, no. 3, pp. 293–334, 2009. View at Publisher · View at Google Scholar - G. L. Nemhauser and L. A. Wolsey,
*Integer and Combinatorial Optimization*, John Wiley & Sons, New York, NY, USA, 1999. - T. L. Magnanti and L. A. Wolsey, “Optimal trees,” in
*Network Models*, M. O. Ball, et al., Ed., vol. 7 of*Handbook in Operations Research and Management Science*, pp. 503–615, North-Holland, Amsterdam, The Netherlands, 1995. View at Publisher · View at Google Scholar · View at Zentralblatt MATH - M. Chimani, M. Kandyba, I. Ljubić, and P. Mutzel, “Obtaining optimal k-cardinality trees fast,”
*Journal on Experimental Algorithmics*, vol. 14, pp. 2.5–2.23, 2009. View at Google Scholar - I. Ljubić,
*Exact and memetic algorithms for two network design problems*, Ph.D. thesis, Vienna University of Technology, Vienna, Austria, 2004. - C. E. Miller, A. W. Tucker, and R. A. Zemlin, “Integer programming formulation of traveling salesman problems,”
*Journal of the Association for Computing Machinery*, vol. 7, pp. 326–329, 1960. View at Google Scholar · View at Zentralblatt MATH - B. V. Cherkassky and A. V. Goldberg, “On implementing the push-relabel method for the maximum flow problem,”
*Algorithmica*, vol. 19, no. 4, pp. 390–410, 1997. View at Publisher · View at Google Scholar · View at Zentralblatt MATH · View at MathSciNet - G. Cornuéjols and A. Sassano, “On the $0,1$ facets of the set covering polytope,”
*Mathematical Programming*, vol. 43, no. 1, pp. 45–55, 1989. View at Publisher · View at Google Scholar · View at Zentralblatt MATH - M. Grötschel and O. Holland, “Solving matching problems with linear programming,”
*Mathematical Programming*, vol. 33, no. 3, pp. 243–259, 1985. View at Publisher · View at Google Scholar · View at Zentralblatt MATH - SCIP—Solving Constraint Integer Programs, “Konrad-Zuse-Zentrum für Informationstechnik Berlin,” Version 1.2, http://scip.zib.de/.
- ILOG Concert Technology, CPLEX. ILOG. Version 12.0, http://www.ilog.com/.