Digamos que tiene seis jugadores (por ejemplo, una sencilla ). Podemos usar el mismo algoritmo que empareja a los oponentes en los torneos de eliminación simple y adaptarlo para generar equipos "pares" según los criterios que elija.
Primero clasifica a tus jugadores como mejores y peores. No tomes esto demasiado literalmente. Desea una lista de jugadores ordenados según los criterios que desee por separado ellos.
¿Por qué?
Veamos los torneos de eliminación simple por un segundo. La idea de utilizar un algoritmo para generar partidos de eliminación única óptima es evitar el problema de la reunión de los "mejores jugadores" demasiado pronto en el torneo. Si los mejores jugadores se encuentran demasiado pronto, uno de los mejores jugadores será eliminado al principio, haciendo que el torneo sea menos interesante. Podemos usar este emparejamiento "óptimo" para generar equipos en los que los jugadores "principales" estén repartidos uniformemente entre los equipos. Luego distribuya los segundos mejores jugadores, etc.
Por lo tanto, enumere a los jugadores por los criterios los quiere separados: hombres primero, luego mujeres ... ordenados por edad. Obtenemos (por ejemplo):
Player 1: Male - 18
Player 2: Male - 26
Player 3: Male - 45
Player 4: Female - 18
Player 5: Female - 26
Player 6: Female - 45
continuación, vamos a aplicar el algoritmo de eliminación directa que utiliza su "rango" (que es sólo su número de jugador) para crear "buenos duelos".
El generador de torneo de eliminación simple funciona básicamente como este: tome su rango (número de jugador) e invierta los bits (binario). Este nuevo número que se presenta se convierte en su "ranura" en el torneo.
Player 1 in binary (001), reversed becomes 100 (4 decimal) = slot 4
Player 2 in binary (010), reversed becomes 010 (2 decimal) = slot 2
Player 3 in binary (011), reversed becomes 110 (6 decimal) = slot 6
Player 4 in binary (100), reversed becomes 001 (1 decimal) = slot 1
Player 5 in binary (101), reversed becomes 101 (5 decimal) = slot 5
Player 6 in binary (110), reversed becomes 011 (3 decimal) = slot 3
En un torneo de eliminación simple, ranura 1 juega ranura 2, 3-vs-4, 5-vs-6. Vamos a utilizar estos "pares" para generar equipos óptimos.
Mirando el número de jugador anterior, pincha en "número de ranura", aquí está la lista que se nos ocurrió:
Slot 1: Female - 18
Slot 2: Male - 26
Slot 3: Female - 45
Slot 4: Male - 18
Slot 5: Female - 26
Slot 6: Male - 45
Al dividir las ranuras en equipos (dos o más) se obtiene los jugadores en la ranura 1-3 vs jugadores en la ranura 4-6. Esa es la agrupación mejor/óptima que puede obtener.
Esta técnica se adapta muy bien con muchos más jugadores, múltiples criterios (simplemente agrúpalos juntos correctamente) y múltiples equipos.
Hola, creo que el mejor algoritmo depende del número de equipos. ¿Cuántos deberían ser? – ATorras
¿Cómo encaja la clasificación de las habilidades? –
12 personas por equipo 8 equipos (¿demasiados para la fuerza bruta?) El ranking de habilidades es el criterio principal para garantizar la igualdad de los equipos. – Zaphod