  The assignment of personnel to teams is a fundamental and ubiquitous
managerial function, typically involving several objectives and a variety of
idiosyncratic practical constraints. Despite the prevalence of this task in
practice, the process is seldom approached as a precise optimization problem
over the reported preferences of all agents. This is due in part to the
underlying computational complexity that occurs when quadratic (i.e.,
intra-team interpersonal) interactions are taken into consideration, and also
due to game-theoretic considerations, when those taking part in the process are
self-interested agents. Variants of this fundamental decision problem arise in
a number of settings, including, for example, human resources and project
management, military platooning, sports-league management, ride sharing, data
clustering, and in assigning students to group projects. In this paper, we
study a mathematical-programming approach to "team formation" focused on the
interplay between two of the most common objectives considered in the related
literature: economic efficiency (i.e., the maximization of social welfare) and
game-theoretic stability (e.g., finding a core solution when one exists). With
a weighted objective across these two goals, the problem is modeled as a
bi-level binary optimization problem, and transformed into a single-level,
exponentially sized binary integer program. We then devise a
branch-cut-and-price algorithms and demonstrate its efficacy through an
extensive set of simulations, with favorable comparisons to other algorithms
from the literature.
