CLUSTER RESTRICTED MAXIMUM WEIGHT CLIQUE PROBLEM AND LINKAGES WITH SATELLITE IMAGE ACQUISITION SCHEDULING by Krishna Teja Malladi B.Tech., LNM Institute of Information Technology, 2011 a Thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in the Department of Mathematics Faculty of Science c Krishna Teja Malladi 2014 SIMON FRASER UNIVERSITY Spring 2014 All rights reserved. However, in accordance with the Copyright Act of Canada, this work may be reproduced without authorization under the conditions for “Fair Dealing.” Therefore, limited reproduction of this work for the purposes of private study, research, criticism, review and news reporting is likely to be in accordance with the law, particularly if cited appropriately.
103
Embed
CLUSTER RESTRICTED MAXIMUM WEIGHT CLIQUE PROBLEM …summit.sfu.ca/system/files/iritems1/14006/etd8327_KMalladi.pdf · CLUSTER RESTRICTED MAXIMUM WEIGHT CLIQUE PROBLEM AND LINKAGES
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
CLUSTER RESTRICTED MAXIMUM WEIGHT CLIQUE
PROBLEM AND LINKAGES WITH SATELLITE IMAGE
ACQUISITION SCHEDULING
by
Krishna Teja Malladi
B.Tech., LNM Institute of Information Technology, 2011
the time window within which the image has to be acquired is one week. About 66% of
the requests are within Canada. In the following paragraphs, we describe the procedure
adopted to define the regions and targets once the center and area of the regions defined
in the requests are generated randomly. We make use of several formulas using spherical
co-ordinates.
Depending on the shape of a region, we divide it into several targets. Large regions which
may not be represented as one region can be approximately considered to be a set of distinct
targets. Thus, each region has a set of targets. Each target is identified by its center and
area. If r is the radius of the Earth, TopPhi, BottomPhi, leftTheta and RightTheta are
the θ and φ that bound the target and ρ = LeftTheta−RightTheta, then the area A of the
target is given by the formula A = r2[cos(TopPhi)− cos(BottomPhi)]× ρ× 180π . Since we
know the CenterPhi for each target, by using δ = BottomPhi− TopPhi, we can calculate
the values of the TopPhi and BottomPhi using the formulas TopPhi = CenterPhi − δ/2and BottomPhi = CenterPhi + δ/2. To find the value of δ, we need to know the vertical
length of the target. In order to ensure that the difference between the length and breadth
of the target is not very large, we assume that the length of the target is√A. Thus, by
using the formula r× δ× π180 =
√A we can find the value of δ and thus the values of TopPhi
and BottomPhi. Since A = r2[cos(TopPhi) − cos(BottomPhi)] × ρ × 180π and the only
unknown value in this formula now is ρ, we can find the value of ρ. Using this value of ρ,
LeftTheta = CenterTheta+ρ/2 and RightTheta = CenterTheta−ρ/2 can be calculated.
For rectangles to the extreme north or south, if TopPhi or BottomPhi may go beyond
the interval [0◦, 180◦]. In such cases we fix the TopPhi to 180◦ if calculated TopPhi >
180◦ and we fix BottomPhi to 0◦ if the calculated BottomPhi < 0. We also ensure that
LeftTheta and RightTheta of each rectangle lies within the interval [0◦, 360◦], i.e., if the
calculated LeftTheta and RightTheta are out of the interval [0◦, 360◦], we assign to them
their equivalent values within the interval. This way, for a given target and its area, we
can approximately find the corners which border this target. If however the corners of each
target are specified, we can use those values directly.
For each request given in the orders, we generate the center of the region randomly such
that 2/3rd of the requests are within Canada. We also make sure that each day there is a
request for the water bodies around Canada.
We have seen that each target has one or more strips. Each strip can be considered as a
spot target. Thus, a strip also has LeftTheta, RightTheta, TopPhi and BottomPhi. The
Figure 2.7: Figure explaining how to divide a wide strip into narrow strips if the strip is notcompletely to the right of the satellite’s ground track. The dark arrow shows the satellite’sground track. After the division we get two new strips, one with width at least 3
4wb whichis to the right of the track and the other with width at most 1
4wb which is to the left of thetrack.
end on the given day is the maximum when the strips are smaller.
Table 2.3 shows the number of strips, average acquisition times and maximum acquisition
times of the satellites for instances where the strips are both small and narrow. We can see
that the average acquisition times for the satellites is more in this case than in large, narrow
or small strips.
Table 2.4 shows the number of completely acquired requests that end on the given day
and the total acquired area of requests that end on the given day for the instances with
small and narrow strips. We show the results for planning horizons of length 1, 2, 3 and
4 days. For a planning horizon on length d and a given day d′, we sequentially solve the
problem from day d′ − d + 1 till day d′. It can be seen that as the length of the planning
horizon increases, the total acquired area of requests that end on the given day increases
considerably.
2.6 Graph Models of SIASP
Each feasible solution of SIASP can be modeled as path or a clique in specific graphs that
can be constructed using the SIASP instances. We describe both these models in this
section. In both the models, we assume the energy constraints of the problem are relaxed.
Let {r1, r2, . . . , rn} be the set of all opportunities of the the SIASP problem instance. let
each opportunity ri have a weight ai and a time of possible acquisition ti associated with it.
If the objective function is to maximize the sum of weights of all acquired opportunities,
Table 2.1: The number of strips, average and maximum acquisition times for the instanceswith large strips, narrow strips and small strips. Each model is run till optimality withinfew minutes. The objective function in each of these models is a single piecewise linearfunction.
Table 2.2: The number of requests that are completely acquired out of all the requests whosedeadline is the given day and the total area acquired of these requests for the instances withlarge, narrow and small strips. TotalArea is measured in km2
this problem can be modeled as problem of finding the longest path in a directed acyclic
graph G(V,E). Let there be n vertices {v1, v2, . . . , vn} in the graph, where a vertex vi
represents an opportunity ri. Two opportunities ri and rj are compatible if both ri and
rj can be acquired by the constellation during the same planning horizon. Let there be a
directed edge (vi, vj) from vi to vj if ti ≤ tj for the compatible opportunities ri and rj . A
graph constructed this way is acyclic and directed. Any path in G is a set of compatible
opportunities. Thus any feasible solution to SIASP corresponds to a path in G. But some
paths in the graph G may not correspond to a feasible solution to SIASP. This situation
occurs when two opportunities of the same strip are compatible and the nodes representing
Table 2.3: Table showing the average and maximum acquisition times for the instances withboth narrow and small strips. Each model is run till optimality within few minutes. Theobjective function in each of these models use a single piece wise linear function.
these opportunities appear in one path. In such solutions, the acquisition of the same strip
is repeated. Thus, certain paths in G, in which opportunities of the same strip are not
repeated, correspond to feasible solutions of SIASP. Paths in G which obey an ordering of
nodes can be proved to be feasible to SIASP. Thus by constructing the edges of G which
obey an ordering of the nodes, one may solve SIASP by solving the longest path problem in
G. Due to the restriction in the ordering of nodes, SIASP may not be solved optimally using
this model but quick solutions can be obtained because solving the longest path problem
in a directed acyclic graph can be solved in polynomial time[10]. This model of SIASP is
described in [16].
SIASP can be modeled as a clique problem in a graphG = (V,E), where V = {v1, v2, . . . , vn}and each node vi represents an opportunity ri. For two compatible opportunities ri and
rj , let there be an edge (vi, vi) in the graph. There will be no edge between two nodes
representing the opportunities of the same strip and there will be no loops in the graph. In
the graph thus constructed, any clique represents a feasible solution to SIASP. In the graph
thus constructed, all the opportunities of the same region can be clustered together and
thus creating a partition of the nodes. The optimal solution to SIASP would be the clique
that maximizes the weight function as defined in the objective function of SIASP. We call
this problem of finding a clique that maximizes the objective function defined in SIASP as
the Cluster Restricted Maximum Weight Clique Problem (CRCP). CRCP is described in
Chapter 3. In the computational experiments done for RCM, it is observed that the con-
straints for average acquisition and maximum acquisition times are not tight. The actual
Table 2.4: Table showing the number of requests that are completely acquired out of all therequests whose deadline is the given day and the total area acquired of these requests. Weshow 4 different lengths of planning horizons for each day. For example, the 4 Day Plan forDay 50 begins on day 47 and ends on day 50. TotalArea is measured in km2
average and maximum acquisition times are less than 12 and 20 minutes respectively. Thus,
relaxing these constraints does not effect the final solution. Thus, by solving CRCP on a
graph, we can solve SIASP and vice versa.
Chapter 3
Cluster Restricted Maximum
Clique Problem (CRCP)
3.1 The CRCP Definition
We are given a graph G = (V,E), where V is the set of n nodes and E is the set of edges.
The node set V is partitioned into several disjoint sets R1, R2, . . . , Rm which are called
clusters. Each cluster Ri has a weight wi. Each node v ∈ V is assigned a weight av. A clique
is a complete subgraph in the given graph. A clique is called maximal if it is not a part of
any larger clique. A clique is called a maximum clique if it has the maximum number of
nodes out of all the cliques in the graph. The problem of finding a maximum clique in a
graph is called the Maximum Clique Problem (MCP). The weight of a clique Q is defined
as w(Q) =∑
v∈Q av. The classical Maximum Weight Clique Problem (MWCP) deals with
finding the clique with the maximum weight. For a given subgraph G′ of G, let V (G′) be
the set of nodes in it. We define the clustered weight wc(G′) of G′ as follows:
wc(G′) =
m∑i=1
wiyifi
∑j∈V (G′)∩Ri
aj
(3.1)
where fi(x) is any function associated with the cluster Ri, i = 1, 2, . . . , m and yi is a
binary constant. y1 = 0 if Ri ∩ V (G′) = ∅ and yi = 1 otherwise. The objective of our
problem is to find a clique Q in G that maximizes wc(Q). This problem is called Cluster
Restricted Maximum Weight Clique Problem (CRCP). The optimal solution of the CRCP is
called Cluster Restricted Maximum Weight Clique (CRC). For the rest of the thesis, wc(Q)
26
CHAPTER 3. CLUSTER RESTRICTED MAXIMUM CLIQUE PROBLEM (CRCP) 27
1
9
2
10
3
11
4 4
5 6
Figure 3.1: Example of CRCP
x0 5 9 20 30
1
3
8
f1(x)
Figure 3.2: f1(x)
is used to represent the clustered weight of the clique Q, unless stated otherwise. The words
partition and cluster are used interchangeably.
For illustration, consider the graph given in the Figure 3.1. Let R1 = {1, 2, 3} and
R2 = {4, 5} be the two clusters of nodes. Let the weights of each cluster be w1 = 5 and
w2 = 10. Figure 3.1 shows the weights of each node. Figure 3.2 and Figure 3.3 show f1(x)
and f2(x) which will be used to calculate the weight of a clique. The graph contains 3
non-trivial cliques, which are {1, 2, 3}, {1, 4, 5} and {1, 3, 4}. Let Q1 be {1, 2, 3}, Q2 be
{1, 4, 5} and Q3 be {1, 3, 4}. According to the definition of clustered weight, wc(Q2) =
and wc(Q3) = w1f1(a1 + a3) + w2f2(a4) = 25. It can be seen that the CRC in the given
graph is Q2 whereas the classical maximum weight clique is Q1.
The integer programming formulation of CRCP is as follows:
CHAPTER 3. CLUSTER RESTRICTED MAXIMUM CLIQUE PROBLEM (CRCP) 28
x0 6 10
1
10
f2(x)
Figure 3.3: f2(x)
Maximizem∑i=1
wiyifi
∑j∈Ri
ajxj
Subject to xi + xj ≤ 1 ∀ (i, j) /∈ E
yi ≤∑j∈Ri
xj ∀Ri ∈ R
xi ∈ {0, 1} ∀ i ∈ V
yi ∈ {0, 1} ∀ Ri ∈ R
In the above formulation, xj is a binary variable where xj = 1 if node j belongs to the
final solution and xj = 0 otherwise. The binary variable yi takes the value 1 if at least one
node from the cluster i belongs to the final solution and 0 otherwise. yi makes sure that
the contribution of the partition Ri be equal to 0 if Ri ∩Q = ∅, where Q = {j : xj = 1, j =
1, 2, . . . , n}. Thus wc(Q) = 0 if Q = ∅. If fi(0) = 0 ∀ i ∈ {1, 2, . . . ,m}, we can safely
ignore yi in the objective function and remove it from the program. We call the constraints
xi + xj ≤ 1 ∀ (i, j) /∈ E clique constraints and the constraints yi ≤∑
j∈Rixj ∀Ri ∈ R as
cluster restriction constraints.
CHAPTER 3. CLUSTER RESTRICTED MAXIMUM CLIQUE PROBLEM (CRCP) 29
Lemma 3.1.1. If fi(0) = 0 for all clusters, then the variable yi can be ignored in the
formulation.
Proof. If no node from a cluster i is part of the CRC Q, then xj = 0 ∀ j ∈ Ri and thus
yi = 0. This makes the term∑
j∈Riajxj = 0. Thus, if fi(0) = 0 then fi
(∑j∈Ri
ajxj
)= 0
even without multiplying it with yi. Thus, in this case yi and the constraint yi ≤∑
j∈Rixj
can be ignored in the formulation.
The functions fi(x) could be of any nature. If fi(x) ≤ 0 is decreasing for each i ∈{1, 2, . . . ,m}, then the resultant CRC is a null set as yi = 0 for each i.
Lemma 3.1.2. If fi(x) = αix ∀ i ∈ {1, 2, . . . ,m}, then CRCP is equivalent to MWCP.
Proof. If fi(x) = αix ∀ i ∈ {1, 2, . . . ,m}, then according to Lemma 3.1.1 wc(Q) =∑mi=1wifi
(∑v∈Q∩Ri
av
). Then,
wc(Q) =m∑i=1
yiwiαi(∑
v∈Q∩Ri
av) (3.2)
But, if Q∩Ri = ∅ then yi = 0 and yi = 1 otherwise. Due to this condition, the presence
of yi in the objective function is not significant. Thus,
wc(Q) =
m∑i=1
(∑
v∈Q∩Ri
avwiαi) (3.3)
⇒ wc(Q) =∑v∈Q
a′v (3.4)
where a′v = av ∗ wi ∗ αi and v ∈ Ri. This is a classical maximum weight clique problem
where the weight of each node v is equal to a′v. Thus, if fi(x) = αix ∀ i ∈ {1, 2, . . . ,m},CRCP is equivalent to MWCP.
Lemma 3.1.3. If fi(x) is an increasing function for each Ri ∈ R, then CRC is a maximal
clique.
Proof. Suppose for contradiction that Q is the optimal CRC which is not maximal. This
means Q ⊂ Q′ where Q′ is a maximal clique. Thus there exists at least one node l such
that l ∈ Q′ but l /∈ Q and let l belong to the cluster Rk for some k. Thus∑
j∈Rk∩Q′ aj >∑j∈Rk∩Q. Since fk is an increasing function, fk
(∑j∈Rk∩Q′ aj
)> fk
(∑j∈Rk∩Q
). This
clearly shows that Q is not the optimal CRC. Hence the result follows.
CHAPTER 3. CLUSTER RESTRICTED MAXIMUM CLIQUE PROBLEM (CRCP) 30
When fi(x) is a linear function of the form y = ax+ b for every cluster i ∈ {1, 2, . . . ,m},we call the problem of finding the CRC as the Linear Cluster Restricted Maximum Weight
Clique Problem (LCRCP). When fi(x) is a piece-wise linear function for each cluster, we
call the problem a Piecewise Linear Cluster Restricted Maximum Weight Clique Problem
(PCRCP).
Theorem 3.1.1. CRCP is NP-hard.
Proof. According to Lemma 3.1.2, CRCP is equivalent to MWCP if each fi(x) = αi(x) for
some αi > 0. This shows that MWCP is a subclass of CRCP. Since MWCP is a well known
NP-hard problem [14], CRCP is also NP-hard.
There is a natural exponential-sized formulation of CRCP as MWCP. The details of this
reduction are explained here. Let Q be the set of all cliques in the graph G and let Qi be
the set of all cliques in the cluster Ri. Let us construct the following graph G′ with vertex
set V ′ and edge set E′:
For each clique qji ∈ Qi, let there be a node vji in the graph. For two cliques qji and qiik
in Qi, (vji , vki ) /∈ E′. For two cliques qki ∈ Qi and qlj ∈ Qj , let (vki , v
lj) ∈ E′. Let the weight
of a node vji be aji = fi
(∑v∈Qi
av
). Any clique q′ in the above described graph represents
another clique q in G. MWC in G′ is CRC in G.
This formulation of CRCP as MWCP leads to the following formulation for CRCP:
Maximizem∑i=1
∑qji∈Qi
ajixji
Subject to xji + xkl ≤ 1 ∀ qji ∪ qkl ∈ Q
xji ∈ {0, 1} ∀ qji ∈ Qi, i ∈ {1, 2, . . . ,m}
This formulation is to find he maximum weight clique in the graph G′ and the binary
variable xji = 1 if the node vji belongs to MWC of G′ and xji = 0 otherwise.
Let the cluster Ri have ni nodes. If the nodes of Ri form a complete sub graph, then
the number of cliques in Qi =∑n1
k=1
(nik
). In that case |Qi| = 2ni − 1. Thus, the number
of cliques in any cluster Ri is at most 2ni − 1. thus the number of nodes in G′ could be as
large as∑m
i=1 2ni − 1 which could be much greater than n.
CHAPTER 3. CLUSTER RESTRICTED MAXIMUM CLIQUE PROBLEM (CRCP) 31
3.2 Some Theoretical Results
In 1974, Nemhauser and Trotter showed that the extreme points of the feasible region of the
linear relaxation of the maximum clique problem are half-integral [21]. That is, if x is an
extreme point of the feasible region of the linear relaxation of the maximum clique problem,
then xi = 1 or 0 or 12 , where x = {x1, x2, . . . , xn}. A similar result can also be proven for
LCRCP. The following half integrality theorem explains the details.
In Section 5.1.1, LCRCP is shown to be equivalent to the following integer programming
formulation:
Maximizen∑j=1
a′jxj +k∑i=1
w′iyi
subject to xi + xj ≤ 1, ∀ (i, j) ∈ E
yi ≤∑j∈Ci
xi, ∀ Ri ∈ R
xj ∈ {0, 1} ∀ j ∈ V
yi ∈ {0, 1} ∀ Ri ∈ R
where a′j = wiαiaj , j ∈ Ri and w′i = wiβi. We consider this formulation in the proof of the
following half integrality theorem.
Theorem 3.2.1. (Half integrality theorem) Every extreme point of the polytope of linear
relaxation of the LCRCP with linear functions is half integral.
Proof. Let z = (x, y) be a feasible solution to the linear relaxation of LCRCP. x = (x1, x2, . . . , xn)
and y = (y1, y2, . . . , yk). Let us define the following sets:
Ux−1 = {j : 0 < xj <12}
Ux+1 = {j : 12 < xj < 1}
Uy−1 = {j : 0 < yj <12}
Uy+1 = {j : 12 < yj < 1}
Suppose z is not half integral. Then one of the three cases can happen:
1. Both x and y are not half integral.
CHAPTER 3. CLUSTER RESTRICTED MAXIMUM CLIQUE PROBLEM (CRCP) 32
2. Only x is not half integral.
3. Only y is not half integral.
Case 1: Both x and y are not half integral. Define 2 new points p = (px, py) and
q = (qx, qy) as follows:
pxj =
xj + kε if j ∈ Uxkxj otherwise
qxj =
xj − kε if j ∈ Uxkxj otherwise
Define a constant kj for each vertex j as follows:
kj =
k if j ∈ Uxk0 otherwise
pyj = yj +∑i∈Cj
kiε
qyj = yj −∑i∈Cj
kiε
For a small value of ε, p and q will be feasible solutions for the LPR. If any of Ux−1 or
Uy−1 and Ux+1 or Uy+1 are non-empty, then p and q will be distinct from z. It can be seen that
x = p+q2 . Thus, z can be expressed as a convex combination of p and q. Such a z cannot be
an extreme point of the polytope.
Case 2: Only x is not half integral. Just as we analyzed for the first case, such a z can
be expressed as a convex combination of two feasible points p and q. Thus such a z cannot
be an extreme point.
Case 3: Only y is not half integral: One of the constraints of the problem says yi ≤∑j∈Ci
xj for each partition i. Since the objective is to maximize∑n
j=1 a′jxj +
∑ki=1w
′iyi, yi
takes the maximum feasible value. Thus, yi =∑
j∈Cixj for each optimal solution. Thus, if
x is not half integral, y can never be half integral in an optimal solution. If yi <∑
j∈Cixj
for some solution z, then we can define two new points p and q as follows:
CHAPTER 3. CLUSTER RESTRICTED MAXIMUM CLIQUE PROBLEM (CRCP) 33
a
b
c
d
e
f
g
h
i
j
k
l
m
n
Figure 3.4: Counter example for the property of maximum independent set problem
pyj = yj + ε, qyj = yj − ε for each partition j, px = x and qx = x. For small ε, p and q are
feasible solutions to LPR and z = p+q2 . Thus, such a z cannot be an extreme point.
In the above analysis we proved that if z is not half integral, then it cannot be an extreme
point. This implies that an extreme point of the LPR has to be half integral, otherwise it
can be expressed as a convex combination of two feasible points. This proves that each
extreme point of the LPR is half integral.
Such half integrality property is not valid for PCRCP. We have found instances which
violate the property of half integrality when we solve the linear relaxation of PCRCP on
them. The details about these instances are discussed in Chapter 6.
Just as the maximum clique problem is equivalent to the maximum independent set prob-
lem, CRCP is equivalent to Cluster Restricted Maximum Weight Independent Set Problem
(CRIP). A feasible solution for CRCP on the graph G = (V,E) is a clique where as a feasible
solution for CRIP on the graph G′ = (V,E′) is an independent set. Solving CRCP on G is
equivalent to solving CRIP on G′.
A simple property of the maximum weight independent set is as follows: Suppose P is
an independent set in G(V,E) and I is an independent set in the graph induced by V \ P .
Let P (I) be the set of neighbors of I in P . For a vertex set U , let the total weight of U
be given by w(U). It can be seen easily that P \ P (I) ∪ I is also an independent set. If
w(P (I)) < w(I), then w((P \ P (I)) ∪ I) > w(P ). Thus, P \ P (I) ∪ I is an independent set
of larger weight. Such a set I is said to be augmenting P (See [21]).
The same property is not applicable to CRIP. Consider the graph shown in Figure 3.4
CHAPTER 3. CLUSTER RESTRICTED MAXIMUM CLIQUE PROBLEM (CRCP) 34
There are four partitions in the above graph, namely C1, C2, C3 and C4. C1 = {a, b, c, d, k},C2 = {e, f, g, h, n}, C3 = {i, j} and C4 = {l,m}. Weight of each node in this graph is 1. Let
w(Ci) be the weight of the partition Ci. w(C1) = 5, w(C2) = 6, w(C3) = 3 and w(C4) = 4.
Let P = {i, j, k, l, n}, I = {a, b, c, d, e, f} and P (I) = {i, j, l}. It can be seen that wc(I) = 16,
for this problem, even though wc(P (I)) < wc(I), wc((P \ P (I)) ∪ I) < wc(P ).
The maximum weight independent set problem has a property that P is not an maximum
independent set if and only if some I ⊂ P exists such that I is augmenting P . This property
is not valid for CRIP. In the above discussed example, P is optimum cluster restricted
maximum weight independent set but it still has an augmenting I.
Chapter 4
Exact Algorithm for CRCP
This chapter presents a branch and bound algorithm to solve the cluster restricted maximum
weight clique problem (CRCP). We will first describe the branching strategy and then
describe a few pruning strategies using upper bounds on the weight of CRC. We assume
the weights of nodes and clusters are non-negative constants and the function fi(x) for each
cluster Ri is non-decreasing and fi(0) = 0.
4.1 Branching Strategy
We extend the branching strategy introduced in [23] for MCP. For any node v ∈ V , let R(v)
be the cluster it belongs to. Thus, if v ∈ Rl for some l ∈ {1, 2, . . . ,m} then R(v) = Rl.
Let (v1, v2, . . . , vn) be an ordering of nodes of G such that for i=1, 2, . . . , n − 1, either
R(vi) = R(vi+1) or R(vi) = Rj and R(vi+1) = Rj+1 for some j ∈ {1, 2, . . . , m− 1}. In this
kind of ordering, nodes of Ri appear before the nodes of Rj if i < j. For a cluster Rj for
j = 1, 2, . . . ,m, let the index of the first node in Rj be R1j . Thus, in this ordering, R1
i < R1j
if i < j.
Let Si = {vi, vi+1, . . . , vn} for i = 1, 2, . . . , n. The idea in the algorithm is to iteratively
finds the CRC in G(Sn), G(Sn−1), . . . , G(S1). Let Qt be the CRC in G(St) for some
t ∈ {1, 2, . . . , n}. Q1 is the CRC of the graph as S1 = V . Suppose that we know Qi+1 for
some i ∈ {1, 2, . . . , n−1}. The algorithm will now find all the cliques in G(Si) which include
additional node vi. If the heaviest clique Q of these cliques according to the defined function
has a weight greater than that of Qi+1, then we let Qi be clique Q. Otherwise, Qi=Qi+1.
To find all the cliques in G(Si) which include vi, we consider the following search tree. Let
35
CHAPTER 4. EXACT ALGORITHM FOR CRCP 36
vi be the root of the tree. For a tree node v, let C(v) be the set of children and p(v) be the
parent. Let N(v) = {u ∈ V : (v, u) ∈ E} be the set of neighbours of v ∈ V , i.e. adjacent
nodes to v in G. For the root node vi, the children are C(vi) = Si ∩N(vi). For any other
tree node u, the children are C(u) = C(p(u)) ∩N(u), i.e. all nodes that are adjacent to u
and to p(u). In this tree, a path from the root vi to any other node is a clique in G(Si).
4.2 Pruning Strategies
Suppose we know Qi+1. In order to find Qi, we explore the tree with vi as the root which is
described above. While branching in this tree, consider a path Q from vi to a node u such
that C(u) 6= ∅. As already discussed, Q is a clique and by adding any node from C(u) we
expand Q. We now describe some upper bounds on the weight of CRC in G(Q ∪ C(u)).
For the remaining part of this section, we use vi, u and Q as defined above and let
vi ∈ Rl for some l ∈ {1, 2, . . . ,m}. Let Zt = (Q ∪ C(u)) ∩Rt, for t = l, l + 1, . . . , m. Let
Mt be the CRC in the graph induced by Zt.
Lemma 4.2.1. If Ut is an upper bound on the weight of the maximum weight clique in the
graph induced by Zt, t = l, l + 1, . . . ,m, then f(Ut) is an upper bound on the weight of Mt.
Proof. Let Wt be the maximum weight clique in the graph induced by Zt. Thus, w(Wt) ≥w(Ct) for any other clique Ct in Zt. We know that f(x) is a non-decreasing function. Thus,
f(w(Wt)) ≥ f(w(Ct)). This shows that f(w(Wt)) is an upper bound for the weight of M(Zt)
if Ct = M(Zt).
For any V ′ ⊂ V , let M(V ′) be the CRC in the graph induced by V ′. We now propose
several upper bounds on the weight of M(Q ∪ C(u)).
1. Consider the set Q∪C(u). If all the nodes of this set form a clique, that is the M(Q∪C(u)). Thus, w(Q∪C(u)) is an upper bound for the weight of M(G(Q∪C(u))). This
according to Lemma 4.2.1, wc(Q ∪C(u)) is an upper bound for wc(M(G(Q ∪C(u))))
2. The set Q ∪ C(u) =⋃mt=l Zt. We know that
⋃mt=l+1 Zt ⊆ SR1
l+1and M(G(SR1
l+1))
is QR1l+1 . Thus, w(G(Zl)) + w(QR
1l+1) is an upper bound for the weight of M(Q ∪
C(u)). Thus according to Lemma 4.2.1, wc(G(Zl)) +wc(QR1
l+1) is an upper bound for
wc(M(Q ∪ C(u)))
CHAPTER 4. EXACT ALGORITHM FOR CRCP 37
3. Coloring a graph is the assignment of colors to the nodes of the graph such that
adjacent nodes are not assigned the same color. The minimum number of colors
required to color the graph is called the chromatic number of the graph, χ(G). In
a weighted graph, let weight(v) be the weight of the node v. Weighted coloring is
the assignment of weight(v) number of colors to each node v in the graph such that
adjacent nodes are not assigned any color in common [2]. The minimum number of
colors required for weighted coloring of a graph G is called the weighted chromatic
number, χw(G).
In an unweighted graph, the number of colors required to color a clique is equal to the
number of nodes in it. Thus, the chromatic number of the graph is at least equal to
the cardinality of the maximum clique in it. Similarly in a weighted graph G, χw(G)
is at least equal to the weight of the maximum weight clique. We use this property to
obtain an upper bound on the weight of CRC in a subgraph induced by a given set of
nodes.
Consider the set Zl. Using any heuristic for weighted coloring of a graph, we can find
χw(G(Zl)) where weight of each node v ∈ Zl is Av. We know that χw(G(Zl)) is an
upper bound on the weight of the maximum weight clique in G(Zl). Thus, according
to Lemma 4.2.1, we know that f(χw(G(Zl))) is an upper bound on M(Zl). Thus
according to Lemma 4.2.1, f(χw(G(Zl))) +w(QR1l+1) is an upper bound of wc(G(Q ∪
C(u))).
4. By applying the weighted coloring heuristic to the graph induced by each Zt, we can
find χw(G(Zt)), for t = l, l+ 1, . . . , m. According to the Lemma 4.2.1, f(χw(G(Zt)))
is an upper bound on M(Zt), for each t from l to m.∑m
t=l f(χw(G(Zt))) is an upper
bound on the weight of CRC in G(Q ∪ C(u)).
5. Consider an undirected graph G′ and an ordering g of vertices of this graph. We will
construct a directed graph ~G′ with vertex set V (G′). We denote a directed edge from
u to v in ~G′ as (u, v). For every edge {u, v} in E(G′), let (u, v) be an edge in ~G′ if u
is placed before v in the given ordering. We call ~G′ directed equivalent of G′. Because
of the ordering g, ~G′ contains no cycles, thus it is a Directed Acyclic Graph (DAG).
Out of any clique in G′, a directed path can be found in ~G′ which contains all the
vertices of the clique in the sequence as they appear in the ordering. Thus, the length
CHAPTER 4. EXACT ALGORITHM FOR CRCP 38
of the longest path in ~G′ is at least equal to the cardinality of the maximum clique
in G′. Similarly in a weighted graph G′ and its directed equivalent ~G′, weight of the
heaviest path in ~G′ is at least equal to the weight of the maximum weight clique in
G′. It is also known that the longest path problem in both weighted and unweighted
DAG can be solved in linear time using dynamic programming approach. We make
use of this property to obtain an upper bound for the CRCP. Let the weight of the
heaviest path in a weighted DAG ~G′ be µ( ~G′) where weight of a node v is Av.
Since µ(~G(Zl)) is an upper bound on the weight of the maximum weight clique in
G(Zl), according to lemma 4.2.1, f(µ(~G(Zl))) is an upper bound on wc(M(Zl)). Thus
according to Lemma 4.2.1, wc(µ(~G(Zl))) +wc(QR1
l+1) is an upper bound on wc(G(Q∪C(u))).
6. By finding the longest path in the weighted graph induced by each set of nodes Zt,
t = l, l + 1, . . . ,m, we get an upper bound on the aximum weight clique in each of
the subgraphs. According to Lemma 4.2.1, f(µ(~G(Zt))) is an upper bound on the
weight of M(Zt), t = l, l + 1, . . . ,m. Thus,∑m
t=l wc(µ(~G(Zt))) is an upper bound on
wc(G(Q ∪ C(u))).
Algorithms 1 and 2 show the pseudo code for the branch and bound algorithm explained
in this chapter. The function upperbound(V ′)), for some V ′ ⊂ V finds the upper bound on
wc(G(V ′)) using a pruning strategy.
Algorithm 1: Main routine of the Branch and Bound Algorithm for the CRCP.
Require: Set of nodes V , set of edges E, weight Av for each vertex v ∈ V , the partition{R1, R2, . . . , Rm} of V and the convex monotonic functions f1(x), f2(x), . . . , fm(x)which are used to calculate the weight of a clique.Arrange the vertices in an ordering such that if vi ∈ Rk, then vi+1 belongs either to Rkor Rk+1, for all i ∈ {1, 2, . . . , n− 1} and k ∈ {1, 2, . . . ,m− 1}.best = ∅for i = n→ 1 doQi = CRC(Si ∩N(vi), best,Q
i)if w(Qi) > w(best) thenbest← Qi
end ifend forreturn best
CHAPTER 4. EXACT ALGORITHM FOR CRCP 39
Algorithm 2: CRC(S,Q, best)
if |S| = 0 thenif w(Q) > w(best) thenbest← Q
end ifelse
if upperbound(Q ∪ S) > w(best) thenwhile S 6= ∅ dou← vj where j := min{i|vi ∈ S}S ← S \ uCRC(S ∩N(u), best,Q ∪ {u})
end whileelse
return bestend if
end ifreturn Q
Chapter 5
Heuristics for CRCP
In this chapter we give specific formulations for LCRCP and PCRCP and propose a tabu
search algorithm for LCRCP. Then we propose a model based metaheuristic for CRCP and
show how to use it to solve LCRCP and PCRCP.
5.1 Formulations of LCRCP
5.1.1 Linear Formulation
As defined in the Chapter 1, CRCP is called LCRCP if fi(x) is linear for each Ri ∈ R. Let
fi(x) = αix+ βi ∀ Ri ∈ R. The objective function in this case is as follows:
F (x) =
m∑i=1
wiyifi(∑j∈Ri
ajxj)
F (x) =m∑i=1
wiyi(αi(∑j∈Ri
ajxj) + βi)
F (x) =m∑i=1
wiyiαi∑j∈Ri
ajxj +m∑i=1
wiβiyi
F (x) =
m∑i=1
∑j∈Ri
wiyiαiajxj +
m∑i=1
wiβiyi
Due to the constraint yi ≤∑
j∈Rixj , ∀ Ri ∈ R, it is implied that yi = 0 if xj =
0 ∀ j ∈ Ri. If xj = 1 for any j ∈ Ri, yi takes the value 1. Thus, yi can be removed from∑mi=1
∑j∈Ri
wiyiαiajxj part of the above summation.
40
CHAPTER 5. HEURISTICS FOR CRCP 41
F (x) =m∑i=1
∑j∈Ri
wiαiajxj +m∑i=1
wiβiyi
F (x) =n∑j=1
a′jxj +m∑i=1
w′iyi
where a′j = wiαiaj , j ∈ Ri and w′i = wiβi. This can be understood as the objective function
having two components, one component being contributed by the clique where weight of
each node j is a′j and the other component being contributed by the cluster i of weight w′i.
The final 0− 1 program for LCRCP is as follows:
Maximizen∑j=1
a′jxj +k∑i=1
w′iyi
subject to xi + xj ≤ 1, ∀ (i, j) ∈ E
yi ≤∑j∈Ci
xi, ∀ Ri ∈ R
xj ∈ {0, 1} ∀ j ∈ V
yi ∈ {0, 1} ∀ Ri ∈ R
5.1.2 Two Non-Linear Formulations
The classical maximum weight clique problem is formulated as a quadratic 0−1 programming
problem in [24]. Adopting a similar strategy, LCRCP can also be formulated as a 0 − 1
programming problem, although it may be a polynomial of higher degree. The formulation
is as follows:
Maximizen∑j=1
a′jxj −∑
(i,j)/∈E
(a′i + a′j)xixj +m∑i=1
w′iyi −m∑i=1
w′iyi∏
(i,j):j∈Ri
(1− xj)
Subject to xj ∈ {0, 1} ∀ j ∈ V
yi ∈ {0, 1} ∀ Ri ∈ R
CHAPTER 5. HEURISTICS FOR CRCP 42
In the above formulation, for any (i, j) /∈ E if xi = 1 and xj = 1, then a penalty of
a′i + a′j is included in the objective function. If xj = 0, ∀j ∈ Ri, then yi must be equal to
zero according to the definition of the problem. Thus, if xj = 0, ∀j ∈ Ri and yi = 1, then a
penalty of w′i is included in the objective function by the term w′iyi∏
(i,j):j∈Ci(1−xj). This
term in the objective function makes it into a higher degree polynomial. Under the condition
that each cluster has exactly one node, the objective function of the above formulation is
quadratic. In that case, the problem becomes equivalent to the maximum weight clique
problem.
Consider the following 0-1 programming problem:
Maximizen∑j=1
a′jxj −∑
(i,j)∈E
(a′i + a′j)xixj +m∑i=1
w′iyimi
Subject to mi ≤ xj ∀ j ∈ Ri, Ri ∈ R
mi ∈ {0, 1}, ∀ Ri ∈ R
xj ∈ {0, 1} ∀ j ∈ V
yi ∈ {0, 1} ∀ i ∈ K
In the above formulation, mi is a binary variable for associated with a cluster Ri ∈ Rand takes the value 1 if at least one node belongs to the final clique from Ri. Since the
problem is a maximization problem and due to the presence of the constraints mi ≤ xj ∀ j ∈Ri, Ri ∈ R, mi can be assumed to take the value of max(xj : j ∈ Ri). This formulation
also includes penalty for violating the clique constraints of the problem. Instead of having
a penalty for the cluster constraints, we include a term mi for each cluster which is equal to
the maximum of xj for each j ∈ Ri. This way, instead of having a higher degree polynomial
as the objective function, we have a function which is not a polynomial but involves the
term mi = max(xj : j ∈ Ci) ∀Ri ∈ R.
Both of these 0-1 formulations have the disadvantage that they cannot be solved by
commercial IP solvers directly due to the non-linearity involved. Thus, it would be easier
to solve the original formulation of the problem (see Section 3.1) using a commercial IP
solver. On the other hand, these formualations give a good direction for developing search
heuristics for LCRCP. For a given (x, y) = {x1, x2, . . . , xn, y1, y2, . . . , ym} calculating the
CHAPTER 5. HEURISTICS FOR CRCP 43
objective function value is easy. For a given neighbourhood, the penalties defined in the
objective function will guide the search towards a feasible solution but feasibility may not
be guaranteed.
Another formulation for LCRCP which is based on penalty for the clique constraints is
discussed in Section 5.2. We describe a tabu search algorithm for LCRCP based on this
formulation in Section 5.2.
5.2 Tabu Search Heuristic for the LCRCP
Tabu search is an efficient metaheuristic proposed by Glover and Laguna [15] in 1997. In this
section, we describe a tabu search algorithm for LCRCP. Consider the following formulation
for LCRCP:
Maximizen∑j=1
a′jxj −∑
(i,j)∈E
(a′i + a′j)xixj +m∑i=1
w′iyi
subject to yi ≤∑j∈Ci
xj ∀ Ci ∈ C
xj ∈ {0, 1} ∀ j ∈ V
yi ∈ {0, 1} ∀ Ri ∈ R
We can observe that in the absence of the cluster restriction constraint, this problem
is a 0-1 quadratic program. Any neighborhood search heuristic can be adopted, with some
minor modifications, to solve LCRCP. At each stage, we need to keep track of the number
of nodes in the clique from each cluster. We consider a basic tabu search algorithm for 0-1
quadratic programming problem and modify it accordingly for LCRCP. The details of the
heuristic are described in the following paragraphs.
For this algorithm, we use a 1-flip neighborhood. For a solution x ∈ {0, 1}n, the 1-flip
neighborhood N1(x) is defined as N1(x) = {x′ ∈ {0, 1}n \ x :∑n
i=1 |xi − x′i| = 1}. For a
solution x ∈ {0, 1}n, let f(x) be the value of the objective function. Suppose x and x′ be
the solutions found in two consecutive iterations of the algorithm which differ in the ith
position. Thus xi 6= x′i for some i ∈ {1, 2, . . . , n} and xj = x′j ∀ j 6= i. In the tabu list we
register this flip position i and the flip in the value of xi would be prohibited for next few
CHAPTER 5. HEURISTICS FOR CRCP 44
number of iterations of the heuristic. This number of iterations in which the flip in the ith is
prohibited is called tabu tenure. We move from x to x′ in two consecutive iterations of the
algorithm if f(x′) ≥ f(x) where x ∈ N1(x), provided the move to x′ from x is not tabu. At
every stage of the algorithm, we keep track of the best solution found, xbest. At any point
if the algorithm finds a solution xa which is tabu but f(xa) > f(xbest), then we move to xa
even though this move is tabu. This is the aspiration criteria we use in this heuristic.
For a given solution x and the corresponding y, the objective function value is∑n
j=1 a′jxj−∑
(i,j)∈E(a′i + a′j)xixj +∑m
i=1w′iyi. This evaluation takes O(m′ + n) time, where m′ is the
number of edges in the graph. Instead of spending O(m′ + n) time at each stage for cal-
culating the objective value, we propose a way to evaluate the objective function value in
a constant time. For any clique Q, let λQRibe the number of nodes common both to the
cluster Ri and Q, i ∈ {1, 2, . . . ,m}. Thus, λQRi= |Ri ∩ Q|. It can be seen that yi = 0 if
λQRi= 0 and yi = 1 if λQRi
> 0. This way we can compute yi by keeping track of the number
nodes common to the cluster i and the current clique. For a solution x, let Q(x) be the
clique defined by x. Thus Q(x) = {i|xi = 1}. For a node i, let R(i) be cluster the node i
belongs to.
In every iteration, we find a flip position i such that i /∈ tabulist and a solution x′ such
that
x′j =
xj if j 6= i
1− xj otherwise
and f(x′) ≥ f(x) ∀x ∈ N1(x) where x is the current solution. If xi = 1, then x′i = 0.
It means the new clique found does not have the the node i in it and λQ(x)R(i) = λ
Q(x′)R(i) + 1.
If λQ(x′
R(i) = 0 and λQ(x)R(i) = 1, then f(x′ = f(x) − a′i − w′R(i). If xi = 0, then x′ = 1 and
λQ(x)R(i) = λ
Q(x′)R(i) − 1. Thus, if λ
Q(x)R(i) = 0 and λ
Q(x′)R(i) = 1, then f(x′) = f(x) + a′i + w′R(i). And
in both the cases, ifλQ(x′)R(i) = λ
Q(x)R(i) , then f(x′) = f(x). If a cluster j does not have any node
in common with the clique, then λj = 0. With this strategy, we can evaluate the objective
function value in each iteration in constant amount of time instead of re-evaluating its value
from scratch.
The Algorithms 3, 4 and 5 give the pseudocode for the above described tabu search
heuristic for LCRCP.
The termination criteria which we use in our implementation is a time limit. Thus the
CHAPTER 5. HEURISTICS FOR CRCP 45
Algorithm 3: Tabu Search Heuristic for LCRCP
Require: Set of node weights a′, set of cluster weights w′, Set of the graph edges E.λi = 0 for Ri ∈ Rxi = 0 for i ∈ {1, 2, . . . , n}f(x) = 0xbest = 0f(xbest) = 0CurrentObj = 0while Time limit is not reached doi← BestF lipPosition(x, λ, xbest)f(x)← ObjEvaluation(x, λ, CurrentObj, i)xi ← 1− xiif xi = 1 thenλRi ← λRi + 1
elseλRi ← λRi − 1
end ifend whileif f(x) > f(xbest) thenxbest ← xf(xbest)← f(x)
end ifreturn xbest
algorithm will run for the specified amount of time and returns the best solution found till
then. The initial solution supplied to the algorithm is xi = 0 ∀i ∈ {1, 2, . . . , n}. The value
of TabuTenure we use in our experiments is 7.
5.3 Matheuristic for CRCP
In this section we describe a model-based metaheuristic for CRCP- a matheuristic. This
heuristic uses commercial mixed integer programming solvers as a sub-routine, thus ex-
ploiting the power of commercial MIP solvers like CPLEX. The matheuristic is designed
to have several iterations, where in each iteration we solve the problem on a constrained
search space. In each iteration, perform an operation similar to neighborhood search by
adding some additional constraints to the integer programming formulation and solve it us-
ing CPLEX. These kind of heuristics are new where the power of commercial MIP solvers is
CHAPTER 5. HEURISTICS FOR CRCP 46
Algorithm 4: BestFlipPosition(x, λ, xbest)
BestF lip = ∅BestInNbd = 0for i = 1 to n do
if ObjEvaluation(x, λ, f(x), i) > BestInNbd and i /∈ TabuList thenBestF lip← iBestInNbd← ObjEvaluation(x, λ, f(x), i)
elseif ObjEvaluation(x, λ, f(x), i) > f(xbest) and i ∈ TabuList thenBestF lip← iBestInNbd← ObjEvaluation(x, λ, f(x), i)xbest ← x flipped at ith positionf(xbest)← BestInNbd
end ifend if
end forif |TabuList| > TabuTenure and BestF lip ∈ TabuList then
Delete first element of the TabuListAdd BestF lip to the end of TabuList
end if
exploited. With commercial MIP solvers getting more powerful to handle difficult problems,
using such heuristics will improve their performance considerably.
Angelelli, Mansini and Speranza [1] introduced a new framework of heuristics called
kernel search. They begin their solution with a restricted set of promising securities which
forms the initial kernel. The initial kernel is found by solving the linear relaxation of the
original problem. They iteratively extend this kernel to finally explore the complete set
of securities. We adopt this idea of starting with a smaller set of promising securities and
iteratively extend it and in each iteration we use CPLEX to find improvements in the solution
by adding some constraints to the problem. Similar heuristic named variable intensity
local search, where commercial MIP solvers are used to perform neighborhood search, was
proposed by Mitrovic-Minic and Punnen [20]. They performed their experimentation on
the generalized assignment problem and the multi resource generalized assignment problem.
Similar heuristics where general purpose MIP solvers are used to explore the neighborhoods
for neighborhood search can be seen in [19] and [18].
CHAPTER 5. HEURISTICS FOR CRCP 47
Algorithm 5: ObjEvaluation(x, λ,Objective, i)
λ′ = λif X[i] = 1 thenλ′(Ri) = λ′Ri
− 1elseλ′(Ri) = λ′Ri
+ 1end ifs1 = a′[i]s2 =
∑(i,j)/∈E(a′[i] + a′[j])x[j]
if λ(Ri) = 0 and λ′Ri= 1 then
s3 = w′(Ri)else
if λ(Ri) = 1 and λ′Ri= 0 then
s3 = −w′[Ri]end if
end ifif x[i] = 0 thenObj = Obj + s1− s2 + s3
elseObj = Obj − s1 + s2 + s3
end ifreturn Obj
5.3.1 Algorithm Outline
Our matheuristic is based on iteratively performing neighborhood search using the commer-
cial general purpose MIP solver CPLEX. For a given subgraph G′(V ′, E′) where V ′ ⊂ V
and E′ ⊂ E, we find a good CRC in G′ using CPLEX. In each iteration, the subgraph
G′ considered for neighborhood search by CPLEX is defined as the search space. It is a
neighborhood of a solution in G where all xj : j ∈ G \G′ are fixed to 0 and other variables
can have values 0 or 1. Further details of the neighborhood portion that is searched are
given later in this Section. The heuristic contains the following three main components:
1. Selecting an initial search space for performing the search.
2. Selecting a strategy to improve the solution in the provided search space.
3. Selecting a strategy to expand the search space for the next iteration.
CHAPTER 5. HEURISTICS FOR CRCP 48
This matheuristic has four main iterations. In practice, we can use a different number of
main iterations in the matheuristic, where larger instances have more number of iterations
and smaller instances have lesser number of iterations. Let S = {1, 2, . . . , n} be the full
search space. For each iteration 1 ≤ j ≤ 4, consider the following notations:
• Let Sj ⊆ S be the search space for the jth iteration.
• Let xinitj be the initial solution provided for the neighborhood search in Sj .
• Let xfinalj be the final solution obtained after running neighborhood search in Sj .
• Let Q(x) be the clique defined by x where x ∈ {0, 1}k where k ≤ n is the number of
nodes in Sj . Thus, Q(x) = {i : xi = 1}
The matheuristic ensures the following conditions are met:
• The search space in the final iteration has to be the full search space, i.e. S4 = S.
With this condition we make sure that we search for the CRC in the full graph in the
final iteration.
• The initial solution S◦ is the initial solution provided to the matheuristic.
• We begin our search in S1 where S◦ ⊂ S1. Thus xinit1i = 1 if i ∈ S◦ and xinit1i = 0
otherwise .
• The clique found in the (j − 1)th iteration is used as an initial clique for searching in
Sj . Thus Q(xfinalj−1) = Q(xinitj ).
• In each iteration, the search space is expanded from the search space of the previous
iteration. Thus Sj ⊂ Sj+1 for 1 ≤ j ≤ 3.
Thus each iteration j starts with an initial solution xinitj and a search space Sj . Each
iteration has several sub-iterations. For each sub-iteration i of the jth iteration, consider
the following notation:
• Let xinitj,i be the initial solution provided.
• Let xfinalj,i be the final solution found.
CHAPTER 5. HEURISTICS FOR CRCP 49
Let f(x) be the value of the objective function at a solution x. The following conditions
are met by the matheuristic during each sub-iteration i of the jth iteration:
• The algorithm performs neighborhood search on Sj with xinitj,i as the initial solution
to find xfinalj,i where f(xfinalj,i) ≥ f(xinitj,i).
• If f(xfinalj,i) > f(xinitj,i) then the algorithm continues to the next sub-iteration.
• If f(xfinalj,i) = f(xinitj,i) then the jth iteration is terminated.
• The final solution found in the ith sub-iteration is the initial solution for the (i+ 1)th
sub-iteration i.e. xinitj,(i+1) = xfinalj,i .
• The initial solution for the 1st sub-iteration is obtained from the final solution of the
previous iteration. Thus, xinitj,1 = xfinalj−1 .
• If the total number of sub-iterations in the jth iteration is k, then xfinalj = xfinalj,k .
We now decscribe the details of the three main components of the matheuristic.
Solution strategy in each sub-iteration:
The second stage in this algorithm is to adopt a solution strategy within each sub-
iteration to find the solution xfinalj,i during the ith sub-iteration of the jth iteration. For
any solution x ∈ {0, 1}|Sj | in the jth iteration of the matheuristic, the k-flip neighborhood
N jk(x) is defined as follows: N j
k(x) = {x′ ∈ {0, 1}|Sj | :∑
i∈Sj|xi − x′i| ≤ kj} for a positive
constant kj . The constraint that defines the neighborhood N jk(x) is called the k-distance
constraint. The improvement operation performed in each sub-iteration i of the jth iteration
of the matheuristic is to find a solution xfinalj,i such that f(xfinalj,i) ≥ f(xinitj,i) where
xfinalj,i ∈ N jk(xinitj,i). Thus, this improvement operation is equivalent to performing a
search operation in N jk(xinitj,i). We use CPLEX to perform this search procedure and the
details are explained in Section 5.3.2. This value kj can be treated as a parameter for the
algorithm. We call this solution strategy the IP solver based neighborhood search.
Once xfinalj is found in the jth iteration, the next stage of the algorithm is to expand
Sj to Sj+1. If Sj is the current search space in the jth iteration, let S′j = S \ Sj be the
nodes which do not belong to the search space. Once we have found xfinalj , we will now
expand Sj to Sj+1 by adding a specific number of nodes from S′j to Sj . Let I(j) number of
nodes be added to the Sj from S′j . Since we have 4 iterations in total, |S◦+∑4
j=1 I(j) = n.
This ensures that the search space in the 4th iteration S4 = S. This number I(j) is also a
CHAPTER 5. HEURISTICS FOR CRCP 50
parameter that influences the algorithm performance. The strategy used to expand Sj to
Sj+1 is called the search space expansion strategy.
Search space expansion strategy:
We now explain the search space expansion strategy used in this matheuristic. For
any node v ∈ S′j , let µj(v) be the number of nodes adjacent to v in Sj . So µj(v) =∑(v,u)∈E,v∈S′j ,u∈Sj
1. Let Sj = {v|v ∈ S′j} be the ordered set where the elements of S′j are
ordered in the non-increasing order of µj(v). Thus if k′ < k′′ and corresponding elements of
Sj are Sj(k′) and Sj(k
′′), then µj(Sj(k′)) ≥ µj(Sj(k′′)). To add I(j) number of nodes from S′j
to Sj , we select the first I(j) elements of Sj . Thus, Sj+1 = Sj ∪{Sj(1), Sj(2), . . . , Sj(I(j))}.Selecting initial search space:
The matheuristic begins by selecting an initial search space S◦. S1, the search space for
the first iteration of the matheuristic is obtained by adding I(1) number of nodes from S1
to S◦. S◦ is selected in such a way that CRCP can be solved, efficiently if not optimally,
on S◦. Let xfinal◦ be the solution obtained by running IP based neighborhood search on
S◦ and let Q(xfinal◦) be the clique found. Q(xfinal{circ) is provided as an initial solution to
the first iteration of the matheuristic.
If the nodes in S◦ form a clique, we need not run IP based neighborhood search on S◦
as all the nodes in S◦ will be a part of CRC. In that case xfinal◦i = 1, ∀ i ∈ S◦ and all
the nodes in S◦ form Q(xfinal◦). In this matheuristic, we select S◦ by running tabu search
heuristic for LCRCP described in Algorithm 3. There may be several other approaches to
select a good S◦ and these strategies are discussed in Chapter 6.
We cannot use the idea of selecting the initial search space by solving the linear relaxation
of LCRCP, as used in [1] because we observed that most of the variables in the linear
relaxation of LCRCP take the value of 12 and almost none of them take the value of 0 or 1
(see Theorem 3.2.1). We can explore the performance of the matheuristic by selecting the
initial search space from solving the linear relaxation for PCRCP.
Though S4 = S, the search in the final iteration is restrictive due to search confined
to N j,ik (xinitj,i). We thus run CPLEX on the full graph with no k-distance constraint and
provide xfinal4 as an initial solution to it. We first run IP solver for T IPS1 time and if no
improvement in solution is observed, we stop the algorithm. Otherwise, we continue running
IP solver for another time T IPS2 . Algorithm 6 shows the pseudo code of the matheuristic.
All the values of the parameters and their influence on running the matheuristic are
shown in Chapter 6.
CHAPTER 5. HEURISTICS FOR CRCP 51
Algorithm 6: Integer Programming Solver based Heuristic
InitialX = TabuSearch()S0 = {j : xj = 1 in InitialX}SolnX = InitialXfor i = 1→ 4 doSi = sort nodes in S′i == S \ Si−1 by µ(v)Si = Si−1 ∪ Si[1 . . . I(i)]SolnX = IPBasedNeighborhoodSearch(SolnX, SearchSpace, Ti, ki)InitialX = SolnX
end forSolnX = IPSolver(SolnX)return SolnX
5.3.2 Sub-iteration of the Matheuristic: IP Based Neighborhood Search
In each sub-iteration of the model-based metaheuristic, we perform a k-swap neighborhood
search on a given search space using an IP solver. This procedure is called IP solver based
Neighborhood search. We provide the details of this procedure in this section.
Consider a given search space S. Let C be the set of clusters to which the nodes S
belong to. CRCP for this search space can be formulated as follows :
Maximize∑c∈C
wcycfc(∑j∈c
xj)
subject to xi + xj ≤ 1 (i, j) ∈ E and i, j ∈ S
yc ≤∑
j∈c,j∈Sxj
xj ∈ {0, 1} ∀ j ∈ S
yc ∈ {0, 1} ∀ c ∈ C
Let the objective function value at a solution x be f(x, S). Let xinit be the initial solution
to the neighborhood search iterations. A feasible solution x in the k-swap neighborhood of
xinit is optimal if f(x, S) ≥ f(x′, S) ∀ x′ ∈ Nk(xinit), for a given k. This optimal x can be
found by solving the following integer program:
CHAPTER 5. HEURISTICS FOR CRCP 52
Maximize∑c∈C
wcycfc(∑j∈c
xj)
subject to xi + xj ≤ 1 (i, j) ∈ E and i, j ∈ S
yc ≤∑
j∈c,j∈Sxj∑
i∈S|xi − xiniti | ≤ k
xj ∈ {0, 1} ∀ j ∈ S
yc ∈ {0, 1} ∀ c ∈ C
Let the above integer program be called NeighborhoodSearch(xinit, T ), where xinit is
the initial solution to the neighborhood search iteration and T is the maximum amount
of time . For the given amount of runtime, we may not be able to find the optimum so-
lution of NeighborhoodSearch(xinit, T ). In that case, NeighborhoodSearch(xinit) returns
the solution it finds in the time T . The pseudo code for the sub routine IPSBasedNeigh-
borhoodSearch(x,S) of the Algorithm 6 is shown in Algorithm 7.
The presence of∑
i∈S |xi−xiniti | ≤ k in the constraints of NeighborhoodSearch(xinit, T )
make it non-linear. In order to linearize this formulation, we introduce new variable and
constraints as follows. Since xi and xiniti are binary variables,
|xi − xiniti | = (xi − xiniti )2
⇒ |xi − xiniti | = (xi)2 + (xiniti )2 − 2xix
initi
⇒ |xi − xiniti | = xi + xiniti − 2xixiniti
To eliminate the quadratic term xi × xiniti , we introduce a new binary variable zi =
xi × xiniti . Thus,
|xi − xiniti | = xi + xiniti − 2zi,
where zi ≤ xi, zi ≤ xiniti and zi ≥ xi + xiniti − 1.
CHAPTER 5. HEURISTICS FOR CRCP 53
Thus, NeighborhoodSearch(xinit, T ) is equivalent to solving the following linear pro-
gramming problem:
Maximize∑c∈C
wcycfc(∑j∈c
ajxj)
subject to xi + xj ≤ 1 (i, j) ∈ E and i, j ∈ S
yc ≤∑
j∈c,j∈Sxj∑
i∈Szi ≤ k
zi ≤ xi
zi ≤ xiniti
zi ≥ xi + xiniti − 1
xj ∈ {0, 1} ∀ j ∈ S
yc ∈ {0, 1} ∀ c ∈ C
zj ∈ {0, 1} ∀ j ∈ S
Algorithm 7: IP Based Neighborhood Search(xinit, S, T, k )
In the Algorithm 6, each sub-iteration of IP Based Neighborhood Search runs for Tj time
in the jth iteration. In the final iteration, the time given for IP solver based neighborhood
search is T4 and the search space S4 = S. Since the search space for Neighborhood Search on
Full Graph shown in Algorithm 8 is the full graph itself, each run of IP Based Neighborhood
Search runs for T5 amount of time. The k used in this heuristic has the same value of k4
used in Algorithm 6. Just as in Algorithm 6, we run CPLEX after running the neighborhood
search operation because the search in IP Based Neighborhood Search is restrictive due to
the limited neighborhood.
The computational results for this heuristic are presented and compared with the matheuris-
tic described in Section 5.3 in the Chapter 6.
Chapter 6
Computational Results
This chapter provides the results of experimental study for the heuristics introduced in
Chapter 5. We performed extensive experimental analysis of the matheuristic on PCRCP
and LCRCP. In the sections to follow, we provide the results of our experimental study and
describe the effect of various parameters used in the matheuristic on LCRCP and PCRCP.
6.1 Problem Instances
We run the experiments on the DIMACS and BOSHLIB benchmark instances for the clique
problem. There are 80 problems in the DIMACS instances and 36 problems in the BOSHLIB
instances. The DIMACS and BOSHLIB instances used for the maximum weight clique
problem are called DIMACS-W and BOSHLIB-W instances. The weight aj of a node i is
equal to (j mod 200) + 1. This process of converting DIMACS and BOSHLIB instances
into DIMACS-W and BOSHLIB-W instances is described in [27] and [5]. We also assign
the same weights to the nodes as described above. The CRCP has the nodes partitioned
into clusters. We randomly divide nodes of each instance into 25 clusters. The weight of
cluster wi is i. Nodes are partitioned in clusters uniformly randomly. We call the instances
thus formed as DIMACS-C and BOSHLIB-C benchmark instances.
6.2 PCRCP
In this section, we provide the computational results of the proposed matheuristic on
PCRCP. For uniformity, we use the same piecewise linear function for all the 25 clusters
55
CHAPTER 6. COMPUTATIONAL RESULTS 56
x0 0.2 0.4 0.6 0.8 1
0.1
0.4
0.6
0.8
1
f1(x)
Figure 6.1: f(x)
in the graph. Figure 6.1 shows the function we used in our experiments. This is the same
function which is used to solve the satellite image acquisition scheduling problem in Chapter
2.
In the following parts of this section, we explain the data processing required to run the
experiments and explain the experiments which we carried out for PCRCP. We analyze the
effect of various matheuristic parameters on its performance.
6.2.1 Data Processing
The objective function for PCRCP is∑m
i=1wiyifi
(∑j∈Ri
ajxj
). Since aj is any positive
number for each node j,(∑
j∈Riajxj
)may be greater than 1 for any cluster i. But the
function f(x) shown in the Figure 6.1 takes an input 0 ≤ x ≤ 1 and provides the output
0 ≤ f(x) ≤ 1. In order to be consistent with the definition of f(x), we need to make sure
that 0 ≤∑
j∈Riajxj ≤ 1 for each cluster i. This can be achieved by redefining the weights
of the nodes. This procedure is described below.
Let Qi be the maximum weight clique in the cluster Ri. Let w(Qi) =∑
j∈Qiaj be the
weight of Qi. Since Qi is the maximum weight clique in Ri, the weight of any clique Q in
Ri is at most the weight of Qi, i.e., w(Q) ≤ w(Qi). We can define a new weight a′j for each
node j where a′j =aj
w(Qi), j ∈ Ri. By assigning a′j to be the weight of each node, we can
ensure that the weight of any clique inside a cluster is at most 1 and the function f(x) will
CHAPTER 6. COMPUTATIONAL RESULTS 57
remain valid for each cluster. We use this weight function W ′ = {a′j : j ∈ {1, 2, . . . , n}} in
our computations.
6.2.2 Parameters
There are six parameters stated in Chapter 5 that influence the performance of the
matheuristic. They are the following:
1. The initial search space, S◦, which is the search space in the first iteration of the
matheuristic.
2. The schema used to split the node set to form S1, S2, S3 and S4.
3. The search space expansion strategy used to select the nodes to be added to the search
space at the end of each iteration.
4. The time for which each sub-iteration runs.
5. The value of k used in the k-swap constraint in each sub-iteration.
6. The solution strategy used to find a solution in each sub-iteration.
There may be several values used for each of the above mentioned parameters. The
detailed analysis of the influence of each of them on the performance of the matheuristic is
described in Section 6.2.5. The values of these parameters used for the experimentation
are as follows:
1. The initial search space is obtained by running tabu search described in Section 5.2.
Thus the initial search space is itself is a clique. This nodes of the clique form S◦.
2. The schema used to form is S1, S2, S3 and S4 is 40%, 30%, 20%, 10%. After the jth
iteration, Sj is expanded to Sj+1 by adding a specific number of nodes from S′j =
S \ Sj−1. The number of nodes to be added to Sj is 40%, 30%, 20% or 10% of S′j
respectively for j = 0, 1, 2, 3. The actual nodes to be added to Sj are selected using a
search space expansion strategy described next.
3. In order to expand the search space Sj to Sj+1 we add a constant number I(j) of nodes
from S′j . This number I(j) is obtained from the schema used for the matheuristic. We
select I(j) number of nodes from S′j with the maximum number of adjacent nodes in
Sj .
CHAPTER 6. COMPUTATIONAL RESULTS 58
4. The amount of time for which the k-swap neighborhood search operation runs in each
sub-iteration i of the iteration j is at most 1 minute, 2 minutes, 3 minutes and 4
minutes respectively for j = 1, 2, 3, 4.
5. Let |Qinitj,i | be the size of the clique which is the initial solution for the ith sub-
iteration of the jth iteration. The value of k used in this sub-iteration is k = |Qinitj,i |if 1 ≤ j ≤ 3. If j ≥ 4 and n ≥ 2000, we use k = |Qinitj,i |
2 , otherwise k = |Qinitj,i |.
6. The solution strategy we use to solve the problem in each sub-iteration is the IP Based
Neighborhood Search which is described in Algorithm 5.3.2.
6.2.3 Matheuristic vs CPLEX vs CPLEX with Warm Start
To evaluate the performance of our matheuristic, we run the following three experiments on
each problem instance:
• Proposed matheuristic with the specific set of parameters described in Section 6.2.2.
• CPLEX for a specific amount of time.
• CPLEX with an initial solution provided- a warm start. The initial solution is gener-
ated by running the tabu search heuristic for LCRCP.
S◦ for the matheuristic and initial solution for CPLEX with warm start are obtained
by running tabu search for LCRCP for 2 minutes. The purpose of running this algorithm
is to find an initial clique which may not be a good solution for PCRCP but it serves the
purpose of finding an initial solution easily and quickly. To run tabu search for PCRCP is
a more involved process due to the presence of piecewise linearity in the objective function.
We thus run the tabu search for LCRCP only.
Each iteration in the matheuristic is terminated if there is no improvement observed in
teo consecutive sub-iterations. With this kind of termination criteria, predicting the running
time of our matheuristic is difficult. Thus for a fair comparison of the matheuristic with
CPLEX and CPLEX with warm start, we adopt the following strategy: Suppose Th seconds
is the running time of the matheuristic for a problem instance. CPLEX and CPLEX with
warm start are run for time Tc where Tc is the smallest multiple of 200 greater than Th.
Th and Tc for CPLEX with warm start include the 2 minutes provided for the tabu search
algorithm to find S◦ and the initial solution respectively.
CHAPTER 6. COMPUTATIONAL RESULTS 59
Tables 6.1 and 6.2 show the results of our experiments on the DIMACS instances. Table
6.3 show the results for BOSHLIB instances. The objective function values with a star
sign, (∗), indicate that this value is the optimal solution. %Dev shown in the tables give
percentage deviation of the solution found from the best solution out of the 3 experiments
done. The best solution found from the 3 experiments is indicated in bold. If all the 3
experiments give the same value then we show the instance name in bold instead of the best
found objective function value.
The following observations can be made from the data shown in Tables 6.1 and 6.2:
1. Out of the 80 DIMACS instances, optimal solution is found by all the 3 solution
approaches in 45 instances.
2. The matheuristic and CPLEX with warm start find optimal solutions whenever CPLEX
finds the oprimal solution. However CPLEX and CPLEX with warm start take shorter
time to find the optimal solution than the matheuristic.
3. Out of the 35 instances where the optimal solutions were not found, the matheuristic
finds the best solution for 28 instances. CPLEX could find the best solution for only
3 out of those 35 instances and CPLEX with warm start could find the best solution
for 9 out of 35 instances.
4. All the three approaches cannot find any improvement from the initial solution for
the instance c4000.5. This instance is particularly difficult for CPLEX also as the
solution found by it after running for 1200 sec is 0.934635 where as the initial solution
is 6.78465.
5. Instances c2000.5, c2000.9, c4000.5, DSJC1000 5, p hat700 1, p 1000 1, p 1000
2, p 1500 1, p 1500 2 and p 1500 3 are particularly difficult for CPLEX.
The matheuristic out performs CPLEX and CPLEX with warm start in all of these
10 instances.
The following observations can be made from the data shown in Table 6.3 for the
BOSHLIB-C instances:
1. These instances are not really difficult for CPLEX to handle. CPLEX finds a good
solution relatively quickly and spends a lot of time looking for an improving solution
or proving optimality.
CHAPTER 6. COMPUTATIONAL RESULTS 60
Matheuristic CPLEX CPLEX with Warm Start
Instance Init. Soln. Obj. % Dev. CPU Obj. % Dev. CPU Obj. % Dev. CPU
Table 6.9: The effects of the various schema used in the matheuristic for PCRCP. Schema1is 40%, 30%, 20%, 10%, Schema2 is 30%, 30%, 20%, 20% and Schema3 is 25%, 25%, 25%,25%
Out of 10 instances, the Schema1, Schema2 and Schema3 provide the best solution for
5, 4 and 3 instances respectively. In the original settings, the matheuristic could not find an
improvement in c4000.5. But by adopting Schema2 and Schema3, the matheuristic could
improve the initial solution found in the first iteration of the matheuristic to a much greater
value.
Effect of search space expansion strategy:
In the matheuristic, Sj is expanded into Sj+1 by adding a specific number of nodes I(j)
from S′j = S \Sj to Sj . This number I(j) of nodes to be added is determined by the schema
which is used in the matheuristic. We select I(j) nodes from S′j which have the maximum
number of nodes in Sj that are adjacent to them. This is the strategy used in the original
setting of the matheuristic. We name this Strategy1. As another strategy, we can select the
top I(j) heavy nodes from S′j to expand Sj after the jth iteration is completed. We call
this strategy Strategy2. The experimental results for both the strategies are shown in Table
6.10.
It can be observed that Strategy1 and Strategy2 give the best solutions for 8 and 5 out
Table 6.10: The effects of the search space expansion strategies used in the matheuristic.Strategy1 is the original. Strategy2 is adding the nodes with heaviest weight.
of the 10 instances respectively.
Effect of time per sub-iteration:
In each sub-iteration of the matheuristic, we invoke the subroutine IPSBasedNeighbor-
hoodSearch on the current search space for a specific amount of time. For each sub-iteration
of the jth iteration, let this amount of time be Tj . In the original seeting of the heuistic,
the value of Tj is 1 minute, 2 minutes, 3 minutes and 4 minutes for j = 1, 2, 3, 4 respec-
tively, i.e., (1, 2, 3, 4). As the time per sub-iteration increases, there is a chance of finding
a better solution in each sub-iteration of the matheuristic. We test the performance of the
matheuristic for 4 other time settings. In each of these settings, the maximum runtime for
each sub-iteration in any of the four iterations of the matheuristic has the same value T . We
run the experiments for T = 1 minute, 2 minutes and 3 minutes, i.e., (1, 1, 1, 1), (2, 2, 2, 2)
and (3, 3, 3, 3). Table 6.11 shows the results of these experiments.
Table 6.22: Matheuristic for LCRCP with three different schemas. Schema1 is 40%, 30%,20%, 10%, Schema2 is 30%, 30%, 20%, 20% and Schema3 is 25%, 25%, 25%, 25%.
It can be observed that the matheuristic provides solutions with the same value with any
of the three schemas for c4000.5, p hat1000-1 and p hat1500-1. Matheuristic with Schema2
and Schema3 give the best solution with c2000.5 and c2000.9 respectively.
Effect of search space expansion strategy:
Table 6.23 shows the results for various search space expansion strategies used in the
Table 6.26: Effects of the sub-iteration solution strategies used in the matheuristic forLCRCP.
It can be seen from the results that solving the problem using IPS based neighborhood
search gives a better solution that using CPLEX to solve the problem in each sub-iteration
of the matheuristic.
Chapter 7
Conclusions and Future Work
In this thesis, we study SIASP as a case study to the Canadian RADARSAT Constellation
Mission (RCM). We describe data generation and data pre-processing techniques which
improve the final solution. We use CPLEX to solve the problem instances that are randomly
generated from the statistics provided by MDA, Canada. We observe that the energy
restriction constraints are not tight in the solutions produced. Thus, these energy restriction
constraints can be relaxed to solve the problem instances. Under this relaxation, SIASP
can be modeled as PCRCP.
We introduce a new variation of the maximum clique problem called CRCP and provide
mathematical formulations for it. We study some theoretical results for CRCP and show
how it is different from MCP. We propose a branch and bound algorithm for CRCP, where
the branching technique uses an ordering of nodes in the clusters and we suggest several
pruning techniques. We introduce two variations of CRCP, namely LCRCP and PCRCP.
A tabu search algorithm is proposed for LCRCP, which can also be used to find solutions
for PCRCP. We then suggest a model based metaheuristic for CRCP which exploits the
power of commercial mixed integer programming solvers. The metaheuristic runs in four
iterations, where in each iteration a local search is performed in a sub graph to find an
improving solution. In each iteration, the sub graph is expanded such that the full graph is
considered in the final iteration. Local search in each iteration is done using CPLEX. We
run experiments for LCRCP and PCRCP on DIMACS and BOSHLIB benchmark instances
for MCP. We study the effects of various parameters in the heuristic on its performance and
present the computational results.
Though we analyze CRCP using the proposed metaheuristic, this idea of exploiting the
85
CHAPTER 7. CONCLUSIONS AND FUTURE WORK 86
power of commercial MIP solvers can be used to solve other optimization problems too.
The main contributions of this thesis can be summarized the following:
1. Modeling the satellite image acquisition scheduling problem by a variation of a maxi-
mum weight clique problem.
2. Introduction of cluster restricted maximum weight clique problem
3. Design of a new model-based metaheuristic- matheuristic for solving clique problems.
4. Thorough experimental study.
5. Case-study of a practical problem in satellite operations with a variety of realistic
constraints.
Possible directions for a future research are as follows:
1. Large regions, whose image cannot be acquired by the satellite in a single pass, are split
in smaller regions called strips. Splitting these regions into smaller strips optimally
according to the satellite orbits can be studied further.
2. The k-distance constraint which is added to CPLEX in the heuristic makes CPLEX
search for an improving solution in a smaller search space. This is similar to the regular
local search done in a search space. Exploring the possibility of performing searches
like tabu search, simulated annealing, etc. using CPLEX can also be explored.
3. Further theoretical analysis can be done on CRCP.
4. Solution approaches like variable intensity neighborhood search [20] and kernel search
[1] can be investigated on PCRCP, as well as the similarities to our matheuristic.
5. The efficiency of the exact algorithm can be investigated and new exact algorithms
can be explored for CRCP.
Bibliography
[1] E. Angelelli, R. Mansini, and M.G. Speranze. Kernel search: a new heuristic frame-work forportfolioselection. Computational Optimization and Applications, 51(1):345–361, 2012.
[2] L. Babel. A fast algorithm for the maximum weight clique problem. Computing,52(1):31–38, 1994.
[3] E. Balas and J. Xue. Weighted and unweighted maximum clique algorithms with upperbounds from fractional coloring. Algorithmica, 15(5):397–412, 1996.
[4] R. Battiti and M. Protasi. Reactive local search for the maximum clique problem.Algorithmica, 29(4):610–637, 2001.
[5] U. Benlic and J-K. Hao. Breakout local search for maximum clique problems. Com-puters & Operations Research, 40(1):192 – 206, 2013.
[6] E. Bensana, G. Verfaillie, J. C. Agnese, N. Bataille, and D. Blumstein. Exact andinexact methods for the daily management of an earth observation satellite. 1996.
[7] N. Bianchessi, J-F. Cordeau, J. Desrosiers, G. Laporte, and V. Raymond. A heuristicfor the multi-satellite, multi-orbit and multi-user management of earth observationsatellites. European Journal of Operational Research, 177(2):750 – 762, 2007.
[8] I.M. Bomze, M. Budinich, P.M. Pardalos, and M. Pelillo. The maximum clique problem.In Handbook of Combinatorial Optimization, pages 1–74. Kluwer Academic Publishers,1999.
[9] J.F. Cordeau and G. Laporte. Maximizing the value of an earth observation satelliteorbit. The Journal of the Operational Research Society, 56(8):pp. 962–968, 2005.
[10] Th.H. Cormen, C.E. Leiserson, and R.L. Rivest. Introduction to Algorithms. MITPress, Cambridge, MA, USA, 1990.
[11] T. Fahle. Simple and fast: Improving a branch-and-bound algorithm for maximumclique. In Rolf Mhring and Rajeev Raman, editors, Algorithms ESA 2002, volume2461 of Lecture Notes in Computer Science, pages 485–498. Springer Berlin Heidelberg,2002.
87
BIBLIOGRAPHY 88
[12] C. Friden, A. Hertz, and D. Werra. Stabulus: A technique for finding stable sets inlarge graphs with tabu search. Computing, 42(1):35–44, 1989.
[13] V. Gabrel, A. Moulet, C. Murat, and V.Th. Paschos. A new single model and derivedalgorithms for the satellite shot planning problem using graph theory concepts. Annalsof Operations Research, 69(0):115–134, 1997.
[14] M.R. Garey and D.S. Johnson. Computers and Intractability; A Guide to the Theoryof NP-Completeness. W. H. Freeman & Co., New York, NY, USA, 1990.
[15] F. Glover, M. Laguna, and R. Mart. Tabu search, 1997.
[16] M. Lemaitre, G. Verfaillie, F. Jouhaud, J-M. Lachiver, and N. Bataille. Selecting andscheduling observations of agile satellites. Aerospace Science and Technology, 6(5):367– 381, 2002.
[17] J. Li, F. Yao, B. Bai, and R. He. A decomposition-based algorithm for imaging satel-lites scheduling problem. In International Conference on Information Engineering andComputer Science, 2009. ICIECS 2009., pages 1–6, Dec 2009.
[18] S. Mitrovic-Minic and A.P. Punnen. Very large-scale variable neighborhood searchfor the generalized assignment problem. Journal of Interdisciplinary Mathematics,11(5):653–670, 2008.
[19] S. Mitrovic-Minic and A.P. Punnen. Local search intensified: Very large-scale variableneighborhood search for the multi-resource generalized assignment problem. DiscreteOptimization, 6(4):370 – 377, 2009.
[20] S. Mitrovic-Minic and A.P. Punnen. Variable intensity local search. In VittorioManiezzo, Thomas Sttzle, and Stefan Vo, editors, Matheuristics, volume 10 of Annalsof Information Systems, pages 245–252. Springer US, 2010.
[21] G.L. Nemhauser and Jr. Trotter, L.E. Properties of vertex packing and independencesystem polyhedra. Mathematical Programming, 1974.
[22] P.R.J. Ostergard. A new algorithm for the maximum-weight clique problem. ElectronicNotes in Discrete Mathematics, 1999.
[23] P.R.J. Ostergard. A fast algorithm for the maximum clique problem. Discrete Ap-plied Mathematics, 120(13):197 – 207, 2002. Special Issue devoted to the 6th TwenteWorkshop on Graphs and Combinatorial Optimization.
[24] P.M. Pardalos and G.P. Rodgers. Computational aspects of a branch and bound algo-rithm for quadratic zero-one programming. Computing, 45(2):131–144, 1990.
[25] P. Prosser. Exact algorithms for maximum clique: A computational study. Algorithms,5(4):545–587, 2012.
BIBLIOGRAPHY 89
[26] W. Pullan. Phased local search for the maximum clique problem. Journal of Combi-natorial Optimization, 12(3):303–323, 2006.
[27] W. Pullan. Approximating the maximum vertex/edge weighted clique using localsearch. Journal of Heuristics, 14(2):117–134, Apr 2008.
[28] W. Pullan and H.H. Hoos. Dynamic local search for the maximum clique problem.Journal of Artificial Intelligence Research, 25:159–185, 2006.
[29] P.S. Segundo, D. Rodrguez-Losada, and A. Jimnez. An exact bit-parallel algorithmfor the maximum clique problem. Computers & Operations Research, 38(2):571 – 581,2011.
[30] P. Tangpattanakul, N. Jozefowiez, and P. Lopez. Multi-objective optimization forselecting and scheduling observations by agile earth observing satellites. In CarlosA. Coello Coello, Vincenzo Cutello, Kalyanmoy Deb, Stephanie Forrest, GiuseppeNicosia, and Mario Pavone, editors, Parallel Problem Solving from Nature - PPSN XII,volume 7492 of Lecture Notes in Computer Science, pages 112–121. Springer BerlinHeidelberg, 2012.
[31] E. Tomita and T. Kameda. An efficient branch-and-bound algorithm for finding amaximum clique with computational experiments. Journal of Global Optimization,37(1):95–111, 2007.
[32] E. Tomita and T. Seki. An efficient branch-and-bound algorithm for finding a maximumclique. In Proceedings of the 4th International Conference on Discrete Mathematics andTheoretical Computer Science, DMTCS’03, pages 278–289, Berlin, Heidelberg, 2003.Springer-Verlag.
[33] E. Tomita, Y. Sutani, T. Higashi, S. Takahashi, and M. Wakatsuki. A simple and fasterbranch-and-bound algorithm for finding a maximum clique. In Md.Saidur Rahmanand Satoshi Fujita, editors, WALCOM: Algorithms and Computation, volume 5942 ofLecture Notes in Computer Science, pages 191–203. Springer Berlin Heidelberg, 2010.
[34] P. Wang, G. Reinelt, P. Gao, and Y. Tan. A model, a heuristic and a decision supportsystem to solve the scheduling problem of an earth observing satellite constellation.Computers & Industrial Engineering, 61(2):322 – 335, 2011.
[35] Q. Wu and J-K. Hao. An adaptive multistart tabu search approach to solve the maxi-mum clique problem. Journal of Combinatorial Optimization, 26(1):86–108, 2013.