mercredi 24 novembre 2021

How do I distrubute a list of members across groups and subgroups in multiple iterations while minimizing the amount of overlap that occurs?

I was reviewing an old thread found here in trying to solve a problem: How to create 21 random groups of 10 people 4 times, without people being in the same group

The summary of the thread there was trying to distribute a list of people across groups over a number of iterations and prevent overlap of members in groups.

I like the approach posted by @pacholik (https://stackoverflow.com/a/34224863/12441567) and wanted to try and use that as a base. I am curious about the condition where completely blocked overlap is impossible or where a solution is unlikely to be found. In the problem I am considering, it is 24 people split across 2 groups and then 2 subgroups in that group. To stick with similar terms as the original question, there are five games. Summarized:

  • Group A contains Subgroup 1 and 2
  • Group B contains Subgroup 3 and 4
  • Each subgroup must contain exactly six members
  • Five iterations of the grouping

My primary objective is to minimize the amount of times a person overlaps with another person across games. A secondary objective is to minimize the amount of times the overlap in a group.

I think the problem is unlikely to have a solution where zero overlapping conditions exist, or if there is one it is unlikely to be found without extensive solve time.

I am trying to think of some sort of evaluator that scores the returned lists based on the amount of overlap and then selects the one with the lowest score. It would be ideal to have some sort of heuristic to prevent it from having to explore every possible list but that is probably beyond my scope/skillset... however I think there are so many combinations that it is hard for me to say how long it would run without that.




Aucun commentaire:

Enregistrer un commentaire