Technical details
Implications
The presented MILP formulation particularly requires implications of the form
$$\begin{aligned} \mathbf{if} \, condition \,\mathbf{then} \, expression1 \le expression2 , \end{aligned}$$
(7)
where \( condition \) either evaluates to zero or one expressing the truth values true and false, respectively. Such constraints are expressed in mixed-integer programming formulations as follows
$$\begin{aligned} expression1 - expression2 \le \varvec{\mathrm {M}}\, (1- condition ), \end{aligned}$$
where \( \varvec{\mathrm {M}}\, \) is a constant chosen appropriately large. If \( condition \) evaluates to 1, we obtain \( expression1 - expression2 \le 0\), which is equivalent to requiring \( expression1 \le expression2 \). Otherwise, if \( condition \) evaluates to 0, the constraint is trivially satisfied, which implies that \( expression1 \le expression2 \) is switched off as constraint. Further, implications of the form
$$\begin{aligned} \mathbf{if} \, condition \,\mathbf{then} \, expression1 = expression2 \end{aligned}$$
(8)
can be transformed into two implications:
$$\begin{aligned}&\mathbf{if} \, condition \,\mathbf{then} \, expression1 \le expression2 \\&\mathbf{if} \, condition \,\mathbf{then} \, expression2 \le expression1 . \end{aligned}$$
For multiple necessary conditions \(C_1,\dots ,C_k\), the implication
$$\begin{aligned} \mathbf{if} \,C_1 \wedge \dots \wedge C_2 \,\mathbf{then} \, expression1 \le expression2 \end{aligned}$$
is transformed into
$$\begin{aligned} expression1&- expression2 \\&\quad \le \varvec{\mathrm {M}}\, (1-C_1)+\cdots + \varvec{\mathrm {M}}\, (1-C_k). \end{aligned}$$
Moreover, for the binary variables \(x_1,\dots ,x_k\) an implication of the form
$$\begin{aligned} \mathbf{if} \,\sum _{i=1}^k x_i=0 \,\mathbf{then} \, expression1 \le expression2 \end{aligned}$$
is transformed into
$$\begin{aligned} expression1 - expression2 \le \varvec{\mathrm {M}}\, x_1+\cdots + \varvec{\mathrm {M}}\, x_k. \end{aligned}$$
Finally, the implication
$$\begin{aligned} \mathbf{if} \, condition \,\mathbf{then} \, expression1 \ge | expression2 | \end{aligned}$$
is transformed into
$$\begin{aligned}&expression1 - expression2 \ge \varvec{\mathrm {M}}\, (1- condition )\\&expression1 + expression2 \ge \varvec{\mathrm {M}}\, (1- condition ). \end{aligned}$$
Model extensions for deployment in practice
In this section, the basic model (Sect. 6) is extended to model further constraints that are necessary to deploy the computed schedule in practice. We model the duration of the observation such that a specified SNR is reached. Furthermore, we introduce constraints to ensure that a source is not observed multiple times within a specified duration and to control the number of observations. Moreover, the time necessary to slew the telescopes is modeled more precisely and the movement restriction caused by the cable wrap (Fig. 7) is considered.
In order to realize those extensions, we slightly simplify the model by constructing the atomic intervals only based on \(T_{dt}\) omitting the times \(T_s\) (\(s\in S\)). The advantage is twofold. In the first place, the number of atomic intervals is significantly decreased. Secondly, the atomic intervals have unit length. However, with this assumption the transit of a source can be located in more than one cell during an atomic interval. To solve this ambiguity, we only count the cell that contains the beginning of the atomic interval. Hence, this assumption theoretically might have a negative impact on the achieved sky coverage, but considering Earth’s rotational speed of approximately \(\frac{1}{4} \frac{^{\circ }}{{\min }}\) and the length of the atomic intervals of 20–60 s the introduced error is negligible in practice.
Duration of observation
In the basic model (Sect. 6), the duration of observations is fixed. However, the duration of observation should be chosen such that a specified SNR is reached. We therefore replace Constraint C6 by the following constraints to model the duration of observations more accurately. For each baseline \(b \in B\), each observation \(o \in O_b\) and each source q in Q, the minimal time \( \mathrm {t_{\min }} (o,q)\) that is required to reach a specified SNR is pre-computed.Footnote 6 Let a and \(a'\) be the activities of o and
$$\begin{aligned} a. \mathsf {mDuration} = a. \mathsf {stopTime} - a. \mathsf {switchTime} . \end{aligned}$$
(9)
If the duration is smaller than a maximally permitted duration—which is introduced to avert too long observations of sources—the following constraints are added:
$$\begin{aligned}&\mathbf{if} \,{o. \mathsf {isSelected} \wedge a. \mathsf {isTracked} (q) = 1}\nonumber \\&\quad \mathbf{then} \,{a. \mathsf {mDuration} \ge \mathrm {t_{\min }} (o,q)} \end{aligned}$$
(C15)
$$\begin{aligned}&\mathbf{if} \,{o. \mathsf {isSelected} \wedge a'. \mathsf {isTracked} (q) = 1}\nonumber \\&\quad \mathbf{then} \,{a'. \mathsf {mDuration} \ge \mathrm {t_{\min }} (o,q)}. \end{aligned}$$
(C16)
Otherwise, the source cannot be observed due to the low SNR and the following constraints are introduced instead:
$$\begin{aligned}&a. \mathsf {isTracked} (q) = 0 \end{aligned}$$
(C17)
$$\begin{aligned}&a'. \mathsf {isTracked} (q) = 0. \end{aligned}$$
(C18)
Moreover, the following constraints ensure that both participating stations have the same observation duration:
$$\begin{aligned} a. \mathsf {mDuration} = a'. \mathsf {mDuration} . \end{aligned}$$
(C19)
Time between successive observations of the same source
A source should not be observed too often repetitively, because frequently observing the same source ties up resources, while it does not lead to a better sky coverage. We therefore introduce a hard constraint that requires that a source can only be observed once by the same telescope within a fixed period \( \mathrm {t_{\min }} \) of time.
To that end, we introduce the integer constant \(a. \mathsf {iSwitch} \in {\mathbb {N}}\) for every activity. It defines the index of the atomic interval that contains the switch time of the activity. This is a constant and not a variable because the switch time of an activity is contained in a pre-defined atomic interval. Moreover, for an activity a of a station \(s\in S\), let
$$\begin{aligned} { Pre _{a} = \{ a' \mid a'. \mathsf {iSwitch} < a. \mathsf {iSwitch} , a \in A_s, a' \in A_s \} } \end{aligned}$$
be the set containing all preceding activities of a. Accordingly, let
$$\begin{aligned} Succ _{a} = \{ a'\mid a'. \mathsf {iSwitch} > a. \mathsf {iSwitch} , a \in A_s, a' \in A_s \} \end{aligned}$$
be the set of all succeeding activities. Moreover, for two activities a and \(a'\) of the same station let \( A_{a,a'} = Succ _{a} \cap Pre _{a'} \) be the activities that lie between both activities (assuming that a precedes \(a'\)).
For each activity \(a \in A_s \), each preceding activity \(a' \in Pre _{a}\) and each source \(q \in Q\), we add the following constraint:
$$\begin{aligned}&\mathbf{if} \,{a. \mathsf {isTracked} (q) = 1 \wedge a'. \mathsf {isTracked} (q) = 1}\nonumber \\&\quad \mathbf{then} \,{a'. \mathsf {switchTime} + \mathrm {t_{\min }} \le a. \mathsf {switchTime} }. \end{aligned}$$
(C20)
Number of observations
For our experiments (see Sect. 8), we introduce the possibility of enforcing a certain number of observations by introducing the following constraints,
$$\begin{aligned} \sum \limits _{o \in O} o. \mathsf {isSelected}&\ge \mathrm {n_{\min }} \end{aligned}$$
(C21)
$$\begin{aligned} \sum \limits _{o \in O} o. \mathsf {isSelected}&\le \mathrm {n_{max}} , \end{aligned}$$
(C22)
where \( \mathrm {n_{\min }} \) and \( \mathrm {n_{max}} \) are the minimal and maximal number of observations, respectively. We observe that the first constraint might lead to an empty solution space, if \(n_{\min }\) is not chosen large enough. Still, both constraints are a helpful tool to evaluate our approach and to assess how UT1-UTC is affected by different geometric configurations without changing the number of observations.
Duration of slewing and cable wrap
In this section, we model the duration of the slewing phase more precisely and further incorporate constraints modeling a valid cable wrap. To that end, we introduce for each activity a the following variables.
- 1.
To keep track of the position of the cable end attached to the movable part of the telescope, the continuous variables \(a. \mathsf {StartWrap} \), \(a. \mathsf {SwitchWrap} \) and \(a. \mathsf {StopWrap} \) are introduced which correspond to the azimuthal position of the cable at \(a. \mathsf {startTime} \), \(a. \mathsf {switchTime} \) and \(a. \mathsf {stopTime} \), respectively. They are restricted to be within the limits of the cable wrap at each station.
- 2.
The integer variable \(a. \mathsf {iStart} \in {\mathbb {N}}\), which defines the index of the atomic interval that contains the start time of the activity.
- 3.
The integer variable \(a. \mathsf {iStop} \in {\mathbb {N}}\), which defines the index of the atomic interval that contains the stop time of the activity.
- 4.
The continuous variable \(a.\Delta \)ts, which corresponds to the minimum time required to slew the telescope between two observations.
- 5.
The binary decision variable \(a. \mathsf {dir} \in \{0,1\}\). We interpret the variable such that \(a. \mathsf {dir} =1\) if the telescope moves clockwise and counterclockwise otherwise.
- 6.
The continuous variable \(\Delta \varepsilon \in [0,90]\), which corresponds to the slew in elevation during the slewing step.
- 7.
For each atomic interval following the atomic interval \(a. \mathsf {iSwitch} \) and the atomic interval itself, a binary variable \(a. \mathsf {stop} (i) \in \{0,1\}\) is introduced. If the stop time of the activity is located in this interval, it is one; otherwise, it is zero. Only one of those variables of an activity can be one.
Index variables. We first introduce constraints that ensure that the index variables \(a. \mathsf {iStart} \) and \(a. \mathsf {iStop} \) are set correctly for each activity a (see Fig. 6). To that end, we introduce for each station \(s \in S\) and for each activity \(a\in A_s\) the following constraints:
$$\begin{aligned}&a. \mathsf {iStart} \cdot dt \le a. \mathsf {startTime} \end{aligned}$$
(C23)
$$\begin{aligned}&\big (\,a. \mathsf {iStart} + 1\,\big ) \cdot dt > a. \mathsf {startTime} \end{aligned}$$
(C24)
$$\begin{aligned}&a. \mathsf {iStop} \cdot dt < a. \mathsf {stopTime} \end{aligned}$$
(C25)
$$\begin{aligned}&\big (\,a. \mathsf {iStop} + 1\,\big )\cdot dt \ge a. \mathsf {stopTime} \end{aligned}$$
(C26)
$$\begin{aligned}&\mathbf{if} \,a. \mathsf {isSelected} = 1 \,\mathbf{then} \,\sum \limits _{i\ge a. \mathsf {iSwitch} } a. \mathsf {stop} (i)\le 1. \end{aligned}$$
(C27)
Constraint C23 and Constraint C24 ensure that the variable \(a. \mathsf {iStart} \) is set to the index of the atomic interval that contains the start time of the activity. Analogously, by Constraint C25 and Constraint C26 the variable \(a. \mathsf {iStop} \) is set to the index of the atomic interval that contains the stop time of the activity. Constraint C27 ensures that at most one atomic interval is selected as interval that contains the stop time of the considered activity. Furthermore, for each station s, each activity \(a\in A_s\) and each atomic interval \(i \ge a. \mathsf {iSwitch} \) we introduce the following constraints ensuring that \(a. \mathsf {stop} (i)\) is one if the stop time of the activity a is located in the ith interval:
$$\begin{aligned} \mathbf{if} \,a. \mathsf {isSelected} = 1 \wedge a. \mathsf {stop} (i) = 1 \,\mathbf{then} \,a. \mathsf {iStop} = i. \end{aligned}$$
(C28)
Start position of telescopes. We now introduce constraints that ensure that the variables are initialized correctly. To be consistent with sked, we assume that the telescopes are already tracking the first scheduled source at the specified start time of the session. For each station \(s \in S\) and for each activity \(a \in A_s\), the following constraints are introduced that set the slew angles of the first selected activity to zero.
$$\begin{aligned}&\mathbf{if} \,{a. \mathsf {isSelected} = 1 \wedge \sum \limits _{a'\in Pre _{a}} a'. \mathsf {isSelected} =0}\nonumber \\&\quad \mathbf{then} \,{ a. \mathsf {SwitchWrap} = a. \mathsf {StartWrap} } \end{aligned}$$
(C29)
$$\begin{aligned}&\mathbf{if} \,{a. \mathsf {isSelected} = 1 \wedge \sum \limits _{a'\in Pre _{a}} a'. \mathsf {isSelected} =0}\nonumber \\&\quad \mathbf{then} \,{ a.\Delta \varepsilon = 0 }. \end{aligned}$$
(C30)
For each station \(s \in S\), for each activity \(a \in A_s\) and for each source \( q \in Q\), we introduce the constraint
$$\begin{aligned}&\mathbf{if} \,C_{a,q} \,\mathbf{then} \,a. \mathsf {StartWrap} = Az^0(q) , \end{aligned}$$
(C31)
where \(C_{a,q}\) is equivalent to
$$\begin{aligned}&a. \mathsf {isSelected} = 1 \wedge a. \mathsf {isTracked} (q) = 1 \wedge \nonumber \\&\quad \sum \limits _{a'\in Pre _{a}} a'. \mathsf {isSelected} = 0 \end{aligned}$$
(10)
and \(Az^0(q)\) corresponds to the azimuth of source q at the start of the first selected atomic interval (start of the session).
Continuous cable wrap. Next, we define constraints that ensure that the cable wrap (see Fig. 7) is recorded correctly. More precisely, for each station \(s \in S\), each activity \(a\in A_s\) and each succeeding activity \(a' \in Succ _{a}\) the following constraints are introduced to ensure that the cable position is correctly propagated from one selected activity to the next selected activity.
$$\begin{aligned} \mathbf{if} \, isNext (a,a') \,\mathbf{then} \,a. \mathsf {StopWrap} = a'. \mathsf {StartWrap} . \end{aligned}$$
(C32)
To that end, we introduce the expression
$$\begin{aligned}&a. \mathsf {isSelected} = 1 \wedge a'. \mathsf {isSelected} = 1\wedge \nonumber \\&\quad \sum \limits _{a'' \in A_{a,a'}} a''. \mathsf {isSelected} =0, \end{aligned}$$
(11)
which we abbreviate with \( isNext (a,a')\) because it is only one if the activity \(a'\) is the next selected activity after the selected activity a.
Movements of telescope during tracking. In particular at high elevation angles, it may happen that the telescope has to track the source across several degrees of azimuth. In cases where this happens near the cable wrap limits, we have to model how to move the telescope during the observation phase such that the cable wrap remains valid. For each station \(s \in S\), each activity \(a\in A_s\), each source \(q \in Q\) and each atomic interval \(i \ge a. \mathsf {iSwitch} \), the change in azimuth during the tracking step \(a. \mathrm {\Delta Az_M} (q)\) is approximated by subtracting the azimuth of the observed source at the start of the atomic interval \( \mathsf {iSwitch} \) and the azimuth at the end of the atomic interval \( \mathsf {iStop} \). The following constraint is added:
$$\begin{aligned}&\mathbf{if} \,{a. \mathsf {isSelected} = 1\wedge a. \mathsf {isTracked} (q) = 1 \wedge a. \mathsf {stop} (i) = 1 }\nonumber \\&\quad \mathbf{then} \,{a. \mathsf {StopWrap} - a. \mathsf {SwitchWrap} = a. \mathrm {\Delta Az_M} (q) }. \end{aligned}$$
(C33)
The tracking in elevation during the observation period does not affect the cable wrap and thus does not have to be considered.
Long arc slewing. Similarly, we have to model how to do the slewing of the telescope such that the cable wrap always remains valid. However, this time we also consider the slewing in elevation because it has an impact on the time necessary for slewing the telescope. For each station \(s \in S\), each activity \(a\in A_s\), each succeeding activity \(a' \in Succ _{a}\), each source \(q \text { and } q' \in Q\), the change in azimuth required to rotate the telescope from source q to \(q'\) clockwise \(a. \mathrm {\Delta AzCW} (a')\) and counterclockwise \(a. \mathrm {\Delta AzCCW} (a')\) is approximated (see Fig. 7). This is done by subtracting the azimuth of the observed source at the start of the atomic interval \(a. \mathsf {iSwitch} \) and the azimuth of the subsequent observed source at the end of the atomic interval \(a'. \mathsf {iSwitch} \).
$$\begin{aligned}&\mathbf{if} \,{ isNext (a,a') \wedge a. \mathsf {isTracked} (q) = 1 \wedge a'. \mathsf {isTracked} (q') = 1}\nonumber \\&\quad \mathbf{then} \,a'. \mathsf {SwitchWrap} - a. \mathsf {SwitchWrap} = a'. \mathsf {dir} \, a.\Delta \mathrm {AzCW} (a') \nonumber \\&\qquad + (1-a'. \mathsf {dir} )\, a.\Delta \mathrm {AzCCW} (a'). \end{aligned}$$
(C34)
Moreover, the change in elevation \(a. \mathrm {\Delta El} (a')\) between the switch times of the activities a and \(a'\) is approximated by subtracting the elevation of the observed source at the start of the atomic interval \(a. \mathsf {iSwitch} \) and the elevation at the end of the atomic interval \(a'. \mathsf {iSwitch} \).
$$\begin{aligned}&\mathbf{if} \,{ isNext (a,a') \wedge a. \mathsf {isTracked} (q) = 1 \wedge a'. \mathsf {isTracked} (q') = 1 }\nonumber \\&\quad \mathbf{then} \,{ a'.\Delta \epsilon } = a.\Delta {\hbox {El}}(a'). \end{aligned}$$
(C35)
Time for slewing. The slew duration is approximated with the slew rate of the station in azimuth \( \mathrm {v_{Az}} (s) \) and elevation \( \mathrm {v_{El}} (s) \). For each station \(s\in S\) and each activity \(a \in A_s\), we introduce the following constraints.
$$\begin{aligned}&\mathbf{if} \,{a. \mathsf {isSelected} = 1}\,\mathbf{then} \,a. \Delta \mathsf {t_s} \nonumber \\&\quad \ge \frac{|a. \mathsf {SwitchWrap} - a. \mathsf {StartWrap} |}{ \mathrm {v_{Az}} (s)} \end{aligned}$$
(C36)
$$\begin{aligned}&\mathbf{if} \,a. \mathsf {isSelected} = 1 \,\mathbf{then} \, a. \Delta \mathsf {t_s} \ge \frac{|a. {\Delta \varepsilon } |}{ \mathrm {v_{El}} (s)}. \end{aligned}$$
(C37)
Constraint C36 enforces that the duration of the slewing step is larger than the time required to slew the telescope in azimuth. Accordingly, Constraint C37 enforces that the duration of the slewing step is larger than the time required to slew the telescope in elevation. The variable \( a. {\Delta \varepsilon } \) includes not only the change during the slewing but also the one during the preceding tracking step. Thus, the term \( \left| \frac{a. {\Delta \varepsilon } }{ \mathrm {v_{El}} (s)} \right| \) is larger than necessary. However, this effect is small because the largest contribution is caused by the slewing.
Condition C5 is replaced by the following constraint to model the slewing duration accurately. For each station s and for each activity \(a\in A_s\), we require
$$\begin{aligned}&\mathbf{if} \,{a. \mathsf {isSelected} = 1}\,\mathbf{then} \,a. \mathsf {switchTime} \nonumber \\&\quad - a. \mathsf {startTime} \ge a. \Delta \mathsf {t_s} + \mathrm {constTime} . \end{aligned}$$
(C38)
Here, \( \mathrm {constTime} \) is a fixed time including the actions that are necessary before each observation.
Speeding up the solution
The following constraints are not required for valid schedules, but they speed up the process of finding a solution of the MILP formulation. For each station \(s \in S\), for each activity \(a \in A_s\) and for each preceding activity \(a'\in Pre _{a}\), we introduce the following constraints:
$$\begin{aligned}&\mathbf{if} \,{a. \mathsf {isSelected} = 1 \wedge a'. \mathsf {isSelected} = 1}\nonumber \\&\quad \mathbf{then} \,{a. \mathsf {iStart} \ge a'. \mathsf {iSwitch} } . \end{aligned}$$
(C39)
And for each succeeding activity \(a'\in Succ _{a}\), we introduce the constraints:
$$\begin{aligned}&\mathbf{if} \,{a. \mathsf {isSelected} = 1 \wedge a'. \mathsf {isSelected} = 1}\nonumber \\&\quad \mathbf{then} \,{a. \mathsf {iStop} \le a'. \mathsf {iSwitch} } \end{aligned}$$
(C40)
$$\begin{aligned}&\mathbf{if} \, isNext (a,a') \,\mathbf{then} \,a'. \mathsf {switchTime} - a. \mathsf {switchTime} \nonumber \\&\quad \le \Delta \mathrm {t_{max}} . \end{aligned}$$
(C41)
Constraint C39 sets all activities between the switch index and the end index to ‘not selected.’ Constraint C40 sets all activities between the start index and the switch index to ‘not selected.’ Constraint C41 enforces that the maximal duration between two succeeding observations is smaller than the specified value \(\Delta \mathrm {t_{max}} \). With this constraint, Constraints C7, C32, C34, C35, C40 and C39 do not have to be introduced for all succeeding or preceding activities but only for those having an effect on the solution.
In the case of a session with only one baseline, the inequality Constraints C15 and C16 can be replaced by equality constraints:
$$\begin{aligned}&\mathbf{if} \,o. \mathsf {isSelected} = 1 \,\mathbf{then} \,a. \mathsf {mDuration} = \mathrm {t_{\min }} (o,q) \end{aligned}$$
(C42)
$$\begin{aligned}&\mathbf{if} \,o. \mathsf {isSelected} = 1 \,\mathbf{then} \,a'. \mathsf {mDuration} = \mathrm {t_{\min }} (o,q). \end{aligned}$$
(C43)
This is reducing the number of possible schedules. Moreover, in this case Constraint C19 is not necessary. By adding constraints ensuring that within the first intervals at least one observation is selected, the constraints for the start position of telescope, which are only relevant for the first observation, can be reduced, too.