Please read the problem description first. A selection of submitted solutions is here.

To get you rolling, we provide template files on github, for python3, c++11 and java8. The files may occasionally experience minor updates (last: 2017-04-21).

You can try the python and c++ versions online; note that your edits on may be visible.

Choose your programming language, save the file(s) to your machine and implement your driving strategy in the class AI_MY. Do not change the rest of the files because we will not be able to test your code otherwise. Run the program and make sure your solution outperforms the navigation strategies implemented in AI_CLOCK and AI_GREEDY.

If some problem arises or if you prefer to use some other programming language, please contact us – we will be happy to help. It is OK to use standard libraries which can be installed with pip or apt (ubuntu-like OS), but please specify the dependencies and contact us in case of doubt.

Your strategy should in principle work for any number of stations N and any bus capacity C. It will compete against all other submissions under the conditions close to C ≈ N/2 and N ≈ 20, and over at least I = 106 iterations (see the Profiler class). It is essential that you try your solution with those parameters. Solutions that take too long compared to the other submissions or exceed ~1GB in memory requirements might have to be disqualified, as we (and the bus driver) only have modest computing resources at our disposal.

Submit the following information:

  • your implementation,
  • any additional files you require / list of dependencies,

together with a separate file (txt or pdf only) including:

  • a human-readable description of your strategy (preferably in English),
  • names of the members of your team,
  • your institution (university, school, … if any),
  • contact information (e-mail address; will not be published),
  • license (suggestion: CC BY 4.0),

to before May 31, 2017 (AoE).