Reviewer Assignment Suggestions
Let's say that p is the number of papers, t is the number of TPC members, and r is the number of reviews required for each paper. Also, PT(x) is the list of keywords of the x'th paper, and TT(y) and nTT(y) are the list of topics and non topics of the y'th TPC member. 
W(PT(x), TT(y), nTT(y)) is a function that given the weight of the y'th TPC member related to the x'th paper. This weight is the sum of each TT(y) topic found in PT(x) minus each nTT(y) found in PT(x). 
For example, if PT(x)={'a','k','t','z'}, TT(y)={'a','t'}, and nTT(y)={'k'}, then W(PT(x), TT(y), nTT(Y))=1 
First, the algorithm creates a matrix whose columns are composed by TPC members, and rows are composed by papers. Each cell is filled with the W function calculing the weight for each TPC member related to each paper. 
Then, follows the assigning processes that is based on two values: mMin and mMax 
mMax = (mMin != p*r/t) ? (mMin + 1) : mMin 
The first assignment step will look for papers/reviewers with the highest weigth, since that: (a) the reviewer (TPC member) had bidden/claimed the paper, and (b) the paper is not yet assigned to the reviewer, and (c) the reviewer is not one of the paper's authors, and (d) the reviewer is not on the conflict list of any of the paper's authors, and (e) the reviewer is not reviewing more than mMin papers. 
The second step is identical to the first one, except that the (e) condition observer that the reviewer is not reviewing more then mMax papers, instead of mMin. 
The thirth step is identical to the first one, expect that it does not have the (a) condition, i.e. it is based only on the reviewer topics of interests, instead of being based on the reviewer bids/claims. 
The fourth and final step is identical to the thirth one, except that the (e) condition observers that the reviewer is not reviewing more the mMax papers, instead of mMin papers from step tree. 
