Stockfish: differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i. #IABot (v1.6)
riscritta
Riga 2: Riga 2:
|Nome = Stockfish
|Nome = Stockfish
|Logo =
|Logo =
|Screenshot =
|Screenshot = DroidFish.jpg
|Didascalia = Droidfish, applicazione Android che implementa una GUI per Stockfish
|Didascalia =
|Sviluppatore = Tord Romstad<br />Joona Kiiski<br />Marco Costalba
|Sviluppatore = Tord Romstad<br />Joona Kiiski<br />Marco Costalba
|DataPrimaVersione =
|DataPrimaVersione =
|UltimaVersione =
|UltimaVersione = 7<ref name="stockfish-7">{{cita web|url=http://blog.stockfishchess.org/post/136483912072/stockfish-7|titolo=Stockfish Blog — Stockfish 7|data=2 gennaio 2016|editore=Stockfish Team|accesso=10 marzo 2016|lingua=en}}</ref>
|DataUltimaVersione = {{Data|02|01|2016}}<ref name="stockfish-7"/>
|DataUltimaVersione =
|SistemaOperativo = Microsoft Windows
|SistemaOperativo = multipiattaforma
|SistemaOperativo2 = Mac OS X
|SistemaOperativo2 =
|SistemaOperativo3 = Linux
|SistemaOperativo3 =
|SistemaOperativoAltri = [[iOS]]<br />[[Android]]
|SistemaOperativoAltri =
|Genere = motore scacchistico
|Genere = motore scacchistico
|Licenza = [[GNU General Public License]]
|Licenza = [[GNU General Public License]]
|Lingua =
|Lingua =
|SoftwareLibero = sì
|SoftwareLibero = sì
|SitoWeb = http://www.stockfishchess.org
|SitoWeb =
}}
}}


'''Stockfish''' è un [[motore scacchistico]] [[Universal Chess Interface|UCI]] [[open source]]<ref>{{cite web|last1=Chabris|first1=Christopher|title=The Real Kings of Chess Are Computers|url=https://www.wsj.com/articles/the-real-kings-of-chess-are-computers-1420827071|website=Wall Street Journal|accessdate=18 September 2015}}</ref> [[multipiattaforma]], sviluppato originariamente da Tord Romstad e Marco Costalba come [[fork (sviluppo software)|fork]] di Glaurung, altro motore open-source precedentemente sviluppato dallo stesso Romstad, ed è correntemente mantenuto da una comunità di programmatori open-source.
'''Stockfish''' (che in inglese significa ''[[stoccafisso]]'') è un [[motore scacchistico]] [[open source]], sviluppato da Tord Romstad, Joona Kiiski e Marco Costalba e distribuito sotto la [[GNU General Public License]] versione 3. Il software è disponibile sotto forma di [[codice sorgente]] [[C++]] o binari precompilati per [[Microsoft Windows]], [[macOS]], e [[Linux]] 32-bit/64-bit. Il programma usa il protocollo [[Universal Chess Interface|UCI]] e può dunque essere impiegato con varie interfacce grafiche. Sfrutta fino a trentadue [[central processing unit|core CPU]] in sistemi [[multiprocessore]].<ref>{{cita web|url=http://blog.stockfishchess.com/post/5203305648/stockfish-2-1|titolo=Stockfish Blog|data=4 maggio 2011|editore=Stockfish Team|accesso=4 maggio 2011|lingua=en}}</ref> La dimensione massima delle [[tabelle di trasposizione]] è di otto gigabyte. Stockfish implementa un'avanzata [[potatura alfa-beta]] e supporta le [[bitboard]].


Nelle [[graduatorie di motori scacchistici]] [[CEGT]] 40/20, [[CCRL]] 40/40 e IPON, Stockfish 5 occupa nel luglio 2014 il primo posto.<ref>{{cita web|url=http://www.husvankempen.de/nunn/40_40%20Rating%20List/40_40%20BestVersion/rangliste.html|titolo=CEGT Best Versions 40/20 (AMD 4200+)|data=29 giugno 2014|editore=[[Chess Engines Grand Tournament]]|accesso=1 luglio 2014|lingua=en}}</ref><ref>{{cita web|url=http://computerchess.org.uk/ccrl/4040.live/|titolo=CCRL 40/40|data=29 giugno 2014|editore=Computer Chess Rating Lists|accesso=1 luglio 2014|lingua=en|urlmorto=sì|urlarchivio=https://web.archive.org/web/20111002094957/http://computerchess.org.uk/ccrl/4040.live/|dataarchivio=2 ottobre 2011}}</ref><ref>{{cita web|url=http://www.inwoba.de/bayes.html|titolo=IPON Rating List|data=6 giugno 2014|accesso=1 luglio 2014|lingua=en}}</ref>
Da circa metà degli [[anni 2010]] Stockfish ha occupato ripetutamente la prima posizione nelle principali [[graduatorie di motori scacchistici]] e (al 2018) è considerato il più forte motore scacchistico open source e uno dei più forti motori in assoluto insieme a [[Houdini (scacchi)|Houdini]] e [[Komodo (scacchi)|Komodo]].<ref>{{cite web|url=http://www.husvankempen.de/nunn/40_40%20Rating%20List/40_40%20BestVersion/rangliste.html|title=CEGT Best Versions 40/20 (AMD 4200+)|date=29 June 2014|publisher=[[Chess Engines Grand Tournament]]|accessdate=1 July 2014}}</ref><ref>{{cite web|url=http://computerchess.org.uk/ccrl/4040.live/|title=CCRL 40/40|date=29 June 2014|publisher=Computer Chess Rating Lists|accessdate=1 July 2014}}</ref><ref>{{cite web|url=http://www.inwoba.de/bayes.html|title=IPON Rating List|date=6 June 2014|accessdate=1 July 2014}}</ref> Ha vinto due edizioni (2014 e 2016) e si è classificato tre volte secondo (2013, 2014 e 2015) nel [[Top Chess Engine Championship]], considerato il campionato del mondo non ufficiale di scacchi per computer.


Per via della sua forza di gioco e della licenza libera sotto la quale è distribuito, Stockfish è diventato un motore molto popolare su svariate piattaforme. Può essere utilizzato su una generica [[interfaccia utente]] con supporto per il protocollo [[Universal Chess Interface|UCI]]<ref>[http://support.stockfishchess.org/kb/getting-started/using-the-stockfish-engine Using the Stockfish Engine], Stockfish Support.</ref><ref>[https://github.com/pychess/pychess/wiki/ChessEngines ChessEngines], PyChess Github.</ref>, è il motore predefinito delle interfacce desktop BlitzIn e Dasher per [[Internet Chess Club]], ed è il motore predefinito in applicazioni mobile come SmallFish e Droidfish, e a partire dal marzo 2017 è usato nel backend di [[Lichess]].<ref>[http://en.lichess.org/blog/U4mtoEQAAEEAgZRL/strongest-chess-player-ever]</ref>
Il programma deriva da ''Glaurung'', un software di scacchi open source creato dagli stessi sviluppatori. Stockfish è nato come [[fork (sviluppo software)|fork]] dalla versione 2.1 di ''Glaurung''; l'ultima versione di ''Glaurung'', la 2.2, è stata distribuita a dicembre 2008, dopo la quale lo sviluppo è terminato.


== Caratteristiche ==
Le interfacce di [[Internet Chess Club]] BlitzIn e Dasher utilizzano il motore Stockfish.

Stockfish usa una rappresentazione della posizione tramite [[bitboard]], supporta fino a 512 [[thread (informatica)|thread]] e ha una dimensione massima della [[hash table]] di trasposizione pari a 1 TB. Implementa una sofisticata ricerca ad albero con [[potatura alfa-beta]] e, in confronto con altri motori, ha una profondità di ricerca relativamente elevata, dovuta in parte alla potatura aggressiva e alla [[late move reduction]].<ref>{{cite web|url=http://www.talkchess.com/forum/viewtopic.php?start=0&t=50220|title=Stockfish depth vs. others; challenge|date=24 November 2013|last=Kaufman|first=Larry|authorlink=Larry Kaufman|work=talkchess.com|accessdate=8 March 2014}}</ref><ref>{{cite web|url=http://susanpolgar.blogspot.hu/2014/06/im-erik-kislik-analyzes-tcec-superfinal.html|title=IM Erik Kislik analyzes the TCEC Superfinal in-depth | work=susanpolgar.blogspot.hu | last=Kislik | first=Erik | authorlink=Erik Kislik | date=6 June 2014 | accessdate=7 June 2014}}</ref> Supporta gli [[scacchi960]], eredità di Glaurung e, dal 2014, integra il supporto per le [[tablebase]] Syzygy.<ref>{{cite web | url=http://abrok.eu/stockfish_syzygy/ | title=Stockfish development versions | work=abrok.eu | accessdate=1 February 2015}}</ref>

Le versioni stabili e beta sono disponibili sotto forma di codice sorgente [[C++]] e di binari precompilati per [[Microsoft Windows]], [[macOS]], [[Linux]] 32-bit/64-bit e [[Android]].

== Storia ==

Il software è nato come fork di Glaurung, motore scacchistico open source sviluppato da Romstad e distribuito inizialmente nel 2004. Quattro anni dopo Marco Costalba sviluppò Stockfish come [[fork (sviluppo software)|fork]] di Glaurung, e il nome è dovuto al fatto che il programma fosse "prodotto in Norvegia e cucinato in Italia", in riferimento alle nazionalità dei due sviluppatori. La versione 1.0 è stata distribuita nel novembre 2008.<ref name="About">{{cite web | url=http://stockfishchess.org/about/ | title=About | work=stockfishchess.org | accessdate=5 March 2014}}</ref><ref name="Stockfish 1.0">{{cite web | url=http://www.talkchess.com/forum/viewtopic.php?t=24675 | title=Stockfish 1.0 | last=Costalba | first=Marco | date=2 November 2008 | work=talkchess.com | accessdate=6 March 2014}}</ref> Per un certo periodo diverse idee e modifiche sono state trasferite bidirezionalmente tra i due progetti, fino a quando Romstad decise di abbandonare lo sviluppo di Glaurung (l'ultima versione è stata distribuita nel dicembre 2008) a favore dello sviluppo di Stockfish, che era il più avanzato tra i due progetti.<ref>{{cite web | url=http://wbec-ridderkerk.forumotion.com/t402-stockfish-glaurung#883 | title=Re: Stockfish - Glaurung | last=Romstad | first=Tord | date=5 September 2009 | work=wbec-ridderkerk.forumotion.com | accessdate=5 March 2014}}</ref> The last Glaurung version 2.2 was released in December 2008.

Nel 2011 Romstad ha abbandonato lo sviluppo di Stockfish, e nel 2014 anche Costalba ha abbandonato il progetto, che è stato successivamente mantenuto da una comunità di programmatori<ref>{{cite web|url=http://groups.google.com/forum/?fromgroups=#!topic/fishcooking/VsYuyij6uqQ|title=Step down|last=Costalba|first=Marco|work=groups.google.com|date=18 June 2014|accessdate=19 June 2014}}</ref> in un nuovo repository gestito da un gruppo di volontari.<ref>{{cite web|url=http://groups.google.com/forum/?fromgroups=#!topic/fishcooking/aUqC13mtSEg|title=New official repository|last=Linscott|first=Gary|work=groups.google.com|date=18 June 2014|accessdate=19 June 2014}}</ref>

== Fishtest ==
A partire dal 2013 Stockfish ha fatto uso nello sviluppo di un framework di test [[calcolo distribuito|distribuito]] chiamato ''Fishtest'', sostenuto da volontari i quali donano tempo CPU per l'esecuzione dei test.<ref>{{cite web|url=http://tests.stockfishchess.org/tests|title=Stockfish Testing Framework|work=tests.stockfishchess.org|accessdate=7 March 2014}}</ref><ref>{{cite web|url=http://stockfishchess.org/get-involved/|title=Get Involved|work=stockfishchess.org|accessdate=8 March 2014}}</ref><ref>{{cite web | url=http://www.talkchess.com/forum/viewtopic.php?start=0&t=47885&topic_view=flat&sid=b5662f579ad4c7bea91668bb9d9723a4 | title=Fishtest Distributed Testing Framework | date=1 May 2013 | last=Costalba | first=Marco | work=talkchess.com | accessdate=18 April 2014}}</ref> Le modifiche alla logica del motore vengono accettate se introducono un miglioramento [[significatività|statisticamente significativo]] della performance di gioco, misurata tramite [[test del rapporto di probabilità sequenziale]] giocando decine di migliaia di partite contro una precedente istanza di riferimento del software.

Al giugno 2017 Fishtest ha impiegato oltre 745 anni di tempo CPU per giocare oltre 485 milioni di partite.<ref>{{cite web | url=http://tests.stockfishchess.org/users | title=Stockfish Testing Framework - Users | work=test.stockfishchess.org | accessdate=17 June 2017}}</ref> L'introduzione di Fishtest ha rapidamente aumentato la forza di gioco di Stockfish di circa 120 punti [[Elo]] in 12 mesi, rendendolo uno dei motori più forti al mondo,<ref>{{Cite web|url = http://fastgm.de/60+0.60%20-%20E5450.html|title = Fast GM Rating List|date = |accessdate = |website = |publisher = |last = |first = }}</ref><ref>
{{Cite web|url = http://computerchess.org.uk/ccrl/404/cgi/compare_engines.cgi?family=Stockfish&print=Rating+list&print=Results+table&print=LOS+table&print=Ponder+hit+table&print=Eval+difference+table&print=Comopp+gamenum+table&print=Overlap+table&print=Score+with+common+opponents|title = CCRL Rating List|date = |accessdate = |website = |publisher = |last = |first = }}</ref> motivo per il quale Gary Linscott, autore di Fishtest, è stato aggiunto alla lista degli autori del progetto a partire da Stockfish 7.

== Risultati ==

=== Top Chess Engine Championship ===

Nel 2013 Stockfish è arrivato secondo nella quarta e quinta stagione del [[Top Chess Engine Championship]] (TCEC), comunemente riferito come il campionato del mondo non ufficiale di scacchi per computer, con un punteggio superfinal di 23–25 contro [[Houdini (scacchi)|Houdini]] 3 e contro [[Komodo (scacchi)|Komodo]] 1142. Il team di Komodo ha accettato il titolo postumo, in quanto [[Don Dailey]], autore principale del motore, è morto a seguito di una malattia durante la fase finale dell'evento. In suo onore, la successiva versione di Stockfish è stata chiamata "Stockfish DD".<ref>{{Cite news|url = http://blog.stockfishchess.org/post/68506094600/stockfish-dd|title = Stockfish Blog on Stockfish DD|last = |first = |date = |work = |accessdate = }}</ref>

Il 30 maggio 2014 Stockfish 170514 (versione di sviluppo di Stockfish 5, con supporto per le [[tablebase]]) ha vinto nettamente la sesta stagione del TCEC Season 6, battendo Komodo 7x per 35.5-28.5 nel superfinal.<ref name="TCEC archive">{{cite web | url=http://tcec.chessdom.com/archive.php | title=TCEC Season Archive | work=tcec.chessdom.com | accessdate=9 January 2015}}</ref> Il giorno successivo alla vittoria è stato distribuito Stockfish 5.<ref>{{cite web|url=http://www.talkchess.com/forum/viewtopic.php?t=52487|title=Stockfish 5|last=Costalba|first=Marco|work=talkchess.com|date=31 May 2014|accessdate=19 June 2014}}</ref> Nella settima stagione del TCEC Stockfish ha raggiunto la fase superfinal, dove è stato sconfitto da Komodo per 30.5-33.5.<ref name="TCEC archive"/> Nell'ottava stagione Stockfish è stato sconfitto in superfinal da Komodo per 46.5-53.5.<ref name="TCEC archive"/>

Nel 2016 Stockfish ha vinto l'ottava stagione del TCEC, battendo Houdini 5 per 54.5-45.5.<ref>{{cite web|title=Stockfish is the TCEC Season 9 Grand Champion|url=http://www.chessdom.com/stockfish-is-the-tcec-season-9-grand-champion/|website=Chessdom|accessdate=5 December 2016}}</ref> Nella decima stagione, Stockfish si è classificato terzo.

=== Stockfish - Nakamura ===
Nell'agosto 2014 Stockfish ha affrontato il [[grande maestro]] [[Hikaru Nakamura]] (all'epoca con un [[Elo]] di 2798, quinto nella classifica mondiale) in un match di quattro partite. Nelle prime due partite Nakamura ha giocato con l'ausilio di [[Rybka]], e nelle successive due partite ha [[vantaggio del tratto|giocato con il bianco]] e con handicap di un pedone. Stockfish ha giocato senza [[libro di apertura]] e [[tablebase]]. Il motore ha vinto entrambe le fasi del match per 1.5–0.5.<ref>http://www.chess.com/news/stockfish-outlasts-nakamura-3634.</ref>

=== Confronto tra grandi giocatori ===
In uno studio pubblicato nell'aprile del 2017, curato da Jean-Marc Alliot presso l{{'}}''Institut de recherche en informatique de Toulouse'', Stockfish è stato usato come riferimento per confrontare il gioco dei più grandi campioni umani della storia, ed è risultato che [[Magnus Carlsen]] è il giocatore che ha la più alta probabilità di giocare mosse che aderiscono alle analisi di Stockfish.<ref>{{cite news|url=https://www.sciencedaily.com/releases/2017/04/170425110954.htm|publisher=[[CNRS]]|website=[[Science Daily]]|date=25 April 2017|title=When artificial intelligence evaluates chess champions}}</ref>

=== Torneo su chess.com ===
Nel novembre 2017 [[chess.com]] ha organizzato un torneo tra i dieci più forti motori, con una finale tra i due più forti, nella quale Stockfish ha battuto Houdini per 10.5-9.5, ottenendo tre vittorie con il nero e due sconfitte con il bianco..<ref name="tourn1">[https://www.chess.com/article/view/chess-com-announces-computer-chess-championship https://www.chess.com] Chess.com announces computer chess championship.</ref><ref>[https://www.chess.com/news/view/stockfish-wins-chess-com-computer-championship https://www.chess.com] Stockfish wins chess.com computer championship.</ref> L'evento ha impiegato varie cadenze di gioco, e i motori sono stati eseguiti su un host virtuale (Intel Xeon 2.90 GHz, due processori con 18 core e hyperthreading, 60 GB RAM, Windows) su [[Amazon Web Services|AWS]].<ref name="tourn1"/>

=== Stockfish - AlphaZero ===
Il 5 dicembre 2017 [[DeepMind]] ha pubblicato un [[preprint]] su [[arXiv]] nel quale ha presentato [[AlphaZero]], un nuovo algoritmo di intelligenza artificiale che supporta una varietà di giochi da tavolo. Stockfish 8 è stato usato come benchmark per valutare la performance di AlphaZero nel gioco degli scacchi. Poiché entrambi i software girano solo su piattaforme hardware mutuamente incompatibili, AlphaZero è stato eseguito su un computer equipaggiato con quattro [[Tensor Processing Unit|TPU]], mentre Stockfish è stato eseguito su un computer in un'istanza con 64 thread e 1 GB di hash table. I software hanno disputato un match di 100 partite con un minuto per mossa (scelta criticata da Tord Romstad)<ref name=romstad-nakamura>{{cite web|url=https://www.chess.com/news/view/alphazero-reactions-from-top-gms-stockfish-author|title=AlphaZero: Reactions From Top GMs, Stockfish Author|publisher=[[chess.com]]|date=8 December 2017|accessdate=13 December 2017|quote=The match results by themselves are not particularly meaningful because of the rather strange choice of time controls and Stockfish parameter settings: The games were played at a fixed time of 1 minute/move, which means that Stockfish has no use of its time management heuristics (lot of effort has been put into making Stockfish identify critical points in the game and decide when to spend some extra time on a move; at a fixed time per move, the strength will suffer significantly). The version of Stockfish used is one year old, was playing with far more search threads than has ever received any significant amount of testing, and had way too small hash tables for the number of threads. I believe the percentage of draws would have been much higher in a match with more normal conditions.}}</ref> e il risultato finale è stato di 25 vittorie di AlphaZero con il bianco, 3 vittorie di AlphaZero con il nero, e patta nelle 72 rimanenti partite.<ref name=bbc>{{cite news|title='Superhuman' Google AI claims chess crown|url=http://www.bbc.com/news/technology-42251535|accessdate=7 December 2017|work=BBC News|date=6 December 2017}}</ref> In altri 12 match di 100 partite, giocati usando come posizione iniziale le 12 aperture più comuni nel gioco umano,, AlphaZero ha totalizzato in totale 290 vittorie, 886 patte e 24 sconfitte, con un punteggio finale di 733-467.<ref name=crushes>{{cite web|url=https://chess24.com/en/read/news/deepmind-s-alphazero-crushes-chess|title=DeepMind’s AlphaZero crushes chess|publisher=[[chess.com]]|date=6 December 2017|accessdate=13 December 2017}}</ref><ref name=preprint>{{Cita testo|coautori=[[David Silver (programmer)|David Silver]], Thomas Hubert, Julian Schrittwieser, Ioannis Antonoglou, Matthew Lai, Arthur Guez, Marc Lanctot, Laurent Sifre, [[Dharshan Kumaran]], Thore Graepel, Timothy Lillicrap, Karen Simonyan, [[Demis Hassabis]]|titolo=Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm|data=5 dicembre 2017}}</ref><ref>{{Cite news|url=https://www.theverge.com/2017/12/6/16741106/deepmind-ai-chess-alphazero-shogi-go|title=DeepMind’s AI became a superhuman chess player in a few hours, just for fun|work=The Verge|access-date=2017-12-06}}</ref> L'articolo non ha ancora completato il processo di [[peer review]], e Google ha deciso di non fornire ulteriori commenti fino a quando l'articolo non sarà pubblicato.<ref name=bbc/>

AlphaGo è un algoritmo di [[apprendimento automatico]] ed è stato addestrato unicamente [[apprendimento per rinforzo|per rinforzo]] nel corso di 9 ore su un cluster di TPU. Gli autori stimato che abbia superato la forza di gioco di Stockfish dopo le prime quattro ore di addestramento.<ref name="telegraph">{{Cite news|url=http://www.telegraph.co.uk/science/2017/12/06/entire-human-chess-knowledge-learned-surpassed-deepminds-alphazero/|title=Entire human chess knowledge learned and surpassed by DeepMind's AlphaZero in four hours|last=Knapton|first=Sarah|date=6 December 2017|publisher=[[Telegraph.co.uk]]|access-date=6 December 2017|last2=Watson|first2=Leon|language=en-GB}}</ref><ref>{{Cite news|first=James|last= Vincent|url=https://www.theverge.com/2017/12/6/16741106/deepmind-ai-chess-alphazero-shogi-go|title=DeepMind’s AI became a superhuman chess player in a few hours, just for fun|publisher=The Verge|date=6 December 2017|access-date=6 December 2017}}</ref>


== Note ==
== Note ==
Riga 31: Riga 71:


== Collegamenti esterni ==
== Collegamenti esterni ==
*{{collegamenti esterni}}
* {{cita web|http://stockfishchess.org|Sito web}}
*{{en}} [http://www.schach-welt.de/schach/computerschach/interviews/romstad-kiiski-costalba-eng Interview with Tord Romstad (Norway), Joona Kiiski (Finland) and Marco Costalba (Italy)], programmers of Stockfish
{{Portale|scacchi|software libero}}
{{portale|informatica|scacchi}}


[[Categoria:Software per iOS]]
[[Categoria:Software per iOS]]

Versione delle 19:22, 1 gen 2018

Stockfish
software
Logo
Logo
Droidfish, applicazione Android che implementa una GUI per Stockfish
Droidfish, applicazione Android che implementa una GUI per Stockfish
Droidfish, applicazione Android che implementa una GUI per Stockfish
GenereMotore scacchistico
SviluppatoreTord Romstad
Joona Kiiski
Marco Costalba
Data prima versione2 novembre 2008
Ultima versione16.1 (24 febbraio 2024)
Sistema operativoMultipiattaforma
LinguaggioC++
LicenzaGNU General Public License
(licenza libera)
Sito webstockfishchess.org/

Stockfish è un motore scacchistico UCI open source[1] multipiattaforma, sviluppato originariamente da Tord Romstad e Marco Costalba come fork di Glaurung, altro motore open-source precedentemente sviluppato dallo stesso Romstad, ed è correntemente mantenuto da una comunità di programmatori open-source.

Da circa metà degli anni 2010 Stockfish ha occupato ripetutamente la prima posizione nelle principali graduatorie di motori scacchistici e (al 2018) è considerato il più forte motore scacchistico open source e uno dei più forti motori in assoluto insieme a Houdini e Komodo.[2][3][4] Ha vinto due edizioni (2014 e 2016) e si è classificato tre volte secondo (2013, 2014 e 2015) nel Top Chess Engine Championship, considerato il campionato del mondo non ufficiale di scacchi per computer.

Per via della sua forza di gioco e della licenza libera sotto la quale è distribuito, Stockfish è diventato un motore molto popolare su svariate piattaforme. Può essere utilizzato su una generica interfaccia utente con supporto per il protocollo UCI[5][6], è il motore predefinito delle interfacce desktop BlitzIn e Dasher per Internet Chess Club, ed è il motore predefinito in applicazioni mobile come SmallFish e Droidfish, e a partire dal marzo 2017 è usato nel backend di Lichess.[7]

Caratteristiche

Stockfish usa una rappresentazione della posizione tramite bitboard, supporta fino a 512 thread e ha una dimensione massima della hash table di trasposizione pari a 1 TB. Implementa una sofisticata ricerca ad albero con potatura alfa-beta e, in confronto con altri motori, ha una profondità di ricerca relativamente elevata, dovuta in parte alla potatura aggressiva e alla late move reduction.[8][9] Supporta gli scacchi960, eredità di Glaurung e, dal 2014, integra il supporto per le tablebase Syzygy.[10]

Le versioni stabili e beta sono disponibili sotto forma di codice sorgente C++ e di binari precompilati per Microsoft Windows, macOS, Linux 32-bit/64-bit e Android.

Storia

Il software è nato come fork di Glaurung, motore scacchistico open source sviluppato da Romstad e distribuito inizialmente nel 2004. Quattro anni dopo Marco Costalba sviluppò Stockfish come fork di Glaurung, e il nome è dovuto al fatto che il programma fosse "prodotto in Norvegia e cucinato in Italia", in riferimento alle nazionalità dei due sviluppatori. La versione 1.0 è stata distribuita nel novembre 2008.[11][12] Per un certo periodo diverse idee e modifiche sono state trasferite bidirezionalmente tra i due progetti, fino a quando Romstad decise di abbandonare lo sviluppo di Glaurung (l'ultima versione è stata distribuita nel dicembre 2008) a favore dello sviluppo di Stockfish, che era il più avanzato tra i due progetti.[13] The last Glaurung version 2.2 was released in December 2008.

Nel 2011 Romstad ha abbandonato lo sviluppo di Stockfish, e nel 2014 anche Costalba ha abbandonato il progetto, che è stato successivamente mantenuto da una comunità di programmatori[14] in un nuovo repository gestito da un gruppo di volontari.[15]

Fishtest

A partire dal 2013 Stockfish ha fatto uso nello sviluppo di un framework di test distribuito chiamato Fishtest, sostenuto da volontari i quali donano tempo CPU per l'esecuzione dei test.[16][17][18] Le modifiche alla logica del motore vengono accettate se introducono un miglioramento statisticamente significativo della performance di gioco, misurata tramite test del rapporto di probabilità sequenziale giocando decine di migliaia di partite contro una precedente istanza di riferimento del software.

Al giugno 2017 Fishtest ha impiegato oltre 745 anni di tempo CPU per giocare oltre 485 milioni di partite.[19] L'introduzione di Fishtest ha rapidamente aumentato la forza di gioco di Stockfish di circa 120 punti Elo in 12 mesi, rendendolo uno dei motori più forti al mondo,[20][21] motivo per il quale Gary Linscott, autore di Fishtest, è stato aggiunto alla lista degli autori del progetto a partire da Stockfish 7.

Risultati

Top Chess Engine Championship

Nel 2013 Stockfish è arrivato secondo nella quarta e quinta stagione del Top Chess Engine Championship (TCEC), comunemente riferito come il campionato del mondo non ufficiale di scacchi per computer, con un punteggio superfinal di 23–25 contro Houdini 3 e contro Komodo 1142. Il team di Komodo ha accettato il titolo postumo, in quanto Don Dailey, autore principale del motore, è morto a seguito di una malattia durante la fase finale dell'evento. In suo onore, la successiva versione di Stockfish è stata chiamata "Stockfish DD".[22]

Il 30 maggio 2014 Stockfish 170514 (versione di sviluppo di Stockfish 5, con supporto per le tablebase) ha vinto nettamente la sesta stagione del TCEC Season 6, battendo Komodo 7x per 35.5-28.5 nel superfinal.[23] Il giorno successivo alla vittoria è stato distribuito Stockfish 5.[24] Nella settima stagione del TCEC Stockfish ha raggiunto la fase superfinal, dove è stato sconfitto da Komodo per 30.5-33.5.[23] Nell'ottava stagione Stockfish è stato sconfitto in superfinal da Komodo per 46.5-53.5.[23]

Nel 2016 Stockfish ha vinto l'ottava stagione del TCEC, battendo Houdini 5 per 54.5-45.5.[25] Nella decima stagione, Stockfish si è classificato terzo.

Stockfish - Nakamura

Nell'agosto 2014 Stockfish ha affrontato il grande maestro Hikaru Nakamura (all'epoca con un Elo di 2798, quinto nella classifica mondiale) in un match di quattro partite. Nelle prime due partite Nakamura ha giocato con l'ausilio di Rybka, e nelle successive due partite ha giocato con il bianco e con handicap di un pedone. Stockfish ha giocato senza libro di apertura e tablebase. Il motore ha vinto entrambe le fasi del match per 1.5–0.5.[26]

Confronto tra grandi giocatori

In uno studio pubblicato nell'aprile del 2017, curato da Jean-Marc Alliot presso l'Institut de recherche en informatique de Toulouse, Stockfish è stato usato come riferimento per confrontare il gioco dei più grandi campioni umani della storia, ed è risultato che Magnus Carlsen è il giocatore che ha la più alta probabilità di giocare mosse che aderiscono alle analisi di Stockfish.[27]

Torneo su chess.com

Nel novembre 2017 chess.com ha organizzato un torneo tra i dieci più forti motori, con una finale tra i due più forti, nella quale Stockfish ha battuto Houdini per 10.5-9.5, ottenendo tre vittorie con il nero e due sconfitte con il bianco..[28][29] L'evento ha impiegato varie cadenze di gioco, e i motori sono stati eseguiti su un host virtuale (Intel Xeon 2.90 GHz, due processori con 18 core e hyperthreading, 60 GB RAM, Windows) su AWS.[28]

Stockfish - AlphaZero

Il 5 dicembre 2017 DeepMind ha pubblicato un preprint su arXiv nel quale ha presentato AlphaZero, un nuovo algoritmo di intelligenza artificiale che supporta una varietà di giochi da tavolo. Stockfish 8 è stato usato come benchmark per valutare la performance di AlphaZero nel gioco degli scacchi. Poiché entrambi i software girano solo su piattaforme hardware mutuamente incompatibili, AlphaZero è stato eseguito su un computer equipaggiato con quattro TPU, mentre Stockfish è stato eseguito su un computer in un'istanza con 64 thread e 1 GB di hash table. I software hanno disputato un match di 100 partite con un minuto per mossa (scelta criticata da Tord Romstad)[30] e il risultato finale è stato di 25 vittorie di AlphaZero con il bianco, 3 vittorie di AlphaZero con il nero, e patta nelle 72 rimanenti partite.[31] In altri 12 match di 100 partite, giocati usando come posizione iniziale le 12 aperture più comuni nel gioco umano,, AlphaZero ha totalizzato in totale 290 vittorie, 886 patte e 24 sconfitte, con un punteggio finale di 733-467.[32][33][34] L'articolo non ha ancora completato il processo di peer review, e Google ha deciso di non fornire ulteriori commenti fino a quando l'articolo non sarà pubblicato.[31]

AlphaGo è un algoritmo di apprendimento automatico ed è stato addestrato unicamente per rinforzo nel corso di 9 ore su un cluster di TPU. Gli autori stimato che abbia superato la forza di gioco di Stockfish dopo le prime quattro ore di addestramento.[35][36]

Note

  1. ^ The Real Kings of Chess Are Computers, su wsj.com. URL consultato il 18 September 2015.
  2. ^ CEGT Best Versions 40/20 (AMD 4200+), su husvankempen.de, Chess Engines Grand Tournament, 29 June 2014. URL consultato il 1º July 2014.
  3. ^ CCRL 40/40, su computerchess.org.uk, Computer Chess Rating Lists, 29 June 2014. URL consultato il 1º July 2014.
  4. ^ IPON Rating List, su inwoba.de, 6 June 2014. URL consultato il 1º July 2014.
  5. ^ Using the Stockfish Engine, Stockfish Support.
  6. ^ ChessEngines, PyChess Github.
  7. ^ [1]
  8. ^ Larry Kaufman, Stockfish depth vs. others; challenge, in talkchess.com, 24 November 2013. URL consultato l'8 March 2014.
  9. ^ Erik Kislik, IM Erik Kislik analyzes the TCEC Superfinal in-depth, in susanpolgar.blogspot.hu, 6 June 2014. URL consultato il 7 June 2014.
  10. ^ Stockfish development versions, in abrok.eu. URL consultato il 1º February 2015.
  11. ^ About, in stockfishchess.org. URL consultato il 5 March 2014.
  12. ^ Marco Costalba, Stockfish 1.0, in talkchess.com, 2 November 2008. URL consultato il 6 March 2014.
  13. ^ Tord Romstad, Re: Stockfish - Glaurung, in wbec-ridderkerk.forumotion.com, 5 September 2009. URL consultato il 5 March 2014.
  14. ^ Marco Costalba, Step down, in groups.google.com, 18 June 2014. URL consultato il 19 June 2014.
  15. ^ Gary Linscott, New official repository, in groups.google.com, 18 June 2014. URL consultato il 19 June 2014.
  16. ^ Stockfish Testing Framework, in tests.stockfishchess.org. URL consultato il 7 March 2014.
  17. ^ Get Involved, in stockfishchess.org. URL consultato l'8 March 2014.
  18. ^ Marco Costalba, Fishtest Distributed Testing Framework, in talkchess.com, 1º May 2013. URL consultato il 18 April 2014.
  19. ^ Stockfish Testing Framework - Users, in test.stockfishchess.org. URL consultato il 17 June 2017.
  20. ^ Fast GM Rating List, su fastgm.de.
  21. ^ CCRL Rating List, su computerchess.org.uk.
  22. ^ Stockfish Blog on Stockfish DD.
  23. ^ a b c TCEC Season Archive, in tcec.chessdom.com. URL consultato il 9 January 2015.
  24. ^ Marco Costalba, Stockfish 5, in talkchess.com, 31 May 2014. URL consultato il 19 June 2014.
  25. ^ Stockfish is the TCEC Season 9 Grand Champion, su chessdom.com. URL consultato il 5 December 2016.
  26. ^ http://www.chess.com/news/stockfish-outlasts-nakamura-3634.
  27. ^ When artificial intelligence evaluates chess champions, CNRS, 25 April 2017.
  28. ^ a b https://www.chess.com Chess.com announces computer chess championship.
  29. ^ https://www.chess.com Stockfish wins chess.com computer championship.
  30. ^ AlphaZero: Reactions From Top GMs, Stockfish Author, su chess.com, chess.com, 8 December 2017. URL consultato il 13 December 2017.
    «The match results by themselves are not particularly meaningful because of the rather strange choice of time controls and Stockfish parameter settings: The games were played at a fixed time of 1 minute/move, which means that Stockfish has no use of its time management heuristics (lot of effort has been put into making Stockfish identify critical points in the game and decide when to spend some extra time on a move; at a fixed time per move, the strength will suffer significantly). The version of Stockfish used is one year old, was playing with far more search threads than has ever received any significant amount of testing, and had way too small hash tables for the number of threads. I believe the percentage of draws would have been much higher in a match with more normal conditions.»
  31. ^ a b 'Superhuman' Google AI claims chess crown, in BBC News, 6 December 2017. URL consultato il 7 December 2017.
  32. ^ DeepMind’s AlphaZero crushes chess, su chess24.com, chess.com, 6 December 2017. URL consultato il 13 December 2017.
  33. ^ David Silver, Thomas Hubert, Julian Schrittwieser, Ioannis Antonoglou, Matthew Lai, Arthur Guez, Marc Lanctot, Laurent Sifre, Dharshan Kumaran, Thore Graepel, Timothy Lillicrap, Karen Simonyan, Demis Hassabis, Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm, 5 dicembre 2017.
  34. ^ DeepMind’s AI became a superhuman chess player in a few hours, just for fun, in The Verge.
  35. ^ (EN) Sarah Knapton, Entire human chess knowledge learned and surpassed by DeepMind's AlphaZero in four hours, Telegraph.co.uk, 6 December 2017.
  36. ^ James Vincent, DeepMind’s AI became a superhuman chess player in a few hours, just for fun, The Verge, 6 December 2017.

Collegamenti esterni