Conseguir una puntuación perfecta (todos los equipos jugando todos los deportes sin repeticiones en los enfrentamientos) no es posible con los parámetros que tienes.
Tl;dr Estás rellenando una cuadrícula de tamaño $(n/2)^2.$ pero cada equipo sólo tiene $n-1$ posibles competidores, ya que los equipos no pueden jugar ellos mismos. Se podría resolver este problema eliminando uno de los periodos, añadiendo un deporte extra, creando un equipo adicional o dividiendo a los campistas en un número par de equipos.
Para demostrarlo, imaginemos que sólo hay 4 equipos (de la A a la D), 2 periodos y 2 deportes. Empieza a rellenar el gráfico.
1 2
1|AB| |
2|CD| |
Como puedes ver, he rellenado la primera columna. Desgraciadamente, sólo quedan dos plazas en la fila 2, por lo que A y B deben ir allí si todos los equipos van a jugar todos los deportes.Del mismo modo, C y D deben ir en la fila 1.
Sin embargo, en una cuadrícula de 3 por 3, este problema se puede resolver.
|AB|CE|DF|
|CD|AF|BE|
|EF|BD|AC|
Dado que esta rejilla resuelta es 1/4 de la rejilla que estás intentando resolver, vamos a intentar usarla para que tu rejilla funcione.
|AB|CE|DF|
|CD|AF|BE|
|EF|BD|AC|
|GH|IK|JL|
|IJ|GL|HK|
|KL|HJ|GI|
Arriba he mostrado un segundo tablero resuelto hecho desplazando todas las letras de la primera cuadrícula hacia abajo 6 letras(por ejemplo A=G, B=H...). Esto es la mitad del programa.
Pero ahora, si se intenta rellenar la segunda mitad del horario, se vuelve al problema planteado en el ejemplo de 2 por 2. De la A a la F no pueden utilizarse en las filas 1 a 3, y de la G a la L no pueden utilizarse en las filas 4 a 6. Dicho esto, debemos reorganizar los equipos A a F para que compitan en las filas 4 a 6, y reorganizar los equipos G a L para que compitan en las filas 1 a 3.
|AB|CE|DF| |GK|LH|IJ|
|CD|AF|BE| |IH|GJ|LK|
|EF|BD|AC| |KJ|IL|GH|
|GH|IK|JL| |AE|FB|CD|
|IJ|GL|HK| |CB|AD|FE|
|KL|HJ|GI| |ED|CF|AB|
^
Repeated match-ups
Aquí he rellenado la cuadrícula con el número mínimo de repeticiones (6), y he elegido repetir los emparejamientos de las primeras columnas en la última fila para que el máximo de veces entre las repeticiones. Como puedes ver, eliminar el último periodo resolvería el problema por completo, al igual que eliminar alguno de los deportes. Alternativamente, podría dividir a los niños en un número impar de equipos.
0 votos
Lo que tienes ahí parece la respuesta ya...
0 votos
Oh, no lo es. Espera.
2 votos
Esta pregunta se formuló anteriormente (y se respondió, con una puntuación perfecta) en math.stackexchange.com/questions/893396/