For details about the voting algorithms, alternative methods based on genetic optimisation and Haskell implementations, have a look at the the MSc thesis "Genetic-Algorithmic Optimisation for School-Allocation Mechanisms - A Study of Amsterdam’s Student to High-School Allocation Problem" by Philip W.B. Michgelsen: https://eprints.illc.uva.nl/982/1/MoL-2016-10.text.pdf