Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / Schachprogrammierung / Schachprogrammierung
1 2 Previous Next  
- - By Lothar Jung Date 2021-06-30 12:00 Upvotes 4
Dauer 30 Minuten:

https://youtu.be/U4ogK0MIzqk

Lothar
Parent - - By Thomas Plaschke Date 2021-06-30 17:48 Upvotes 1
Hat Spaß gemacht. ... und 'ne Katze war auch noch dabei!
Prima Empfehlung!

Viele Grüße
Th. Plaschke
Parent - - By Lothar Jung Date 2021-07-01 09:22 Upvotes 1
Jetzt kommt das Beste, der Code in C#:

https://github.com/SebLague/Chess-AI

Lothar
Parent - - By Thomas Plaschke Date 2021-07-01 10:26 Upvotes 1
Neugierig hatte ich mir das bereits gestern angesehen. Es gibt leider keinen Hinweis auf das Entwicklungssystem, mit dem das Programm erstellt wurde. Auch fehlt eine Datei, die für mich als Projekt-File erkennbar wäre. Den bloßen Schach-Quellcode habe ich gefunden, aber seine Bindung zu den übrigen Projektdateien fehlt mir. Deswegen kann ich mit dem Quellcode nichts anfangen.

Viele Grüße
Th. Plaschke
Parent - - By Lothar Jung Date 2021-07-01 12:35 Upvotes 1
Hallo Thomas,

ich werde den Autor kontaktieren.

Ich bin natürlich auch daran interessiert, das Programm zu kompilieren.
Auch wegen möglicher Erweiterungen (Bewertung, Bitboard usw.).

Vielleicht finden sich noch ein paar andere Mitstreiter.

Wir haben m.E. im Forum ausreichend viele Kollegen, die von Informatik, Mathe und Schachtheorie Kenntnisse haben.

Ich wünsche mir, das sich unser Forum in dieser Richtung weiterentwickelt.

Grüße

Lothar
Parent - - By Thomas Plaschke Date 2021-07-01 13:39 Upvotes 1
Wäre sicher interessant. Allerdings ist C# nicht meine Welt. Man darf sich durch das Video auch nicht blenden lassen. Es steckt viel mehr konzeptionelle Arbeit (und Kodierung) hinter dem Programm als das Video zeigt.

Ohne auf besonderes didaktisches Expertenwissen zurückgreifen zu können, würde ich eine Engine in C, in der das UCI-Protokoll implementiert ist, für interessanter halten. Denn C ist einfacher zu erlernen als C# oder C++, was es einer Gruppe, die vorwiegend aus engagierten, lernwilligen Amateuren und Dilettanten besteht, leichter macht, der Entwicklung zu folgen. Zudem ermöglicht das UCI-Protokoll die Verwendung des Programms in den vertrauten GUIs und erspart die Programmierung eines eigenen GUI, was vermutlich aufwändiger wäre als ein einfaches Schachprogramm zu schreiben.

Viele Grüße
Th. Plaschke
Parent - By Wolfram Bernhardt Date 2021-07-01 15:33 Upvotes 2
Mein Welt ist C#

Aber ich stimmt hier vollkommen zu: Ein tolles Video, aber von der der kompaktne, leichtfüßigen Präsentation darf man sich nicht in die Richtung täuschen lassen, dass das alles mal schnell gemacht wäre.

Von dem, was man sieht, arbeitet er mit Visual Studio, das im nicht-kommerziellen Bereich frei verwendet werden kann. Um die Figuren anfass- und umsetzbar zu machen, ist allerdings auch schon einiges nötig, das er hier ausgelassen hat.

Aber umso gespannt wäre ich auch auf den kompletten Quellcode.

Widersprechen muss ich allerdings, dass C# schwieriger zu lernen sei als C oder C++. Ich habe über die Jahre mit allen drei Sprachen (und etlichen mehr ) gearbeitet. C ist halt sehr ursprünglich und gut geeignet, um die grundsätzliche Funktionsweise von Computer zu verstehen und lernen - kann einem mit seinen Adressierungsarten und den fehlenden Sicherheitsmechanismen aber gerade am Anfang schnell den letzten Nerv rauben.
Für C++ gibt eher noch dasselbe, dazu kommt allerdings die erweitere Ausdrucksfähigkeit, die enorm komplexe Denkvorgänge ermöglicht - aber manchmal auch erfordert.

C# (als .net-Sprache) ist dagegen viel leichter zu lernen, sehr klar und konsequent in seiner Ausrichtung und man bewegt sich immer in einem sicheren Umfeld.
Jedenfalls das ursprüngliche C#. Ich gebe aber sofort gerne zu, dass all die Erweiterungen, die nach und nach dazukamen, einfach sehr viel geworden sind. Ich glaube, ich kenne selber auch gar nicht mehr alles, was in der Sprache geht. Aber das muss man auch nicht.

Viele Grüße
      Wolfram
Parent - By Lothar Jung Date 2021-07-01 15:55 Upvotes 1
Hier ist ein übersichtliche Schachengine in C, mit Bitbases:

https://github.com/kz04px/Baislicka

Die Stärke wird auf 2.200 Elo. Tunierspieler, mehr als genug.

Lothar
Parent - - By Wolfram Bernhardt Date 2021-07-01 15:38 Upvotes 1
Den Quellcode kann man ja herunterladen - allerdings hat er die Implementierung mit der Unity-Engine gemacht. Das ist eine Umgebung, mit der man Spiele/Anwendungen bauen kann, die dann auf verschiedenen gängigen Plattformen laufen. iOS, Androis, Windows, Mac.
Parent - - By Lothar Jung Date 2021-07-04 10:04 Upvotes 1
Hier „Das große Computerschach Buch“:

https://www.c64-wiki.de/wiki/Das_grosse_Computerschachbuch

Lothar
Parent - - By Thomas Plaschke Date 2021-07-04 11:39 Upvotes 1
Ein guter Hinweis.
Neugierige können das lange schon vergriffene Buch über den dort angegebenen Weblink (ganz unten) online lesen.

Viele Grüße
Th. Plaschke
Parent - By Lothar Jung Date 2021-07-04 11:53 Edited 2021-07-04 11:56 Upvotes 1
Parent - By Lothar Jung Date 2021-07-04 12:09 Upvotes 1
Hier ein umfassender Beitrag zu NNUE auf „Chessprogramming.org“:

https://www.chessprogramming.org/Stockfish_NNUE

Lothar
Parent - By Lothar Jung Date 2021-07-04 12:37 Upvotes 1
Hier ist ein Beitrag zur Bewertung von Figuren, abhängig von der Position auf dem Brett:

https://www.stmintz.com/ccc/index.php?id=28583

Der Beitrag nennt auch wichtige Verweise.

Lothar
Parent - By Lothar Jung Date 2021-07-04 12:44 Upvotes 1
Hier ist eine umfassende Beschreibung der UCI-Schnittstelle:

http://wbec-ridderkerk.nl/html/UCIProtocol.html

Lothar
Parent - - By Lothar Jung Date 2021-07-04 14:54 Edited 2021-07-04 15:46 Upvotes 1
Hier ist eine wichtige AlphaZero Veröffentlichung:

Assessing Game Balance with AlphaZero: Exploring Alternative Rule Sets in Chess

https://arxiv.org/pdf/2009.04374.pdf

Zusammenfassung bei Chess.com:

https://www.chess.com/news/view/new-alphazero-paper-explores-chess-variants

Lothar
Parent - By Thomas Plaschke Date 2021-07-04 18:19 Upvotes 1
An den Experimenten mit alternativen Spielregeln hatte ich mich schon mal festgelesen - und jetzt schon wieder! Besonders das seitliche Ziehen der Bauern ist eine sehr interessante Variante. Nicht schwer zu lernen, keine Auswirkung auf andere Regeln, also einfach, aber nach Kramnik die tiefgreifenste der untersuchten Änderungen, weil die Bauerstrukturen nicht mehr statisch sind. Man bekommt eine Vorstellung, was für einen Einschnitt die Einführung der Rochade bedeutet haben muss.

Vielen Dank und viele Grüße
Th. Plaschke
Parent - - By Frank Brenner Date 2021-07-02 17:33 Edited 2021-07-02 17:35 Upvotes 1
Hallo Lothar,

ja, das Video beschreibt (auf modernem PC , mit moderner Programmiersprache) wie die Programmierer damals in den 70er Jahren mit der Schachprogrammierung angefangen haben.

Das fertige Programm dürfte um einige hundert ELO schwächer sein als der Mephisto MM4 oder Almeria - auf gleicher Hardware

