Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Patricia 2 (die erste EAS-Engine) erschienen
- - By Stefan Pohl Date 2024-04-04 13:02 Edited 2024-04-04 14:00 Upvotes 3
Patricia 2.0 wurde released!
Die erste Engine der Welt, bei deren Entwicklung der Autor mein EAS-Tool konsequent genutzt hat, um die Engine so aggressiv spielend wie nur möglich zu machen. Und soweit man das bisher sagen kann, mit Erfolg. Allerdings ist Patricia 2 noch eine sehr frühe Version (die Entwicklung läuft ja erst (circa) seit dem Jahreswechsel, also vielleicht 3 Monate). Die Spielstärke ist aber immerhin schon "superhuman" - in meinen Tests liegt Patricia 2 auf Augenhöhe mit Rybka 4.1. Leider gibt es aber noch kein Multithreading, also nur singlecore-Betrieb bislang. Und auch noch keine Möglichkeit, die Spielstärke abzusenken, damit man als Mensch auch eine Chance hat. Beides will der Autor aber angehen.

Ich habe auf meiner Website eine Unterseite für Particia eingerichtet, weil ich hoffe, daß dies der Beginn eines Paradigmenwechsels im Computerschach sein könnte: Seit den 1950er Jahren ging es im Computerschach ja immer nur darum, mehr Elo zu erreichen, also die Spielstärke zu erhöhen. Da die Engines aber mittlerweile bei 3700+ Elo angekommen sind, muß man diese Zielsetzung meiner Meinung nach langsam hinterfragen... Und dank meines EAS-Tool gibt es ja seit kurzem die Möglichkeit, die Aggressivität einer Engines (halbwegs) verläßlich zu messen und auch zu quantifizieren (wichtig!). Das eröffnet nun wiederum die Möglichkeit, die Zielsetzung in der Engineentwicklung und auch beim Netzlernen weg von mehr Elo und hin zu mehr Spektakel zu verändern. Oder beide Parameter als Ziel zu setzen (Elo und Aggressivität).

https://www.sp-cc.de/patricia_eas_engine.htm

Download von Patricia 2.0 (v3 = avx2-binary):
https://github.com/Adam-Kulju/Patricia/releases/tag/2.0

Android:
https://sourceforge.net/projects/chess-engines-for-android-oex/files/Patricia_2.0.apk/download

Hier eine Beispielpartie, aus meinem gerade erst gestartetem Testrun von Patricia 2 gegen 10 Engines, die so im Bereich Rybka 4.1 liegen.
Nach 500 Partien aus meinem Test, liegt Patricia in der EAS-Auswertung bei einer Opferquote von 43% (also 43% aller gewonnenen Partien hat Patricia mit einem Opfer gewonnen!). Das ist unfaßbar viel: Stockfish (in meinen UHO-Ranglisten-Tests) kommt auf eine Opferquote von 25% (was auch schon sehr, sehr gut ist! Die "Durchschnittsengine" kommt auf um die 15% Opferquote). Und selbst die alten Recken, die die EAS-Auswertung meiner alten SPCC-Rangliste anführen, Velvet 4.1 und Komodo 14.1 aggressive kommen "nur" auf eine Opferquote von 35%-38%. 43% Opferquote sind also der schiere Wahnsinn. Ich bin schon mega-gespannt, wie es am Ende des Testruns (10000 Partien lasse ich spielen) aussieht. Denn der EAS-Score ist nicht so stabil wie Elozahlen, aufgrund des exponentiellen Punktesystems, daher kann sich da noch einiges ändern... Aber daß Patricia 2 mindestens so spielt wie der SuperConny auf Drogen, das ist jetzt schon sicher.

Patricia 2 schlachtet hier Rybka regelrecht ab. Ich nutze auf diesem Spielstärke-Niveau natürlich keine UHO-Eröffnungen, sondern ausbalancierte. Gerechnet wurde ab Zug 9 von Weiß. 3min+1sec, singlethread

Event:
Ort:
Datum:

Weiss:
Schwarz:

Ergebnis
Board
Parent - - By Stefan Pohl Date 2024-04-04 13:33 Upvotes 1
Details aus der Patricia 2 ReadMe, für die, die es interessiert, zum Thema, was der Autor getan hat, um Patricia 2 aggressiver zu machen:

