Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Kann man einen Allgoythmus entwickeln, der exzessiv lazy smp betreibt
- By 2phil4u Date 2018-01-01 20:16
Ich las kürzlich von der Technik, die auch Stockfish neuerdings verwendet.
Hierbei wird das Parallelisierungsproblem mit einer Technik angegangen, bei dem mehrere Threads in verschiedenen Suchtiefen und mit teils anderen Zugsortierung
auch aufgrund nichtdeterministischer Effekte Züge findet und eventuell andere Bewertungen dann den anderen Threads in den Hash zu schreiben.
Ich habe mir überlegt, ob man das in sehr großem Umfang machen könnte, bin aber auf Probleme gestossen.
Angenommen ich will 1000 Threads arbeiten lassen, so war meine Idee, das bsp jeweils als Beispiel zwischen 10/60 und 40/60 gerechnet wird.

Der erste Thread könnte quasi superselektiv einfach den besten Zug spielen.
Nun wissen der die Threads auf bsp Tiefe 38, das ihr berechneter bester Zug gar nicht mehr der beste ist und nehmen einen anderen.
Das Problem ist nur.
Auch wenn ich mit dieser Methode angebliche gute Züge widerlegen kann, so wird es einfach nicht passieren, jedenfalls nicht so einfach,
das bsp ein Zug auf Tiefe 30, der mit 0.1 beweret wird, aber bei Tiefe 40 auf 0.6 wäre (wenn die darauffolgende Züge stimmen) ausprobiert wird, solange der beste
Zug nicht unter 0.1 fällt.
Man könnte natürlich bei jeder Tiefe viele Threads rechnen lassen, nur das hin un her kopieren von neu gefunden Zügen um nach vorne durchzureichen bzw
hinten gefundene Änderungen wieder nach vorne durchzureichen erscheint mir dann auch ziemlich exponentiell nach oben zu schiesen.
Sogesehen ikann ich nicht einfach bei jeder Tiefe einen Thread rechnen lassen, der alles weitergibt und wesentlich intensiver sucht.
Natürlich könnte der 1. Thread sehr unselektiv suchen und so Sachen finden, die meinetwegen nach 5 Zügen besser dastehen, aber dieses Wissen müsste
dann in alle anderen Threads kopiert werden und hier mag der Zug dann widerlegt zu werden.
Also ganz so einfach geht es nicht, das wirklich exzessiv zu jalchen, wäre ja auch zu schön, wenn man so quasi alle Möglichkeiten durchrehnen könnte.
Trotzdem kann man beswtimmt sehr stark prunen beim vordersten, wenn die hinteren das irgendwie zumindest oft widerlegen.

Vielleicht ist es erstmal nötig (ganz wichtig) eine wesentlich bessere und rechenintesivere Bewertung vorzunehmen, eventuell hat man auch verschiedene Funktionen je nach Anzahl der Figuren oder so ähnlich um dann die Parameter selbst zu justieren.
Wenn ich das richtig verstandnen habe hat alpha bei Tiefe 1 gelernt, das hat ja bei herkömmlichen Programmmen nicht funkioniert, sonstw hätte man ja längst einfach auf Tiefe 1 durchspielen lassen und die Parameter immer so verändert, das öfters gewonnen wird.
Alpha hat ja niemals 1 Minute gesucht und dann seine Bewertungsfunktion geändert bei 5 Mio Partien.
Auch wenn es ein neuronales Netzt ist, das hier lernt, so ist das ja nicht viel anders als würde man extrem viele zufällige Stellungsvariablen oder zusammengewürfelte
Werte mit irgendwelchen XOR Transformationen durchführen um dann auf Dinge zu kommen.
Als Beispiel die Berechnung, ob ein Bauer durchmaschiert, also wie weit ist der König weg und natürlich gibt es noch viele weitere bisher unentdeckte Zusamamenhänge.
Die Bewertungsfunktion müsste also irgendwie durch Arithmetik feststellen, das irgendein taktischer Voreil vorliegt, bsp wie sich Figuren gegenseitig decken etc.

Dazu bräuchte man wohl aber Spezialhardare, weil man sehr viel aufwendigere Berechnungen durchführen müsste, aber nicht zwingend ein neuronales Netzt.
Ist es nicht möglich, die Bewertungen von bsp Grafikkarten vornehmen zu lassen und nur den Suchbaum von den Prozessoren ?

Ich weiss sind 2 Fragen, aber die eine ist für die andere auch wichtig.
Wenn die Bewertungen genauer sind kann man auch intelligenter suchen.

Gruß Philipp
- By Guenter Stertenbrink Date 2018-01-02 08:16 Edited 2018-01-02 09:04
zu den Bauernstrukturen (hat nichts mit lazy SMP zu tun)

88430 Partien CCRL 40/40 , beide Engines with ELO >=3000 (Nov.2016)
11379616 Halbzuege = 11379616 Bauernstrukturen = 830711968 Bytes mit 73 Bytes als "fen" pro Bauernstruktur

1849456 von diesen 11379616 Bauernstrukturen sind verschieden.
Unter Beruecksichtigung von Symmetrien koennte man das weiter reduzieren.
4814 kommen >99mal vor
242300 kommen >9mal vor 628587 kommen nur 1mal vor
Stellungen mit eval >2.00 koennte man noch ausfiltern, die muss die engine ohne
Bauernstruktur-Datenbank gewinnen koennen.
Alles was 0.00 ist koennte man auch noch rausfiltern.
----------------------------------
die aktelle CCRL 40/40 Datenbank hat 160113 Partien wo beide Engines Elo >=3000 haben
da bekommt man dann xx verschiedene Bauernstrukturen
...
-------------------------------------------
nimmt man zufallsbedingt nur die Haelfte der obigen Partien, bekommt man xx verschiedene Bauernstrukturen
-------------------------------
Up Topic Hauptforen / CSS-Forum / Kann man einen Allgoythmus entwickeln, der exzessiv lazy smp betreibt

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill