giovedì 26 novembre 2015

Un algoritmo per il campionato

Vi siete mai chiesti come si creano i calendari dei campionati di calcio? Credo di no.
Se però la prima riga di questo post vi ha messo un po' di curiosità, posso dirvi subito come NON si fa: non si sorteggia. Insomma, non si pescano da un cappello le squadre per abbinarle, creare la prima giornata, e poi si rifà l'operazione stando attenti a non ricreare le giornate precedenti, e per di più alternando casa e trasferta. Così facendo, sarebbe molto lungo creare calendari anche solo per quadrangolari di provincia.
La risposta alla necessità di creare calendari per campionati anche di 20-30 squadre è la seguente: l'algoritmo di Berger.

Un algoritmo è una serie di passi eseguibili da una macchina (o da un esecutore "stupido", ovvero che non sa in realtà quello che sta facendo) per risolvere un problema. Vi sono problemi che inconsapevolmente risolviamo ogni giorno con l'aiuto di algoritmi di vario tipo: dal parcheggio, al regolare l'acqua calda della doccia.
Per creare i calendari dei campionati si può utilizzare un facile algoritmo creato da uno scacchista austriaco, Berger, che si può descrivere come segue: dato un numero pari di squadre (diciamo A,B,C,D; potrebbero anche essere dispari, ma per ora restringiamoci a questo caso), se ne toglie una e si dispongono le rimanenti in questo modo:

A B C

partendo dal fondo, prendiamo le prime due squadre: B-C sarà la nostra prima partita.
La squadra rimanente, A, la abbiniamo a quella rimasta fuori: D.
La prima giornata sarà:

C-B
A-D

Ora procediamo in questo modo: "ruotiamo" le squadre, spostando la C in testa. Otteniamo

C A B

Ecco che possiamo ripetere il procedimento: dal fondo prendiamo A e B, e creiamo A-B, per poi abbinare C a D. La seconda giornata è: 

B-A
C-D

Resta solo una giornata, ma ormai il giochino l'abbiamo imparato:

B C A
E la giornata diviene:

A-C
B-D

Così facendo abbiamo creato il nostro calendario:

Giornata I
C-B
A-D
 Giornata II
B-A
C-D
 Giornata III
A-C
B-D

L'algoritmo non alterna automaticamente casa e trasferta, ma è un buon punto di partenza!
Possiamo fare qualche affermazione matematica? Ma credo di sì: date n squadre, abbiamo n-1 giornate, e in ogni giornata n/2 partite, ma questo lo si può capire guardando 90° minuto!
E se le squadre sono dispari? Niente paura. A rotazione una riposa, e può fare un'amichevole.

Nessun commento:

Posta un commento