woensdag 20 maart 2013

Voortgang van schaakprogramma's deel 2

Het heeft wat tijd gekost, maar tijdnood komt ook voor in het dagelijkse leven. Jammer genoeg. Had ik het een vorige keer over wat de computers allemaal al kunnen, dan gaat het deze keer over wat ze nog niet kunnen. De huidige stand van zaken laat bijna niet meer toe om de sterkte te testen aan de hand van teststellingen, want de programma's vinden vaak nog verrassende resources, die het nut van dergelijke stellingen in twijfel trekken. Het blijft zeer moeilijk om "correcte" stellingen te vinden. Onder de groep posities die nog niet helemaal ontsloten zijn, behoren zeker de vestingen. Zelfs met enorme zoekdieptes komen programma's er niet toe om "in te zien" dat een voordeel in een bepaalde stelling niet verder uitgebouwd kan worden naar winst. De simpelste vesting is koning tegen verkeerde loper en randpion (bv Ke1, Lf1, h2 tegen Ke8). Dat hoeft een programma zelfs niet meer uit te rekenen, want het zit in tablebases al helemaal uitgewerkt. Verwant aan een vesting is het omgekeerde: een opgesloten stuk. Een dynamische stellingsbeoordeling is bij mijn weten nog niet zo ver dat een opgesloten stuk effectief voor minder waard wordt meegeteld in de evaluatie. Een eerste voorbeeld (de eerste drie voorbeelden komen overigens uit een artikel dat in Chess een tijdje terug is verschenen) dat nog "half" stand houdt is het volgende:

Zwart aan zet speelt gewoon Kb8 en op Dg/h8+ volgt Kc7 Dxa8? Lb8 en wat wit ook nog probeert, hij komt niet verder. Zwart speelt gewoon altijd Kc8-c7-c8. Houdini ziet dit wel (het wordt snel aangegeven in de analyse), maar de evaluatie blijft op meer dan +4 staan. Met andere woorden, de toren wordt geslagen en het programma rekent er (letterlijk) op dat er nog een winst ligt voorbij de horizon. Immers, what else? Voor mensen is dit concept relatief makkelijk uit te leggen; wij hoeven niet te zien dat het ook niet lukt met een koning op a1 of h1 - een computer moet het allemaal uitrekenen.
Een tweede voorbeeld:

Deze stelling speelt eveneens op een opgesloten dame. Geef dit aan bv Houdini en hij blijft lang bij 1.Dxh8, wat verliest, omdat zwart dan 1..c5 speelt en zo de dame opsluit. Ook hier blijft 1.Dxh8 bij gebrek aan beter de beste zet, al zakt de evaluatie relatief snel naar slechts +1.13 en nog later onder +1. Pas op ply 35 geeft Houdini aan dat de stelling niet wint na 1.Dxh8 - een verlies geeft hij nog niet aan. De "oplossing" voor wit is om zelf 1.c5 te spelen (iets wat Stockfish vindt op ply 50), maar dan komen de zwarte stukken los. De winst voor zwart na 1.Dxh8 is voor een mens weer gemakkelijk om uit te rekenen; het paard gaat de dame gaan veroveren.
In de volgende stelling:

staat zwart beter, maar als wit het slim speelt en zwart niet oplet, kan wit nog wegkomen met remise na 1.Pd3! Kxd3? 2.Ke1 en wit ontsnapt naar een vesting. Maar als zwart 1...La5 speelt, wint hij toch. Dit vinden de meeste programma's nu al wel (toen het artikel in Chess verscheen, was dit voor veel programma's nog een kluif).
Iets gelijkaardigs kwam ik onlangs tegen bij een analyse van het eindspel uit de eerste partij van het WK 1972 Spassky-Fischer, dat in Schach zeer uitvoerig geanalyseerd werd. De stelling leidt naar een verdediging die Cozio al gevonden had:


