Newsgroup: it.hobby.scacchi
Titolo: confronto tra sistemi svizzeri (per frengo e megalovic)

Salve,
in un post precedente Frengo e Megalovic hanno espresso critiche sul sistema
Dubov mentre io lo difendevo.
Propongo di passare dalle semplici opininioni e sensazioni, magari suggerite
da esperienze personali negative, ad analisi asettiche ed oggettive. Lo
scopo e' di compiere dei test oggettivi e pubblicare i risultati. I
risultati ottenuti in modo sistematico ci permetteranno di capirne di piu'.
Per questo occorre simulare dei tornei e tentare di riprodurli usando i 3
sistemi della FIDE. Io mi occupero' di generare il torneo col Dubov mentre
altri due (magari Frengo e Megalovic) si occuperanno rispettivamente del
sistema olandese e del Lim (il programma da usare è il PROTOS che li
contiene entrambi e l'ultima versione si puo' scaricare dal sito FIDE
all'indirizzo:
 
http://www.fide.com/news.asp?id=780
Usando il protos si puo' azzerare il torneo e ripartire con l'altro sistema.
Se si lavora in 3 faremo prima. Il confronto e' aperto anche ad altri
volontari. I dati del torneo (abbinamenti di ogni turno e tabellone finale)
dovranno essermi spediti affinche' io possa inserirli nel mio programma e
dargli un aspetto gradevole per la loro pubblicazione. Ogni torneo simulato
sarà pubblicato e tutti potranno notare la correttezza dei turni eseguiti
col sistema usato.
 
---------------------------------------------------------------------------
LA FASE OPERATIVA
Un punto su cui tutti concordevamo e da cui possiamo partire e' il seguente:
il sistema svizzero e' un'approssimazione (direi rozza) di un sistema a
girone all'italiana. Per cui la classifica finale dello svizzero deve
riprodurre quello del sistema all'italiana.
Ho già notato insieme a Brunetti, che nessuno pero' conosce questa
classifica, ne' che lo stesso torneo all'italiana produrrà sempre la stessa
classifica. Tuttavia, tagliando la testa al toro, ammettiamo che tale
classifica esista ed e' quella ordinata per elo discendente (come suggeriva
Megalovic). Ammettiamo dunque che nell'incontro X-Y vinca sistematicamente
sempre il giocatore con elo maggiore. Ora, seguendo l'idea di Brunetti, si
tratta di generare tre tornei paralleli con i 3 sistemi dove i risultati di
ciascun incontro sono quelli noti del corrispondente torneo all'italiana. In
un secondo tempo genereremo dei tornei all'italiana con risultati random ma
pur sempre proporzionali ai punteggi attesi di ogni singolo torneo, cioe'
dei risultati piu' realistici. Per il momento limitiamoci a questo semplice
caso ideale.
Propongo di simulare il seguente torneo costituito da 24 giocatori e 6 turni
di gioco. I giocatori sono i seguenti dove i loro nomi ordinati
alfabeticamente danno anche l'ordine in base al rating (quindi e' semplice
dare la vittoria al giocatore "giusto"). Ogni giocatore ha un elo di 40
punti inferiore a quello che lo precede.
  1 ALVARES GM 2600
  2 BROWN GM 2560
  3 COLIN GM 2520
  4 DAVIS GM 2480
  5 EDUARD GM 2440
  6 FRANK GM 2400
  7 GARRISON GM 2360
  8 HALLEY GM 2320
  9 IRISH GM 2280
 10 KELLY GM 2240
 11 LEMMON GM 2200
 12 MARTIN GM 2160
 13 NORTON GM 2120
 14 ORESTIS GM 2080
 15 PEACE GM 2040
 16 QUADE GM 2000
 17 ROBERT GM 1960
 18 SANDERS GM 1920
 19 TREVOR GM 1880
 20 UBILAVA GM 1840
 21 VICTOR GM 1800
 22 WEBER GM 1760
 23 XI JU GM 1720
 24 ZORRO GM 1680
La classifica finale da attendersi (quella del torneo italiano tra i
medesimi 24) ha lo stesso ordine. Quale sarà quella dei 3 sistemi svizzeri?
Adesso vado a generare quella per il Dubov. Attendo i risultati ottenuti con
il lim e con l'olandese prima di renderli tutti noti.
Ciao e grazie per la collaborazione,
Luigi
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 sistema olandese e del Lim 
Premesso che e' la prima volta che uso un programma di gestione tornei
(esperienza interessante, se dovessi organizzare un torneo semilampo
"casalingo" adesso saprei come fare)
Ho seguito le tue istruzioni e ho generato il torneo 6 turni con  il "lim".
Quali sono i file che ti devo spedire?
PS 1
un'anticipazione. questa la classifica finale (ho inserito nel programma,
per fare prima, solo le iniziali dei giocatori):
a
b
c
e
d
h
g
k
f
q
i
o
m
p
l
s
n
t
r
u
v
w
x
z
PS
comunqe credo che la cosa più importante sarebbe quella di capire quale
dei sistemi "gestisca" meglio le "anomalie" (elo più nasso batte elo più
alto), capire cioe' quel che avviene quando c'e' un risultato a sorpresa
(risultato che, da solo, nel girone all'italiana non comporterebbe una
gran balzo nella classifica finale da parte dell'autore della sorpresa,
cosa che può invece accadere negli svizzeri). 
Secondo me questo e' il punto, capire quale sia il sistema di gestione che
genera il "balzo" in classifica minore per chi si rende autore di un unico
risultato "anomalo".
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


 


Caro Luigi,
l'esperimento mi pare interessante, anche se e' secondo me un po' difficile 
ricostruire i casi reali.
In primo luogo, voglio sperare che nel caso di vittoria sistematica di chi 
ha piu elo, si arrivi da una classifica molto simile con i tre sistemi, 
senno' sarebbe una cosa grave.
Sarebbe quindi necessario avvicinarsi un attimo al caso ideale, introducendo 
se non delle vittorie 'a sorpresa' almeno delle patte.
Ancora piu fondamentale, pero', rispetto al tuo esempio, e' secondo me 
fornire un parco giocatori che si avvicini di piu al caso di un torneo 
reale, e cioe' dove non si sia una distribuzione cosi uniforme, ma a 
piramide, o comunque con un grosso numero di giocatori di elo intermedio.
Putroppo ora come ora non ho tempo, ma nei prossimi giorni mi/ti riprometto 
di fare delle prove.
frengo 

Quello che potresti fare e' prendere il torneo all'italiana con il maggior 
numero di giocatori che trovi, se non sono abbastanza per uno svizzero li 
"duplichi" (ad esempio creando Godena-1 e Godena-2).
Poi li fai giocare il torneo svizzero ed assegni ogni volta il risultato 
che si e' verificato nel torneo all'italiana (assegnando patta tra 
"duplicati").
Cosi' avresti un torneo con un campione di risultati "realistico". Sarebbe 
anche interessante vedere come lo svizzero approssima la classifica 
dell'italiano, anche se l'interpretazione del dato non e' ovvia.
Una altra idea (balzana)... anni fa ho letto su NIC un articolo moooolto 
interessante su un sistema ideale per generare la classifica di un torneo 
svizzero, proponendo una alternativa al semplice conteggio dei punti.
Una maniera di confrontare i vari svizzeri potrebbe essere di generare 
diversi tornei (anche random) e confrontare in media quanto la classifica 
finale (ottenuta con ciascun metodo) si avvicina alla classifica ideale 
per ciascuna delle simulazioni.
La classifica ideale si costruisce cosi (c'e' un po' di matematica, spero 
di non essere troppo arrugginito):
- l'incognita e' la "forza" del giocatore i-esimo, chiamiamola "fi" con 
"f" il vettore di tali incognite da 1 al numero di goicatori N
- alla fine del torneo, sia Rij il risultato dell'incontro tra il 
giocatore i-esimo e il giocatore j-esimo (Rij = 1 se i vince con j; Rij = 
0.5 se i e j pattano, Rij = 0 se i perde con j o se non ci ha giocato)
Sia R la matrice dei valori Rij
Adesso facciamo una ipotesi: se si fanno un numero sufficente di partite, 
la forza di un giocatore risultera' proporzionale alla forza dei giocatori 
con il quale quel giocatore ha fatto punti (vittorie o patte).
Ad esempio: se A batte B allora A e' tanto piu' forte quanto B e' forte. 
Lo stesso per la patta, ma un po' meno, perche' A ha pattato con B ma non 
ci ha vinto.
L'ipotesi e' che il fattore di proporzione "l" rispetti la seguente 
formula:
fi = l * (Ri1 * f1 + Ri2 * f2 + ... + RiN * fN)
ovvero, per chi si ricorda di algebra delle matrici:
f = l * R * f
con "f" un vettore colonna, "R" una matrice quadrata e l un numero 
(necessariamente positivo per il legame forza mia vs forza avversari)
Risolvendo la equazione di cui sopra (calcolo degli autovalori / 
autovettori di R) si trova f molto facilmente :-)
Credo si possa dimostrare, se la memoria paga, che essendo Rij >= 0, 
allora esiste un autovalore l "dominante" (quello a modulo piu' 
grande tra tutti gli autovalori possibili reale e maggiore di zero, per 
cui va schelto quello).
Sono andato a memoria e qualche dettaglio puo' essere sfuggito, ma piu' o 
meno dovrebbe essere cosi...
Il calcolo della classifica con il metodo tradizionale, contando i punti 
vittoria/patta, nello svizzero ha il problema che se io gioco con tutti 
scarsoni allora faccio piu' punti di un'altro che gioca con tutti i 
migliori.
Il calcolo della classifica come autovettore (forze del giocatore) 
dovrebbe ovviare a questo problema e dare una classifica obiettiva.
Lo scopo di un sistema di accoppiamento svizzero dovrebbe essere quello di 
creare abbastanza informazione sulla forza relativa dei giocatori in modo 
da generare una classifica il piu' possibile obiettiva (cioe' non 
dipendente da chi ha giocato contro chi).
Per chi simuli un po' di tornei col ciascun sistema e vedi quanto la 
classifica a punti differisce dalla classifica ad autovettore. Il sistema 
con la differenza minore dovrebbe essere migliore a dare una classifica 
"realistica".
-- Paolo


Ciao Paolo,
sei stato chiarissimo. Devo recuperare le mie vecchie routine sul calcolo
degli autovalori ma temo che con matrici 100x100 ed oltre, sorgano problemi
di stabilita' non indifferenti.
Intanto benvenuto nel gruppo degli sperimentatori sei stato assunto a pieni
voti.
Il tuo compitino per il fine settimana sarà il seguente: trovare su internet
il riferimento matematico a cui ti riferisci ed ogni informazione utile al
riguardo (in questo caso i dettagli fanno la differenza).
In seguito ci preoccuperemo di preparare una routine che legge il tabellone
e sputi la classifica. Questo metodo mi ricorda quello che si usa per
calcolare la performance dei giocatori a fine torneo e che può essere
risolto in maniera iterativa. Magari anche questo può essere risolto nello
stesso modo (ammesso che converga) fornendo una stima iniziale del vettore
forza con l=1 (magari sbaglio). Il vantaggio sarebbe che non occorre un
valore preciso per 'l' ma anche approssimato purche' la classifica nei posti
relativi non subisca piu' variazioni ad un certo punto.
Ciao,
Luigi



 relativi non subisca piu' variazioni ad un certo punto.
A suo tempo avevo fatto un paio di prove con matlab che le matrici le 
invertiva in un batter d'occhio e gli autovettori erano una bazzecola...
Nota di colore, dalla analisi di Mestel si vedeva come la 14a posizione 
dell'Italia fosse sovrastimata (per via della vittoria all'ultimo turno).
-- Paolo 

Un po' di teoria, guarda il teorema di Frobenius in fondo:
http://math.ec.unipi.it/algebra/mdecom/matpar1.htm
La proprieta' 1 e 2 sono quelle importanti
Per il calcolo di "l" (autovalore dominante o autovalore di Frobenius) e 
dell'autovettore... sembra sia un problema classicissimo di calcolo numerico 
e risolto col "metodo delle potenze"
http://www.prato.linux.it/~fcasadei/calcolo/relazione/node50.html
Scommetto che trovi gia' delle librerie matematiche che fanno tutto.
Ma forse ci vuole un po' di tempo a vedere come fare tornare i conti per il 
problema degli scacchi... anche se il vettore "y" alla fine del calcolo 
dovrebbe essere molto vicino a quello che cerchi...
Nota che in realta', per come ho scritto le formule prima "l" non e' 
l'autovalore ma l'inverso dell'autovalore se ricordo bene... dopo tanti 
anni...
-- Paolo 

 di stabilita' non indifferenti.
Penso anch'io... sono un po' a digiuno di calcolo numerico, ma a quanto
mi ricordo già invertire una matrice di quelle dimensioni porta a
sbattere contro la precisione finita della rappresentazione dei numeri
nel calcolatore, dando risultati inaffidabilissimi.
J.


Hmmmmm piu' ci guardo piu' mi sembra che sia un problema talmente classico 
che i metodi di calcolo dovrebbero essere piu' che affidabili...
-- Paolo


Signori, qua secondo me ci stiamo facendo prendere la mano.
Utilizzare un tale apparato matematico, per una simulazione che a causa 
delle troppe approssimazioni e aleatorieta' non credo possa dare risultati 
significativi.
Per questo ho pensato ad un approccio alternativo, che non so se possa dare 
risultati plausibili, ma per lo meno e' divertente.
Ne potete sapere di piu nel post Dubov Memorial.
frengo 


Signori, qua secondo me ci stiamo facendo prendere la mano.




frengo


Forse hai ragione se ti riferisci solamente al confronto dei sistemi 
svizzeri, forse ho un po' divagato. pero' lo scoring system proposto da 
Mestel e' indubbiamente interessante in senso piu' generale e capisco 
l'interesse di Luigi. Una volta capita la logica e trovate librerie 
matematiche preconfezionate, il calcolo del "Mestel-score" del torneo
a partire dal tablellone dei risultati potrebbe non essere cosi' 
complicato.
La complicazione e' nella giustificazione matematica e i link postati sono 
intesi per Forlano che aveva espresso interesse al riguardo, come 
dimostrazione che quello scoring system non e' del tutto campato per aria 
ma ha solide basi matematiche. Non e' necessario leggersi tutto per 
applicarlo...
-- Paolo



Dopo aver dato un'occhiata ai riferimenti indicati da Paolo il problema non
mi sembra piu' impossibile ma piuttosto semplice. Si tratta di trovare un
solo autovalore e con metodi iterativi i quali si correggono da soli
(purche' convergano e mi pare questo il caso).
Se mai e' importante avere l'interpretazione delle formule. Che cosa
rappresenta "fisicamente" l'autovalore nel nostro caso? Quindi avere
l'articolo di Mestel è fondamentale.
L'efficacia di sistemi che sono alternativi per ottenere dei risultati (una
classifica nel nostro caso) deve compiersi in modo parallelo tra i sistemi
stessi e su basi statistiche. La loro bontà deve potersi misurare
necessariamente dal prodotto finito, e non sui passi intermedi, mettendo in
risalto i pro ed i contro di ciascun ed i limiti di applicabilità: oggi noi
usiamo per convenienza sempre lo stesso sistema di abbinamento mentre magari
in certe situazione sarebbe preferibile usarne uno piuttosto che un altro.
Tentare di giungere a giudizi basati sul sentito dire o su mere convinzioni
ci porterebbe a sconfinare nella superstizione. Ho intenzione di seguire
l'approccio suggerito da Brunetti ed integrato da Casaschi partendo da una
semplice ipotesi: la riproducibilità di una classifica di un torneo
all'italiana attraverso un numero limitato di incontri selezionati da un
sistema svizzero.
Per il momento il compito è verificare l'efficacia dei tre sistemi FIDE.
Magari in una seconda fase potremmo anche inferire eventuali miglioramenti
ad alcuni di essi.
Per questo è importante avere dei volontari che simulino di volta in volta i
tornei.
Chi si fa avanti? potete anche scrivermi in privato.
Luigi


 l'articolo di Mestel è fondamentale.
Daccordo sull anecessita' di reperire l'articolo.
Pero' ti posso anticipare che l'autovettore "f" rappresenta la forza  del 
giocatoere i-esimo. Ordini i giocatori in base ad "fi" ed hai la 
classifica "ideale".
Bisogna solo stare attenti a come immettere i dati nella matrice R, non 
ricordo se Rij sono i punti ottenuti da j contro i o viceversa, ma non 
dovrebbe essere difficile ricostruire la formula o provare con un torneo e 
vedere quale delle due e' (se "i" vince tutte le partite sara' tra i 
primi...)
L'autovettore di per se non ha significato, e' giusto un coefficente 
proporzionale tra la propria forza e la somma pesata (coi risultati) della 
forza degli avversari.
Interessante notare un aspetto positivo dello scoring system di Mestel: 
ostacola fortemente le "combines" e le patte veloci in quanto risulta 
mooooolto difficile per un giocatore calcolare le conseguenze di una 
patta/vittoria... troppe dipendenze... sei in testa, fai patta con uno che 
ti sta dietro e questo potrebbe superarti! Non resta che giocare alla 
morte con qualsiasi avversario.
-- Paolo