1 Introduction

Rank-two problems are low-rank problems where a linear transformation of the variables provides an objective function which depends on two variables. In other words, the objective function of rank-two problems is something like \(\phi (g_1(x),g_2(x))\), which can be rewritten in a two-variable form \(\phi (\theta ,\xi )\), by assuming \(\theta =g_1(x)\) and \(\xi =g_2(x)\). In this paper we will consider rank-two problems, where \(g_1(x)\) and \(g_2(x)\) are linear fractional functions. This class of problems is very used in applied models. In light of this, it is worth emphasizing chapter 3.5 in Bajalinov (2003), pp.62–72, and the books (Barros 1998; Cooper et al. 2004; Mjelde 1983) describing applications of linear fractional programs to transportation problems, product planning, location problems, quantitative management science and data envelopment analysis (see also (Bomze et al. 1997; Cambini and Martein 2009; Cambini and Sodini 2002, 2003, 2008, 2010, 2014; Frenk and Schaible 2005; Horst and Pardalos 1995; Horst and Tuy 1996; Horst et al. 2001; Konno et al. 1997, 1991; Konno and Kuno 1995; Kuno 1996; Ryoo and Sahinidis 2003; Schaible 1995; Tuy 1998)). From a theoretical and algorithmic point of view, particular rank-two problems involving linear fractional functions have been recently studied in Shen and Lu (2018), Shen et al. (2019). The aim of this paper is to study rank-two problems involving linear fractional functions from both a theoretical and an algorithmic point of view. Specifically speaking, the theoretical results stated in Cambini and Sodini (2010), Cambini (2020), Cambini and Venturi (2021) will be generalized, a solution algorithm based on a partitioning approach will be proposed, and a detailed computational experience will be provided, with new splitting criteria proposed and compared with the classical ones. In Sect. 2, a pair of rank-two problems is defined: a general one, denoted with \(\overline{P}\), and a more particular one, named P. It will be shown that \(\overline{P}\) can be equivalently expressed in the form of P, so that just P needs to be studied from a theoretical and a computational point of view. In Sect. 3, various theoretical results are stated and compared with the ones in Cambini and Sodini (2010), Cambini (2020), Cambini and Venturi (2021). These results concerning optimal level solutions, optimal value functions and underestimation functions allow to propose in Sect. 4 a solution algorithm based on a partitioning approach. The solution method is described in detail, and a deep computational experience is discussed in Sect. 5, where new splitting criteria are proposed and compared with the classical ones.

2 Preliminary definitions

From now on, we will denote with \({\mathbb {R}}\) the set of real numbers and with \(\overline{\mathbb {R}}=\mathbb {R} \cup \{-\infty ,+\infty \}\) the affinely extended real number system.

2.1 Main problem

Definition 1

Let us consider a general polyhedron \(X\subset \mathbb {R}^n\) defined as:

$$\begin{aligned} X=\left\{ x\in \mathbb {R}^n: \ A_{in} x\underline{\le } b_{in}, \ A_{eq} x = b_{eq},\ l\underline{\le } x\underline{\le } u \right\} \end{aligned}$$

where \(A_{in}\in \mathbb {R}^{m\times n}\), \(b_{in}\in \mathbb {R}^{m}\), \(A_{eq}\in \mathbb {R}^{p\times n}\), \(b_{eq}\in \mathbb {R}^{p}\), \(l,u\in \overline{\mathbb {R}}^{n}\). Given vectors \(b,c,d\in \mathbb {R}^{n}\) and scalar values \(b_0,c_0,d_0\in \mathbb {R}\), the following class of nonconvex problems can be defined as:

$$\begin{aligned} P: {{\inf \limits _{x\in X}}} \ \phi \left( c^Tx+c_0,\frac{d^Tx+d_0}{b^Tx+b_0}\right) \end{aligned}$$

where \(b^Tx+b_0>0\) for all \(x\in X\). The scalar function \(\phi (\theta ,\xi )\) is defined on the following set:

$$\begin{aligned} \Omega =\left\{ \left( \theta ,\xi \right) \in \mathbb {R}^2:\ \theta =c^Tx+c_0,\ \xi =\frac{d^Tx+d_0}{b^Tx+b_0},\ x\in X \right\} \end{aligned}$$

Notice that \(\Omega \subseteq \left\{ \theta \in \mathbb {R}: \ \theta =c^Tx+c_0, x\in X \right\} \times \left\{ \xi \in \mathbb {R}:\xi =\frac{d^Tx+d_0}{b^Tx+b_0},\ x\in X \right\} \). Moreover, \(\phi (\theta ,\xi )\) is assumed to be continuous for all the values in the set \(\Omega \) and strictly increasing with respect to its first variable \(\theta \).

Notice that, if \(b=0\), problem P reduces to the ones already studied in Cambini and Sodini (2010), Cambini (2020), Cambini and Venturi (2021) and involving linear functions \(c^Tx+c_0\) and \(d^Tx+d_0\) only. Notice also that these classes of problems cover several multiplicative, fractional and d.c. problems which are very used in applications (see for all Bajalinov 2003; Barros 1998; Cooper et al. 2004; Frenk and Schaible 2005; Konno et al. 1991; Kuno 1996; Mjelde 1983; Schaible 1995).

2.2 A more general problem

The aim of this section is to show that a class of problems involving two linear fractional functions (hence problems more general than the ones described in P) can be converted in the form of P and hence be solved.

Definition 2

Let us consider a general polyhedron \(Y\subset \mathbb {R}^n\) defined as:

$$\begin{aligned} Y=\left\{ y\in \mathbb {R}^n: \ A_{in} y\underline{\le } b_{in}, \ A_{eq} y = b_{eq},\ l\underline{\le } y\underline{\le } u \right\} \end{aligned}$$

where \(A_{in}\in \mathbb {R}^{m\times n}\), \(b_{in}\in \mathbb {R}^{m}\), \(A_{eq}\in \mathbb {R}^{p\times n}\), \(b_{eq}\in \mathbb {R}^{p}\), \(l,u\in \overline{\mathbb {R}}^{n}\). Given vectors \(a,b,\bar{c},d\in \mathbb {R}^{n}\) and values \(a_0,b_0,\bar{c}_0,d_0\in \mathbb {R}\), the following class of nonconvex problems can be defined as:

$$\begin{aligned} \bar{P}: {{\inf \limits _{y\in Y}}} \ \bar{\phi } \left( \frac{\bar{c}^Ty+\bar{c}_0}{a^Ty+a_0}, \frac{d^Ty+d_0}{b^Ty+b_0}\right) \end{aligned}$$

where \(a^Ty+a_0>0\) and \(b^Ty+b_0>0\) for all \(y\in Y\). The scalar function \(\bar{\phi }(\theta ,\xi )\) is defined on the following set:

$$\begin{aligned} \bar{\Omega }=\left\{ \left( \theta ,\xi \right) \in \mathbb {R}^2:\ \theta =\frac{c^Ty+c_0}{a^Ty+a_0},\ \xi =\frac{d^Ty+d_0}{b^Ty+b_0},\ y\in Y \right\} \end{aligned}$$

Moreover, the function \(\bar{\phi }(\theta ,\xi )\) is assumed to be continuous for all the values in the set \(\bar{\Omega }\) and strictly monotone with respect to its first variable \(\theta \).

Let us point out that particular cases of problem \(\bar{P}\) have been recently studied in Shen and Lu (2018), Shen et al. (2019) (where \(\bar{\phi }(\theta ,\xi )=\theta +\xi \) or \(\bar{\phi }(\theta ,\xi )=\theta \cdot \xi \)).

First, notice that the objective function of problem \(\overline{P}\) can be equivalently rewritten as a strictly increasing function with respect to its first variable. In light of this, let us introduce the following notations:

  • if \(\bar{\phi }(\theta ,\xi )\) is strictly decreasing with respect to its first variable \(\theta \), then let \(c=-\bar{c}\), \(c_0=-\bar{c}_0\) and \(\phi (\theta ,\xi )=\bar{\phi }(-\theta ,\xi )\);

  • if \(\bar{\phi }(\theta ,\xi )\) is strictly increasing with respect to its first variable \(\theta \), then let \(c=\bar{c}\), \(c_0=\bar{c}_0\) and \(\phi (\theta ,\xi )=\bar{\phi }(\theta ,\xi )\).

It results

$$\begin{aligned} \bar{\phi }\left( \frac{\bar{c}^Ty+\bar{c}_0}{a^Ty+a_0}, \frac{d^Ty+d_0}{b^Ty+b_0}\right) =\phi \left( \frac{c^Ty+c_0}{a^Ty+a_0},\frac{d^Ty+d_0}{b^Ty+b_0}\right) \end{aligned}$$

where \(\phi (\theta ,\xi )\) is strictly increasing with respect to variable \(\theta \).

By means of a Charnes-Cooper transformation (Charnes and Cooper 1962), it is then possible to convert problem \(\bar{P}\) in the form of P. In light of this, let us define the following scalar variable \(x_0\) and vector variable \(x_n\):

$$\begin{aligned} x_0=\frac{1}{a^Ty+a_0}\in \mathbb {R} \ \ \text {and} \ \ x_n=x_0 \cdot y\in \mathbb {R}^n \end{aligned}$$

Being \(a^Ty+a_0>0\) \(\forall y\in Y\), it results \(x_0>0\) so that:

$$\begin{aligned} \frac{c^Ty+c_0}{a^Ty+a_0}= & {} c^Tx_n+c_0 x_0\\ \frac{d^Ty+d_0}{b^Ty+b_0}= & {} \frac{d^Tx_n+d_0 x_0}{b^Tx_n+b_0 x_0} \end{aligned}$$

while the constraints defining Y result to be:

$$\begin{aligned} A_{in} x_n - b_{in} x_0&\underline{\le }&0 \ \, \ \ A_{eq} x_n - b_{eq} x_0 = 0 \end{aligned}$$
(1)
$$\begin{aligned} x_n - u x_0&\underline{\le }&0 \ \, \ \ -x_n + l x_0 \underline{\le } 0 \end{aligned}$$
(2)
$$\begin{aligned} a^Tx_n+a_0 x_0= & {} 1 \ \, \ \ x_0\ge 0 \end{aligned}$$
(3)

Notice that the constraint \(x_0>0\) has been equivalently written as \(x_0\ge 0\) in (3), with the aim to guarantee the closure of the feasible region. In light of this, observe that the value \(x_0=0\) is not feasible (if \(x_0=0\) then (2) implies \(x_n=0\) and hence in (3) it yields \(1=a^Tx_n+a_0 x_0=0\)).

As a consequence, problem \(\bar{P}\) can be rewritten in the form of P as:

$$\begin{aligned} \bar{P}\ : {{\inf \limits _{(x_n,x_0)\in X}}} \ \phi \left( c^Tx_n+c_0 x_0,\frac{d^Tx_n+d_0 x_0}{b^Tx_n+b_0 x_0}\right) \end{aligned}$$

where the polyhedron \(X\subset \mathbb {R}^{n+1}\) is given by the vectors \((x_n,x_0)\in \mathbb {R}^n\times \mathbb {R}\) verifying the conditions (1), (2) and (3). Once the optimal solution of \((x^*_n,x^*_0)\in X\) is found, then the corresponding optimal solution of \(\bar{P}\) is given by \(y^*=\frac{1}{x^*_0}x^*_n\) .

2.3 Generalized convexity properties

It is worth recalling (Avriel et al. 2010; Cambini and Martein 2009; Frenk and Schaible 2005; Schaible 1995) that linear fractional functions like \(\frac{d^Tx+d_0}{b^Tx+b_0}\) are both pseudoconcave and pseudoconvex.

Definition 3

A differentiable function \(g:X\rightarrow \mathbb {R}\) with \(X\subseteq \mathbb {R}^n\) open convex set is said to be pseudoconvex on X if the following logical implication holds for all \(x_1,x_2\in X\):

$$\begin{aligned} g(x_1)> g(x_2)\ \ \Rightarrow \ \ \nabla g(x_1)^T(x_2-x_1) <0 \end{aligned}$$

Function g is also said to be pseudoconcave on X if \(-g\) is pseudoconvex on X. Moreover, g is said to be pseudolinear on X if it is both pseudoconvex and pseudoconcave on X.

The following useful properties hold (see for all Cambini and Martein 2009 subsection 3.3.2).

Theorem 1

Let \(g:X\rightarrow \mathbb {R}\), with \(X\subseteq \mathbb {R}^n\) open convex set, be a differentiable function. If g is pseudolinear on X, then either \(\nabla g(x)\ne 0\) for all \(x\in X\) or g is a constant function.

Theorem 2

Let \(g:X\rightarrow \mathbb {R}\), with \(X\subseteq \mathbb {R}^n\) open convex set, be a differentiable function. Then, g is pseudolinear on X if and only if the following double implication holds for all \(x_1,x_2\in X\):

$$\begin{aligned} g(x_1)= g(x_2)\ \ \Leftrightarrow \ \ \nabla g(x_1)^T(x_2-x_1) =0 \end{aligned}$$

Theorem 1 shows that differentiable pseudolinear functions are either constant or with no critical points, while Theorem 2 allows to verify that linear fractional functions are pseudolinear.

Finally, let us recall the following further results involving the concept of semistrict quasilinearity (see for all Cambini and Martein 2009, subsection 3.3.1 and subsection 3.3.2).

Theorem 3

Let \(g:X\rightarrow \mathbb {R}\), with \(X\subseteq \mathbb {R}^n\) open convex set, be a differentiable function. If g is pseudolinear on X, then g is also semistrictly quasilinear on X.

Theorem 4

Let \(g:X\rightarrow \mathbb {R}\), with \(X\subseteq \mathbb {R}^n\) convex set, be a function. Then, g is semistrictly quasilinear on X if and only if the following condition holds:

  • any restriction of g on a line segment is an increasing function or a decreasing function or a constant function.

Theorems 3 and 4 show that linear fractional functions restricted on feasible segments are either constant or strictly monotone. Notice also that this property guarantees that non-constant linear fractional functions over a compact feasible region attain the minimum and the maximum at the boundaries of the feasible region.

3 Theoretical results

The aim of this section is to state various theoretical results concerning problem P which will allow to propose a solution algorithm. In light of this, the results stated in Cambini and Sodini (2010), Cambini (2020), Cambini and Venturi (2021) will be generalized or compared.

3.1 Image of feasible intervals over \(\Omega \)

Theorem 5

Consider problem P and let \(x_1,x_2\in X\), with \(x_1\ne x_2\), be extrema of the feasible segment:

$$\begin{aligned} {[}x_1,x_2]=\left\{ x\in X : x=x_1+\lambda (x_2-x_1), \, \ \lambda \in [0,1]\right\} \end{aligned}$$

For the sake of convenience, define also the following auxiliary values:

$$\begin{aligned} \xi _1=\frac{d^Tx_1+d_0}{b^Tx_1+b_0}\quad , \quad \xi _2=\frac{d^Tx_2+d_0}{b^Tx_2+b_0} \end{aligned}$$

\(\beta _1=b^Tx_1+b_0>0\), \(\beta _2=b^Tx_2+b_0>0\), \(\theta _1=c^Tx_1+c_0\) and \(\theta _2=c^Tx_2+c_0\). We can also assume, without loss of generality, that \(\xi _1\le \xi _2\).

  1. i)

    If \(\xi _1=\xi _2\), then, denoting \(x(\lambda )=x_1+\lambda (x_2-x_1)\) and \(\theta (\lambda )=c^Tx(\lambda )+c_0\), it results:

    $$\begin{aligned} \frac{d^Tx(\lambda )+d_0}{b^Tx(\lambda )+b_0}=\xi _1\quad , \quad \theta (\lambda )=\theta _1+\lambda (\theta _2-\theta _1)\quad , \quad \forall \lambda \in [0,1] \end{aligned}$$
  2. ii)

    If \(\xi _1<\xi _2\), then for all \(\xi \in \left[ \xi _1,\xi _2\right] \) there exists one and only one \(x(\xi )\in [x_1,x_2]\) such that:

    $$\begin{aligned} \xi =\frac{d^Tx(\xi )+d_0}{b^Tx(\xi )+b_0} \end{aligned}$$

    Moreover, denoting \(\theta (\xi )=c^Tx(\xi )+c_0\), for all \(\xi \in \left[ \xi _1,\xi _2\right] \) it results:

    $$\begin{aligned} x(\xi )= & {} x_1+\frac{(\xi -\xi _1)\beta _1}{(\xi -\xi _1)\beta _1 +(\xi _2-\xi )\beta _2}(x_2-x_1) \\ \theta (\xi )= & {} \theta _1+\frac{(\xi -\xi _1)\beta _1}{(\xi -\xi _1) \beta _1+(\xi _2-\xi )\beta _2}(\theta _2-\theta _1) \end{aligned}$$

Proof

i) Just notice that:

$$\begin{aligned} \frac{d^Tx(\lambda )+d_0}{b^Tx(\lambda )+b_0}= & {} \frac{d^T\left( x_1+\lambda (x_2-x_1)\right) +d_0}{b^T \left( x_1+\lambda (x_2-x_1)\right) +b_0}\\= & {} \frac{(d^Tx_1+d_0)+\lambda \left( (d^Tx_2+d_0)-(d^Tx_1+d_0)\right) }{(b^Tx_1+b_0) +\lambda \left( (b^Tx_2+b_0)-(b^Tx_1+b_0)\right) }\\= & {} \frac{\xi _1\beta _1+\lambda (\xi _2\beta _2-\xi _1\beta _1)}{\beta _1+\lambda (\beta _2-\beta _1)} \end{aligned}$$

so that, if \(\xi _1=\xi _2\) then \(\frac{d^Tx(\lambda ) +d_0}{b^Tx(\lambda )+b_0}=\xi _1\). Finally, it results:

$$\begin{aligned} c^Tx(\lambda )+c_0=(c^Tx_1+c_0)+\lambda \left( (c^Tx_2+c_0)-(c^Tx_1+c_0)\right) =\theta _1+\lambda (\theta _2-\theta _1) \end{aligned}$$

ii) Since linear fractional functions are both pseudoconcave and pseudoconvex, then restricted to any segment they results to be either constant or strictly monotone. As a consequence, condition \(\xi _1<\xi _2\) implies that function \(\frac{d^Tx+d_0}{b^Tx+b_0}\) is continuous and strictly monotone over the segment \([x_1,x_2]\subset X\) so that:

$$\begin{aligned} {[}\xi _1,\xi _2]=\left\{ \xi : \ \xi =\frac{d^Tx+d_0}{b^Tx+b_0}, \, \ x\in [x_1,x_2] \right\} \end{aligned}$$

This yields that for all \(\xi \in \left[ \xi _1,\xi _2\right] \) there is one and only one \(x(\xi )\in [x_1,x_2]\) such that \(\xi =\frac{d^Tx(\xi )+d_0}{b^Tx(\xi )+b_0}\). In light of this, it results:

$$\begin{aligned} \xi =\frac{d^T\left( x_1+\lambda (x_2-x_1)\right) +d_0}{b^T \left( x_1+\lambda (x_2-x_1)\right) +b_0}= & {} \frac{\xi _1\beta _1+\lambda (\xi _2\beta _2-\xi _1\beta _1)}{\beta _1+\lambda (\beta _2-\beta _1)} \end{aligned}$$

which yields:

$$\begin{aligned} \xi \beta _1+\lambda \xi (\beta _2-\beta _1)=\xi _1\beta _1 +\lambda (\xi _2\beta _2-\xi _1\beta _1) \end{aligned}$$

and hence:

$$\begin{aligned} \lambda =\frac{(\xi -\xi _1)\beta _1}{(\xi -\xi _1) \beta _1+(\xi _2-\xi )\beta _2} \end{aligned}$$

As a consequence, it results:

$$\begin{aligned} x(\xi )=x_1+\frac{(\xi -\xi _1)\beta _1}{(\xi -\xi _1) \beta _1+(\xi _2-\xi )\beta _2}(x_2-x_1) \end{aligned}$$

and

$$\begin{aligned} \theta (\xi )=c^Tx(\xi )+c_0=\theta _1+\frac{(\xi -\xi _1) \beta _1}{(\xi -\xi _1)\beta _1+(\xi _2-\xi )\beta _2}(\theta _2-\theta _1) \end{aligned}$$

\(\square \)

Remark 1

Notice that when \(\xi _1<\xi _2\):

$$\begin{aligned} \theta '(\xi )= & {} \frac{\beta _1\beta _2(\theta _2-\theta _1)(\xi _2-\xi _1)}{\left[ (\xi -\xi _1)\beta _1+(\xi _2-\xi )\beta _2\right] ^2}\\ \theta ''(\xi )= & {} \frac{2\beta _1\beta _2(\beta _2-\beta _1) (\theta _2-\theta _1)(\xi _2-\xi _1)}{\left[ (\xi -\xi _1) \beta _1+(\xi _2-\xi )\beta _2\right] ^3} \end{aligned}$$

Being \(\beta _1>0\), \(\beta _2>0\), \(\xi _1<\xi _2\), it results \((\xi -\xi _1)\beta _1+(\xi _2-\xi )\beta _2>0\) for all \(\xi \in \left[ \xi _1,\xi _2\right] \) so that function \(\theta (\xi )\) is:

  • constant if \(\theta _1=\theta _2\)

  • strictly increasing if \(\theta _1<\theta _2\)

  • strictly decreasing if \(\theta _1>\theta _2\)

  • linear if either \(\beta _1=\beta _2\) or \(\theta _1=\theta _2\)

  • strictly convex if \((\beta _2-\beta _1)(\theta _2-\theta _1)>0\)

  • strictly concave if \((\beta _2-\beta _1)(\theta _2-\theta _1)<0\)

Remark 2

It is useful to determine the “distance” between \(\theta (\xi )\) and its linear counterpart \(\theta _1+\frac{\xi -\xi _1}{\xi _2-\xi _1}(\theta _2-\theta _1)\):

$$\begin{aligned} \Delta (\xi )=\theta (\xi )-\left( \theta _1 +\frac{\xi -\xi _1}{\xi _2-\xi _1}(\theta _2-\theta _1)\right) \end{aligned}$$

By means of simple calculations we get:

$$\begin{aligned} \Delta (\xi )=\frac{(\theta _2-\theta _1)(\beta _2-\beta _1)}{(\xi _2-\xi _1)} \cdot \frac{-(\xi -\xi _1)(\xi _2-\xi )}{(\xi -\xi _1) \beta _1+(\xi _2-\xi )\beta _2} \end{aligned}$$

Clearly, if either \(\beta _1=\beta _2\) or \(\theta _1=\theta _2\), then \(\Delta (\xi )\) is constantly null. If \((\beta _2-\beta _1)(\theta _2-\theta _1)\ne 0\), it is interesting to determine the “maximum distance” \(\Delta (\xi )\). In light of this, notice that:

$$\begin{aligned} \Delta '(\xi )=\frac{(\theta _2-\theta _1)(\beta _2-\beta _1)}{(\xi _2-\xi _1)} \cdot \frac{(\xi -\xi _1)^2\beta _1-(\xi _2-\xi )^2\beta _2}{\left[ (\xi -\xi _1)\beta _1+(\xi _2-\xi )\beta _2\right] ^2} \end{aligned}$$

which vanishes when \((\xi -\xi _1)^2\beta _1=(\xi _2-\xi )^2\beta _2\) that is \((\xi -\xi _1)\sqrt{\beta _1}=(\xi _2-\xi )\sqrt{\beta _2}\) (all factors are positive). The “maximum distance” is then reached at:

$$\begin{aligned} \xi ^*=\frac{\xi _1\sqrt{\beta _1}+\xi _2\sqrt{\beta _2}}{\sqrt{\beta _1}+\sqrt{\beta _2}}=\xi _1+(\xi _2-\xi _1) \frac{\sqrt{\beta _2}}{\sqrt{\beta _1}+\sqrt{\beta _2}} \end{aligned}$$

so that:

$$\begin{aligned} \Delta (\xi ^*)=\frac{(\theta _2-\theta _1) (\beta _2-\beta _1)}{(\xi _2-\xi _1)} \cdot \frac{-(\xi _2-\xi _1)}{\left( \sqrt{\beta _1}+\sqrt{\beta _2}\right) ^2} =\frac{-(\theta _2-\theta _1)(\beta _2-\beta _1)}{\left( \sqrt{\beta _1} +\sqrt{\beta _2}\right) ^2} \end{aligned}$$

As expected, if \(\theta (\xi )\) is strictly concave, then \((\theta _2-\theta _1)(\beta _2-\beta _1)<0\) and the “distance” is positive (right-hand side of Fig. 1), while if \(\theta (\xi )\) is strictly convex, then \((\theta _2-\theta _1)(\beta _2-\beta _1)>0\) and the “distance” is negative (left-hand side of Fig. 1).

Fig. 1
figure 1

Plots of \(\theta (\xi )\) with \(\theta _1=\xi _1=0\) and \(\theta _2=\xi _2=1\)

3.2 Feasible levels

The feasible levels set is defined as:

$$\begin{aligned} \Lambda =\left\{ \xi \in {{\mathbb {R}}}:\ \xi =\frac{d^Tx+d_0}{b^Tx+b_0},\ x\in X\right\} \end{aligned}$$
(4)

Scalar values in \(\Lambda \) are said feasible levels. In the following, specific values of \(\Lambda \) will be denoted with \(\xi '\), \(\xi _1\), \(\xi _2\), and so on.

Theorem 6

The following properties hold:

  1. i)

    \(\Lambda \) is convex;

  2. ii)

    if X is bounded, then \(\Lambda \) is compact.

Proof

i) The set \(X\subset \mathbb {R}^n\) is a polyhedron, hence it is convex. All convex sets are connected, and hence X is connected too. Given a continuous function, the image of a connected set is connected too. As a consequence, the continuity of \(\frac{d^Tx+d_0}{b^Tx+b_0}\) implies that \(\Lambda \) is connected. Subsets of \(\mathbb {R}\) are convex if and only if they are connected. As a consequence, the set \(\Lambda \subseteq \mathbb {R}\) is convex.

ii) The set \(X\subset \mathbb {R}^n\) is a closed polyhedron and is bounded, hence it is compact. Given a continuous function, the image of a compact set is compact too. As a consequence, the continuity of \(\frac{d^Tx+d_0}{b^Tx+b_0}\) implies that \(\Lambda \) is compact. \(\square \)

Remark 3

Notice that the closedness of polyhedron X does not guarantee the closedness of \(\Lambda \). For example, consider the closed unbounded polyhedral set \(X=\{x\in \mathbb {R}:\ x\ge 0\}\) and values \(d=b=1\), \(d_0=0\), \(b_0=1\). Then, it is:

$$\begin{aligned} \Lambda =\left\{ \xi \in {{\mathbb {R}}}:\ \xi =\frac{x}{x+1},\ x\ge 0\right\} =[0,1) \end{aligned}$$

which is a bounded interval neither open nor closed.

For the sake of convenience, the following values can be determined:

$$\begin{aligned} \xi _{min}=\inf \limits _{x\in X} \frac{d^Tx+d_0}{b^Tx+b_0} \quad , \quad \xi _{max}=\sup \limits _{x\in X} \frac{d^Tx+d_0}{b^Tx+b_0} \end{aligned}$$

Notice that \(\xi _{min}\) and \(\xi _{max}\) can be computed by means of a Charnes-Cooper transformation (Charnes and Cooper 1962) or by means of the method proposed in Cambini and Sodini (2010), Cambini (2020), Cambini and Venturi (2021).

3.3 Optimal level solutions

Given a specific feasible level \(\xi '\in \Lambda \), the corresponding subset of X can be defined as:

$$\begin{aligned} X_{\xi '}=\left\{ x\in X: \ \xi '=\frac{d^Tx+d_0}{b^Tx+b_0}\right\} =\left\{ x\in X: \ d^Tx+d_0-\xi '(b^Tx+b_0) =0 \right\} \end{aligned}$$

Notice that the set \(X_{\xi '}\) is a polyhedron too. Moreover, the following parametric subproblems can be introduced for all \(\xi \in \Lambda \):

$$\begin{aligned} P_{\xi } : {{\inf \limits _{x\in X_{\xi }}}} \ \phi \left( c^Tx+c_0,\xi \right) \qquad ; \qquad \hat{P}_{\xi } : \inf \limits _{x\in X_{\xi }} \ c^Tx+c_0 \end{aligned}$$

Notice that being \(\phi (\theta ,\xi )\) strictly increasing with respect to its first variable \(\theta \), then subproblem \(P_{\xi }\) can be solved by means of the linear programming subproblem \(\hat{P}_{\xi }\). Given a specific feasible level \(\xi '\in \Lambda \), optimal solutions of \(P_{\xi '}\) and \(\hat{P}_{\xi '}\), if they exist, are said to be optimal level solutions. The set \(S_{\xi '}\subset X_{\xi '}\) collects all of these optimal level solutions. It is worth recalling that the optimal level solutions have been the key tool in stating the so called “optimal level solutions method”, see for all (Cambini and Martein 2009; Cambini and Sodini 2002, 2003, 2008, 2010, 2014).

As preliminary results, let us now provide some conditions related to the existence of optimal level solutions. These conditions extend some of the results proved in Cambini and Sodini (2010), Cambini and Venturi (2021). Let us also recall that for Theorem 6, if X is bounded, then \(\Lambda \) is convex and compact.

Theorem 7

Consider problem P. The following properties hold:

  1. i)

    if there exists \(\xi '\in \Lambda \) such that \(S_{\xi '}=\emptyset \), then \(S_{\xi }=\emptyset \) \(\forall \xi \in \Lambda \);

  2. ii)

    if there exists \(\xi '\in \Lambda \) such that \(S_{\xi '}\ne \emptyset \), then \(S_{\xi }\ne \emptyset \) \(\forall \xi \in \Lambda \);

  3. iii)

    if there exists \(\xi '\in \Lambda \) such that \(S_{\xi '}\ne \emptyset \) and \(\Lambda \) is compact, then problem P admits at least one optimal solution;

  4. iv)

    every local minimum of P is also an optimal level solution.

Proof

i) Since X is a closed polyhedron and \(S_{\xi '}=\emptyset \), then \(\inf _{x\in X_{\xi '}}c^Tx=-\infty \) and hence there exists a half-line \(x=x'+tu\), \(t\ge 0\), contained in \(X_{\xi '}\) such that for all \(t\ge 0\):

$$\begin{aligned} \xi '=\frac{d^Tx+d_0}{b^Tx+b_0} =\frac{d^Tx'+d_0+td^Tu}{b^Tx'+b_0+tb^Tu} \end{aligned}$$

and \(\lim _{t\rightarrow +\infty } c^Tx'+tc^Tu=-\infty \). As a consequence, \(c^Tu<0\). Moreover, \(t(\xi 'b-d)^Tu=(d^Tx'+d_0)-\xi '(b^Tx'+b_0)=0\) for all \(t\ge 0\) which implies \((\xi 'b-d)^Tu=0\). Given any feasible level \(\xi \in \Lambda \), we can consider a half-line \(x=x_{\xi }+tu\), \(t\ge 0\), where \(x_{\xi }\in X_{\xi }\) and u is the direction of the half-line contained in \(X_{\xi '}\). Since \((\xi 'b-d)^Tu=0\), this half-line belongs to \(X_{\xi }\) and from \(c^Tu<0\) it follows that \(\lim _{t\rightarrow +\infty } c^T(x_{\xi }+tu) =\lim _{t\rightarrow +\infty } (c^Tx_{\xi }+tc^Tu)=-\infty \) and hence \(S_{\xi }=\emptyset \).

ii) Assume by contradiction that there exists \(\xi '\in \Lambda \) such that \(S_{\xi '}=\emptyset \). Then, i) yields \(S_{\xi }=\emptyset \) \(\forall \xi \in \Lambda \), which contradicts the assumption.

iii) Assume by contradiction that P has no optimal solutions. Then, there exists a half-line \(x=x'+tu\), \(t\ge 0\), such that:

$$\begin{aligned} \inf \limits _{x\in X} \ \phi \left( c^Tx+c_0,\frac{d^Tx+d_0}{b^Tx+b_0}\right) =\lim _{t\rightarrow +\infty } \phi \left( c^T(x'+tu)+c_0, \frac{d^T(x'+tu)+d_0}{b^T(x'+tu)+b_0} \right) \end{aligned}$$

Notice that \(\lim _{t\rightarrow +\infty } \frac{d^Tx'+d_0+td^Tu}{b^Tx'+b_0+tb^Tu}=\frac{d^Tu}{b^Tu}\). Since \(\frac{d^Tx'+d_0+td^Tu}{b^Tx'+b_0+tb^Tu}\in \Lambda \) and \(\Lambda \) is compact, then \(\hat{\xi }=\frac{d^Tu}{b^Tu}\in \Lambda \). Moreover, since P has no optimal solutions, then \(\lim _{t\rightarrow +\infty } c^Tx'+c_0+tc^Tu=-\infty \) and hence \(c^Tu<0\). Let \(\hat{x}\in X_{\hat{\xi }}\) so that \(\hat{\xi }=\frac{d^T\hat{x}+d_0}{b^T\hat{x}+b_0}\) and consider the half-line \(x=\hat{x}+tu\), \(t\ge 0\), where u is the direction of the previous half-line. Taking into account this new half-line, it results:

$$\begin{aligned} \hat{\xi }=\frac{d^T\hat{x}+d_0}{b^T\hat{x}+b_0}\quad \text{ and } \quad \hat{\xi }=\frac{d^Tu}{b^Tu}=\lim _{t\rightarrow +\infty } \frac{d^T\hat{x}+d_0+td^Tu}{b^T\hat{x}+b_0+tb^Tu} \end{aligned}$$

By Theorem 4, the linear fractional function \(\frac{d^Tx+d_0}{b^Tx+b_0}\) along the half-line \(x=\hat{x}+tu\), \(t\ge 0\), must be constant, so that \(\hat{x}+tu\in X_{\hat{\xi }}\) for all \(t\ge 0\). Being \(c^Tu<0\), it results \(\lim _{t\rightarrow +\infty } c^T\hat{x}+c_0+tc^Tu=-\infty \) so that there are no optimal level solutions for \(\hat{\xi }\in \Lambda \). For i), it follows that \(S_{\xi }=\emptyset \) for all \(\xi \in \Lambda \) and this contradicts the assumptions.

iv) Let \(x'\in X\) be a local minimum of P, let \(\xi '=\frac{d^Tx'+d_0}{b^Tx'+b_0}\) the corresponding feasible level, and suppose by contradiction that it is not an optimal level solution. Then, there exists \(y\in X_{\xi '}\) such that \(c^Ty<c^Tx'\) with \(\xi '=\frac{d^Ty+d_0}{b^Ty+b_0}\). As a consequence, for all \(\lambda \in (0,1)\) it is

$$\begin{aligned} \frac{d^T(x'+\lambda (y-x'))+d_0}{b^T(x'+\lambda (y-x'))+b_0}= & {} \frac{d^Tx'+d_0+\lambda (d^Ty+d_0-d^Tx'-d_0)}{b^T(x'+\lambda (y-x'))+b_0}\\= & {} \frac{\xi '(b^Tx'+b_0)+\xi '\lambda (b^Ty+b_0-b^Tx'-b_0)}{b^Tx' +b_0+\lambda (b^Ty+b_0-b^Tx'-b_0)}= \xi ' \end{aligned}$$

and \(c^T(x'+\lambda (y-x'))<c^Tx'\) . Since \(\phi (\cdot ,\cdot )\) is strictly increasing with respect to its first variable, it holds:

$$\begin{aligned} \phi (c^T(x'+\lambda (y-x'))+c_0,\xi ')<\phi (c^Tx'+c_0,\xi ') \end{aligned}$$

and this contradicts the local optimality of \(x'\) with respect to problem P. \(\square \)

The following results follow straightforward from the previous theorem:

  • if P admits at least one local minimum, then \(S_{\xi }\ne \emptyset \) \(\forall \xi \in \Lambda \).

  • if P admits at least one local minimum and \(\Lambda \) is compact, then problem P admits at least one optimal solution.

Moreover, the results stated in the previous theorem can be improved by means of following value:

$$\begin{aligned} \theta _{min}=\inf \limits _{x\in X} c^Tx+c_0 \end{aligned}$$

Theorem 8

Consider problem P. The following properties hold:

  1. i)

    if \(\theta _{min}>-\infty \) then \(\exists x_{\theta _{min}}\in X\) such that:

    $$\begin{aligned} x_{\theta _{min}}=\arg \min \limits _{x\in X} c^Tx+c_0 \quad \text{ and } \quad x_{\theta _{min}}\in S_{\xi _{\theta _{min}}}\ne \emptyset \, \ \xi _{\theta _{min}}=\frac{d^Tx_{\theta _{min}}+d_0}{b^Tx_{\theta _{min}}+b_0} \end{aligned}$$
  2. ii)

    if \(\theta _{min}>-\infty \) then \(S_{\xi }\ne \emptyset \) \(\forall \xi \in \Lambda \);

  3. iii)

    if \(\theta _{min}>-\infty \) and the set of feasible levels \(\Lambda \) is compact, then problem P admits at least one optimal solution.

Proof

i) If \(\theta _{min}>-\infty \) then \(\inf \limits _{x\in X} c^Tx+c_0\) is reached as a minimum, so that there exists \(x_{\theta _{min}}=\arg \min \limits _{x\in X} c^Tx+c_0\). Defined \(\xi _{\theta _{min}}\in \Lambda \), then \(x_{\theta _{min}}\) results to be an optimal level solution corresponding to the feasible level \(\xi _{\theta _{min}}\) since it is \(c^Tx+c_0\ge \theta _{min}\) for all \(x\in X\supset X_{\xi _{\theta _{min}}}\).

ii) Follows from i) and from ii) of Theorem 7.

iii) Follows from i) and from iii) of Theorem 7. \(\square \)

Remark 4

Regarding ii) of Theorem 8, it is worth noticing that it is possible to have \(\theta _{min}=-\infty \) and \(S_{\xi }\ne \emptyset \) \(\forall \xi \in \Lambda \). For example, consider the closed unbounded polyhedral set \(X=\{(x_1,x_2)\in \mathbb {R}^2:\ x_2\ge x_1\}\), vectors \(c=(1,1)^T\), \(d=(1,0)^T\), \(b=(0,0)^T\) and values \(c_0=d_0=0\), \(b_0=1\), so that the problem is:

$$\begin{aligned} \left\{ \begin{array}{c} {{\inf \limits _{(x_1,x_2)\in \mathbb {R}^2}}} \ \phi \left( x_1+x_2,x_1\right) \\ \ x_2\ge x_1 \end{array}\right. \end{aligned}$$

It results \(\theta _{min}=\inf \limits _{(x_1,x_2)\in X} x_1+x_2=-\infty \) and \(\Lambda =\mathbb {R}\). Moreover, for all \(\xi \in \Lambda \) it is \(X_{\xi }=\{(x_1,x_2)\in \mathbb {R}^2:\ x_2\ge x_1\ ,\ x_1=\xi \}\) so that:

$$\begin{aligned} \arg \min _{(x_1,x_2)\in X_{\xi }}(x_1+x_2)=(\xi ,\xi ) \in S_{\xi }\ne \emptyset \ . \end{aligned}$$

3.4 Optimal value functions

For the sake of convenience, the following optimal value functions can be introduced:

$$\begin{aligned} \sigma \left( \xi \right) =\inf \limits _{x\in X_{\xi }} \ \phi \left( c^Tx+c_0,\xi \right) \quad , \quad \hat{\theta }\left( \xi \right) =\inf \limits _{x\in X_{\xi }} \ c^Tx+c_0 \quad , \quad \xi \in \Lambda \end{aligned}$$

Notice that the fact that \(\phi (\theta ,\xi )\) is strictly increasing with respect to its first variable \(\theta \) implies that \(\sigma \left( \xi \right) =\phi \left( \hat{\theta }\left( \xi \right) ,\xi \right) \).

The properties stated in the previous subsection are very useful since they suggest a simple way to check the existence of optimal level solutions. In light of this, let us first define the following starting feasible level \(\xi _0\):

$$\begin{aligned} \xi _0=\left\{ \begin{array}{cl} 0 &{} \text{ if } \xi _{min}\xi _{max}\le 0\\ \xi _{min} &{} \text{ if } \xi _{min}>0 \text{(and } \text{ hence } \xi _{max}>0) \\ \xi _{max} &{} \text{ if } \xi _{max}<0 \text{(and } \text{ hence } \xi _{min}<0) \end{array}\right. \end{aligned}$$
(5)

The following two cases occur:

  • if \(S_{\xi _0}=\emptyset \), then \(S_{\xi }=\emptyset \) \(\forall \xi \in \Lambda \) so that:

    $$\begin{aligned} \inf \limits _{x\in X} \phi \left( c^Tx+c_0,\frac{d^Tx+d_0}{b^Tx+b_0}\right) =\inf \limits _{\xi \in \Lambda } \ \inf \limits _{x\in X_{\xi }} \phi \left( c^Tx+c_0,\xi \right) =\inf \limits _{\xi \in \Lambda } \ \phi \left( -\infty ,\xi \right) \end{aligned}$$
  • if \(S_{\xi _0}\ne \emptyset \), then \(S_{\xi }\ne \emptyset \) \(\forall \xi \in \Lambda \) so that:

    $$\begin{aligned} \inf \limits _{x\in X} \phi \left( c^Tx+c_0, \frac{d^Tx+d_0}{b^Tx+b_0}\right) =\inf \limits _{\xi \in \Lambda } \ \min \limits _{x\in X_{\xi }} \phi \left( c^Tx+c_0,\xi \right) =\inf \limits _{\xi \in \Lambda } \ \phi \left( \hat{\theta } \left( \xi \right) ,\xi \right) \end{aligned}$$

It is now possible to prove the following fundamental result, which will allow to determine an underestimation function for \(\sigma \left( \xi \right) \) and hence to develop a solution algorithm based on a partitioning approach.

Theorem 9

Assume \(S_{\xi }\ne \emptyset \) \(\forall \xi \in \Lambda \). Then, the optimal value function \(\hat{\theta }(\xi )\), \(\xi \in \Lambda \), is a semistrictly quasiconvex function. Moreover, if \(\theta _{min}>-\infty \), then define:

$$\begin{aligned} \xi ^{L}_{\theta _{min}}=\inf \limits _{x\in X, c^Tx+c_0=\theta _{min}} \frac{d^Tx+d_0}{b^Tx+b_0} \quad , \quad \xi ^{R}_{\theta _{min}} =\sup \limits _{x\in X, c^Tx+c_0=\theta _{min}} \frac{d^Tx+d_0}{b^Tx+b_0} \end{aligned}$$

so that it results:

  • \(\hat{\theta }(\xi )\) is strictly decreasing for \(\xi \in \Lambda \), \(\xi \le \xi ^{L}_{\theta _{min}}\)

  • \(\hat{\theta }(\xi )=\theta _{min}\) for all \(\xi \in [\xi ^{L}_{\theta _{min}},\xi ^{R}_{\theta _{min}}]\)

  • \(\hat{\theta }(\xi )\) is strictly increasing for \(\xi \in \Lambda \), \(\xi \ge \xi ^{R}_{\theta _{min}}\)

Finally, if \(\theta _{min}=-\infty \), then \(\hat{\theta }(\xi )\) is strictly monotone for \(\xi \in \Lambda \).

Proof

We have to prove that if \(\hat{\theta }(\xi _1)<\hat{\theta }(\xi _2)\), then \(\hat{\theta }(\xi _1+\lambda (\xi _2-\xi _1))<\hat{\theta }(\xi _2)\) for all \(\lambda \in [0,1]\). Assume by contradiction that there exists \(\bar{\lambda }\in [0,1]\) such that \(\hat{\theta }(\bar{\xi })\ge \hat{\theta }(\xi _2)\), \(\bar{\xi }=\xi _1+\bar{\lambda }(\xi _2-\xi _1)\), and let \(x_1=\arg \min \limits _{x\in X_{\xi _1}} \ c^Tx+c_0\) and \(x_2=\arg \min \limits _{x\in X_{\xi _2}} \ c^Tx+c_0\), so that \(\hat{\theta }(\xi _1)=c^Tx_1+c_0\) and \(\hat{\theta }(\xi _2)=c^Tx_2+c_0\). Consider the feasible segment \([x_1,x_2]\). By Theorem 5 and Remark 1, being \(\xi _1\ne \xi _2\), there exists one and only one \(\bar{x}\in [x_1,x_2]\cap X_{\bar{\xi }}\). Moreover, being \(c^Tx_1+c_0<c^Tx_2+c_0\), then \(c^Tx+c_0\) is strictly monotone on the segment \([x_1,x_2]\) so that:

$$\begin{aligned} c^T\bar{x}+c_0<c^Tx_2+c_0=\hat{\theta }(\xi _2) \le \hat{\theta }(\bar{\xi }) \end{aligned}$$

which is a contradiction since \(\bar{x}\in X_{\bar{\xi }}\) and \(\hat{\theta }(\bar{\xi })=\min \limits _{x\in X_{\bar{\xi }}} \ c^Tx+c_0\).

Being \(\hat{\theta }(\xi )\) semistrictly quasiconvex, then every local minimum results to be global minimum too, and the set of global minima is convex. As a consequence, \(\hat{\theta }(\xi )\) can be constant over an interval \([\xi _1,\xi _2]\) only if \(\hat{\theta }(\xi )=\theta _{min}\) for all \(\xi \in [\xi _1,\xi _2]\), while \(\hat{\theta }(\xi )\) is strictly monotone in intervals \([\xi _1,\xi _2]\) such that \([\xi ^{L}_{\theta _{min}}, \xi ^{R}_{\theta _{min}}] \cap [\xi _1,\xi _2]=\emptyset \) or when \(\theta _{min}=-\infty \). \(\square \)

3.5 Underestimation functions

In order to propose a partitioning solution method, an underestimation function for \(\sigma \left( \xi \right) \) is needed.

Definition 4

Assume \(S_{\xi }\ne \emptyset \) \(\forall \xi \in \Lambda \). A function \(\psi (\xi )\) such that \(\psi (\xi )\le \sigma \left( \xi \right) \) \(\forall \xi \in [\xi _1,\xi _2]\subseteq \Lambda \) is said to be an underestimation function for \(\sigma \left( \xi \right) \) in \([\xi _1,\xi _2]\). Moreover, a function \(\gamma (\xi )\) such that \(\gamma (\xi )\le \hat{\theta }\left( \xi \right) \) \(\forall \xi \in [\xi _1,\xi _2]\subseteq \Lambda \) is said to be an underestimation function for \(\hat{\theta }\left( \xi \right) \) in \([\xi _1,\xi _2]\).

A particular underestimation function \(\psi (\xi )\) for \(\sigma (\xi )\) in \([\xi _1, \xi _2]\) can be built by considering the composition \(\phi (\gamma (\xi ), \xi )\),where \(\gamma (\xi )\) is an understimation function for \(\hat{\theta }(\xi )\) in \([\xi _1, \xi _2]\).

Theorem 10

Let \([\xi _1,\xi _2]\subseteq \Lambda \) and let \(\gamma (\xi )\) be an underestimation function for \(\hat{\theta }\left( \xi \right) \) in \([\xi _1,\xi _2]\). Then, \(\psi (\xi )=\phi \left( \gamma (\xi ),\xi \right) \) is an underestimation function for \(\sigma \left( \xi \right) \) in \([\xi _1,\xi _2]\).

Proof

Being function \(\phi (\cdot ,\cdot )\) strictly increasing with respect to its first variable, it results:

$$\begin{aligned} \psi (\xi )=\phi \left( \gamma (\xi ),\xi \right) \le \phi \left( \hat{\theta }\left( \xi \right) ,\xi \right) =\sigma \left( \xi \right) \quad \forall \xi \in [\xi _1,\xi _2] \end{aligned}$$
(6)

and hence \(\psi (\xi )\) is an underestimation function for \(\sigma \left( \xi \right) \) in \([\xi _1,\xi _2]\). \(\square \)

The following results will suggest some stopping criteria for the solution algorithm, thus allowing to improve its performance.

Theorem 11

Let \([\xi _1,\xi _2]\subseteq \Lambda \), let \(\psi (\xi )\) be an underestimation function for \(\sigma \left( \xi \right) \) in \([\xi _1,\xi _2]\) and assume that:

$$\begin{aligned} \xi _m=\arg \min _{\xi \in [\xi _1,\xi _2]} \psi (\xi ) \quad \text{ and } \quad \psi (\xi _m)=\sigma (\xi _m) \end{aligned}$$

Then, \(\xi _m=\arg \min _{\xi \in [\xi _1,\xi _2]} \sigma (\xi )\).

Proof

Just notice that:

$$\begin{aligned} \sigma (\xi _m)=\psi (\xi _m)\le \psi (\xi ) \le \sigma (\xi ) \quad \forall \xi \in [\xi _1,\xi _2] \end{aligned}$$

so that \(\xi _m=\arg \min _{\xi \in [\xi _1,\xi _2]} \sigma (\xi )\). \(\square \)

The following corollary comes straightforward from the previous theorem.

Corollary 1

Let \([\xi _1,\xi _2]\subseteq \Lambda \), let \(\gamma (\xi )\) be an underestimation function for \(\hat{\theta }\left( \xi \right) \) in \([\xi _1,\xi _2]\), let \(\psi (\xi )=\phi \left( \gamma (\xi ),\xi \right) \) and assume that:

$$\begin{aligned} \xi _m=\arg \min _{\xi \in [\xi _1,\xi _2]} \psi (\xi ) \quad \text{ and } \quad \gamma (\xi _m)=\hat{\theta }\left( \xi _m\right) \end{aligned}$$

Then, \(\xi _m=\arg \min _{\xi \in [\xi _1,\xi _2]} \sigma (\xi )\).

Proof

Just notice that \(\psi (\xi _m)=\phi \left( \gamma (\xi _m),\xi \right) =\phi \left( \hat{\theta }\left( \xi _m\right) ,\xi \right) =\sigma (\xi _m)\). \(\square \)

The results stated in Subsection 3.4 allow to determine the following properties.

Theorem 12

Let \([\xi _1,\xi _2]\subseteq \Lambda \) and assume that one of the following conditions holds:

  • \(\theta _{min}=-\infty \);

  • \(\theta _{min}>-\infty \) with either \(\xi ^{R}_{\theta _{min}}\le \xi _1\) or \(\xi _2\le \xi ^{L}_{\theta _{min}}\).

Then, the following functions \(\gamma _1(\xi )\) and \(\psi _1(\xi )\) are underestimation functions in \([\xi _1,\xi _2]\) for \(\hat{\theta }\left( \xi \right) \) and \(\sigma \left( \xi \right) \), respectively:

$$\begin{aligned} \gamma _1(\xi )={{\min }}\{\hat{\theta }(\xi _1),\hat{\theta }(\xi _2)\} \quad \text{ and } \quad \psi _1(\xi )=\phi \left( \gamma _1(\xi ),\xi \right) \end{aligned}$$

Moreover, the following results hold:

  1. i)

    if \(\xi _1=\arg \min _{\xi \in [\xi _1,\xi _2]} \psi _1(\xi )\) and \(\hat{\theta }\left( \xi _1\right) \le \hat{\theta }\left( \xi _2\right) \), then \(\xi _1=\arg \min _{\xi \in [\xi _1,\xi _2]} \sigma (\xi )\);

  2. ii)

    if \(\xi _2=\arg \min _{\xi \in [\xi _1,\xi _2]} \psi _1(\xi )\) and \(\hat{\theta }\left( \xi _2\right) \le \hat{\theta }\left( \xi _1\right) \), then \(\xi _2=\arg \min _{\xi \in [\xi _1,\xi _2]} \sigma (\xi )\).

Proof

By Theorem 9 it follows that \(\hat{\theta }(\xi )\) is strictly monotone in \([\xi _1,\xi _2]\) which yields:

