Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Stockfish 19
- - By Peter Martan Date 2026-09-05 11:53 Upvotes 6
https://github.com/official-stockfish/Stockfish/releases
Parent - - By Reinhold Stibi Date 2026-09-05 15:14 Edited 2026-09-05 15:25
Mit Google KI:

Stockfish 19 wurde offiziell veröffentlich.Das Update bringt im Vergleich zu Stockfish 18 einen Spielstärke-Zuwachs von bis zu 44 Elo-Punkten in internen Tests.

Die wichtigsten Neuerungen auf einen Blick:Universal Binaries: Der Downloadprozess wurde vereinfacht. Die neuen Binärdateien erkennen automatisch die Features deines Prozessors (wie AVX2 oder AVX-512) und führen direkt den optimalen Code aus. Das manuelle Auswählen der Prozessorarchitektur entfällt.

Verbesserte NNUE-Architektur (SFNNv16): Das neuronale Netzwerk wurde optimiert. Redundante Bedrohungs-Features wurden entfernt, um die Dateigröße zu reduzieren, während neue Bauernpaar-Features die Spielstärke erhöhen. Zudem wurde das kleinere, sekundäre Netzwerk wieder in den Ruhestand geschickt, da es in bestimmten Positionen schwächelte.

Erweiterte Plattform-Unterstützung: Es gibt nun nativen Support für RISC-V (RVV), LoongArch sowie WebStrikte Positionsvalidierung: Die Engine prüft FEN-Strings und UCI-Befehle jetzt noch strenger und bricht bei Fehlern mit einer kritischen Fehlermeldung ab, um fehlerhafte Analysen durch unsaubere GUIs zu vermeiden.

KoeA,32.Kg3! - Short- Timman 1-0 0.0, Tillburg 1991
2r2rk1/1bpR1p2/1pq1pQp1/p3P2p/P1PR3P/5N2/2P2PPK/8 w - - 0 1

Analysis by Stockfish 19:  mit Intel 7730 u   lüfterloser MiniPC 8 Core/16 Thr.

1.Kg3 Ta8 2.Kf4 Lc8
  Weiß steht auf Gewinn: +- (4.05) (100% +100% =0% -0%)  Tiefe: 10/15   00:00:00

1.Kg3 Dxd7 2.Txd7 Lc6 3.Te7 Tce8 4.Kf4 Txe7 5.Kg5 Kh7 6.Dxe7 Tg8 7.Kf6 Le8 8.Sg5+ Kh8 9.Sxf7+ Lxf7 10.Dxf7 c6 11.Kg5 Tg7 12.Dxe6 Kh7 13.Df6 Kg8 14.e6 Tc7 15.Dd8+ Kg7 16.Dxc7+ Kh8
  Weiß steht klar auf Gewinn: +- (14.49) (100% +100% =0% -0%)  Tiefe: 29/43   00:00:02  19168kN

1.Kg3 Dxd7 2.Txd7 Lc6 3.Te7 Tce8 4.Kf4 Txe7 5.Kg5 Kh7 6.Dxe7 Tg8 7.Sd4 Le8 8.Sxe6 b5 9.Kf6 g5 10.Sf8+ Kh6 11.Dxe8 Tg7 12.hxg5+ Txg5 13.Dxf7 Tf5+ 14.Kxf5 bxa4 15.Dh7#
  Weiß setzt Matt: +- (#15) (100% +100% =0% -0%)  Tiefe: 36/30   00:00:04  36916kN

Unglaublich aber wahr: Das ist Rekord  !;  Matt in 15 in 4 Sek. mit einem mittelschnellen PC,   Stockfish war bisher kein sehr guter Mattlöser.
Parent - - By Lothar Jung Date 2026-09-05 16:17
Der 7730u ist eine Ryzen CPU.
Parent - - By Reinhold Stibi Date 2026-09-05 16:56
Hallo Lothar,
wie konnte ich nur, Danke für Deine Berichtigung.

Wegen der Mattsuche muss ich noch mit mehreren Stellungen testen.

Lc0 wird es gegen Stockfish 19 schwer haben, da sieht man nicht so eine Weiterentwicklung;
eigentlich schade weil dann meine RTX 4060 dann kaum zum Einsatz kommt.

Grüße
Reinhold
Parent - By Lothar Jung Date 2026-09-05 17:13
Hallo Reinhold,

bei Lc0 gibt es auf Discord kaum Neuigkeiten zu vermelden.
Irgendwie ist die Entwicklung ins stocken geraten.

Die Stockfish Entwicklung jedoch scheint - auch mit Lc0 Trainingsdaten - zu beschleunigen.
Gut für das ComputerSchach.
Auch die nachfolgenenden Engines machen Fortschritte.

Grüße

Lothar
Parent - By Volker Pittlik Date 2026-09-05 16:03 Upvotes 2
Ja ist denn heut schon Weihnachten?!
- - By Peter Martan Date 2026-09-05 15:31
# Name           Points     %     Elo    +/-   W-L-D         1     2    
-------------------------------------------------------------------------
1 Stockfish 19   295.0/500  59.0  +63.2  18.8  +142-52=306         59.0%
2 Stockfish 18   205.0/500  41.0     --    --  +52-142=306   41.0%      

500/500 total games, 61% draws, time control:180+1, book:UHO_2024_6mvs_+085_+094.pgn
Parent - - By Lothar Jung Date 2026-09-05 15:53
Das ist erschreckend gut.
Benchmarks und Ranglisten müssen neu aufgesetzt werden.
Unglaublich!
Parent - - By Reinhold Stibi Date 2026-09-05 18:17 Upvotes 1
ChatGPT  Stockfish 19:  Training der Engine:

Was sich beim NNUE-Training geändert hat

Stockfish 19 verwendet SFNNv16. Dabei wurde die Architektur nicht einfach größer gemacht, sondern gezielt verschlankt und gleichzeitig stärker:

Redundante Threat-Features wurden entfernt.

Dafür kamen neue Pawn-Pair-Features hinzu.
Das bisherige sekundäre NNUE-Netz, das seit Stockfish 16.1 verwendet wurde, ist wieder weggefallen.
Besonders interessant: Das Training verwendet jetzt Quantization-Aware Training (QAT).

Die neuen Trainingsmethoden wurden auf hunderten Milliarden Positionen angewendet.

Diese Positionen wurden durchgehend mit einem starken Leela-Chess-Zero-Netz neu bewertet („rescored“).

Stockfish
Der letzte Punkt ist meines Erachtens besonders spannend. Stockfish bewegt sich beim Training immer stärker weg von dem klassischen Schema

Stockfish spielt → Positionen sammeln → Stockfish-Evaluation als Trainingsziel

und hin zu einem heterogenen Trainingsdatensatz, bei dem Lc0 zusätzliche Bewertungsinformationen liefert. Schon bei Stockfish 18 wurde der Trainingsprozess automatisiert und reproduzierbar gemacht und es wurden mehr als 100 Milliarden Lc0-bewertete Positionen eingesetzt.

Stockfish

Was bedeutet „effektiver trainieren“ konkret?
Das ist wahrscheinlich genau das, worauf du hinauswillst.

Es geht nicht nur darum, mehr Positionen zu trainieren. Viel wichtiger ist das Verhältnis:

Rechenzeit → Trainingspositionen → Informationsgehalt → Spielstärke

QAT ist beispielsweise interessant, weil NNUE-Netze später mit stark quantisierten Gewichten sehr schnell auf der CPU laufen müssen. Anstatt ein Netz zunächst in hoher Präzision zu trainieren und anschließend zu quantisieren, wird die Quantisierung bereits während des Trainings berücksichtigt. Das kann dazu führen, dass das Netz seine Kapazität besser dafür nutzt, was in der späteren Integer-Auswertung tatsächlich relevant ist.

Und Stockfish 19 ist dabei laut Entwicklerteam nicht nur kleiner geworden: Gegen SF18 wurden in Tests bis zu 44 Elo Gewinn gemessen.

Stockfish

Noch interessanter: Die Trainingspipeline selbst
Wenn du dich für das „Wie trainiert man heutzutage ein Stockfish-NNUE?“ interessierst, würde ich sogar noch eine Ebene tiefer gehen.

Das Stockfish-Team hat bereits mit SF18 die Trainingspipeline grundlegend umgebaut. Das Training ist inzwischen automatisiert und reproduzierbar, sodass komplexe Trainingsstufen über standardisierte „Recipes“ miteinander verkettet werden können.

Und im aktuellen nnue-pytorch-Projekt sieht man, dass daran weiter intensiv gearbeitet wird – beispielsweise an höherem Training Throughput und neuen Scheduling-/Trainer-Implementierungen.

Das bedeutet: Die eigentliche Innovation liegt mittlerweile mindestens genauso in der Datenpipeline und dem Trainingsverfahren wie in der NNUE-Architektur selbst.

Wenn du möchtest, kann ich dir als Nächstes genau erklären, wie das Stockfish-19-NNUE trainiert wird – von der Erzeugung der Positionen über Lc0-Rescoring, Target-Werte, Loss, QAT bis zum fertigen .nnue-Netz. Das ist ziemlich faszinierend und man kann dabei auch gut verstehen, warum ein kleineres Netz stärker sein kann als ein größeres:

Ja. Ich würde das sogar etwas genauer formulieren als in meiner ersten Antwort: Der interessante Fortschritt bei Stockfish 19 ist nicht einfach „ein neues Netz“, sondern die ganze Trainingspipeline wird effizienter.

Ich gehe es einmal von unten nach oben durch.

1. Was bekommt das NNUE überhaupt als Eingabe?
Das NNUE sieht nicht einfach ein Schachbrettbild wie ein CNN.

Vereinfacht wird aus der Stellung eine große Menge diskreter Features erzeugt, insbesondere mit Informationen darüber,

wo die Könige stehen,
welche Figuren auf welchen Feldern stehen,
welche Figur relativ zu welchem König steht.
Das klassische Stockfish-NNUE benutzt dafür das HalfKP/King-Piece-Prinzip. Der große Vorteil: Nach einem Zug ändern sich nur relativ wenige Features. Deshalb kann Stockfish den sogenannten Accumulator inkrementell aktualisieren, anstatt das komplette neuronale Netz neu auszurechnen.

Das ist ein entscheidender Punkt:

Das NN muss nicht nur „gut“, sondern auch extrem billig auszuwerten sein.

2. Woher kommen die Trainingsstellungen?
Hier wird es richtig interessant.

Man erzeugt zunächst riesige Mengen von Schachstellungen. Aber eine Stellung allein ist noch kein gutes Trainingsbeispiel.

Das Netz braucht ein Target:

„Wie gut ist diese Stellung?“

Früher konnte man dafür relativ direkt die Stockfish-Suche verwenden. Das Problem ist aber offensichtlich: Dann trainiert Stockfish gewissermaßen darauf, Stockfish nachzuahmen.

Die moderne Pipeline versucht deshalb, bessere bzw. unterschiedlichartige Informationen in die Daten zu bekommen.

Die Stockfish-NNUE-Entwicklung arbeitet mittlerweile mit sehr großen Datensätzen und einer automatisierten Trainingspipeline. Im aktuellen nnue-pytorch-Projekt sieht man beispielsweise eigene Data-Loader, Validierungsdaten, verteiltes Training und automatisierte Tests.

3. Der wirklich interessante Teil: Lc0 als „zweite Meinung“
Hier kommt Leela Chess Zero ins Spiel.

Stockfish und Lc0 beurteilen eine Stellung auf grundsätzlich unterschiedliche Weise:

Stockfish:

Alpha-Beta-Suche + NNUE-Evaluation

Lc0:

neuronales Netz + MCTS

Wenn man nun sehr viele Stellungen von Lc0 bewerten lässt, bekommt man eine Art zweite Perspektive auf die Schachstellung.

Das ist enorm wertvoll.

Denn wenn man ausschließlich Stockfish-Daten verwendet, besteht die Gefahr, dass das neue NN nur immer besser darin wird, die Eigenheiten des bisherigen Stockfish-Evaluators zu reproduzieren.

Mit Lc0-Rescoring erhält man zusätzliche Information darüber, wie ein anderes starkes Such-/Netzsystem die Stellung einschätzt.

4. Warum nicht einfach Lc0 als Lehrer nehmen?
Weil das ebenfalls nicht optimal wäre.

Man möchte nicht:

„Stockfish NNUE soll Lc0 kopieren.“

Das Ziel ist vielmehr, aus den unterschiedlichen Informationsquellen ein besseres Trainingssignal zu erzeugen.

Man kann sich das ungefähr so vorstellen:

                 Schachstellungen
                       │
             ┌─────────┴─────────┐
             │                   │
        Stockfish              Lc0
        Analyse                Analyse
             │                   │
             └─────────┬─────────┘
                       │
                Trainingsdaten
                       │
                       ▼
                  NNUE Training
                       │
                       ▼
                   neues NN
                       │
                       ▼
              Spieltests / SPRT
                       │
                 stärker?
                  /      \
                ja        nein
                │           │
             behalten     verwerfen

Das Entscheidende ist also die Datenqualität, nicht bloß die Zahl der Trainingspositionen.

5. Und jetzt kommt QAT
Das ist wahrscheinlich der technisch spannendste Punkt.

NNUE muss extrem schnell laufen.

Die Gewichte werden deshalb stark quantisiert – also beispielsweise von Fließkommazahlen auf Integer-Darstellungen reduziert.

Normalerweise könnte man folgendes machen:

FP32-Netz trainieren
       ↓
fertiges Netz
       ↓
quantisieren
       ↓
schnelles Integer-Netz

Das hat aber einen Nachteil.

Während des Trainings weiß das Netz nicht, dass seine Gewichte später quantisiert werden.

Es optimiert also für:

„Wie bekomme ich die beste FP32-Evaluation?“

und nicht unbedingt für:

„Wie bekomme ich die beste Evaluation unter den Einschränkungen meiner späteren Integer-Darstellung?“

6. Quantization-Aware Training
Bei QAT wird die spätere Quantisierung bereits während des Trainings simuliert.

Sehr vereinfacht:

Gewicht
  │
  ▼
FP-Wert
  │
  ▼
Quantisierung simulieren
  │
  ▼
Integer-artiger Wert
  │
  ▼
Netzberechnung
  │
  ▼
Loss
  │
  ▼
Backpropagation

Damit lernt das Netz:

„Mit diesen wenigen verfügbaren Quantisierungsstufen muss ich trotzdem möglichst viel Schachinformation erhalten.“

Das ist besonders interessant bei NNUE, weil hier Rechengeschwindigkeit und Speicherzugriffe extrem wichtig sind.

7. Warum kann ein kleineres Netz stärker sein?
Das klingt zunächst paradox.

Man könnte denken:

Mehr Neuronen = mehr Wissen = stärker.

Das stimmt bei diesen Netzen aber nicht zwangsläufig.

Ein zu großes Netz kann seine Kapazität auch dafür verwenden, Rauschen oder Besonderheiten des Trainingsdatensatzes zu lernen.

Ein kleineres Netz kann dagegen gezwungen sein, die wirklich wichtigen Zusammenhänge zu komprimieren.

Stell dir zwei Schüler vor:

Schüler A

merkt sich 10 Millionen konkrete Stellungen.

Schüler B

versteht Bauernstrukturen, Königssicherheit, Figurenkoordination, Raum, Initiative usw.

Für unbekannte Positionen kann B besser sein.

Genau deshalb sind Änderungen an den Features so wichtig.

Bei SFNNv16 wurden beispielsweise die bisherigen Threat-Features verändert bzw. entfernt und neue Pawn-Pair-Features eingeführt. Das ist kein „größer = besser“, sondern ein Versuch, die begrenzte Netzkapazität auf besonders informative Schachmerkmale zu konzentrieren.

8. Und hier wird die Sache für mich besonders spannend
Wenn man die Entwicklung betrachtet, verschiebt sich die eigentliche Forschungsfrage immer mehr von

„Wie groß muss das NN sein?“

„Welche Information geben wir dem NN überhaupt zum Lernen?“

Das ist ein gewaltiger Unterschied.

Man kann ein Netz mit

besseren Features,
besseren Targets,
besserer Datenverteilung,
besserer Quantisierung,
besserem Sampling,
besserem Training
deutlich stärker machen, ohne es einfach immer größer zu machen.

Dass im aktuellen Stockfish-NNUE-Projekt parallel sogar am Training-Data-Loader, verteiltem Training und höherem Durchsatz gearbeitet wird, zeigt ziemlich gut, dass inzwischen die gesamte Pipeline optimiert wird.

9. Der vielleicht wichtigste Punkt: Daten sind heute der Engpass
Wenn du beispielsweise

100 Milliarden schlechte Positionen

hast, heißt das nicht automatisch, dass du ein gutes NN bekommst.

Interessanter wären vielleicht:

10 Milliarden sehr gut ausgewählte Positionen.

Deshalb sind Fragen wie

Welche Stellungen kommen überhaupt in den Datensatz?
Wie häufig kommen taktische Positionen vor?
Wie häufig Endspiele?
Wie werden triviale Stellungen herausgefiltert?
Wie werden ähnliche Positionen behandelt?
Welche Such-Tiefe wurde verwendet?
Wie werden Lc0 und Stockfish kombiniert?
Welche Targets verwendet man?
Wie stark gewichtet man verschiedene Positionen?
mindestens so wichtig wie die reine Anzahl der Positionen.

Und hier könnten wir noch eine Ebene tiefer gehen
Wenn dich Computerschach technisch interessiert, kann ich dir als Nächstes den eigentlichen Trainingsvorgang anhand eines konkreten Beispiels zeigen:

eine einzelne Schachstellung → Stockfish/Lc0 erzeugen Target → NNUE berechnet Output → Loss → Backpropagation → Gewichtsänderung → Quantisierung → fertiges .nnue

Und dabei kann ich auch erklären, was ein NNUE-Feature wie HalfKP/Pawn-Pair tatsächlich mathematisch bedeutet und warum der Accumulator Stockfish so schnell macht.

Das wäre meiner Meinung nach der spannendste nächste Schritt.
Parent - - By Olaf Jenkner Date 2026-09-05 18:45 Upvotes 1
Ziemlich viel Prahlerei
Parent - By Reinhold Stibi Date 2026-09-05 18:50
ChatGPT: Eigene Engine entwickeln


Gerne. Wenn du eine Computerschach-Engine selbst entwickeln möchtest, kann ich dich von den Grundlagen bis zu einer spielstarken Engine begleiten.

Sinnvoller Aufbau einer Schach-Engine
Brettrepräsentation

z. B. Bitboards oder 0x88
Figuren, Züge, Seite am Zug
Rochade-, En-passant- und Umwandlungsrechte
Zuggenerierung

legale Züge erzeugen
Schach, Matt und Patt erkennen
zunächst mit einer einfachen, gut testbaren Implementierung
Suche

Minimax
Negamax
Alpha-Beta-Pruning
später Iterative Deepening
Bewertungsfunktion

Materialwerte
Figurenaktivität
Bauernstruktur
Königssicherheit
Zentrum und Mobilität
später positionelle Tabellen
Performance

Transposition Table
Zugsortierung
Killer Moves
History Heuristic
Quiescence Search
Erweiterungen

Opening Book
Endspieldatenbanken
UCI-Protokoll
Multi-Threading
NNUE
Ein guter Entwicklungsweg
Version 1: Brett + legale Züge
→ Version 2: einfacher Minimax-Spieler
→ Version 3: Alpha-Beta
→ Version 4: Quiescence + bessere Bewertung
→ Version 5: Transposition Table + Zugsortierung
→ Version 6: UCI + Tests
→ Version 7: NNUE und weitere Optimierungen

Wenn du möchtest, können wir jetzt direkt eine eigene Schach-Engine programmieren. Ich kann beispielsweise eine vollständige erste Version in C++, Python oder Rust aufbauen und jeden Bestandteil erklären.

Du:

Wenn du binnen einer Woche eine Engine erstellen müsstest, welche Elo-Leistung wäre da möglich ?

ChatGPT:
Ja — in einer Woche ist erstaunlich viel möglich, wenn du nicht bei null anfängst und das Ziel eine klassische CPU-Schachengine ist.

Grob würde ich bei 7 Tagen konzentrierter Entwicklung etwa so rechnen:

Entwicklungsstand nach 1 Woche  Grobe Spielstärke
Einfache Engine: Minimax + Alpha-Beta  1000–1400 Elo
Gute klassische Engine mit Quiescence, TT, Move Ordering  1500–1900 Elo
Sehr gut optimierte 1-Wochen-Engine  1900–2200 Elo
Mit starker vorhandener Schachbibliothek / NNUE integriert  2200–2600+ Elo
Bestehende Stockfish-Basis modifiziert  3000+ Elo möglich

Wichtig: Diese Zahlen sind nur grobe Größenordnungen. Elo hängt extrem davon ab, gegen wen und unter welchen Bedingungen gemessen wird (Bedenkzeit, Hardware, Eröffnungsbuch, Syzygy, Testset usw.).

Was ich in 7 Tagen anstreben würde
Wenn ich die Engine tatsächlich selbst bauen müsste, würde ich nicht versuchen, möglichst viele Features einzubauen. Ich würde auf eine kleine, extrem saubere Engine setzen:

Bitboards
sehr schneller Move Generator
Negamax + Alpha-Beta
Iterative Deepening
Quiescence Search
Transposition Table
gutes Move Ordering
Killer-/History-Heuristik
ordentliche statische Evaluation
UCI
umfangreiche Perft-Tests
Damit halte ich ~1800–2100 Elo auf normaler Desktop-Hardware für ein realistisches ambitioniertes Ziel, wenn die sieben Tage wirklich fokussiert genutzt werden.

Der interessante Punkt ist aber: Mit einer NNUE-Evaluation verändert sich die Rechnung drastisch. Man könnte die Suchlogik selbst entwickeln, aber eine trainierte NNUE bzw. eine vorhandene Architektur verwenden. Dann wäre eine >2200-Elo-Engine innerhalb einer Woche wesentlich realistischer.

Wenn dein Ziel dagegen lautet „wirklich alles selbst schreiben, keine fertige Engine, keine fremde Evaluation“, würde ich eher 1600–2000 Elo als vernünftiges Wochenziel setzen.

Wenn du willst, kann ich dir auch einen konkreten 7-Tage-Plan erstellen, mit dem wir auf ~2000 Elo zielen – inklusive Architektur, Features und täglicher Priorisierung.

Du:

es müsste eine UCI-Engine sein, die man in die FritzGUI einbinden kann. Auf Stockfish-Niveau zu kommen dürfte nicht möglich sein.

ChatGPT:
Genau. Stockfish-Niveau von Grund auf in einer Woche ist praktisch nicht realistisch. Aber eine eigenständige UCI-Engine, die sich sauber in die FritzGUI einbinden lässt und bereits ordentlich spielt, ist absolut machbar.

Ich würde das Ziel sogar etwas anders formulieren:

Eine kleine, robuste UCI-Engine mit etwa 1800–2200 Elo, die innerhalb einer Woche entsteht und anschließend systematisch weiter verbessert werden kann.

Die FritzGUI ist dabei kein besonderes Problem. Entscheidend ist, dass die Engine das UCI-Protokoll korrekt implementiert. Dann kann Fritz sie als externe UCI-Engine verwenden.

Was ich für eine Woche bauen würde
Tag 1 – Fundament

C++-Projekt
Bitboard-Brettrepräsentation
FEN einlesen/ausgeben
Zuggenerierung
position, ucinewgame, isready, quit
grundlegendes go
Tag 2 – Suche

Negamax
Alpha-Beta
Iterative Deepening
Zeitmanagement
Schach-/Matt-Erkennung
Principal Variation
Tag 3 – Suchverstärkung

Transposition Table
Zugsortierung
Hash Move
Killer Moves
History Heuristic
Quiescence Search
Tag 4 – Evaluation

Material
Piece-Square Tables
Mobilität
Bauernstruktur
Passed Pawns
Königssicherheit
Läuferpaar
verschiedene Phasen der Partie
Tag 5 – Performance

Perft-Tests
Suche optimieren
Benchmarking
Hash-Größe
Null-Move Pruning
Late Move Reductions
weitere Suchheuristiken
Tag 6 – Spielstärke

Self-Play
Parameter-Tuning
Testpositionen
Tactical Suite
Evaluation gezielt verbessern
Tag 7 – Fritz + Stabilität

vollständiges UCI
uci, isready, setoption, position, go, stop, quit
ponder-Unterstützung bzw. sauberes Verhalten ohne Ponder
korrekte Zeitkontrolle
Fritz-Test
Elo-Matches
Release-Build
Ein wichtiger Punkt
Ich würde nicht versuchen, Stockfish zu kopieren.

Stockfish hat über viele Jahre:

hochoptimierte Suche,
enorme Testinfrastruktur,
NNUE,
sehr viel Tuning,
riesige Mengen an Rechenzeit,
und eine große Entwicklergemeinschaft
angesammelt.

Stattdessen würde ich eine bewusst kleine Engine bauen. Das hat sogar einen Vorteil: Wir können genau nachvollziehen, warum sie einen Zug spielt und anschließend jeden Bestandteil verbessern.

Eine mögliche Architektur wäre beispielsweise:

MyEngine

├── Board
│   ├── Bitboards
│   ├── FEN
│   └── Make/Unmake Move

├── MoveGen
│   └── Legal Moves

├── Search
│   ├── Negamax
│   ├── AlphaBeta
│   ├── Quiescence
│   ├── Null Move
│   ├── LMR
│   └── Iterative Deepening

├── Evaluation
│   ├── Material
│   ├── PST
│   ├── Mobility
│   ├── Pawns
│   ├── King Safety
│   └── Game Phase

├── TT
│   └── Transposition Table

└── UCI
    ├── uci
    ├── isready
    ├── position
    ├── go
    ├── stop
    └── quit

C++ würde ich dafür klar bevorzugen. Nicht weil Python keine Engine bauen kann, sondern weil wir bei einer einwöchigen Entwicklung möglichst viel Rechenleistung in die Suche stecken wollen.

Und ja: FritzGUI als Ziel ist sinnvoll. Wir können die Engine so entwickeln, dass am Ende beispielsweise einfach

MyEngine.exe

gestartet wird und Fritz sie über UCI erkennt.

Wenn du möchtest, können wir das tatsächlich als kleines Projekt angehen: Ich würde mit dir die Engine Schritt für Schritt aufbauen und den Code so strukturieren, dass wir nach dem ersten Tag bereits eine lauffähige UCI-Engine haben. Danach können wir mit Messungen statt Bauchgefühl die Elo hochziehen.
Up Topic Hauptforen / CSS-Forum / Stockfish 19

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill