Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / Schachprogrammierung / Engine Test Tools
1 2 Previous Next  
- - By Peter Martan Date 2021-09-18 09:20 Upvotes 1
Mit ShashChess 18.2 habe ich eine neue Liste gestartet, weil je mehr es werden in einer Lösungs- .cbh, desto mehr Einträge kommen dazu, die man aus der geklonten .pgn wieder händisch herauslöschen muss. Die Einträge sind Hash- Angaben, keine Ahnung, warum die bei manchen Stellungen vor die Kommentare kommen zu den Engines, die teilnehmen, ElostatTS wertet sie dann aber als eigene Engines (das sind die "Geisterengines", von denen ich am Anfang schrieb), das manuelle Löschen mit einem Editor wird immer mühsamer und irgendwann ist das Progamm dann nicht mehr imstande, vernünftige Resultate zu schreiben.

Ich hoffe ein Workaround gefunden zu haben, um das zu vermeiden, auch dieser Tipp kam von Horst Wandersleben.
Die von Fritz geschriebene .pgn mit Aquarium öffnen (gleich die .cbh, die Aqua ja auch sollte lesen können, bringt das GUI regelmäßig zum Absturz, schade) und damit noch einmal ins .pgn- Format (das ja von verschiedenen GUIs verschieden interpretiert wird) von Aquarium (beim mir 2020) exportieren, das hat bei dem einen ersten Versuch, den ich so gemacht habe, die Hash- Einträge nicht übernommen.

http://talkchess.com/forum3/viewtopic.php?p=905971#p905971

Nur, um das Interesse an dem feinen Tool von Frank Schubert weiter zu wecken, weckt weiter
Parent - - By Peter Martan Date 2021-09-18 11:37 Upvotes 1
Peter Martan schrieb:

Ich hoffe ein Workaround gefunden zu haben

Und möglicher Weise mittlerweile noch eine Nummer einfacher:
Beim Kopieren der chessbase- Lösungsdatenbank über das Menü Datenbank- Textdatei- PGN- Format "Alternativ" statt "Standard" wählen, das hat beim ersten Versuch (mal sehen, wie's weitergehen wird, wenn's wieder mehr Engines werden) keine unnötigen Einträge in den Kommentarzeilen der gewerteten Engines gebracht, ohne, das ich die .pgn noch in ein anderes .pgn- Format eines anderen GUIs konvertieren musste.

    Program                                    Elo   +/-  Matches  Score   Av.Op.   S.Pos.   MST1    MST2   RIndex

  1 SugaRAIICCF2.40avx2-nn-13406b1dcbe0.nnue : 3516    7    871    53.6 %   3492   410/487    1.5s    2.9s   0.89
  2 ShashChess18.2-nn13406b1dcbe0.nnue       : 3504    7    843    50.7 %   3499   399/487    2.0s    3.4s   0.86
  3 Stockfish170921                          : 3479    7    838    45.6 %   3510   354/487    1.8s    4.0s   0.79

MST1  : Mean solution time (solved positions only)
MST2  : Mean solution time (solved and unsolved positions)
RIndex: Score according to solution time ranking for each position


Hier war jetzt übrigens bei allen 3 Engines das Syzygy Probe Limit auf 5 gesetzt, was bei so kurzen TCs vielleicht der beste Kompromiss zwischen 0 und 6 sein könnte.
Ansosnten wieder die üblichen 30 Threads der 16x3.5GHz avx2- CPU und 1G Hash regards
Parent - By Peter Martan Date 2021-09-18 23:37 Edited 2021-09-19 00:10 Upvotes 1
Peter Martan schrieb:

Beim Kopieren der chessbase- Lösungsdatenbank über das Menü Datenbank- Textdatei- PGN- Format "Alternativ" statt "Standard" wählen

Eine wesentliche Erkenntnis das. Nach einigen weiteren Durchläufen wäre ich jetzt schon ziemlich sicher, dass das das Problem mit den Geisterengines löst.
Bei Ceres und Ethereal die Syzygys aus den GUI- Optionen heraus genommen, weil die keine UCI- Möglichkeit haben, ein Probe Limit zu setzen, aus demselben Grund bei Arasan Tbs Use unchecked, bei LC0 Syzygy Fast Play, bei Dragon Probe Limit 5 Smart Syzygy.


    Program                                    Elo   +/-  Matches  Score   Av.Op.   S.Pos.   MST1    MST2   RIndex

  1 SugaRAIICCF2.40avx2-nn-13406b1dcbe0.nnue : 3549    4   3879    58.0 %   3493   410/487    1.5s    2.9s   0.86
  2 ShashChess18.2-nn13406b1dcbe0.nnue       : 3537    4   3737    56.1 %   3495   399/487    2.0s    3.4s   0.85
  3 BrainLearn13.1-nn-13406b1dcbe0.nnue      : 3521    4   3517    53.5 %   3497   363/487    1.8s    3.9s   0.83
  4 Stockfish170921                          : 3515    4   3508    52.4 %   3498   354/487    1.8s    4.0s   0.80
  5 Ceres0.93N-Syz0                          : 3499    5   3556    49.7 %   3501   332/487    1.9s    4.5s   0.68
  6 DragonbyKomodoChess264-bit-SmartSyz.     : 3496    4   3404    49.3 %   3501   327/487    1.9s    4.5s   0.73
  7 Lc0v0.28.0-NN610021-2T-SyzFP             : 3494    5   3507    49.0 %   3501   323/487    1.9s    4.6s   0.68
  8 Arasan23.0-Syz0                          : 3477    5   3384    46.3 %   3503   304/487    2.1s    5.1s   0.64
  9 RubiChess2.2NN-fb50f(avx2)               : 3462    4   3295    43.9 %   3505   284/487    2.1s    5.4s   0.60
10  Ethereal13.25-Syz0                       : 3433    5   3241    39.3 %   3508   255/487    2.6s    6.1s   0.46

MST1  : Mean solution time (solved positions only)
MST2  : Mean solution time (solved and unsolved positions)
RIndex: Score according to solution time ranking for each position
- By Peter Martan Date 2021-09-28 10:01 Upvotes 1
Um meine Versuche mit verschiedenen Sammlungen von Teststellungen zusammen zu fassen:

Prinzipiell gibt es für mich keinen Unterschied mehr zwischen "positionellen" und taktischen Teststellungen, man könnte Eröffnungsstellungen, Mittelspiel- und Endspielstellungen genau so in best move- Sammlungen automatisch ablaufen lassen, wenn man bei denjenigen (Stellungen), die mehr als einen gleichwertigen Lösungszug haben, immer einfach so viele, wie eine ungefähr gleich hohe Eval haben (sollten) mit einem dem jeweiligen Alternativ- Zug voran gestellten = als .cbh- Kommentar versehen, dann werden alle solchen Züge als gefunden oder nicht gefunden gewertet, man erspart sich das doch irgendwie sehr subjektive Punktesystem und kann die Ergebnisse wieder genau so wie bei den single best move- Sammlungen mit ELOStatTS auswerten.

Worum man aber so und so nicht herum kommt: bestimmte Stellungstypen (mehr als eine Unterscheidung nach einem Time to Solution bzw. Time to Eval- Schlüssel braucht's aber auch da eigentlich nicht, wenn's nur um die Rechenzeit geht) mit bestimmten Hardware- TC- Vorgaben versehen.

Was die bekanntesten Sammlungen angeht, würde ich sagen,  ab 8 avx2- Kernen und oder einer einzelnen 3070- GPU: Arasan 5"/Stellung, Eret 10, HTC114 30. Das in einen gemeinsamen Top mit 10" klappt auch, genauer ist's halt, zuerst die einzelnen Suiten mit jeweils selektivster und sensitivster einzelner TC laufen zu lassen und dann die Lösungs- cbh- files in eine gemeinsame .pgn zu kopieren, die ElostatTS dann auswertet.

