Good-Enough Golfers

Click the "Recompute" button to get a new solution.
Customize group size, number of groups and number of rounds with the sliders.
Solutions with more rounds and larger groups take longer to compute.
Number of groups 0
People per group 0
Number of rounds 0
Player Names
Player names can be provided for convenience.
If player names are omitted, players will be numbered.
Editing player names will update the current solution in real-time; you don't need to click "Recompute."
 
Privacy: Names are never sent to our servers. All processing happens on your own computer.
 
If two players have the same name, additional constraints (below) will apply to both of them.
 
Tip: To produce mostly-even groups with an uneven number of players, create players named [Empty] to round out your roster, and add an [Empty],[Empty] constraint in the next box.
Never allow these pairs
Players grouped in this box are never grouped by the solver unless absolutely necessary.
Comma-separate names within a group.
Put groups on separate lines.
Prefer splitting these groups
Similar to above, but lower priority. The solver avoids grouping players if they're already grouped here, but reducing repeat encounters can take priority in later rounds.
Tip: You can encourage the solver to gender-balance groups by listing all players of one gender in a group here.
The conflict score is a representation of how far the solution is from perfect - lower is better.
The Download CSV button provides a pivot view of the solution that makes it easier see the sequence of groups for a given player.
 
Close help.

Good-Enough Golfers is a near-solver for a class of scheduling problems including the Social Golfer Problem and Kirkman's Schoolgirl Problem. The goal is to schedule g x p players into g groups of size p for w weeks such that no two players meet more than once.

Real solutions to these problems can be extremely slow, but approximations are fast and often good enough for real-world purposes.

B Buchanan, 2017 - Source on GitHub - Help Close Help