- Default contempt of 80 centipawns for draws deemed avoidable
- Neural network retrained on "aggressive" positions filtered by a variety of criteria
- Asymmetrical evaluation; Patricia doesn't care if she gets sacrificed against, so all sacrifice bonuses apply to the original side to move only.
- Bonuses for going down in material compared to original position being searched
- Bonuses for being better off than what material would suggest
- Bonuses for sacrifices at root
- Bonuses for attacking the enemy king
- Bonus for opposite side castling
- If the above applies, bonus for open files towards enemy king
- Material scaling
- Game length evaluation scaling
- Lack of search techniques that aggressively prune moves that lose material. Patricia has no SEE pruning, and she orders bad captures right behind good captures instead of right at the end.

Hier die Filter für die Netz-Lerndaten:
position_filter_1: Saves positions with general compensation - i.e. being down significantly in material yet still having at least a playable position. (Note: I currently do not recommend using this one.)
position_filter_2: Saves positions where one side's king is exposed and under attack by enemy pieces.
position_filter_3: Saves positions where one side has a major space advantage.
position_filter_4: Saves opposite side castling positions with lots of material on the board and one side attempting a pawn storm.
position_filter_5: Saves positions where one side is significantly behind in development.
position_filter_6: Saves positions where one side can't castle and has an open king. This is somewhat similar to 2 but doesn't take into account attackers and uses a different method for calculating defensive strength.
position_filter_7: Saves positions where many pieces are able to move near, are near, or are pointing at the enemy king. This uses a simple but effective ray calculator instead of a full mobility calculation.
position_filter_8: Saves positions where one side has an extremely powerful minor piece that can't be traded off easily. Many such positions result from exchange sacrifices and even if they don't the dominant piece is a long term advantage that often leads to dynamics down the line.
Parent - - By Thomas Zipproth Date 2024-04-04 16:06
Ich habe versucht, sowohl patricia-windows-v2.exe als auch patricia-windows-v3.exe zu starten.
Beide stürzen nach dem UCI Kommando go (go infinite oder z.B. go wtime 1000 btime 1000) ab.
Die Exe Dateien scheinen mir auch zu klein zu sein, um ein NN zu enthalten (1.5 MB).
Andererseits sehe ich auch kein UCI Kommando, um ein NN zu laden.

Bin etwas verwirrt, was mache ich falsch?
Parent - - By Rainer Maikowski Date 2024-04-04 16:09
Es gibt kein NN! Unter Fritz läuft Patricia problemlos.
Parent - - By Thomas Zipproth Date 2024-04-04 16:25
Aus dem readme:
- Neural network retrained on "aggressive" positions filtered by a variety of criteria.

Aber ich sehe gerade, das Netz ist nur 1.3 MB groß, das passt also.

Und das Programm läuft in der Tat unter Fritz.
Aus irgendwelchen Gründen stürzt sie sowohl unter der GUI die ich nutze ab, als auch bei manuellem Start der Exe und nachfolgender Eingabe von UCI Kommandos.
Was zum ersten Mal der Fall ist, bei allen anderen Engines passiert das nicht.

Ist aber auch egal, die Zeiten, in denen ich versucht habe, solchen Dingen auf den Grund zu gehen, sind vorbei.
Parent - By Reinhold Stibi Date 2024-04-04 16:49
Das Programm läuft unter der Fritz GUI problemlos.

Erstaunlich wie diese erst entwickelte Engine taktisch gut spielt. Fundamentale Schachlehren wie vergifteter Bauer, falscher Läufer u.a. werden
beherrscht.
Opferkombinationen werden schnell gefunden;  prima, macht Spaß.

Bin auf weitere Entwicklungen gespannt; hat sicher Potential.
 
Parent - By Peter Martan Date 2024-04-04 18:18 Edited 2024-04-04 18:34 Upvotes 1
Ja, auf Konsolen- Kommandos, wie man sie gewöhnt ist, reagiert sie mit Absturz, isready wird akzeptiert, hilft aber auch nicht, danach go und weg ist sie wieder. Hingegen läuft sie unter Shredder, Arena, Cutechess und Fritz bei mir, dass sie keine fixe time per move- TC akzeptiert, hat mir der Autor im Talkchess auch bestätigt, trotzdem kann man im Fritz Testsuiten laufen lassen.

Edit: übrigens läuft sie in der Konsole lustiger Weise dann schon auch, wenn man zuerst mit position fen eine Stellung vorgibt.
Parent - - By Stefan Pohl Date 2024-04-09 07:59 Edited 2024-04-09 08:04
Mein 10000 Partien Test von Patricia 2.0 ist durch und online... Es ging nur um die EAS-Zahlen. Der Score von Patricia 2.0. war bei knapp 50% gegen diese 10 Engines (Rybka 4.1 etc.), das paßte also von der Spielstärke perfekt.
3min+1sec, singlethread, balanced openings (alle 8 Züge tief)