Deze stelling is remise. Eenmaal de witte pion op a5, hoeft zwart gewoon naar c8 te lopen (hij hoeft zelfs niet de diagonaal h2-b8 te overschrijden om een pat te proberen op a8), vanwaar hij nooit meer verjaagd kan worden (de zwarte g-pion speelt geen rol). Houdini geeft na lang nadenken nog altijd +3,83 (alhoewel hij wel degelijk de juiste verdediging voor zwart aangeeft). In datzelfde eindspel komt nog een interessant moment voor. Eigenlijk maakt Fischer de allerlaatste fout op zet 40, met 40...f4?. Had hij hier 40...Kd5! gespeeld, dan had Spassky wel 41.Lb4! moeten vinden (Bastian geeft dit aan in Schach). De programma's geven in deze stelling allemaal 41.Lf8 aan, maar dit leidt na 41...Ke4 ook slechts naar de Cozio-stelling. Moraal van het verhaal: je blindstaren op de score die de computer geeft is nog steeds riskant. Een beetje menselijk begrip van de getoonde analyse is nog altijd op zijn plaats, zelfs met programma's die op +3000 elo gewaardeerd worden. In het praktische schaak en voor de analyse van je eigen partijen kom je nog zelden uitzonderingen tegen die problemen stellen voor de evaluatiefunctie van programma's, maar voor topschaak en correspondentie, moet de computer hier en daar nog altijd een handje geholpen worden. Tot slot nog een bijna pionneneindspel, dat de computer zeer lang (en onterecht) als niet-winnend ziet.In de partij spelen beide spelers het elk één zet mis, maar wit zal wel vanaf het begin achter het bord gezeten hebben met het idee dit te winnen. Houdini 1.5 vindt pas na een halve minuut op zet 9 - wanneer 9.Kh5 gevonden moet worden - dat deze zet wint. De zetten ervoor is het steeds 0.00 ...



HK5000

6 opmerkingen:

  1. In mijn laatste blogartikeltje "Sitzfleisch" heb ik aangegeven dat heel wat praktische eindspelen niet te winnen zijn met gewoon spel ondanks een materieel voordeel (en bijhorende zeer positieve evaluatie van de programma's). In mijn blogartikeltje http://schaken-brabo.blogspot.be/2012/09/de-spaanse-doorschuifvariant.html kan je een andere stelling uit de praktijk vinden die computers aangeven als gewonnen maar eigenlijk remise is. M.i. komt het dus veel vaker voor dan slechts topschaak/ correspondentieschaak dat stellingen problemen stellen voor computers.

    In mijn blogartikeltje http://schaken-brabo.blogspot.be/2012/05/analyseren-met-de-computer.html heb ik uitgelegd hoe ik dit soort stellingen (vestingen) detecteer.

    BeantwoordenVerwijderen
  2. "Dat hoeft een programma zelfs niet meer uit te rekenen, want het zit in tablebases al helemaal uitgewerkt."
    Dat is natuurlijk een prima manier om een sterke schaakmachine in elkaar te knutselen, maar vermindert wel de waarde van die machine voor wat betreft het onderzoek naar kunstmatige intelligentie. Hetzelfde voor openingboeken uiteraard.

    "het paard gaat de dame gaan veroveren."
    Surinaamse taalinvloed?! "Hij gaat naar de winkel gaan" is hier tamelijk gebruikelijk. Surinamers hebben de constructie uiteraard van Engelsen overgenomen.

    "je blindstaren op de score die de computer geeft is nog steeds riskant."
    Vrijwel elke corr. speler zal dat beamen.

    BeantwoordenVerwijderen
  3. "Surinaamse taalinvloed?! "
    Ik ben absoluut geen taalspecialist maar dit lijkt mij eerder de invloed van het Westvlaams dialect. Als ik dit hier in het Antwerpse spreek dan lachen ze mij uit of erger begrijpen ze mij niet.

    BeantwoordenVerwijderen
  4. "dit lijkt mij eerder de invloed van het Westvlaams dialect."
    En de Westvlamingen zullen het dan wel weer van de Engelsen hebben. In de Zaanstreek gebruiken ze gaan op een soortgelijke manier; via walvisvaarders eveneens van de Engelsen afkomstig. Noch in de Zaanstreek noch in Suriname zal iemand om deze manier van uitdrukken lachen.

    BeantwoordenVerwijderen
  5. Een mooi voorbeeld van hoe de langetermijnvisie van een grootmeester het wint van de evaluatiefunctie van een programma, is te zien in de (prachtige) partij van Vachier-Lagrave tegen Ding Liren in de tweede ronde van de Aljechin memorial.

    BeantwoordenVerwijderen
  6. Wel als je http://www.chessvibes.com/reports/alekhine-memorial-adams-on-22-aronian-bounces-back leest dan zit het blijkbaar toch wat ingewikkelder in elkaar. Vooreerst geeft Maxime toe dat het t.e.m. zet 15 zeker allemaal voorbereiding was. Vervolgens geeft hij ook toe dat de computer er wel in slaagt om dit type stelling te verdedigen voor zwart maar hij geluk heeft dat zijn tegenstander een mens is.

    BeantwoordenVerwijderen