Mathematica Generating Lists in Mathematica - Solve Student Partnering Problem

  • Thread starter Thread starter sambroni
  • Start date Start date
  • Tags Tags
    Mathematica
AI Thread Summary
The discussion revolves around the challenge of pairing students in a lab setting, where 20 students need to be grouped into pairs for 11 weeks without repeating any pair. The user is seeking assistance with Mathematica to automate the pairing process, as manually creating unique pairs each week is cumbersome. The initial attempt involved generating lists using Mathematica's list functions, but the user faced difficulties in ensuring that no pairs were repeated throughout the semester. A key point raised is the mathematical constraint of needing to create 110 unique pairs from a limited pool of 190 possible combinations, which complicates the task significantly. Despite attempts to find a solution through random permutations, no successful configurations were achieved. The discussion highlights the complexity of the problem and the limitations of current approaches in generating the required pairings effectively.
sambroni
Messages
3
Reaction score
0
Hi-

I TA two lab sections, for which I need to have different partners for every student throughout the term. It's sort of a headache to do this by hand and it seemed like the Mathematica list function should be able to do this in a snap; but I'm having trouble writing the rules and syntax I need. I've been able to generate the lists via:
Table[Thread[{Table[i, {i, 16}],
Table[Mod[j + k, 16] + 1, {j, 16}]}], {k, 0, 10}]
but have had trouble winnowing down the lists.

Any help on this problem would be very appreciated. Thanks!
 
Physics news on Phys.org
Any thoughts?
 
I didn't understand your problem description. I get that you want to use lists, but not what you want to do with them.
 
Thanks for your response.

The issue is that I need to pair up students each week (2 per group) from a class of 20. I have 11 weeks, and no two students may be in the same pair over the course of the semester. So I need to generate eleven lists of ten pairs such that 1-20 are paired up each week, and that no pairs are repeated.

e.g., week 1 could look like:
{{1,2},{3,4},{5,6},{7,8},{9,10},{11,12},{13,14},{15,16},{17,18},{19,20}}

and week 2 (up to week 11) couldn't reuse those pairs.

Thanks again!
 
I am not sure that there is a solution to this problem. There are only 190 possible pairs, and you have to use 110 of them. However, you have a very strong constraint that in each group of 10 pairs you must use each person exactly once. This severely constrains the number of possible combinations. I tried a few hundred thousand random permutations and didn't get a single successful one.

nStudents = 20;
nWeeks = 11;

lst = Table[
tmp = With[{pairs = KSubsets[Range[nStudents], 2]},
Take[Partition[
Permute[pairs, rnd = RandomPermutation[Length[pairs]]],
nStudents/2], nWeeks]]; {Table[nStudents, {nWeeks}] ==
Map[Length, Map[Union, Flatten[tmp, {{1}, {2, 3}}]]],
rnd}, {100000}];
Union[lst[[All, 1]]]
 

Similar threads

Replies
6
Views
3K
Replies
3
Views
3K
Replies
2
Views
3K
Replies
2
Views
2K
Replies
2
Views
3K
Replies
8
Views
4K
Replies
2
Views
6K
Replies
10
Views
2K
Replies
2
Views
2K
Replies
1
Views
5K
Back
Top