Breakout Group Allocation Schedules and the Social Golfer Problem with Adjacent Group Sizes

The current pandemic has led schools and universities to turn to online meeting software solutions such as Zoom and Microsoft Teams. The teaching experience can be enhanced via the use of breakout rooms for small group interaction. Over the course of a class (or over several classes), the class will be allocated to breakout groups multiple times over several rounds. It is desirable to mix the groups as much as possible, the ideal being that no two students appear in the same group in more than one round. In this paper, we discuss how the problem of scheduling balanced allocations of students to sequential breakout rooms directly corresponds to a novel variation of a well-known problem in combinatorics (the social golfer problem), which we call the social golfer problem with adjacent group sizes. We explain how solutions to this problem can be obtained using constructions from combinatorial design theory and how they can be used to obtain good, balanced breakout room allocation schedules. We present our solutions for up to 50 students and introduce an online resource that educators can access to immediately generate suitable allocation schedules.


Introduction
Group work has long been a staple of computing science (CS) education, not least because it reflects how software is developed in industry [1]. The pedagogical advantages of group work are also well documented. Collaborative learning, whereby students work in groups together towards a specified goal [2], has been shown to help students to develop critical thinking skills [3] and a shared understanding of the studied material [4], and to enhance students' interpersonal, social, and teamwork skills [5]. The increasingly ubiquitous flipped classroom approach [6] requires that students access learning materials in advance of the class, so that the in-class time is spent on "interactive group-based learning activities" [7]. With an essential requirement of group work, it has been shown to improve learning performance [8], enhance students' enjoyment [9], and to be effective for large classes [10]. Furthermore, from a constructivist viewpoint, providing opportunities for social interaction via group work is an important component of CS education [11]. Peer instruction, wherein students discuss problems with their peers to construct their conceptual understanding, is also understood to be an effective instructional approach in CS education [12,13]. Perhaps most often associated with introductory programming tuition [14][15][16], peer instruction has also been shown to be an effective pedagogical technique with more advanced CS cohorts [17].
Using online meeting software such as Zoom and Microsoft Teams to deliver teaching has become the norm during the COVID-19 pandemic, with breakout rooms used to facilitate small group activities, especially where class sizes are large. Where class sizes are small enough, and the composition of the cohort is well understood in terms of students' abilities, experience, and personalities, groups may be allocated manually. For example, Ref. [18] describes how manually constructed breakout groups comprising five or six students of mixed ability were used on a software engineering programme during the COVID-19 pandemic. The carefully constructed composition of the groups in this case could be fixed, with students remaining in the same groups for each round of group activities. However, such an approach is not practicable with the larger cohorts that are typical of CS university programmes. Furthermore, the repeated manual allocation of students to new groups ensuring the desired properties is prohibitively time-consuming, and not practical to administer in class, in real time.
Where manual allocation is not possible or practical, the facility to randomise allocation-as offered by tools such as Zoom-is a tempting alternative. Random selection works well once, for the first round, but subsequent random allocations are likely to allocate participants to groups with people they have been in a group with in a previous round. This is exacerbated as the number of rounds increases. Such an approach is not ideal for at least two reasons: first, problems associated with personality clashes between students will be amplified by repeated allocation to the same groups; second, any combinations where the difference in students' abilities proves problematic will persist from one round to the next.
Thus, the ideal solution is to programmatically assign students to new groups for each round, such that they are not allocated to groups with the same fellow students and, ideally, no two students appear in the same group in more than one round. Furthermore, prior literature suggests that having groups of four to six students is optimal [19][20][21], so this is assumed here.
Zoom currently has two options for allocating participants to breakout sessions, either random or set by the host (or co-host). If the latter option is chosen, individual rounds can be imported in the form of CSV files consisting of lists of participants' email addresses which correspond to their Zoom login IDs. Microsoft Teams also features breakout rooms (and has done since October 2020) and permits automated random allocation or manual assignment.
Neither Zoom or Microsoft Teams has functionality for allocation over multiple rounds, let alone for balanced allocation. However, scheduling the rounds in such a way as to be balanced by hand is extremely difficult, even for a relatively small number of students like 16.
Allocating items to groups in ways which have defined properties has been a subject of mathematical study for many years, namely combinatorial design theory. Designs (or block designs [22]-see Section 4.1) are mathematical structures in which points are allocated to blocks. This problem can be directly mapped onto our breakout room allocation problem (where points are participants and blocks are groups).
What if, for the number of participants, there is no suitable Kirkman System? Indeed, what if the number of participants is prime, so it is not possible to allocate the same number of participants to each block, even for a single round? In this paper, we consider what makes a good, balanced allocation schedule for the given parameters (number of participants, maximum number of rounds) and introduce a new combinatorial problem, the social golfer problem with adjacent group sizes (SGA). With additional constraints, solutions to SGA provide suitable good, balanced breakout room allocation schedules.
Social golfer-type problems are inherently linked to symmetry. Combinatorial search for solutions is hard due to the number of equivalent partial solutions at each level of search. Symmetry breaking [23][24][25][26][27][28] must be used to eliminate these equivalent structures and reduce the search space to a tractable size. In addition, although we do not describe them in this paper, the constructions we rely on in Section 4 to generate Kirkman systems, nearly Kirkman systems and resolvable transversal designs, involve finite (Galois) groups to create parallel classes of blocks from a set of base blocks. The nature of finite groups prevents the repetition of pairs in different blocks by avoiding undesired periodicity due to symmetry.
Using existing constructions from design theory, we show how solutions to SGA can be obtained for up to 50 participants. We introduce an online tool which allows educators to generate good, balanced allocation schedules-currently for up to 70 participants.

Good, Balanced Allocation Schedules
In this paper, we want to develop breakout room allocation schedules, that is, predefined sequences of rounds of participants allocated to groups. We call such an allocation schedule balanced when no two participants are allocated to a group together more than once.
The natural way to divide a set of participants into groups is to use equal group sizes. However, this is not always possible (if the number of participants is prime, say). However it makes sense to limit the number of group sizes to as small a number as possible, and to keep the difference in group sizes to a minimum. We therefore allow at most two group sizes and insist that the group sizes differ by at most one.
As previously mentioned, groups of four to six students are optimal [19][20][21]. However, in some cases, this may be either impossible (when the number of participants is too small) or overly restrictive (when the number of participants is perfectly divisible by a number p greater than 2, but outside of this range, it might be preferable to have equal groups of size p rather than unequal group sizes within the desired range). We therefore define a good, balanced allocation schedule as follows:

The Social Golfer Problem and a Variation
The problem of allocating a set of v participants to equal groups of size k in r rounds in such a way that every participant appears in every round and all pairs of participants appear in at most 1 group is a popular problem known as the social golfer problem (which we will refer to as SGP(v, k, r)) [29,30]. It originated from the following question posed in 1998 to sci.op-research: 32 golfers play golf once a week, and always in groups of 4. For how many weeks can they play such that no two players play together more than once in the same group?
This problem and its generalisation to any number of players v and group size k have attracted particular attention in the combinatorial optimisation community, due to its highly combinatorial and symmetric nature. It has become a standard benchmark example to evaluate modelling and symmetry breaking techniques [25,31]. Techniques for solving the social golfer problem include heuristic approaches [32], Boolean satisfiability (SAT) encoding [33,34] and constraint-based techniques [23,35,36]. We do not provide details of these approaches here, but excellent surveys can be found in [29], and more recently in [34,37].
The link between the social golfer problem and combinatorial designs, specifically mutually orthogonal Latin squares [22,38], Kirkman systems [22,39,40] and resolvable group divisible designs [22], is well known [29,31,41]. In this paper, we will refer to published best-known solutions to the social golfer problem [42,43], both for allocation schedules where there is only one group size, and to construct allocation schedules with two different group sizes, by adding or removing points to/from existing social golfer solutions.
Generally, the social golfer problem refers to fixed values of v and k and finding the largest r for which SGP(v, k, r) has a solution. In our context of allocation schedules, we may not require a maximal solution (as often only a few rounds are required, or the maximal solution would provide too many rounds to feasibly implement). However, finding the maximal solution (or the largest known solution) will allow any number of rounds r up to this value to be obtained by choosing only the first r rounds: Lemma 1. If there is a solution for SG(v, k, r), then there is a solution for SG(v, k, r ), for any r less than r.

The Social Golfer Problem with Adjacent Group Sizes
Our problem, though, is broader. We want to find a (possibly maximal) set of rounds in the same way, but we do not insist that all groups have the same size. Indeed, in many cases, this would not be possible (if the number of participants is prime, for example). We do insist however that, for v sufficiently large, all rounds have the same distribution of group sizes, and there are at most 2 group sizes, which differ by at most 1.
We call this problem the social golfer problem with adjacent group sizes, which we define as follows: Definition 2. Let K be a set of positive integers of size at most 2 and, if |K| = 2, then K = {k, k + 1} for some k. Then, for a given v and r, the social golfer problem with adjacent group sizes, SGA(v, K, r), is to allocate v participants to groups with sizes from K in r rounds in such a way that every participant appears in every round, all pairs of participants appear in at most 1 group, and all rounds have the same set of group sizes.
Note that, if |K| = 1, SGA(n, K, r) is simply SGP(v, k, r) for some k. As for the social golfer problem, we can construct solutions for any number of rounds r less than the maximal number (or a maximum known number) of rounds, by choosing only the first r rounds: If there is a solution for SGA(v, K, r), then there is a solution for SGA(v, K, r ), for any r less than r.
Note that for a given v, there can be many possibilities for K and thus a large number of ways to allocate participants to rounds. Our definition of a good balanced allocation (Definition 1) allows us to impose additional constraints on the group sizes and so reduce the available allocations. In the rest of this paper, we use SGP and SGA to refer to the classes of social golfer problems and social golfer problem with adjacent group sizes (i.e., when we do not wish to specify a particular set of parameters).
In Section 4.1, we introduce some techniques that we use to construct solutions for the SGA, which correspond to good balanced allocation schedules.

Finding Solutions to the SGA Using Results from Combinatorial Design Theory
The problem of finding solutions to the SGA is closely linked to the field of combinatorial block designs [22]. In this case, a set of points V are placed into blocks in such a way that no pair of points appear in more than one block together. In this section, we provide some preliminary definitions and examples from the field of block designs and describe how we can find solutions to SGA from existing block designs and solutions to the social golfer problem.

Preliminary Definitions And Examples
Our requirement to schedule groups of participants into a set of rounds in which every participant appears is equivalent to a parallel assignment of blocks in a design. Example 1 illustrates this equivalence. Example 1. Suppose we have a set of 9 participants who we want to arrange into 4 rounds, each containing groups of 3 students. In design theory terms, this is equivalent to saying that we have a set V of 9 points, which we will label 0, 1, . . . , 8, that we want to arrange into 4 parallel sets of 3 blocks, where no pair appears in more than one block. A solution to this problem is given below:  (2,4,6) In the rest of this section, we will refer to points and blocks rather than participants or students and groups, as we will be referring to structures within the context of block designs. Additionally (as can be seen below), the term group has a different meaning within this context.
In Example 1, every block has the same size, every point is in exactly one block with every other point, and the blocks can be arranged into rounds with every point appearing once per round. Designs with these properties are known as Kirkman systems [22] and, in particular, when the blocks all have size 3, as Kirkman triple systems [39,40]. This type of design will be useful for us, particularly because various constructions exist in the literature to construct them for certain parameters (number of points and size of blocks). However, they only exist for some parameters.
We refer to a Kirkman system on v points with blocks of size k as a KS(v, k) and a Kirkman triple system on v points as a KTS(v).
The following lemma shows the values of v and k, for v ≤ and 3 ≤ k ≤ 7, for which a KS(v, k) exists. These values can be calculated from results in [22] and references therein: A closely related type of design of which we make use, is a resolvable group divisible design [44]. In this case, the blocks can again be placed into parallel classes, but not all possible pairs are contained in the blocks; instead, some of the pairs are contained within another set of non-intersecting subsets of V known as groups. If the groups all have the same size g (which we shall assume hereafter), we refer to a RGDD(v, k, g) [45]. An RGDD(v, 3, 2) is known as a nearly Kirkman triple system (NKTS(v)).

Example 2.
Suppose we want to create a solution to SGA(20, {4}, r) for r as large as possible.
An RGDD(v, k, 1) is a KS(v, k) as all pairs will appear in the blocks. Similarly, an RGDD(v, k, k) can be viewed as a KS(v, k) by treating the groups as additional blocks.
A particular type of resolvable group divisible design that we employ in this paper is one for which the number of groups is equal to the block size. In this case, every group contains a single point from every block (and vice versa) and the design is known as a resolvable transversal design. If the block size is k and the number of groups is n, we refer to an RTD(k, n). The number of points in this case is k * n and the number of parallel rounds of blocks is n. This type of design is very useful because they can be generated easily using an existing construction technique (if they exist for the given parameters) [22]. Notice that Example 2 is an RTD(4, 5).

Constructing Solutions for Sga
In many cases, when our parameters allow, we use existing Kirkman systems and resolvable group divisible designs and solutions to SGP to find solutions to SGA. In other cases, we add or remove points to/from blocks and groups of existing structures.
In order to produce our solutions, we need to access existing designs. We use the following resources: We do not go into detail here about the constructions and solutions listed above. We use the solutions and our own implementation of the constructions to create the designs on which our SGA solutions are built. Some useful results are given in Lemma 3. Lemma 3. The following results hold: 1. If a KS(v, k) exists then k divides v and k − 1 divides v − 1.
In the following example, we show how a solution to SGA(13, {3, 4}, 4) can be obtained by using an existing KS and removing points and blocks. We will use similar constructions for many of our SGA solutions. Note that we continue to use terms from block design theory throughout (points and blocks) to avoid confusion.  (1,5,9,13), (2,6,10,14), (3,7,11,15) round 2: (0, 7, 10, 13), (1,6,11,12), (2,5,8,15), (3,4,9,14) round 3: (0, 5,11,14), (1,4,10,15), (2,7,9,12), (3,6,8,13) round 4: (0, 6,9,15), (1,7,8,14), (2,4,11,13), (3,5,10,12) round 5: (0, 1, 2, 3), (4, 5, 6, 7), (8,9,10,11), (12,13,14,15) In order to construct rounds on 13 points only, we remove 3 points from the last block (i.e., the points in bold). This destroys the last block, so we will disregard the last round of blocks in our allocation schedule. These 3 points will not appear together in any other block, so we can be assured that no other block will be reduced to size less than 3. Removing these points and the final round of blocks, we obtain the following solution to SGA(13, {3, 4}, 4): We can use this technique to remove up to k + 1 points from any existing KS(v, k + 1) and obtain solutions to SG(v , {k, k + 1}, r) for v − k − 1 ≤ v ≤ v − 1 and appropriate values of r. We always remove points from the last block in the final round of the KS(v, k + 1). If more than 1 point is to be removed, then the blocks from the final round of the KS(v, k + 1) should not be included in the solution. If the points removed do not happen to be the largest points (as they were in Example 3), then after every point is removed, the remaining points should be appropriately renumbered. It is also possible to remove more than k + 1 points when the number of blocks per round is equal to k + 1. We only see one example of this (the first case where v = 11 in Section 5.1), so we do not go into any detail about this possibility here. We can use a similar approach to obtain solutions to SG(v , {k, k + 1}, r) for v − n ≤ v ≤ v − 1 and appropriate values of r from any RTD(k + 1, n). In this case, we can remove up to n points from the final group. As the groups are never used in our solutions (only the blocks), the maximum value of r in our solutions is the same as the number of rounds for the original RTD(k + 1, n) (i.e., n).
In some cases we can obtain solutions to SGA by adding points to existing structures. Our final example involves combining two SGA solutions for sets of v 1 and v 2 points respectively, each with block sizes k and k + 1, to create solutions for SGA(v, {k, k + 1}, r) for v = v 1 + v 2 for suitable values of r. We only suggest using this approach for large values of v (see Section 5.4) but use a smaller example to demonstrate the approach.  In the above example, the two smaller sets had equal size-this need not be the case. If we were trying to find an allocation where v is odd, we would choose smaller sets of sizes (v − 1)/2 and (v + 1)/2 and use allocations for the smaller sets for which the blocks have similar sizes.
In the remainder of this section, we will examine SGA(v, K, r) solutions, for which the following conditions hold: 6. r is the largest for which a solution has been found.
The reason for our focus on this constrained set of solutions to SGA(v, K, r) is that they correspond to good, balanced allocation schedules (see Definition 1).
We let K be the set of block sizes, where K = {k} (a set containing a single value k) or K = {k, k + 1} (a set containing values k and k + 1). If K = {k} then, in order for there to be at least two rounds, we must have v ≥ k 2 . Similarly if K = {k, k + 1}, then v ≥ k 2 + k + 1.
In this paper, we present solutions to SGA(v, K, r) for all v ≤ 50, where K satisfies the conditions above, and where there are m 1 blocks of size k and m 2 blocks of size k + 1. We will use the notation described in Table 1. Note that the best available solution for SG(v, k) is a published solution for SG(v, k, r), for which r is largest.

Notation
Description  Tables 2-4. For brevity, we denote sets {k} and {k, k + 1} as k and k, k + 1, respectively, and for any empty cell, refer to the values in the cell above. We show the theoretical maximum number of rounds (MAX), where MAX is determined from the results of Lemma 3. We indicate cases where Lemma 3 implies that MAX < R(v, k, m 1 , m 2 ) with an asterisk. This maximum is not necessarily achievable. In the last two columns, we indicate how a set of parallel rounds for these parameters can be obtained, using existing results and techniques similar to those used in Examples 3 and 4 and show the actual number of rounds achieved (r).
For any set of parameters v, k, m 1 and m 2 , many solutions may exist-we only provide one solution, as that is all we need for our purposes. Listing all solutions and classifying them would be a different problem and out of the scope of this paper. For similar reasons, although r may be the best possible number of rounds in some instances, we do not claim this to be true in all cases, or attempt to prove it when it is. We simply include the largest solution that we have found so far.

Good, Balanced Allocation Schedules
In this section, we return to our original question: how to create good, balanced allocation schedules. Specifically, we want to create allocation schedules that satisfy the conditions of Definition 1. All of the allocation schedules can be obtained from our website (see Section 6) for as many rounds as required, up to the maximum number considered.

At Most Eleven Participants
When the number of participants v is smaller than 12, then, unless v = 9, we cannot create allocations without allowing groups of size 2. If v is 3 or 5, there is no solution unless some groups have size 1, which contradicts the point of using groups, so we ignore those cases. The case v = 4, with 2 groups of size 2 for 3 rounds, is trivial. A solution for each of the cases 6 ≤ v ≤ 12 is obtained by considering SGA(v, K, r) solutions, using the techniques described in Section 4.1 (but in this case, relaxing the constraints on group (block) sizes). For each value of v, we consult Table 5 below. For example, for v = 6, we can only have 3 groups of size 2 in each round of our allocation schedule, because any allocation schedule must match up to a design listed in the table. From the table we see that such an allocation is available, how it is constructed (using a solution available for SG (6,2)) and that the solution provides an allocation schedule consisting of 5 rounds.
Allocation schedules for other values of v ≤ 11 are obtained in a similar way.

Between Twelve and Nineteen Participants
Now, we can insist that groups have a size of at least 3. In all cases, groups must have size 3 or 4 and we can obtain solutions up to r rounds by considering the solutions to SGA(v, K, r) indicated in Table 2.

Between Twenty and Fifty Participants
For all values of v ≥ 20, there is at least one allocation schedule for which all groups have a size of at least 4. For this reason, we no longer consider groups of size 3 unless 3 divides the number of participants, and there is an allocation schedule for which all blocks have size 3. Good, balanced allocation schedules can be obtained from the SGA(v, K, r) solutions listed in Tables 3 and 4.

More than Fifty Participants
It would be tempting to continue constructing tables of solutions for larger and larger numbers of participants. Indeed, we use solutions constructed in this way for allocation schedules provided by our web-based tool (see Section 6). These currently include all good balanced allocations for up to 70 participants and some for larger numbers of participants. However, generating solutions in this way for large numbers of participants is not necessary. We do not, after all, require a best possible solution (in terms of number of rounds), rather, we need a single solution for which a reasonable number of rounds is possible. A simpler solution is to divide the participants into two roughly equal sized cohorts. We can then glue together allocations for the two smaller numbers of participants to achieve an allocation for all participants. We cannot guarantee that there will be only two block sizes in this case, but we can try to minimise the number of different block sizes.
Example 5 in Section 4.1 illustrates this approach.

Obtaining Solutions from Our Website
Over 270 balanced allocations for between 6 and 85 participants are currently indexed on our website www.dcs.gla.ac.uk/ alice. This includes all good, balanced allocation schedules for up to 70 participants and some additional schedules for larger numbers of participants. We will continue to add solutions as they are generated. Visitors can specify the number of participants and the number of rounds and all corresponding allocation schedules are shown. The allocations will have varying group sizes. They are displayed as comma-separated lists which can be exported as plain-text. Alternatively, users can provide a list of email addresses to translate the allocations for their participants. In Zoom, when setting the breakout room assignments, hosts can import a list of email addresses to automatically assign participants. When a list of usernames is imported to our website, a file suitably formatted for assignment on Zoom is provided.

Discussion
We have identified a topical problem of allocating participants to breakout rooms when using online meeting software solutions such as Zoom and Microsoft Teams. Specifically, we have investigated how to schedule sequences of rounds in a balanced way, whereby no two participants appear in a group together more than once. By additionally imposing the constraints that group sizes should differ by at most one and each round should have the same distribution of group sizes, we have defined a new combinatorial structure, namely a variant of the social golfer problem (SGP), which we have called the social golfer problem with adjacent group sizes (SGA).
In the context of breakout rooms, groups of sizes 4-6 are preferable, so we have imposed additional constraints in this instance, and generated solutions for as many rounds as we can, using either available solutions for SGP, known constructions for Kirkman systems, nearly Kirkman systems and resolvable transversal designs, or by adding or removing points from such structures. We have provided an online resource so that our solutions can be available to all.
There is plenty of scope for additional contribution to the investigation of SGA. Outside of the particular application of breakout rooms, there is no restriction on the particular sizes of the groups (as long as the other properties are satisfied). For example, for v = 43, there are SGA solutions for group sizes 6 and 7 (where each round has 6 groups of size 6 and one of size 7), which we do not consider here. In addition, our methods can be extended for increasing numbers of participants, and for any SGA instance, the upper bound on the number of rounds possible could be refined, often by using simple counting methods. Solutions with a number of rounds closer to the upper bound could be found using more specific constructions or instances from combinatorial design theory (e.g., constructions for class-uniformly resolvable pairwise balanced designs with two block sizes, and pairwise balanced designs [52,53]). Alternatively, constraint programming or SAT solving techniques, such as those used to find maximal solutions to SGP could be used to find solutions with more rounds.
The SGP has many practical applications, such as encoding, encryption and covering problems, as well as a wide range of scheduling problems. Our novel concept of SGA will allow these applications to be extended to situations in which unequal group sizes are required.
Our allocation schedules treat all participants equally-i.e., we do not consider ability or roles within a classroom (we cannot insist, for example, that an A-grade student is present in every group, or that no two struggling students appear in a group together). The composition of groups is important [54] and there is evidence to suggest that mixed ability groups are associated with positive educational and developmental outcomes [55,56], but we acknowledge that the opposite may also be the case [57], and that it may be advantageous to assign a student with particular learning needs to a particular group. It would be possible to modify our approach to accommodate these additional constraints, but this is left as future work.

Conflicts of Interest:
The authors declare no conflict of interest.