April 3, 2017, 9 a.m. UTC
May 2, 2017, midnight UTC
Each mission is described by a stand-alone text file. One file contains one mission. Each file must be submitted separately. Each member of a team is allowed to submit files on behalf of the whole team.
As soon as a file is submitted two steps will happen in our servers: a) preliminary validation and b) scoring step. During the preliminary validation, the submission is considered as a stand-alone mission and only some constraints are thus checked. If a problem arises at this stage an error code and a description of the problem will appear to help the user debug the problem. If the preliminary validation is passed the submitted file will be stored in our servers and appear in the submission list. This does not mean that the submission is valid: problems may arise during the following scoring step as the mission will be tested against all previously submitted missions that were marked as valid (e.g. for repeating debris, mission overlaps, etc..). If some constraint violation is detected during the scoring step , the submission will be marked as invalid and appear in red in the submission list, but no error will be explicitly signaled to the user. A non valid submission has no consequence to the team score.
Each line of the file contains an event which, essentially, correspond to an impulsive \(\Delta V\) manoeuvre. Impulses can be given at arrival or at departure to/from a given debris, as well as in deep space. Each line thus contains the epoch, the spacecraft state, the Cartesian components of the instantaneous velocity increment \(\Delta \mathbf V\) (assumed to be delivered immediately after the event) and the event id (a deep space manoeuvre is denoted by -1, the arrival and departure to/from a specific debris with the debris id).
Valid submissions are available for inspection in the folder submission_examples/
contained in the downloadable data file gtoc9-data.zip
. The file example_submission1.txt
, as an example, contains a possibly valid mission able to remove the debris with ids 23, 3 and 51. A direct transfer is made between 23 and 3, while one deep space manoeuvre is made between 3 and 51. The file, thus, has the following structure:
$$
\scriptsize \begin{array}{ccccccccccccc} \hline \mbox{line in file} & t [mjd2000]& x [m]& y [m]& z [m]& v_x [m/s]& v_y [m/s]& v_z [m/s]& m [kg]& \Delta V_x [m/s]& \Delta V_{y} [m/s]& \Delta V_{z} [m/s]& \mbox{event id} \\ \hline 0& float,& float,& float,& float,& float,& float,& float,& float,& 0,& 0,& 0, & 23 \\ 1&float, & float,& float,& float,& float,& float,& float,& float,& float,& float,& float,& 23 \\ 2&float, & float,& float,& float,& float,& float,& float,& float,& float,& float,& float,& 3 \\ 3&float, & float,& float,& float,& float,& float,& float,& float,& float,& float,& float,& 3 \\ 4&float, & float,& float,& float,& float,& float,& float,& float,& float,& float,& float,& -1 \\ 5&float, & float,& float,& float,& float,& float,& float,& float,& float,& float,& float,& 51 \\ 6&float, & float,& float,& float,& float,& float,& float,& float,& 0,& 0,& 0,& 51 \\ \hline \end{array} $$
Each file submitted will be validated and scored automatically. A number of validation checks will be made as soon as the file is received, if any fails a the following error codes will be returned:
Let us indicate the file content using, as a subscript, the file line so that, for example, \(t_3\) denotes the value of the epoch in the fourth line (the first line has subscript \(0\), the last \(f\)). We also indicate with \(\mathbf r_{\mathcal D_k}(t), \mathbf v_{\mathcal D_k}(t)\) the position and velocity of the debris with \(id=k\) at the epoch \(t\). Finally we use \(\mathbf r_{i} = [x_i, y_i, z_i]\), \(\mathbf v_{i} = [v_{x_i}, v_{y_i}, v_{z_i}]\) to indicate the position and velocity as read from the file at line \(i\) and \(\Delta\mathbf V_i = [\Delta V_{x_i}, \Delta V_{y_i}, \Delta V_{z_i}]\) to indicate the velocity increment vector as read from the file at line \(i\) . Using these conventions, the following further checks will be made, if any fails the submission will be marked as invalid:
If the file passes the validation step, a scoring step is applied. During this process the submitted file can still be detected as invalid w.r.t. to the previously submitted files as some operational constraints will be now checked (e.g. debris visited only once). In case any is violated the submission will be considered invalid and not scored.
Otherwise the score \(J\) of the team will be updated on the leaderboard as well as the number of debris removed so far.
To help the teams figure out the correct file format to submit, any submission with filename containing the string TRIAL
will be ignored after the preliminary validation step. Try, for example, to submit the file TRIAL-my_mission.txt
which contains a mission that passes the preliminary validation. Then try to submit the same file, changing some numbers it contains.
Submissions can be withdrawn by the team, but only in reverse submission order. This may be useful in cases where a mission was submitted early in the competition timeline in the hope to exploit a favorable price, but later the team has found that the submitted mission is no longer of use. To withdraw the last valid submission, (and thus revert to the previous valid one) any team member may submit a dummy file that passes the preliminary validation (e.g. example_submission1.txt
) and put in the title field of the submission page the text [delete last valid]
. The result of this action will be to mark as invalid the last valid submission. The dummy file will also appear as a dummy invalid submission.
By issuing this command repeatedly all submissions can be undone.