Workshop Computerschach: Das Such-Tool AGS

Gesucht: Opfer-Partien

von Stefan Pohl

Pro­fi-Schach­spie­ler, sei­en sie nun Tur­nier­kämp­fer oder Trai­ner, nut­zen viel­fach auch entspr. Pro­fi-Da­ten­ban­ken, um ge­zielt nach be­stimm­ten Par­tien mit klar de­fi­nier­ten Ei­gen­schaf­ten zu su­chen. Sol­che pro­fes­sio­nel­len und teu­ren Werk­zeu­ge sind bei­spiels­wei­se Ch­ess­ba­se oder (et­was kos­ten­güns­ti­ger) Ch­ess-As­sistant. Auch das Free­ware-Pro­gramm Scid hat recht viel­fäl­ti­ge Such-Funktionen.
Doch für das mil­lio­nen­fa­che Heer der Hob­by-, Lai­en- oder/und Ver­eins­spie­ler täte es meist auch eine schma­ler kon­zi­pier­te Gra­tis-Soft­ware, um in grös­se­ren Da­ten­ban­ken mit (-zig tau­sen­den Par­tien), er­fasst im sog. PGN-Da­ten­for­mat, nach in­ter­es­san­ten, “ag­gres­si­ven” Games zu fahn­den. Der deut­sche Com­pu­ter­schach-Ex­per­te Ste­fan Pohl hat nun ge­nau da­für ein neu­es Pro­gramm ge­schrie­ben, das die­sen Job blitz­schnell er­le­digt. Hier stellt er sei­ne “Ag­gres­si­ve Games Search Tools” AGS erst­mals der deutsch­spra­chi­gen Schach­welt vor.

Da in der heu­ti­gen Zeit im­mer mehr Par­tien ge­spielt wer­den, so­wohl von Men­schen (ent­we­der on­line oder dann in den zahl­lo­sen Tur­nier­sä­len) als auch von Schach-En­gi­nes ge­gen­ein­an­der, habe ich zwei ein­fa­che Tools ge­schrie­ben, die au­to­ma­ti­siert in be­lie­bi­gen PGN-Da­ten­ban­ken nach in­ter­es­san­ten (Opfer-)Partien suchen.
Denn be­son­ders En­gi­ne-Par­tien kön­nen oft lang­wei­lig sein: Sie wer­den zwar auf ei­nem enorm ho­hen schach­li­chen Ni­veau ge­spielt, sind aber – auch des­we­gen – meist recht ste­ril. Vie­le Par­tien ge­hen re­mis aus, und die Ge­winn­par­tien wer­den oft erst nach zä­hem Rin­gen (letz­lich mit mi­ni­mals­ten Vor­tei­len) im End­spiel entschieden.

Den­noch gibt es na­tür­lich in­ter­es­san­te, tak­tisch span­nen­de Par­tien – doch die­se sind oft tief “be­gra­ben” in rie­si­gen Da­ten­ban­ken und müs­sen ex­tra re­cher­chiert wer­den. Denn nur nach kur­zen Ge­winn­par­tien zu su­chen reicht hier kei­nes­falls aus; Oft er­gibt sich zwar ein in­ter­es­san­ter Ver­lauf des Mit­tel­spiels, aber bis der Vor­teil, den eine Sei­te er­langt hat, dann wirk­lich par­tie­ent­schei­dend ver­wer­tet wer­den kann, dau­ert es oft noch vie­le Züge. Au­ßer­dem: Wer­den En­gi­ne-Par­tien bis zum Matt (oder tech­ni­schem Re­mis) aus­ge­spielt, kann es so­wie­so lan­ge dau­ern, bis ein im Mit­tel­spiel er­run­ge­ner Vor­teil wirk­lich zum Matt ver­wer­tet wird.

Recherche in den Datenbanken

Anzeige Amazon: Schach für Dummies - James Eade
An­zei­ge

Da­her habe ich mei­ne Ag­gres­si­ve Games Search Tools (im fol­gen­den kurz AGS) ent­wi­ckelt, die die­ses Pro­blem lö­sen sollen.
Zu­nächst gibt es ein Tool, das in al­len Ge­winn­par­tien bis zu ei­ner vom User be­stimm­ten Ma­xi­mal-Zug­län­ge nach vor­ge­rück­ten Fi­gu­ren (der Sie­ger-Sei­te) im geg­ne­ri­schen La­ger sucht.
Ein Bei­spiel: Ge­winnt Weiß eine Par­tie, so sucht das Tool zwi­schen dem 15. und dem 60. Zug nach wei­ßen Fi­gu­ren (Dame, Turm, Läu­fer, Sprin­ger) im schwar­zen La­ger auf der 6./7./8. Rei­he. Dies muß min­des­tens drei Mal der Fall sein, und die betr. Fi­gur darf nicht so­fort ab­ge­tauscht wer­den (ein simp­ler Da­men-Tausch auf d8 bei­spiels­wei­se wäre ja nicht be­son­ders “ag­gres­siv”). Zu­dem muss sich die Par­tie noch im Mit­tel­spiel be­fin­den. Letz­te­res wird über die Ma­te­ri­al­men­ge ent­schie­den: Es müs­sen noch min­des­tens Dame, bei­de Tür­me und eine Leicht­fi­gur plus mind. vier Bau­ern pro Sei­te vor­han­den sein – oder dann auch Dame, ein Turm und zwei Leicht­fi­gu­ren plus mind. vier Bau­ern pro Sei­te. Zu­vor sucht das Tool nach Op­fern, also nach ei­nem min­des­tens 5 Züge an­dau­ern­den Ma­te­ri­al­vor­teil im Mit­tel­spiel für jene Sei­te, wel­che die Par­tie schlu­ßend­lich ver­liert (bei nur ei­nem Bau­ern Vor­teil sie­ben Züge).

Drei Optionen der Suche

Bei die­ser Op­fer­su­che kann der User aus drei Op­tio­nen wählen:
Star­tet man das Tool Aggressive_Games_Search_tool.bat, wird zu­nächst nach dem Na­men der PGN-Da­tei ge­fragt; an­schlie­ßend nach der Art der ge­wünsch­ten Opfersuche:
1= alle Op­fer su­chen (der Par­tie­ver­lie­rer hat für min­des­tens sie­ben auf­ein­an­der­fol­gen­de Züge im Mit­tel­spiel min­des­tens ei­nen Bau­ern mehr)
2= Zwei-Bau­ern-Op­fer su­chen (der Par­tie­ver­lie­rer hat für min­des­tens fünf auf­ein­an­der­fol­gen­de Züge im Mit­tel­spiel min­des­tens zwei Bau­ern­ein­hei­ten mehr)
3= wie Op­ti­on 2, aber die zwei Bau­ern­ein­hei­ten mehr dür­fen kei­ne zwei Bau­ern sein (son­dern z.B. der Qua­li­täts­vor­sprung Turm für Springer)

AGS-Tool - Stefan Pohl - Computerschach - Februar 2022
Kon­so­len- und Text-ori­en­tiert un­ter Win­dows, aber ex­trem schnell: Die Tur­bo-Va­ri­an­te des Tools AGS von Ste­fan Pohl

Es ist klar, dass mehr Par­tien ge­fun­den wer­den, wenn man Op­ti­on 1 nutzt. Die we­nigs­ten Par­tien er­ge­ben sich mit Op­ti­on 3, die­se sind dann da­für auch auch sehr spektakulär.
Ab­schlie­ßend fragt das Tool noch nach der ma­xi­ma­len Zug­län­ge der Ge­winn­par­tien in der zu un­ter­su­chen­den PGN-Da­ten­bank, da­nach star­tet das Tool. Je hö­her die ma­xi­ma­le Zug­län­ge, des­to mehr Par­tien wer­den lo­gi­scher­wei­se un­ter­sucht und da­mit auch mehr Par­tien ge­fun­den. Für Mensch-Par­tien reicht eine Zug­län­ge von 80 aus, bei En­gi­ne-Par­tien wür­de ich 100 emp­feh­len, v.a. wenn die En­gi­nes bis zum Matt spie­len muß­ten; dann kön­nen auch hö­he­re Par­tie­län­gen sinn­voll sein. Für eine kom­plet­te Un­ter­su­chung al­ler Ge­winn­par­tien gibt man 250 als Ma­xi­mal­län­ge ein.

Aggressive Games mit und ohne Opfer

Computerschach-Freund und AGS-Programmierer: Stefan Pohl
Com­pu­ter­schach-Freund und AGS-Pro­gram­mie­rer: Ste­fan Pohl

Ist das Tool mit sei­ner Su­che fer­tig, er­tönt eine kur­ze Ton­fol­ge, und die ge­fun­de­nen Par­tien wer­den in zwei zu­sätz­li­chen PGN-Da­tei­en ab­ge­legt, ge­nannt: “aggressive_no_sacrifices.pgn” so­wie “aggressive_with_sacrifices.pgn”. Wo­bei in der ers­ten Da­tei die “Tref­fer” der Su­che nach ins geg­ne­ri­sche Feld vor­ge­rück­ten Sie­ger-Fi­gu­ren ab­ge­spei­chert wer­den, und in der zwei­ten Da­tei dann die Opfer-Partien.
Da­bei ist zu be­ach­ten, dass es kei­ne sog. Dou­blet­ten (also iden­ti­sche Par­tien) ge­ben kann, denn das AGS-Tool sucht im­mer zu­nächst nach Op­fern in ei­ner Par­tie. Nur, wenn kei­nes ge­fun­den wird, wird die Su­che nach Fi­gu­ren der Sie­ger­far­be vor­ge­rückt im geg­ne­ri­schen La­ger, über­haupt gestartet.

AGS gegen Chessbase

Die Su­che nach ins geg­ne­ri­sche La­ger vor­ge­rück­ten Fi­gu­ren des Sie­gers ist sehr auf­wän­dig und dar­um lei­der eher lang­sam. (Hier ist das Tool da­her nicht schnel­ler als z.B. die Op­fer­su­che in “Ch­ess­ba­se”). Auf ei­nem nor­ma­len PC kann man mit ei­ner Aus­beu­te von ca. 3-5 Par­tien pro Se­kun­de bzw. ca. 200-300 pro Mi­nu­te rechnen.
Aus die­sem Grund habe ich eine wei­te­re Ver­si­on des Tools ge­schrie­ben, die auf eine Su­che nach ins geg­ne­ri­sche La­ger vor­ge­rück­ten Fi­gu­ren des Sie­gers ver­zich­tet und nur nach Op­fern sucht:” AGS_Sacrifices_Only_Turbo.bat”. Die­ses Tool sucht also aus­schließ­lich nach Op­fern, wo­bei die Ein­ga­ben des Users iden­tisch zu de­nen des ori­gi­na­len AGS-Tools sind (s.o.).
Die­se “rei­ne” Op­fer­su­che ist um ein Viel­fa­ches schnel­ler und er­laubt da­her auch das Durch­su­chen von ex­trem gro­ßen Da­ten­ban­ken in kür­zes­ter Zeit. Ich habe test­wei­se eine Da­ten­bank mei­ner SPCC-Rang­lis­te mit 185000 Par­tien durch­lau­fen las­sen; Das dau­er­te nur ca. drei Mi­nu­ten, das Tool schaff­te also ca. 1000 Par­tien pro Sekunde (!).
Das AGS-Tur­bo-Tool schreibt die ge­fun­de­nen Op­fer­par­tien in die Da­tei “games_with_sacrifices.pgn”. Al­ler­dings sind in die­ser Da­tei zu­nächst alle Par­tien mit Weiß­sie­gen ab­ge­legt, da­nach alle Schwarz­sie­ge. Dies war nö­tig, um die Ge­schwind­keit des Tools nicht zu beeinträchtigen.

Auch für alle, die auf die kom­for­ta­ble Op­fer­su­che in Ch­ess­Ba­se nicht ver­zich­ten wol­len, bie­tet das schnel­le AGS-Tur­bo­Tool ei­nen prak­ti­schen Nut­zen, da man mit sei­ner Hil­fe grö­ße­re Da­ten­ban­ken sehr schnell vor­fil­tern kann. Mit der Such­op­ti­on 1 und ei­ner ho­hen Par­tie­ma­xi­mal­län­ge fil­tert das Tool sehr schnell ca. 5-8 Pro­zent po­ten­ti­ell in­ter­es­san­te Par­tien aus. Mit die­ser um 92%-95% ge­schrumpf­ten Er­geb­nis-Da­ten­bank kann man dann wie­der­um die sehr dif­fe­ren­zier­te Ch­ess­Ba­se-Op­fer­su­che starten.

Die Basis: Das Tool PGN-Extract

Anzeige Amazon: Endgame Strategy - Mikhail Shereshevsky - Chess Classic
An­zei­ge

Mei­ne AGS-Tools nut­zen für alle we­sent­li­chen Funk­tio­nen das sehr mäch­ti­ge Free­ware-Tool pgn-ex­tra­ct des eng­li­schen Pro­gram­mie­rers Da­vid J. Bar­nes. Die­ses be­fin­det sich, wie auch die Fi­gu­ren­ver­tei­lungs­mus­ter zur Op­fer­er­ken­nung im bin-Ord­ner des Down­loads. Dort wer­den auch tem­po­rä­re Da­tei­en wäh­rend des Such­pro­zes­ses der Tools an­ge­legt (und wie­der ge­löscht). Der bat-Ord­ner darf da­her nicht weg­be­wegt oder sein In­halt ver­än­dert oder schreib­ge­schützt wer­den. Auch ein mehr­fa­ches Star­ten der Tools zu sel­ben Zeit geht nur, wenn man den kom­plet­ten AGS-Ord­ner ko­piert, so dass je­des der lau­fen­den Tools ei­nen ei­ge­nen bin-Ord­ner be­kommt, an­sons­ten gibt es Datei-Kollisionen.
Wie bei al­len Batch-Tools un­ter Win­dows gilt: In das schwar­ze Fens­ter, in dem sie lau­fen, darf man nicht mit der Maus hin­ein­kli­cken, sonst friert das Pro­gramm ein. Dies ist ein Pro­blem von Win­dows, es läßt sich nicht vermeiden…

Eine echte Innovation

Ich mei­ne, dass ins­be­son­de­re das AGS-Tur­bo-Tool, das nur nach Op­fern sucht, eine ech­te In­no­va­ti­on dar­stellt. Denn es war bis­her schlicht nicht mög­lich, Par­tie­da­ten­ban­ken mit so ho­her Ge­schwin­dig­keit nach Op­fern zu durch­su­chen. Die Op­fer­su­che an sich war bis­her v.a. un­ter Ch­ess­Ba­se be­kannt, dort ist sie aber sehr viel lang­sa­mer. Zwar las­sen sich dort auch deut­lich mehr spe­zi­el­le Such­pa­ra­me­ter und Stel­lungs­mus­ter nut­zen, aber lei­der nur mit ge­rin­ger Such­ge­schwin­dig­keit. Eine wirk­lich schnel­le Op­fer­su­che, um auch gro­ße Par­tie­da­ten­ban­ken in an­nehm­ba­rer Zeit zu durch­su­chen, gab es bis­her schlicht nicht.
Die­ses neu­ar­ti­ge AGS-Tur­bo-Tool hat zu­min­dest für mich schon eine neue Er­kennt­nis er­bracht, näm­lich die, dass es im mo­der­nen En­gi­ne-Schach weit öf­ter Op­fer­par­tien, also Sie­ge nach Ma­te­ri­al­nach­teil gibt, als ich das ver­mu­tet hat­te. Selbst wenn man eine En­gi­ne-Par­tie­da­ten­bank mit dem Tur­bo-Tool und Op­ti­on 3 durch­sucht, also nur nach wirk­lich spek­ta­ku­lä­ren Op­fern, wer­den mehr Par­tien ge­fun­den, als ich je­mals ge­dacht hät­te. Ein 7000 Par­tien Test­run von Stock­fi­sh für mei­ne SPCC-Rang­lis­te er­gab selbst mit Such­op­ti­on 3 noch knapp 200 Partien.

Stockfish: Trotz Materialnachteile zum Sieg

Das fin­de ich wirk­lich sehr er­staun­lich. Denn ei­gent­lich nimmt man ja an, dass ge­ra­de die ex­trem star­ke En­gi­ne Stock­fi­sh ge­gen schwä­che­re Geg­ner ge­winnt, in­dem sie nach und nach Ma­te­ral­vor­teil er­ringt und dar­aus dann in den Par­tie­ge­winn ab­wi­ckelt. Dass aber Stock­fi­sh der­art häu­fig so­gar deut­li­chen Ma­te­ri­al­nach­teil in ei­nen Sieg ver­wan­delt, hat mich völ­lig ver­blüfft. En­gi­ne-Schach der Spit­zen­klas­se ist also doch in­ter­es­san­ter und spek­ta­ku­lä­rer, als es sei­ne zahl­lo­sen Re­mis-Er­geb­nis­se in den entspr. Tur­nie­ren ver­mu­ten las­sen. Vor­aus­ge­setzt eben, die­se wirk­lich in­ter­es­san­ten Par­tien wer­den aus ei­ner rie­si­gen Men­ge von Par­tien her­aus­ge­fil­tert. Dank des kos­ten­lo­sen AGS Tur­bo-Tools ist das jetzt ein­fach und schnell für je­den Schach­spie­ler möglich. ♦

Down­load Ag­gres­si­ve Game Search Tool

Le­sen Sie im GLAREAN MAGAZIN zum The­ma Com­pu­ter-Schach auch: Die bes­ten En­gi­nes der Welt (2)

Kommentare sind willkommen! (Keine E-Mail-Pflicht)