Twenty golfers wish to play in foursomes for 5 days. Is it possible for each golfer to play no more than once with any other golfer?
This is known in mathematics as the Social Golfer Problem. Over Thanksgiving 2017, my dad posed a very similar problem: 28 students in discussion groups of size 4, rotated five times so that no two students are grouped together twice – with additional constraints restricting certain students from ever being grouped together. Puzzling over the problem together led us into the world of combinatorics.
It turns out the Social Golfer Problem (and the closely related Kirkman’s Schoolgirl Problem) are solved, but full generalizations of them are hard – even for computers. I went looking for an existing solution and couldn’t find one I was happy with. Dad assured me that it didn’t need to be perfect, just good enough for a teacher trying to organize a group. So I built my own:
Good-Enough Golfers is a near-solver for this class of scheduling problems. It attempts to schedule g x p players into g groups of size p for w weeks such that players meet a minimum number of times. Real solutions to this problem can be extremely slow, but GEG’s approximations are fast and often good enough for real-world purposes.
It’s also free and open-source.