Hashtabellen hatte der MM4 mangels Speicher nicht, aber so weit ich weiß war die Implementation schon früher in den 70ern dokumentiert bei dem Chess Programm von Larry Atkin and David Slate

Wenn du also mit diesem Programm jetzt weiter machst und optimierst, dann treffen wir uns in 20 Jahren nochmal, vielleicht hast Du dann die Spielstärke von MM4 erreicht, was ich aber nicht glaube:

Crafty gab es damals auch schon und war den Mephisto Geräten auf gleicher Hardware stets unterlegen. Crafty wurde von Prof. R. Hyatt programmiert und der ist ein sehr intelligenter Mensch.

Die Performance von Crafty würde unsere css-Community kaum erreichen .... außer: Wir bedienen uns bei Stockfish oder anderen Programmen (z.B. Fruit ) als Inspiratios Repertoire

Heutzutage könnten wir aber eine Abkürzung machen: die zweitwichtigste Funktion im Schachprogramm evaluate() .. können wir durch eine Abfrage  auf ein NN ersetzen.

Grüße
Frank
Parent - By Lothar Jung Date 2021-07-02 18:07 Upvotes 1
Hallo Frank,

ich fand das Video sehr ansprechend.

Natürlich hat es nur die Grundfunktionen, aber auf heutiger Hardware dürfte es nicht ganz so schwach sein.

Etwas besser sieht es mit dem C-Programm aus, das sehr strukturiert programmiert wurde und ca. 2.200 Elo erreichen soll.

Man könnte es kompilieren und sehen wie es spielt.

Es ist halt nur ein Beitrag zum wesentlichen Kern der Schachprogrammierung.

Vielleicht gibt es noch bessere und anschaulichere.

Viele Grüße

Lothar
Parent - By Lothar Jung Date 2021-07-03 10:33 Upvotes 1
Hallo Frank,

Hier ist ein schönes strukturiertes Beispiel der Schachprogrammierung in Python:

https://andreasstckl.medium.com/writing-a-chess-program-in-one-day-30daff4610ec

Lothar
Parent - By Lothar Jung Date 2021-07-03 13:57 Edited 2021-07-03 14:01 Upvotes 1
Hier die sehr lehrreiche a0lite PythonEngine von D.Kappe.

Die Basis NN MCTS Engine beinhaltet nur 95 Zeilen von Python!!

Die Engine nutzt als default Netz badgyal.
Die Spielstärke soll 2050 Elo betragen.

Der ProgrammCode und Installation ist bei github runterzuladen.

https://github.com/dkappe/a0lite

Viel Spaß und vielen Dank an Dietrich!

Lothar
Parent - By Lothar Jung Date 2021-07-04 13:41 Edited 2021-07-04 13:59 Upvotes 1
Hier ein Wiki-Beitrag zu Bitboards in der Schprogrammierung:

https://de.wikipedia.org/wiki/Bitboard?wprov=sfti1

Es gibt auch ein englischsprachiges Taschenbuch zu der Thematik:

„How to Build a bitboard Chess engine“

Lothar
Parent - By Lothar Jung Date 2021-07-04 16:32 Upvotes 1
Hier ein größere lesbare Doktorarbeit zum Computerschach:

http://webdoc.sub.gwdg.de/ebook/dissts/Dortmund/Kantschik2006.pdf

Lothar
Parent - - By Lothar Jung Date 2021-07-04 10:51 Upvotes 1
Hallo Moderator,

könntest Du den Thread in „Schachprogrammierung“ ändern?

Grüße

Lothar
Parent - - By Max Siegfried Date 2021-07-04 17:19
Das wichtigste ist doch wann die Stockfish Entwickler den Stockfish auf dem MacBook Pro M1 endlich mal schneller machen.
Parent - - By Lothar Jung Date 2021-07-04 17:33 Upvotes 2
Das zentrale Ziel dieses Threads ist es, die wesentlichen Module der Schachprogrammierung aufzuzeigen, Programmbeispiele und die Literatur dazu, näher zu bringen. Der Thread dient vorrangig der Zusammenstellung von Informationen.
Die Thematik ist nicht einfach und die Programmierung auch nicht. Lc0 und NNUE sind zudem sehr mathematisch.
Parent - - By Reinhold Stibi Date 2021-07-04 17:53 Edited 2021-07-04 18:39 Upvotes 1
Kein Einziger hier in der Runde wird ein lauffähiges Schachprogramm entwickeln können das eine brauchbare
interessante Engine wäre.

