Motion om förändringar av ratingsyste met

Johan Rönnblom jrblom@…almers.se
Mån. 25 april 2005 00.05.19 +0100


Gunnar Andersson wrote:
> Det här avsnittet gör mig lite förbryllad och jag undrar om jag tolkar 
> det rätt.  Antag att A och B har 1000 i rating och spelar en 
> ratinggrundade match, som vi kan kalla en 1-rondsturnering, som A 
> vinner.  Med dagens system får A 1005 och B 995 i ny rating.  Med 
> förslaget enligt ovan fås följande beräkningar:
> 
> A B
> 1000 1000 ursprunglig rating
> 1005 995 första steget i beräkningen = ny rating enligt nuvarande system
> 1009.6 990.4
> 1013.8 986.2
> 1017.7 982.3
> etc

Nej, nu tror jag att du har strulat till din beräkning. Jag får:
Första iterationen:
A: 1004.9999997676  B: 995.0000002324 (decimalerna visar nog var min
fi-funktion börjar bli opålitlig, tror jag - ser tryggt ut även om jag ska
kolla upp någon akademiskt publicerad fi-approximation med garanterade
minsta fel om vi kommer fram till att använda systemet).

Andra iterationen:
A: 1004.6017212754 B: 995.39827872465
Därefter konstateras att det efter avrundning är samma resultat i iteration
1 och iteration 2 för samtliga två spelare, varefter iterationen avbryts. 

Således:
A: 1005 B: 995 eller med andra ord precis samma resultat som med gamla
systemet (vilket är väntat).

> Regler för avrundning är väldigt viktiga för hur stora 
> ratingförändringar blir:
> (1) Om man avrundar ratingtalen efter varje steg blir resultatet 
> annorlunda än om man inte gör det.

Ja, det kan man absolut inte göra. Då får man inte den kontinuerliga följden
av mindre och mindre förändringar mellan varje iteration, och det är
tänkbart att det aldrig blir något stabilt resultat (säg att en spelare
avrundas uppåt i en iteration, vilket sänker dennes rating en liten aning i
nästa steg vilket får spelarens rating att avrundas nedåt, vilket höjer
ratingen i dånästa steg, osv.. detta uppträder ju inte om man har "många
decimaler" [eller snarare, sannolikheten för att det händer blir mindre än
ett delat med tio upphöjt till antalet decimaler i beräkningen, dvs
försumbar]).

> (2) Om avbrottsvillkoret "ända tills det inte längre blir någon skillnad 
> efter avrundning" ändras till "tills ratingen inte ändras med mer än 0.1 
> poäng" kommer resultatet förändras: A i beräkningen ovan når en punkt 
> där ökningen blir >0.1 men < 1 poäng.

Så ska inte vara fallet.

> Enligt (1) och (2) har alltså noggrannheten med vilken ratingen beräknas 
> internt stor betydelse för resultatet.  Jag tycker att det är en dålig 
> egenskap hos ett system och att det skulle vara bättre att upprepa 
> processen ovan tills den konvergerat helt.  Det är säkert lätt att 
> uppskatta antalet steg som krävs för att det största felet hos någon 
> spelare ska bli < 1 poäng.

Jag håller med dig även om det ju inte kan "konvergera helt" eftersom vi
arbetar med tal som inte har oändlig precision. Därför måste man avbryta
när det efter någon viss avrundning inte längre blir någon skillnad. Det
ska dock inte spela någon roll om denna avrundning använder noll decimaler,
en, två, tre eller alla decimaler som finns tillgängliga i datorns
representation av talen.

> Jag är nyfiken på följande:
> (1) Var har jag tänkt fel?  För det här kan väl inte vara meningen?

Jag tycker det ser ut som om du lägger till förändringen i varje iteration
till den förändrade ratingen från förra iterationen, i stället för till den
ursprungliga ratingen.

> (2) Johan verkar ha ett program för utvärdering av det nya systemet. Jag 
> är nyfiken på följande:
> (2a) Ny rating hos A och B i exemplet ovan.

Samma som gamla systemet, alltså.

> (2b) Ny rating hos A och B i exemplet ovan när "efter avrundning" byts
> till "efter avrundning till närmaste tiondels poäng".

Samma som tidigare, men det blir en iteration till:
A: 1004.6333530271 B: 995.36664697288

> (2c) Om det är enkelt att ta fram vill jag gärna se Örebroexemplet 
> omräknat där "efter avrundning" byts till "efter avrundning till 
> närmaste tiondels poäng".

Samma resultat som tidigare men med fjorton iterationer i stället för åtta.
Med två decimaler blir det också fjorton iterationer, med tre decimaler
sjutton. Men ja - samma resultat.

Det vore fint med ett stringent matematiskt bevis för att det måste bli så.

Antag att en spelares rating, utan avrundning, i en viss iteration uttrycks
RS(i) där S är spelarens namn och i är iterationen.

Definiera vidare den spelare som får störst förändring abs(RS(i+1)-RS(i))
som spelare A.

Om vi då kan visa att abs(RA(i+2)-RA(i+1)) <= abs(RA(i+1)-RA(i)) samt att
tecknet för RA(i+2)-RA(i+1) är motsatt tecknet för RA(i+1)-RA(i) så är
saken klar.

Varför? Jo, därför att det vi vill visa är att när vi avbryter när någon
inte längre förändras efter avrundning, så skulle ingen förändring kunna
ske efter avrundning i nästa iteration heller. Om ovanstående resonemang är
sant så måste RA(i+2) ligga någonstans mellan RA(i) och RA(i+1). Detta
eftersom nästa förändring alltså sker i motsatt riktning, men inte lika
långt.

Eftersom vi avbryter när RA(i) avrundas till samma tal som RA(i+1) så måste
i så fall även RA(i+2) avrundas till samma tal. Detsamma gäller förstås för
alla följande RA(i+3) osv.

Vi börjar med att visa att tecknet ändras. Vi behandlar fallet då A
förändrats positivt (symmetri gäller för en negativ förändring). Kan då A:s
förändring till nästa iteration bli positiv och större än noll?

Om A:s samtliga motståndare också ökat mellan i och i+1 lika mycket som
spelare A så är detta maximalt gynnsamt för A. De kan inte ha ökat mer, för
A är ju vald som den spelare som ökat mest. Men detta innebär ändå bara att
A:s förändring RA(i+2) - RA(i+1) blir noll. Varför? Jo, därför att
ratingförändringen är en funktion av skillnaden mellan de två spelarnas
rating, och ratingdifferensen förändras i detta fall inte mellan i+1 och
i+2 när A och A:s samtliga motståndare ökat lika mycket. Därmed är det
visat att tecknet på förändringen måste vara motsatt, eller att
förändringen måste vara noll.


Så nästa antagande, att abs(RA(i+2)-RA(i+1) <= abs(RA(i+1)-RA(i)).

Vi ser att detta inte gäller för alla teoretiska fall. Om A ökat i rating i
iteration i+1 och A spelat ett extremt stort antal matcher mot motståndare
som samtliga sjunkit i rating i iteration i+1, så kommer A i iteration i+2
att få en ratingminskning gentemot i+1 för var och en av dessa motståndare
som är större än noll. Frågan är nu hur många motståndare A måste ha mött
för att detta ska kunna inträffa. Jag lyckas konstruera ett fall då A har
vunnit 14 matcher och förlorat 13, både A och samtliga motståndare har
samma ingångsrating, A går upp 5 i första iterationen och alla de övriga
går ner 5 i första iterationen. Detta leder till att A i andra iterationen
går ner mer än fem, dvs hamnar under sitt ingångsvärde. Detta räcker inte
för att få felaktiga resultat, eftersom ändringarna ju dessutom måste vara
mindre än ett för att iterationen ska kunna avbrytas. Men jag får fundera
lite till för att få fram ett hållbart bevis på att detta inte kan leda
till problem i något realistiskt fall.

-- 
  /Johan Rönnblom




Information om listan