
is unnecessary. On the other hand, the time allocated
to the scientific payloads should be maximized to im-
prove the scientific feedback.
To address this, we decided to relax the strict num-
ber of task constraints for one partition l, selected by
the user. We thus propose NanoSatIterative, a method
to find the optimal useful schedule time, by jointly se-
lecting the number of tasks of partition l and schedul-
ing all the tasks. To maximize the useful schedule
time and keep the optimality guarantees, we perform a
dichotomic search on our objective:
∑
N
i=1
∑
M
i
j=1
δ
i
−c
i
j
.
It is possible to compute a lower and an upper bound
on the number of tasks of type l. The lower bound
is the minimum number of tasks that are necessary
to reach the current objective, assuming an optimistic
number of context switches
4
, while the upper bound
is the number of tasks of type l before the problem
is trivially unsatisfiable (i.e., the sum of the task du-
rations is greater than the time horizon). The lower
bound is updated at each objective step, and then
we iteratively add new tasks of partition l and try to
solve the NIMPH cyclic task scheduling problem with
a fixed number of tasks using NanoSatScheduler or
NanoSatGlobal, until we reach either the upper bound
or we find a feasible solution. According to the sat-
isfiability of the problem with the current objective,
we update either the lower bound or the upper bound
of the useful schedule time. If a solution is found, we
also update the lower bound on the number of tasks of
type l with the current number of tasks. Note that we
cannot perform a dichotomic search on the number
of tasks as well, because a solution with more tasks is
not necessarily better than another solution with fewer
tasks but fewer context switches. If, at each step, we
can find a valid solution or prove the unsatisfiability
of the objective, the solution is optimal.
4 EXPERIMENTAL RESULTS
4.1 Instances
As the NIMPH mission is still in its development
phase, some of the real constraints for the NIMPH
cyclic task scheduling problem are still unknown
(e.g., tasks’ duration, exact number of occurrences,
minimum delay for critical partitions, etc.). To per-
form realistic and relevant experiments, the NIMPH
development team helped us create a base instance
with the expected values for each partition. As this
instance is subject to uncertainties and to deeply an-
4
We assume we can reach the lower bound presented in
Section 3.3.
alyze the performances of our approach, we gener-
ated 100 random instances based on the NIMPH nom-
inal instance (71 tasks from 10 distinct partitions, for
a time horizon h = 1s). We created these synthetic
instances by disturbing the original instance with a
Gaussian law (µ = 1, σ
2
= 0.3) for each uncertain
parameter. After deleting trivially unsatisfiable in-
stances
∑
N
1=1
δ
i
× M
i
> h
, we have a total of 98 in-
stances.
4.2 Results
We compare the two implementations NanoSat and
NanoSatGlobal of our model in CP Optimizer, and
the iterative method NanoSatIterative using both
NanoSat and NanoSatGlobal to solve the sub-
problems (with a fixed number of partitions). We use
the following setup:
• Hardware: 13th Gen Intel® Core™ i7-1365U ×
12, 32 GB RAM.
• Solver: CP Optimizer 12.7.0 with docplex library
for Python.
• Time limit: 100 seconds (NanoSat, NanoSat-
Global), 1000 seconds (NanoSatIterative).
We can see in Table 1 that both NanoSat and
NanoSatGlobal are efficient to solve NIMPH in-
stances, as feasible solutions are found very often and
a majority of instances can be solved to optimality
before 100 seconds. However, the use of CP Op-
timizer interval variables and sequence global con-
straints within NanoSatGlobal increases the resolu-
tion time and decreases the number of optimal so-
lutions on our instances, but this model is able to
prove the infeasibility of the few instances that are
not solved by NanoSat.
There is a higher contrast between these two ap-
proaches when they are integrated into NanoSatItera-
tive. Table 2 highlights the differences in terms of res-
olution time and proportion of optimal solutions be-
tween NanoSat and NanoSatGlobal within NanoSatIt-
erative. We can see that both methods improve the
useful schedule time, with a mean increase of 6% for
NanoSatIterative + NanoSat.
If the performances of both NanoSat and
NanoSatGlobal are globally satisfactory for the
NIMPH instances, such a performance gap between
those two models is hard to explain. A deeper analy-
sis of the models performance on bigger and more di-
verse instances is our main focus for the future work.
Scheduling Onboard Tasks of the NIMPH Nanosatellite
283