Workshop Computerschach: Das Such-Tool AGS

Lese­zeit für die­sen Bei­trag: ca. 7 Minu­ten

Gesucht: Opfer-Partien

von Stefan Pohl

Profi-Schach­spie­ler, seien sie nun Tur­nier­kämp­fer oder Trai­ner, nut­zen viel­fach auch entspr. Profi-Daten­ban­ken, um gezielt nach bestimm­ten Par­tien mit klar defi­nier­ten Eigen­schaf­ten zu suchen. Sol­che pro­fes­sio­nel­len und teu­ren Werk­zeuge sind bei­spiels­weise Chess­base oder (etwas kos­ten­güns­ti­ger) Chess-Assistant. Auch das Free­ware-Pro­gramm Scid hat recht viel­fäl­tige Such-Funktionen.
Doch für das mil­lio­nen­fa­che Heer der Hobby-, Laien- oder/und Ver­eins­spie­ler täte es meist auch eine schma­ler kon­zi­pierte Gra­tis-Soft­ware, um in grös­se­ren Daten­ban­ken mit (-zig tau­sen­den Par­tien), erfasst im sog. PGN-Daten­for­mat, nach inter­es­san­ten, „aggres­si­ven“ Games zu fahn­den. Der deut­sche Com­pu­ter­schach-Experte Ste­fan Pohl hat nun genau dafür ein neues Pro­gramm geschrie­ben, das die­sen Job blitz­schnell erle­digt. Hier stellt er seine „Aggres­sive Games Search Tools“ AGS erst­mals der deutsch­spra­chi­gen Schach­welt vor.

Da in der heu­ti­gen Zeit immer mehr Par­tien gespielt wer­den, sowohl von Men­schen (ent­we­der online oder dann in den zahl­lo­sen Tur­nier­sä­len) als auch von Schach-Engi­nes gegen­ein­an­der, habe ich zwei ein­fa­che Tools geschrie­ben, die auto­ma­ti­siert in belie­bi­gen PGN-Daten­ban­ken nach inter­es­san­ten (Opfer-)Partien suchen.
Denn beson­ders Engine-Par­tien kön­nen oft lang­wei­lig sein: Sie wer­den zwar auf einem enorm hohen schach­li­chen Niveau gespielt, sind aber – auch des­we­gen – meist recht ste­ril. Viele Par­tien gehen remis aus, und die Gewinn­par­tien wer­den oft erst nach zähem Rin­gen (letz­lich mit mini­mals­ten Vor­tei­len) im End­spiel entschieden.

Den­noch gibt es natür­lich inter­es­sante, tak­tisch span­nende Par­tien – doch diese sind oft tief „begra­ben“ in rie­si­gen Daten­ban­ken und müs­sen extra recher­chiert wer­den. Denn nur nach kur­zen Gewinn­par­tien zu suchen reicht hier kei­nes­falls aus; Oft ergibt sich zwar ein inter­es­san­ter Ver­lauf des Mit­tel­spiels, aber bis der Vor­teil, den eine Seite erlangt hat, dann wirk­lich par­tie­ent­schei­dend ver­wer­tet wer­den kann, dau­ert es oft noch viele Züge. Außer­dem: Wer­den Engine-Par­tien bis zum Matt (oder tech­ni­schem Remis) aus­ge­spielt, kann es sowieso lange dau­ern, bis ein im Mit­tel­spiel errun­ge­ner Vor­teil wirk­lich zum Matt ver­wer­tet wird.

Recherche in den Datenbanken

Anzeige Amazon: Schach für Dummies - James Eade
Anzeige

Daher habe ich meine Aggres­sive Games Search Tools (im fol­gen­den kurz AGS) ent­wi­ckelt, die die­ses Pro­blem lösen sollen.
Zunächst gibt es ein Tool, das in allen Gewinn­par­tien bis zu einer vom User bestimm­ten Maxi­mal-Zug­länge nach vor­ge­rück­ten Figu­ren (der Sie­ger-Seite) im geg­ne­ri­schen Lager sucht.
Ein Bei­spiel: Gewinnt Weiß eine Par­tie, so sucht das Tool zwi­schen dem 15. und dem 60. Zug nach wei­ßen Figu­ren (Dame, Turm, Läu­fer, Sprin­ger) im schwar­zen Lager auf der 6./7./8. Reihe. Dies muß min­des­tens drei Mal der Fall sein, und die betr. Figur darf nicht sofort abge­tauscht wer­den (ein simp­ler Damen-Tausch auf d8 bei­spiels­weise wäre ja nicht beson­ders „aggres­siv“). Zudem muss sich die Par­tie noch im Mit­tel­spiel befin­den. Letz­te­res wird über die Mate­ri­al­menge ent­schie­den: Es müs­sen noch min­des­tens Dame, beide Türme und eine Leicht­fi­gur plus mind. vier Bau­ern pro Seite vor­han­den sein – oder dann auch Dame, ein Turm und zwei Leicht­fi­gu­ren plus mind. vier Bau­ern pro Seite. Zuvor sucht das Tool nach Opfern, also nach einem min­des­tens 5 Züge andau­ern­den Mate­ri­al­vor­teil im Mit­tel­spiel für jene Seite, wel­che die Par­tie schlu­ßend­lich ver­liert (bei nur einem Bau­ern Vor­teil sie­ben Züge).

Drei Optionen der Suche

Bei die­ser Opfer­su­che kann der User aus drei Optio­nen wählen:
Star­tet man das Tool Aggressive_Games_Search_tool.bat, wird zunächst nach dem Namen der PGN-Datei gefragt; anschlie­ßend nach der Art der gewünsch­ten Opfersuche:
1= alle Opfer suchen (der Par­tie­ver­lie­rer hat für min­des­tens sie­ben auf­ein­an­der­fol­gende Züge im Mit­tel­spiel min­des­tens einen Bau­ern mehr)
2= Zwei-Bau­ern-Opfer suchen (der Par­tie­ver­lie­rer hat für min­des­tens fünf auf­ein­an­der­fol­gende Züge im Mit­tel­spiel min­des­tens zwei Bau­ern­ein­hei­ten mehr)
3= wie Option 2, aber die zwei Bau­ern­ein­hei­ten mehr dür­fen keine 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 unter Win­dows, aber extrem schnell: Die Turbo-Vari­ante des Tools AGS von Ste­fan Pohl

Es ist klar, dass mehr Par­tien gefun­den wer­den, wenn man Option 1 nutzt. Die wenigs­ten Par­tien erge­ben sich mit Option 3, diese sind dann dafür auch auch sehr spektakulär.
Abschlie­ßend fragt das Tool noch nach der maxi­ma­len Zug­länge der Gewinn­par­tien in der zu unter­su­chen­den PGN-Daten­bank, danach star­tet das Tool. Je höher die maxi­male Zug­länge, desto mehr Par­tien wer­den logi­scher­weise unter­sucht und damit auch mehr Par­tien gefun­den. Für Mensch-Par­tien reicht eine Zug­länge von 80 aus, bei Engine-Par­tien würde ich 100 emp­feh­len, v.a. wenn die Engi­nes bis zum Matt spie­len muß­ten; dann kön­nen auch höhere Par­tie­län­gen sinn­voll sein. Für eine kom­plette Unter­su­chung aller Gewinn­par­tien gibt man 250 als Maxi­mal­länge 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 Suche fer­tig, ertönt eine kurze Ton­folge, und die gefun­de­nen Par­tien wer­den in zwei zusätz­li­chen PGN-Dateien abge­legt, genannt: „aggressive_no_sacrifices.pgn“ sowie „aggressive_with_sacrifices.pgn“. Wobei in der ers­ten Datei die „Tref­fer“ der Suche nach ins geg­ne­ri­sche Feld vor­ge­rück­ten Sie­ger-Figu­ren abge­spei­chert wer­den, und in der zwei­ten Datei dann die Opfer-Partien.
Dabei ist zu beach­ten, dass es keine sog. Dou­blet­ten (also iden­ti­sche Par­tien) geben kann, denn das AGS-Tool sucht immer zunächst nach Opfern in einer Par­tie. Nur, wenn kei­nes gefun­den wird, wird die Suche nach Figu­ren der Sie­ger­farbe vor­ge­rückt im geg­ne­ri­schen Lager, über­haupt gestartet.

AGS gegen Chessbase

Die Suche nach ins geg­ne­ri­sche Lager vor­ge­rück­ten Figu­ren des Sie­gers ist sehr auf­wän­dig und darum lei­der eher lang­sam. (Hier ist das Tool daher nicht schnel­ler als z.B. die Opfer­su­che in „Chess­base“). Auf einem nor­ma­len PC kann man mit einer Aus­beute von ca. 3-5 Par­tien pro Sekunde bzw. ca. 200-300 pro Minute rechnen.
Aus die­sem Grund habe ich eine wei­tere Ver­sion des Tools geschrie­ben, die auf eine Suche nach ins geg­ne­ri­sche Lager vor­ge­rück­ten Figu­ren des Sie­gers ver­zich­tet und nur nach Opfern sucht:“ AGS_Sacrifices_Only_Turbo.bat“. Die­ses Tool sucht also aus­schließ­lich nach Opfern, wobei die Ein­ga­ben des Users iden­tisch zu denen des ori­gi­na­len AGS-Tools sind (s.o.).
Diese „reine“ Opfer­su­che ist um ein Viel­fa­ches schnel­ler und erlaubt daher auch das Durch­su­chen von extrem gro­ßen Daten­ban­ken in kür­zes­ter Zeit. Ich habe test­weise eine Daten­bank mei­ner SPCC-Rang­liste mit 185000 Par­tien durch­lau­fen las­sen; Das dau­erte nur ca. drei Minu­ten, das Tool schaffte also ca. 1000 Par­tien pro Sekunde (!).
Das AGS-Turbo-Tool schreibt die gefun­de­nen Opfer­par­tien in die Datei „games_with_sacrifices.pgn“. Aller­dings sind in die­ser Datei zunächst alle Par­tien mit Weiß­sie­gen abge­legt, danach alle Schwarz­siege. Dies war nötig, um die Geschwind­keit des Tools nicht zu beeinträchtigen.

Auch für alle, die auf die kom­for­ta­ble Opfer­su­che in Chess­Base nicht ver­zich­ten wol­len, bie­tet das schnelle AGS-Tur­bo­Tool einen prak­ti­schen Nut­zen, da man mit sei­ner Hilfe grö­ßere Daten­ban­ken sehr schnell vor­fil­tern kann. Mit der Such­op­tion 1 und einer hohen Par­tie­ma­xi­mal­länge fil­tert das Tool sehr schnell ca. 5-8 Pro­zent poten­ti­ell inter­es­sante Par­tien aus. Mit die­ser um 92%-95% geschrumpf­ten Ergeb­nis-Daten­bank kann man dann wie­derum die sehr dif­fe­ren­zierte Chess­Base-Opfer­su­che starten.

Die Basis: Das Tool PGN-Extract

Anzeige Amazon: Endgame Strategy - Mikhail Shereshevsky - Chess Classic
Anzeige

Meine AGS-Tools nut­zen für alle wesent­li­chen Funk­tio­nen das sehr mäch­tige Free­ware-Tool pgn-extract des eng­li­schen Pro­gram­mie­rers David J. Bar­nes. Die­ses befin­det sich, wie auch die Figu­ren­ver­tei­lungs­mus­ter zur Opfer­er­ken­nung im bin-Ord­ner des Down­loads. Dort wer­den auch tem­po­räre Dateien wäh­rend des Such­pro­zes­ses der Tools ange­legt (und wie­der gelöscht). Der bat-Ord­ner darf daher nicht weg­be­wegt oder sein Inhalt 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 kopiert, so dass jedes der lau­fen­den Tools einen eige­nen bin-Ord­ner bekommt, ansons­ten gibt es Datei-Kollisionen.
Wie bei allen Batch-Tools unter Win­dows gilt: In das schwarze 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 meine, dass ins­be­son­dere das AGS-Turbo-Tool, das nur nach Opfern sucht, eine echte Inno­va­tion dar­stellt. Denn es war bis­her schlicht nicht mög­lich, Par­tie­da­ten­ban­ken mit so hoher Geschwin­dig­keit nach Opfern zu durch­su­chen. Die Opfer­su­che an sich war bis­her v.a. unter Chess­Base bekannt, dort ist sie aber sehr viel lang­sa­mer. Zwar las­sen sich dort auch deut­lich mehr spe­zi­elle Such­pa­ra­me­ter und Stel­lungs­mus­ter nut­zen, aber lei­der nur mit gerin­ger Such­ge­schwin­dig­keit. Eine wirk­lich schnelle Opfer­su­che, um auch große Par­tie­da­ten­ban­ken in annehm­ba­rer Zeit zu durch­su­chen, gab es bis­her schlicht nicht.
Die­ses neu­ar­tige AGS-Turbo-Tool hat zumin­dest für mich schon eine neue Erkennt­nis erbracht, näm­lich die, dass es im moder­nen Engine-Schach weit öfter Opfer­par­tien, also Siege nach Mate­ri­al­nach­teil gibt, als ich das ver­mu­tet hatte. Selbst wenn man eine Engine-Par­tie­da­ten­bank mit dem Turbo-Tool und Option 3 durch­sucht, also nur nach wirk­lich spek­ta­ku­lä­ren Opfern, wer­den mehr Par­tien gefun­den, als ich jemals gedacht hätte. Ein 7000 Par­tien Test­run von Stock­fish für meine SPCC-Rang­liste ergab selbst mit Such­op­tion 3 noch knapp 200 Partien.

Stockfish: Trotz Materialnachteile zum Sieg

Das finde ich wirk­lich sehr erstaun­lich. Denn eigent­lich nimmt man ja an, dass gerade die extrem starke Engine Stock­fish gegen schwä­chere Geg­ner gewinnt, indem sie nach und nach Mate­ral­vor­teil erringt und dar­aus dann in den Par­tie­ge­winn abwi­ckelt. Dass aber Stock­fish der­art häu­fig sogar deut­li­chen Mate­ri­al­nach­teil in einen Sieg ver­wan­delt, hat mich völ­lig ver­blüfft. Engine-Schach der Spit­zen­klasse ist also doch inter­es­san­ter und spek­ta­ku­lä­rer, als es seine zahl­lo­sen Remis-Ergeb­nisse in den entspr. Tur­nie­ren ver­mu­ten las­sen. Vor­aus­ge­setzt eben, diese wirk­lich inter­es­san­ten Par­tien wer­den aus einer rie­si­gen Menge von Par­tien her­aus­ge­fil­tert. Dank des kos­ten­lo­sen AGS Turbo-Tools ist das jetzt ein­fach und schnell für jeden Schach­spie­ler möglich. ♦

Down­load Aggres­sive Game Search Tool

Lesen Sie im GLAREAN MAGAZIN zum Thema Com­pu­ter-Schach auch: Die bes­ten Engi­nes der Welt (2)

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