$$\begin{aligned} \gamma _1(\xi )=\min \{\hat{\theta }(\xi _1),\hat{\theta }(\xi _2)\} \le \hat{\theta }\left( \xi \right) \quad \forall \xi \in [\xi _1,\xi _2] \end{aligned}$$

so that \(\gamma _1(\xi )\) is an underestimation functions for \(\hat{\theta }\left( \xi \right) \) in \([\xi _1,\xi _2]\). By Theorem 10 this yields that \(\psi _1(\xi )\) is an underestimation functions for \(\sigma \left( \xi \right) \) in \([\xi _1,\xi _2]\). Finally, to prove i) assume \(\xi _1=\arg \min _{\xi \in [\xi _1,\xi _2]} \psi _1(\xi )\) and \(\hat{\theta }\left( \xi _1\right) \le \hat{\theta }\left( \xi _2\right) \). Then, \(\gamma _1(\xi _1)=\min \{\hat{\theta }(\xi _1),\hat{\theta }(\xi _2)\}=\hat{\theta }\left( \xi _1\right) \) so that the result follows from Corollary 1. The proof of ii) is analogous. \(\square \)

4 Partitioning solution method for \(\textbf{P}\)

The results stated in Sect. 3 allow us to state an iterative partitioning solution method for problem P. Specifically, in each iteration of the proposed algorithm:

  • the best optimal level solution, denoted as Sol, found so far is maintained, as well as its value UB;

  • the partition of the feasible region corresponding to an interval \([\xi _1,\xi _2]\subset \Lambda \) of the feasible levels set is analysed and eventually splitted;

The strategy of such a solution methods is:

  • to store the partitions and their lower bound in a priority queue;

  • to analyse the partitions stored in the queue following a priority order, that is to say that the partition with the smallest lower bound is visited first;

  • to postpone as much as possible the analysis of the partitions having larger lower bounds;

  • to avoid the visit of the partitions whose lower bound is bigger than the incumbent optimal value (these partitions cannot improve the incumbent optimal solution).

The following auxiliary subprocedure “OptLevSol()” will be very used in the solution algorithm. Its aim is twofold, that is, to determine the optimal level solution corresponding to the feasible level \(\xi '\in \Lambda \) and to improve (if possible) the values of UB and Sol.

Subprocedure OptLevSol (inputs: \(\xi '\); outputs: \(\hat{\theta }(\xi ')\))

  • Let \(x':=\arg \min \limits _{x\in X_{\xi '}} c^Tx+c_0\), \(\hat{\theta }(\xi ')=c^Tx'+c_0\), \(val'=\phi (\hat{\theta }(\xi '),\xi ')\);

  • if \(val'<UB\) then \(UB:=val'\), \(Sol:=x'\) end if;

end subproc.

4.1 Initializations and unboundedness

As it has been described in the introduction to this section, the partitioning method maintains, along iterations, the current best optimal level solution Sol as well as its value UB. The value of UB is fundamental to improve the performance of the algorithm since it is used to discard the not useful partitions. For this very reason, the algorithm should be initialized with Sol having a small UB value. Moreover, it is worth noticing that the feasible region may be unbounded (components of \(l_y\) and \(u_y\) may assume \(-\infty \) and \(+\infty \) values) so that there is the need to manage the case of unbounded \(\xi _{min}\) and \(\xi _{max}\). These preliminary steps are described in the following subprocedures “InitializeAlgorithm()” and “UnboundImproveUB()”.

Subprocedure InitializeAlgorithm()

  • Compute \(\xi _{min}:=\inf \limits _{x\in X} \frac{d^Tx+d_0}{b^Tx+b_0}\), \(\xi _{max}:=\sup \limits _{x\in X} \frac{d^Tx+d_0}{b^Tx+b_0}\);

  • if \(\xi _{min}\xi _{max}\le 0\) then \(\xi _0:=0\) elseif \(\xi _{min}>0\) then \(\xi _0:=\xi _{min}\) else \(\xi _0:=\xi _{max}\) end if;

  • if \(\inf \limits _{x\in X_{\xi _0}} c^Tx+c_0=-\infty \) then

  •          \(Opt^*:=[]\), \(Val^*:=\inf \limits _{\xi \in [\xi _{min},\xi _{max}]} \ \phi \left( -\infty ,\xi \right) \), QuitProcedure;

  • end if;

  • Let \(UB:=+\infty \) and \(\hat{\theta }(\xi _0):=OptLevSol(\xi _0)\);

end subproc.

The aim of subprocedure “InitializeAlgorithm()” is to determine the set \(\Lambda \) of feasible levels and to use the results of Subsection 4.4 in order to determine whether \(S_{\xi }=\emptyset \) \(\forall \xi \in \Lambda \) or \(S_{\xi }\ne \emptyset \) \(\forall \xi \in \Lambda \). In the former case, just \(\phi \left( -\infty ,\xi \right) \) have to be analyzed over \(\Lambda \), while in the latter case Sol and UB are initialized.

Subprocedure UnboundImproveUB()

  • Let \(\xi _{big}>>0\);

  • if \(\xi _{min}>-\inf \) then \(\xi _{L}:=\xi _{min}\) else \(\xi _{L}:=-\xi _{big}\) end if;

  • if \(\xi _{max}<+\inf \) then \(\xi _{R}:=\xi _{max}\) else \(\xi _{R}:=\xi _{big}\) end if;

  • Let \(\hat{\theta }(\xi _L):=OptLevSol(\xi _L)\);

  • Let \(\hat{\theta }(\xi _R):=OptLevSol(\xi _R)\);

  • if \(\xi _{min}<\xi _{L}\) then

  •       \([opt,val]:=SolveUnbound(\phi , X, \xi _{min},\xi _{L})\);

  •       if \(val<UB\) then \(UB:=val\), \(Sol:=opt\) end if;

  • end if;

  • if \(\xi _{max}>\xi _{R}\) then

  •       \([opt,val]:=SolveUnbound(\phi , X, \xi _{R},\xi _{max})\);

  •       if \(val<UB\) then \(UB:=val\), \(Sol:=opt\) end if;

  • end if;

end subproc.

The aim of subprocedure “UnboundImproveUB()” is twofold: to manage the unbounded sides of the feasible region (if any) and to improve variable UB with a smaller value. Specifically, the unbounded cases are recognized by means of the value \(\xi _{big}>>0\). The feasible levels can then be first partitioned into three subsets, that are the two possibly unbounded ones \([\xi _{min},\xi _{L}]\) and \([\xi _{R},\xi _{max}]\) and the compact one \([\xi _L,\xi _R]\). The unbounded subproblems are solved by means of procedure “SolveUnbound()” which just need to visit a recession line. Variable UB is improved as much as possible by means of the visit of the unbounded subregions, if there are any, and by means of the feasible levels \(\xi _L\) and \(\xi _R\). The compact interval \([\xi _L,\xi _R]\) will be studied later in the algorithm.

4.2 Partitions priority queue

The proposed solution algorithm needs to analyze several partitions with different feasible levels intervals \([\xi _1,\xi _2]\). The partitions are stored in a priority queue, PQ, and analyzed following a priority order, that is to say that the partition with the smallest lower bound is visited first. The priority queue is managed by means of the following commands:

  • \(AddToPQ(LB,\xi _a,\xi _b,\xi _p,\hat{\theta }(\xi _a), \hat{\theta }(\xi _b),\hat{\theta }(\xi _p))\);

  • \((LB,\xi _1,\xi _2,\xi ',\hat{\theta }(\xi _1), \hat{\theta }(\xi _2),\hat{\theta }(\xi ')):=ExtractFromPQ()\).

where \([\xi _a,\xi _b]\) denotes the generic interval added to the queue in the various iterations, while \([\xi _1,\xi _2]\) is the specific interval extracted from the queue in the single iteration.

The first command adds to the priority queue PQ the interval \([\xi _a,\xi _b]\), the level \(\xi _p\in [\xi _a,\xi _b]\) where the underestimation function \(\psi (\xi )\) reaches the minimum value, and the corresponding lower bound \(LB=\psi (\xi _p)\). For the sake of convenience, \(\hat{\theta }(\xi _a)\), \(\hat{\theta }(\xi _b)\) and \(\hat{\theta }(\xi _p)\) are stored too. Clearly, PQ is a priority queue and hence the smaller is the value of the lower bound LB, the higher the priority of the partition in the queue PQ will be.

The second command removes from the priority queue PQ the interval \([\xi _1,\xi _2]\) having the smaller lower bound LB and provides such an interval as the output, as well as the values of \(\xi '\), \(\hat{\theta }(\xi _1)\), \(\hat{\theta }(\xi _2)\) and \(\hat{\theta }(\xi ')\).

The following auxiliary subprocedure “EvalLevels()” is devoted to the analysis of a segment of feasible levels \([\xi _a,\xi _b]\).

Subprocedure EvalLevels(inputs: \(\xi _a,\xi _b,\hat{\theta }(\xi _a),\hat{\theta }(\xi _b)\))

  • Let \(\psi (\xi )=\phi \left( min\{\hat{\theta }(\xi _a), \hat{\theta }(\xi _b)\},\xi \right) \);

  • Let \(\xi _p:=\arg \min _{\xi \in [\xi _a,\xi _b]} \psi (\xi )\); \(LB:=\psi (\xi _p)\);

  • if \(LB< UB\) then

  •       Let \(\hat{\theta }(\xi _p):=OptLevSol(\xi _p)\);

  •       if \((\xi _b-\xi _a)>\epsilon \) then

  •             if \((\xi _p-\xi _a)\le \epsilon \) and \(\hat{\theta }(\xi _a)\le \hat{\theta }(\xi _b)\) then exit EvalLevels end if;

  •             if \((\xi _b-\xi _p)\le \epsilon \) and \(\hat{\theta }(\xi _b)\le \hat{\theta }(\xi _a)\) then exit EvalLevels end if;

  •             \(AddToPQ\left( LB,\xi _a,\xi _b,\xi _p, \hat{\theta }(\xi _a),\hat{\theta }(\xi _b),\hat{\theta }(\xi _p)\right) \);

  •       end if;

  • end if;

end subproc.

Specifically, the underestimation function proposed in Subsection 4.5 is used to compute a lower bound LB corresponding to the interval \([\xi _a,\xi _b]\) and an optimal level solution is stated with respect to the feasible level \(\xi _p\) giving the lower bound LB (eventually improving the value UB too). If \(LB\ge UB\), then the interval \([\xi _a,\xi _b]\) cannot improve the incumbent optimal solution and hence can be discarded. If \((\xi _b-\xi _a)\le \epsilon \), with \(\epsilon >0\) small enough (\(\epsilon =2^{-30}\) is used in the computational test of the forthcoming section), the interval \([\xi _a,\xi _b]\) can be discarded too. By i) and ii) of Theorem 12, if one of the following conditions holds:

  • \(\xi _p=\xi _a\) and \(\hat{\theta }(\xi _a)\le \hat{\theta }(\xi _b)\)

  • \(\xi _p=\xi _b\) and \(\hat{\theta }(\xi _b)\le \hat{\theta }(\xi _a)\)

then the optimal solution in \([\xi _a,\xi _b]\) has been found and there is no need to further visit such an interval (notice the use of the tolerance \(\epsilon \) to manage numerical issues). Finally, if no stopping condition held then the interval is added to the priority queue PQ as well as the other useful values. Notice that subprocedure “EvalLevels()” is the only one which adds records to the priority queue PQ.

The initialization process of the priority queue PQ is described in subprocedure “InitializePriorityQueue()”.

Subprocedure InitializePriorityQueue()

  • Let \(PQ:=\emptyset \), compute \(\theta _{min} :=\inf \limits _{x\in X} c^Tx+c_0\);

  • if \(\theta _{min}=-\infty \) then

  •             \(EvalLevels(\xi _L,\xi _R,\hat{\theta } (\xi _L),\hat{\theta }(\xi _R))\);

  •       else

  •             Let \(\xi ^{L}_{\theta _{min}}=\inf \limits _{x\in X, c^Tx+c_0=\theta _{min}} \frac{d^Tx+d_0}{b^Tx+b_0}\) , \(\xi ^{R}_{\theta _{min}}=\sup \limits _{x\in X, c^Tx+c_0=\theta _{min}} \frac{d^Tx+d_0}{b^Tx+b_0}\) ;

  •             Let \(\xi ^{*}_{\theta _{min}} =\arg \min \limits _{\xi \in [\xi ^{L}_{\theta _{min}}, \xi ^{R}_{\theta _{min}}]} \phi (\theta _{min},\xi )\) and \(\hat{\theta }(\xi ^{*}_{\theta _{min}}):\) \( \qquad \qquad =OptLevSol(\xi ^{*}_{\theta _{min}})\);

  •             if \(\xi _L<\xi ^{L}_{\theta _{min}}\) then \(EvalLevels(\xi _L,\xi ^{L}_{\theta _{min}}, \hat{\theta }(\xi _L),\theta _{min})\) end if;

  •             if \(\xi ^{R}_{\theta _{min}}<\xi _R\) then \(EvalLevels(\xi ^{R}_{\theta _{min}},\xi _R, \theta _{min},\hat{\theta }(\xi _R))\) end if;

  • end if;

end subproc.

Recall that if \(S_{\xi }\ne \emptyset \) \(\forall \xi \in \Lambda \), function \(\hat{\theta }(\xi )\), \(\xi \in \Lambda \), is semistrictly quasiconvex (see Subsection 4.4). As a consequence, if \(\theta _{min}=-\infty \), then \(\hat{\theta }(\xi )\) is strictly monotone in \([\xi _L,\xi _R]\), while if \(\theta _{min}>-\infty \), then it is worth to divide interval \([\xi _L,\xi _R]\) as follows:

$$\begin{aligned} {[}\xi _L,\xi _R]=[\xi _L,\xi ^{L}_{\theta _{min}}] \cup [\xi ^{L}_{\theta _{min}},\xi ^{R}_{\theta _{min}}] \cup [\xi ^{R}_{\theta _{min}},\xi _R] \end{aligned}$$

so that \(\hat{\theta }(\xi )\) results to be strictly monotone in \([\xi _L,\xi ^{L}_{\theta _{min}}]\) and \([\xi ^{R}_{\theta _{min}},\xi _R]\) (and an underestimation function to compute LB is available) and constant in \([\xi ^{L}_{\theta _{min}},\xi ^{R}_{\theta _{min}}]\) (and just \(\sigma (\xi )\) needs to be analyzed).

4.3 The main procedure

The main solution procedure receives, as inputs, the parameters of problem P and provides, as outputs, a global optimal solution, \(Opt^*\), and its value, \(Val^*\).

Procedure SolveP(inputs: P, \(\alpha \); outputs: \(Opt^*\), \(Val^*\))

  • \(\textit{InitializeAlgorithm}()\);

  • \(\textit{UnboundImproveUB}()\);

  • \(\textit{InitializePriorityQueue}()\);

  • while not(isempty(PQ)) do

  •       \((LB,\xi _1,\xi _2,\xi ',\hat{\theta }(\xi _1), \hat{\theta }(\xi _2),\hat{\theta }(\xi ')):=ExtractFromPQ()\);

  •       if \(LB\ge UB\) then \(PQ:=\emptyset \)

  •             else \(\xi _s:=\textit{DetermineSplitLevel}(\xi _1,\xi _2,\xi ')\);

  •                   \(\textit{SplitInterval} (\xi _1,\xi _2,\xi ',\xi _s,\hat{\theta }(\xi _1), \hat{\theta }(\xi _2),\hat{\theta }(\xi '))\);

  •       end if

  • end while;

  • Let \(Opt^*:=Sol\), \(Val^*:= UB\);

end proc.

In a preliminary phase, the algorithm is initialized by means of the subprocedures described in Subsections 4.1 and 4.2. In subprocedure “InitializeAlgorithm()” the feasible levels \(\xi _{min}\), \(\xi _{max}\) and \(\xi _0\) are computed. If there are no optimal level solutions (\(\inf \limits _{x\in X_{\xi _0}} c^Tx+c_0=-\infty \)), then an infimum is found and the whole procedure is closed. Otherwise, variables Sol and UB are initialized by means of the optimal level solution corresponding to the feasible level \(\xi _0\). Then, in subprocedure “UnboundImproveUB()” unboundedness is managed and the value of UB improved, finally in subprocedure “InitializePriorityQueue()” the priority queue PQ is initialized.

Various iterations are then executed, while the priority queue PQ is nonempty. The partition \([\xi _1,\xi _2]\) having the smallest lower bound LB is extracted. If \(LB\ge UB\), then all the partitions in the queue PQ result not to be able to improve the incumbent optimal solution and hence the queue itself can be emptied. If \(LB< UB\), the interval is split in subprocedure “SplitInterval()”, where the new intervals are evaluated by means of subprocedure “EvalLevels()”, with respect to the level \(\xi _s\) given by subprocedure “DetermineSplitLevel()”. In the next section, different splitting criteria will be described and compared. At the end of the procedure, the final results are set. Notice that the correctness of this proposed method is given by the explicit or implicit visit of all the optimal level solutions. Moreover, the algorithm convergence will be guaranteed by requiring the new intervals determined in subprocedure “SplitInterval()” to have a length smaller than \(90\%\) the length of \([\xi _1,\xi _2]\).

5 Splitting criteria and computational results

The proposed algorithm has been fully implemented in a macOS 13.2.1 environment with an M1 Pro 10-core processor, MATLAB 2022b for coding and Gurobi 10.0.1 as solver for LP problems. Three different objective functions have been considered in the computational test:

  1. i)

    \(\phi _1(y_1,y_2)=y_1y_2^4-y_2^2\),

  2. ii)

    \(\phi _2(y_1,y_2)=y_1(1.5+sin(5*y_2))\),

  3. iii)

    \(\phi _3(y_1,y_2)=log(y_1)(1.5+cos(4*y_2))-\sqrt{y_2}\).

Notice that these functions are not semistrictly quasiconvex and hence allow the presence of many local minima.

Problems with \(n = 50\) and \(n = 100\) variables have been considered, with 2n corresponding box constraints and with a number \(m = 2n\) of further inequality constraints. Various instances (200 for \(n = 50\) and 200 for \(n = 100\) for each of the three considered objective functions) have been randomly generated and solved with all the considered splitting criteria, with a grand total of 19200 problems solved. Specifically, matrices and vectors \(A_{in}\in \mathbb {R}^{m\times n}\), \(b_{in}\in \mathbb {R}^{m}\), \(A_{eq}\in \mathbb {R}^{p\times n}\), \(b_{eq}\in \mathbb {R}^{p}\), \(l,u,a,b,\bar{c},d\in \mathbb {R}^{n}\), have been randomly generated with components in the interval \([-10,10]\) by using the “randi()” MATLAB function (integer numbers generated with uniform distribution). Values \(a_0,b_0,\bar{c}_0,d_0\in \mathbb {R}\) are generated in order to guarantee that \(a^Ty+a_0>0\) and \(b^Ty+b_0>0\) for all \(y\in Y\). The generated instances have used to solve Problem \(\bar{P}\) with each of the three objective functions \(\phi _1(y_1,y_2)\), \(\phi _2(y_1,y_2)\) and \(\phi _3(y_1,y_2)\). The average number of visited partitions, the average number of computed optimal level solutions and the average time spent to solve the instances (obtained with the “tic” and “toc” MATLAB commands) are given as the result of the computational test. Values in bold emphasize the best performances obtained in the test.

5.1 The classical approach

The following splitting criteria for \([\xi _1,\xi _2]\) are commonly used in the literature:

  • split the interval with respect to the level \(\xi '\) which gave the lower bound LB, that is \([\xi _1,\xi _2]=[\xi _1,\xi '] \cup [\xi ',\xi _2]\); notice that this criteria may provide infinite loops if \(\xi '\approx \xi _2\) with \(\hat{\theta }(\xi _1)\le \hat{\theta }(\xi _2)\) or \(\xi '\approx \xi _1\) with \(\hat{\theta }(\xi _2)\le \hat{\theta }(\xi _1)\) (one of the new intervals would be almost equal to the old one), hence it will not be used in the forthcoming computational test;

  • split the interval with respect to the middle level \(\xi _m=\frac{\xi _1+\xi _2}{2}\), that is \([\xi _1,\xi _2]=[\xi _1,\xi _m]\cup [\xi _m,\xi _2]\); this criterion may be slow since does not take into account the info given by LB;

  • split the interval with respect to the level \(\xi _3:=\alpha \xi ' + (1-\alpha ) \xi _m\), with \(\alpha \in [0,1]\), that is \([\xi _1,\xi _2]=[\xi _1,\xi _3]\cup [\xi _3,\xi _2]\); this linear combination of \(\xi '\) and \(\xi _m\) is aimed to improve the use of \(\xi _m\) by using the information implicitly given by \(\xi '\); to guarantee the convergence of the method, \(\alpha \in [0,0.8]\) will be used (notice that \(\alpha =1\) means that the interval is split with respect to \(\xi '\)).

The following subprocedures “DetermineSplitLevel\(_1\)()” and “SplitInterval\(_1\)()” describe these criteria.

Procedure DetermineSplitLevel\(_1\)(inputs: \(\xi _1\), \(\xi _2\), \(\xi '\); outputs: \(\xi _s\))

  • Let \(\xi _m:=\frac{\xi _1+\xi _2}{2}\); \(\xi _s:=\alpha \xi ' + (1-\alpha ) \xi _m\);

end proc.

Procedure SplitInterval\(_1\)(inputs: \(\xi _1\), \(\xi _2\), \(\xi '\), \(\xi _s\), \(\hat{\theta }(\xi _1)\), \(\hat{\theta }(\xi _2)\), \(\hat{\theta }(\xi ')\))

  • if \(\xi '=\xi _s\) then

  •       \(EvalLevels(\xi _1,\xi ',\hat{\theta } (\xi _1),\hat{\theta }(\xi '))\);

  •       \(EvalLevels(\xi ',\xi _2,\hat{\theta } (\xi '),\hat{\theta }(\xi _2))\);

  • else \(\hat{\theta }(\xi _s):=OptLevSol(\xi _s)\);

  •          \(EvalLevels(\xi _1,\xi _s,\hat{\theta }(\xi _1), \hat{\theta }(\xi _s))\);

  •          \(EvalLevels(\xi _s,\xi _2,\hat{\theta }(\xi _s), \hat{\theta }(\xi _2))\);

  • end if

end proc.

The results obtained in the computational test are summarized in Table 1.

Table 1 “SplitInterval\(_1\)”, \(0\le \alpha \le 0.8\)

It is worth noticing that:

  • the number of visited partitions and the number of computed optimal level solutions do not vary so much with respect to the number of variables n. On the other hand, the number of variables strongly affects the time needed to solve the problem, due to the fact that the higher is the value of n, the higher is the time needed to compute an optimal level solution;

  • performances strongly depend on the objective function;

  • performances vary with respect to both the value of \(\alpha \) and the used objective function \(\phi \). Specifically, \(\alpha =0\) seems to be the choice for \(\phi _1\) and \(\phi _2\), while \(\alpha =0.4\) should be preferred for \(\phi _3\);

  • performances clearly depend on the used underestimation function \(\psi (\xi )\).

5.2 A costless improvement

In the previous subsection, the interval \([\xi _1,\xi _2]\) is split with respect to the level \(\xi _s=\alpha \xi ' + (1-\alpha ) \xi _m\). Such a decision implies that \(\hat{\theta }(\xi ')\) is not used, even if it is known. A first improvement of the previous splitting criteria could be the use of \(\xi '\) and \(\hat{\theta }(\xi ')\) too, taking into account that they are known and hence their use is costless. Such an approach is described in the following subprocedure “SplitInterval\(_2\)()”.

Procedure SplitInterval\(_2\)(inputs: \(\xi _1\), \(\xi _2\), \(\xi '\), \(\xi _s\), \(\hat{\theta }(\xi _1)\), \(\hat{\theta }(\xi _2)\), \(\hat{\theta }(\xi ')\))

  • if \(\xi '=\xi _s\) then

  •       \(EvalLevels(\xi _1,\xi ',\hat{\theta }(\xi _1), \hat{\theta }(\xi '))\);

  •       \(EvalLevels(\xi ',\xi _2,\hat{\theta }(\xi '), \hat{\theta }(\xi _2))\);

  • else \(\hat{\theta }(\xi _s):=OptLevSol(\xi _s)\);

  •          if \(\xi '<\xi _s\) then

  •             \(EvalLevels(\xi _1,\xi ', \hat{\theta }(\xi _1),\hat{\theta }(\xi '))\);

  •             \(EvalLevels(\xi ',\xi _s, \hat{\theta }(\xi '),\hat{\theta }(\xi _s))\);

  •             \(EvalLevels(\xi _s,\xi _2, \hat{\theta }(\xi _s),\hat{\theta }(\xi _2))\);

  •          else

  •             \(EvalLevels(\xi _1,\xi _s, \hat{\theta }(\xi _1),\hat{\theta }(\xi _s))\);

  •             \(EvalLevels(\xi _s,\xi ', \hat{\theta }(\xi _s),\hat{\theta }(\xi '))\);

  •             \(EvalLevels(\xi ',\xi _2, \hat{\theta }(\xi '),\hat{\theta }(\xi _2))\);

  •          end if

  • end if

end proc.

The results obtained in the computational test are summarized in Table 2.

Table 2 “SplitInterval\(_2\)”, \(0\le \alpha \le 0.8\)

It is worth noticing that performances are slightly better than the ones in Table 1, since partitions may be smaller with no additional optimal level solutions needed to be computed.

5.3 Some new splitting criteria

Some more splitting criteria can be found by changing the approach in determining the split level \(\xi _s\). So far, \(\xi _s=\alpha \xi ' + (1-\alpha ) \xi _m\) has been used. Such splitting level does not use the position of \(\xi '\) with respect to the interval \([\xi _1,\xi _2]\), that is to say whether \(\xi '\) is “close” to either \(\xi _1\), \(\xi _2\) or \(\xi _m\). The underestimation function \(\psi (\xi )=\phi \left( min\{\hat{\theta }(\xi _a), \hat{\theta }(\xi _b)\},\xi \right) \) is asymmetric, in the sense that it is tight on one side of the interval \([\xi _1,\xi _2]\) and it does not fit on the other one. In light of this, the computational results given so far point out that it is better to split the interval almost in the middle to reduce the interval/error as fast as possible. On the other hand, the computational results emphasize that the fewer optimal level solutions are computed, the faster the solution method is. For this very reason, a possible idea is to split the interval with respect to \(\xi '\) whenever \(\xi '\) is “close” to \(\xi _m\), so that no further optimal level solution has to be computed. If \(\xi '\) is not “close” to \(\xi _m\), then we can split the interval \([\xi _1,\xi _2]\) with respect to either \(\xi _m\) (in the middle), \(\frac{\xi _1+\xi _m}{2}\) (on one side but not “close” to \(\xi _1\) to guarantee the convergence) or \(\frac{\xi _m+\xi _2}{2}\) (on the other side but not “close” to \(\xi _2\) to guarantee the convergence). Three different criteria C1, C2 and C3 are described in the following subprocedure “DetermineSplitLevel\(_2\)()”.

Procedure DetermineSplitLevel\(_2\)(inputs: \(\xi _1\), \(\xi _2\), \(\xi '\); outputs: \(\xi _s\))

  • Let \(position:=\frac{\xi '-\xi _1}{\xi _2-\xi _1}\);

  • if \(position\in [0.25,0.75]\) then \(\xi _s:=\xi '\)

  •    else case C1

  •             Let \(\xi _s:=\frac{\xi _1+\xi _2}{2}\);

  •       case C2

  •             if \(position<0.25\) then \(\xi _s:=\xi _1+0.25(\xi _2-\xi _1)\)

  •                else \(\xi _s:=\xi _1+0.75(\xi _2-\xi _1)\)

  •             end if;

  •       case C3

  •             if \(position<0.25\) then \(\xi _s:=\xi _1+0.25(\xi _2-\xi _1)\) else \(\xi _s:=\frac{\xi _1+\xi _2}{2}\) end if;

  •       end case;

  • end if

end proc.

The results obtained in the computational test are summarized in Table 3, where C1, C2 and C3 refer to the use of subprocedures “DetermineSplitLevel\(_2\)()” and “SplitInterval\(_1\)()”, while C1bis, C2bis and C3bis refer to the use of subprocedures “DetermineSplitLevel\(_2\)()” and “SplitInterval\(_2\)()”.

Table 3 C1, C2, C3, “SplitInterval\(_1\)” and “SplitInterval\(_2\)

It is worth noticing that:

  • the number of visited partitions and the number of computed optimal level solutions are a little bit decreased with respect to the best performances in Tables 1 and 2;

  • the elapsed solution time is decreased too, since some optimal level solutions are not needed to be computed (when \(\xi '\) is “close” to \(\xi _m\));

  • C1 with subprocedure “DetermineSplitLevel\(_2\)()” seems to be the best for the objective functions \(\phi _1\) and \(\phi _2\), while C2 with subprocedure “DetermineSplitLevel\(_2\)()” seems to be used for \(\phi _3\) (C2 allows the use of a splitting level \(\xi _s\) not close to \(\xi _m\) just like \(\alpha =0.4\) does in Tables 1 and 2).

5.4 Final remarks

The best performances are given by the new splitting criteria, that is, by the use of subprocedures “DetermineSplitLevel\(_2\)()” and “SplitInterval\(_2\)()”. Specifically speaking, C1 or C2 seem to be chosen depending on the objective function.

The obtained results are strictly related to the chosen underestimation function \(\psi (\xi )\). In light of this, the study of underestimation functions tighter than the one used in this paper deserve to be further explored.

This paper extends the existing literature in several ways. First, problems P and \(\bar{P}\) are more general than the ones studied in Cambini (2020), Cambini and Venturi (2021), which can be seen as the particular case of \(\bar{P}\) where \(a=b=0\). In other words, the solution algorithm presented in this paper generalizes the one proposed in Cambini (2020), Cambini and Venturi (2021). From an application point of view, these problems extend and overcome the limitations of the ones presented in Cambini (2020), Cambini and Venturi (2021). For example, \(\bar{P}\) allows to approach in a very general way bicriteria efficiency models (Khalili et al. 2010), which need linear fractional functions to be managed in the objectives. It is worth pointing out that such a generalization is paid with a not necessarily convex region \(\Omega \), which does not allow to determine tight underestimations.

Second, this paper covers and extends the class of functions presented in Shen and Lu (2018), Shen et al. (2019), though limited to the rank-two case. In \(\bar{P}\), the objective function has two linear fractional functions scalarized by means of a generic two-variable function assumed to be strictly monotone with respect to the first variable. On the contrary, Shen and Lu (2018) consider the sum of linear fractional functions, while Shen et al. (2019) study the sum or product of linear fractional functions. In a future work, it could be interesting to computationally compare the general method proposed in this paper for two linear fractional functions with the ones proposed by Shen and Lu (2018), Shen et al. (2019) for the particular cases of the sum or of the product of linear fractional functions.

6 Conclusions

In this paper a class of rank-two nonconvex problems involving linear fractional functions has been studied. Various theoretical results have been stated, generalizing recent studies concerning rank-two problems involving linear functions. These theoretical results allowed to propose a solution algorithm based on a partitioning approach. A complete computational experience has been provided, and new splitting criteria have been proposed and compared with the classical ones.