Stockfish (šachy)

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Stockfish je svobodný a otevřený šachový engine, pro různé desktopové a mobilní platformy. Vyvíjeli jej Marc Costalba, Joon Kiiski, Gary Linscott, Stéphan Nicolet a Tord Romstad, přičemž vzhledem ke své licenci je upravován mnoha dalšími vývojáři.

Trvale se nachází na prvních příčkách většiny ratingových senzamů šachových enginů a je nejsilnějším konvenčním šachovým enginem na světě. Vyhrál neoficiální mistrovství světa v počítačovém šachu v šesté sezóně (2014), deváté (2016), jedenácté (2018), 12. +more (2018), 13. (2018), 14. (2019) a 16. (2019). Na druhém místě skončil v 5. sezóně (2013), v 7. (2014), 8. (2015), 15. (2019), 16. (2020) a 18. -20.

Kód Stockfishe vychází z Glaurungu, open-source šachového enginu z roku 2004 vyvinutého Romstadem.

Funkce

Stockfish může v multiprocesorových systémech použít až 512 vláken CPU. Maximální velikost transpoziční tabulky enginu je 128 GB. +more Stockfish implementuje pokročilé alfa-beta ořezávání a používá bitboardy. Ve srovnání s jinými enginy se vyznačuje velkou hloubkou hledání tahů, která je částečně způsobena agresivnějším ořezáváním a omezením pozdního pohybu.

Stockfish podporuje Chess960, což je jedna z vlastností, která byla zděděna od Glaurungu.

V roce 2014 byla do kódu Stockfishe integrována databáze koncovek Syzygy, a v roce 2018 byla přidána její sedmifigurová verze.

Historie

Program vychází z kódu Glaurungu, otevřeného šachového enginu vytvořeného Tordem Romstadem v roce 2004. O čtyři roky později se Marc Costalba rozhodl vytvořit podobný projekt, který pojmenoval Stockfish, a to proto, že byl „vyroben v Norsku a uvařen v Itálii“ (Romstad je Nor, Costalba Ital). +more První verze Stockfish 1. 0 byla vydána v listopadu roku 2008. Později se Romstad rozhodl zanechat vývoje Glaurungu a začal se věnovat Stockfishi, což byl již i v té době lepší engine. Poslední verze enginu Glaurung (2. 2) vyšla v prosinci roku 2008.

Ve verzi 1. 5. +more1 vydané v říjnu 2008 byly zfunkčněny Fischerovy náhodné šachy. Kolem roku 2011 se Romstad rozhodl zanechat práce na Stockfishi a raději vyvíjel svou novou šachovou aplikaci pro iOS.

Dne 18. června 2014 Marco Costalba oznámil, že se rozhodl odstoupit a požádal komunitu, aby vytvořila fork aktuální verze a pokračovala ve vývoji. +more Brzy poté byl vytvořen oficiální repozitář spravovaný dobrovolnickou skupinou hlavních vývojářů Stockfishe, která v současné době vývoj projektu řídí.

V létě roku 2020 byla vedle hlavní verze Stockfishe vydán i Stockfish NNUE, neuronová síť. Tato verze získala značný úspěch. +more Současnou verzí vydanou v únoru 2021 je verze Stockfish 13.

Fishtest

Od roku 2013 je Stockfish vyvíjen pomocí distribuovaného testovacího rámce s názvem Fishtest, kde jsou dobrovolníci schopni využít svůj čas CPU na testování vylepšení programu.

Změny kódu pro hraní partií se přijímají nebo odmítají na základě výsledků hraní desítek tisíc her v rámci oproti starší verzi programu, přičemž se používá test poměrové pravděpodobnosti. Testy se ověřují pomocí testu chí-kvadrát a pouze pokud jsou výsledky statisticky významné, považují se za spolehlivé a používají se k revizi softwarového kódu.

K dubnu 2020 bylo využito více než 2600 let CPU času, což stačilo k odehrání více než 1,76 miliardy šachových partií. Do roka po zavedení fishtestu zaznamenal Stockfish masivní nárůst 120 Elo bodů, což jej zařadilo na nejvyšší příčku na všech ratingových seznamech. +more Při vydání verze Stockfish 7 byl jako jeden z autorů uveden Gary Linscott, autor Fishtestu, čímž vývojáři potvrdili jeho přínos v nárůstu síly enginu.

Výsledky na soutěžích

Účast v TCEC

Stockfish je mnohonásobným šampionem TCEC a současným lídrem v počtu trofejí. Od té doby, co se TCEC restartovalo, tedy v roce 2013, Stockfish skončil ve všech kromě jedné sezóny buď na prvním nebo druhém místě. +more Ve čtvrté sezóně prohrál skórem 23-25 superfinále proti enginu Houdini 3, v páté sezóně pak podlehl Komodu 1142. Sezóna 5 byla pro vítězný tým Komodo pozoruhodná, protože Don Daileye, hlavní vývojář podlehl během závěrečné fáze turnaje nemoci. Na jeho počest byla verze pak verze Stockfishe, která byla vydána krátce po této sezóně pojmenována Stockfish DD.

Dne 30. května 2014 Stockfish 170514 (vývojová verze Stockfishe 5 podporující desktopy) přesvědčivě zvítězil v 6. +more sezóně TCEC, když superfinále vyhrál výsledkem 35,5-28,5 proti Komodu 7x. Následující den byl pak Stockfish 5 oficiálně vydán. V sedmé sezóně se opět dostal do superfinále, kde ale prohrál s Komodem (30,5-33,5). V osmé sezóně se i přes časové ztráty, které způsobil bug v kódu enginu, dokázal kvalifikovat do superfinále, ale zápas o 100 partiích proti Komodu prohrál výsledkem 46,5-53,5. V deváté sezóně se Stockfishi podařilo porazit engine Houdini 5, a to skórem 54,5-45,5.

Jen jednou se Stockfishovi nepodařilo postoupit do superfinále TCEC (když se tohoto turnaje účastnil), a to v roce 2013. Tehdy byť ani jednou neprohrál, tak nedokázal vyhrát proti ratingově slabších enginům. +more Po tomto vrhu, Stockfish pokračoval v dlouhé vítězné vlně, když přesvědčivě vyhrál tři sezóny v řadě: jedenáctou sezónu (59-41 proti enginu Houdini 6. 03), 12. sezónu (60-40 proti Komodu 12. 1. 1), a 13. sezónu (55-45 proti Komodu 2155,00). Ve 14. sezóně čelil Stockfish poprvé Leele Chess Zero, superfinále se mu nakonec podařilo vyhrát, byť jen o jeden bod (50,5-49,5). Až v 15. sezóně skončil Stockfish znovu na druhém místě. Tehdy jej skórem 53,5-46,5 porazila Leela. Šestnáctou sezónu TCEC však Stockfish dokázal vyhrát, když v superfinále porazil engine AllieStein skórem 54,5-45,5, jelikož se Leela nedokázala dostat superfinále. V sedmnácté sezóně TCEC se Stockfish znovu dostal do superfinále. Zde však podlehl Leele skórem 52,5 : 47,5. Vyhrál pak osmnáctou sezónu, 19. a 20. sezónu, vždy proti Leele.

Stockfish se také zúčastnil poháru TCEC. První ročník Stockfish skórem 4,5-3,5 vyhrál nad Houdinim, ale v druhém ročníku jej Houdini v semifinále nečekaně porazil 6,5-5,5. +more V malém finále se mu již však podařilo porazit engine Komodo a skončil tak celkově třetí. V třetím ročníku poháru TCEC se Stockfish znovu dostal do finále, ale byl poražen Leelou Chess Zero, když v jedné z partií udělal hrubou chybu v koncovce se 7 figurkami. Ve čtvrtém ročníku se Leelu ve finále porazil skórem 4,5-3,5.

Stockfish proti velmistrům

První oficiální zápas Stockfishe proti šachovému velmistrovi proběhl dne 19. července 2014, kdy Stockfish 5 sehrál čtyři partie tempem 45+30 s americkým Danielem Naroditskym, který měl k dispozici šachový engine Rybka 3 z roku 2008. +more Stockfish tento zápas vyhrál 3,5-0,5. Naroditskému se s Rybkou podařilo zremizovat jen čtvrtou partii, a to kvůli pravidlu 50 tahů. V tomto zápase Stockfish nemohl využít svou knihu zahájení.

V srpnu tohoto roku ještě pak sehrál Hikaru Nakamura společně s Rybkou 3 čtyři proti Stockfishi 5, přičemž Stockfish zápas skórem 3-1 vyhrál. V první polovině zápasu hrál Stockfish bez jakéhokoliv handicapu. +more První partie, ve které měl Nakamura bílé, skončila remízou a druhou partii Nakamura s černými prohrál. V druhé polovině zápasu měl vždy Stockfish handicap v podobě jednoho chybějícího pěšce: v první partii této půle mu chyběl h-pěšec, v druhé a poslední partii zápasu hrál bez b-pěšce. I tak ani jednou neprohrál, třetí partii remizoval a poslední vyhrál. Nakamura byl v době zápasu dle hodnocení Elo pátým nejlepším šachistou na světě. Stockfish nemohl využívat jak strom zahájení, tak databázi koncovek. Obě vítězství Stockfishe vyplynuly z pozic, ve kterých Nakamura, jak je typické pro jeho styl, namísto souhlasu s remízou usiloval o vítězství.

Počítačový šachový šampionát chess.com

Od té doby, co chess. +morecom hostil své první počítačové šachové mistrovství v roce 2018, byl Stockfish v tomto šampionátu nejúspěšnějším šachovým enginem. Vyhrál šestkrát po sobě až v sedmé sezóně skončil druhý. Od té doby je dominance Stockfishe ohrožována enginy pracujících na bázi neuronových sítí Leelenstein a Leela Chess Zero, ale i tak se mu nadále dařilo, jelikož až do CCC11 se vždy probojoval do superfinále. Dvanáctá sezóna se poprvé hrála pomocí vyřazovacího systém. Leela v semifinále eliminovala Stockfish a Stockfish nakonec skončil třetí, když v malém finále porazil engine Scorpio.

CCC 1: Rapid Rumble201815+51.
CCC 2: Blitz Battle20185+21.
CCC 3: Rapid Redux201930+51.
CCC 4: Bullet Brawl20191+21.
CCC 5: Eskalace201910+51.
CCC 6: Zimní klasika201910+101.
CCC 7: Blitz Bonanza20195+22.
CCC 8: Deep Dive201915+51.
CCC 9: Gauntlet20195+2, 10+51.
CCC 10: Dvojciferné číslice201910+32.
CCC 11201930+52.
CCC 12: Bullet Madness. 20201+13.
.

Stockfish vs. AlphaZero

V prosinci roku 2017 byl Stockfish 8 používán jako měřítko pro vyhodnocení enginu AlphaZero. AlphaZero trénoval celkem devět hodin a po pouhých čtyřech hodinách dosáhl úrovně Stockfishe. +more Ve 100 partiích z normální výchozí pozice vyhrál AlphaZero 25 her jako bílý, 3 jako černý a zbývajících 72 remizovala, což znamenalo 0 proher. AlphaZero také proti Stockfishi odehrála dvanáct zápasů (každý měl 100 partií), přičemž partie začínala v jednom z 12 populárních šachových zahájeních. AlphaZero si proti Stockfishi tehdy připsala 290 výher, 886 remíz a 24 proher, což dělá skóre 733:467.

Vítězství AlphaZero nad Stockfishem vyvolalo rozruch v šachové komunitě, nakonec vznikl svobodný a otevřený šachový engine Leela Chess Zero, jež je svým fungováním AlphaZero podobný. Zápas byl šachisty jako Hikaru Nakamura však také kriziován, a to zejména za podmínky zápasu, které zvýhodňovaly AlphaZero.

Dostupnost

Je dostupný pro Microsoft Windows, MacOS, Linux a Android.

Stockfish je využíván různými šachovými programy. Velice často je to výchozí šachový stroj dodávaný s programy rozhraní Internet Chess Club BlitzIn a Dasher. +more Na mobilní platformě je dodáván s aplikací Stockfish, SmallFish a Droidfish. Další grafická uživatelská rozhraní kompatibilní se Stockfish (GUI) zahrnují Fritz, Arenu, Stockfish pro Mac, program PyChess, SCID a další. Stockfish používají i šachové servery Lichess, Chess. com a Chess24.

Odkazy

Reference

Externí odkazy

[url=https://github.com/official-stockfish/Stockfish]Kód na GitHubu[/url] * [url=http://tests.stockfishchess.org/tests]Fishtest[/url]

Kategorie:Software pod licencí GPL Kategorie:Svobodný software naprogramovaný v C++ Kategorie:Šachový software Kategorie:Údržba:Články s nekontrolovanými překlady

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top