Algoritmo di Berger

algoritmo

L'algoritmo di Berger è un algoritmo usato per stilare un calendario (diviso in giornate o turni) di una competizione sportiva che abbia la formula del girone all'italiana: prende il nome dal suo inventore, l'austriaco Johann Berger.[1]

Il calcoloModifica

Con un numero pari di squadre partecipanti, l'algoritmo calcola "N:2" accoppiamenti per ogni giornata.[2]

  • Per ogni giornata «g» compresa tra 1 e «n−1»;
  • Per ogni incontro «i» compreso tra 1 e «n:2»;
  • L'incontro «i» abbina due squadre in base a questi criteri:
      1. non sono state ancora abbinate
      2. le restanti squadre - non selezionate - non siano state a loro volta già accoppiate.

ImplementazioniModifica

Vi sono funzioni che implementano l'algoritmo ponendo a parametro l'array con i nomi delle squadre, in numero pari, elaborando il calendario di un girone (stampato in video).

Nell'eventualità di un numero dispari di squadre, ad ognuna di esse sarà abbinato l'elemento «riposo» di volta in volta. I vincoli per squadre che condividano lo stesso campo sportivo sono risolvibili tramite un'alternanza tra incontri in casa e fuori casa.[3]

La Federazione francese degli scacchi ha pubblicato una implementazione tale per cui ogni giocatore alterna il bianco ed il nero nei propri turni di gioco[4].

NoteModifica

  1. ^ Paolo Alessandrini, La matematica nel pallone, 40K, 2015, p. 140.
  2. ^ Con "N=N−1".
  3. ^ Lega Serie A, il sorteggio dei calendari., su gazzetta.it, 25 luglio 2017.
  4. ^ (FR) Le livre de l'arbitre, Fédération Française des Échecs, 2008, p. 56, ISBN 978-2-915853-01-8.

Voci correlateModifica