1 Introduction

The set covering problem is well studied in the operations research literature [2, 3, 5, 8, 13]. Most of the works on the problem reported in the literature have a linear objective function. Bazaraa and Goode [3] introduced the quadratic set covering problem (QSP) and proposed a cutting plane algorithm to solve it. Adams [1] and Liberti [14] proposed linearization techniques for binary quadratic programs. Since QSP is a binary quadratic programming problem, these linearization techniques can be used to formulate QSP as a 0–1 integer linear program. QSP is known to be NP-hard and polynomial time approximation algorithms are also available [7] to solve special classes of this problem.

Saxena and Arora [17] studied QSP and discussed various structural properties of the problem along with a linearization algorithm which is claimed to produce an optimal solution. The notion of linearization used in [17] is different from the concept of “linearization” used by Adams [1] and Liberti [14] and also different from what is discussed in [6, 12, 16].

In this paper, we show that the properties of QSP established in [17] are incorrect and that the algorithm they proposed need not produce an optimal solution. Gupta and Saxena [10] extended the results of [17] to the quadratic set packing and partitioning problems. These extensions also suffer from the same drawbacks as that of [17] and the algorithm in [10] could also produce a non-optimal solution, contrary to what is claimed. Since the algorithm of  [17] is not guaranteed to produce an optimal solution, it will be interesting to examine its value as a heuristic. Our experimental analysis discloses that the algorithm of  [17] produces good solutions for some classes of problems while it produces very poor solutions for other classes.

2 The quadratic set covering problem

Let \(I = \{1,2,\ldots ,m\}\) be a finite set and \(P = \{P_1,P_2,\dots ,P_n\}\) be a family of subsets of I. The index set for the elements of P is denoted by \(J= \{1,2 ,\ldots , n\} \). For each element \(j \in J\), a cost \(c_j\) is prescribed and for each element \((i,j) \in J \times J\), a cost \(d_{ij}\) is also prescribed. We refer to \(c_j\) the linear cost of the set \(P_j\) and \(\mathbf {c} = (c_1,\ldots ,c_n)\) the linear cost vector. Similarly \(d_{ij}\) is referred to as the quadratic cost corresponding to the ordered pair \((P_i,P_j)\) and the matrix \(\mathbf {D} =(d_{ij})_{n\times n}\) is referred to as the quadratic cost matrix.

A subset V of J is said to be a cover of I, if \(\displaystyle \cup _{j \in V} P_j = I\). Then the linear set covering problem (LSP) is to find a cover \( L=\{\pi (1), \ldots , \pi (l)\} \) such that \(\sum _{i=1}^{l} c_{\pi (i)}\) is minimized. Likewise the quadratic set covering problem (QSP) is to select a cover \(L= \{\sigma (1), \ldots , \sigma (l)\}\) such that \(\sum _{i=1}^{l} c_{\sigma (i)} + \sum _{i=1}^{l} \sum _{j=1}^{l} d_{\sigma (i)\sigma (j) }\) is minimized.

For each \(i\in I\), consider the vector \(\mathbf {a}_i=(a_{i1}, a_{i2}, \ldots , a_{in})\) where

