Српски
Srpski
English
eXTReMe Tracker
ВЕЧИТИ ШАХ
Прва - Турнири - Претрага - Рејтинг - Лига - Вести - Линк
user:  
pass:
 
  Истина о шаховском рејтингу

Истина о шаховском рејтингу

14.08.2010 /   Андрејић, Владица (2185)

Оригинални чланак "Истина о шаховском рејтингу" Др Андрејић Владице можете преузети у ПДФ формату.

Истина о шаховском рејтингу

Владица Андрејић

Универзитет у Београду, Математички факултет, Србија

Функција рејтинг очекивања

Основни проблем шаховског рејтинг система је одредити функцију f, која разлици у рејтингу додељује вероватноћу, односно очекивани резултат. То заправо значи да уколико играч A са рејтингом Ra одигра N партија против играча B са рејтингом Rb, можемо очекивати да ће A сакупити N*f(Ra-Rb) поена, односно да ће коначни однос поена у мечу A против B бити f(Ra-Rb):f(Rb-Ra), при чему је наравно f(Rb-Ra)=1-f(Ra-Rb).

Понашање рејтинга зависи од функције f , а њене особине можемо потражити у најједноставнијем случају када три играча A, B и C, између себе одиграју огроман број партија. Ако знамо резултат A против B и резултат B против C, можемо ли наслутити резултат A против C?

Једна од могућих хипотеза је да је природа рејтинга таква да чува одговарајуће односе. То заправо значи да уколико A и B играју у односу a:b, а B и C у односу b:c, тада очекујемо да A и C играју у односу a:c. Ако са x и y означимо разлику у рејтингу играча A и B, односно B и C, тада се хипотеза може записати у виду функционалне једначине

која важи за свако реално x и y. Поједностављење једначине (1) са x=y доводи до формуле

која се лакше може применити, а није тешко доказати да решење ових јадначина, представља фамилију функција облика

где је C нека константа. Сам избор константе C је неважан јер он само нормира јединицу мере рејтинга, те тако једном рејтинг поену одговара вероватноћа од f(1)=1/(1+C).

FIDE у свом Handbook-у каже да формула (3) за вредност

јако добро опонаша праве (FIDE) вредности за f [2], али да се ипак у рачунима користе директно одговарајуће таблице [1]. На основу (4) могли би рећи да је C изабрано тако да важи f(400)=10/11, али утисак квари то што је 10/11 ~ 0.91, док у таблицама стоји вредност 0.92. Комплетне FIDE таблице направљене су на основу другачије дистрибуције, али одступања су јако мала и износе око 1% (у оба смера).

Испитивање хипотезе

Да ли закон о очувању односа из наше хипотезе заиста добро описује реалност? Ја сам први пут посумњао у њега када сам прочитао Sonas-ов чланак [3] у коме се као алтернатива предлаже линеарна скала. Због тога сам извршио неколико експеримената користећи податке са мог вебсајта Вечити Шах [4], који је од почетка 2006. испратио скоро све турнире (класични темпо, викенди, цугери) који вреде, а играни су на подручју Србије и Црне Горе.

У Првом експерименту посматрао сам све резултате партија на класичном темпу игре, играних у Србији и Црној Гори, где су оба играча имала FIDE рејтинг. Програм је разврставао партије у класе од по 10 рејтинг поена, односно узимао је заокружени број разлике у рејтингу подељену са 10 и вршио статистичку обраду. Веома интересантан резултат је да су сви добијени проценти строго мањи од пројектованих (формуле (3) и (4)), барем за првих 50 класа, односно до разлике од 500 рејтинг поена, док је за веће разлике узорак премали за озбиљно тумачење. Објашњење овог феномена можда треба тражити у, по мени непоуздано, рачунање FIDE рејтинга, поготово на нижим рејтинзима (огромна већина играча из овог експеримента имају рејтинг испод 2400), јер је идентичан експеримент, овога пута на светским супертурнирима дао прилично задовољавајуће резултате.

Иако конкретно добијене статистичке бројке не одговарају пројекцији из теорије и даље можемо испитивати односе између њих. Упоређивањем вредности са леве и десне стране једначине (2) за добијене статистике, можемо закључити да се оне не разликују превише и самим тим подржавају хипотезу.

Рејтинг цугера Београдског Водовода

Други експеримент који сам извршио је много екстремнији и базиран је на цугерима шаховског клуба Београдски Водовод који су се традиционално играли скоро сваког понедељка и четвртка. Архива турнира Вечитог шаха [4] садржи 258 тих турнира (углавном 15 кола по швајцарском систему) што чини огроман узорак од 49639 одиграних партија. Како FIDE рејтинг овде нема пуно смисла ја сам поодавно увео посебан рејтинг за ове популарне цугере. Рејтинг систем који сам оформио по многим аспектима се разликовао од FIDE рејтинга, а као инспирација послужио је управо Sonas-ов чланак [3]. Скала је била линеарна где је сваки рејтинг поен разлике означавао промил више преко 50%, а разлици од преко 500 рејтинг поена одговарала је вероватноћа од свих 100%. Рејтинг је рачунат као (линеарни) перформанс на последњих 150 одиграних партија, при чему су, наравно, искључиване победе које смањују, односно порази који повећавају тај перформанс. Ако играч није одиграо 150 партија, имао је перформанс на ономе што је одиграо, али на барем 75 партија, при чему су партије до 75. допуњаване виртуелним ремијима против рејтинга 2000. Рејтинг листе су излазиле месечно, а имале су велику предност што почетни рејтинг није био битан, јер играње нових 10 турнира у потпуности елиминише старе резултате.

Основна претпоставка за овај експеримент је та да ће ма какав, иоле логичан, рејтинг систем, успети да пристојно диференцира играче по јачини. Самим тим основна природа понашања рејтинга појавиће се кроз одговарајуће статистике. Као и у првом примеру разврставао сам партије у класе од по 10 рејтинг поена и бележио статистике, а комплетан експеримент записан је у табели на следећој страни.

Објаснимо најпре шта предстваљају колоне наше табеле. Прва колона даје вредност која представља рејтинг класу, односно ситуацију када је разлика у рејтингу око 10. Друга колона даје број обрађених партија из класе , при чему су у обзир узете само партије где су противници већ стабилизовали рејтинг, односно одиграли бар 75 партија. Трећа колона даје проценат у случају да се рејтинг понаша линеарно, односно онако како је предвиђено самим рејтинг системом. Четврта колона даје статистички проценат у класи . Пета колона даје предвиђање процента у класи 2 по формули (2) уз претпоставку да се односи чувају, а шеста колона даје стварни статистички проценат у тој класи. Последња колона је апсолутна разлика претходне две колоне и представља колико је одступање од прогнозе. Напоменимо још и то да су све вредности у таблици заокруживане на три децимале.

Прилично одступање треће и четврте колоне нам говори да је сам рејтинг систем лоше осмишљен, међутим мале вредности у последњој колони показују праву природу рејтинга. Овај експеримент ме је у потпуности убедио да је очување односа из хипотезе један природни закон који мора да стоји иза сваког шаховског рејтинга! Како је избор константе C небитан, најједноставније је узети утемељено C из (4) да би се избегле неке двосмислености и додатна објашњења.

узорак линеар f(10) f(20) diff
0 1574 0.5 0.5 0.5 0.5 0
1 1628 0.51 0.518 0.536 0.524 0.012
2 1690 0.52 0.524 0.548 0.562 0.014
3 1819 0.53 0.537 0.574 0.583 0.009
4 1714 0.54 0.562 0.623 0.6 0.023
5 1713 0.55 0.543 0.586 0.618 0.032
6 1739 0.56 0.583 0.661 0.645 0.016
7 1610 0.57 0.591 0.677 0.693 0.016
8 1769 0.58 0.6 0.692 0.702 0.01
9 1666 0.59 0.621 0.729 0.744 0.015
10 1630 0.6 0.618 0.724 0.755 0.031
11 1594 0.61 0.646 0.769 0.776 0.007
12 1556 0.62 0.645 0.767 0.779 0.012
13 1615 0.63 0.665 0.798 0.807 0.009
14 1476 0.64 0.693 0.836 0.817 0.019
15 1414 0.65 0.69 0.831 0.829 0.002
16 1373 0.66 0.702 0.847 0.855 0.008
17 1376 0.67 0.713 0.86 0.89 0.03
18 1338 0.68 0.744 0.894 0.844 0.05
19 1259 0.69 0.723 0.872 0.889 0.017
20 1232 0.7 0.755 0.905 0.914 0.009
21 1129 0.71 0.759 0.908 0.907 0.001
22 1113 0.72 0.776 0.923 0.949 0.026
23 1058 0.73 0.782 0.928 0.917 0.011
24 1040 0.74 0.779 0.925 0.961 0.036
25 902 0.75 0.81 0.948 0.948 0
26 930 0.76 0.807 0.946 0.963 0.017
27 854 0.77 0.827 0.958 0.995 0.037
28 712 0.78 0.817 0.952 0.977 0.025
29 709 0.79 0.823 0.956 0.958 0.002
30 667 0.8 0.829 0.959 0.985 0.026
31 662 0.81 0.855 0.972 0.966 0.006
32 645 0.82 0.855 0.972 0.977 0.005
33 611 0.83 0.849 0.97 0.985 0.015
34 541 0.84 0.89 0.985 1 0.015
35 497 0.85 0.882 0.983 1 0.017
36 458 0.86 0.844 0.967 1 0.033
37 403 0.87 0.895 0.986 0.941 0.045
38 382 0.88 0.889 0.985 1 0.015
39 338 0.89 0.898 0.987 1 0.013
40 324 0.9 0.914 0.991 1 0.009
41 320 0.91 0.897 0.987 1 0.013
42 275 0.92 0.907 0.99 1 0.01

Апроксимација функције f

У претходном тексту смо статистички доказали валидност формуле (1), међутим она је непогодна за једноставан рачун. За мале вредности x можемо је апроксимирати користећи Maclaurin-ов развој.

Пажљивим рачуном за први и други извод функције f добијамо

те у тачки x=0 имамо f'(0)=-(1/4)log C и f''(0)=0, што уз (4) даје

Овако смо добили апроксимацију

која јако добро ради за |x|<100. Дакле, на интервалу |x|<100 функција f се понаша линеарно, а како је 1600/log10 ~ 695, то можемо писати

Претходни рачун доказује, међу шахистима познату ствар, да сваком проценту преко 50% одговара 7 (односно прецизније 6.95) рејтинг поена.

Утицај последње партије

У даљем тексту желимо да испитамо колики утицај има последње одиграна партија. Претпоставимо зато да играч има званични рејтинг R0, али је у међувремену напредовао (или назадовао) и сада вреди за R1. Ако он одигра једну партију, то ће по FIDE правилницима [1] зарадити разлику између оствареног и очекиваног резултата помножену са K, где је K развојни коефицијент играча. Тако долазимо до очекиване зараде од K(f(R1-R0)-1/2). Са друге стране замислимо да је наш играч одиграо N-1 партија снагом старог рејтинга, а онда одиграо партију новом снагом. Перформанс који је тако остварио је ((N-1)R0+R1)/N, те се може рећи да је у заради (R1-R0)/N. Поистоветимо ли ове зараде, добијамо једначину

Ради лакшег рачуна, употребићемо апроксимацију (5) за

и коначно

Штавише, рачун се са једне стране може урадити и без апроксимације. Како нам пажљив рачун даје f'''(0)=(1/8)(log C)^3<0, то се лако може показати да је f(x) < 1/2 + (log10)x/1600, за x>0, као и симетрично f(x) > 1/2 + (log10)x/1600, за x<0. Поновним упоређивањем кроз (6), можемо закључити да свакако важи

те апроксимација (7) заправо даје минималну вредност производа KN.

Нови играч на рејтинг листи

Познато је да у FIDE за сада функционишу три развојна коефицијента. K=25 имају нови играчи док не одиграју барем 30 партија, К=10 играчи који су некад у каријери премашили 2400 рејтинг поена, док К=15 имају сви остали [1]. На основу резултата (7) можемо закључити да последње одиграна партија има утицај као једна од 695/K одиграних партија. Посматрајмо сада новог играча који излази на рејтинг листу. По FIDE правилницима када неко одигра бар 9 партија против рејтингованих играча, он ће као почетни рејтинг добити неку врсту перформанса за резултат до 50%, а ако направи преко 50% то ће му се на просек противника додати по 12.5 рејтинг поена за сваких освојених пола бода преко [1]. Посматрајмо сада играча који се после једног турнира и 9 одиграних партија појавио на рејтинг листи и самим тим добио почетни К=25. Све док буде имао тај коефицијент (првих 30 партија) његова последња партија вредеће по (7) као једна од 695/K ~ 28, иако је број партија што их је одиграо далеко мањи од тога. Још бољу илустрацију имамо кроз (8), где видимо да тих првих 9 партија вреде као да су игране под коефицијентом K > 695/9 ~ 77, а онда се то брутално смањује више него три пута на 25. Још већа неправда учињена је играчима који су на почетку правили преко 50% и зарадили само 12.5 за сваких пола бода преко тога, јер су они бонусе зарађивали по коефицијенту 25 иако су саме те партије вределе за три пута јачи коефицијент.

Из претходно наведеног можемо закључити да је FIDE прилично лоше решила излазак новог играча на рејтинг листу, а то може имати далекосежне последице. Уколико играч добије прилично нереалан почетни рејтинг, њему је потребно веома много времена и одиграних партија да свој рејтинг доведе на ниво за који вреди, док у међувремену утиче позитивно или негативно на рејтинг својих противника.

Мој предлог је да пошто играч заради почетни рејтинг добије и клизни коефицијент K=695/N, где је N (хронолошки) редни број партије коју је одиграо против рејтингованих играча. Судећи по (7) то је добра апроксимација, док је са друге стране због (8) то неки минимум који треба поставити. Клизни коефицијент би требало да важи све док не падне испод вредности K0 које смо наменили играчима са стабилним рејтингом, односно све док број одиграних партија буде мањи од 695/K0. Наравно достизање одређеног рејтинга ради признавања титуле ваљало би рачунати само пошто се деси претходно наведено, односно стабилизује рејтинг.

Постоји могућност и радикалнијег решења по коме сви играчи на почетку добијају такозвани почетни рејтинг, а онда са њим улазе у наведену процедуру уз евентуално смањивање коефицијента K за јако мало N (пре свега за N=1 и N=2). У том случају због непоузданости рејтинга играча са малим бројем партија требало би модификовати и коефицијент његовог противника (поготово ако он има стабилних K0). Верујем да у случају да кад противници (по претходном) имају коефицијенте K и K1 < K, овај други (К1) треба помножити са K1/K.

Најбоље K

Што се тиче најбоље вредности за K0, експерименти које сам извршио показали су да ако имамо добро постављен рејтинг систем коефицијент K треба бити што мањи. По мени, основни проблем је лоше креиран излазак новог играча на рејтинг листу и сматрам да су све вредности између 10 и 16 сасвим коректне. Међутим никако не могу да препоручим увођење већих коефицијентата за играче са стабилним рејтингом јер би то у потпуности упропастило саму суштину рејтинг система. Додао бих и то да не видим било какву потребу да постоји дискриминација по томе да ли је играч некада у каријери пребацио рејтинг од 2400, те тако добио другачији коефицијент.

Рејтинг перформанс

Перформанс играча је последњих година јако битна ствар јер се на основу њега освајају велемајсторске и интермајсторске норме. Међутим, начин на који се перформанс рачуна је прилично забрињавајући, а износи Ra+f^{-1}(p), где је Ra просечни рејтинг противника, док је p проценат који је играч остварио на турниру. На турнирима се често дешава да неки противници имају тако мали рејтинг да победа против њих заправо умањује перформанс, те се зато зарад перформанса за норму рејтинг најгоререјтингованог играча подиже да би се евентуално ствар поправила. Мој предлог је да се перформанс дефинише као онај рејтинг који би се сачувао приликом рејтинговања дотичног турнира. Он се лако може итеративно срачунати, а оно што је добро је што тај итеративни рачун не зависи од развојног коефицијента са којим се рачуна. За ове рачуне ја не бих користио заокруживања из таблице, већ праве вредности функције f, наравно без икаквих рејтинг прагова од 400 рејтинг поена. У сваком случају победа никако не може да штети, а поправљају се и још неке ствари. На пример, претпоставимо да човек освоји 1.5 поен у две партије са просеком противника од 2400, тада би за FIDE рачун перформанс био 2591 (или 2593 по таблицама). То би била и вредност за моју рачуницу, али само ако оба противника имају 2400. Међутим рејтинг није линеаран, што смо показали, те ако противници имају 2300 и 2500 онда је перформанс 2605, а за противнике од 2200 и 2600 перформанс је 2648! Овакав итеративни рачун ће увек конвергирати једној вредности, нашем перформансу, осим у случају свих победа или свих пораза када се перформанс не може срачунати, што је и нормално.

Литература