You have a set of things and a set (of the same size) of other things; things and other things can be put in pairs. Given a weight for each potential pairing, find a way of pairing all the things and other things such that the weight is minimised (or maximised - ''but not at the same time''). Typical examples would be assigning jobs to employees, workloads to computers or rooms to housemates. There are efficient algorithms for solving the AssignmentProblem. *** http://www-fp.mcs.anl.gov/otc/Guide/CaseStudies/assign/ ( BrokenLink ) *** http://www.neos-guide.org/search/node/assignment%20problem *** http://www2.isye.gatech.edu/~jswann/casestudy/assign.html *** http://www.nist.gov/dads/HTML/assignment.html