Your task is to send to xnodet@uco.fr
(and not any other email address!),
before 2025-02-23, an email with:
-
Your name
-
the URL to a project on GitHub.com that contains a Python program solving the problem described below.
The layout of your project should be such that:
-
A file
.python-version
exists that has the Python version to be used. -
A file
requirements.txt
exists with the Python libraries that are required for the project to run. See e.g.pip freeze
documentation. -
A file
slideshow.sol
does NOT exist. -
A file
slideshow.py
exists and I can invoke it to solve the problem and create a fileslideshow.sol
in the current directory. It should accept an argument that is the path to a dataset from which to generate the solution.
If url
is the value of that URL in your email, I will do, in a
brand new Python 3.12 virtual environment, something similar to the following:
$ git clone [url] repo
$ cd repo
$ pip install --requirement requirements.txt
$ python slideshow.py [relative/path/to/dataset]
$ python [somewhere/only/i/know]/check_solution.py slideshow.sol
The file slideshow.sol
that was generated by python slideshow.py
should be in the format described below, and be an optimal solution to
the problem described in the dataset
, which may be one that you didn’t
see.
Your Python code should be well structured and easy to understand. It
should use gurobipy
to create an optimization model and solve it. The
shorter the time it takes to generate the model, the better.
You will find in the archive data.zip
, in the folder project
, a PDF file
describing the problem to solve: hashcode_2019_qualification_round.pdf
.
There are also, in this same directory, two datasets:
-
a trivial one to get you started:
trivial.txt
-
one that will give you a potentially interesting problem to solve:
PetPics-20.txt
Good luck!