individual as per their preferences while adhering to total available positions and satisfying quality constraints is a common practical problem. • Every semester - TAs need to be allotted to courses as per their preferences - Interview committee has to be allotted to candidates as per their skills • Others: - Hospital Patient Allocation - Student College Admission
preferences and requirements to arrive at a potential solution after days of work by office staff. • Need: An automated solution that can be run on a computer with no manual intervention and provides improved allotments. • Input: Student preferences and Course requirements; Output: Allotment
as a Bipartite Graph Matching Problem where on one side we have candidates and on the other side we have courses. • An allotment is modelled as a binary matrix of courses and TAs. • Updated using MCMC method while minimizing the following objective function. • Optimization objectives / Utility: 1. Student satisfaction 2. Course satisfaction 3. Consistency of TA capability across courses
a matching between S and C • Many perfect matchings exist: Find the “best” in some sense • Edge weights: Adjacency matrix: Preferences • Allotment matrix (Xn) S C
compared to Python with no code optimizations • Similar Syntax: Minimal code rewriting effort • Leverage multiple dispatch for performance • More ready to use functions in Python but rigid • Find alternate ways to implement the required functionality in Julia which ended up being faster • Plotting the first plot can be slow Source: github.com/saurabhkm/juliaAllotter →