What are some approaches to solve these classes of problems efficiently
This is an instance of the assignment problem.  There are polynomial-time algorithms for solving the assignment problem, e.g., using the Hungarian algorithm (or other algorithms).