diff options
| author | Alexander Leonhardt <alexander.leonhardt@ae.cs.uni-frankfurt.de> | |
|---|---|---|
| 2025-05-13 08:27:58 +0200 | ||
| committer | Alexander Leonhardt <equinox.salexander@gmail.com> | |
| 2026-08-17 19:28:22 +0200 | ||
| commit | f12a3e55edf68ec19d1342b93e6407fe0014f1f8 (patch) | |
| tree | 2351659de60c0e819d6dcbe99d06f939654bddd0 /README.md | |
| download | s-t-assignment-main.tar.gz s-t-assignment-main.tar.bz2 s-t-assignment-main.zip | |
feat: Added the optimal student---topic assignment scriptmain
diff --git a/README.md b/README.md new file mode 100644 index 0000000..efdeb8b --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# Optimal student---topic assignment + +The script `assignment.py input.toml` calculates **all** optimal student---topic assignments under the assumption +that the $i$-th topic preference of student $v$ is worth $\approx 2^{-i}$. Then we set up an ILP that maximizes the +score over all students, adds cutting planes to enumerate all optimal solutions and draws one at random from them. + +It is possible to set a seed in the code to ensure the reproducibility of the procedure. + +First steps: +``` +pip install -r requirements.txt +``` + +Then: `python assignment.py input.toml`, where `input.toml` has the following format: +``` +[students] +a=[1,2,3] +b=[2,4] +``` +Here, we have two students `a` and `b`. Student `a` would prefer topic `1` over topic `2` over topic `3`, while student `b` would prefer topic `2` over topic `4`. |