This code solves the linear sum assignment problem, also known as minimum weight matching in bipartite graphs.
See the assignment problem: Wikipedia
It is useful for assigning jobs to students depending on preferences. You can simply define the name and preferences in a yaml file. WARNING the indices start with one in the yaml file and 0 in the code.