Zelfde Stockfish, zelfde diepte, andere computer: zelfde beste zet?

Het nieuwtje 7.h4 van Dubov / Foto: Fide (Lennart Ootes)

Als je een tragere computer hebt, maar deze meer tijd geeft om dezelfde diepte te bereiken, denk je dat de engine dan uiteindelijk dezelfde aanbeveling zal geven? Als je gebruik maakt van Stockfish op een website, zoals chess.com, of in een app, zoals Follow Chess / Analyze This, vertrouw je dan louter op de analysediepte voor de kwaliteit van je analyse of kijk je ook naar andere factoren? Door de vraag te stellen is hij wellicht retorisch geworden: een langzamer device kan je inderdaad een andere aanbeveling op dezelfde diepte geven en ik zal dit illustreren met het volgende fascinerende voorbeeld.

Positie na 7. h4

Ter voorbereiding op mijn tegenstander op het Sunway Sitges schaakfestival keek ik naar de zet 7.h4. De altijd creatieve en inspirerende Daniil Dubov introduceerde deze zet op het hoogste schaakniveau in zijn partij tegen Boris Gelfand in 2016. Na Gelfand’s 7 … Pa5 8.f4 d6 9.f5 won Wit snel met een verpletterende koningsaanval.
Maar wat gebeurt er als Zwart het paard onmiddellijk aan de tand voelt met 7 …. h6 ? Deze zet werd gespeeld in de partij tussen Sasikiran en Harika op de Isle of Man Grand Swiss 2019. Wit ging verder met het sterke 8.Pd5! met als dreiging Pxf6+ gevolgd door Dh5 en Dg6, gebruikmakende van het feit dat de loper op c4 de pion op f7 pint. Arme Harika, het moet moeilijk zijn geweest om deze voorbereiding over het bord te weerstaan! Na 8… Pxd5 9.Lxd5! ontstaat de volgende positie:

Positie na 9.Lxd5

Deze positie zal centraal staan in onze analyse met behulp van de standaard Stockfish 10 (geen ontwikkelingsversie en met ‘contempt’ op 0).
Op mijn 2016 Surface-boek met 1 CPU (2 threads) en op diepte 35 beveelt Stockfish 9 … hxg5 aan en beoordeelt dat Black iets beter is (aantal nodes: 400 miljoen).
Om mijn 2019 Razer Blade Studio, met behulp van 6 CPU’s (12 threads), en op dezelfde diepte 35, beveelt Stockfish 9 … Pb4 aan en beschouwt de positie als ongeveer gelijk (aantal nodes: 2 miljard).
Als referentie: de standaarddiepte voor partij-analyse op chess.com is 20, dus 35 is een redelijke diepte. Maar na 9 … hxg5 staat Zwart helemaal verloren! Na het min of meer geforceerde: 10.hxg5 g6 (om Dh5 te voorkomen) 11.Dg4 Kg7 12.Th7+ Kxh7 13.Dh4+ Kg8. 14.Ld2 gevolgd door 0-0-0 er is geen verdediging tegen Th1 en mat. Wit offert een paard en een toren en Zwart heeft 3 zetten om iets tegen het mat te doen maar kan het mat niet voorkomen. Prachtig!

Analysepositie na 14.Ld2

De langzamere processor beveelt een volledig verliezende zet op diepte 35 aan, terwijl de sterkere processor en Harika het superieure 9 … Pb4 speelden!  Waarom is dit het geval? Het antwoord is vrij eenvoudig. De boom met mogelijke voortzettingen groeit exponentieel met de diepte van de analyse. Sinds versie 7 gebruikt Stockfish niet alleen rekenkracht om dieper te gaan , maar ook om wijder te gaan in de boom. Door wijder in de boom te gaan, verbetert de kwaliteit van de analyse.

Dit voorbeeld laat zien dat analysediepte, de rekentijd om een bepaalde diepte te bereiken van relatief belang zijn en dat de kwaliteit van een aanbeveling van de engine ook sterk afhankelijk is van de snelheid van de processor en het beschikbare geheugen.

Ben je je bewust van de relatieve processorsnelheid / geheugen in je telefoon, tablet, computer en de impact op de kwaliteit van de engine-analyse? Weet je hoeveel CPU/geheugen uw apparaat toewijst aan uw partijanalyse en hoeveel gebruikt wordt voor andere applicaties? Weet je hoe snel de processorsnelheid is wanneer je een web plug-in gebruikt (zoals op chess.com)? En wordt deze analyse uitgevoerd op een cloud of lokaal?

Een andere manier om naar het probleem te kijken is te analyseren op welke diepte een device / website stopt met het aanbevelen van de verliezende 9 … hxg5. Enkele resultaten op populaire websites:
Follow Chess / Analyze This : diepte 40 (met iPhone 11 Pro Max)
Lichess (Stockfish 10+ WASMX): diepte 32 (op Razer Blade Studio)
Chess.com Selfanalysis (Stockfish.js 10) : diepte 37 (op Razer Blade Studio)

Androidfish: diepte 31 (op Huawei P Smart (2019) met een HiSilicon Kirin 710 processor (8 core 1.7 GHz/2.2 GHz)/3 GB RAM)
Ik ben zeer geïnteresseerd om van de lezers te horen op welke diepte en na hoeveel tijd Stockfish 10 niet langer de verliezende 9 … hxg5 aanbeveelt maar switcht naar 9… Pb4. Geef alsjeblieft aan welk apparaat je gebruikt en welk programma / website. (Voor de techneuten: het zoekalgoritme van Stockfish is niet-deterministisch, dus zelfs met gelijke hardware kan er een verschillende aanbeveling gegeven worden. Echter, de processor + geheugen zorgen voor meer variatie dan het algoritme alleen.)

Chessify, een bedrijf dat o.a. cloud engine-services aanbiedt, heeft een match uitgevoerd tussen 3 computer configuraties: 1 CPU, 4 CPU’s en 50 CPU’s met een geforceerde diepte van 20 zetten voor elke zet. De 50 CPU-configuratie scoorde 81% tegen de 1 CPU en 73% tegen deze 4 CPU op gelijke diepte. Deze prestatie komt overeen met een respectief ratingverschil van 240 en 170 punten. Zie voor meer informatie hun blog: NPS vs Time-to-depth
Dezelfde engine, dezelfde diepte, 200 punten verschil!

Het is niet verrassend dat de huidige standaard voor professionele schaakanalyse bestaat uit:
Cloud-analyse met meerdere engines: Leela Chess Zero (of een derivaat zoals Fatfish of Allie). Stockfish, Komodo, Houdini
Database van correspondentie, engines en GM-games met een focus op partijen van de afgelopen jaren.
AlphaZero en de recente neurale netwerk engines leiden tot een herevaluatie van bepaalde posities. Partijen van vóór 2015 zijn van weinig analytische waarde voor topspelers.
Laten we tot slot terugkeren naar de partij Saskiran – Harika.

Positie na 10.Lb3

Na 9. Lxd5 Pb4 ging Sasikiran verder met 10.Lb3 en Harika antwoorde met 10 … d5.
Opgave: Had Harika 10 … hxg5 (i.p.v. 10… d5) kunnen spelen of is dit nog steeds onmogelijk?

8 Comments

  1. Avatar
    Eric César januari 18, 2020

    Mijn PC met Stockfish 10 64 BMI2 vindt na 4 minuten en 15 seconden zowel 9…Pb4 als 9…De8 beter dan 9…hxg5. Als diepte geeft hij dan aan 37/75.

    9…Pb4 heeft wel de voorkeur boven 9…De8.

    Processor i7-4770K @3.50 Ghz
    Hash grootte 16384 MB
    Contempt 0
    Threads 4
    Skill Level 20
    Move Overhead 30
    Minimum Thinking Time 20
    Slow Mover 84
    nodestime 0
    SyzygyProbeDepth 1
    SyzygyProbeLimit 7

    • Avatar
      Christophe123 januari 25, 2020

      Stockfish 11 heeft toch nog hier en daar wat problemen met berekeningen maken… Zie hieronder vluggertje op Lichess… beste zet (stukwinst) positioneert SF11 slechts op de derde plaats (ong. +10 ingeschat door programma) terwijl die na de stukwinst plots op +56 komt te staan… echter in onderstaande positie wordt dat niet op die manier bekeken door het programma…

      lichess.org/Tl9tXmiR/white#90

      Ook tijdens Tata stond Jorden van Foreest bijvoorbeeld op +3 , terwijl het in realiteit remise was.

      Zo zie je dat computerprogramma’s… hoe sterk ze ook zijn, toch nog hun onvolkomenheden hebben.

      Inschattten van pion-stellingen is ook nog niet hun sterkste punt.

  2. Avatar
    Frits Fritschy januari 18, 2020

    Ik kan je niet helpen (uit luiheid gebruik ik nog steeds Fritz10, wat het voordeel heeft dat je de kans hebt zelf ook wat te verzinnen), maar ik heb wel een gerelateerde vraag. Ik neem aan dat je er meer vanaf weet dan ik (wat overigens niet zo’n grote prestatie zou zijn).
    Bij online commentaar, zoals bij chessbomb, valt me op dat de kwaliteit van de zetten in een variant snel daalt naar het einde toe. Aan het einde van een gegeven variant moet je niet raar opkijken als de engine niet ziet dat degene die volgens de evaluatie slechter staat, op dat moment snel een gewonnen stelling kan krijgen.
    Met hoeveel punten daalt de elo van een engine per voorgestelde zet in een analyse? En wat zegt dat over de waarde van de evaluatie?

    • Avatar
      Frits Fritschy januari 20, 2020

      Dank, Han.

      Het is overigens niet triviaal. Varianten die een grootmeester in zijn commentaar geeft, worden niet per se onbetrouwbaarder naarmate hij dieper gaat. Bij een veelbezochte site als chessbomb vertrouwen veel bezoekers niet alleen op de evaluatie, maar ook op de gegeven variant. Ofwel, online analyses spiegelen iets voor wat er maar zeer ten dele is. De evaluatie klopt, maar het ‘uitleggen’ ervan is maar van beperkte waarde. Hoe beperkt? Dat zou in de bijsluiter moeten staan.

  3. Avatar
    TO januari 20, 2020

    Mijn Samsung J9, app: Followchess Ánalyze This na 2 uur hxg5. Fritz 8 op laptop 6 minuten en 23 seconden.

  4. Avatar
    Paul-Peter Theulings januari 20, 2020

    Android,Lenovo YogaP 3 Tablet 2.24GHz quad-coreP Atom X5.

    App Analyze This. Stockfish 10. Na 7½ minuut Diepte 34, Pb4

    App Droidfish, Stockfish 11, na 112 seconden diepte 31,

    Pb4.

     

  5. Avatar
    David van Kerkhof januari 20, 2020

    Interessante materie Han! Mijn bijna 10 jaar oude laptop duurt er in ieder geval veel langer over dan ik ‘m in het ‘dagelijks leven’ zou toestaan :-). Geniaal nieuwtje dus!

  6. Avatar
    Tomodovodoo maart 19, 2021

    Ik herinnerde me deze post nog, en ik wist dat ik met nieuwe engines hier nog op wou reageren!

    Stockfish 12+NNUE doet met Analyze Thuis (Pro) er 3 minuten over om naar diepte 30 te gaan, hier zegt hij dat hxg5 ~-0.8 is (Pb4 is ~-0.6). Om naar diepte 31 te gaan had hij 1.5 minuut nodig waarin hij eigenlijk alleen maar bezig was met hxg5 aan het uitrekenen. Dus na 4.5 minuut op een

    Xiaomi Mi 9T pro

    Snapdragon 885 plus

    6/8 cores

    Depth 31

    Dan pas ziet hij dat hxg5 een slechte move is en raad hij Pb4 aan.

     

    Overigens zegt Lc0 op diepte 2 al dat Pb4 een betere move is, en switched die nooit naar hxg5. De marge is klein, maar op een telefoon met Lc0 op zulke lage dieptes is de marge altijd klein.

     

    Ook ziet Lc0 op move 11 dat Th7+ de beste move is, maar kan niet diep genoeg zien om te zien dat wit beter staat. (~-0.5) op diepte 8 (Lc0 werkt op GPU, en telefoons hebben een veel mindere GPU dan computers)

     

Alleen geregistreerde kunnen een reactie achter laten.