Mit den Sammlungen mit mehreren Lösungszügen ebenfalls die jeweils besten Hardware- TCs in einzelnen Suiten bestimmen und auch in die gemeinsame Lösungs- .pgn kopieren, that's it.

Die positionellen Stellungen könnte man aus solchen Sammlungen wie STS rekrutieren und oder einfach zusätzlich beliebige Eröffnungs- Mittel- und Endspielstellungen mit ein paar Eich- Engines im MultiPV laufen lassen, die 2, 3, 4 (...) Züge mit Evals in einer gemeinsamen Range (wenn man's genauer haben will, nach ein bisschen Forward- Backward und nicht die Absolutwerte der Evals vergleichen sondern ihre Relationen zueinander als Quotient) als gleichwertige Lösungen in der Testsuite definieren.

In ein paar Jahren melde ich mich wieder, wenn's fertig ist, obwohl man's ja auch jetzt schon mit den vielen Sammlungen, die es gibt, mehr als ausreichend finden könnte, findet
- By Lothar Jung Date 2021-09-29 09:43 Edited 2021-09-29 09:46 Upvotes 1
Die BanksiaGUI kann jetzt Test Suits lösen.

https://banksiagui.com/download/

Run test suites: another new feature for developers/testers. As usual, it is designed to maximize efficiency/convenience for users. They can create a new test within only a few clicks, re-do a test with only one click. The test is very flexible: data can be loaded from files or pasted from the clipboard, chess positions can be turned on/off individually, run with multi engines, concurrencies to speed up/reduce the time… All results are displayed with rich information. Those also are displayed in text form to easily copy and save to compare, refer later
- By Lothar Jung Date 2021-09-30 20:57 Edited 2021-09-30 20:59 Upvotes 1
Ein pgn zu epd Umwandlungstool mit vielen Optionen:

https://glarean-magazin.ch/2008/08/02/gratis-downloads-musiknoten-materialien-schach-e-books-kostenlose-materialien-pop-rock-klassik/#Kostenlose-Schach-Materialien
- By Lothar Jung Date 2022-04-03 12:50 Upvotes 1
Hier der „Lc0 Testing Guide“:

https://lczero.org/dev/wiki/testing-guide/
- By Lothar Jung Date 2022-05-06 09:44 Upvotes 1
Hier das Tool zur Ordo Berechnung:

https://github.com/michiguel/Ordo/wiki/Ordo
- By Lothar Jung Date 2022-05-10 18:51 Upvotes 1
Hier ein sehr praktisches und vielseitiges Tool zur Analyse von pgn-Dateien/ Datenbanken „pgn-extract“:

https://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/help.html
- By Lothar Jung Date 2022-08-05 13:10 Upvotes 1
Hier ein Link zu einem CSS-Thread zu Stefan Pohls Tool „Short Game Analyzer“:

https://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?tid=13249
- - By Lothar Jung Date 2022-10-23 17:06
Hier der Link auf zwei Testsuits von 1500 Stellungen für Engines und Lc0 mit dem MEA Analysetool:

https://rebel13.nl/misc/sts.html
Parent - - By Peter Martan Date 2022-10-27 10:48
Hatte noch gar nicht wahrgenommen, dass du auch hier ein Posting dazu abgesetzt hast.
Recht hast du, da gehört's her, im "Hauptforum" macht's am Ende gar noch wer versehentlich auf
Parent - - By Lothar Jung Date 2022-10-27 10:57
Parent - - By Peter Martan Date 2022-10-27 11:11 Edited 2022-10-27 11:16
Das ist überhaupt die Idee schlechthin, ich hab' noch einen im Haupforum hierher gesetzt, da kann man jetzt im Kreis klicken
Parent - By Lothar Jung Date 2022-10-27 11:28
Hier die ausführliche Diskussion bei Talkchess:

http://talkchess.com/forum3/viewtopic.php?t=80876&start=30
- By Peter Martan Date 2022-10-27 14:05 Edited 2022-10-27 14:22 Upvotes 1
Ein Weiteres besonderes Positivum des neuen Tools von Ed Schröder und Ferdinand Mosca:

Man kann mehrere Instanzen gleichzeitig laufen lassen, wenn man die .batch- files mehrmals startet, und es werden trotzdem alle Resultate in eine gemeinsame Liste eingetragen, auch wenn man nur ganz knapp zeitversetzt neue runs startet, während die alten noch laufen. So wie einer fertig ist, wird das .html- Ergebnis aufgeschlagen, jeder neu fertig werdende Lauf bekommt ein neues .html- Fenster mit allem, was bis dahin in der einen  Liste drin war und neu dazu gekommen ist.

Und was man mit einer .epd testet, kann man in aus der mea_results.csv kopieren und ein andere solche einfügen und so Ergebnisse verschiedener Einstellungen in eine gemeinsame Liste zusammenfügen mit der make-html.bat. Am einfachsten geht das mit gleichnamigen Files in einem anderen Ordner, jetzt verstehe ich auch erst, warum das im Download gleich mit 2 Ordnern angelegt wird, die sehr Ähnliches, teilweise auch Gleiches doppelt enthalten.

Schon sehr schön durchdacht, das ganze Package.
- - By Peter Martan Date 2022-10-27 14:56 Upvotes 1
Z.B.:
Eine batch- Datei läuft mit LC0 und einem Netz x mit 300 msec,. gleichzeitig werden 3 andere Engines single threaded mit 100msec. über eine zweites batch- file gestartet, dann fügt man den ersten und den zweiten LC0- Lauf (nacheinander, damit sie sich nicht die GPU teilen müssen) in die .csv- Datei der anderen  Liste ein:



Die Fische single thread (damit wird auch die Reproduzierbarkeit besser) mit 100msec./Pos., LC0 (mit den 2 Netzen im Namen) mit 300msec, 2 CPU- Threads und der 3070ti GPU.
Die verschieden lange Initialisierungszeit von A-B und LC0 lässt sich schwer abschätzen, EloStatTS hat dazu die Offset.pgn im Download, aber die Leela- Ratio ist sowieso auch eine Frage für sich, so what,
regards
Parent - By Peter Martan Date 2022-10-27 20:38
Und weil's ja im Thread über die Engine- Test- Tools nicht immer nur um die neuen solchen gehen soll, zum Vergleich mal wieder ein Ergebnis mit dem guten alten EloStatTS.
256 Stellungen

https://www.dropbox.com/s/lpg29zoyvh03dza/256.epd?dl=0

30 Threads der 16x3.5GHz CPU, 3070ti GPU, 5"/Stellung, MV4 heißt MultiPV=4.


    Program                                    Elo   +/-  Matches  Score   Av.Op.   S.Pos.   MST1    MST2   RIndex

  1 HypnoSFmpv210922-Set1-ImbInv             : 3544    4   4724    56.8 %   3497   206/256    1.8s    2.4s   0.73
  2 BlueMarlin15.3-MV4                       : 3535    4   4519    55.5 %   3497   192/256    1.7s    2.5s   0.73
  3 BlueMarlin15.4-avx2-MV4                  : 3534    4   4465    55.3 %   3497   189/256    1.6s    2.5s   0.74
  4 ShashChess25-GD-MV4                      : 3533    4   4551    55.3 %   3497   194/256    1.8s    2.6s   0.72
  5 ShashChess25.2-GoldDigger-MV4            : 3531    4   4498    54.9 %   3497   191/256    1.8s    2.6s   0.72
  6 ShashChess24-MV4                         : 3530    4   4441    54.7 %   3497   189/256    1.7s    2.6s   0.73
  7 ShashChess25.1-GD-MCTS-MV4               : 3529    4   4539    54.6 %   3497   193/256    1.9s    2.7s   0.68
  8 EMAN8.40-Expl12-MV4                      : 3529    4   4431    54.6 %   3497   189/256    1.8s    2.6s   0.71
  9 ShashChess25-GD-HT-HP-MV4                : 3529    4   4454    54.5 %   3497   188/256    1.7s    2.6s   0.72
10 CorChess3300522-MV4                       : 3528    4   4467    54.5 %   3497   189/256    1.8s    2.6s   0.68
11 EMAN8.40-Tact.7-Expl.12-MV4               : 3524    4   4389    53.8 %   3498   183/256    1.7s    2.7s   0.70
12 Stockfish110922-MV4                       : 3520    4   4354    53.2 %   3498   178/256    1.7s    2.7s   0.68
13 Stockfish231022-MV4                       : 3519    4   4360    53.0 %   3498   180/256    1.8s    2.8s   0.68
14 EMAN8.30-MV4                              : 3517    4   4291    52.7 %   3498   178/256    1.8s    2.8s   0.66
15 Stockfish110922                           : 3503    4   4245    50.4 %   3500   160/256    1.7s    2.9s   0.63
16 Dragon3.1byKomodoChess-MV4                : 3492    4   4212    48.7 %   3501   152/256    1.8s    3.1s   0.55
17 Berserk10-MV4                             : 3460    5   4009    43.8 %   3504   124/256    1.8s    3.4s   0.45
18 Ceres0.97RC3-784990                       : 3448    5   4049    41.5 %   3508   112/256    1.9s    3.6s   0.34
19 TheHuntsman1bmi2-MV4                      : 3447    5   4192    41.9 %   3504   109/256    1.6s    3.6s   0.34
20 Lc0v0.29.0-rc0-805874                     : 3446    5   4025    41.2 %   3508   109/256    1.7s    3.6s   0.38
21 Lc0v0.29.0-rc0-784968                     : 3429    5   3970    38.7 %   3509    96/256    1.9s    3.8s   0.31
22 Lc0v0.30.0-dag+git.c91bf77-784968         : 3413    5   3857    36.5 %   3509    86/256    1.9s    3.9s   0.29
23 Halogen11-MV4                             : 3403    5   3764    35.2 %   3508    93/256    2.5s    4.1s   0.23

MST1  : Mean solution time (solved positions only)
MST2  : Mean solution time (solved and unsolved positions)
RIndex: Score according to solution time ranking for each position
- By Peter Martan Date 2022-10-31 11:00 Edited 2022-10-31 11:37 Upvotes 1
Hab' mal händisch den Eret für MEA editiert:

https://www.dropbox.com/s/iwsiujd0ofdvju4/MEA111.epd?dl=0

Leider funktioniert er mit dem Mosca- tool nur eingeschränkt, hier

http://talkchess.com/forum3/viewtopic.php?p=937088#p937088

mit Ed Schröder schon ein paar Postings darüber gewechselt, wir (vielleicht meldet er sich ja aber dort noch einmal, sonst probier' ich's vielleicht in seinem eigenen Forum weiter, ich selbst für mich allein hab's jetzt mal aufgegeben) finden keinen Syntax- Fehler mehr in der .epd, trotzdem meckert MEA in der Konsole immer noch rum, auch wenn bis zu einer TC von 999msec LC0 dann dennoch gewertet wird und es mit den Fischen bis 30 Threads so funktioniert, ist irgendwo TC- abhängig und Engine- abhängig ein Bug drin, der manche Runs immer wieder abbrechen lässt. Ich würde ja sagen, das liegt am MEA- Tool, bin aber nicht Python- kundig genug, dem dann auch selbst auf die Schliche zu kommen.
Schade, schon der Eret allein würde mit very short TC ganz gute Diskrimination selbst der stärksten Engines bringen:



Auch dieses Tool von Ferdy

https://github.com/fsmosca/STS-Rating/blob/master/tools/

installiere ich mir vorläufig nicht, vielleicht schafft's ja jemand Anderer damit oder händisch weitere Stellungen außer den 594 aus dem STS, die nicht allzu leicht sind

https://www.dropbox.com/s/x4qmr9ucykk0r76/594.epd?dl=0

und hier

https://www.dropbox.com/s/yu7dnjpofa6bb8n/1024.epd?dl=0

gemeinsam mit ebensolchen aus Eret, Arasan, HTC und aus meiner eigenen Puzzle- Sammlung enthalten sind, in ein funktionierendes MEA- Format zu bringen, diese Stellungen würden dann in Summe (sag ich mal, ohne es noch probieren zu können, händisch wird mir das zu mühsam, vor allem die Suche nach Syntax- Fehlern macht das vom Zeitaufwand her für Einen allein unüberschaubar) sicher reichen, mit TCs um eine Sekunde herum gute Selektivität und Sensitivität der Suite zu bekommen, wenn die schweren gelösten Stellungen um das mehr Punkte durch MEA erhalten, was die zu leichten weniger zählten.
Die 1024 als single best move suite funktioniert auch ohne MEA, aber entweder es bleiben bei sehr kurzen TCs zu viele Stellungen ungelöst oder es werden mit zu langen zu viele gelöst. Das alte Problem von Sensitivität und Selektivität, im Fall der Suiten ja nur von der Hardware- TC und dem Engine- Pool abhängig, ansonsten könnten man ja immer einfach beliebig viele leichte und schwere Stellungen zusammenschmeißen und hoffen, dass so wie mit dem einen Fuß im Eiswasser und dem anderen im kochenden eine angenehme Durchschnittstemperatur herauskäme. Auf die Stellungs- Sammlungen umgelegt, würde das für bestimmte Engines sogar funktionieren, aber halt nicht für einen größeren Pool. Mit MEA gemeinsam würde man das stark verbessern können in der Anwendbarkeit für größere TC- Unterschiede und breitere Engine- Samples, sowohl mit kleinerer Anzahl an Stellungen als auch mit größeren in einem bunteren Mix.

Just hoping and holding on...
- By Peter Martan Date 2022-11-02 10:18
Der letzte Stand, mit diesen 310 Stellungen in MEA- Syntax bin ich jetzt schon recht zufrieden:

http://talkchess.com/forum3/viewtopic.php?p=937191#p937191

Vielleicht noch 23 schwere (damit's runde 333 sind, und das Verhältnis von sehr leicht, leicht und schwer zueinander stimmt), wenn dann die MEA- Punkte noch etwas verfeinert werden, sollte eine erste short TC- Suite fürs MEA- Tool fertig sein, so wie ich sie mir vorgestellt habe

Erste Testresultate werden noch etwas auf sich warten lassen, damit sie dann auch wirklich brauchbar sind und ich nicht mehr an der Suite selbst basteln muss davor und dafür.
- By Peter Martan Date 2022-11-05 10:15
Vorläufiges Ende:

http://talkchess.com/forum3/viewtopic.php?p=937334#p937334

888 Stellungen im MEA- Format, Beschreibung und erste Resultate siehe Posting vom Link oben, ein solcher (Link) zum Runterladen der Stellungen ist dort auch enthalten.
- By Peter Martan Date 2023-02-02 14:07 Edited 2023-02-02 14:49
Im Anschluss an

https://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?pid=161396#pid161396

Weil's ja ums MEA- Tool geht, wie man es am besten verwendet und um die zugehörige Syntax, ist's hier vielleicht sogar passender.

Um gleich mal zu Franks Beispiel der einzelnen STS- Stellung ein paar Gegenbeispiele zu bringen, an denen ich gerade arbeite um eine eigene Endspiel- Suite für MEA zu basteln. Back to the roots: single best move, damit kann man sich bei der Punktevergabe schon mal nur auf die "Schwierigkeit" der Stellungen in Hinblick auf die Hardware- TC beschränken, die ist sowieso das Um und Auf, der Faktor Zeit ist der einzige im Schach, nach dem man außer an ganzen und halben Partiepunkten Leistungen von Menschen und Maschinen beurteilen kann, Zeit für Züge und Zeit für ganze Partien (schon mal außer mir jemand auf die Idee gekommen, den Remistod im eng-eng-match durch Zusatzpunkte für die geringere Restzeit unter den beiden Gegnern auf der Uhr relativ zur TC der Partie zu ergänzen? Das ist es ja auch, was z.B. EloStatTS beim Stellungstest mit jeder einzelnen Stellung und jedem (alt und neu gespeicherten) Engine- Paar vergleicht. Bei allen Stellungen die von 2en gleichermaßen innert der TC gelöst werden, also allen sozusagen Remis in den Minimatches der einzelnen Stellungen, zieht das Programm noch die genauen Lösezeiten heran um das Minimatch zu entscheiden. Es gibt bei EloStatTS also keine Remis, Stellungen, die gar nicht gelöst werden, praktisch den 1:1- Paaren im game playing entsprechend, sind statistisch das größere Problem, eigentlich im eng-eng-match ja auch. Das ist aber was für einen anderen Thread )

Nachdem ich in kurzen Versuchen schon länger staune, wie viele Studien der Harold van der Heijden- Datenbank SF im Sekunden- (und schnelleren) Tempo löst, hier 100 daraus, die Nummerierung in der HHdb ist nicht synchron, weil doch ein paar als zusammenpassende Engine- Teststellungen nicht verwendbar sind, aber die eigene HHdb- Nr. ist auch gespeichert und das alles in MEA-Syntax gebracht:

Code:
2B5/5K2/3P1p1p/BbP2P1k/1P5P/r2n1N2/4n3/8 w - - bm d7; am Ba6; c0 "d7=25"; id "Zilberstein=D_(+0357.52f7h5)_13th UAPA internet ty#13, 1";
4K3/k7/8/4p3/8/3P2b1/4P3/8 w - - bm Kf7; am Kd7; c0 "Kd7=25"; id "Ulrichsen=J_(=0030.21e8a7)_13th UAPA internet ty#15, 2";
8/1PpkP3/1P1P4/2P5/2K5/3Bq3/r2b4/8 w - - bm b8=N+; am Bf5+; c0 "b8=N+=100"; id "Pasman=M_(=3340.51c4d7)_13th UAPA internet ty#14, 3";
8/4P3/p4q2/3k1b2/5P2/1K4P1/2B4P/8 w - - bm Be4+; am e8=Q; c0 "Be4+=25"; id "Becker=R_(=3040.41b3d5)_13th UAPA internet ty#13, 4";
6R1/K3B1p1/8/2p3P1/6k1/1p6/P7/r7 w - - bm Bf6; am Rxg7; c0 "Bf6=25"; id "Pasman=M_(=0410.23a7g4)_13th UAPA internet ty#04, 5";
1n1b4/8/2p4K/2P4P/1P6/8/4P1P1/5k2 w - - bm g4; am Kg6; c0 "Kg6=50"; id "Gelly=M_(+0033.51h6f1)_13th UAPA internet ty#12, 6";
8/8/5r2/5n2/8/k5pQ/p7/6K1 w - - bm Qf1; c0 "Qf1=25"; id "Kiryakov=P Kalashnikov=V_(=1303.02g1a3)_13th UAPA internet ty#12, 7";
5K2/8/7P/5k2/8/6q1/8/1R6 w - - bm h7; c0 "h7=25"; id "Kuzmichev=V_(=3100.10f8f5) TT_13th UAPA internet ty#08, 8";
5k1K/2R3pp/6P1/5q2/8/8/8/8 w - - bm Rf7+; am gxh7; c0 "Rf7+=25"; id "Kuzmichev=V_(=3100.12h8f8) TT_13th UAPA internet ty#09, 9";
6qB/6P1/8/1B6/Q3p3/n7/p1b1K3/k7 w - - bm Bc4; c0 "Bc4=50"; id "Krug=P_(+4053.12e2a1)_Polish Chess Federation ty#2193, 10";
5N2/8/1P6/5P2/1b6/8/3k4/K2n4 w - - bm b7; am Nd7; c0 "b7=25"; id "Arestov=P Keith=D_(+0034.20a1d2)_13th UAPA internet ty#11, 11";
6k1/2n1P2r/3q1P2/B7/8/p5p1/6Q1/6K1 w - - bm Qa8+; c0 "Qa8+=25"; id "Gurgenidze=D Minski=M_(=4313.22g1g8)_Polish Chess Federation ty#2187, 12";
1K6/8/8/n4P2/8/2N3B1/6b1/6k1 w - - bm f6; c0 "f6=25"; id "Timman=J_(+0044.10b8g1)_13th UAPA internet ty#10, 13";
1n6/5k2/6N1/8/B2r4/5K2/2P3PP/8 w - - bm Ne5+; c0 "Ne5+=25"; id "Neishtadt=V_(=0314.30f3f7)_13th UAPA internet ty#11, 14";
q7/2n3kP/8/8/8/Q7/B7/n5K1 w - - bm Qe7+; am Qxa8; c0 "Qe7+=25"; id "Krug=P Arestov=P_(+4016.10g1g7)_13th UAPA internet ty#09, 15";
3rkr2/P6p/pK2p2q/2P5/3p3N/8/8/3BQ3 w - - bm Ng6; c0 "Ng6=100"; id "Krug=P_(+4611.24b6e8)_Polish Chess Federation ty#2181, 16";
q1r2r1Q/3B4/7R/8/4p3/8/b7/2k1K3 w - - bm Qa1+; c0 "Qa1+=25"; id "Avni=A_(=4740.01e1c1)_Polish Chess Federation ty#2175, 17";
8/P4P1k/7p/7P/4n2N/1P6/KP5p/7r w - - bm f8=R; am f8=Q; c0 "f8=R=100"; id "Jasik=A_(+0304.52a2h7) TT_13th UAPA internet ty#06, 18";
3K2kN/8/5P1q/p2P4/P3R3/7P/6P1/b7 w - - bm f7+; c0 "f7+=50"; id "Jasik=A_(+3131.51d8g8)_13th UAPA internet ty#06, 19";
8/p3Prk1/K6p/8/8/8/8/8 w - - bm e8=Q; c0 "e8=Q=100"; id "Krug=P_(+0300.12a6g7) TT_13th UAPA internet ty#07, 20";
3R4/b7/k7/2P5/Np1p4/r7/B7/K7 w - - bm c6; c0 "c6=25"; id "Jasik=A_(+0441.12a1a6)_13th UAPA internet ty#07, 21";
4R3/8/2b5/8/4R1N1/4P3/p1P3P1/nn2k1K1 w - - bm Ra8; c0 "Ra8=25"; id "Jasik=A_(=0237.31g1e1)_13th UAPA internet ty#09, 22";
4r3/K4Q2/2b2PPP/2B5/8/8/8/3nkq2 w - - bm Bb4+; c0 "Bb4+=25"; id "Jasik=A_(=4343.30a7e1)_13th UAPA internet ty#10, 23";
8/7k/Q1PK3p/8/8/7r/8/1r6 w - - bm c7; am Qa7+; c0 "c7=25"; id "Krug=P Arestov=P_(+1600.11d6h7) TT_13th UAPA internet ty#04, 24";
8/2p2pP1/p7/1k6/8/4r3/2P4K/8 w - - bm c4+; am g8=Q; c0 "c4+=25"; id "Arestov=P_(+0300.23h2b5) TT_13th UAPA internet ty#05, 25";
K7/P2k4/8/8/8/8/8/n6r w - - bm Kb7; am Kb8; c0 "Kb7=25"; id "Kalashnikov=V_(=0303.10a8d7)_13th UAPA internet ty#07, 26";
4qn1k/8/1K2PP2/5P2/4P2N/3p4/2R5/8 w - - bm Ng6+; am Rd2; c0 "Ng6+=25"; id "Kalashnikov=V_(=3104.41b6h8)_13th UAPA internet ty#08, 27";
8/8/8/P7/8/7n/B1K1kP2/6r1 w - - bm a6; am Bc4+; c0 "a6=25"; id "Arestov=P Garcia=M Tarasiuk=V_(=0313.20c2e2)_13th UAPA internet ty#06, 28";
2r1N2k/6pb/3P2P1/4P1K1/8/8/8/8 w - - bm d7; am Nc7; c0 "d7=25"; id "Kalashnikov=V_(+0331.31g5h8)_13th UAPA internet ty#04, 29";
4r3/7P/R5K1/3k3P/8/3n4/8/8 w - - bm Kg7; c0 "Kg7=25"; id "Krug=P_(+0403.20g6d5)_13th UAPA internet ty#05, 30";
8/7q/1P6/4B3/7k/8/p7/R3K3 w Q - bm O-O-O; am Rxa2; c0 "0-0-0=25"; id "Gonzalez=L Arestov=P_(=3110.11e1h4) TT_F. Benko-110 MT Ukraine Team champ#16, 31";
8/pK2p3/P1p1PP2/8/2k5/2r5/3q4/7R w - - bm fxe7; c0 "fxe7=25"; id "Hlinka=M Kekely=L_(=3400.33b7c4) TT_13th UAPA internet ty#01, 32";
2B5/8/P7/2n2p2/3n1p1p/7P/4pK2/2N4k w - - bm Bb7+; am Nxe2; c0 "Bb7+=25"; id "Kekely=L Hlinka=M_(+0017.24f2h1)_13th UAPA internet ty#01, 33";
3N1r2/3R2bk/p1r3p1/6Q1/P3p1p1/3p4/1q4PP/5R1K w - - bm Nf7; c0 "Nf7=25"; id "Krug=P_(=4831.35h1h7)_13th UAPA internet ty#01, 34";
7K/r7/5P2/4PRPp/7p/8/4p3/2k5 w - - bm f7; am g6; c0 "f7=25"; id "Hlinka=M Kekely=L_(=0400.33h8c1) TT_13th UAPA internet ty#02, 35";
7r/B7/8/n6P/8/4R3/7k/5K2 w - - bm Rc3; am Rf3; c0 "Rc3=25"; id "Hlinka=M Kekely=L_(+0413.10f1h2)_13th UAPA internet ty#02, 36";
8/3rn1k1/PPpp2PN/r7/p1p3P1/3R1K2/1P5P/8 w - - bm b7; c0 "b7=25"; id "Krug=P_(=0704.64f3g7)_13th UAPA internet ty#02, 37";
4q3/8/1P6/5R2/6BR/1K6/5r1p/7k w - - bm Bf3+; am Rxf2; c0 "Bf3+=25"; id "Krug=P Garcia=M_(=3510.11b3h1) TT_13th UAPA internet ty#03, 38";
4bN1k/6p1/1R6/6PP/1pp1Bq2/1Pp3P1/3p1r2/1K5R w - - bm Ng6+; am gxf4; c0 "Ng6+=25"; id "Krug=P Garcia=M_(+3541.45b1h8)_13th UAPA internet ty#03, 39";
5k1q/8/2p1P1P1/8/4pb2/8/Q2pK3/2N5 w - - bm e7+; am Qa8+; c0 "e7+=25"; id "Krug=P_(=4031.23e2f8)_13th UAPA internet ty#03, 40";
8/5PP1/8/3P3r/1P6/5K2/k5p1/5br1 w - - bm g8=Q; am Kf4; c0 "g8=Q=100"; id "Hlinka=M Kekely=L_(=0630.41f3a2)_13th UAPA internet ty#05, 41";
r3k3/8/1K1P1Rpn/5P2/2P5/4p3/8/8 w q - bm Rxg6; am fxg6; c0 "Rxg6=50"; id "Pasman=M_(=0403.32b6e8) TT_13th UAPA internet ty#10, 42";
r3k2n/3N4/4K1P1/8/8/2p2P2/8/8 w q - bm g7; am Nf6+; c0 "g7=25"; id "Samilo=V_(=0304.21e6e8) TT_F. Benko-110 MT 12th UAPA internet ty#1, 43";
8/1N2n3/8/4n3/2p1r3/4kp2/8/R3K2R w KQ - bm Nc5; am Nd6; c0 "Nc5=25"; id "Garcia=M_(=0507.02e1e3) TT_F. Benko-110 MT 12th UAPA internet ty#1, 44";
8/8/8/7p/7P/1pppk1p1/8/R3K2R w KQ - bm O-O; am O-O-O; c0 "0-0=25"; id "Krug=P Garcia=M_(=0200.15e1e3) TT_F. Benko-110 MT 12th UAPA internet ty#1, 45";
6N1/8/2Kp2R1/1P6/pp6/P2pp2k/4n3/8 w - - bm b6; am Rxd6; c0 "b6=50"; id "Pallier=A_(=0104.25c6h3)_F. Benko-110 MT 12th UAPA internet ty#3, 46";
7K/k6P/PrP5/7r/p4R2/7p/7P/8 w - - bm c7; c0 "c7=25"; id "Krug=P_(+0700.42h8a7)_13th UAPA internet ty#2169, 47";
r3k1K1/p1R3pp/8/8/4P3/8/8/8 w - - bm Rf7; c0 "Rf7=25"; id "Tarasiuk=V_(+0400.13g8e8) TT_F. Benko-110 MT 12th UAPA internet ty#1, 48";
4N3/8/1b4P1/p2P1n1k/5n2/7p/1P6/R3K3 w Q - bm g7; c0 "g7=25"; id "Samilo=V_(=0137.32e1h5) TT_F. Benko-110 MT 12th UAPA internet ty#1, 49";
3R3B/1r6/3R4/3N3K/4p3/4P3/3pPkN1/3b2q1 w - - bm Rf8+; am Rf6+; c0 "Rf8+=25"; id "Gasparyan=A_(+3542.22h5f2)_F. Benko-110 MT 12th UAPA internet ty#3, 50";
7k/3n2R1/1n2K3/p2p4/B7/8/8/8 w - - bm Rg5; am Rg4; c0 "Rg5=25"; id "Rewitz=P_(+0116.02e6h8)_F. Benko-110 MT Ukraine champ#29, 51";
6r1/6k1/4p3/2K4R/7R/6p1/8/5r2 w - - bm Rg4+; c0 "Rg4+=25"; id "Krug=P_(=0800.02c5g7)_Polish Chess Federation ty#2162, 52";
4K3/6p1/5k2/7b/5pR1/N7/P7/1B6 w - - bm Rg6+; am Bg6; c0 "Rg6+=25"; id "Babiarz=A_(+0141.12e8f6)_Polish Chess Federation ty#2163, 53";
8/8/8/kPRP4/P7/2K2p2/p1P2n2/8 w - - bm Kb2; c0 "Kb2=25"; id "Kekely=L Hlinka=M_(+0103.42c3a5)_F. Benko-110 MT 12th UAPA internet ty#2, 54";
R6K/8/3pN1kp/7p/3Pr2P/2p5/2P5/8 w - - bm Rg8+; am d5; c0 "Rg8+=25"; id "Hlinka=M Kekely=L_(+0401.34h8g6)_F. Benko-110 MT 12th UAPA internet ty#2, 55";
r4k2/2P5/2b5/5Kp1/2B1p3/5p2/2R4P/8 w - - bm Be6; am Kf6; c0 "Be6=25"; id "Pasman=M_(+0440.23f5f8)_F. Benko-110 MT 12th UAPA internet ty#2, 56";
6R1/6Pp/2b1k3/6K1/7P/b6r/8/8 w - - bm Re8+; am Rc8; c0 "Re8+=25"; id "Arestov=P Kiryakov=P_(=0460.21g5e6)_F. Benko-110 MT 12th UAPA internet ty#4, 57";
2Bq2k1/8/1P6/1R6/8/6r1/2P5/4K2R w - - bm Be6+; c0 "Be6+=25"; id "Hlinka=M Garcia=M_(=3510.20e1g8)_F. Benko-110 MT 12th UAPA internet ty#2, 58";
8/8/4k2P/2n5/8/1pP5/p7/R3K2B w Q - bm Bd5+; am Rd1; c0 "Bd5+=25"; id "Afek=Y_(+0113.22e1e6) TT_F. Benko-110 MT 12th UAPA internet ty#1, 59";
8/8/1B6/8/q1P5/N2PpP2/3p1PK1/kN6 w - - bm Bd4+; am Bxe3; c0 "Bd4+=25"; id "Costeff=G_(=3012.42g2a1)_Polish Chess Federation ty#2157, 60";
4k2r/4p1pb/6n1/3P1B1K/3pPpP1/8/6P1/2R5 w k - bm Be6; am Rc8+; c0 "Be6=50"; id "Pasman=M_(+0443.44h5e8) TT_F. Benko-110 MT 12th UAPA internet ty#1, 61";
4k2r/PRp2ppp/8/3Bp1q1/1b4n1/2r5/4Q1PP/4K2R w Kk - bm O-O; am a8=Q+; c0 "0-0=25"; id "Krug=P Garcia=M_(+4843.35e1e8) TT_F. Benko-110 MT 12th UAPA internet ty#1, 62";
5r2/p2p3P/P1Np3P/3P2p1/Nr1p2P1/3P2PK/1B6/6k1 w - - bm Bxd4+; am Nxb4; c0 "Bxd4+=25"; id "Garcia=M_(+0612.75h3g1)_F. Benko-110 MT 12th UAPA internet ty#2, 63";
r3k3/1p1p4/3P2P1/8/3p4/p6p/7P/4K2R w Kq - bm O-O; am g7; c0 "0-0=25"; id "Tarasiuk=V_(=0400.35e1e8) TT_F. Benko-110 MT 12th UAPA internet ty#0, 64";
b3r3/6K1/3P4/8/8/k7/4P3/3B4 w - - bm e4; am Kf7; c0 "e4=25"; id "Arestov=P_(=0340.20g7a3)_F. Benko-110 MT 12th UAPA internet ty#2, 65";
4k2r/2p2p2/n1P2P1P/2B1p1Kp/1n2PN1P/P3P2P/8/8 w k - bm Ng6; am axb4; c0 "Ng6=25"; id "Pasman=M_(=0317.84g5e8) TT_F. Benko-110 MT 12th UAPA internet ty#0, 66";
8/1p4b1/8/pP6/4k3/Ppp1P3/1P5P/R3K3 w Q - bm O-O-O; c0 "0-0-0=25"; id "Pasman=M_(+0130.54e1e4) TT_F. Benko-110 MT 12th UAPA internet ty#1, 67";
B4k2/8/2P3P1/8/6K1/2q2P2/8/1R6 w - - bm Rb8+; am c7; c0 "Rb8+=25"; id "Arestov=P_(+3110.30g4f8)_F. Benko-110 MT 12th UAPA internet ty#2, 68";
1k6/p1p5/2P4b/3P4/r4P2/6P1/p2RBK2/8 w - - bm Rb2+; c0 "Rb2+=25"; id "Aydinoglu=C_(+0440.43f2b8)_F. Benko-110 MT 12th UAPA internet ty#2, 69";
1r4NQ/3bb3/K2pk1BP/4r3/4p3/N7/8/8 w - - bm Bf7+; c0 "Bf7+=25"; id "Krug=P_(+1672.12a6e6)_Polish Chess Federation ty#2150, 70";
1k6/n3P3/1KP5/2P1N2q/5p1B/8/8/8 w - - bm c7+; am Nd7+; c0 "c7+=100"; id "Pasman=M_(=3014.31b6b8)_F. Benko-110 MT 12th UAPA internet ty#2, 71";
4K3/6p1/B5Pk/B6p/7P/7r/2Np1P2/3n4 w - - bm Be2; am Bxd2+; c0 "Be2=100"; id "Avni=A_(+0324.33e8h6)_F. Benko-110 MT 12th UAPA internet ty#2, 72";
6N1/5pp1/8/1Pk5/K1p5/8/6P1/6n1 w - - bm b6; am Ne7; c0 "b6=25"; id "Avni=A_(=0004.23a4c5)_F. Benko-110 MT 12th UAPA internet ty#2, 73";
r6b/p7/P2R4/2R5/pBQ2pp1/2p2p1k/PrPp1p2/7K w - - bm Rh5+; am Qf1+; c0 "Rh5+=50"; id "Timman=J_(+1840.38h1h3)_F. Benko-110 MT 12th UAPA internet ty#2, 74";
6bK/5kPP/4n3/3n4/8/1R6/1Q6/7q w - - bm Rf3+; am Rb7+; c0 "Rf3+=25"; id "Aliev=I_(+4136.20h8f7)_F. Benko-110 MT 12th UAPA internet ty#2, 75";
1k6/1p2p2p/1P2PnpP/1NNq4/2R3PK/p5P1/1p2p3/5R2 w - - bm Nd7+; am Rxf6; c0 "Nd7+=25"; id "Timman=J_(=3205.57h4b8)_F. Benko-110 MT 12th UAPA internet ty#2, 76";
5B2/n7/3Pn3/5p2/8/4k1K1/3R4/2r5 w - - bm Bh6+; c0 "Bh6+=25"; id "Aliev=I_(=0416.11g3e3)_F. Benko-110 MT 12th UAPA internet ty#2, 77";
5qnk/7N/8/6K1/8/2n5/4r3/2R4R w - - bm Nf6+; c0 "Nf6+=25"; id "Krug=P_(+3507.00g5h8)_Polish Chess Federation ty#2138, 78";
2r5/8/N1p5/K4PR1/p5p1/p6k/8/8 w - - bm Rh5+; am Nb4; c0 "Rh5+=25"; id "Gurgenidze=D Tarasiuk=V_(=0401.14a5h3)_F. Benko-110 MT 12th UAPA internet ty#2, 79";
3qb1kr/1B4p1/4RP2/4P3/3PKN2/8/5P2/8 w - - bm Bd5; c0 "Bd5=25"; id "Krug=P_(=3441.41e4g8)_Polish Chess Federation ty#2132, 80";
8/8/6p1/6pp/2R5/2p2q1k/Q1rP1P1N/2N3K1 w - - bm Rh4+; am Rxc3; c0 "Rh4+=25"; id "Nosek=S_(=4402.24g1h3)_F. Benko-110 MT 12th UAPA internet ty#2, 81";
1nqrrk2/1p1bpB2/pBp1p3/2P1P3/7P/4p3/4P3/R3K2R w Q - bm Rg1; am O-O-O; c0 "Rg1=50"; id "Gatti=D, !._(+3853.46e1f8) TT_F. Benko-110 MT 12th UAPA internet ty#1, 82";
2b2Nk1/8/R2P3p/5p2/2p4p/6r1/4R1PK/2r5 w - - bm d7; am Ra7; c0 "d7=25"; id "Gyarmati=P_(+0831.24h2g8)_F. Benko-110 MT 12th UAPA internet ty#1, 83";
8/4NBq1/6Pk/5P2/5K2/8/7P/8 w - - bm f6; am Ng8+; c0 "Ng8+=25"; id "Avni=A_(+3011.30f4h6)_Polish Chess Federation ty#2120, 84";
3q2N1/1B6/2P3p1/3p1kP1/3P4/4P2p/R3P2P/2b1K3 w - - bm Nh6+; c0 "Nh6+=25"; id "Avni=A Minski=M_(+3141.63e1f5)_Zadachy i Etyudy#6233, 85";
3q3k/3n1P2/8/2np2PK/8/p7/6Q1/2B5 w - - bm Bb2+; c0 "Bb2+=25"; id "Krug=P_(+4016.22h5h8)_Polish Chess Federation ty#2114, 86";
k7/1p1b2RB/3P4/N7/4p3/6Bq/2K5/8 w - - bm Bxe4; c0 "Bxe4=25"; id "Yarmonov=I Zhukov=A_(+3151.12c2a8)_F. Benko-110 MT 12th UAPA internet ty#1, 87";
1n6/8/2p3qp/5p2/5Pk1/6P1/1QP3K1/8 w - - bm Qe5; c0 "Qe5=25"; id "Emelin=A_(+4003.33g2g4)_Chess Star#2556, 88";
7B/2pp3b/1Ppr4/p3p3/4k3/5N1P/6K1/8 w - - bm Ng5+; am bxc7; c0 "Ng5+=25"; id "Didukh=S_(+0341.25g2e4)_Chess Star#2555, 89";
8/8/8/4K3/6BR/3pp3/8/5k2 w - - bm Bf5; am Ke4; c0 "Ke4=25"; id "Kuzmichev=V_(+0110.02e5f1)_Polish Chess Federation ty#2108, 90";
8/7p/2pP3P/4pk1K/3n3P/2nR4/6P1/r4B2 w - - bm d7; am g4+; c0 "g4+=25"; id "Formela=M_(=0416.43h5f5)_ARVES website, 91";
8/4K3/3p2pp/1Nk3p1/R1p5/7p/p7/8 w - - bm Nxd6; am Rxa2; c0 "Nxd6=25"; id "Avedisian=A_(=0101.07e7c5)_F. Benko-110 MT 12th UAPA internet ty#2, 92";
8/3p2r1/Qp6/2q5/8/R7/R1b5/4k2K w - - bm Ra1+; c0 "Ra1+=25"; id "Arestov=P Zhukov=A_(=4530.02h1e1)_F. Benko-110 MT 12th UAPA internet ty#1, 93";
5r2/8/6K1/8/8/8/1k4P1/8 w - - bm g4; c0 "g4=25"; id "Kuzmichev=V_(=0300.10g6b2)_Polish Chess Federation ty#2102, 94";
8/7R/1p2R3/2r3n1/6pK/1P6/1P6/6k1 w - - bm b4; c0 "b4=25"; id "Gurgenidze=D_(+0503.22h4g1)_Chess Star#2550, 95";
6n1/7n/3k4/8/8/RN2r3/8/5K2 w - - bm Nd2; am Nd4; c0 "Nd2=50"; id "Gurgenidze=D_(=0407.00f1d6) TW_Chess Star#2551a, 96";
5nn1/8/3k4/8/8/RN2r3/8/5K2 w - - bm Nd4; am Nd2; c0 "Nd4=50"; id "Gurgenidze=D_(=0407.00f1d6) TW_Chess Star#2551b, 97";
8/1R2P2K/1N2qk2/8/p4P2/p7/P7/8 w - - bm Nd5+; am Nd7+; c0 "Nd5+=25"; id "Kekely=L Hlinka=M_(+3101.32h7f6)_Tehtavaniekat#4944, 98";
6b1/4n3/1P6/5B2/p2r4/k7/8/K6R w - - bm b7; c0 "b7=25"; id "Rewitz=P_(=0443.11a1a3)_F. Benko-110 MT 12th UAPA internet ty#1, 99";
8/k1p5/p1p1qn2/Q6p/3Pp1pp/2P5/1B5P/1K2nB2 w - - bm Bxa6; c0 "Bxa6=50"; id "Ilincic=B_(+4026.37b1a7)_Chess Star#2549, 100";


Dazu die ersten Testruns, in 20er- Schritten, um eventuelle Syntax- Fehler, an denen sich das Tool dann aufhängt, leichter zu finden als in größeren Blöcken.

    EPD  : test.epd
    Time : 100 ms
                                                Max   Total   Time   Hash         
    Engine           Score   Found  Pos   ELO  Score   Rate    ms     Mb  Cpu     
1  SF15              2475     81   100  3375   3300  75.0%    100     8    8
2  SF15              2100     66    80  3501   2700  77.8%    100     8    8
3  SF15              1675     52    60  3771   2000  83.8%    100     8    8
4  SF15               600     19    20  4320    625  96.0%    100     8    8
5  SF15               450     18    20  4050    500  90.0%    100     8    8

                                    Created with MEA
                                          by
                                       Ferdinand
                                         Mosca


Und jetzt nur noch kurz, damit's fürs erste Posting hier nicht gleich wieder unlesbar wird, zur Punktevergabe, insbesondere an Frank und Andere gerichtet wegen der Frage, wie kann man die objektivieren, um nicht nur von der numerischer Höhe (viel besser sowieso von ihrer Relation zueinander zwischen den Kandidatenzügen) einzelner Engines und oder der persönlichen Einschätzung abhängig zu sein.
Dass die Zeit, die die Engines zum Lösen dann als definitive TC bekommen, das entscheidende Kriterium der Auswahl der Stellungen ist, soviel sei gleich noch einmal erwähnt. Das bei einer ersten Sammlung besser abschätzen zu können, vorausgesetzt, es sind so wie hier lauter im Bereich einzelner Sekunden lösbare Stellungen braucht man bei so kurzen ohnehin nur 3 Runs zum Screening der Verhältnisse Zeit zu Zahl an Lösungen, hier war's einer mit 500mscec, einer mit 300 und einer mit 100.
Diejenigen Stellungen, die bei 500msec noch nicht gelöst waren, haben 100 Punkte bekommen, die zwischen 300 und 500 haben 75, die zwischen 300 und 100msec = 50, die bei 100 gelösten = 25. So hat sich das bei diesem ersten Probeballon recht gut verteilt, der jetzt dann erst in die Feineinstellung kommt, wenn man sieht, wieviele Stellungen es insgesamt werden sollen, damit die Ergebnisse mit verschiedenen Engines Diskrimination (Spreizung), aber auch Reproduzierbarkeit und geringe Schwankungsbreite haben, weil dann erst weiß man, wie die Relationen an Punkten zum Schluss wirklich definitiv ausschauen sollen.
Hier erst mal wieder Pause.
- By Peter Martan Date 2023-02-03 13:43 Edited 2023-02-03 14:09
Wie auch schon im letzten Posting übers MEA- Tool erwähnt, würde mich ein einfach zu konstruierendes weiteres Tool sehr interessieren, das bei Remispartien zwischen Engines in einem Match die Restzeit der einen und der anderen Engine auf der Uhr beim Partieende des Remis aufrechnen könnte und in Relation zur TC- Vorgabe setzen.

Dazu neuerlich der Vergleich mit dem, was EloStatTS von Frank Schubert zur Auswertung von Stellungstest- Suiten macht. Das bewertet die Minimatches (in der Spalte unter Matches gelistet) die jede Engine gegen jede andere im Feld anhand jeder einzelnen Stellung liefert, zusätzlich zeitlich anhand der genauen Lösungszeiten der beiden Engines bei der einen Stellung.

Alle diese Minimatches, die von je 2 miteinander verglichenen Engines sozusagen Remis ausgehen, weil beide Engines des Vergleichspaares diese eine Stellung in der vorgegebenen Zeit lösen, alle diese Remis- Minimatches bewertet EloStatTS dann anhand der Zeitunterschiede der einzelnen Lösungszeiten zusätzlich.
Praktisch immer, selbst wenn man "nur" centi- seconds (wie sie jetzt z.B. Fritz notiert pro Stellung) und nicht gleich milliseconds  bei der einen Stellung und den beiden Engines des  jeweiligen Minimatches vergleicht, selbst dann kommen exakt gleiche Zeiten nicht soo häufig vor, es gewinnt auf diese Art also fast immer die eine oder die andere Engine diese zunächst Remis- Minimatches. Das Programm rechnet diese Zeitunterschiede zwischen je zwei miteinander "gematchten" Engines bei jedem neuen Run mit jeder schon gespeicherten Engine  in die drei Indizes um, die in der Liste ihre gleichnamigen Spalten haben, der dritte davon, der RIndex als letzter, das wäre der, den ich meine, am Ende jeder Liste wird er immer so kurz erläutert:

Zitat:
RIndex: Score according to solution time ranking for each position


Für genauere Erklärung liest man sich am besten das .pdf durch, dass Frank Schubert seinerzeit dazu veröffentlicht hat.

https://glarean-magazin.ch/wp-content/uploads/2017/03/L%C3%B6sung-eines-alten-Problems-Frank-Schubert-1.pdf

Bei mehreren runs einer Engine gibt's jedesmal neue Minimatches gegen alle Engines, die schon gespeichert sind.

Wäre es wirklich völlig von der Hand zu weisen, solche direkten Zeitvergleiche auch bei den Remis von Eng-Eng-Matches zu ziehen?

Natürlich auch relativ zur Gesamtzeit, die für die Partie oder pro Zug vorgegeben war, und nur so wie bei EloStatTS allein für die jeweils 2 Engines und die jeweils eine Remispartie.
Beispiel: Engine A braucht von einer Gesamtzeitvorgabe von 1 Minute/Partie bis zum Remis 30 Sekunden, Engine B braucht für dasselbe Remis 35 Sekunden, Engine A bekommt zusätzlich zu dem halben Punkt fürs Remis eine noch näher zu bestimmte Menge an Zehntel- Punkten, Hunderstelpunkten, was auch immer man da für ein Maß für angemessen hält, je nach Remishäufigkeit und TC des Matches und Breite des Teilnehmerfeldes, um die Remis zwischen je 2 Engines weiter punkemäßig zu unterscheiden.

Python- bzw. Batch- File- Kundige vor!

Sowas als kleines Script, das .pgns dahingehend filtert und in Verhältniszahlen der Restzeiten auf den Uhren der Gegner umrechnet, könnte doch wirklich nicht sehr aufwändig sein (meint der kleine User solcher Scripts, der selber sowas noch nie geschrieben hat).
Aber jedenfalls mal nur so als Idee betrachtet?

Natürlich werden die Ergebnisse, die man so schon nach den Matches hat, dadurch wieder auf eine ganz andere Art ganz andere Ergebnisse für sich allein stehend, aber was die Zusatzinfo betrifft, müsste man mal schauen, inwieweit das so Errechnete dann ohnehin auch ganz gut mit einer entsprechend größeren Zahl an Partien genau in der Art der ersten davon zusätzlich mit Zeitmessungen beurteilten Partien korrellierten. Auf die Art könnte man in einfachen Versuchen schnell herausfinden, für welche Paarung auf welcher Hardware- TC man sich eventuell für ähnliche statisitsche Relevanz wie viele Partien ersparen könnte um dennoch zu sehr ähnlichen Ergebnissen zu kommen.

Just my two cents mal wieder.
- By Lothar Jung Date 2023-06-01 20:50 Edited 2023-06-01 20:52
Chess-Artist ist ein Python Programm, das Partien in der pgn-Datei analysieren, die epd-Datei kommentieren, die Engine auf Schachrätsel oder Probleme testen und Schachrätsel generieren kann.

https://github.com/fsmosca/chess-artist
- By Lothar Jung Date 2023-07-06 14:08 Upvotes 1
Schachcomputerprogramme werden normalerweise mit einer Reihe von spezialisierten Tools und Methoden getestet, um ihre Stärke und Genauigkeit zu bewerten. Hier sind einige Beispiele:

1. **Spieltests**: Schachprogramme spielen oft Tausende von Spielen gegeneinander unter kontrollierten Bedingungen, um ihre relative Stärke zu bewerten. Dafür werden häufig dedizierte Testumgebungen wie der "Cute Chess" verwendet.

2. **Testsuites**: Testsuites wie der "Strategic Test Suite" und der "Tactical Test Suite" enthalten Sammlungen von Schachpositionen, die ein Schachprogramm lösen muss. Diese können helfen, spezifische Stärken und Schwächen in der Programmlogik aufzudecken.

3. **Benutzerdefinierte Schachengines**: Programme wie "Fritz", "Stockfish" und "Leela Chess Zero (LCZero)" werden häufig als Benchmark-Tools für Schachsoftware verwendet. Durch den Vergleich der Ergebnisse, die diese Engines in verschiedenen Positionen erzielen, können Entwickler ihre eigenen Programme verbessern.

4. **Ratingsysteme**: Es gibt verschiedene Ratingsysteme wie das Elo-System, das Glicko-System oder das TrueSkill-System, die dazu dienen, die Leistung eines Schachprogramms in einer Rangliste zu bewerten. Die Ergebnisse dieser Bewertungen können dazu verwendet werden, um die relative Stärke eines Schachprogramms zu bestimmen.

5. **Debugging-Tools**: Um die interne Logik und Entscheidungsfindung eines Schachprogramms zu überprüfen, können Entwickler spezielle Debugging-Tools verwenden. Diese Tools ermöglichen es ihnen, den Code Schritt für Schritt auszuführen und genau zu sehen, wie das Programm Entscheidungen trifft.

Diese Tools und Methoden ermöglichen es den Entwicklern, ihre Schachprogramme zu testen, zu optimieren und zu verbessern, um sie gegen menschliche Spieler und andere Schachprogramme konkurrenzfähiger zu machen.
- By Lothar Jung Date 2023-08-17 10:07
Hier ein allgemeiner Benchmark mit Ergebnissen der CPUs:

https://openbenchmarking.org/test/pts/stockfish&eval=ce63817a02e99e8cf94a5b04177912d6fb69958b
- By Lothar Jung Date 2023-08-22 10:46
Hier eine spezifische Veröffentlichung zu den Chess Puzzles von Penrose:

https://www.researchgate.net/publication/332896798_Solving_a_hypothetical_chess_problem_a_comparative_analysis_of_computational_methods_and_human_reasoning
Up Topic Hauptforen / Schachprogrammierung / Engine Test Tools
1 2 Previous Next  

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill