piatok, 12. augusta 2011

Pokus o klasifikáciu hráčov bridžu na základe dosiahnutých poradí

V mentálnych športoch sa používajú dva základné systémy klasifikácie hráčov

  • majstrovské body
  • ELO
Obidva systémy klasifikácie hráčov majú svoje výhody a nevýhody. 

Majstrovské body sú kumulatívne a zohľadňujú iba dobré výsledky. Zlý výsledok nemá na klasifikáciu vplyv, takže MB iba pribúdajú, ale neklesajú. U medzinárodných majstrovských bodov je aj pokles, tuším -15% zostatku ku koncu predchádzajúceho roka. Majstrovské body buď zohľadňujú alebo nezohľadňujú silu účastníkov súťaže, slovenské MB ju v súčasnosti nijako nezohľadňujú.

ELO zohľadňuje všetky výsledky, dobrý výsledok ELO zvyšuje, zlý ho znižuje a ELO zohľadňuje aj silu účastníkov súťaže.

Tu navrhnutý systém je svojim spôsobom ELOm, pričom by však chcel používať iba jednoduché matematické operácie.

Východiská 
Predpokladajme, že všetci hráči majú rovnakú výkonnosť, ak by to tak bolo, tak ich umiestnenie v súťaži by bolo výsledkom náhody, keby odohrali 100 turnajov v rovnakom zložení, tak by pri 10 pároch bolo priemerné umiestnenie každého páru 5,5. Keďže by to však bolo výsledkom náhody, tak by sa skutočné priemerné umiestnenia pohybovali v rozpätí odhadom 5 až 6. Na tejto adrese je pokusný súbor, kde je v prvom hárku nasimulovaných 10 turnajov 10 párov s rovnakou výkonnosťou.

Reálne však hráči nemajú rovnakú výkonnosť, avšak napriek tomu, že tušíme, že nejaký pár je objektívne silnejší než iný, v jednotlivom turnaji je často poradie diametrálne iné, než by sme dopredu očakávali. Zatiaľ abstrahujme od toho, že pár tvoria dvaja hráči a dívajme sa na pár, ako na jeden objekt. Vo vyššie uvedenom prípade pre každý pár boli generované náhodné čísla od 0 do 1 a z toho vyplynulo umiestnenie v turnaji. Teraz predpokladajme, že páry budú mať výkonnosť rovnomerne odstupňovanú od 0,5 do 0,41 teda: 0,5 - 0,49 - 0,48 - 0,47 - 0,46 - 0,45 - 0,44 - 0,43 - 0,42 - 0,41. Nasimulujeme to v tabuľkovom kalkulátore tak, že pôvodnú funkciu prenásobime koeficientami 1 - 0,98 - 0,96....0,82. Keď som to  ponechal iba v takomto jednoduchom tvare, tak poradia boli naďalej úplne náhodné s drobnou tendenciou chýliť sa predpokladaným smerom. Preto som pre každý pár v každom turnaji 10x generoval náhodný výsledok z rozpätia zodpovedajúceho jeho výkonnosti, môžeme sa na to dívať tak, že každý pár v každom turnaji odohral 10 rozdaní. Výsledok takejto simulácie je v druhom hárku, keď ho však dáme opakovane prepočítať, tak sa výsledné celkové poradie môže značne zmeniť.

Turnaje však mávajú rôzny počet súťažných jednotiek a zúčastňujú sa ich rôzni hráči. Aby sme mohli relatívne porovnávať umiestnenie v turnajoch s rôznym počtom súťažiacich zvoľme za mieru úspechu relatívne umiestnenie v štartovnom poli:
Nech n je celkový počet súťažiacich a u je umiestnenie súťažiaceho. Príspevok r turnaja do ratingu súťažiaceho nech je
   (1) r=1000(n+1-u)/n
Potom víťaz každého turnaja získa do ratingu 1000 bodov, počet bodov posledného súťažiaceho sa s rastúcim n v limite blíži nule, pri malých počtoch súťažiacich je však pomerne veľký:
3 - 333, 4 -250, 5 -200, 6 - 166
hlavne by však priemerný príspevok nebol ideálnych 500, ale by bol
3: (1000+667+333)/3=666,6
4: (1000+750+500+250)/4=625
10: (1000+900+800+700+600+500+400+300+200+100)/10=550

Ak by r bolo

 (2) r=1000(n-u)/n

Potom by víťaz nebral stále tisíc bodov, ale s rastúcim počtom účastníkov v turnaji by jeho zisk rástol a v limite by sa blížil k 1000, posledný by bral vždy 0 bodov. Zisky víťaza:
3- 667, 4 - 750, 5 - 800, 10 - 900
priemer by bol
   3: (667 +333+0)/3=333,3
   4: 375
 10: 450

Keď sa pozrieme na výsledné priemery podľa vzorov  (1) a (2), tieto spočítame a predelíme dvoma, dostávame sa k požadovanému priemeru 500. Preto výsledný vzorec navrhujem nech je
   (3) r=1000(n+0,5-u)/n

Priemerný zisk z turnaja je požadovaných 500, s rastúcim počtom súťažiacich, víťazov zisk rastie a v limite sa blíži k 1000 (v konečnom dôsledku je ťažšie vyhrať bohatšie obsadený turnaj) a zisk posledného v limite klesá k nule.

Príspevok turnaja do ratingu hráča máme, teraz by sme mali navrhnúť samotný rating hráča.

Absolútny rating hráča je priemer všetkých jeho ziskov do ratingu, zo všetkých ním odohraných turnajov.

V takom prípade sú však nároky na pamäť zhora neobmedzené, okrem toho ratingom chceme podľa možností merať aktuálnu výkonnosť hráča a ak by v začiatku mal odohranú stovku turnajov na posledných miestach, tak ani 50 víťazných turnajov v rade za sebou by ho v ratingu nevynieslo veľmi nahor.

Rating hráča by preto mohol byť priemer z nejakého rozumného počtu jeho posledných turnajov. Stanovme, nech je tento počet zarátavaných turnajov napríklad 50. Potom rating hráča bude súčet jeho 50 posledne odohraných turnajov predelený 50. Aby sme nemali žiadne pamäťové nároky, mohol by sa rating hráča po turnaji zmeniť podľa vzorca:

   (4) Rn=(49Rs+r)/50

kde Rn je nový rating hráča a Rs je starý rating hráča. V podstate je to kompromis medzi absolútnym ratingom a ratingom z posledných 50 turnajov. Minulosť má váhu 49 a aktuálne odohraný turnaj má váhu 1.

Zohľadnenie sily poľa
Vo vzorci (3) nie je zohľadnená sila hráčov, je však zrejmé, že silu poľa by sme nejako zohľadniť mali, keďže výhra v turnaji so silnými hráčmi je omnoho hodnotnejšia než výhra v poli začiatočníkov. Potrebujeme teda stanoviť koeficient turnaja k v závislosti od sily poľa, pričom tento koeficient by mal byť rovný 1, ak je priemerný rating hráčov rovný 500.

(5) k=(R1+R2...Rn)/(500.n)

kde Ri sú ratingy jednotlivých hráčov.

Pokiaľ by bol koeficient turnaja taký malý, že aj víťazstvo v turnaji by viedlo u hráča k zníženiu jeho ratingu, tak by sa mu daný turnaj do ratingu nemal zarátať.

Zohľadnenie sily hráčov páru
Keď pár v turnaji tvoria dvaja nevyrovnaní hráči, jeden veľmi silný a druhý veľmi slabý, napríklad jeden z ratingom 700 a druhý z ratingom 300, tak ak by sa v 10 člennom poli umiestnili na 6. mieste, lepšiemu hráčovi by sa rating zhoršil a horšiemu zlepšil. Predpokladajme, že koeficient turnaja je 500, ak by sme nezaviedli nejakú korekciu zohľadňujúcu silu jednotlivých hráčov páru získali by

   r=1000(10+0,5-6)/10=450

Silnejšiemu hráčovi by rating klesol na 695 a slabšiemu by stúpol na 303. Možno predpokladať, že k dobrým výsledkom v turnaji väčšmi prispel lepší hráč a k zlým horší. Korekčné koeficienty pre hráčov páru by mali byť navrhnuté tak, aby v prípade, že majú rovnaký rating, boli koeficienty pre oboch hráčov rovnaké a rovné 1. Tieto by mohli byť napríklad:

(6)
  • l=1+(Rl-Rh)/(R1+Rh)
  • h=1-(Rl-Rh)/(R1+Rh)
kde l je koeficient pre lepšieho hráča a h pre horšieho. Vzorec (6) možno zapísať v jednotnom tvare z hľadiska konkrétneho hráča takto:
(6 b)

  • l=1+(R-Rp)/(R+Rp)
kde R je rating hráča a Rp je rating partnera


V našom prípade by to bolo

  • l=1+(700-300)/100=1,4
  • h=0,6
  • rl=630, rh=270
Ratingy po turnaji by boli  698,6 a 299,4. Obom hráčom rating klesol, keďže ako pár nesplnili očakávanie,  naďalej lepšiemu viac než slabšiemu, ale oproti pôvodnej situácii je to výrazne prijatelnejšie. 

Otestujme, ako by sa tieto koeficienty správali v extrémnych situáciách:
  • ak by turnaj vyhrali: rl=1,4 x 950=1330 rh=570
  • ak by skončili poslední: rl=1,4x50=70 rh=0,6x50=30
  • ak by mali rovnaký rating rovný 500: obom by klesol na 499
  • ak by jeden z hráčov mal rating rovný 0: celý zisk do ratingu by išiel iba lepšiemu hráčovi
Test pre extrémne situácie nedopadol dobre. V prípade výhry by bol lepší hráč až príliš bohato odmenený, v prípade posledného miesta zas možno predpokladať, že ho spôsobil hlavne horší hráč, ale s tým asi nič neurobíme, ak by sme lepšiemu hráčovi garantovali, že pri hraní so slabším partnerom určite nezíska do ratingu takmer nulu, tak by sme buď zaviedli do systému infláciu a priemerný rating by postupne narastal alebo by sme slabšiemu hráčovi museli zarátať záporné body.

Zjemnime teda aspoň dva extrémy:

  • Keď nevyrovnaný pár vyhraje , v takom prípade síce lepší hráč má určite na víťazstve väčšiu zásluhu, ale slabší sa pravdepodobne dopúšťal minima chýb.
  • Hoci má slabší hráč výkonnosť blízku nule, určite si niečo zo zisku do ratingu zaslúži
 Nech je korekčný koeficient nasledujúci:
(7)
  • l=1+0,5.(Rl-Rh)/(R1+Rh)
Aj hráč s ratingom blízkym nule niečo do ratingu získa a v prípade výhry síce bude lepší hráč vysoko odmenený, ale odmena sa predsa len delí rovnomernejšie.

Ako dopadnú extrémne testy teraz? V prípade posledného miesta (60 a 40), v prípade víťazstva (1140 a 760) pre vyrovnané páry je koeficient aj naďalej neutrálny.

Korekčný koeficient by mal spĺňať ešte jednu podmienku a to, že ak dosiahnú výsledok, ktorý zodpovedá ich ratingu, tak ani jeden ani druhý hráč nič nezíska. V našom prípade to je, ak by obsadili presne stred, to možno iba ak je nepárny počet hráčov, alebo ak sa pri párnom počte hráčov delia o miesta v strede. V našom prípade to je, keď  by sa delili o 5 a 6 miesto.
Podľa (6) by to bolo rl=1,4x500=700 a rh=0,6x500=300, takže pôvodný koeficient podmienku spĺňa,
podľa (7) by to bolo l=1,2 h=0,8 rl=600 a rh=400. Čiže súčet ratingov hráčov páru sa nezmenil, ale lepšiemu mierne klesol a slabšiemu mierne stúpol. Táto zmena je menej výrazná než bez korekčného koeficientu, ale je. Potrebujeme, aby v tomto prípade bol rovný 1,4 a 0,6, inak lepšiemu hráčovi rating klesne a horšiemu stúpne. Keďže však lepší hráč získa výrazne viac bodov, ak dosiahnu lepšie umiestnenenie než zodpovedá ich ratingu, tak sa s tým snáď môžeme zmieriť.


Korekčné koeficienty v družstvách
V družstvách by sme postupovali v podstate rovnako. Spočítali by sme priemerný rating hráčov družstva a korekčný koeficient jednotlivých hráčov by sme dostali tak, akoby mali za partnera fiktívneho hráča s týmto priemerným ratingom. Aby to úplne zodpovedalo korekčným koeficientom z párov, tak by sme mali spočítať priemerné ratingy ostatných spoluhráčov, ale to by sme v 4 člennom družstve museli rátať 4 samostatné priemery. Takže dávam na zváženie, či spočítame jednotlivé priemery alebo sa uspokojíme s priemerom za celé družstvo.

Zohľadnenie počtu rozdaní
Viackolový turnaj by správne mal mať väčšiu váhu než jednokolový. Štandardne má jedno kolo 26 rozdaní+-4, klubové turnaje mávajú 20-30 rozdaní. Turnaju s počtom rozdaní 25 priraďme váhu 1, každému kolu navyše váhu 0,5, potom dostaneme vzorec:
(9)
  • v=1+(b-25)/50
Druhá možnosť je váhu turnaja určiť podľa vzorca
(10)
  • v=b/25

Kde v je váha turnaja, b je počet rozdaní v turnaji. Hoci by počítanie ratingu s takto stanovenou váhou turnajov bolo korektnejšie, bolo by jednoduchšie rating rátať bez tejto váhy, poprípade aspoň nižšie spomenutá počiatočná inicializácia by bola jednoduchšia, keďže pri klubových turnajoch často spätne nezistíme počet rozdaní.

Počiatočná inicializácia
Na začiatku by sa všetkým slovenským hráčom nastavil rating rovný 500 a spätne by sa im vypočítal rating podľa dostupných údajov z turnajov za posledné dva či tri roky. Po prvom behu nad týmito dátami, by sa hráčom stanovil vstupný rating, aký by vyšiel a nad tými istými údajmi by prebehol druhý beh, po tomto druhom behu by sa výsledné ratingy pokladali za počiatočné ratingy a odo dňa D napríklad od 1.1.2012 by sa ratingy počítali priebežne. Takýchto behov by poprípade mohlo byť viac, kým by sa ratingy nestabilizovali (predpokladám, že po niekoľkých behoch by ratingy jednotlivých hráčov oscilovali okolo nejakej hodnoty).

Normalizácia ratingov
Raz ročne by sa ratingy normalizovali. Normalizácia by spočívala v tom, že by sa spočítali priemerné ratingy všetkých hráčov a všetky ratingy by sa prenásobili takým koeficientom, aby bol priemerný rating rovný 500. Normalizácia by sa použila aj pri počiatočnej inicializácii ratingov.

Medzičasom, vzhľadom na to, že po turnaji sa nezachovával priemerný rating hráčov, robím normalizáciu po každom turnaji. Na druhej strane nezachovávanie priemerného ratingu asi svedčí o nejakej systematickej chybe navrhnutého systému.

Nový hráč
Nový hráč začiatočník by mal na začiatku dostať nejaký nízky počiatočný rating a tento by mu postupne narastal. Ak by sme mu na začiatok dali napríklad rating 200, tak by mu síce postupne vystúpal, ale zároveň by sa znížil priemerný rating všetkých hráčov. Hlavne v malom klube by to mohol byť problém, lebo ak je v ňom napríklad 20 hráčov s priemerným ratingom 500, tak keď tento začiatočník stúpne na 400,  ostatným sa priemerný rating zníži na 490. Navrhujem preto, aby noví hráči mali na začiatku rating 500 a tento by im postupne klesal, poprípade stúpal. Druhou možnosťou by bolo, dať začiatočníkom počiatočný rating rovný 300 a všetkým hráčom klubu prenásobiť ich ratingy takým koeficientom, aby im dokopy pribudlo 200 bodov. Začiatočníci by časť týchto dotovaných bodov od pôvodných hráčov postupne "vysali". Osobne by som sa prikláňal k tejto dotácii, ale ak by sa začiatočníci zúčastnili iba jedného dvoch turnajov, tak by táto dotácia u pôvodných hráčov zostala takmer celá.

Dotácia pomocou fantómového hráča
Nový hráč by dostal počiatočný rating rovný 300, ale zároveň by sme mu vytvorili fantómového hráča s ratingom 700 a v turnajoch by sme ho registrovali ako tretieho hráča páru. Ak by sa nováčik zle umiestňoval, rating fantóma by postupne klesal, pritom by však rating začiatočníka mohol stúpať, ale hlavne ak by nováčik prestal po niekoľkých turnajoch hrať, tak by bola vyčerpaná iba časť jeho dotácie. Fantómový hráč by bol s nováčikom registrovaný nejaký obmedzený počet turnajov napríklad 10 až 20 a potom by hráč získal aritmetický priemer svojho dosiahnutého ratingu a ratingu fantóma.


Zahraniční hráči a turnaje v zahraničí
Problémom takéhoto ratingu je, že nevieme odhadnúť silu neznámych hráčov. Pokiaľ by to bol domáci turnaj, tak by sme spočítali priemerný rating slovenských hráčov, zahraničných by sme ignorovali. Po výpočte ratingov po turnaji by sa celkový priemerný rating obvykle zmenil, buď by sme túto zmenu akceptovali a bola by ošetrená každoročnou normalizáciou alebo by sa ratingy hráčov po turnaji prenásobili takým koeficientom, aby sa priemerné ratingy hráčov zúčastnených na turnaji nezmenili.

Turnaje v zahraničí by sme do ratingu buď nezapočítavali alebo by sme u nich predpokladali nejaký priemerný rating, dajme tomu 550 na veľkých cenách v Poľsku a Česku, 600 na reprezentačných podujatiach.

Nahradil by tento systém majstrovské body?
Ak by sme sa aj rozhodli zaviesť tento systém, v evidencii MB by sme pokračovali aj naďalej. Tento rating by slúžil na meranie relatívnej výkonnosti a na základe toho napríklad na nasadzovanie do turnajov, poprípade by mohol ovplyvňovať MB tak, že mimoklubové turnaje s hráčmi s väčším ratingom by mali vyšší koeficient pre zisk MB. Rating nevyrovnaných hráčov, ktorí sú raz na prvom a vzápätí na poslednom mieste by bol okolo 500, kým v MB môžu byť vyššie než vyrovnaní hráči, ktorí sa v priemere vyššie umiestňujú, ale na víťazstvo dosiahnu menej často.

Pokus o rating KBK od júna
Na tejto adrese je rating KBK od júna 2011 a boli doň zahrnutí aj registrovaní hráči SBZ, ktorí sa zúčastnili turnajov na ktorých boli hráči KBK. Nie je v ňom zohľadnený korekčný koeficient. Pri tomto pokuse som zistil, že priemerný rating sa nezachováva, ak hrajú v nejakom páre traja hráči. Keďže ich umiestnenie by malo byť náhodné, toto skreslenie by sa na dlhých tratiach malo samo eliminovať. Keď som zohľadnil aj priemerný rating turnaja, tak z turnaja na turnaj priemerný rating všetkých hráčov postupne klesal.
Zaviedol som preto normalizáciu po každom turnaji, ktorá zároveň odstránila aj problém s tromi hráčmi v páre. Vypočíta sa priemerný rating hráčov turnaja pred turnajom a po turnaji a ratingy zúčastnených hráčov sa prenásobia tak, aby zostal zachovaný súčet ich ratingov, ktoré mali pred turnajom.


Bridžový týždeň
Nahodil som tiež turnaje z bridžového týždňa a chová sa to veľmi zaujímavo. Predpis na zachovanie priemerného ratingu zúčastnených ratingovaných hráčov spôsobuje, akoby vyrátal potenciálnu silu neratingovaných hráčov a tak niekedy aj relatívne horší výsledok je ocenený ako veľmi dobrý výsledok vzhľadom na silu poľa. Prejavilo sa to napríklad v súťaži družstiev, kde hoci družstvo 1/2 plavo skončilo až siedme, keďže skončilo najlepšie zo slovenských družstiev (či vlastne 2. najlepšie, keďže v družstve Réva boli dvaja hráči registrovaní v SBZ), tak rating všetkých hráčov družstva stúpol. Mne z toho vychádza, že ak sa zahraničného turnaja zúčastní dostatočný počet ratingovaných hráčov, tak ho možno do ratingu zahrnúť. Minimálny počet ratingovaných súťažných jednotiek by mohol byť napríklad 3.

Ako by sa to malo chovať za definovaných špecifických podmienok?
  • Ak bude rating turnaja 500, hráč bude mať rating 600 a dosiahne výsledok 600, jeho rating by sa nemal zmeniť.
  • Ak bude rating turnaja 600, hráč bude mať rating 600 a dosiahne výsledok 500, tak by sa jeho rating nemal zmeniť.
  • Ak bude rating turnaja 500 a hráč s ratingom 400 dosiahne výsledok 500, mal by získať viac než len týchto 500.
Uvedené požiadavky spĺňa nasledujúci koeficient:
  • Rt.Rt/(500.R)
kde Rt je priemerný rating turnaja a R je rating hráča.

Zovšeobecnené, ak započítame aj partnera:
  • 2Rt.Rt/((R+Rp).500 )
Tento dodatočný keoficient som implementoval v tabuľke BELO2. Hráčom s vysokým ratingom takto rating rastie pomalšie a klesá rýchlejšie, hráčom s nízkym ratingom klesá pomalšie a rastie rýchlejšie. Extrémne prípady z BELO Menyhért a Skalková majú v BELO2 k 12.8. rating:
  • Menyhért: 569.10 oproti pôvodnému 581.55
  • Skalková: 420.77 oproti pôvodnému 415.92
Treba však podotknúť, že ešte stále nebol započítaný vplyv partnerov.

Čo vlastne tento rating meria?
Tento rating by mal celkom dobre odmerať silu hráčov ktorí sa pravidelne stretávajú a až na istú zotrvačnosť ratingu danú zvolenou váhou nového turnaja 1/50 oproti predchádzajúcim turnajom, po istom čase je nezávislý od toho, ako často jednotliví hráči hrávajú. S meraním sily hráčov, ktorí sa navzájom takmer nestretávajú je to už horšie. K redistribúcii ratingu medzi hráčmi klubov dochádza, len na mimoklubových turnajoch, poprípade, ak príde hráč z iného klubu. Majme spolu 101 hráčov, ktorí ak by spolu hrávali by mali rating rozdelený s odstupom po 5 teda od 750 do 250. Pokiaľ však v klube A budú hráči, ktorí by mali rating 750, 740, 730, 720, 710, 700, 690, 680, 670 a 680 a v klube B budú hráči
600, 590, 580 až 400 ale na začiatku všetkým pridelíme rating 500, pričom v kluboch odohrajú po 20 turnajov, tak v jednom i druhom klube budú mať hráči rating približne rovnomerne rozložený odhadom od 600 do 400. Keď sa uskutoční medziklubový turnaj, tak aj keby všetci hráči z klubu A boli na prvých 10 miestach a hráči z klubu B na ostatných, dôjde k redistribúcii iba malého počtu ratingových bodov. Priemerný rating v A sa zvýši dajme tomu o 5 a v B sa o 5 zníži, ale naďalej budú mnohí hráči z klubu B v ratingu vyššie než hráči z klubu A. Každou interakciou medzi hráčmi rôznych klubov však bude dochádzať k redistribúcii ratingu, obvykle smerom zodpovedajúcou sile hráčov, ale určite čas od času aj opačným. Redistribúciu môžeme zvýšiť, ak by sme mimoklubovým turnajom priradili vyššiu váhu.

Družstevné turnaje
Ak sa zápasy hrajú na malý počet rozdaní turnaj sa vyhodnotí an block, tak ako párové turnaje. Vtedy sa nezohľadní ktorý hráč ako často nastúpil, ak má družstvo viac hráčov, keďže tieto údaje obvykle ani nie sú k dispozícii.

Zápasy družstiev s veľkým počtom rozdaní možno každý jeden vyhodnotiť ako samostatný turnaj a to buď iba z hľadiska výhra, prehra, remíza teda: n=2, víťazstvo je 750 a prehra 250 bodov do ratingu, ale mohlo by to byť poprípade ostupňované: počet 30-VP by zodpovedalo miestu v 30 člennom poli, potom víťazstvo 25:5 by bolo 850 a 150 bodov do ratingu. Keďže však inak nás samotné výsledky nezaujímali, tak neviem či by to bolo systémové. V každom prípade takto, či už by sa zvolil systém výhra, prehra alebo spomenuté odstupňovanie, by napríklad liga dostala váhu rovnú počtu zápasov a teda by došlo k výraznej redistribúcii ratingu medzi hráčmi rôznych klubov.

Literatúra:

Žiadne komentáre:

Zverejnenie komentára