Before using Parity Builder, it will help if you understand its basic vocabulary.
- Attribute
- A measurable characteristic of individuals. Parity
Builder supports four types of attributes:
- Affinity attribute
- A method of grouping individuals. Parity Builder will attempt, where possible, to assemble entire rosters from within one group. Contrast this with categorical and numerical attributes (below), which Parity Builder attempts to distribute evenly across rosters. As an example, suppose that children are being assigned to sports teams, and it is desirable to make entire teams using children from a single neighborhood. You might specify a Neighborhood affinity attribute containing, for each child, the name of the neighborhood in which that child lives. Blank (or empty) values are legitimate for affinity attributes, signalling that the individual does not belong to any affinity group.
- Categorical attribute
- A characteristic that is essentially qualitative in nature, such as gender or highest academic degree attained. Categorical attributes have a fixed (hopefully small) number of levels (male v. female, high school diploma v. undergraduate degree v. postgraduate education). Parity Builder tries to balance rosters by making the proportion of each roster having a particular value of a categorical attribute close to the same proportion of every other roster. So, for example, it would try to make the female to male ratios for rosters similar to each other, or to make the proportion of experienced players on every team comparable.
- In some cases, a seemingly numerical attribute might be better represented as categorical. Consider assigning school children to sports teams. The grade level of the children might be one attribute, and it is normal to think of it as a number (first grade, second grade, ...). If treated as a numerical attribute, Parity Builder would consider the combination of a first grader and a third grade the same as the combination of two second graders (average grade = 2 in both cases). That might be appropriate, but it might also be the case that skill improvements from grade 2 to grade 3 outweigh improvements from grade 1 to grade 2. In that case, it would make more sense to treat grade level as categorical, in which case Parity Builder would try to balance the proportions of third graders in each team (and similarly for first and second graders), rather than just an average grade level.
- Label attribute
- An attribute used simply to identify individuals or carry along useful information (such as addresses), but not taken into consideration when balancing rosters.
- Numerical attribute
- A characteristic for which it makes sense to ask that the average for one team be comparable to the average for another team. For instance, in assigning students to project teams, it would be reasonable to ask that composite grade point averages or average work experience of the teams be similar. In assigning children to tug-of-war teams, it would make sense to ask that the average weight of the members of one team be close to that of the next team. (It would also make sense to ask that the total weights be close, but Parity Builder deals only with averages of numerical attributes, not totals.)
- Cluster
- A group of essentially identical individuals (having the same characteristics), such that assigning any one of them to a particular roster has the same effect as assigning any other of them to that roster.
- Individual
- One entity (usually but not necessarily a person) available to be assigned to a single roster.
- Goal
- A target for some aspect of the assignment process. Typical goals include roster sizes and number of rosters, full utilization of all individuals (if desired but not mandatory), and balancing the average value of numerical attributes or the proportion of individuals on each roster with a certain value of a categorical attribute.
- Hard constraint
- An absolute requirement that must be met if a set of assignments is to be considered at all suitable (feasible). Parity Builder allows you to set upper and lower limits for both roster size and number of rosters as hard constraints. You can also mandate that all individuals be assigned. Restrictions can also be specified as hard constraints. Parity Builder does not support hard constraints involving attributes.
- Model
- Parity Builder's mathematical representation of the problem. The model must be built before assignments can be computed. Parity Builder will report on various aspects of the model (the number and sizes of clusters, and the distribution of numerical and categorical attributes among the population of individuals) when you build it.
- Penalty
- A measure of how well (or poorly) a particular solution meets your criteria. The penalty incurred by a solution is based on a combination of how much the proposed assignments deviate from your goals and what priorities you assigned to those goals. Higher penalty values indicate less suitable (lower quality) solutions. A solution that violates one or more hard constraints will have a penalty of infinity.
- Priority
- A numerical weight indicating the relative importance of a goal. Hard constraints do not have priorities; they simply must be met. The higher the priority (relative to other priorities), the more emphasis Parity Builder will put on a particular goal.
- Project
- A roster creation problem, including all its elements (individuals, attributes, etc.).
- Project parameter
- A value specific to the project but not to any individual. This includes limits and target values for number of rosters and sizes of rosters, whether it is desirable (or mandatory) that every individual be assigned, priorities for using the targeted number of teams and team sizes, and the priority for assigning everyone if that is desirable but not mandatory.
- Restriction
- A limitation on the assignment of a pair of individuals to the same roster. Parity Builder understands two types of restrictions: keep-together (both individuals should be assigned to the same roster, or possibly both should remain unassigned); and keep-apart (the individuals should not be assigned to the same roster). Restrictions can be stated either as goals (desirable, but violations can be tolerated if necessary) or hard constraints (violations cannot be tolerated).
- Roster
- A group or team of individuals.
- Solution
- A set of possible assignments.
- Solver
- The part of Parity Builder that actually computes assignments.
- Solver setting
- One of several parameters that control the functioning of the solver. The setting you are most likely to want to change is the time limit for the solver. Depending on how well Parity Builder does at finding good assignments, you may want to experiment with other settings.
- Template
- The portion of a project (attribute definitions, priorities, etc.) that does not depend on specific data about individuals. In essence, a template is everything about a project except the individuals and any restrictions on them. If you face the same roster creation task repeatedly, with different individuals each time, you can reduce your workload a bit by saving the project as a template. You can then reload the template for a future occurrence, and you need only add data for the new individuals. For instance, if you assign student teams each time you teach a particular course, using the same criteria every time, it would make sense to save a template for the course.