Patent ID: 7165103

Claim:
A computer-readable storage medium having computer-executable instructions for performing steps for matching a plurality of clients with a plurality of servers under given matching constraints, the steps comprising: presenting the clients and servers as vertices and allowable client-server pairs as edges connecting respective vertices in a bipartite diagram and reflecting each client-server pairing allowable according to matching constraints; making a preliminary round of assignments to tentatively assign each client to one server based on the matching constraints; and after making the preliminary round of assignments, optimizing the client-server pairings by performing the following: identifying a server having a highest number of clients assigned thereto; finding a chain of servers beginning with the server with the highest number of clients and ending with a server having a number of clients smaller than said highest number by at least two, each server in the chain except the server at the end of the chain having one client reassignable to the next server in the chain; reassigning said reassignable clients along the chain such that the number of clients of the server at the beginning of the chain is reduced by one and the number of clients of the server at the end of the chain is increased by one and such that each server in the chain, except the server at the end of the chain, passes a client to a next server in the chain; and repeating the steps of identifying, finding, and reassigning until an optimal match between the clients and the servers is reached.