We first began by assigning all groups to their dorms at the same time, but after analyzing the available code and available rooms, we realized there would be complications. First, for very high numbers, the algorithm works rather slow. This would decrease the practicality of using such an algorithm. We also found that there was no way to make sure that each group was assigned to the correct size room. These observations led us to separate the housing assignment process by group size.
We also noted that the housing office usually has more students apply then housing available. This algorithm is able to account for that. When there are more students than housing available, students who did not get matched with a room will be assigned a “0” (zero). This indicates that there were too many applicants and this group did not receive an assignment. We recommend starting at the group of size one and moving up from there. After all groups have gone through assignment once, if larger assignments are available, place the groups of smaller size in the algorithm with the larger rooms. This will make sure all assignments are filled even if there are open beds in the assignment.
Another limitation can be found in allowing students to enter the same value for different housing options. For example, if a student enters all first preferences (+1 assignment), they would be able to cheat the system and most likely get assigned since all of their assignments only add +1 to the total cost. Also, if all students were to enter first choose options for every assignment, the algorithm would simply choose the first groups who are entered into the system for assignment. Even though this is highly unlikely, it should be noted. We recommend not allowing multiple assignments to have the same value after further evaluation of the process. Furthermore, we would also recommend keeping the randomization process for groups assignments that only have one option. As stated before, having all values of one would result in the first groups entered into the system being assigned. This would not be optimal.
There are also limitations to be noted in the demonstration portion of the report. One, we used random values to simulate groups choosing preferences. This means that it was possible that a group would not have a top preference (+1 assignment). However, since we used the assignment values as listed for both methods, the ratio of points for assignment would be the same even if we changed the values around.