I observed early in my teaching career that students were both stressed by and relatively bad at choosing groups for course projects. I created a tool to generate approximate optimum groupings based on student self-reported characteristics, taking into account homogeneous (schedules, group style) and heterogeneous (experience, leadership) matching criteria. After coaching on successful strategies for handling group dynamics combined with algorithmic matching, students have reported improved group experience outcomes.
The Kernighan-Lin algorithm creates a k-way graph partition that determines the grouping of students based on their preferences for working with other students and compatibility with other classmates. The graph recognizes student compatibility through numerical weights (indicators of student positional relationship on the graph).