https://www.sp-cc.de/patricia_eas_engine.htm

Wen es interessiert, kann sich alle 10000 Partien, die EAS-Auswertung und 872 spektakuläre Siege von Patricia 2.0 (mit mindestens 2 geopferten Bauerneinheiten pro Partie), gefiltert von meinem Interesting Wins Search Tool, herunterladen:
https://www.sp-cc.de/files/patricia_2.0_test.7z

Code:

                                 bad  avg.win
Rank  EAS-Score  sacs   shorts  draws  moves  Engine/player
-------------------------------------------------------------------
   1    337941  44.01%  36.20%  04.84%   67   Patricia 2.0 
   2    134485  07.65%  54.34%  33.84%   61   Critter 1.6a 
   3    130651  02.60%  53.76%  35.44%   60   Rybka 4.1 
   4    125405  03.57%  55.61%  34.45%   61   Andscacs 0.88 
   5    121305  04.28%  56.03%  32.84%   61   Laser 1.5 
   6    106943  03.61%  45.10%  30.06%   64   Komodo 5 
   7    100754  04.08%  47.96%  36.93%   64   Houdini 1.5a 
   8    100360  05.03%  46.15%  35.51%   63   Texel 1.7 
   9     97459  03.85%  46.15%  36.69%   63   Nirvanachess 2.4 
  10     84082  04.61%  43.80%  37.65%   65   Hannibal 1.7 
  11     67447  01.51%  29.06%  24.70%   72   Princhess 0.16 
-------------------------------------------------------------------
*** Average length of all won games:     65 moves


Die hohe Zahl der short wins der Gegner-Engines kommt natürlich durch die extrem risikohafte Spielweise von Patricia zustande: Das führt eben nicht nur zu spektakulären Siegen, sonder auch zu reichlich spektakulären Pleiten, wenn Patricia eben "überzieht". Dadurch haben die eigentlich sehr solide spielenden Gegner einen so hohen short-wins Score. Wertet man mit dem EAS-Tool so ein Test-Gauntlet aus, sind die EAS-Zahlen der Gegner-Engines mit Vorsicht zu genießen. Es geht aber ja auch um den EAS-Score von Patricia, nicht den der Gegner.

Der EAS-Score von Patricia 2.0 von 337941 ist wirklich beeindruckend. Bis auf die (sehr schwache (knapp 2300 Elo)) OpenTal Engine hat keine Engine in meinen Testruns jemals die 300000er Marke überschritten. Nicht mal Velvet, Revenge 1.0 oder Komodo 14.1 aggressive...
Parent - - By Peter Martan Date 2024-04-09 10:03 Edited 2024-04-09 10:13
Stefan Pohl schrieb:

Die hohe Zahl der short wins der Gegner-Engines kommt natürlich durch die extrem risikohafte Spielweise von Patricia zustande: Das führt eben nicht nur zu spektakulären Siegen, sonder auch zu reichlich spektakulären Pleiten, wenn Patricia eben "überzieht". Dadurch haben die eigentlich sehr solide spielenden Gegner einen so hohen short-wins Score. Wertet man mit dem EAS-Tool so ein Test-Gauntlet aus, sind die EAS-Zahlen der Gegner-Engines mit Vorsicht zu genießen. Es geht aber ja auch um den EAS-Score von Patricia, nicht den der Gegner.

Danke für die Tests!
Weil du's gerade erwähnst: das Abschneiden der einzelnen Engine müsste bei dieser Art des Ratings aber an und für sich schon noch stärker als bei anderen Listen davon abhängen, wie der Gegnerpool ausschaut, oder?
Ich meine, dass das Ranking immer ganz vordergründig von der Zahl und Auswahl der Gegner abhängt, und dass es ebenso wenig Sinn macht wie bei anderen Matches, zu große Spielstärkeunterschiede gegeneinander zu testen, ist Eng-Eng-Match-immanent, aber dann wird's bei diesem besonderen Score schon noch einmal zusätzlich drauf ankommen, wie "aggressiv" die Gegner ausgewählt werden, oder?
Man müsste es zusätzlich zur Wahl der Hardware- TC und der Eröffnungen auch noch extra mehr als bei anderen Ratings für einen bestimmten Gegnerpool relativieren, nein?
Ich meine, dass ein Engine gegen eine, die opfert, was das Zeug hält, selbst auch "aggressiver" spielen wird (müssen), ist eh klar, eigentlich sollte die Erfolgsrate bei gleicher "Aggressivität" dann aber noch mehr von noch kleineren Spielstärkeunterschieden abhängen, und so etwas wie "Angstgegner" und "Lieblingsgegner" müsste halt noch mehr Rolle spielen, sowohl im Elo- als auch im EAS- Score. Bleibt die Frage, wie sich das dann quantitativ vergleichen läßt mit anderen Teilnehmerfeldern.
Parent - By Stefan Pohl Date 2024-04-09 10:15 Edited 2024-04-09 10:21 Upvotes 1
Peter Martan schrieb:

Stefan Pohl schrieb:

Die hohe Zahl der short wins der Gegner-Engines kommt natürlich durch die extrem risikohafte Spielweise von Patricia zustande: Das führt eben nicht nur zu spektakulären Siegen, sonder auch zu reichlich spektakulären Pleiten, wenn Patricia eben "überzieht". Dadurch haben die eigentlich sehr solide spielenden Gegner einen so hohen short-wins Score. Wertet man mit dem EAS-Tool so ein Test-Gauntlet aus, sind die EAS-Zahlen der Gegner-Engines mit Vorsicht zu genießen. Es geht aber ja auch um den EAS-Score von Patricia, nicht den der Gegner.

Danke für die Tests!
Weil du's gerade erwähnst: das Abschneiden der einzelnen Engine müsste bei dieser Art des Ratings aber an und für sich schon noch stärker als bei anderen Listen davon abhängen, wie der Gegnerpool ausschaut, oder?
Ich meine, dass die Reihenfolge (das Ranking) immer ganz vordergründig von der Zahl und Auswahl der Gegner abhängt und dass es ebenso wenig Sinn macht wie bei anderen Matches, zu große Spielstärkeunterschiede gegeneinander zu testen, ist Eng-Eng-Match-immanent, aber dann wird's bei diesem besonderen Score schon noch einmal zusätzlich drauf ankommen, wie "aggressiv" die Gegner ausgewählt werden, oder?
Man müsste es zusätzlich zur Wahl der Hardware- TC und der Eröffnungen auch noch extra mehr als bei anderen Ratings für einen bestimmten Gegnerpool relativieren, nein?


Da zitiere ich mal Radio Eriwan: Im Prinzip ja, aber Patricia spielt so extrem viel aggressiver als alle anderen Engines, die man auf diesem Spielstärke-Level (um Rybka 4.1) herum findet, daß das in diesem speziellen Fall nicht so viel ausmacht. Also ob die Gegner-Engines etwas aggressiver spielen oder eher passiver. Weil - im Vergleich zu Patricia - alle Gegner sowieso extrem passiv und langweilig spielen.

Und man muß generell beim EAS-Scoring bedenken, daß es nicht um 10000 Punkte mehr oder weniger geht. So genau wird ein EAS-Score nie sein können, wegen des exponentiellen Punktesystems. Und man braucht genug Gewinnpartien. Was heißt, daß die zu testende Engines sehr viele Partien spielen muß, denn die Engine gewinnt ja längst nicht alle Partien. Und die Gewinnpartien machen locker 4/5 des EAS-Scores aus (sonst nur noch die bad draws). Hier hat Patricia 10000 Partien gespielt. Gegen etwa gleichstarke Gegner. Es gab natürlich wenig Remisen (so 33%). Dadurch blieben in diesem Test 3188 Gewinnpartien von Patricia zum Auswerten durch das EAS-Tool übrig (ca. 1/3 der Partien gewann Patricia, ca. 1/3 waren Remis und ca. 1/3 hat Patricia verloren). 3188 Gewinnpartien ist schon eine sehr ordentliche Menge.
Parent - By Thomas Plaschke Date 2024-04-11 22:18
Danke für den Hinweis auf dieses Engine!
Die Engine hält, was zu anderen nur versprochen wird: Patricia 2 lässt keine Gelegenheit aus, die Partie zu verschärfen. Das habe ich von keiner anderen Engine je auch nur im Ansatz gesehen! Wirklich beeindruckend! Dabei hat das Programm "für den Notfall" auch positionelle Kenntnisse. - Bei ihrer Spielanlage muss Particia 2 davon aber selten Gebrauch machen.

Viele Grüße
Th. Plaschke
Up Topic Hauptforen / CSS-Forum / Patricia 2 (die erste EAS-Engine) erschienen

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill