1 Introduction

Satellites constellations are useful for a multitude of applications, but they are also extremely costly to set up. As a consequence, minimizing the number of satellites required for a constellation is of very high interest. In the case of applications requiring a continuous coverage of the Earth, optimization techniques are already well figured out, but not so much in the case of discontinuous coverage. One can refer to our previous work (Mencarelli et al. 2022) for further details on the satellite constellation design problem.

Mencarelli et al. (2022), we proposed new Mixed-Integer NonLinear Problem (MINLP) and Mixed-Integer Linear Problem (MILP) approaches in order to provide an exact solution to the satellite constellation design problem with constrained revisit time and discontinuous coverage, where targets at the surface of the Earth have to be observed periodically by at least one satellite. Both approaches aimed at increasing the number of parameters taken into account when compared to existing techniques. However, because of the high number of parameters, both approaches suffered from a scalability issue: an average desktop computer would be limited to solving small instances of the problem.

As a consequence, in this paper, we propose two new matheuristic algorithms in order to solve larger instances of the problem than in our previous work: a Feasibility Pump and a MILP-based procedure. To the best of our knowledge, we are the first to propose or adapt heuristic methods based on the mathematical formulation of the design problem for this emerging field of application.

The Feasibility Pump algorithm is built upon our previous MINLP formulation, while the MILP-based matheuristic algorithm is derived from our previous MILP algorithm. Both aim at outperforming the previous mathematical formulation from which they are derived.

The remainder of this paper is organized as follows: in the next two sections we summarize respectively the MINLP and discretized MILP mathematical models that we proposed in Mencarelli et al. (2022). In Sect. 4, we briefly describe the general Feasibility Pump framework for (nonconvex) MINLP, and we explain how it was adapted to our constellation design problem in Sect. 5. The MILP-based procedure approach is described in Sect. 6. Section 7 is dedicated to the presentation and discussion on the obtained results in terms of solution quality and computational cost. Finally, the conclusions of this work are presented in Sect. 8.

2 MINLP Mathematical model

The MINLP model is fully described in Mencarelli et al. (2022): in this section, we briefly resume the mathematical formulation, underlining the modifications we introduce in this work to improve the realism of the physical model.

In this paper, as in our previous work, we consider the following (restrictive) assumptions:

  • the Earth is considered to be a perfect sphere;

  • the orbits of the satellites are circular and described by a Keplerian model with 4 free orbital parameters:

    • the radius of the orbit a;

    • the inclination I;

    • the right ascension of the ascending node (RAAN) \(\varOmega \);

    • the mean anomaly M;

  • the time is discretized.

As usual, we consider two kinds of variables:

  • a set of binary variables \(\xi _{i,t,m}\) indicating if the satellite \(i\in [s]\) observes the target \(m\in {\mathcal {X}}\) at time \(t\in [T]\);

  • a set of continuous variables \(\sigma _i\in \varSigma _i\) (\(i\in [s]\)) representing the orbital parameters of the i-th satellite.

Moreover, let:

  • \({\textit{lat}}_m\) and \({\textit{long}}_m\) be the latitude and the longitude, respectively, of the target m to observe;

  • \({\textit{lat}}(\sigma _i,t)\) and \({\textit{long}}(\sigma _i,t)\) be the latitude and the longitude, respectively, of the projection on the Earth surface of the i-th satellite at the t-th time-step (these two functions depend from the orbital parameters of the corresponding satellite);

  • \(\theta _i^{{\textit{max}}}\) be the maximum observation aperture angle for satellite \(i\in [s]\), measured form the center of the Earth;

  • \(\varSigma _i\) be the set of possible orbital parameters for the i-th satellite;

  • \(\varDelta t \in {\mathbb {R}}^{+*}\) be the revisit time, defining the length of the time intervals during which each target must be observed at least once.

  • \(dt \in {\mathbb {R}}^+\) be the time discretization step,

  • \({\mathcal {T}}(t_k,\varDelta t):= \{t_k, t_{k+1}, t_{k+2},\dots , t_{k+ \varDelta t/dt -1 } \}\) be the set of time-steps in a time interval \(\llbracket t_k,t_{k+ \varDelta t/dt - 1} \rrbracket \);

  • T be the duration of the simulation;

  • \([N]:=\{1,\dots ,N\}\) be a notation to define a set (for instance, \([T]=\{t_0,t_0+dt,t_0+2dt, \dots , T-dt\}\)).

We aim to find the minimum number \(s\in {\mathbb {R}}^+\) of satellites such that:

$$\begin{aligned} \sum _{\begin{array}{c} t \in {\mathcal {T}}(k,\,\varDelta t) \\ i\in [s] \end{array}} \xi _{i,t,m}&\ge 1 \quad \forall k \in [\lfloor T/\varDelta t\rfloor ],\;\forall m\in {\mathcal {X}} \\ \xi _{i,t,m}&=0 \Longrightarrow \max \{|{\textit{lat}}_m - {\textit{lat}}(\sigma _i,t)|,|{\textit{long}}_m - {\textit{long}}(\sigma _i,t)| \,\cos (lat_m) \} \\&\ge \theta _i^{{\textit{max}}} \quad \forall i \in [s], \forall t\in [T], \forall m\in {\mathcal {X}} \\ \xi _{i,t,m}&\in \{0,1\} \quad \forall i \in [s], \forall t\in [T], \forall m\in {\mathcal {X}} \\ \sigma _i&\in \varSigma _i \quad \forall i\in [s]. \end{aligned}$$

The first constraint requires that at least one satellite observes the target \(m\in {\mathcal {X}}\), i.e., at least one binary variable \(\xi _{i,t,m}\) is equal to 1 in the period corresponding to the revisit time.

The constraints on the indicators \(\xi _{i,t,m}\) are observability constraints: they reflect that if the target m is observed at time t by the satellite i, then \(\xi _{i,t,m}=1\). The target is observed if it belongs to the Earth region observed by the satellite (see Fig. 1). In this paper, the formula for the ground surface observed by the satellite is slightly more realist than the one previously introduced in Mencarelli et al. (2022).

Fig. 1
figure 1

Illustration of the ground surface observed by a satellite (blue). (Color figure online)

In order to determine if a target belongs to the observation field of a satellite, one can compare the latitudes and longitudes of the target and the projection of the satellite on the surface of the Earth:

$$\begin{aligned} \Vert {\textit{lat}}_m - {\textit{lat}}(\sigma _i,t) \Vert&\le \theta ^{{\textit{max}}}_i \end{aligned}$$
(1)
$$\begin{aligned} \Vert {\textit{long}}_m - {\textit{long}}(\sigma _i,t) \Vert \cdot \cos ({\textit{lat}}_m)&\le \theta ^{{\textit{max}}}_i \end{aligned}$$
(2)

These inequalities allow to obtain an observation area with a size and shape independent from the latitude, unlike in our previous work (Mencarelli et al. 2022). The covered area is a square defined by the maximum aperture angle \(\theta ^{{\textit{max}}}\) measured from the Earth center.

The latitude and longitude used in the MINLP formulation are computed as follows (see Mencarelli et al. 2022 for further details):

$$\begin{aligned} {\textit{lat}}(\sigma _i,t)&= \arcsin (\sin ^I_i a_i \sin (M_{i,t}) \cos (V_i/a_i t)a_i^{-1} \nonumber \\&\quad +\sin ^I_i V_j\cos (M_{i,t})\sin (V_i/a_i t)V_i^{-1}) \end{aligned}$$
(3)
$$\begin{aligned} {\textit{long}}(\sigma _i,t)&= (-(\varPhi + w_{e} (t - T_0)) + \arctan ((\sin ^{\varOmega }_n a_i \cos (M_{i,t}) \nonumber \\&\quad +\cos ^{\varOmega }_n \cos ^I_l a_i \sin (M_{i,t})) \cos (V_i/a_i t) a_i^{-1} \nonumber \\&\quad +(-\sin ^{\varOmega }_n V_i \sin (M_{i,t}) + \cos ^{\varOmega }_n \cos ^I_l V_i \cos (M_{i,t})) \sin (V_i/a_i t)V_i^{-1},\nonumber \\&\quad (\cos ^{\varOmega }_n a_i \cos (M_{i,t})- \sin ^{\varOmega }_n \cos ^I_l a_i \sin (M_{i,t})) \cos (V_i/a_i t) a_i^{-1} \nonumber \\&\quad +(-\cos ^{\varOmega }_n V_i \sin (M_{i,t})- \sin ^{\varOmega }_n \cos ^I_l V_i \cos (M_{i,t})) \sin (V_i/a_i t) V_i^{-1})) \nonumber \\&\quad (\textrm{mod}\, 2\pi ). \end{aligned}$$
(4)

with (\(\sin ^I_i\), \(\cos ^I_i\)) the sinus and cosinus of the inclination of the i-th satellite and (\(\sin ^\varOmega _i\), \(\cos ^\varOmega _i\)) the corresponding notations for the RAAN. \(a_i\) is the radius of the orbit of the i-th satellite and \(V_i\) is a coefficient depending on \(a_i\) (see Mencarelli et al. 2022). \(w_e\) is the Earth rotation velocity and \(\varPhi \in ]-\pi , \pi ]\) is the rotation angle at \(T_0\) between the inertial frame in which the satellites positions are computed, and the Earth reference frame in which the targets positions are fixed.

3 MILP Mathematical model

In the MILP formulation, we discretize the solution space by considering C different values for the satellites orbit configuration, i.e., \(\sigma _{i,c}\) for \(c\in [C]\). We pre-compute all the possible distances in terms of latitude and longitude between the targets and the satellite projections on the Earth surface (see Eqs. (1)–(2)), as follows:

$$\begin{aligned}&\varDelta {\textit{lat}}_{i,c,t,m} := |{\textit{lat}}_m - {\textit{lat}}(\sigma _{i,c},t)| \quad \forall m\in {\mathcal {X}}, \forall i\in [s], \forall c\in [C], \forall t \in [T]\\&\varDelta {\textit{long}}_{i,c,t,m} := |{\textit{long}}_m - {\textit{long}}(\sigma _{i,c},t)| \cdot \cos ({\textit{lat}}_m) \quad \forall m\in {\mathcal {X}}, \forall i\in [s], \forall c\in [C], \forall t \in [T] \end{aligned}$$

We introduce \(s\,C\) binary variables \(\pi _{i,c}\) indicating if the orbit of satellite i is in the c-th configuration (\(c\in [C]\)). The goal consists in finding the minimum number \(s\in {\mathbb {R}}^+\) of satellites, as in the MINLP model, such that:

$$\begin{aligned} \sum _{\begin{array}{c} t \in {\mathcal {T}}(k,\,\varDelta t) \\ i\in [s] \end{array}} \xi _{i,t,m}&\ge 1 \quad \forall k \in [\lfloor T/\varDelta t\rfloor ], \forall m\in {\mathcal {X}} \\ \xi _{i,t,m}&=0 \Longrightarrow \max \left\{ \sum _{c\in [C]} \pi _{i,c} \, \varDelta lat_{i,c,t,m}, \sum _{c\in [C]} \pi _{i,c} \,\varDelta long_{i,c,t,m}\right\} \\&\ge \theta _i^{max} \quad \forall i \in [s], \forall t\in [T], \forall m\in {\mathcal {X}} \\ \sum _{c\in [C]}\pi _{i,c}&= 1 \quad \forall i\in [s]\\ \xi _{i,t,m}&\in \{0,1\} \quad \forall i \in [s], \forall t\in [T], \forall m\in {\mathcal {X}} \\ \pi _{i,c}&\in \{0,1\} \quad \forall i\in [s], \forall c\in [C]\,. \end{aligned}$$

Once the previous problem is solved, one can easily reconstruct the values of the orbit parameters of each satellite with \(\sigma _i^*:=\sum _{c\in [C]}\pi _{i,c}^*\sigma _{i,c}\) \(\forall i\in [s]\).

For further details on the way the solution space is discretized in order to guarantee that the optimal orbit configuration for each satellite is preserved, we refer the reader to our previous paper (Mencarelli et al. 2022).

4 The feasibility pump heuristic

In this section, we briefly describe the basic aspects and characteristics of the Feasibility Pump heuristic for a general Mixed-Integer Nonlinear Problem:

$$\begin{aligned} \begin{array}{ll} \min _{x,y} &{}\, f(x,y) \\ \; \text{ s.t. } &{}\, g(x,y)\le 0 \\ &{}\, x\in X \\ &{}\, y\in Y\cap {\mathbb {Z}}^p, \end{array} \end{aligned}$$
(MINLP)

The Feasibility Pump is a well-studied heuristic (see, for instance, Achterberg and Berthold 2007; Bertacco et al. 2007; Boland et al. 2012; De Santis et al. 2010, 2013, 2014; Fischetti and Salvagnin 2009; Hanafi et al. 2010), first introduced by Fischetti et al. (2005) for MILPs and extended to convex MINLPs by Bonami et al. (2009) and to nonconvex MINLPs by D’Ambrosio et al. (2010a) (see Belotti and Berthold 2014; D’Ambrosio et al. 2012). For an overview on the Feasibility Pump, we refer the reader to a survey by Berthold et al. (2019).

The basic idea of the Feasibility Pump is to deal with the two sources of difficulties of MINLP separately, namely the nonlinearity of the constraints and the integrality requirement for (a subset of) the variables. The Feasibility Pump bounces between two sub-problems: the Nonlinear Problem (NLP) obtained from MINLP by relaxing the constraints involving integers, and a MILP with linear and linearized constraints of the original MINLP. The Feasibility Pump produces two sequences of solutions: the first one feasible with respect to the nonlinear constraints appearing in MINLP, and the second one integer feasible. In the generic iteration, we solve first the NLP sub-problem obtaining a solution \((\tilde{x},\tilde{y})\) which respects the nonlinear constraints, and then we solve the MILP to determine the integer solutions closest to \((\tilde{x},\tilde{y})\).

D’Ambrosio et al. (2012) observe that the Feasibility Pump heuristic is a special case of the well-known Successive Projection Method (Bauschke and Borwein 1996), in which two sequences of points are generated by repetitively solving two different problems of the form:

$$\begin{aligned} \bar{z}^k \in \arg \min _{z\in {\mathcal {A}}} \Vert z-\widehat{z}_{i-1}\Vert , \qquad \widehat{z}^k \in \arg \min _{z\in {\mathcal {B}}} \Vert z-\bar{z}_{i-1}\Vert . \end{aligned}$$
(5)

Depending on the choices of the two sets \({\mathcal {A}}\) and \({\mathcal {B}}\) several variants of the Feasibility Pump are possible. The work presented in D’Ambrosio et al. (2012) defines \({\mathcal {A}}:=\{(x,y): g(x,y) \le 0, x \in X, y \in Y\}\) and \({\mathcal {B}}:=\{(x,y): g_c(x,y) \le 0, x \in X, y \in Y\cap {\mathbb {Z}}^p\}\), where \(g_c(x,y)\) represents the convex constraints in MINLP. Both the resulting problems are NP-hard, therefore solving them using heuristic methods is suggested.

Following the idea introduced by Achterberg and Berthold (2007) for MILP, Sharma et al. describe in (2016) a version of the Feasibility Pump in which a multi-objective optimization approach is developed considering at the same time two conflicting goals: quickly finding a feasible solution, and ensuring a good quality in terms of the original objective function. Belotti and Berthold (2017) describe a different implementation of the Feasibility Pump considering the Hessian of the Lagrangian function associated to the MINLP in the distance function in the MILP sub-problem, linearization cuts and a hierarchy of rounding procedures. Li and Liu (2017) consider inexact solving procedures for the NLP sub-problem in the Feasibility Pump method.

A version of the Feasibility Pump that does not require solving any MILP is presented by Bonami and Gonçalves (2012): the simple rounding operation of the NLP sub-problem solution to nearest integer is implemented. This version of the algorithm could cycle: whenever a cycle is detected, a random flip of several entries of the NLP sub-problem solution is implemented, similarly to the approach originally introduced in Fischetti et al. (2005).

In the original version of Feasibility Pump, a tabu list, i.e., a list of the already generated solutions, which are forbidden for the next iterations is applied in order to avoid generating the same integer feasible point twice (or no-good cuts if this method fails D’Ambrosio et al. 2010b).

5 Feasibility pump for the satellite constellation design

In order to implement the Feasibility Pump for the satellite constellation design problem described in Sect. 2, we have to specify the definition of the sets \({\mathcal {A}}\) and \({\mathcal {B}}\) and the norms occurring in Eq. (5).

5.1 MILP sub-problem

The MILP sub-problem is obtained from the MINLP formulation by discarding the nonlinear part. In particular, we introduce two new continuous variables \({\textit{lat}}_{i,t}\in \left[ -\frac{\pi }{2},\frac{\pi }{2}\right] \) and \({\textit{long}}_{i,t}\in [0,2\pi ]\) designating respectively the latitude and the longitude of the satellite i at time-step t. One will notice that the introduced variables \({\textit{lat}}_{i,t}\) and \({\textit{long}}_{i,t}\) do not depend on the orbital parameters of the satellites: the physics constraints have been relaxed in this sub-problem. As a consequence, the feasibility of a solution will be verified at the end of the NLP sub-problem instead of the MILP one. The MILP sub-problem is expressed as follows:

$$\begin{aligned} \begin{array}{ll} \min &{}\,\sum _{t \in [T], i\in [s], m\in {\mathcal {X}}} \left| \xi _{i,t,m}-\widehat{\xi }_{i,t,m}\right| \\ \ \text{ s.t. }&{} \,\sum _{\begin{array}{c} t \in {\mathcal {T}}(k,\,\varDelta t) \\ i\in [s] \end{array}} \xi _{i,t,m} \ge 1 \quad \forall k \in [\lfloor T/\varDelta t\rfloor ], \forall m\in {\mathcal {X}} \\ &{}\,\xi _{i,t,m}=0 \Longrightarrow \max \left\{ |{\textit{lat}}_m - {\textit{lat}}_{i,t}|, |{\textit{long}}_m - {\textit{long}}_{i,t}|{\,\cos ({\textit{lat}}_m)}\right\} \\ &{}\quad \ge \theta _i^{max} \quad \forall i \in [s], \forall t\in [T], \forall m\in {\mathcal {X}} \\ &{}\,\xi _{i,t,m} \in \{0,1\} \quad \forall i \in [s], \forall t\in [T], \forall m\in {\mathcal {X}}, \end{array} \end{aligned}$$

where \(\widehat{\xi }_{i,t,m}\) is the solution of the NLP sub-problem (see Sect. 5.2). To solve the MILP sub-problem we reformulate the \(\ell _1\)-norm in the objective function by introducing a new positive variable \(abs_{i,t,m}\) satisfying the following constraints:

$$\begin{aligned}&abs_{i,t,m} \ge \xi _{i,t,m}-\widehat{\xi }_{i,t,m} \quad \forall i \in [s], \forall t\in [T], \forall m\in {\mathcal {X}} \end{aligned}$$
(6)
$$\begin{aligned}&abs_{i,t,m} \ge \widehat{\xi }_{i,t,m} - \xi _{i,t,m} \quad \forall i \in [s], \forall t\in [T], \forall m\in {\mathcal {X}}\,, \end{aligned}$$
(7)

and we rewrite the objective function as follows:

$$\begin{aligned} \min \sum _{t \in [T], i\in [s], m\in {\mathcal {X}}} abs_{i,t,m} \end{aligned}$$
(8)

We do not explicitly rewrite the indicator constraints, since modern solvers, like for instance CPLEX, can directly deal with them.

5.2 NLP sub-problem

In the NLP sub-problem we relax the requirements for the \(\xi \) variables to be integers and we reformulate the indicator constraints with big-M terms. The NLP sub-problem is expressed as follows:

$$\begin{aligned}&\min \sqrt{\sum _{\begin{array}{c} t \in [T], i\in [s], \\ m\in {\mathcal {X}} \end{array}} \left( \xi _{i,t,m}-\widetilde{\xi }_{i,t,m}\right) ^2} + \sqrt{\sum _{t \in [T], i\in [s]} \left( lat(\sigma _i,t) -\widetilde{{\textit{lat}}}_{i,t}\right) ^2} \\&\qquad + \sqrt{\sum _{t \in [T], i\in [s]}\left( {\textit{long}}(\sigma _i,t)-\widetilde{{\textit{long}}}_{i,t}\right) ^2} \\&\begin{array}{ll} \text{ s.t. } &{}\,\sum _{\begin{array}{c} t \in {\mathcal {T}}(k,\,\varDelta t) \\ i\in [s] \end{array}} \xi _{i,t,m} \ge 1 \quad \forall k \in [\lfloor T/\varDelta t\rfloor ], \forall m\in {\mathcal {X}} \\ &{}\,\max \left\{ |{\textit{lat}}_m - {\textit{lat}}(\sigma _i,t)|,|{\textit{long}}_m - {\textit{long}}(\sigma _i,t)|{\,\cos ({\textit{lat}}_m)}\right\} \\ &{}\quad \le \theta _i^{{\textit{max}}} + M\;(1-\xi _{i,t,m}) \quad \forall i \in [s], \forall t\in [T], \forall m\in {\mathcal {X}} \\ &{}\,\xi _{i,t,m} \in [0,1] \quad \forall i \in [s], \forall t \in [T], \forall m\in {\mathcal {X}} \\ &{}\,\sigma _i\in \varSigma _i \quad \forall i \in [s], \end{array} \end{aligned}$$

where (\(\widetilde{\xi }_{i,t,m},\widetilde{{\textit{lat}}}_{i,t}, \widetilde{{\textit{long}}}_{i,t}\)) is the solution of the MILP sub-problem. In the numerical experiments, we set \(M:=2\pi \), which is a valid upper bound for the left-hand side of the reformulated constraints. The NLP obtained is non-convex, hence we solve it with a MultiStart approach, namely we locally solve the problem starting from \(n:=5\) randomly generated starting points in our computational experiments (see Sect. 7).

5.3 Feasibility pump algorithm

We solve the couple of previous sub-problems starting from a number of satellites \(s=1\) and progressively increasing s if an iteration limit is reached or the current problem is infeasible. When a feasible solution to the NLP problem is reached, we verify if the indicator constraints are satisfied: if so, we return the current solution (see Algorithm 1). We start the algorithm by solving the MILP sub-problem from an initial integer feasible solution.

In order to avoid generating twice the same integer solution we add the following “no-good cut“ to the MILP sub-problem once a feasible solution is calculated:

$$\begin{aligned} \sum _{t \in [T], i\in [s], m\in {\mathcal {X}}} \left| \xi _{i,t,m} - \widetilde{\xi }_{i,t,m}\right| \ge 1. \end{aligned}$$
(9)

The flow of the algorithm is summarized in the following pseudo-code:

Algorithm 1
figure a

Feasibility Pump for the satellite constellation design problem

6 MILP-based matheuristic

In the MILP formulation of the constellation design problem that we aim to solve with a MILP-based matheuristic, we consider two kinds of binary variables:

  • the \(\xi _{i,t,m}\) variables already introduced to indicate if a target \(m\in |{\mathcal {X}}|\) is observed by a satellite \(i\in [s]\) at a given time-stamp \(t\in [T]\);

  • the \(\zeta _{k,m}\) variables which are equal to 1 if the target \(m\in |{\mathcal {X}}|\) is observed in a given period \(k\in \lfloor T/\varDelta t\rfloor \).

One can notice that for a feasible solution of the satellite constellation design problem, we have \(\zeta _{k,m}\equiv 1\) for all \(m\in |{\mathcal {X}}|\) and \(k\in \lfloor T/\varDelta t\rfloor \). Thus, in the new MILP formulation we seek to maximize the number of \(\zeta _{k,m}\) variables equal to 1 by selecting a satellite orbit configuration \(\pi _{i,c}\) (\(i\in s\), \(c\in [C])\).

In order to obtain a more robust solution we also consider in the objective function the \(\xi _{i,t,m}\) variables, trying to maximize the number of time-stamps in which a target is observed. Finally, we opportunely re-weight the two terms in the objective function in order to balance their numeric values.

$$\begin{aligned} \max _{\zeta ,\xi ,\pi }&\;\,s\varDelta t \sum _{\begin{array}{c} k\in \lfloor T/\varDelta t\rfloor , \\ m\in |{\mathcal {X}}| \end{array}} \zeta _{k,m} + \sum _{\begin{array}{c} i\in [s],t\in [T], \\ m\in |{\mathcal {X}}| \end{array}} \xi _{i,t,m}\\ \text{ s.t. }&\;\,\xi _{i,t,m}=0 \Longrightarrow \max \\&\qquad \left\{ \sum _{c\in [C]} \pi _{i,c}\, \varDelta {\textit{lat}}_{i,k,t,m}, \sum _{c\in [C]} \pi _{i,c} \,\varDelta {\textit{long}}_{i,k,t,m}\right\} \\&\quad \ge \theta _i^{{\textit{max}}} \quad \forall i \in [s], \forall t\in [T], \forall m\in {\mathcal {X}} \\&\;\,\zeta _{k,m} = 1 \Longrightarrow \sum _{\begin{array}{c} t \in {\mathcal {T}} (k,\,\varDelta t) \\ i\in [s] \end{array}} \xi _{i,t,m} \ge 1 \quad \forall k \in [\lfloor T/\varDelta t\rfloor ], \forall m\in {\mathcal {X}} \\&\;\,\sum _{c\in [C]}\pi _{ic} = 1 \quad \forall i\in [s]\\&\xi _{i,t,m} \in \{0,1\} \quad \forall i \in [s], \forall t\in [T], \forall m\in {\mathcal {X}} \\&\;\,\zeta _{k,m} \in \{0,1\} \quad \forall k \in [\lfloor T/\varDelta t\rfloor ], \forall m\in {\mathcal {X}} \\&\;\,\pi _{i,c} \in \{0,1\} \quad \forall i\in [s'], \forall c\in [C]\,. \end{aligned}$$

The pseudo-code of the MILP-based matheuristic is given in Algorithm 2.

Algorithm 2
figure b

MILP-based matheuristic for the satellite constellation design

We first initialize the MILP-based procedure with an initial (possibly feasible), probably sub-optimal, solution to the satellite constellation design problem. In this work we chose the starting point randomly.

The MILP formulation is solved by starting from \(s=1\) satellite and by iteratively fixing all the orbital parameters but one until a better feasible constellation configuration is determined, or the maximum number of iterations is reached (Lines 6–16). If a feasible solution is not found within the maximum number of iterations, the number of satellites s of the constellation is incremented by 1, and the discretized MILP problem is solved again.

Cycles may appear in this process: to avoid this drawback, when a cycle is detected, i.e., the solution \(\sigma '\) has already been produced at a former iteration, the fixed satellites orbital parameters are randomly re-initialized (Lines 11–12).

It is important to note that this algorithm is an heuristic method and as such it does not guarantee the optimality of the final solution.

7 Computational results

All the developed codes have been written in Julia (version 1.8.5) and parts of the Julia library Satellite Toolbox (Ronan et al. 2019) related to spatial mechanics have been adapted to fit in our framework. The characteristics for the hardware we use in computational experiments are the following: MacBook Pro mounting macOS Ventura 13.4 with Apple M2 chip and 8 GB memory RAM. The solver CPLEX 22.1.1 was used to solve the MILP problems. Note that CPLEX can directly deal with indicator constrants. The NLP problems, on the other hand, were solved with Ipopt 3.14.10, which is an exact solver for convex NLPs.

For the results presented in this work, the satellites are constrained on a Low Earth orbit, with an altitude between 400 and 1400 km. Constraining the problem to be periodic over a 24 h period, it follows that only three values for the altitude of the satellites are allowed: 566.805, 893.700, and 1261.990 km (Mencarelli et al. 2022).

The surface observed by a satellite is described by Eqs. (1) and (2), resulting in a square area projected on the surface of the Earth. This is an upgrade compared to the formulation used in our previous work in which the observed area was a trapezoidal shape shrinking in size for greater values of the latitude (Mencarelli et al. 2022).

Because of the time discretization, an overlap of two consecutively observed areas is required in order to minimize the size of unobserved areas between two consecutive time steps, which would have otherwise been observed in a continuous time paradigm. In this work the angle \(\theta ^{max}\) and time steps \(t_{k+1} - t_k\) are designed to ensure a 20% overlap distance-wise.

The latitude of the targets were constrained between \(\theta ^{max}\) and \(\pi /2 - \theta ^{max}\): this is the most difficult and hence interesting case from a computational viewpoint, otherwise the result is trivial and consists of one satellite with a polar or equatorial orbit. In the presented results, unless stated otherwise, the coordinates of the targets are summarized in Table 1.

Table 1 Latitude and longitude (deg) of the test targets

The hyper parameters of the Feasibility Pump algorithm were set as \({\textit{iter}}_{max}:= 50\) and \({\textit{iter}}_{ms}:= 5\) (see Algorithm 1). The hyper parameter for the MILP-based matheuristic was set as \({\textit{iter}}_{max}:=100\) (see Algorithm 2).

In order to test the performance of the developed algorithms, we solve the models for various values of the revisit time, time step, and numbers of targets. The tests were stopped when either the computer memory or a 4 h time limit was reached.

The evolution of CPU time usage of the Feasibility Pump and MILP-based algorithms, depending on the number of targets and the revisit time, are reported in Tables 2 and 3 respectively, with a time step set to 3 min.

Tables 4 and 5 show the evolution of the CPU time of the Feasibility Pump algorithm depending on the coordinates of the targets and the revisit time, for 1 and 2 targets respectively. Tables 6 and 7 are the corresponding results for the MILP-based algorithm.

In Table 8, the CPU time usage of the MILP-based algorithm depending on the time step and the revisit time are reported. In this test case, a single target is considered, with latitude and longitude equal to 30.0 and 42.0 degrees respectively.

Table 9 shows the variability of the CPU time of the MILP-based algorithm depending on its randomized initialization. Finally in Table 10, we compare the CPU time of the exact MILP formulation developed in our previous work (Mencarelli et al. 2022) and the proposed MILP-based matheuristic, depending on the revisit time, with a time step of 3 min and the same target as for Table 8.

Table 2 CPU time in seconds depending on the number of targets and the revisit time for the Feasibility Pump algorithm. The simulation time step is set to 3 min. The number in brackets is the number of satellites in the constellation
Table 3 CPU time in seconds depending on the number of targets and the revisit time for the MILP-based matheuristic algorithm. The simulation time step is set to 3 min. “T.L.” means that a feasible solution was not found within a time limit of 4 h, but the algorithm can provide a feasible solution. The number in brackets is the number of satellites in the constellation
Table 4 CPU time in seconds for 1 target depending on the target position and the revisit time for the Feasibility Pump algorithm. The simulation time step is set to 3 min. The number in brackets is the number of satellites in the constellation
Table 5 CPU time in seconds for 2 targets depending on the targets position and the revisit time for the Feasibility Pump algorithm. The simulation time step is set to 3 min. The number in brackets is the number of satellites in the constellation
Table 6 CPU time in seconds for 1 target depending on the target position and the revisit time for the MILP-based matheuristic. The simulation time step is set to 3 min. The number in brackets is the number of satellites in the constellation
Table 7 CPU time in seconds for 2 targets depending on the targets position and the revisit time for the MILP-based matheuristic. The simulation time step is set to 3 min. The number in brackets is the number of satellites in the constellation
Table 8 CPU time in seconds depending on the time step and the revisit time for the MILP-based matheuristic algorithm. A single target is considered. “T.L.” means that a feasible solution was not found within a time limit of 4 h, but the algorithm can provide a feasible solution. The number in brackets is the number of satellites in the constellation
Table 9 CPU time in seconds for 2 target and 2 h of revisit time for the MILP matheuristic starting from 10 different random seeds. The simulation time step is set to 3 min. The number in brackets is the number of satellites in the constellation
Table 10 CPU time comparison between the exact MILP formulation and the MILP-based matheuristic, depending on the revisit time, for a single target. The time step is set to 3 min. The number in brackets is the number of satellites in the constellation

As can be seen in Table 2, the Feasibility Pump algorithm shows major improvements compared to the MINLP algorithm it is based upon, since in our previous work, the MINLP did not yield results even for a single target and a 12 h revisit time (Mencarelli et al. 2022). However, scalability to larger problems is still a challenging issue. Compared to the “MILP-routine” algorithm presented in our previous work (which consisted in iteratively solving the discrete MILP by gradually increasing the number of satellites of the constellation) the Feasibility Pump seems to be somewhat faster and able to yield a solution for shorter revisit time constraints. However, the Feasibility Pump solution is not actually the optimum, since we were able to empirically find solutions with fewer satellites. Moreover, the algorithm struggles when additional targets are requested. On these criteria, it is actually outperformed by the “MILP-routine” algorithm. It is also important to note that the Feasibility Pump computation time can fluctuate quite significantly, as is shown by Tables 24 and 5. This fluctuation seems independent from the targets coordinates since both large and small CPU times are obtained for low latitude targets. In particular, one will also notice that the Feasibility Pump does not find a solution for equatorial targets particularly fast despite the solution being trivial.

On the other hand, the results reported in Table 10 show that the MILP-based matheuristic algorithm greatly outperforms the MILP formulation it is based upon, which could not perform with a revisit time below 6 h. Moreover, Table 3 shows that the MILP-based matheuristic also yields much better results than the Feasibility Pump algorithm, being able to find a solution with more targets and shorter revisit times. One will also notice in Tables 67 and 9 that the MILP-based algorithm CPU time is much more stable than for the Feasibility Pump, and problems with equatorial targets consistently yield very fast results. In addition, Table 8 exhibits that the MILP-based matheuristic also allows, up to a certain extend, to improve the time discretization. With a smaller time step, it is possible to consider a smaller and hence more realistic satellite swath \(\alpha \). In this case we have:

  • \(\alpha \approx 50.814\) degrees for a time step equal to 180 s;

  • \(\alpha \approx 40.469\) degrees for a time step equal to 120 s;

  • \(\alpha \approx 23.649\) degrees for a time step equal to 60 s.

In order to improve further the MILP-based matheuristic algorithm, we tried to replace its random initialization step with a “shortened” Feasibility Pump or Genetic algorithm which was interrupted before complete convergence. However, the obtained results were at most equivalent, and usually worse than the ones produced by random initialization because of the additional time required to run these algorithms.

8 Conclusion

In this paper, we proposed two novel matheuristic approaches for the satellite constellation design problem with discontinuous coverage and revisit time, and we tested them on a computer with limited power.

The Feasibility Pump approach allows to find a solution to the MINLP formulation developed in a previous work. Preliminary results are presented, showing that the new Feasibility Pump approach can handle more complex problems than the analytic approach described in Mencarelli et al. (2022), but scalability is still problematic.

The second matheuristic based on the discretized MILP formulation greatly outperforms both the previous MILP formulation introduced in Mencarelli et al. (2022), and the Feasibility Pump developed in this work. Although further research will be required to be able to tackle large scale problems, significant progress has been made in a promising direction.