$$\begin{aligned} a_{ij} = {\left\{ \begin{array}{ll} 1 &{}\quad \text {if } i\in P_j\\ 0 &{}\quad \text {otherwise.} \end{array}\right. } \end{aligned}$$

and \(\mathbf {A}= (a_{ij})_{m \times n}\) be an \(m \times n\) matrix. Also, consider the decision variables \(x_1,x_2,\ldots ,x_n\) where

$$\begin{aligned} x_j = {\left\{ \begin{array}{ll} 1 &{}\quad \text {if set } P_j \text { is selected}\\ 0 &{}\quad \text {otherwise.} \end{array}\right. } \end{aligned}$$

The vector of decision variables is represented by \( {\varvec{x}} = (x_1, \ldots , x_n )^T\) and \(\mathbf {1}\) is a column vector of size m where all entries are equal to 1. Then the LSP and QSP can be formulated respectively as 0–1 integer programs

$$\begin{aligned} \nonumber \text{ LSP: }\text{ Maximize }&\mathbf {c}\mathbf {x}\\ \text{ Subject } \text{ to }&\mathbf {A}\mathbf {x} \ge \mathbf {1} \end{aligned}$$
(1)
$$\begin{aligned}&\mathbf {x} \in \{0,1\}^n \end{aligned}$$
(2)

and

$$\begin{aligned} {QSP: }&\quad \text{ Minimize } \mathbf {c}{\varvec{x}} + \mathbf {x}^T\mathbf {D}{\varvec{x}}\nonumber \\&\quad \text{ Subject } \text{ to } \; \quad \mathbf {A}{\varvec{x}} \ge \mathbf {1}\end{aligned}$$
(3)
$$\begin{aligned}&\qquad \qquad \qquad \quad {\varvec{x}} \in \{0,1\}^n \end{aligned}$$
(4)

As indicated in [17] the continuous relaxation of QSP, denoted by \(QSP^{'}\), is obtained by replacing the constraint \({\varvec{x}} \in \{0,1\}^n\) by \({\varvec{x}} \ge \mathbf {0}\), where \(\mathbf {0}\) is the zero vector of size n. The family of feasible solutions of both LSP and QSP is denoted by \(\bar{S} = \{ {\varvec{x}} | A{\varvec{x}}\ge \mathbf {1}, {\varvec{x}} \in \{0,1\}^n \}\).

The following definitions are taken directly from [17]. Any \({\varvec{x}}\in \bar{S}\) is called a cover solution and an optimal solution to the underlying problem (LSP or QSP) is called an optimal cover solution. Note that each cover solution corresponds to a cover and vice versa. A cover V is said to be redundant if \(V - \{j\}\) for \(j \in V\) is also a cover. A cover which is not redundant is called a prime cover. The incidence vector \({\varvec{x}}\) that corresponds to a prime cover is called a prime cover solution.

Garfinkel and Nemhauser [8] proved that if the objective function in LSP has a finite optimal value then there exists a prime cover solution for which this value is attained whenever \(\mathbf {c} \ge \mathbf {0}\).

Saxena and Arora claimed an extension of this result to \({ QSP}^{'}\), assuming \(\mathbf {c} \ge \mathbf {0}\) and \(\mathbf {D}\) is symmetric and positive semi-definite. More precisely, they claimed:

Theorem 1

(Theorem 3 of [17]) If the objective function in \({ QSP}^{'}\) has finite optimal value then there exists a prime cover solution where this value is attained.

This result however is not true as indicated by the following example. Let

$$\begin{aligned} {\begin{array}{ccc} \mathbf {c}=(0,0,0), &{} \mathbf {A}= \begin{pmatrix} 1 &{} 1 &{} 0 \\ 1 &{} 0 &{} 1 \\ \end{pmatrix} \text{ and } &{} \mathbf {D}= \begin{pmatrix} 2 &{} -1 &{} -1 \\ -1 &{} 1 &{} 0 \\ -1 &{} 0 &{} 1\\ \end{pmatrix} \end{array} } \end{aligned}$$

Note that \(\mathbf {D}\) is a symmetric and positive semi-definite matrix. For the QSP and \({ QSP}^{'}\) with \(\mathbf {A},\mathbf {D}\) and \(\mathbf {c}\) defined as above, it can be verified that \( {\varvec{x}}^*= (1,1,1)^T\) is an optimal solution with the objective function value zero for both problems. The optimal cover corresponding to \({\varvec{x}}^*\) is \(V^*= \{1,2,3\}\) which is a redundant cover since \( V^* - \{2\} = \{1,3 \}\) is also a cover. All other cover solutions and their respective objective function values are listed below:

$$\begin{aligned} \begin{aligned}&{\varvec{x}}^1 = (1,0,1)^T \text{ redundant } \text{ cover } \text{ solution } \quad&f({\varvec{x}}^1) = 1\\&{\varvec{x}}^2 = (1,1,0)^T \text{ redundant } \text{ cover } \text{ solution } \quad&f({\varvec{x}}^2) = 1 \\ \end{aligned} \end{aligned}$$
$$\begin{aligned} \begin{aligned}&{\varvec{x}}^3 = (0,1,1)^T \text{ prime } \text{ cover } \text{ solution } \quad&f({\varvec{x}}^3) = 2 \\&{\varvec{x}}^4 = (1,0,0)^T \text{ prime } \text{ cover } \text{ solution } \quad&f({\varvec{x}}^4) = 2\\ \end{aligned} \end{aligned}$$

None of these corresponds to an optimal solution for QSP or \({ QSP}^{'}\). In particular, no prime cover solution is optimal for the instances of QSP and \({ QSP}^{'}\) constructed above, contradicting Theorem 1. This example also shows that Theorem 1 cannot be corrected by replacing \({ QSP}^{'}\) with QSP in the theorem.

We now show that a variation of Theorem 1 is true, which relaxes the requirement of \(\mathbf {D}\) being positive semi-definite while sign restrictions are imposed on its elements. This is summarized in our next theorem.

Theorem 2

There always exists a prime cover optimal solution for QSP if \(\mathbf {c}\) and \(\mathbf {D}\) are non-negative.

Proof

Let \({\varvec{x}}^0 \in \bar{S}\) be an optimal solution of QSP. Then the corresponding optimal objective function value is

$$\begin{aligned} f({\varvec{x}}^0 ) = \mathbf {c} {\varvec{x}}^0 + {\varvec{x}}^{0^T} \mathbf {D} {\varvec{x}}^0 \end{aligned}$$

Let \(J_o\) be the cover corresponding to the solution \({\varvec{x}}^0\). If \(J_o\) is a prime cover then statement of the theorem is correct. Otherwise we can construct a prime cover, let say \(J_1\), from \(J_o\) by dropping the redundant columns. Let \({\varvec{x}}^1\) be the solution of QSP with respect to the prime cover \(J_1\) and

$$\begin{aligned} f({\varvec{x}}^1 ) = \mathbf {c} {\varvec{x}}^1 + {\varvec{x}}^{1^T} \mathbf {D} {\varvec{x}}^1. \end{aligned}$$

Since \(\mathbf {c}\) and \(\mathbf {D}\) are non-negative and \(J_1 \subset J_0\),

$$\begin{aligned} f({\varvec{x}}^0 )&\ge f({\varvec{x}}^1 ) \end{aligned}$$

Since \({\varvec{x}}^0\) is an optimal solution to QSP, \(f({\varvec{x}}^0 ) = f({\varvec{x}}^1 )\) and the and the result follows. \(\square \)

The family of feasible solutions for continuous relaxations of LSP and QSP is represented by \(S = \{ {\varvec{x}} | A{\varvec{x}}\ge \mathbf {1}, {\varvec{x}} \ge \mathbf {0} \}\). The continuous relaxation of LSP is denoted by \(LSP^{'}\).

Saxena and Arora [17] also proposed an algorithm to solve QSP and claimed that it will produce an optimal solution. Their algorithm is re-stated here.

The Saxena–Arora algorithm for QSP

  • Step 1: From the QSP, construct the corresponding \({ QSP}^{'}\)

  • Step 2: Choose a feasible solution \(\mathbf { x}^0 \in S \) such that \( \nabla f ({\varvec{x}}^0) \ne \mathbf {0}\) and form the corresponding linear programming problem \({ LSP}^{'}\) as

    $$\begin{aligned} {{ LSP}^{'}} \quad \text{ Minimize } _{{\varvec{x}} \in S} \nabla f ({\varvec{x}}^0)^T{\varvec{x}}. \end{aligned}$$
    (5)

    On solving (\({ LSP}^{'}\)), let \({\varvec{x}}^1\), be its optimal solution. Let \(S^1 = \{{\varvec{x}}^1\}\).

  • Step 3: Starting with the point \({\varvec{x}}^1\), form the corresponding \({ LSP}^{'}\), and let its optimal solution be \({\varvec{x}}^2 \ne {\varvec{x}}^1\). Update \(S^1\) i.e. \(S^1 = \{{\varvec{x}}^1, {\varvec{x}}^2\}\).

  • Step 4: Repeat Step 3 for the point \({\varvec{x}}^2\), and suppose at the ith stage \(S^1 = \{{\varvec{x}}^1,{\varvec{x}}^2,\ldots ,{\varvec{x}}^i\}\). Stop, if at the \((i + 1)^{th}\) stage \({\varvec{x}}^{i+1} \in S^1\) , then \({\varvec{x}}^{i+1}\), is the optimal solution of \({ QSP}^{'}\).

  • Step 5: If \({\varvec{x}}^{i+1}\) is an optimal solution of the form 0 or 1 then it is a solution of QSP otherwise, go to Step 6.

  • Step 6: Apply Gomory cuts to find a solution of the 0 or 1 form and the corresponding prime cover.

The algorithm discussed above suffers from various drawbacks as listed below.

  1. 1.

    Even if \(\mathbf {c} \ge \mathbf {0}\), and \(\mathbf {D}\) is symmetric and positive semi-definite, the \({ LSP}^{'}\) in Step 2 could be unbounded and hence it need not have an optimal solution for all instances.

  2. 2.

    Suppose that we apply the algorithm only for instances where \({ LSP}^{'}\) in Step 2 is bounded in all iterations. Even then, the solution produced in Step 4 could be non-optimal to \({ QSP}^{'}\).

  3. 3.

    If the algorithm terminates in Step 5 the resulting solution could be non-optimal to QSP.

  4. 4.

    If the algorithm successfully moves to Step 6, then also the solution produced could be non-optimal.

We now illustrate each of the drawbacks discussed above using counterexamples.

  1. 1.

    Since \(\mathbf {D}\) is a positive semi-definite matrix and \(\mathbf {c} \ge \mathbf {0}\), the objective function value of \({ QSP}^{'}\) is bounded below by zero. However, \({ LSP}^{'}\) in Step 2 or in Step 3 need not be bounded below. Let

    $$\begin{aligned} {\begin{array}{ccc} \mathbf {c}=(0,0 ,0,0), &{} \mathbf {A}= \begin{pmatrix} 1 &{} 1 &{} 0 &{} 0 \\ 1 &{} 0 &{} 1 &{} 0 \\ 1 &{} 0 &{} 0 &{} 1 \\ \end{pmatrix} \text{ and } &{} \mathbf {D}= \begin{pmatrix} 10 &{} -3 &{} -4 &{} -4 \\ -3 &{}2 &{} 1 &{} 1\\ -4 &{}1 &{}3&{} 1\\ -4 &{}1 &{} 1&{} 3\\ \end{pmatrix} \end{array} } \end{aligned}$$

    Note that \(\mathbf {D}\) is symmetric and positive semi-definite. Consider the instance of QSP with the above values for \(\mathbf {c}\), \(\mathbf {D}\), and \(\mathbf {A}\). Starting with the feasible solution \({\varvec{x}}^0=( 1,0,0,0)^T \in S \) of \({ QSP}^{'}\), we get the \({ LSP}^{'}\) in Step 2 as

    $$\begin{aligned} \text{ Minimize }&\nabla f ({\varvec{x}}^0)^T{\varvec{x}} = 20 x_1 -6 x_2 -8 x_3 -8 x_4 \\ \text{ Subject } \text{ to: }&x_1+x_2 \ge 1\\&x_1+x_3 \ge 1\\&x_1+x_4 \ge 1\\&x_j \ge 0 \quad \text{ for } j = 1, 2,3,4. \end{aligned}$$

    This problem is unbounded. Thus the algorithm can not be applied in this case. The immediate conclusion is that the Saxena–Arora  [17] algorithm is potentially applicable only to those QSP instances where the resulting \({ LSP}^{'}\) is bounded in every step.

  2. 2.

    The algorithm can fail in Step 4. The Saxena–Arora algorithm claims to produce an optimal solution of \({ QSP}^{'}\) in Step 4 but this may not be true always. Consider the data

    $$\begin{aligned} {\begin{array}{ccc} \mathbf {c}=(0,0 ,0,0), &{} \mathbf {A}= \begin{pmatrix} 1 &{} 1 &{} 0 &{} 0 \\ 1 &{} 0 &{} 1 &{} 0 \\ 1 &{} 0 &{} 0 &{} 1 \\ \end{pmatrix} \text{ and } &{} \mathbf {D}= \begin{pmatrix} 10 &{} 2&{} 2 &{} 2 \\ 2 &{}3 &{} 1 &{}1\\ 2 &{}1 &{}3&{} 1\\ 2 &{}1 &{} 1&{} 4\\ \end{pmatrix} \end{array} } \end{aligned}$$

    Note that \(\mathbf {D} \) is symmetric and positive semi-definite. Consider the instance of QSP with the above values for \(\mathbf {c}\), \(\mathbf {D}\), and \(\mathbf {A}\), we get the QSP as

    $$\begin{aligned} \text{ Min }&f( {\varvec{x}})\! = \! 10x_1^2+ \! 3x_2^2+ 3x_3^2 \!+\! 4x_4^2 \! + \! 4 x_1x_2 \! + \! 4 x_1x_3 \! + \! 4x_1x_4+ 2x_2x_3 \!+\! 2x_2x_4 \!+ \!2x_3x_4\\ \text{ st: }&x_1+x_2 \ge 1\\&x_1+x_3 \ge 1\\&x_1+x_4 \ge 1\\&x_j \in \{0,1\} \text{ for } j = 1, 2,3,4. \end{aligned}$$

    and

    $$\begin{aligned} \nabla f ({\varvec{x}}) =&(20x_1 + 4x_2+ 4x_3+ 4x_4, 6x_2 + 4x_1+2x_3+2x_4, \\&6x_3+4x_1+ 2x_2 + 2x_4, 8x_4+4x_1+2x_2+2x_3)^T \end{aligned}$$

    Select the feasible solution \({\varvec{x}}^0= ( 1, 0, 0, 0 )^T \in S \) of \({ QSP}^{'}\). Construct the \({ LSP}^{'}\) with respect to \({\varvec{x}}^0\), the objective function of \({ LSP}^{'}\) is

    $$\begin{aligned} \nabla f ({\varvec{x}}^0)^T{\varvec{x}} =&20 x_1 +4 x_2 +4 x_3 + 4 x_4 \end{aligned}$$

    Note that \({\varvec{x}}^1 = (0, 1, 1, 1)^T \) is an optimal solution to this \({ LSP}^{'}\). Thus, we set \(S^1=\{{\varvec{x}}^1\}\). Now, using \({\varvec{x}}^1\) construct the new \({ LSP}^{'}\), and the optimal solution to this \({ LSP}^{'}\) is \({\varvec{x}}^2= ( 1, 0, 0, 0)^T\). Since \({\varvec{x}}^2 \not \in S^1\), construct the new \({ LSP}^{'}\) , the optimal solution to this \({ LSP}^{'}\) is \({\varvec{x}}^3= ( 0, 1, 1, 1)^T\). Since \({\varvec{x}}^3 \in S^1\), in Step 4 the algorithm concludes that \({\varvec{x}}^3\) is an optimal solution of \({ QSP}^{'}\) with objective function value 16. However, \({\varvec{x}}^* = ( 0.714286, 0.285714, 0.285714, 0.285714 )^T \) which is a better solution for \({ QSP}^{'}\), contradicting the optimality of \(x^3\). Thus the algorithm could fail in Step 4.

  3. 3.

    As per the Saxena–Arora algorithm, Step 5 produces an optimal solution to \({ QSP}^{'}\) and if this optimal solution is binary, they claim this solution to be an optimal solution of QSP. We now show that a binary solution produced in Step 5 need not be an optimal solution to QSP. For example. Consider the data

    $$\begin{aligned} {\begin{array}{ccc} \mathbf {c}=(0,0 ,0,0), &{} \mathbf {A}= \begin{pmatrix} 1 &{} 1 &{} 0 &{} 0 \\ 1 &{} 0 &{} 1 &{} 0 \\ 1 &{} 0 &{} 0 &{} 1 \\ \end{pmatrix} \text{ and } &{} \mathbf {D}= \begin{pmatrix} 4 &{} 1&{} 1 &{} 1 \\ 1 &{}2 &{} 0 &{}0\\ 1 &{}0 &{}2&{} 0\\ 1 &{}0 &{} 0&{} 2\\ \end{pmatrix} \end{array} } \end{aligned}$$

    Note that \(\mathbf {D}\) is a symmetric, positive semi-definite and non-negative. As noted in Theorem 2, a prime cover optimal solution exists for this QSP. But still the Saxena–Arora algorithm fails to produce an optimal solution for QSP. Consider the instance of QSP with the above values for \(\mathbf {c}\), \(\mathbf {D}\), and \(\mathbf {A}\).

    Select the feasible solution \({\varvec{x}}^0=\left( \frac{3}{4},\frac{1}{4},\frac{1}{4},\frac{1}{4}\right) ^T \in S \) which is also an optimal solution of \({ QSP}^{'}\). Construct the \({ LSP}^{'}\) with respect to \({\varvec{x}}^0\) and the objective function is \(\nabla f ({\varvec{x}}^0)^T{\varvec{x}} = \frac{15}{2} x_1 + \frac{5}{2} x_2 + \frac{5}{2} x_3 + \frac{5}{2} x_4\).

    \({\varvec{x}}^1= (0,1,1,1)^T\) is an optimal solution to this \(LSP^{'}\). Thus, we set \(S^1=\{{\varvec{x}}^1\}\). Now, using \({\varvec{x}}^1\), construct the new \({ LSP}^{'}\) with the objective function as \(\nabla f ({\varvec{x}}^1)^T{\varvec{x}} = 6 x_1 +4 x_2 +4x_3 +4 x_4\). An optimal solution to this \({ LSP}^{'}\) is \({\varvec{x}}^2= (1,0,0,0)^T\). Since \({\varvec{x}}^2 \not \in S^1\), we update \(S^1=\{{\varvec{x}}^1, {\varvec{x}}^2\}\). Starting with \({\varvec{x}}^2\), construct the \({ LSP}^{'}\) with the objective function \(\nabla f ({\varvec{x}}^2)^T{\varvec{x}}= 8 x_1 +2 x_2 +2 x_3 +2 x_4\). An optimal solution to this \({ LSP}^{'}\) is \({\varvec{x}}^3= (0,1,1,1)^T\). Since \({\varvec{x}}^3 \in S^1\), the algorithm concludes that \({\varvec{x}}^3\) is an optimal solution of \({ QSP}^{'}\). Since \({\varvec{x}}^3\) contains 0 and 1 entries only, as per the algorithm, it is an optimal solution to QSP and the corresponding objective function value is 6.

    However \({\varvec{x}}^* = (1,0,0,0)^T\) is a better solution to the QSP with objective function value \(f({\varvec{x}}^*) = 4\). Thus, the solution produced by the the Saxena–Arora algorithm for the above instance of QSP is not optimal.

    In the previous example if \({\varvec{x}}^0=(0,1,1,1)^T\) is selected instead of \(\left( \frac{3}{4},\frac{1}{4},\frac{1}{4},\frac{1}{4}\right) ^T\), the algorithm produces \(x_1=(1,0,0,0)\), \(x_2=(0,1,1,1)\), and \(x_3=(1,0,0,0)\), leading to an accurate optimal solution \(x_3=(1,0,0,0)\) to QSP. Note that \(x_0= (0,1,1,1)^T\) and \(( 1,0,0,0)^T\) are alternate optimal solutions of \(LSP^{'}\) with the objective function \(\nabla f ({\varvec{x}}^0)^T{\varvec{x}} = \frac{15}{2} x_1 + \frac{5}{2} x_2 + \frac{5}{2} x_3 + \frac{5}{2} x_4\). It is easy to show that trouble of the Saxena–Arora algorithm is not because of the presence of alternate optimal solutions, leading to a choice in selection. This can be demonstrated with the same example but by selecting a different starting point as given below.

    Select the feasible solution \({\varvec{x}}^0=\left( 1,\frac{1}{2},0,0\right) ^T \in S \) of \(QSP^{'}\). Construct the \({ LSP}^{'}\) with respect to \({\varvec{x}}^0\) and the objective function is \(\nabla f ({\varvec{x}}^0)^T{\varvec{x}} = 9 x_1 + 4 x_2 + 2 x_3 + 2 x_4\). \({\varvec{x}}^1= (0,1,1,1)^T\) is the unique optimal solution to this \(LSP^{'}\) (easily verifiable by enumerating the basic feasible solutions). Thus, we set \(S^1=\{{\varvec{x}}^1\}\). Now, using \({\varvec{x}}^1\), construct the new \({ LSP}^{'}\) with the objective function as \(\nabla f ({\varvec{x}}^1)^T{\varvec{x}} = 6 x_1 +4 x_2 +4x_3 +4 x_4\). The unique optimal solution to this \({ LSP}^{'}\) is \({\varvec{x}}^2= (1,0,0,0)^T\). Since \({\varvec{x}}^2 \not \in S^1\), we update \(S^1=\{{\varvec{x}}^1, {\varvec{x}}^2\}\). Starting with \({\varvec{x}}^2\), construct the \({ LSP}^{'}\) with the objective function \(\nabla f ({\varvec{x}}^2)^T{\varvec{x}}= 8 x_1 +2 x_2 +2 x_3 +2 x_4\). The unique optimal solution to this \({ LSP}^{'}\) is \({\varvec{x}}^3= (0,1,1,1)^T\). Since \({\varvec{x}}^3 \in S^1\), the algorithm concludes that \({\varvec{x}}^3\) is an optimal solution of \({ QSP}^{'}\). Since \({\varvec{x}}^3\) contains 0 and 1 entries only, as per the algorithm, it is an optimal solution to QSP and the corresponding objective function value is 6. The solution produced by the the Saxena–Arora algorithm for the above instance of QSP is not optimal.

  4. 4.

    As per the Saxena–Arora algorithm, Step 5 produces an optimal solution to \({ QSP}^{'}\) and if this optimal solution is not binary, the algorithm proceeds to Step 6 where Gomory cuts are applied to find a solution which they claim to be an optimal solution to QSP. We now show that Step 6 need not produce an optimal solution to QSP even if the solution produced in Step 4 is optimal for \({ QSP}^{'}\).

    In point 3 we gave a counterexample where the solution is a basic feasible solution (BFS) to \({ LSP}^{'}\) which is binary but not optimal to \({ QSP}^{'}\). Note that \({ QSP}^{'}\) is a continuous quadratic problem and an optimal solution need not correspond to an extreme point. We now illustrate that if the \({ LSP}^{'}\) solver works with any solution (such as interior point methods) and not necessarily with BFS (as in simplex method) it may be possible to get an optimal solution to \({ QSP}^{'}\) in Step 4. For example

    Consider the instance of QSP from the previous case. \({\varvec{x}}^0=\left( \frac{3}{4},\frac{1}{4},\frac{1}{4},\frac{1}{4}\right) ^T \in S \) is an optimal solution of \({ QSP}^{'}\). Construct the \({ LSP}^{'}\) with respect to \({\varvec{x}}^0\) and the resulting objective function is \(\nabla f ({\varvec{x}}^0)^T{\varvec{x}} = \frac{15}{2} x_1 + \frac{5}{2} x_2 + \frac{5}{2} x_3 + \frac{5}{2} x_4\). The algorithm produces \(x_1=\left( \frac{3}{4},\frac{1}{4},\frac{1}{4},\frac{1}{4}\right) ^T \), \(x_2=\left( \frac{3}{4},\frac{1}{4},\frac{1}{4},\frac{1}{4}\right) ^T \), leading to an accurate optimal solution \(x_2=(\frac{3}{4},\frac{1}{4},\frac{1}{4},\frac{1}{4})\) to \(QSP^{'}\) and the algorithm successfully completes Step 4.

    To apply Gomory cut,first reduce the non-basic feasible solution (non-BFS) to a basic feasible solution (BFS). From the previous example, the optimal non-BFS \(\left( \frac{3}{4},\frac{1}{4},\frac{1}{4},\frac{1}{4}\right) \) of \(LSP^{'}\) to an optimal BFS \({\varvec{x}}^1= (0,1,1,1)^T\) of \({ LSP}^{'}\). Since this is binary , no cutting plane will be added and a Gomory cut phase terminates with the non-optimal solution \({\varvec{x}}^1= (0,1,1,1)^T\) of QSP.

    Alternatively if we do not reduce the non-BFS to a BFS to apply Gomory cuts, but use any Integer programming (IP) solver to compute an optimal integer solution to \({ LSP}^{'}\) we could still get non-optimal solution. For example: Solving the \({ LSP}^{'}\) at \(\left( \frac{3}{4},\frac{1}{4},\frac{1}{4},\frac{1}{4}\right) \) for 0-1 optimal solution we could get \({\varvec{x}}^1= (0,1,1,1)^T\) as the optimal 0-1 solution of \({ LSP}^{'}\). This is not an optimal solution to QSP. (We note that the paper [17] does not say anything about the use of general IP solver; but we mentioned it here for the clarity and completeness).

3 The quadratic set packing and partitioning problems

A subset H of J is said to be a pack of I if \(\bigcup _{j \in H} P_j = I\), and for \(j, k \in H\), \(j \ne k\), implies \(P_j \bigcap P_k = \emptyset .\) Then the linear set packing problem (LSPP) is to select a pack \( V=\{\pi (1), \cdots , \pi (v)\} \) such that \(\sum _{i=1}^{v} c_{\pi (i)}\) is maximized. Likewise, the quadratic set packing problem (QSPP) is to select a pack \(L= \{\sigma (1), \ldots ,\sigma (l)\}\) such that \(\sum _{i=1}^{l} c_{\sigma (i)} + \sum _{i=1}^{l} \sum _{j=1}^{l} d_{\sigma (i)\sigma (j) }\) is maximized.

Let \(\mathbf {A}= (a_{ij})_{m \times n}\) be as defined in Sect. 2. Also, consider the decision variables \(x_1,x_2,\ldots ,x_n\) where

$$\begin{aligned} x_j = {\left\{ \begin{array}{ll} 1 &{}\quad \text {if } j \text { is in the pack}\\ 0 &{}\quad \text {otherwise.} \end{array}\right. } \end{aligned}$$

The vector of decision variables is represented as \( {\varvec{x}} = (x_1, \ldots , x_n )^T\) . Then the LSPP and QSPP can be formulated respectively as 0–1 integer programs

$$\begin{aligned}&\text{ LSPP: }\quad \text{ Maximize } \mathbf {c}{\varvec{x}}\nonumber \\&\text{ Subject } \text{ to } \mathbf {A}{\varvec{x}} \le \mathbf {1}\end{aligned}$$
(6)
$$\begin{aligned}&{\varvec{x}} \in \{0,1\}^n \end{aligned}$$
(7)

and

$$\begin{aligned} \nonumber \text{ QSPP: }\quad \text{ Maximize }&\mathbf {c}{\varvec{x}} + {\varvec{x}}^T\mathbf {D}{} \mathbf x \\ \text{ Subject } \text{ to }&\mathbf {A}{\varvec{x}} \le \mathbf {1} \end{aligned}$$
(8)
$$\begin{aligned}&{\varvec{x}} \in \{0,1\}^n \end{aligned}$$
(9)

The continuous relaxations of LSPP and QSPP, denoted respectively by LSPP(C) and QSPP(C), are obtained by replacing the constraint \({\varvec{x}} \in \{0,1\}^n\) by \({\varvec{x}} \ge \mathbf {0}\), respectively in LSPP and QSPP.

The family of feasible solutions of both LSPP and QSPP is denoted by \(S = \{ {\varvec{x}} | A{\varvec{x}}\le \mathbf {1}, {\varvec{x}} \in \{0,1\}^n \}\) and the family of feasible solutions for their continuous relaxations is denoted by \(\bar{S} = \{ {\varvec{x}} | A{\varvec{x}}\le \mathbf {1}, {\varvec{x}} \ge \mathbf {0} \}\).

Following are some definitions given in [10]. A solution \({\varvec{x}} \in S\) which satisfies (8) and (9) is said to be a pack solution. For any pack V, a column of \(\mathbf {A}\) corresponding to \(j^* \in V \) is said to be redundant if \(V - \{j^*\}\) is also a pack. If a pack corresponds to one or more redundant columns, it is called a redundant pack. A pack \( V^*\) is said to be a prime pack, if none of the columns corresponding to \(j^* \in V^*\) is redundant. A solution corresponding to the prime pack is called a prime packing solution.

From the definition of a redundant column given above (as in [10]), zero vector is the only prime packing solution for the set packing problem. Thus the results of [10] are incorrect with respect to their definitions. We believe the “−” sign in the above definition of redundant column discussed in [10] is a typo and it is probably supposed to be \(``\cup '' \) which is consistent with the definitions given in [11] by the same authors. Hereafter, we use this modified definition.

Thus, for any pack V, a column of \(\mathbf {A}\) corresponding to \(j \in J \) is said to be redundant if \(V \cup \{j\}\) is also a pack. If a pack contains one or more redundant columns, it is called a redundant pack. A pack \( V^*\) is said to be a prime pack, if none of the columns corresponding to \(j \in J\) is redundant. A solution corresponding to the prime pack is called a prime packing solution.

Gupta and Saxena [10] assumed \(\mathbf {D}\) to be a negative semi-definite matrix and extended most of the results for QSP in [17] to QSPP. In particular, they claimed that:

Theorem 3

(Theorem 2 of [10]) If the objective function in QSPP has finite value then there exists a prime packing solution where this value is attained.

Because of the definition of the prime pack solution given by Gupta and Saxena [10], a prime pack is always a zero vector hence the theorem is given incorrect. The theorem is still incorrect even if we use the modified definition [11] which is indicated above.

For example, consider an instance of QSPP with

$$\begin{aligned} {\begin{array}{ccc} \mathbf {c}=(0,0,0), &{} A= \left[ {\begin{array}{ccc} 1 &{} 1 &{} 0 \\ 1 &{} 0 &{} 1 \\ \end{array} } \right] , &{} D= \left[ {\begin{array}{ccc} -2 &{} 1 &{} 0 \\ 1 &{} -2 &{} 1 \\ 0 &{} 1 &{} -2\\ \end{array} } \right] \end{array} } \end{aligned}$$

Note that \(\mathbf {D}\) is symmetric and negative semi-definite.

\({\varvec{x}}^* = ( 0,0,0)^T\) is xQSPP with the objective function value zero. We list below all prime pack solutions with the objective function values.

$$\begin{aligned}&{\varvec{x}}^1 = \{1,0,0\} \text{ prime } \text{ pack } \text{ solution } \quad&f({\varvec{x}}^1) = -2\\&{\varvec{x}}^2 = \{0,1,1\} \text{ prime } \text{ pack } \text{ solution } \quad&f({\varvec{x}}^2) = -2 \\ \end{aligned}$$

Note that none of these solutions are optimal.

We now show that a variation of Theorem 3 is true and this is summarized in our next theorem.

Theorem 4

There always exists a prime pack optimal solution for QSPP if all elements of \(\mathbf {c} \) and \(\mathbf {D}\) are non-negative.

Proof

Let \({\varvec{x}}^0 \in \bar{S}\) be an optimal solution of QSPP. Then the corresponding optimal objective function value is

$$\begin{aligned} f({\varvec{x}}^0 ) = \mathbf {c} {\varvec{x}}^0 + {\varvec{x}}^{0^T} \mathbf {D} {\varvec{x}}^0 \end{aligned}$$

Let \(J_o\) be the pack corresponding to the solution \({\varvec{x}}^0\). If \(J_o\) is a prime pack then we are done. Otherwise we can construct a prime pack, let say \(J_1\), from \(J_o\) by adding the redundant columns. Let \({\varvec{x}}^1\) be the solution of QSP with respect to the prime pack \(J_1\) and

$$\begin{aligned} f({\varvec{x}}^1 ) = \mathbf {c} {\varvec{x}}^1 + {\varvec{x}}^{1^T} \mathbf {D} {\varvec{x}}^1. \end{aligned}$$

Since \(J_1\) obtained by adding redundant columns to \(J_0\), therefore, \(J_0 \subset J_1\). When all elements of \(\mathbf {c} \) and \(\mathbf {D}\) are non-negative, or

$$\begin{aligned} f({\varvec{x}}^0 )&\le f({\varvec{x}}^1 ) \end{aligned}$$

Since \({\varvec{x}}^0\) is an optimal solution to QSPP, \(f({\varvec{x}}^0 ) = f({\varvec{x}}^1 )\) and the proof follows. \(\square \)

Along the same lines as in [17], the authors of [10], provide a solution algorithm for QSPP. Following the insight generated in our counter examples in Sect. 2, and by the above observation, it is not difficult to construct counter examples to show that the algorithm of [10] need not provide an optimal solution for QSPP.

If in Eq. (8) we replace constraints \(\mathbf {A}{\varvec{x}} \le \mathbf {1}\) with \(\mathbf {A}{\varvec{x}} = \mathbf {1}\), then QSPP changes into quadratic set partitioning problem. Gupta and Saxena [10] proposed a similar algorithm for the quadratic set partitioning problem, which has similar issues as in the quadratic set packing problem. We omit the discussion about the quadratic set partitioning problem.

4 Computational results

Since the algorithm of [17] is not guaranteed to be optimal, it would be interesting to examine its value as a heuristic to solve QSP. We have conducted some preliminary experimental analysis to assess the value of the Saxena–Arora algorithm as a heuristic using different classes of test problems.

The test data was taken from standard benchmark problems for the set covering problem [2, 4, 9], and the vertex covering problem [18], with appropriate amendments to incorporate quadratic objective. In this class, we took only small size instances since the quadratic problem is much more difficult and time consuming to solve compared to their linear counterparts. We have also generated some quadratic vertex cover instances on random graphs taken from [15]. We divided computational experiments into two different categories, with each \(\mathbf {c} \ge 0\), while in category 1: \(\mathbf {D}\) is a positive semi-definite matrix and in category 2: \( \mathbf {D} \) is non-negative and positive semi-definite.

Each element of the linear cost vector \(\mathbf {c}\) is a random integer from the interval [3,5]. Since the quadratic cost matrix \(\mathbf {D} \) is positive semi-definite, there exists a square matrix \(\mathbf {B}\) such that \(\mathbf {D} = \mathbf {B}\mathbf {B}^T\). This \(\mathbf {D} \) is generated by a random square matrix \(\mathbf {B}\) where each element of \(\mathbf {B}\) is a random integer between −10 and 10. When \( \mathbf {D} \) is non-negative and positive semi-definite, each element of \(\mathbf {B}\) is selected as a random integer between 0 and 20.

The Saxena–Arora algorithm was coded in C++ and tested on a PC with windows 7 operating system, Intel 3770 i7 3.40 GHz processor and with 16 GB of RAM. We also used CPLEX 0-1 integer quadratic solver (version 12.5) to compute exact (heuristic) solutions. For each instance that we tested, we set CPLEX time limit to be the same as the time taken by Saxena–Arora algorithm and also run CPLEX by doubling this running time. These two implementations provide heuristic solutions and were compared with the solution produced by the Saxena–Arora algorithm.

In the tables, \(t_1\) is the cpu time taken by Saxena–Arora algorithm. The column “CPLEX Sol (\(t_1\))” represents the heuristic solution obtained by CPLEX by fixing its running time to \(t_1\) and the column “CPLEX Sol (\(2t_1\))” represents CPLEX run with \(2t_1\) upper bound on the execution time. The column “negative entries in Q” provides percentage of negative entries in the matrix \(\mathbf {D} \). The column “Sol” refers the objective function values. CPLEX quadratic solver takes more time to solve QSP to optimality when \(\mathbf {D}\) is positive semi-definite compare to the instances when \(\mathbf {D}\) is non-negative and positive semi-definite. Therefore, Table 1 reports lower bound value and Table 2 reports optimal solution value.

Table 1 Benchmark instances, \(\mathbf {D}\) is positive semi-definite
Table 2 Benchmark instances, \( \mathbf {D} \) is non-negative and positive semi-definite

When \(\mathbf {D}\) is a random positive semi-definite matrix, Table 1 shows that the Saxena–Arora algorithm does not return a good quality solution for QSP. Note that a general purpose solver like CPLEX obtained much better solutions within the same time limit for the test problems used. But when \( \mathbf {D} \) is non-negative and positive semi-definite, Table 2 shows that the Saxena–Arora algorithm produced solutions as good as those produced by CPLEX for many instances. For vertex cover instances the Saxena–Arora algorithm produced an optimal solution. For the set cover instances CPLEX produces better solutions than the Saxena–Arora algorithm. Thus, for \( \mathbf {D} \) is non-negative and positive semi-definite, the Saxena–Arora algorithm could be used as a heuristic to solve QSP. As our counter example indicates, even for this class the Saxena–Arora algorithm need not produce an optimal solution.