Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Stockfish UCT vs Stockfish 9
- - By Jörg Oster Date 2020-08-11 15:55 Upvotes 1
Hier mal eine kleine Testpartie gegen Stockfish 9

Event:
Ort:
Datum:

Weiss:
Schwarz:

Ergebnis
Board


15. Dxb7?? ist natürlich fürchterlich, mit einer Bewertung von -0.36,
aber auch vorher schon nicht wirklich gut gespielt.
Das zeigt aber auch deutlich die taktische Schwäche des Algorithmus.

Da liegt noch viel Arbeit vor mir ...
Parent - - By Peter Martan Date 2020-08-11 19:57
Jörg Oster schrieb:

Da liegt noch viel Arbeit vor mir ...

Chessprogramming Wiki sagt, UCT ist PUCT ohne P

https://www.chessprogramming.org/UCT

Und ist das dann jetzt eigentlich mehr was für die GPU als für die CPU?
Parent - - By Jörg Oster Date 2020-08-11 21:05
Peter Martan schrieb:

Jörg Oster schrieb:

Da liegt noch viel Arbeit vor mir ...

Chessprogramming Wiki sagt, UCT ist PUCT ohne P

<a class='ura' href='https://www.chessprogramming.org/UCT'>https://www.chessprogramming.org/UCT</a>

Und ist das dann jetzt eigentlich mehr was für die GPU als für die CPU?


Es ist ganz egal ob Alpha-Beta, UCT oder P-UCT, die Suche läuft ausschließlich auf der CPU.
Parent - - By Peter Martan Date 2020-08-11 21:11
Ja, aber Leela...
Ach, ich lass es lieber.

Nein, ich weiß schon, es sind andere Netze.
Parent - - By Jörg Oster Date 2020-08-14 10:52
Das hat mit den Netzen doch nichts zu tun.

Einen Versuch habe ich noch, Peter. 

Bei einer Suche geschieht folgendes:
Ausgehend von der Ausgangsstellung wird ein Zug für die Seite am Zug gemacht, dann ein Zug für die andere Seite,
dann wieder ein Zug für diese Seite, usw.
Irgendwann wird das gestoppt, z. B. wenn die vorgegebene Suchtiefe erreicht worden ist,
alle Züge wieder zurück genommen, so dass man wieder an der Ausgangsstellung ankommt.
Dann wird das ganze für den nächsten legalen Zug in dieser Stellung gemacht und für jeden weiteren möglichen Zug.

Das ist eine vereinfachte Darstellung einer möglichen Suche.
Das findet nur auf der CPU statt, weil alle möglichen dafür benötigten Datenstrukturen, z. B. Positionsdarstellung und Zuggenerierung,
das Ausführen und Zurücknehmen von Zügen, usw., die CPU benötigen.

Dass da irgendwann auch irgendeine Art von Bewertung einfließen muss, ist klar.
Wann und wo das geschieht, ist aber hier zum Verständnis erstmal egal.

Ich kenne nur ein Programm, Zeta, wo probiert wurde, all das mal auf die GPU zu bringen und dort laufen zu lassen.
Mit eher mäßigem Ergebnis, soweit ich weiß.

Ist es jetzt etwas klarer geworden?
Parent - By Peter Martan Date 2020-08-14 13:34 Edited 2020-08-14 13:40
Jörg Oster schrieb:

Ist es jetzt etwas klarer geworden?

Doch, ja, wenn ich jetzt endlich richtig verstanden habe, dass die Suche bei LC0 auch (nur?) auf der CPU läuft.
Dabei hattest du es mir hier auch schon ausdrücklich gesagt, hatte ich aber überlesen.

http://talkchess.com/forum3/viewtopic.php?p=853813#p853813
Parent - - By Frank Quisinsky Date 2020-08-11 21:37
Hallo Jörg,

in der Tat ein schrecklicher Fehler.
Könnte auch an zu kurzer Bedenkzeit liegen?

Hast Du die Stellung mal analyisert ab welcher Suchtiefe der Fehler nicht mehr ausgespielt wird?

Viele Grüße
Frank
Parent - - By Jörg Oster Date 2020-08-12 11:45
Hallo Frank,

ja, mit mehr Zeit wird Dxb7 verworfen.
Nichtsdestotrotz zeigen auch hier die z. T. noch zu guten Bewertungen den Nachteil dieser Art der Suche.

Aber wie gesagt, das befindet sich alles noch im sehr frühen Anfangsstadium. 

Hier die längere Analyse bei Zug 15:
Engine:
position fen 3r1rk1/1pp2p2/p4qpp/8/3pPbR1/PQ1P1P1B/1P2KP1P/7R w - - 2 15
go

+---+---+---+---+---+---+---+---+
|   |   |   | r |   | r | k |   | 8
+---+---+---+---+---+---+---+---+
|   | p | p |   |   | p |   |   | 7
+---+---+---+---+---+---+---+---+
| p |   |   |   |   | q | p | p | 6
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   | 5
+---+---+---+---+---+---+---+---+
|   |   |   | p | P | b | R |   | 4
+---+---+---+---+---+---+---+---+
| P | Q |   | P |   | P |   | B | 3
+---+---+---+---+---+---+---+---+
|   | P |   |   | K | P |   | P | 2
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   | R | 1
+---+---+---+---+---+---+---+---+
   a   b   c   d   e   f   g   h

Fen: 3r1rk1/1pp2p2/p4qpp/8/3pPbR1/PQ1P1P1B/1P2KP1P/7R w - - 2 15
Key: D22C5DB633D813A9
Checkers:

info depth 3 seldepth 7 score cp -59 nodes 705451 nps 308461 time 2287 pv b3b7
info depth 3 seldepth 7 score cp -70 nodes 1399231 nps 305842 time 4575 pv b3b7
info depth 3 seldepth 7 score cp -75 nodes 2063983 nps 307186 time 6719 pv b3b7
info depth 3 seldepth 8 score cp -73 nodes 2771282 nps 303702 time 9125 pv b3b7
info depth 3 seldepth 9 score cp -79 nodes 3463710 nps 304957 time 11358 pv b3b7
info depth 3 seldepth 9 score cp -81 nodes 4149825 nps 305583 time 13580 pv b3b7
info depth 3 seldepth 9 score cp -75 nodes 4835409 nps 300971 time 16066 pv b3b7
info depth 3 seldepth 9 score cp -80 nodes 5549478 nps 302308 time 18357 pv b3b7
info depth 3 seldepth 9 score cp -84 nodes 6243908 nps 302999 time 20607 pv b3b7
info depth 3 seldepth 9 score cp -89 nodes 6923717 nps 303379 time 22822 pv b3b7
info depth 3 seldepth 9 score cp -96 nodes 7609510 nps 303918 time 25038 pv b3b7
info depth 3 seldepth 9 score cp -101 nodes 8291583 nps 304378 time 27241 pv b3b7
info depth 3 seldepth 9 score cp -105 nodes 8985926 nps 299161 time 30037 pv b3b7
info depth 3 seldepth 9 score cp -105 nodes 9689501 nps 299613 time 32340 pv b3b7
info depth 3 seldepth 9 score cp -87 nodes 10405800 nps 300060 time 34679 pv h1g1
info depth 4 seldepth 10 score cp -81 nodes 11122428 nps 300419 time 37023 pv h1g1
info depth 4 seldepth 10 score cp -79 nodes 11801003 nps 300494 time 39272 pv h1g1
info depth 4 seldepth 10 score cp -82 nodes 12479654 nps 300497 time 41530 pv h1g1
info depth 4 seldepth 10 score cp -85 nodes 13174340 nps 300509 time 43840 pv h1g1
info depth 4 seldepth 10 score cp -88 nodes 13873116 nps 300524 time 46163 pv h1g1
info depth 4 seldepth 10 score cp -90 nodes 14581085 nps 300486 time 48525 pv h1g1
info depth 4 seldepth 10 score cp -93 nodes 15291088 nps 300408 time 50901 pv h1g1
info depth 4 seldepth 11 score cp -96 nodes 15987803 nps 300313 time 53237 pv h1g1
info depth 4 seldepth 12 score cp -99 nodes 16693802 nps 300161 time 55616 pv h1g1
info depth 4 seldepth 12 score cp -100 nodes 17404878 nps 294488 time 59102 pv h1g1

Root move:   a3a4     Visits:    10133     Q:   -243 (cp -117)
Root move:   e4e5     Visits:      504     Q:   -390 (cp -189)
Root move:   h3f1     Visits:     4437     Q:   -264 (cp -128)
Root move:   h3g2     Visits:    14199     Q:   -236 (cp -114)
Root move:   g4g1     Visits:     4953     Q:   -260 (cp -126)
Root move:   g4g2     Visits:     3045     Q:   -276 (cp -133)
Root move:   g4g3     Visits:      124     Q:   -584 (cp -283)
Root move:   g4f4     Visits:      616     Q:   -370 (cp -179)
Root move:   g4h4     Visits:      120     Q:   -591 (cp -286)
Root move:   g4g5     Visits:       68     Q:   -718 (cp -348)
Root move:   g4g6     Visits:       42     Q:   -911 (cp -442)
Root move:   h1a1     Visits:    11063     Q:   -241 (cp -116)
Root move:   h1b1     Visits:    11223     Q:   -241 (cp -116)
Root move:   h1c1     Visits:      139     Q:   -564 (cp -273)
Root move:   h1d1     Visits:    16001     Q:   -234 (cp -113)
Root move:   h1e1     Visits:    12180     Q:   -239 (cp -116)
Root move:   h1f1     Visits:    13783     Q:   -237 (cp -115)
Root move:   h1g1     Visits:   272736     Q:   -207 (cp -100)
Root move:   b3d1     Visits:    11640     Q:   -239 (cp -116)
Root move:   b3a2     Visits:     7817     Q:   -247 (cp -119)
Root move:   b3c2     Visits:    11729     Q:   -239 (cp -116)
Root move:   b3c3     Visits:       48     Q:   -823 (cp -399)
Root move:   b3a4     Visits:     6196     Q:   -253 (cp -122)
Root move:   b3b4     Visits:     8272     Q:   -246 (cp -119)
Root move:   b3c4     Visits:     9248     Q:   -244 (cp -118)
Root move:   b3b5     Visits:       46     Q:   -833 (cp -404)
Root move:   b3d5     Visits:       49     Q:   -811 (cp -393)
Root move:   b3b6     Visits:       44     Q:   -838 (cp -406)
Root move:   b3e6     Visits:       43     Q:   -853 (cp -414)
Root move:   b3b7     Visits:    63309     Q:   -217 (cp -105)
Root move:   b3f7     Visits:        9     Q:  -1762 (cp -855)
Root move:   e2d1     Visits:      212     Q:   -491 (cp -238)
Root move:   e2e1     Visits:      677     Q:   -361 (cp -175)
Root move:   e2f1     Visits:     5295     Q:   -257 (cp -124)
bestmove h1g1
Parent - - By Frank Quisinsky Date 2020-08-12 12:40
Hallo Jörg,

das finde ich jetzt interessant.
Auch die Darstellung der Analyse!!

Derzeit bewegt sich einiges und es gibt gute Ideen für Programmierer die eigens gesetzten Parameter optimieren zu lassen.
Verstehe zu wenig davon aber solche Wege Hybrid Engines zu erstellen halte ich gefühlsmäßig für richtig (Zeitvorsprung durch unnötiges fortwährendes Parametertuning während einer Programmentwicklung).

Ich habe nur die Bedenken, dass hierdurch schöne Spielstile drauf gehen.
Muss das Thema Step by Step angehen und sich die Auswirkungen wirklich im Detail anschauen.

John macht auch Experimente mit solchen Dingen hinsichtlich positioneller Bewertungen.
Kennt man den Schwachpunkt in seinem Programm kann das sehr hilfreich sein.

Überhaupt denke ich auch das die Analyseausgaben der herkömmlichen Engines viel interessanter gestaltet werden könnten.
Suchfunktionen und deren Ausgaben besser darzustellen könnte gar zu Lernzwecken verwendet werden.
Versteht der Beobachter mehr wie ein Schachprogramm mit einer Stellung umgeht anhand der Ausgabe von Informationen wäre das wirklich eine echte Bereicherung weil wir z. B. auch diese Ausgaben für
statistische Zwecke besser einsetzen könnten.

Viel zu warm für solche Überlegungen.

Dir weiterhin viel Spaß
Frank
Parent - - By Peter Martan Date 2020-08-12 13:49
Frank Quisinsky schrieb:

John macht auch Experimente mit solchen Dingen hinsichtlich positioneller Bewertungen.

Da wäre ein NNUE- Wasp natürlich doppelt interessant, einerseits weil die Engine schon hard coded sehr viel positionelles Wissen mitbringt, andererseits, weil sich das als Ausgangspunkt für ein eigenes Wasp- NN sicher gut eignen würde.
Und eventuelle Schwachstellen in der taktischen Suche könnten dadurch vielleicht sogar auch kompensiert werden, um das wirklich beurteilen zu können, verstehe ich allerdings meinerseits zu wenig davon.
Parent - - By Frank Quisinsky Date 2020-08-12 14:22
Hallo Peter,

auf NNUE zurückzugreifen würde John sicherlich nicht tun sofern ich das beurteilen kann.
Er ist zu sehr Herzblutprogrammierer und würde sich eher was komplett eigenes programmieren.

Positionelle Parameter sind schwierig.
Taktisch hängt alles an den bevorzugt schnellen Bauernvorstößen.
Das kann natürlich auch nach hinten losgehen aber wenn hier optimiert werden würde, wäre das eine rote Karte in Richtung schöner Spielstil.
Taktisch ist Wasp schon auf einem sehr hohen Niveau!

Bei den positionellen Parameter schaut es anders aus.
Da ist doch heute niemand von uns mehr in der Lage aufgrund der eigenen Spielstärke selbst zu entscheiden.
Schleichen sich Fehler ein, trotz hundertausender Testpartien die John schon gespielt hat um Parameter zu optimieren.

John hat also Spaß an der Form der Optimierung und testet das aus.
Erkenntnisse werden dann einfließen.

Geht bei Wasp auch nicht nur um Elo, wenn gleich darauf natürlich auch geachtet wird.
Aber die Idee für sich arbeiten zu lassen in Bereichen der Optimierung die zu schwierig sind, halte ich für nicht verwerflich.

Die Engine ist überreif für solche Optimierungen, dass eh schnell viele Elos zusammenkommen.
Hatte John vor kurzer Zeit mal geschrieben, versuche nur nie unter den TOP-10 zu kommen, sonst bekomme ich zu viele E-Mails.
Platz 10-20 in den Ratinglisten ist gut und vor allem darf nie der schöne Spielstil drauf gehen.



Gruß
Frank

Ja Peter, ist einiges an Wissen drin, wie Du schreibst.
Die Frage ist ob John das auch releasen wird oder ob er sich denkt, bleibe doch lieber bei altbewährt.
Das weiß ich jetzt auch nicht, hatte mit John die letzten 3 Wochen keinen Kontakt.
Werde mal nachfragen ...
Parent - By Frank Quisinsky Date 2020-08-12 14:36 Edited 2020-08-12 14:40
Beispiele:

Gibt Wasp TLS für die D und 2 Bauern weil andere Bauern auch noch nach vorne getrieben werden.
Da wurde er dann mit so viel weniger an Figuren (ausgeglichene Eval nach dem Tausch) förmlilch zusammengeschoben.

Das sind so Dinger, Opfer wäre der richtige Ausdruck.
Ein Opfer für schöneres Schach!

Oder, beobachte mal was passiert bei Wasp wenn die Bauern derart dynamisch sind.

Steht ein Bauer auf b3, keiner mehr auf der C-Linie was macht Wasp mit dem a-Bauern.
Klar, der geht auf a4 und Bingo hängt der Bauer auf b3 zurück und wird langfristig zum Angriffsobjekt.
So ganz nach dem Motto, konzentriere Dich auf den Angriff auf den zurückhängenden Bauern auf b3 dann habe ich Zeit die Bauern
auf dem Königsflügel zu treiben.

Manchmal ist weniger mehr, das könnte durch die positionellen Parameter-Änderungen verbessert werden.
In der Hoffnung der Spielstil bleibt.

Nun kommt ein Komodo oder Ethereal oder Stockfish daher.
Weißt Du was die mit Wasp dann anstellen ... ich weiß es!

Aber der Spielstil ist so fantastisch, dass so viele schöne Stellungen entstehen und sich plötzlich Möglichkeiten ergeben die niemals "menschlich" überhaupt auf der Rechnung standen.
Stockfish, Komodo beginnen zu staunen und sichern sich dann aber im Endspiel das Remis. Oder es geht gegen solche Engines heftig in die Hose.

Das muss John beibehalten, weil das menschlicher Natur ist ... Kasparow live würde ich mal sagen.
Kasparow, dieser Schuft ... schaut sich die ganze Zeit den Damenflügel an und spielt dann als weißer nach wenigen Buchzügen h4.
Dann kommt seine Mimik und Gestik und bereits nach einer solchen Einlage ist der Gegner schon Matt.
Das würde Wasp wahrscheinlich auch tun, so unverschämt wie das Teil zu Werke geht.

Und wenn das beibehalten werden kann aber 200 Elo langfristig dazu kommen ... absolut geil!
Das ist dem Fizbo Programmierer mit dem spekulativen Spielstil gelungen, warum nicht auch Wasp mit der Idee, das die Landwirte rennen und das höhere Volk dann den Angriff abschließt.



Gruß
Frank
Parent - By Frank Quisinsky Date 2020-08-12 23:34 Edited 2020-08-12 23:59
Hier mal eine Info für Dich.
Die Experimente mit eigenen Codes (was ich mir dachte) laufen auf Hochtouren.
Die Frage ist, was ist davon zu gebrauchen und was nicht?
Was fehlt grundsätzlich an Parametern damit diese überhaupt optimiert werden können.
Das ist eher der Ausgangspunkt, es fällt auf was unter Umständen fehlt.

Die Geschwindigkeit geht in den Keller weil die Suche verdammt gut optimiert ist bei Wasp.
Positionell ist brauchbarers dabei aber taktisch gehts runter in den Keller.

Das Problem bei Wasp ist, das sehr vorsichtig damit umgegangen werden sollte um den provozierten Spielstil zu halten.
Spielstil vor Elo und nicht Elo vor Spielstil.
Elo ist wichtig aber nicht um jeden Preis, wenn eine Engine schon weit über max. menschliches Niveau liegt.

John beschäftigt sich also auch mit dem Thema aber ist total in der Findungsphase hinsichtlich was ist brauchbar und was nicht.

Das Wasp z. B. Turm, Läufer und Springer gibt um eine Dame und zwei Bauern zu schnappen wäre mit positionellen Optimierungen nicht passiert.
Hätte jeder Mensch gerne die Dame gegeben und wie Wasp dann im Ablauf zusammengeschoben wurde ... denke das hätten von den TOP-41 sicherlich mehr als 30 Programme auch hinbekommen.
Das ist ein Vorteil aber wenn der Spielstil, der hart erarbeitet wurde, dabei drauf geht verliert das Programm sein Gesicht.

Wichtig ist das John probiert und vor allem die Laune zu entwicklen nicht aufgibt.
Er stellt sich also eher die Frage, wie kann ich erreichen das genau das optimiert wird was ich mir wünsche ohne das was ich bislang machte nicht in den Mülleimer zu werfen.

Wahrscheinlich sind derzeit viele Programmierer mit der Lösung solcher Fragen beschäftigt.
Erst Recht die, die wirklich selbstständig entwickeln und dabei andere Dinge nicht aus dem Auge verlieren.

Um so mehr ziehe ich meinen Hut bei dem was der Fizbo Programmierer an den Tag legte.
Wie kann eine Engine derart spekulativ unterwegs sein und dabei eine solch hohe Elo erreichen?
Vor der Einzelleistung des Fizbo Programmierers kann man wirklich den Hut ziehen!

Das ist vergleichbar mit ...
Wir haben ein Auto mit 500 PS und kommt auf 400km/h.
Wir haben auch ein Auto mit 200 PS und kommt auf 350km/h.

Und dann haben wir ein Auto mit 150 PS das auf 400km/h kommen könnte, dies aber nicht lange halten wird.
Der Fahrer diese Waffe dann geschickt genug einsetzen muss, also eher spekulativ zum wahrscheinlich richtigen Augenblick Gas gibt.
Dann koste es was es wolle und schauen was passiert.

Im Umkehrschluss für die spielstärksten Engines würde das bedeuten.
Wie kann ich die Spielstärke senken aber dafür mit spektakulären spekulativen Zügen entzücken.
Menschen können damit eingeschüchtert werden, die Waffe die Tal an den Tag legte.
Denke das ist die Zukunft im Computerschach für Engines die zu extremen Leistungen getrieben wurde und daraus neue Waffen entwicklen könnten!!

John wird es richten!
Das macht er schon seit fast 40 Jahren wenn es um Schachprogrammierung geht.
Up Topic Hauptforen / CSS-Forum / Stockfish UCT vs Stockfish 9

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill