Consulta las preguntas frecuentes

Algoritmos de Judo in Cloud

Los algoritmos que usamos

A continuación se muestran los algoritmos que utilizamos dentro del programa para todas nuestras operaciones. Creemos en la transparencia y la honestidad, y queremos proporcionaros todos los datos para mostraros la corrección de nuestro trabajo.

Sorteos precompetitivos

Para las categorías no competitivas, la idea es dividir a los judokas en varias mini pools de un máximo de 4, haciendo varias liguillas y procurando mantener lo más separados posible a los niños del mismo club. Por ejemplo, 5 judokas se convierten en una pool de 2 y una de 3, 8 judokas en 2 pools de 4 y 9 judokas en 3 de 3.

Para cada categoría, tomamos la lista de judokas y los ordenamos primero aleatoriamente y después por club. Después creamos un número de torneos igual al número de judokas dividido entre 4. Por último, distribuimos a los judokas como si repartiéramos las cartas en un juego: el primer judoka al primer cuadro, el segundo al segundo y así sucesivamente.

Al mejor de tres

Para las categorías competitivas con dos judokas, el tipo de cuadro que usamos es al mejor de tres. Los judokas disputarán dos combates y, si están empatados a victorias, se disputará un tercer combate. Los judokas mantienen siempre el mismo color de cinturón y no se intercambian entre un combate y otro, para simplificar la entrada al tatami.

Liguilla

Para las categorías competitivas con tres, cuatro o cinco judokas, el tipo de cuadro que usamos es la liguilla (todos contra todos). Los judokas se ordenan aleatoriamente y después se crean todas las combinaciones con el método circular.

Para la clasificación solo se cuentan los puntos de judo: Ippon, doble Wazaari o Hansoku Make del adversario cuentan 10 puntos, Wazaari cuenta 1 punto. Si dos judokas tienen la misma puntuación, queda por delante el judoka que ganó el enfrentamiento directo.

Doble eliminación

Para las categorías competitivas con más de cinco judokas, el tipo de cuadro que usamos es el torneo de doble eliminación (o eliminación con repesca).

Empezamos creando las posiciones del cuadro dividiéndolas entre las cuatro pools A,B,C,D y después las ordenamos aleatoriamente. Por ejemplo, para 16 judokas la pool A usa las posiciones 1,5,9,13 y nosotros podemos aleatorizarlas en 5,13,9,1 (obviamente la aleatorización la hace el ordenador y no se hace a mano).

Después ordenamos a los judokas por club y asignamos cada uno a una pool, como si repartiéramos las cartas en un juego: el primer judoka a la pool A, el segundo a la B, el tercero a la C, el cuarto a la D, el quinto de nuevo a la A y así sucesivamente. Cuando damos un judoka a una pool, le asignamos el orden aleatorio que hemos creado antes: por ejemplo, el primer judoka estará en la posición 5, el quinto judoka en la posición 13 y así sucesivamente. De este modo nos aseguramos de que los judokas de un mismo club estén repartidos entre varias pools y de que cada pool esté ordenada aleatoriamente. Ahora tenemos a los judokas en un orden único que respeta el reglamento.

Para crear ahora los combates, el algoritmo es muy interesante. Tomamos la potencia de 2 más cercana al número de judokas (8,16,32,...) y consideramos las posiciones extra que añadimos como puestos vacíos en el cuadro. Partimos de una secuencia de números (array, para los informáticos) que contiene solo el número 1. En cada ciclo, añadimos a la derecha de cada número el mismo número sumado al ciclo en el que estamos. Por ejemplo:

- 1: 1

--> suma 1 a cada elemento y añádelo a la derecha

- 2: 1 2

--> suma 2 a cada elemento y añádelo a la derecha

- 4: 1 3 2 4

--> suma 4 a cada elemento y añádelo a la derecha

- 8: 1 5 3 7 2 6 4 8

--> suma 8 a cada elemento y añádelo a la derecha

- 16: 1 9 5 13 3 11 7 15 2 10 6 14 4 12 8 16

Para las repescas, se introducen en las posiciones correctas los judokas que han perdido contra uno de los semifinalistas.

Para la clasificación final, se toman los ganadores y los perdedores de las distintas finales.

Cálculo del número y la duración de los combates

Para calcular la estimación de la duración de un grupo de edad, hacemos n combates ✕ (tiempo de combate + 1 minuto extra) / n tatamis. Por ejemplo, 100 combates de 2 minutos cada uno en una competición con 3 tatamis durarán aproximadamente 100 ✕ (2+1) / 3 = 100 minutos, es decir, una hora y cuarenta minutos.

El cálculo de los combates de una categoría se puede hacer partiendo del número de judokas (llamémoslo n).

- Al mejor de tres, contamos 2 combates;

- Liguilla, (n² - n) / 2

- Liguilla precompetitiva, se hacen los cálculos de las distintas mini liguillas

- Doble eliminación, existe una fórmula específica. Tenemos (n - 1) combates del cuadro principal + (4 ✕ (log₂nn - 2)) de las repescas, donde nn es la potencia de 2 más cercana a n. Si la notación (log₂nn) resulta confusa, es simplemente el número de columnas con combates del cuadro principal. La demostración se deja al lector :P

Clasificación por clubes

Para la clasificación por clubes, los puntos asignados según las posiciones de los judokas son los siguientes:

- 1: 10

- 2: 8

- 3: 6

- 4: 4

- 5: 4 (solo en los torneos de doble eliminación)

Asignación automática de torneos

Para repartir automáticamente los cuadros entre las mesas, el método es sencillo. En primer lugar, ordenamos los cuadros en orden decreciente según el número de combates.

A continuación, damos un torneo cada vez al tatami con menos combates. De este modo nos aseguramos un reparto óptimo de los combates, aunque suponiendo que todos los combates sean iguales. No hacemos distinciones entre grupos de edad distintos (que quizás tienen tiempos de combate distintos) ni diferencias entre categorías (las más ligeras tardan de media menos tiempo que las más pesadas). Usa esta función con moderación.