Method and system for matching network clients and servers under matching constraints
First Claim
1. A computer-readable 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;
making an initial round of assignments to assign each client to one server;
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
repeating the steps of identifying, finding, and reassigning until an optimal match between the clients and the servers is reached.
2 Assignments
0 Petitions
Accused Products
Abstract
A method of finding an optimal match between clients and servers under given matching constraints utilizes a bipartite diagram in which the clients are presented as vertices on one side, the servers as vertices on the other side, and each possible client-server pairing allowed under the matching constraints as an edge connecting the vertices representing the client and the server. After an initial round of assignments is performed, the assignments are optimized by an optimization operation that iteratively applies a reassignment process. The reassignment process searches for a chain of servers starting with a server having a highest number of clients and ends with another server with a client number less than that of the first server by at least two, with each server in the chain except the end server having a client reassignable to the next server in the chain. Those reassignable clients are then reassigned along the chain such that the first server'"'"'s client number is reduced by one and the end server'"'"'s client number is reduced by one. The reassignment process is repeated until an optimal match is reached.
25 Citations
12 Claims
-
1. A computer-readable 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;
making an initial round of assignments to assign each client to one server;
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
repeating the steps of identifying, finding, and reassigning until an optimal match between the clients and the servers is reached. - View Dependent Claims (2, 3, 4, 5, 12)
-
-
6. A method for matching a plurality of clients with a plurality of servers by means of computerized processing, comprising:
-
presenting the clients and servers as vertices and allowable client-server pairs as edges in a bipartite diagram;
making an initial round of assignments to assign each client to one server;
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 at the end of the chain is increased by one; and
repeating the steps of identifying, finding, and reassigning until an optimal match between the clients and the servers is reached. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer network comprising:
-
a plurality of servers;
a plurality of client, each client being assignable to a subset of the servers under given matching constraints;
a matching module programmed to compute an optimal match of the clients with the servers by presenting the clients and servers as vertices and client-server pairs allowable under the matching constraints as edges in a bipartite diagram, making an initial round of assignments to assign each client to one server under the matching constraints, finding a chain of servers beginning with a server having a highest number of clients assigned thereto and ending with a server having a number of clients smaller than said highest number by at least two, with 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 at the end of the chain is increased by one, and repeating the steps of identifying, finding, and reassigning until an optimal match between the clients and the servers is reached.
-
Specification