Estoy luchando con un algoritmo para dividir un grupo de concursantes en grupos más pequeños para hacer rondas. Tomemos por ejemplo un grupo de $20$ personas, que quiero dividir en $3$ grupos $(7,7,6).$ En cada ronda del concurso, los grupos son diferentes, de modo que todos tienen que combatir a todos los demás en una distribución bastante justa.
El problema es que con una selección aleatoria (ingenua) una persona tiene que combatir más a la misma persona que otra. Es decir, dos elementos acaban a menudo en el mismo grupo.
Me gustaría hacer esto más justo para que para un número dado de concursantes, tamaño de grupo (no todos los grupos son del mismo tamaño) y número de rondas, el algoritmo encuentre un conjunto justo de grupos por ronda para que en promedio cada concursante tenga las mismas probabilidades de encontrarse con el mismo concursante durante las rondas.
¿Existe alguna literatura sobre este tema que pueda consultar? ¿O algún algoritmo conocido?
1 votos
Esto parece un ejercicio de teoría numérica o combinatoria más que de probabilidad o aleatoriedad. Sólo utilizarías la probabilidad si tus restricciones no determinaran completamente cuál es la solución.
0 votos
¿Cuántas rondas hay? ¿Compiten los tres grupos entre sí, o compiten las personas entre sí dentro de los grupos?
0 votos
La cantidad de rondas varía de 6 a digamos 20. Depende del número de participantes y de la duración del concurso. Normalmente, una ronda dura 15 minutos por grupo. Si un concurso dura 6 horas, podemos tener 4 grupos y 6 rondas. Los grupos de entre 7 y 10 personas están bien. Los participantes compiten entre sí.
0 votos
¿Qué quiere decir con "la gente compite entre sí"? ¿Podría ser más específico? Hacer una ronda con un grupo de 7 personas significa que hay $7\cdot 6 / 2 = 21$ ¿se celebran competiciones?
0 votos
Como ejemplo, tomemos 20 competidores y supongamos que tenemos un concurso con 6 rondas. Cada ronda consiste en una tarea diferente que hay que completar. Los 20 competidores se dividen en 3 grupos: 7,7 y 6. Los grupos varían en cada ronda, por lo que no se compite siempre contra las mismas personas. Esto significa que se realizan 3*6 = 18 competiciones. La cuestión es idear un algoritmo para que esto sea lo más justo posible...
0 votos
Esta pregunta tendrá más interés en un foro de matemáticas o algoritmos. La naturaleza combinatoria sugiere que la gente de matemáticas podría querer ser la siguiente en intentarlo.
0 votos
Barajar la lista de participantes antes de asignarlos aleatoriamente debería bastar.