Directory UMM :Data Elmu:jurnal:O:Operations Research Letters:Vol28.Issue2.2001:

Operations Research Letters 28 (2001) 63–74
www.elsevier.com/locate/dsw

A branch-and-cut algorithm for the maximum cardinality
stable set problem
F. Rossi ∗ , S. Smriglio
Dipartimento di Matematica Pura ed Applicata, Universita di L’Aquila, Via Vetoio, 67010 Coppito (L’Aquila), Italy
Received 8 April 1999; received in revised form 13 July 2000; accepted 24 July 2000

Abstract
We propose a branch-and-cut algorithm for the Maximum Cardinality Stable Set problem. Rank constraints of general
structure are generated by executing clique separation algorithms on a modi ed graph obtained with edge projections. A
branching scheme exploiting the available inequalities is also introduced. A computational experience on the DIMACS
c 2001 Elsevier Science B.V. All rights reserved.
benchmark graphs validates the e ectiveness of the approach. 
Keywords: Branch-and-cut; Stable set; Rank inequality

1. Introduction
Let G = (V; E) be an undirected graph, where V is
the set of vertices and E the set of edges. A stable set
(also referred to as vertex packing) in G is a subset of

pairwise non-adjacent vertices of G. The Maximum
Cardinality Stable Set (MSS) problem consists of
nding a stable set in G of maximum cardinality. The
cardinality of a maximum stable set is called stability
number of G and is denoted by (G). The neighbourhood N (v) of a vertex v is the set of all the vertices
adjacent to v, and we de ne degG (v) = |N (v)|. Analogously, for any subset W ⊆ V we denote by N (W )

∗ Corresponding author. Tel.: +39-0862-433139; fax: +390862-433180.
E-mail addresses: rossi@univaq.it (F. Rossi), smriglio@
univaq.it (S. Smriglio).

the set of vertices {u ∈ V : ∃v ∈ W such that u ∈
N (v)}. The density of a graph G = (V; E) is the ratio
2|E|=|V |2 − |V |.
Given a set W ⊆ V , the graph G[W ] = (W; E[W ]),
where E[W ] is the set of the edges of G with both
the endpoints in W , is called the subgraph induced by
W in G. An induced subgraph of G such that all its
vertices are pairwise adjacent is called clique of G. A
partitioning (covering) of G is a family of induced

subgraphs such that each vertex of G is contained in
exactly (at least) one subgraph of the family.
The MSS problem is known to be NP-hard [9] for
arbitrary graphs and it is a known fact that unstructured
stable set problems are dicult integer programming
problems. Even if several classes of valid inequalities are known (see [10]), the computation time required for generating constraints and for solving Linear Programs (LPs), is often not justi ed by the bound
improvement. In fact, the branch-and-cut algorithms

c 2001 Elsevier Science B.V. All rights reserved.
0167-6377/01/$ - see front matter 
PII: S 0 1 6 7 - 6 3 7 7 ( 0 0 ) 0 0 0 6 0 - 2

64

F. Rossi, S. Smriglio / Operations Research Letters 28 (2001) 63–74

devised so far [2,14] have been outperformed by combinatorial algorithms [12,13,16].
On the contrary, several reasons motivate the
investigation of ecient polyhedral methods for the
stable set problem. One reason is that other combinatorial problems may be formulated as a stable set

problem with possible transfer of results [7]. Another recent application is proposed in [1] where
preprocessing and probing techniques for general
Mixed Integer Programs (MIP) are devised addressing their vertex packing relaxation (con
ict graph).
In addition, special stable set problems may arise in
di erent application areas (see [8,15]), where integer
programming often turns out to be e ective.
In this paper we propose a branch-and-cut algorithm for the MSS problem which attempts to smooth
the aforementioned lack of eciency. Two aspects
are prominent to accomplish this purpose: (i) the eciency of the constraint generation procedure and the
quality of the cuts; (ii) the e ectiveness of the enumeration strategy.
As for (i), we introduce a technique to reduce the
identi cation of rank inequalities of general structure
to the identi cation of clique inequalities on a modi ed graph (Section 2). This approach is motivated by
the following observations. The family of clique inequalities gives an important contribution in reducing
the integrality gap [1,14]. Although the related separation problem is NP-hard, the identi cation of violated
clique inequalities can be carried out by fast and e ective heuristics [11]. The proposed constraint generation procedure combines a clique detection algorithm
with a graph reduction operation (edge projection) allowing an ecient detection of cliques and other rank
inequalities.
For what concerns (ii), we implement the enumeration scheme due to Balas and Yu [4]. In their algorithm

an upper bound is obtained by computing a clique partitioning and the smaller the gap between the upper
bound and the current lower bound, the smaller the
size of the branching set. In our implementation, the
upper bound is obtained by using, besides cliques, all
the subgraphs associated to the generated rank constraints (Section 3).
The performance of the branch-and-cut algorithm
incorporating rank inequalities is compared with the
ones of three other algorithms: a branch-and-cut incorporating pure clique inequalities, the branch-and-cut

by Balas et al. [2] and the branch-and-bound by Mannino and Sassano [13] (Section 4). The test bed consists of the DIMACS challenge benchmark graphs and
sparse uniform random graphs.

2. Rank inequalities
In this section we describe the separation procedure.
Let STAB(G) = conv{W ∈ R|V | : W ⊆ V is a stable
set} be the stable set polytope, i.e., the convex hull of
the incidence vectors of all stable sets of vertices of
G. A rank inequality is an inequality of the form

x(W ) =

xi 6 (G[W ])
(1)
i∈W

where, for a given W ⊆ V; G[W ] is the subgraph of G
induced by W . It is satis ed by the incidence vector of
every stable set in G, and so it is valid for STAB(G).
In general, a rank inequality is not facet de ning even
for G[W ]. The latter condition holds in special cases,
for instance, whenever W induces an odd hole in G
(odd hole inequalities), an odd antihole or a web [3].
The odd hole inequalities have been used as cutting
planes in [14] (in which inequalities are lifted by a
sequential lifting procedure) and in [6,11].
A rank inequality which is facet de ning for
STAB(G) is also obtained whenever W induces a
maximal clique in G (clique inequalities) [3]. Although the separation problem associated with the
clique inequalities is NP-hard, being equivalent to
determining a maximum weight clique, the identi cation of violated cliques can be carried out by fast and
e ective heuristics [11]. Moreover, clique inequalities

have been proven to give an important contribution in
reducing the integrality gap [1,14]. In our algorithm,
according to known experiences [2,14], a suitable initial linear relaxation of the MSS problem is quickly
obtained by a greedy algorithm which computes a
covering of G into maximal cliques. In particular,
the initial formulation is given by P(C0 ) = {x ∈
Rn : x(C)61; ∀C ∈ C0 ; x¿0}, where C0 is a set
of maximal cliques such that each edge of G is contained in at least one clique of C0 . Our approach is to
strengthen the formulation P(C0 ).
During its execution, the branch-and-cut algorithm
stores the set R of all the non-dominated constraints
generated. At the beginning R=C0 . Every time a new

F. Rossi, S. Smriglio / Operations Research Letters 28 (2001) 63–74

65

{ab; ac; ad; be; bf}). Let us indicate ab as central
edge. The following lemma holds:


constraint c: x(W )6 (G[W ]) is generated, it may occur that c dominates some constraints in R. If this is
the case, the dominated constraints are discarded before adding c to R. We denote by LPt the linear relaxation of the current formulation in a given node t
0
of the enumeration
n tree. Hence, LP is the linear relaxation {max i=1 xi : x ∈ P(C0 )}.
In a given node t of the enumeration tree let us denote by xt the optimal solution of LPt found by the
LP solver. The constraint generation procedure works
on the subspace F t = {i = 1; : : : ; |V |: xti ∈ {0; 1}}.
In the following, when no confusion arises, we let
GF = G[F t ]. The procedure is based on a polyhedral investigation of a graph operation called edge
projection, introduced by Mannino and Sassano [13]
as a specialization of Lovasz and Plummer’s clique
projection.

De nition 2.5. Let G=(V; E) be a graph. An edge e=
uv ∈ E is strongly projectable in G if it is projectable
in every induced subgraph of G containing both u
and v.

2.1. Edge projection and strong projectability


The next result provides a characterization of
strongly projectable edges.

Let e = uv ∈ E be an edge of G. Let Nuv = N (u) ∩
N (v), denote by Euv ⊆ E the set of the edges with
at least one endpoint in Nuv ∪ {u; v}, and let E uv =
{ij: i; j ∈ V \({u; v} ∪ Nuv ); N ({i; j}) ⊇{u; v}}.
De nition 2.1. The graph G|e = (V |e; E|e), in which
V |e=V \({u; v}∪Nuv ) and E|e=E\Euv ∪ E uv , is called
projection of e in G.
In Fig. 2, the graph GF(1) is the projection of hl in
GF . As for the stability number of the reduced graph,
we have (G)¿ (G|e) + 1, for all e ∈ E. Mannino
and Sassano [13] noticed that, for some special edges,
this holds at equality.
De nition 2.2. An edge e = uv ∈ E is projectable in
G if and only if there exists a maximum stable set S
in G such that S ∩ {u; v} =
∅.


Lemma 2.4 (Mannino and Sassano [13]). Let G =
(V; E) be a graph and let e = uv ∈ E. If e is not
the central edge of an induced subgraph isomorphic
to a diamond or a bull or a double fork; then e is
projectable in G.
Our separation procedure needs to identify some
particular projectable edges. We therefore introduce
the notion of strong projectability.

Theorem 2.6. Let G = (V; E) be a graph and e =
uv ∈ E. Then; e is strongly projectable in G if and
only if it is not the central edge of an induced subgraph isomorphic to a diamond or a bull or a double
fork.
Proof (Only if ). Suppose uv is the central edge of an
induced subgraph G ′ of G isomorphic to a diamond
or a bull or a double fork. Then, there does not exist a
maximum stable set S ′ of G ′ such that S ′ ∩ {u; v} = ∅.
Therefore, by de nition, e is not projectable in G ′ and
it is not strongly projectable in G.

(if ). Suppose uv is not the central edge of an induced subgraph G ′ of G isomorphic to a diamond or
a bull or a double fork. Then the result follows from
applying Lemma 2.4 to all induced subgraphs of G
containing both u and v.
2.2. The separation procedure

Lemma 2.3 (Mannino and Sassano [13]). Let G =
(V; E) be a graph and e = uv ∈ E a projectable edge
in G. Then; (G) = (G|e) + 1.
In [13] a sucient condition of projectability is
given. Consider the graphs in Fig. 1: Diamond =
({a; b; c; d}; {ab; ac; ad; bc; bd}); Bull =({a; b; c; d; e};
{ab; ac; ad; bc; be}); Double Fork = ({a; b; c; d; e; f};

The constraint generation is carried out by heuristically solving the separation problem associated with
general rank inequalities. The procedure consists of
two basic ingredients:
(i) the edge projection operation;
(ii) an algorithm for violated clique detection.


66

F. Rossi, S. Smriglio / Operations Research Letters 28 (2001) 63–74

Fig. 1. (i) Diamond, (ii) bull, (iii) double fork.

In particular, violated rank inequalities are identi ed
by executing a clique detection algorithm on a reduced
graph obtained from GF by a sequence of edge projections.
More formally, we denote by GF(i) = (V (i) ; E (i) ) a
graph obtained from GF by a sequence of i edge projections and indicate as P (i) = {u0 v0 ; u1 v1 ; u2 v2 ; : : : ;
ui−1 vi−1 } the sequence of the projected edges, where
uh vh ∈ E (h) for h = 0; : : : ; i − 1. To identify the corresponding sequence of graphs we let GF(0) = GF and
GF(h) = GF(h−1) |uh−1 vh−1 , for h¿1. At the hth projection step edges and vertices are removed from GF(h−1) ,
but also new edges, referred to as false edges, can be
introduced. It turns out that, even if there does not exist a clique in GF(h−1) violated by xt , the introduction
the false edges in E uh−1 vh−1 can lead to a clique violated by xt in GF(h) ; h¿1.
The rst phase of the procedure (reduction phase)
iteratively selects an edge uh−1 vh−1 in the current
graph GF(h−1) and builds its projection GF(h) . The sequence stops, after i steps, when either (a) GF(i) contains a clique, induced by a set C ⊆ V (i) and violated
by xt , or (b) GF(i) does not contain edges. The reduction phase is detailed in Section 2.2.1.
In case (a), the detected clique inequality is valid
for STAB(GF(i) ), but, in general, not for STAB(GF ).
In particular, x(C)61 is valid for STAB(GF ) if and
only if GF(i) [C] does not contain false edges (i.e., C
induces a clique on GF ). Hence, the second phase of
the procedure performs a lifting which extends the
set C to a set W ⊆ VF such that x(W )6 (GF [W ]) is
valid for STAB(GF ). The lifting phase is detailed in
Section 2.2.2.

2.2.1. Sequence of projections
In this section we explain how to perform the reduction phase. As will be shown in Section 2.2.2, in
order to guarantee the validity of the lifted inequalities, we require that, at the (h + 1)th step of the projection sequence, uh vh is a strongly projectable edge
in GF(h) .
Although Theorem 2.6 allows us to check the
strong projectability of an edge in polynomial time
(notice that deciding the projectability of an edge is
NP-complete), the resulting procedure is computationally too expensive to be executed, in any node of
the search tree, for every edge in the sequence. In order to overcome this diculty, a relaxation technique
is introduced so as to make the currently selected edge
strongly projectable before constructing its projection.
At the (h + 1)th iteration it consists of removing from
GF(h) a suitable set of edges R(uh vh ) ⊆ E (h) , so that
uh vh becomes strongly projectable in the new graph
(h)
G˜ F = (V (h) ; E (h) − R(uh vh )). One such possible set
R(uh vh ) can be found due to the following corrollary
to Theorem 2.6.
Corollary 2.7. Let G = (V; E) be a graph and e =
uv ∈ E. If N (u) − {v} is a clique; then uv is strongly
projectable in G.
Hence, if Q is a clique contained either in
N (uh )\{vh } (or N (vh )\{uh }) a possible choice is to
set R(uh vh ) = {e ∈ E (h) : e has an endpoint in uh and
not in Q}.
Notice that removing edges reduces the probability of generating violated cliques in GF(h+1) . To

F. Rossi, S. Smriglio / Operations Research Letters 28 (2001) 63–74

reduce this drawback we look for the largest clique
Q ⊆ N (uh )\{vh }, where deg(uh )6deg(vh ). The procedure builds the next graph of the sequence assuming
(h)
GF(h+1) = G˜ F |uh vh . After the projection of uh vh , we try
to detect violated clique inequalities on GF(h+1) . The
separation routine can be either a greedy algorithm or
a complete enumeration depending on the size of the
graphs [11]. Since the call of this routine at each step
can produce an excessive computational workload,
the clique separation is executed every K projections.

2.2.2. Lifting
Suppose that the separation routine is successful after i projections, i.e., it returns at least one violated
clique GF(i) [C] of GF(i) . In this section, a lifting procedure is described able to extend C to a set W such that
• (GF [W ]) can be computed easily;
• the inequality x(W )6 (GF [W ]) is violated by xt .
Let us start with a de nition.
De nition 2.8 (Anti-projection). Let GF(h+1) be the
reduction of GF obtained by the sequence of projections P (h+1) and let wz ∈ E (h+1) be a false edge generated by projection of uk vk in GF(k) , for an index k ∈
{0; 1; : : : ; h}. Let us also assume uk w ∈ E (k) ; vk z ∈
E (k) . We de ne anti-projection of wz in GF(h+1) the
graph GF(h+1) ↑ wz, obtained from GF(h+1) by replacing the edge wz with the path {wuk ; uk vk ; vk z} (i.e.,
even subdivision of wz), adding the edges {tuk ; tvk }
for each t ∈ Nuk vk , and removing all other false edges
of GF(h+1) generated by uk vk .
In Fig. 2, GF is the anti-projection of gm in G (1) .
Let Nˆ uv =Nuv ∪{u; v}. The following lemma describes
a generic anti-projection step, capturing the role of
strong projectability.
Lemma 2.9. Let GF(h+1) be the reduction of GF obtained by the sequence of projections P (h+1) and let
wz ∈ E (h+1) be a false edge generated by projection of uk vk ∈ P (h+1) in GF(k) ; k ∈ {0; 1; : : : ; h}. If
uk vk is strongly projectable in GF(k) ; then; for any
vertex set Z ⊆ V (h+1) containing w and z; (GF(h+1) ↑
wz[Z ∪ Nˆ uk vk ]) = (GF(h+1) [Z]) + 1.

67

Proof. The graph GF(h+1) ↑ wz[Z ∪ Nˆ uk vk ] is obtained
from GF(k) [Z ∪ Nˆ uk vk ] by adding the false edges with
both the endpoints in Z ∪ Nˆ uk vk , generated by projections of {uk+1 vk+1 ; : : : ; uh vh }. These false edges cannot have either uk or vk as endpoint, since uk vk is removed from GFk by its projection. Moreover, uk vk is
strongly projectable in GF(k) . Hence, uk vk is projectable
in GF(h+1)↑ wz[Z ∪ Nˆ uk vk ], and, by Lemma 2.3, the thesis follows.
Lemma 2.9 implies that, if (GF(h+1) [Z]) is known,
we can obtain the inequality x(Z ∪ Nˆ uk vk )6 (GF(h+1)
[Z]) + 1 which is valid for STAB(GF(h+1) ↑ wz). This
inequality is valid also for STAB(GF ) if and only if
GF(h+1)↑ wz[Z ∪ Nˆ uk vk ] does not contain false edges. In
the remainder of this section, we illustrate how, starting from GF(i) and from a set Z = C inducing a violated
clique in GF(i) , we can perform a set of anti-projections
so as to build an induced subgraph of GF ful lling the
latter condition.
Every time we construct a false edge wz ∈ GF(h+1) ,
by projecting an edge uh vh , for h = 0; : : : ; i − 1, we
associate with it a set of vertices:
V (wz) = {Nˆ uh vh ∪ V (uh vh ) ∪ V (vh z) ∪ V (uh w)};
where uh w and vh z belong to E (h) . By convention,
for each lm ∈ E (0) we set V (lm) = ∅. Moreover,
˜
denote by E(C)
= {wz: w; z ∈ C; wz ∈ EF } the set
of false edges in E (i) with both the endpoints in C, by
˜ the set of edges in P (i) with both the endpoints in
P

V (wz). The
V (wz), and let W = C wz∈E(C)
˜
˜
wz∈E(C)
following theorem holds:
˜ is valid
Theorem 2.10. The inequality x(W )61+|P|
for STAB(GF ).
Proof. It is sucient to observe that the anti˜ performed in the reprojections of the edges in P,
verse sequence w.r.t. P (i) , yield, by construction, a
graph in which W induces a subgraph without false
edges. Hence, from iteratively applying Lemma 2.9,
the thesis follows.
The separation procedure is described in Table 1.
The main loop can be repeated at most MAXITER times,
and at each iteration a di erent sequence P is exploited. The current sequence fails if no violated clique

68

F. Rossi, S. Smriglio / Operations Research Letters 28 (2001) 63–74

Fig. 2. Sequence of projections.

is found and no more edges can be selected. The inequality is added to the pool i its violation is greater
than a given threshold MINVIOLATION. In order to
maintain a high probability of identifying lifted inequalities violated by x,
 the procedure chooses edges
uv for projection such that xtu + xtv ∈ [0:6; 1]. We experienced that this strategy preserves eciency and
does not increase signi cantly the number of cuts discarded after lifting w.r.t. strategies based on the value
xtu + xtv + xt (Nuv ).
The purpose of exploiting di erent projection
sequences is to generate several di erent cuts, reducing the probability of failure. In practice, di erent
sequences often yield the same violated clique in the
projected graph. Therefore, in order to generate different lifted inequalities, sequences sharing a small
number of edges are preferable w.r.t. to those in
which the same edges are projected in di erent order. The same behaviour can be observed when false
edges are chosen for projection with di erent priority
w.r.t. real edges.
The example depicted in Fig. 2 illustrates the procedure. The gure contains a fractional minor GF ,
with x(V
 F ) = 3:5. consider the sequence of edges
P = {hl; gm}. The projection of hl creates the false
edge gm, with V (gm) = {i; h; l}. Notice that GF(1) does

not contain any violated clique, while, projecting gm,
we create the edge df, with V (df) = {i; h; l; g; m},
which makes GF(2) become a violated clique induced
by the set C = {a; b; c; d; f}. In the gure, the false
edges are drawn with bold lines, and the endpoints
of the projected edges are shadowed. The lifting
of the inequality is straightforward: the only false
edge with both the endpoints in C is df. Then
W = {a; b; c; d; f; g; h; i; l; m}, and (GF [W ]) = 3.
Since x(W
 ) = 3:5, the corresponding rank inequality
is violated.
We conclude this section with some insights. First
of all, let us observe that the structure of the violated
subgraph is not known a priori, depending on the sequence of projected edges and on the violated clique
found. An a posteriori analysis shows that, among the
generated subgraphs, it is possible to nd holes, lifting of holes, antiholes, lifting of antiholes, Kn subdivisions and their lifting. The latter inequalities come
out since the lifting phase generalizes the even subdivision operation. We mention that a lifting procedure
based on the edge even subdivision have been introduced by Wolsey [17], while the rank inequalities associated to K4 -subdivision have been characterized by
Barahona and Mahjoub [5]. A related computational
experience is due to Barahona et al. [6].

F. Rossi, S. Smriglio / Operations Research Letters 28 (2001) 63–74

69

Table 1
Separation routine
SEPARATION PROCEDURE
Input: GF ; xF .
Output: a set of rank inequalities valid for STAB (GF ).
for i = 0 to MAXITER
(0)
GF = (V (0) ; E (0) ) = GF ; h = 0; P = ∅;
Select an edge e0 = u0 v0 not yet selected as rst edge;
if e0 is found then P = P ∪ {u0 v0 } and goto 2;
else return
1. Edge Selection
(h)
Select an edge eh = uh vh of GF ;
if eh is found then P = P ∪ {uh vh }
2. Relaxation
R(uh vh ) = {e ∈ E (h) : e has an endpoint in uh and not in Q};
E (h) :=E (h) − R;
3. Projection
(h+1)
(h)
GF
= GF |eh ;
h = h + 1;
if h mod K = 0 then
4. Clique separation
(h)
if a violated clique inequality on GF is found then
5. Lifting
(h)
˜
Lift the clique inequality on GF to a rank inequality x(W )61 + |P|;
˜ − 1¿MINVIOLATION then add the rank inequality to the pool;
if x(W
 ) − |P|
else
goto 1;
else
goto 1;
endfor

3. Branching scheme
At any node t of the enumeration tree the branching
constraints x a set U t ⊆ V (Lt ⊆ V ) of variables to 1
(to 0). Clearly, Lt ⊇ N (U t ). Hence, we are left with a
stable set problem on the subgraph G t induced by the
set V t =V \(U t ∪Lt ) in G. Let  be the objective value
of the incumbent solution (i.e., the best feasible solution found so far) and let t =  − |U t |. If we can certi cate that (G t )6 t the node can be fathomed. The
branching rule goes as follows. Let us consider a set
W t ⊆ V t of vertices for which is possible to prove that
(G t [W t ])6 t

(3)

and let Z t = V t \W t . Then, if (G t ) ¿ t , every maximum cardinality stable set of G t must contain at least
one vertex in Z t = {v1 ; : : : ; vp }. On the ground of this
observation, Balas and Yu [4] prove that every maxi-

mum cardinality stable set of G t must be contained in
one of the sets Vit ={vi }∪V t \(N (vi )∪{vi+1 ; : : : ; vp }),
for i = 1; : : : ; p. The solution space is therefore partitioned into p subproblems corresponding to graphs
G[Vit \{vi }], each corresponding to a branching vertex
vi ; i = 1; : : : ; p, with lower bound t − 1.
In [4] Z t is determined by computing a clique partitioning, while in [16] also holes and matching are
considered. In [13] a partitioning in non-prede ned
subgraphs by edge projections is performed. Previous experiences [16,13] show that the size of the enumeration tree is strongly a ected by the cardinality of
Z t and by the degree of the vertices in Z t . The latter issue has been addressed by sorting the vertices in
non-decreasing order of degree before executing the
bounding heuristic. Moreover, Sewell [16] shows that
updating such a ranking at each node is convenient
for sparse graphs.

70

F. Rossi, S. Smriglio / Operations Research Letters 28 (2001) 63–74

In our algorithm, the branching phase builds W t
by a sequential covering procedure after the vertices
have been sorted by increasing order of degree. This
approach is similar to the algorithm used in [16] (LFS:
least rst sequential) when applied to subgraphs of
general structure. The covering is built up selecting a
suitable set of constraints in R.
Each inequality is projected in the subspace spanned
by V t , i.e., the inequality x(Ti )6 (G[Ti ]) at node t
becomes x(Ti \(U t ∪ Lt )) = x(T˜ i )6 (G[Ti ]) − |U t |
= ˜i .
At the beginning W0t is the emptyset, and LB0 = 0.
At the kth iteration, the procedure selects a constraint
x(T˜ i )6 ˜i , among those covering the vertex of lowest
degree not yet covered, such that: (i) LBk = LBk−1 +
t
˜i 6 t and (ii) the ratio =(|
˜ T˜ i | − |Wk−1
∩ T˜ i |) is minit
t
mum. Hence, the set Wk is updated to Wk−1
∪ Wi . The
procedure stops when no such constraint exists.

4. Computational experience
In this section, we compare two di erent solution strategies, starting from the same LP-relaxation
LP0 :
1. Branch-and-cut using the branching scheme of
Section 3 and the rank inequalities (Section 2.2)
(BCrank ).
2. Branch-and-cut using the branching scheme of Section 3 and pure clique inequalities (BCclique ).
In particular, we investigate the trade-o between
strengthening the formulation by rank cuts (Section
2.2) and enhancing the computational workload w.r.t.
to pure clique cuts generation. The latter is due both to
edge projections and lifting and to the increase of the
average size of LPs. In Table 2 are also reported the
results of the branch-and-cut devised by Ceria et al.
[2] (BCCP) and the combinatorial branch-and-bound
by Mannino and Sassano [13] (MS). These two algorithms were chosen as benchmark to evaluate the
overall performance of BCrank and BCclique .
We ran the algorithms on the following test bed:
(i) DIMACS Challenge benchmark graphs [13];
(ii) uniform random graphs [16].
The characteristics of the experiments are listed
below:

Experiments characteristics
Machine: Pentium II 350 Mhz with 128 Mb RAM
Computer language: ‘C’ compiler Watcom C=C +
+ 11:0
CPU time limit: 48 h
LP solver: Xpress 11
Branch-and-cut features
Preprocessing and variable xing. A xing heuristic of simplicial vertices [13] is executed at each
node.
Primal heuristic. The rst feasible solution is computed by a greedy heuristic.
Initial LP. The rst set of cliques C0 is determined
by a greedy procedure.
Inequalities pool. Each generated constraint is
added to the pool if none of the actual constraints
dominates it.
Branching or cutting decision. The constraint generation procedure is executed if
|V t |¿(0:1 ≈ 0:2)|V |.
Variable selection The vertices in Z t are sorted
according to the choice suggested in [16] and [13].
Enumeration strategy. Depth rst search strategy outperforms both breadth rst search and best
bound search.
Table 2 illustrates the comparison, in terms of number of evaluated nodes (# b& b nodes) and total
CPU time (Time), among BCrank , BCclique , MS and
BCCP. The CPU time reported for MS and BCCP
is the one reported in [13,4]. The DIMACS machine
benchmarks outlined that our computer is 1.6 time
(3.5 time) faster than the one of MS (BCCP). In
Table 3 we report the optimal value z0 of LP0 , integer optimal solution and, for both BCclique and
BCrank the following statistics: optimal value of the
LP relaxation at the root node, percentage of the gap
z0 − closed by the inequalities at the root node,
LP solve time, cut generation time, time elapsed for
the execution of the branching heuristic (Section 3)
(Branch time), time elapsed for pool checking. In the
last three columns we report separately the number
of clique cuts generated by BCclique , the number of
clique cuts and the number of rank cuts with right
hand side greater or equal to 2 generated by BCrank .
In Tables 2 and 3, times are given in seconds after
being rounded down. A ∗ ∗ ∗ indicates that CPU time
limit was exceeded, gures labelled with b represent

71

F. Rossi, S. Smriglio / Operations Research Letters 28 (2001) 63–74
Table 2
Branch-and-cut resultsa
Name

# Vertices
(density)

# B & b nodes
BCclique
BCrank

MS

BCCP

Time
BCclique

BCrank

MS

BCCP

C125.9
C250.9

125 (0:1)
250 (0:1)

3136
10021573b

80
141954

4757
147012022

3244


28
∗∗∗

18
115099

4
214834

2400


DSJC500.5

500 (0:5)

880727b

820522b

1073699



∗∗∗

∗∗∗

1156



mann a27
mann a45

378 (0:01)
1035 (0:004)

4579
128795

1894
45868

2520
71195




67
9457

68
4644

8
985




2
4
2
4

200
200
400
400

(0:5)
(0:44)
(0:25)
(0:25)

1510
23457
7152646b
7446691b

1957
8695
4246086b
5286980b

6053
38518
∗∗∗
66866506

8746




424
683
∗∗∗
∗∗∗

292
661
∗∗∗
∗∗∗

2
18
∗∗∗
71811

28000




fat200-1
fat200-2
fat200-5
fat500-1
fat500-2
fat500-5
fat500-10

200
200
200
500
500
500
500

(0:92)
(0:84)
(0:57)
(0:93)
(0:63)
(0:96)
(0:81)

1
1
42
1
304
2
547

1
1
1
1
130
2
672

10
6
26
10
286
17
735

80
2
46





27
25
92
1012
1171
1751
211

33
38
146
697
1038
1754
209

1
1
1
1
1
1
1

730
370
2000





200
200
400
400
400

(0:1)
(0:1)
(0:1)
(0:1)
(0:1)

1
1
48623
1685
22

1
1
11
1
1

17063
10116
∗∗∗
∗∗∗
∗∗∗

240
1




4
6
851
176
92

4
6
401
120
189

197
14
∗∗∗
∗∗∗
∗∗∗

670
10




brock200
brock200
brock400
brock400
c
c
c
c
c
c
c

gen200
gen200
gen400
gen400
gen400

p0.9
p0.9
p0.9
p0.9
p0.9

44
55
55
65
75

hamming8-4

256 (0:36)

1

1

23876

100

89

89

14

1500

keller4

171 (0:35)

4256

2070

15246

4104

261

187

5

6100

hat300-2
hat300-3
hat700-1
hat700-2
hat1500-1

300
300
700
700
1500

(0:51)
(0:26)
(0:75)
(0:50)
(0:25)

844
32756
71197
147980
+++

686
5667
59912
113915
+++

2345
109388
18404
210602
1505268







973
13228
16310
146699
+++

1015
8226
17539
151294
+++

3
151
28
629
5900







san200-0.7-1
san200-0.7-2
san200-0.9-1
san200-0.9-2
san200-0.9-3
san400-0.5-1
san400-0.9-1

200
200
200
200
200
400
400

(0:3)
(0:3)
(0:1)
(0:1)
(0:1)
(0:5)
(0:1)

1
38
1
1
46
194
1

1
38
1
1
1
139
1

2201
267
219
11010
1485502
1937
218791

1
38
1
1
4
18


24
15
2
6
5
315
131

17
11
2
6
8
147
131

1
1
1
16
1925
1
240

11
280
3
8
780
4400


g100
g100
g125
g125
g150
g150
g175
g175
g200
g200

100
100
125
125
150
150
175
175
200
200

(0:1)
(0:2)
(0:1)
(0:2)
(0:1)
(0:2)
(0:1)
(0:2)
(0:1)
(0:2)

323
676
4046
3006
19160
44081
94489
72236
8472612b
215044

16
26
144
222
803
1121
1984
2345
739757
3151

1143
2023
9371
13933
70967
83067
947469
246690
2202647
535922












5
18
75
101
702
976
3208
1657
∗∗∗
11363

4
32
23
123
361
475
1719
1101
116155
4394

1
1
11
16
87
103
1508
320
3910
706












p
p
p
p
p

10
20
10
20
10
20
10
20
10
20

a ∗∗∗ indicates
b Statistics

that CPU time limit was exceeded, + + + indicates that the program ran out of memory and — indicates data not available.
collected at time limit.

72

Table 3.
Further computational details
Name

a

53
104
170
189
517.50
62.50
70.05
146.60
152.50
83.52
92.56
98.75
211.51
231.52
243.57
247.66
75.50
83
149
157.50
159.50
64
56
115.50
117
123
289.50
53
66.50
80.25
82
77.50
108.50
165
41.41
39.20
51.51
48.12
63.03
60.54
75.12
67.75
84.55
77.01



34
44
13
126
345
12
17
29
33
12
24
58
14
26
64
126
44
55
55
65
75
16
11
25
36
11
44
30
18
70
60
44
13
100
31.4
19.2
33.3
21.2
36.8
22.3
40.1
23.1
41.4
26.3

LP root

value

% gap

closed

LP solve time

Cut gen. time

Branch

time

Pool check time

# clique cuts # clique cuts # rank cuts

BCclique BCrank BCclique BCrank BCclique

BCrank

BCclique BCrank BCclique BCrank BCclique

BCrank BCclique

BCrank

BCrank

43.15
71.91
53.93
135
360
22.17
31.54
70.89
71.85
12.98
24
66.66
14.90
90.51
67.58
223.32
44
55
60.17
68.74
77.58
16
14.96
34.42
55.55
35.40
74.63
30.69
19.24
70
60
45.68
27.68
100.40
36.42
26.66
42.87
31.11
48.14
35.54
54.77
39.98
61.57
44.21

9
112 300
130 989a
20
1563
162
541
153 623a
152 588a
19
23
45
592
904
1021
476
2
4
15
72
66
47
148
500
4256
13207
88011
11
6
1
3
5
47
64
0
9
9
94
235
398
1524
785
110 245
4035

1
12a
479a
0
195
118
29
97a
102a
12
6
44
78
40
680
64
1
1
29
15
42
42
28
336
243
1067
46155
9
5
0
2
1
89
67
1
3
4
6
38
6
14
89
30a
96

0
25
10308a
1
15
2
9
5868a
7201a
0
0
0
6
23
3
0
0
0
36
0
0
0
6
5
36
716
4098
0
0
0
0
0
0
0
0
0
0
0
0
1
3
8
17
9

370
573
7707
117
330
1204
1002
3971
4211
257
818
1226
1015
1760
2210
303
552
434
1800
1668
1722
1239
1696
2548
1582
2150
3029
321
702
159
361
457
2022
1286
172.2
245.3
311.9
324.0
210.4
456.4
290.7
609.4
353.2
704.1

841
1828
8361
832
4160
1189
2061
6811
6627
65
225
1009
265
649
2537
2
0
0
12688
2437
1699
0
1882
6706
9529
3849
6789
112
133
0
0
228
1596
0
263.1
3169.4
705.2
2865.6
1812.4
2280.4
3143.3
3145.5
756.0
5574.0

Statistics collected at time limit.

37.40
58.30
52.95
134.83
360
22.01
30.87
67.66
67.98
12.86
24
65.25
14.98
57.78
67.08
223.29
44
55
56.20
65.25
75
16
14.95
34.19
53.19
34.90
72.18
30.71
19.18
70
60
44.80
17.14
100.40
33.30
23.13
36.92
26.07
42.14
30.34
48.25
31.24
49.93
37.40

51.84
53.48
73.92
85.71
91.30
79.86
72.59
64.37
67.48
100.00
100.00
78.75
100.00
68.61
98.01
20.01
100.00
100.00
94.50
95.96
96.95
100.00
91.20
89.59
75.86
78.21
87.52
100.00
97.44
100.00
100.00
94.99
84.63
100.00
49.80
62.70
47.42
63.20
56.87
65.34
58.09
62.19
53.20
64.68

82.11
76.17
74.55
85.98
91.30
80.18
73.85
67.12
70.72
100.00
100.00
82.21
100.00
84.54
98.28
20.03
100.00
100.00
98.72
99.73
100.00
100.00
91.22
89.85
78.78
78.66
88.52
100.00
97.57
100.00
100.00
97.61
95.66
100.00
81.00
80.35
80.11
81.90
79.62
78.95
76.71
81.77
80.21
78.11

25
165 486a
140 901a
38
3716
300
628
123 569a
127 138a
15
19
48
927
1008
1067
476
2
4
717
156
50
47
224
628
12742
12197
95310
15
10
1
3
3
219
64
3
15
68
94
650
930
3098
1495
163 463a
10757

8
2668
11988a
23
1021
126
101
8477a
7831a
14
15
101
96
105
730
189
1
1
345
48
122
42
32
503
3912
2112
54155
6
5
0
2
2
100
67
2
22
14
30
125
76
189
297
5448
345

0
5255a
27005a
25
5459
0
14
9381a
9197a
0
0
0
0
28
0
7
0
0
101
4
0
0
1
2
98
2202
2214
0
0
0
0
0
0
0
0
0
0
0
8
27
82
47
7725a
403

0
104
19459a
21
2045
1
8
4729a
5031a
0
0
0
0
6
0
7
0
0
5
0
0
0
0
7
22
1504
5030
0
0
0
0
0
0
0
0
0
0
0
0
0
2
11
445
3

0
1782a
4389a
1
64
3
11
39593a
36236a
0
0
0
7
95
4
0
0
0
4
1
0
0
7
5
145
844
3020
0
0
0
0
0
7
0
0
0
0
0
4
11
11
26
950a
103

319
558
1503
117
330
3341
916
1481
1471
403
594
1153
1764
809
2164
303
552
434
1678
1687
1723
1239
1066
4235
7901
2856
3489
571
915
159
361
558
3658
1286
138.9
479.0
371.1
728.5
716.2
774.0
779.8
2799.1
413.6
4273.8

F. Rossi, S. Smriglio / Operations Research Letters 28 (2001) 63–74

C125.9
C250.9
DSJC500.5
mann a27
mann a45
brock200 2
brock200 4
brock400 2
brock400 4
c fat200-1
c fat200-2
c fat200-5
c fat500-1
c fat500-2
c fat500-5
c fat500-10
gen200 p0.9 44
gen200 p0.9 55
gen400 p0.9 55
gen400 p0.9 65
gen400 p0.9 75
hamming8-4
keller4
p hat300-2
p hat300-3
p hat700-1
p hat700-2
san200-0.7-1
san200-0.7-2
san200-0.9-1
san200-0.9-2
san200-0.9-3
san400-0.5-1
san400-0.9-1
g100 10
g100 20
g125 10
g125 20
g150 10
g150 20
g175 10
g175 20
g200 10
g200 20

z0

F. Rossi, S. Smriglio / Operations Research Letters 28 (2001) 63–74

statistics collected at time limit, + + + indicates that
the program ran out of memory, while — indicates
data not available. The reported results correspond to
the best setting of three parameters: K, MAXITER and
MINVIOLATION (Section 2.2.2). The typical ranges
for these parameters are: K ∈ [5; 30], MAXITER ∈
[10; 300], MINVIOLATION ∈ [0:3; 1].
From the results of Tables 2 and 3 we observe that
the key parameter in the comparison between BCrank
and BCclique is the graph density. BCrank outperforms
BCclique in terms of CPU time on DIMACS benchmark graphs with density lower than 20%, namely,
C125.9, C250.9, mann a45, gen400 p0.9 55,
gen400 p0.9 65. Other sparse graphs, namely,
san200-0.9-1, san200-0.9-2, san200-0.9-3,
san400-0.9-1 turn out to be easily solvable both for
BCclique and BCrank . Also for p hat300-3, with density 26%, and for keller4, with density 35%, BCrank
lead to a signi cant time saving w.r.t BCclique . The
results also show that, in these graphs, a signi cant reduction in the number of evaluated nodes is obtained
with a number of generated rank cuts which is larger
than the number of clique cuts generated by BCclique .
Therefore, the generation of rank cuts requires extra
time and increases also the average time needed to
solve one LP. However, this increase is acceptable
since it is pro tably rewarded by the reduction in the
number of evaluated nodes. Observe also that among
the generated rank cuts, the number of clique cuts
is often smaller than the one generated by BCclique .
This trade o is pro table also for gen400 p0.9 55,
in which BCrank generates a large set of rank cuts. In
fact, for this graph, the size of the enumeration tree is
dramatically reduced w.r.t. the size from BCclique and
a signi cant time saving is accomplished.
These considerations also hold for sparse random
graphs. We ran experiments on uniform random
graphs with size ranging from 100 to 200 vertices
and densities 10% and 20%. A random graph with x
vertices and density y% is indicated as g x y. Each
row of Tables 2 and 3 contains average values from
25 graphs. These experiments show that, BCclique is
faster than BCrank on small graphs with 20% density
(i.e., g 100 20 and g 125 20), while BCrank outperforms BCclique in all other tests. Moreover, the advantage of BCrank over BCclique in terms of enumeration
size increases systematically with the number of vertices. We can observe that random graphs with 200

73

vertices and 10% density turn out to be unsolvable
for BCclique , while BCrank solves them to optimality.
On these graphs, the best parameter con guration
for BCrank is obtained by high values of MAXITER
and MINVIOLATION. High values for MAXITER correspond to detecting a huge number of violated cuts.
High values for MINVIOLATION, namely, from 2 to
3, correspond to ltering cuts by a severe violation
threshold which leads to adding to the pool only a
small percentage of the detected cuts and discarding
the others. This can be observed by the results reported in Table 3, in which the cut generation time is
large w.r.t. the number of generated cuts. The success
of this con guration is due to the fact that the selected
cuts give an important contribution to closing the gap
and, at the same time, keep LPs eciently solvable.
A di erent behaviour of the algorithms can be observed for DIMACS benchmark graphs with density
40% or more. As one can expect, in this case BCclique
is e ective. In fact, the clique inequalities often provide a conclusive contribution in reducing the integrality gap and the e ort needed for rank inequalities
generation and solution of large LPs is not justi ed.
For instance, in c fat200-x the integrality gap is
closed at the root node by clique inequalities. Also for
p hat700-x, incorporating rank inequalities does not
improve the algorithm performance. Nevertheless, exceptions are represented by brock200 2, c fat500-1
and brock200 4. In the rst two graphs, the role
of rank inequalities is to accomplish a formulation
strengthening similar to the one from clique inequalities, but with a smaller number of cuts. This reduces the average time for the solution of one LP for
BCrank and, at the same time, keeps the size of the
enumeration tree comparable to the one from BCclique
(c fat500-1 is solved at the root node by both the
algorithms). In these graphs, rank cuts turn out to be
e ective at deep levels in the enumeration tree, leading to a reduction of the number of evaluated nodes.
The results in Table 2 show that BCrank outperforms
the branch and cut BCCP, both in terms of computation time and size of the enumeration tree. As for
the comparison between BCrank and the combinatorial
branch and bound MS, the results in Table 2 show that
MS often keeps a signi cant advantage in terms of
computation time. In particular, even if BCrank reduces
dramatically the size of the enumeration tree w.r.t MS,
in the nal balancing the fast bounding heuristic of

74

F. Rossi, S. Smriglio / Operations Research Letters 28 (2001) 63–74

MS turns out to be convenient w.r.t. LP solving. An
important exception is represented by the gen graphs
(especially gen400 x), where BCrank succeeds in a
few branch and bound nodes and short computation
time, while MS fails.
The computational experience con rms that clique
inequalities play a central role in polyhedral approaches to stable set problems. This is due to their
signi cant contribution to the gap reduction at low
cost and also to the fact that they lead to LPs which
can be eciently solved. Nevertheless, they can suffer from lack of ecacy especially in sparse graphs.
When this happens, the proposed heuristic for rank inequality detection, exploiting the eciency of clique
detection algorithms, enhances the robustness of the
branch-and-cut algorithm and may lead to signi cant
time saving.
Future research directions deal with extending the
proposed branching scheme to weighted stable set
problems so as to improve the modelling
exibility
and with investigating clique projections besides edge
projections in the constraint generation.
Acknowledgements
We wish to thank an anonymous referee, whose
comments led to a signi cant improvement of the paper. We also wish to thank Antonio Sassano for his
invaluable suggestions.
References
[1] A. Atamturk, G.L. Nemhauser, M.W.P. Savelsbergh, Con
ict
graphs in integer programming, European J. Oper. Res. 121
(2000) 40–55.

[2] E. Balas, S. Ceria, G. Cornuejols, G. Pataki, Polyhedral
Methods for the Maximum Clique Problem, DIMACS Ser.
Discrete Math. Theoret. Comput. Sci. 26 (1996).
[3] E. Balas, M. Padberg, Set partitioning: a survey, SIAM Rev.
18 (1976) 710–760.
[4] E. Balas, C.S. Yu, Finding maximum clique in an arbitrary
graph, SIAM J. Comput. 15 (1986) 1054–1068.
[5] F. Barahona, A.R. Mahjoub, Composition of graphs and
polyhedra II: stable sets, SIAM J. Discrete Math. 7 (3) (1994)
359–371.
[6] F. Barahona, A. Weintraub, R. Epstein, Habitat dispersion
in forest planning and the stable set problem, Oper. Res. 40
(Suppl. 1) (1992) 14–21.
[7] R. Borndorfer, R. Weismantel, Set packing relaxation of some
integer programs, SC97-30 ZIB preprint, 1997.
[8] A. Caprara, J.J. Salazar Gonzlez, Separating lifted odd-hole
inequalities to solve the index selection problem, Discrete
Applied Mathematics 92 (1999) 111–134.
[9] M.R. Garey, D.S. Johnson, Computers and Intractability: a
Guide to the Theory of the NP-Completeness, Freeman, New
York, 1979.
[10] M. Grotschel, L. Lovasz, A. Schrijver, Geometric Algorithms
and Combinatorial Optimization, Springer, Berlin, 1988.
[11] K.L. Ho man, M. Padberg, Solving airline crew scheduling
by branch and cut, Manage. Sci. 39 (6) (1993).
[12] C. Mannino, A. Sassano, An exact algorithm for the maximum
stable set problem, Comput. Optim. Appl. 3 (1994) 243–258.
[13] C. Mannino, A. Sassano, Edge projection and the maximum
cardinality stable set problem, DIMACS Ser. Discrete Math.
Theoret. Comput. Sci. 26 (1996) 249–261.
[14] G.L. Nehmauser, G. Sigismondi, A strong cutting
plane=branch-and-bound algorithm for node packing, J. Oper.
Res. Soc. 43 (5) (1982) 443–457.
[15] F. Rossi, S. Smriglio, A set packing model for the
ground-holding problem in congested networks, European J.
Oper. Res. 131 (2001) 172–188.
[16] E.C. Sewell, A branch and bound algorithm for the stability
number of a sparse graph, INFORMS J. Comput. 10 (4)
(1998) 438–447.
[17] L. Wolsey, Further facet generating procedures for vertex
packing polytopes, Math. Programming 11 (1979) 158–163.