středa 7. listopadu 2007

Nové, lepší ELO?

Systém hodnocení ELO stejnojmenného Američana maďarského původu, prof. Arpáda Ela (mj. fyzika), je dnes asi nejlepší a nejpoužívanější systém hodnocení výkonů hráčů her pro dva hráče. Používá se především pro šachy a GO.

Důvod, proč je tak dobrý, je, že se nesnaží hráče odměňovat za jejich výhry. (Jako je tomu třeba v tenise - čerpám z Wiki - kde je např. fixně určeno, že za Wimbledon, jako cenný turnaj, získává hráč pětkrát víc bodů než za běžný jiný turnaj - toto číslo není ničím podložené a tudíž neměří sílu hráče objektivně.) Namísto toho se snaží o skutečné statistické vyhodnocení: když hráč A vyhrává nad hráčem B na 75 %, přisoudíme hráči A elo o 200 vyšší. Pak přijde hráč C a prohrává s Bčkem v 75 % případů, takže má elo celkem 400 pod hráčem A. Celý systém je jenom porovnávací - neumí např. ani porovnávat současné hráče s těmi v minulosti, (protože elo podléhá inflaci/deflaci.)

Jaký představuje rozdíl oproti jiným systémům můžete zjistit zavítáním na server kurnik.org, který jej implementoval. Tam skutečně elo ukazuje výkonnost hráče. Naproti tomu jiné servery, které naivně implementovaly např. systém „vyhraješ-dostaneš bod“ (hry.cz), neumí říct o skutečné kvalitě hráče vlastně nic.

J.Sonas navrhuje na základě měření místo logistické křivky použít jednoduchou přímku...

Přesto ještě není vůbec jasné, jak by se měla tabulka ela konstruovat. Když se podíváme na příklad výše, jaká je ve skutečnosti pravděpodobnost, že A vyhraje nad C? Standardní elo používané v šachu říká, že 91 %, je to ale jenom hodnota spočítaná za některých předpokladů - ve skutečnosti by se měla měřit. Elo nejprve použil předpoklad, že hráči mají stejné výkyvy hry, které se řídí normálním rozdělením, podle čehož křivku odvodil (jako CDR normálního rozdělení). Později se ale ukázalo, že se (kupodivu!) výkony hráčů řídí spíše logistickým rozdělením. Navíc bylo zohledněno i to, že ne všichni hráči mají stejné výkyvy - tzv. koeficientem rozvoje. To už ale zabíhám do přílišných detailů.

Včera jsem nad tím přemýšlel a našel jsem článek člověka, který porovnával hry mnoha hráčů s různými ely ke skutečnému „změření“ křivky ela. Kupodivu zjistil, že ještě lepším fitem než je logistické rozdělení, je zkrátka přímka.. Zároveň navrhuje použít dynamické koeficienty rozvoje, které by se mohly lišit pro různě dlouhé šachové hry.

Tak se dostávám k věci, kvůli které jsem vlastně včera elo vyhledal: porovnávání „hloubky her“. Pokud totiž každému začátečníkovi dám do začátku ELO 1200 a všichni mají stejný koeficient rozvoje, (jako je tomu třeba na zmiňovaném kurniku), pak by časem rozptyl el měl udávat složitost hry. Pokud se v šachu vyskytují mezi běžnými hráči elisté v rozsahu 680-2800 (na serveru kurnik, elo je posunuté proti FIDE) a v mlýnu 1090-2500, udává to (alespoň teoreticky), že šachy jsou složitější hra, v člověče nezlob se totiž budou hrát zhruba všichni stejně a jen složitá pravidla šachů poskytnou možnost se ve hře zlepšovat.

Bohužel kurnik.org asi není dost dobrým zdrojem odkud čerpat - hráči mohou vhodným výběrem soupeřů své elo neúměrně zvyšovat, takže i u jednoduchých her budou lidé s vysokými hodnotami - a to měření pokazí. Pro přesné měření by musel hráče rozlosovat počítač. (Triviální příklad hry s nulovou hloubkou je NIM (odebírání sirek), kde každý zná výherní strategii - kdo začíná - vyhraje. Pokud by se hrála na kurniku, hráči by se prosazovali na místo začínajícího a ti „tvrdohlavější“ by měli elo přímo obrovské - při rozlosování počítačem by naopak byl rozptyl jenom statistický, protože každý s každým vyhrává v půlce případů).

Zajímavé věci jsou zkrátka všude, stačí se dívat