Da stellt sich dann schon die Frage ob der immense Zeitaufwand, nur für einen Einblick in die Schachprogrammierung,
angebracht ist, der in der Praxis nichts bringt.

Vom Können und Wissen seid Ihr doch meilenweit von den Profis entfernt

   

Aber wenn es Euch Spaß macht dann ist das in Ordnung. Mir wäre die Zeit dafür zu schade.
Parent - - By Benno Hartwig Date 2021-07-04 22:12 Edited 2021-07-04 22:31 Upvotes 4

> Kein Einziger hier in der Runde wird ein lauffähiges Schachprogramm entwickeln können das eine brauchbare interessante Engine wäre


???
Zumindest Andreas tust du damit aber ganz bestimmt reichlich Unrecht!
Oder du erlaubst dir seeehhr, sehr strenge Ansprüche an ein "brauchbar interessant"!
Sein Rubi ist mit dem dritten Platz in League 1 nur ziemlich knapp nicht aufgestiegen in die Premium Division, in die Elite-Runde dieser Zeit!

Außerdem, auch wenn ich nicht vorhabe, ein Programm zu entwickeln, auch wenn ich dies gut zumindest auf absehbare Zeit auch gar nicht könnte,
finde ich die Ideen und Kniffe, die im Laufe der Jahrzehnte hinzugekommen sind, trotzdem ausgesprochen interessant.
Und sie sind oft auch für den Nicht-Entwickler von der Idee her ausgesprochen gut verständlich.
Die Grundstruktur eine AB-Suche, auf der die Entwicklung ja meistens immer noch aufsetzt, ist ja letztlich nichts besonders Kompliziertes.
Parent - - By Lothar Jung Date 2021-07-05 08:32 Upvotes 3
Hallo Benno,

mir geht es natürlich in erster Linie darum, Einblicke in die Schachprogrammierung zu ermöglichen.
Herr Stibi hat dies nicht verstanden.

Unbenommen könnten IT-Affine ein github Schachprogramm compilieren und vielleicht Veränderungen/Verbesserungen/Optimierungen versuchen/vornehmen.

Ich meine, daß in einem Computerschachforum ein Thread über Schachprogrammierung nützlich und interessant ist.
Ich habe versucht, damit einen Anfang zu machen.

Viele Grüße

Lothar
Parent - - By Reinhold Stibi Date 2021-07-05 09:04 Upvotes 1
Ich habe verstanden, dass es Herrn Jung in erster Linie um seine Selbstdarstellung geht.

Aber sei's drum.

Soll er doch ruhig weitermachen; war ja nur eine kurze Meinungsäußerung von mir dazu.

 
Parent - - By Benno Hartwig Date 2021-07-05 10:22 Upvotes 6
"Gut" könnte ich deinem Posting spendieren, will ich aber nicht.
Aber ich bedaure, dass es keinen "schlecht"-Button gibt.
Parent - By Lothar Jung Date 2021-07-05 10:29 Edited 2021-07-05 10:38 Upvotes 4
Es ist unerträglich, wie RS hier immer rumstänkert.
Er kann überhaupt nicht einschätzen, wieviel Aufwand und Vorkenntnisse für die Recherchen erforderlich sind.

Lothar
Parent - - By Lothar Jung Date 2021-07-05 12:39 Edited 2021-07-05 13:07 Upvotes 1
Hallo Benno,

auch für Deinen Beistand eine interessante Veröffentlichung „Phoenix: A Self-Optimizing Chess Engine„.
Besonders gut gefallen mir die Passagen zur Stellungsbewertung.

https://arxiv.org/pdf/1603.09051.pdf

Hier noch Links zu Phoenix und Cocoochess:

https://www.chessprogramming.org/Phoenix

Lothar
Parent - - By Detlef Uter Date 2021-07-05 18:49 Edited 2021-07-05 18:51 Upvotes 1
Wem sagst Du das!  Auch ich bedaure das sehr!   
Parent - - By Lothar Jung Date 2021-07-05 19:46 Upvotes 1
Hallo Detti,

ich kam und komme mit Eduard sehr gut zurecht.
Er hat meine Entschuldigung angenommen. Kein Problem.
Gut, er hatte ein großes Selbstbewusstsein, aber zurecht, er hatte mich darauf hingewiesen, das ich mich mit der Schach.de GUI mehr beschäftigen solle. Das stimmte. Aber ich hatte andere Schwerpunkte.
Dann kam RS und war beleidigt und zog mich in den Konflikt mit hinein.
Eduard ist ein großer Verlust für unser Forum.
Ich möchte mich dafür entschuldigen, das ich den Charakter von RS nicht eher erkannt habe.

Liebe Grüße

Lothar
Parent - By Reinhold Stibi Date 2021-07-05 20:20 Edited 2021-07-05 20:59 Upvotes 1
Mit LJs Charakter möchte ich bestimmt  nicht tauschen , er ist eine
große Enttäuschung. Ich habe LJ durch seine ständigen zahlreichen telefonischen Gespräche kennengelernt.
Dazu möchte ich aber keine näheren Angaben machen.

LR hat über Eduard im Forum geschrieben: "Du hast volle negative Energie"

Das waren seine Worte nicht die meine und über LJs weiteren Lästerungen
enthalte ich mich, denn das waren vertrauliche Gespräche.

Ich bin froh, dass ich mit LJ  nichts mehr zu tun habe.
Parent - - By Dieter Kraft Date 2021-07-05 11:52 Upvotes 5
Hallo verehrte Schachfreunde,

dieser Thread ist sehr spannend und mit vielen Quell-Hinweisen verschiedener Autoren
kundig und liebenswürdig versehen -- mein großer Respekt!

Aber warum muss ein ignoranter Stänkerer  dann auch hier noch mit seinen trivialen
Gemeinheiten den Informationsfluss stören?

Dieter
Parent - By Lothar Jung Date 2021-07-05 11:56 Edited 2021-07-05 12:23 Upvotes 1
Hallo Dieter,

für Dich und meine Unterstützer habe ich jetzt was ganz Gutes:

Tom Kerrigan’s Simple Chess Program (TSCP) is a small, open-source chess engine that I made in 1997. It’s a tutorial engine, i.e., it’s designed to teach people how chess engines work.

TSCP has the following features:
Only 2,258 lines of C code
Lots of comments!
Written for clarity (not speed or strength)
Observes all rules of chess
Opening book
xboard compatible
Requires less than 64KB of RAM

Community

Please visit the Community page to see some of the interesting things people have done with TSCP!

License

TSCP is copyrighted. If you want to copy it (all or part of it) or create a derivative work, you need my permission.

To request permission, please e-mail me at tom.kerrigan@gmail.com.

Files

tscp181c.zip  TSCP version 1.81c source code
tscp181.exe.zip  TSCP version 1.81 executable for Windows

http://www.tckerrigan.com/Chess/TSCP/

https://www.google.de/imgres?imgurl=https%3A%2F%2Flearncgames.com%2Fwp-content%2Fuploads%2F2020%2F09%2Ftom-kerrigan-chess.png&imgrefurl=https%3A%2F%2Flearncgames.com%2Fchess-in-c%2F&tbnid=8XLpGNmFyBAI_M&vet=12ahUKEwjOp5b_1cvxAhWD1-AKHXDdCcUQMygLegUIARDJAQ..i&docid=yN3xfm3YplXzLM&w=370&h=375&q=chess%20programming&hl=de-de&client=safari&ved=2ahUKEwjOp5b_1cvxAhWD1-AKHXDdCcUQMygLegUIARDJAQ

Lieben Dank

Lothar

PS: Ich werde den Autor anmailen. Uns vorstellen und ihn bitten, uns bei Verständnisproblemen zur Seite zu stehen.
Parent - - By Lothar Jung Date 2021-07-05 15:37 Upvotes 2
Hier ist eine lesenswerte deutschsprachige Diplomarbeit von Herrn Philip Paulsen an der TU Darmstatt aus 2009.
Die Suche (MiniMax, A/B und Ruhesuche) ist sehr verständlich herausgearbeitet, auch die Bewertungskriterien.
Im AI-Teil wird natürlich sehr mathematisch.

http://www.ke.tu-darmstadt.de/lehre/arbeiten/diplom/2009/Paulsen_Philip.pdf

Beste Grüße

Lothar
Parent - - By Benno Hartwig Date 2021-07-05 20:47 Upvotes 1
Thanx
Niedlich ist hier ja auch die Levitt-Gleichung, die in der Arbeit erwähnt wird:
...dass die ELO-Zahl, die jemand, einige Jahre schachlicher Anstrengung vorausgesetzt, erreichen kann, in etwa dem zehnfachen seines IQ plus 1000 entspricht.

Was das alles gibt!
Na dann mal los...
Parent - By Lothar Jung Date 2021-07-05 20:53 Upvotes 1
Kann so sein, nichts ist für immer!
Demut ist eine große Stärke.
Parent - - By Lothar Jung Date 2021-07-06 10:36 Edited 2021-07-06 10:51 Upvotes 3
Hier eine weitere Diplomarbeit zur Erstellung eines Schachprogramme für Ressourcenarme Systeme wie PDAs von Johannes Hartz (Uni Hamburg) aus 2005.

Dies ist meine Lieblingsveröffentlichung: theoretisch ausführlich und gut verständlich, umfassend, viele Codebeispiele und erläuternde Grafiken. Sehr gut und empfehlenswert!

https://users.informatik.haw-hamburg.de/~ubicomp/arbeiten/diplom/hartz.pdf

Lothar
Parent - - By Jörg Oster Date 2021-07-07 19:19 Upvotes 1
Du machst dir wirklich sehr viel Arbeit, Lothar!

Ergänzend kann ich jedem, der wirklich an der Materie interessiert ist, nur dazu raten,
selbst den Programmierstift in die Hand zu nehmen.
Egal welche Sprache präferiert wird, es gibt ja mittlerweile zu allen gute Tutorials.

Wer z. B. an der P-UCT Suche à la Lc0 interessiert ist, dem empfehle ich Dieter Kappe's a0lite. Klein, aber oho!

Oder aber mal selbst eine Minimax-Suche schreiben.
Es gibt ja genügend frei zugängliche Engine-Sourcen, wo man sowas mal ausprobieren kann.
Danach dann Alpha-Beta.

Es ist erstaunlich, welche Einblicke/Erkenntnisse man bei sowas gewinnen kann.
Und auch, wie schnell ein Fehler/Bug Einzug halten kann ...

Zur Zeit lasse ich bei den TCEC-Partien meine relativ einfache UCT-Suche in Stockfish mitlaufen.

Vielleicht wage ich mich auch mal an eine Proof-Number Suche ran. Mal schauen. 
Parent - - By Benno Hartwig Date 2021-07-07 20:26 Upvotes 1
Die Suche in Grundzügen lernt man mit sehr wenig Code auch kennen, wenn man mal 4-gewinnt programmiert.
Und man bekommt schrittweise die Verbesserungen vor Augen geführt
1) Wenn man zunächst mit minimax-Suche anfängt
2) dann auf alpha-beta umsteigt (Zugreihenfolge ganz simpel 1,2,3,4,5,6,7)
3) Zugsortierung einbaut (zunächst 4,3,5,2,6,1,7 auch ganz simpel)
4) Hauptvariante und iterative Tiefensteigerung implementiert, mit Nutzung der Hauptvariante.
5) Killerzüge ausnutzt (uiuiui, was klang das geheimnisvoll, als ich in den 80ern erstmalig den Begriff hörte )
...

Und das ist dann auch gar nicht so viel Code, der da erstellt werden muss.
Parent - - By Frank Brenner Date 2021-07-07 23:03 Edited 2021-07-07 23:06 Upvotes 2
Sehr spielstark  wird 4-Gewinnt wenn du bei der Bewertungsfunktion die leeren Slots hochrechnest um zu gucken wer vom Standpunkt der Parität als erstes dran kommt eine Dreierreihe zu einer Viererreihe zu ergänzen ....
Das geht statisch sehr schnell.

Über ein ähnliches Verfahren war Richard Lang auch einmal stolz auf sich, denn er hat die Zugfolge bei Schlagzügen statisch ausgerechnet, also ohne mühselige Suche.

Beim Schach ist das Potential sich dabei zu vertun aber deutlich größer als bei 4-Gewinnt, da beim Schach durch Schlagzüge häufig  Felder freiwerden durch die dann aufeinmal neue Züge Schlagzüge  entstehen können.
Deswegen wird sowas bei SF m.e. nicht gemacht.
Parent - By Benno Hartwig Date 2021-07-07 23:29 Edited 2021-07-07 23:46 Upvotes 1

> Über ein ähnliches Verfahren war Richard Lang auch einmal stolz auf sich, denn er hat die Zugfolge bei Schlagzügen statisch ausgerechnet, also ohne mühselige Suche.


Ich erinnere mich, dass das BASIC-Programm aus "das große Computerschachbuch" dies auch versuchte, wenn dir Ruhesuche einfach zu sehr in die Tiefe ging.
Interpretiertes BASIC auf einem 8-Bit-1-MHz-Prozessor ist halt eine sehr gemächliche Angelegenheit.
Und dieser Part war natürlich fehleranfällig! Aber fix!
Parent - - By Thomas Zipproth Date 2021-07-08 00:20 Upvotes 1
Frank Brenner schrieb:

Beim Schach ist das Potential sich dabei zu vertun aber deutlich größer als bei 4-Gewinnt, da beim Schach durch Schlagzüge häufig  Felder freiwerden durch die dann aufeinmal neue Züge Schlagzüge  entstehen können.
Deswegen wird sowas bei SF m.e. nicht gemacht.


Es wird gemacht, nennt sich see - Static Exchange Evaluation und dient hauptsächlich zur Verbesserung der Zugsortierung.
Es ist allerdings nicht wirklich statisch sondern eine Art sehr schnelle vereinfachte nichtrekursive Alpha Beta Suche.
Parent - By Reinhold Stibi Date 2021-07-08 09:05 Upvotes 1
Die Schachprogrammierung ist eine mühevolle Sache.

Zuerst müssen die Quellen dafür aufgefunden werden dass man sich einen Überblick verschaffen kann.

Das Grundsätzliche wird noch ein Laie verstehen verstehen können.

Wenn man aber tiefer einsteigen möchte, denke ich dass mathematische und informatische Kenntnisse erforderlich sind.

Die Frage ist ob man das aus Freude für sich selber oder für die Allgemeinheit machen möchte.

Dann muss man sich entscheiden, welche Programmiersprache man verwenden möchte.

Soll es eine UCI-Engine sein; in welche GUI soll die Engine eingebunden werden; welche Spielstärke kann
erreicht werden, dass sie auch für die Allgemeinheit interessant ist. 

Das ist alles sehr komplex und sehr schwierig.

Ab einem bestimmten Niveau braucht man dazu auch sehr viel Talent.

Auch die Profis wie Johan de Koning,  Richard Lang, Ed Schröder, Frans Morsch brauchten für
die Entwicklung dazu Jahre.

Ich bewundere diese Entwickler/Programmierer, denn sie haben Ausnahmeleistungen erbracht.

Z.Zt. beschäftige ich mich auch wieder gerne mit meinen Schachcomputern und bin immer wieder
erstaunt was Ed Schröder mit seinem MMV aus dem Jahre 1990, Elo 2005, Prozessor 65C02, 4,9 MHz,
32 KB ROM an Programmierleistung erbracht hat.

 
Parent - - By Wolfram Bernhardt Date 2021-07-08 09:15 Edited 2021-07-08 09:27 Upvotes 1
Hi!

An 4Gewinnt habe ich über die Jahre auch immer wieder gebastelt. Bei der letzten Runde ist mir ein Durchbruch gelungen und ich glaube , mein Progrämmchen spielt jetzt nahezu perfekt.

4Gewinnt ist ja gelöst und ich habe einige Testreihen laufen lassen, bei denen mein Programm immer den (bzw. einer der) besten Züge fand. In erträglicher Bedenkzeit von eine paar Sekunden auf einem damals üblichen Laptop.

Dabei verwende ich die normale, klassische Alpha-Beta-Suche, der Clou ist eine sehr effiziente Repräsentation der Gewinnmöglichkeiten beider Seiten, aus denen sich die Bewertung der Stellung quasi von alleine ergibt.

Ich weiß leider nicht, wie ich genauer prüfen und belegen kann, dass es perfekt spielt, darum bleibt es erstmal bei der zuversichtlichen Annahme...

Das gute Mustrum könnte übrigens ein Update vertragen - mit einer Vergrößerungfunktion. Auf heutigen Auflösungen ist es ziemlich winzig.

Viele Grüße
     Wolfram
Up Topic Hauptforen / Schachprogrammierung / Schachprogrammierung
1 2 Previous Next  

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill