|
|
Themen-Optionen | Ansicht |
|
|
||||||||||||
Neues Futter für Acid Ape / DGT Brett: HMChess (Neu: mit ELO-Regler im 6.Beitrag)
Hallo zusammen,
nachdem sich Thorsten ja vor einigen Jahren schon getraut hat, sein Schachprogramm zu veröffentlichen... Wie Einige von Euch in einem anderen Thread vielleicht schon mitbekommen haben, habe ich meine eigene Schachengine nach Android portiert und erfolgreich unter Acid Ape (und Chess for Android) zum Laufen gebracht. Da mir diese Community seit Jahren so viel Spaß bereitet und man immer Hilfe bekommt und viele fleißige Helfer so viele tolle Informationen zusammentragen, möchte ich auch einmal etwas zurückgeben - zumindest für Einige von Euch, die sich auch mit Schachspielen auf dem DGT Brett gegen eine Engine auf dem Smartphone (oder einem Tablet) anfreunden können: Wer möchte, ist hiermit herzlich eingeladen, sich meine Engine "HMChess v0.5.14" herunterzuladen und unter Android zu benutzen. Wie es sich für dieses Forum gehört natürlich am besten mit Acid Ape und einem per Bluetooth verbundenen DGT-Brett - dann kommt zumindest ein bißchen Schachcomputer Feeling auf (ist ja dann nicht viel anders, als eine Citrine oder ähnliche Geräte Ein paar Worte zu HMChess: Ich habe mit der Entwicklung der Engine bereits Mitte der 80er Jahre begonnen. Die Engine ist eine komplette Eigenentwicklung! Sie basiert also nicht, wie so viele andere Engines heutzutage auf irgendeiner anderen Engine. Da sie so "alt" ist, unterstützt sie nicht mehrere CPU-Kerne, sondern nur Single-Core. Und sie ist "0x88" basiert, also keine Bitboards. Es handelt sich um eine Winboard- bzw. XBoard-Engine, sie läuft also daher nicht in Programmen, die nur UCI-Engines unterstützen. Unter Android getestet in Acid Ape und "Chess for Android" von Aart Bik. Sie läuft aber z.B. nicht in Droidfish, da Droidfish keine Winboard/XBoard Engines unterstützt. Leider hatte ich vor ca. 10 Jahre mitten in diversen Tests (u.a. Late Move Reductions) und Umprogrammierungen aufgehört, und daher ein ziemliches Durcheinander hinterlassen. Die Engine hat diverse Parameter, mit denen u.a. Selektivität und Extensions gesteuert werden, es gibt diverse Search Reductions und Extensions, die sich an- und abstellen lassen. Und alle diese Parameter sind momentan in keinster Weise aufeinander abgestimmt. Dazu kommt offensichtlich ein Ungleichgewicht in der Stellungsbewertung. Ich habe jetzt versucht, einigermaßen sinnvolle Einstellungen zu wählen, aber das Ganze ist noch weit entfernt vom Optimum... Na wie auch immer, ich habe vorhin einmal ein 32-Bit Kompilat einen Spießrutenlauf gegen ein paar andere Programme unter Windows (Arena) absolvieren lassen, um für mich und Euch einen kleinen Anhaltspunkt für die Spielstärke zu erhalten (in Klammern die ELO-Werte der anderen Engines in der CCRL 40/4 Liste): HMChess v0.5.14 - Waxman 2016 (2306) 8.0-2.0 HMChess v0.5.14 - Dragon 4.6 (2418) 5.0-5.0 HMChess v0.5.14 - Comet_B68 (2378) 4.0-6.0 HMChess v0.5.14 - Colossus2007d (2612) 3.0-7.0 Ich würde daher mal so grob schätzen, dass dieses 32 Bit Windows-Kompilat in der CCRL 40/4 Liste auf ca. 2400 Elo kommen würde. Nicht gerade optimal, aber auf der anderen Seite kommt die Engine damit auf einem Smartphone vielleicht in Regionen, die der Ein oder Andere von Euch auch schlagen kann Wer spielt schon gerne gegen Stockfish 8 Ich habe aber auch noch keine Vorstellung, wie das Kompilat für Android geschwindigkeitsmäßig im Verhältnis zur Windows Version abschneidet (anderer C-Compiler). Noch ein Wort zur Verwendung in Acid Ape: Acid Ape stellt den Engines leider kein Eröffnungsbuch zur Verfügung (soll sich laut Entwickler demnächst ändern). Im ZIP-Archiv ist daher ein Eröffnungsbuch mit dem Namen "schach.bin" enthalten. Wenn Ihr die Engine in Acid Ape verwenden wollt, solltet Ihr bitte die Datei schach.bin in das selbe Verzeichnis wie die Engine selbst kopieren. Das Eröffnungsbuch stellt in dieser Form sicherlich einen Schwachpunkt dar, denn es enthält viele Löcher und keine Gewichtungen, so dass die Engine durchaus des Öfteren in sehr unvorteilhafte Stellungen entlassen wird. Aber ich denke, besser dieses Eröffnugnsbuch, als gar keines. Für "Chess for Android" ist die schach.bin nicht erforderlich, da "Chess for Android" den Engines ein eigenes Eröffnungsbuch zur Verfügung stellt. Im ZIP Archiv finden sich drei verschiedene ausführbare Dateien für die Engine, je nachdem welche Art CPU in Eurem Smartphone/Tablet verbaut ist: hmchess0514-arm64-v8a - Executable für ARM64 64-Bit CPUs hmchess0514-armeabi-v7a - Executable für ARM v7 CPUs hmchess0514-armeabi - Executable für ältere ARM CPUs Die 64-Bit Version ist die schnellste, die v7 kommt danach, die letzte ist am langsamsten. Wenn Ihr nicht sicher seit, welche Version bei Euch läuft, dann vielleicht am besten einfach in der obigen Reihenfolge ausprobieren. So, lange Rede kurzer Sinn, der Download-Link für die Engine lautet: Download-Link HMChess v0.5.14 Viel Spaß P.S.: Wenn Ihr in Acid Ape die Berechnungen der Engines sehen wollt (Rechentiefe, Bewertung, Hauptvariante etc.), dann einfach während einer Partie auf den Titel des unteren Fensters klicken. Da steht als Titel z.B. "Chess Clock", "Move List" oder "Game Information". Nach dem Klicken erscheint ein Auswahlmenü, aus dem Ihr "computations" auswählen könnt - das sind die Engine-Infos. P.P.S.: Interessant wäre jetzt, ob man die Engine auch im DGT-PI oder in Picochess zum Laufen bekommt? Dann würde ich mir glatt noch überlegen, mir einen der beiden zuzulegen P.P.P.S.: Ob diese Engine wirklich als "Danke" taugt, oder eher als Qual für alle, die sie ausprobieren, muss sich wohl erst noch zeigen Aber ohne dieses Forum hätte ich mir wahrscheinlich kein DGT Brett gekauft und die Engine nie nach Android portiert. Von daher: Danke! Viele Grüße, Heiko Geändert von hmchess (26.03.2017 um 23:43 Uhr) Grund: Hinweis auf neue Version mit ELO-Einstellmöglichkeit |
|
|||||||||||
AW: Neues Futter für Acid Ape / DGT Brett: HMChess - mein Danke an diese Community :-
Ups jetzt habe ich mich vertippt!
Bei der letzten Engine wolle ich natürlich schreiben: ca. Elo 2100. Peter |
|
||||||||||||
AW: Neues Futter für Acid Ape / DGT Brett: HMChess - mein Danke an diese Community :-
Hallo Peter,
ja, das wäre so in etwa auch mein Traum. Selber spiele ich auch am liebsten gegen abgeschwächte Engines, z.B. Shredder Classic 4. Leider ist mein Urlaub jetzt zu Ende (hatte diese Woche Urlaub). Sonst hätte ich tatsächlich Lust, mich einmal intensiver damit zu beschäftigen, wie man Schachengines so abschwächt, dass sie trotzdem noch "vernünftig" spielen und nicht einfach nur "Geschenke" machen. Und idealerweise so, dass man tatsächlich einen halbwegs zutreffenden ELO-Wert einstellen kann. Zumal das Winboard 2 Protokoll es jetzt auch erlaubt, dem Benutzer die Einstellung von Parametern per Dialog anzubieten, was früher nur bei UCI-Engines vernünftig funktionierte. P.S.: Versuche doch einmal in Acid Ape bei Arasan die Spielstärke auf 20-30% einzustellen, und wenn das zu leicht ist, dann halt nach oben herantasten. Das hat mir persönlich ein paar schöne Partien beschert (ich gewinne halt auch mal ganz gerne Viele Grüße, Heiko |
|
|||||||||||
AW: Neues Futter für Acid Ape / DGT Brett: HMChess - mein Danke an diese Community :-
Hallo Heiko,
Kennst du die Seite: http://chessncognac.com schon? Der Mann verändert die Einstellung von Engines so, dass sie a) Schwächer spielen b) Einen interessanten Spielstiel haben Finde ich seeeehr interessant! Peter |
Folgender Benutzer sagt Danke zu für den nützlichen Beitrag: | ||
hmchess (26.03.2017) |
|
||||||||||||
AW: Neues Futter für Acid Ape / DGT Brett: HMChess
So, ich habe jetzt doch noch einmal kräftig in die Tasten gehauen:
Man kann jetzt für HMChess in Acid Ape die Spielstärke in ELO einstellen, in einem Bereich von 1100 - 2200 Elo Die Kalibrierung der Spielstärke habe ich in hunderten Partien gegen 14 verschiedene Engines mit Spielstärken im Bereich 1000-2400 Elo ermittelt. Grundlage war dabei wieder die CCRL 40/4 Liste, d.h. die Spielstärkeregelung in HMChess bezieht sich jetzt im Prinzip auch auf Blitzpartien. Natürlich sind es trotzdem nur Annäherungen, und im abgeschwächten Modus ergeben sich durchaus Schwankungen in der Spielstärke. Wie beim Menschen halt auch Aber zum Spaß haben sollte es reichen Die Eröffnungsbuch-Nutzung ist übrigens nicht eingeschränkt, aber ich denke mal auch schwache Spieler sind daran interessiert, Eröffnungen zu lernen, und dann sollte es ok sein, wenn die Engine ihr Eröffnungsbuch nicht einschränkt? Zur Einstellung der Spielstärke in Acid Ape folgendermaßen vorgehen: Settings-Menü -> Engines anklicken -> HMChess anklicken -> unten auf das Einstellungen-Rad klicken Dann "ELO-SETTING" aktivieren (den Schriftzug anklicken, er wird hell, wenn die Option aktiviert ist) Danach mit dem Schieberegler bei "ELO-Value" die gewünschte Spielstärke einstellen. Die Spielstärke-Einstellung ist nur aktiv, wenn "ELO-SETTING" aktiviert ist. Ansonsten spielt die Engine mit voller Stärke. Noch ein Hinweis: Die Spielstärke wird immer auf volle 100er gerundet. D.h. z.B. bei der Einstellung 1330 Elo rundet die Engine intern auf 1300 ab. Oder z.B. bei 1660 wird intern auf 1700 aufgerundet. Hier der Link zum Download der Version 0.5.14a: Download-Link HMChess Version 0.5.14a Viele Grüße, Heiko |
|
||||||||||||
AW: Neues Futter für Acid Ape / DGT Brett: HMChess
Hallo Peter,
die Seite ist wirklich sehr interessant! Ich bin allerdings direkt erst einmal bei ein paar anderen Sachen hängengeblieben, die Beiträge zur Spielstärkebeschränkung habe ich mir noch gar nicht angeschaut. Aber da gibt es viele interessante Beiträge! Direkt mal ein Lesezeichen drauf gesetzt Viele Grüße, Heiko |
Folgender Benutzer sagt Danke zu hmchess für den nützlichen Beitrag: | ||
|
|||||||||||
AW: Neues Futter für Acid Ape / DGT Brett: HMChess - mein Danke an diese Community :-
Wooooooooooooow Heiiiiiiiiiiikooooooooo!
Danke, danke, danke, danke, danke Dankeschöööööööööööööööööööööööööööööööööön!!!!! Im Ernst - vielen herzlichen Dank. Ein echter Traum. Dieses Wochenende wird gespielt bis das Brett raucht! Grüße aus Österreich Peter |
|
|||||||||||
AW: Neues Futter für Acid Ape / DGT Brett: HMChess - mein Danke an diese Community :-
Hallo Heiko,
erstmal vielen Dank für die Arbeit! Habe ich es überlesen, oder hast Du es noch nicht erklärt oder irgendeinen "Standard"-Algorithmus (gibts vermutlich gar nicht?!) zur Drosselung benutzt? Fände ich mal interessant, wie die eingestellten 100er ELO Stufen in Dein Programm eingreifen. Danke und Grüße Andreas |
|
||||||||||||
AW: Neues Futter für Acid Ape / DGT Brett: HMChess - mein Danke an diese Community :-
Hallo Ihr zwei,
Peter, bitte noch nicht zu viel Euphorie Außer mir selbst hat die Elo-Stufen ja offenbar noch niemand ausprobiert, und auch ich selbst bin bisher (nach dem Programmieren, "kalibrieren" und den vielen automatischen Testmatches) mangels Zeit erst zu ganz wenigen Partien auf den ganz unteren Stufen gekommen. Vielleicht kommst Du ja auch zu dem Schluss, dass das alles Müll ist... was ich natürlich nicht hoffe Stimmt, zu dem "wie" habe ich bisher noch nichts geschrieben. Es gäbe ja verschiedene Möglichkeiten, und ich war mir selber nicht sicher, wie ich es implementieren sollte. Ich habe mich dann entschlossen, es zunächst einmal über die Suchtiefe zu versuchen. Wobei es aber, wie sich in den ersten Tests zeigte, mit einer reinen Beschränkung der "nominalen" Suchtiefe (also der Suchtiefe, mit der das Programm anfängt zu suchen, und die in den Infos als Suchtiefe angezeigt wird) nicht getan ist. Denn die Sucherweiterungen ("search extensions") und die Quiescence Search (abschließende Suchphase nach der "Brute Force" Suche - die es so in der reinen Form ja eigentlich auch nicht mehr gibt - in der nur noch Schlagfolgen und ggf. Schachgebote untersucht werden) machen einem da schnell einen Strich durch die Rechnung. Hinzu kommen noch die vielen selektiven Suchbaumbeschneidungen, die eine Vorhersage der tatsächlichen Suchtiefe zusätzlich unmöglich machen. Also habe ich da auch noch eingegriffen. Und dann per trial and error bestimmte Festlegungen getroffen, mit diesen Festlegungen dann automatisierte Testmatches gegen diverse Engines spielen lassen, die in der angestrebten Spielstärke lagen (also z.B. für die Annahme Elo 1500 gegen Engines von ca. 1200 bis ca. 1800 Elo). Und dann so lange gefeilt, bis die "Turnierperformance" in den Testserien der angestrebten Elo-Zahl entsprach. Aus den ersten Ergebnissen konnte ich dann entsprechend auch Schlussfolgerungen für die nächsten Elo-Stufen ziehen, was den trial-and-error Prozess dann verkürzt hat. In die Stellungsbewertung habe ich jetzt erst einmal nicht eingegriffen. So ist es jetzt zumindest so, dass die Engine keine "Geschenke" macht, sondern wenn, dann tatsächlich etwas "übersieht". Was ich persönlich nicht mag, sind Engines, die in abgeschwächter Stufe 1-2 mal während einer Partie Figuren opfern und dann den Rest der Partie wie ein Großmeister spielen und im Endspiel unbesiegbar sind. Sollte jetzt so nicht passieren. Aber Geschmäcker sind ja auch verschieden... Bei meinen ersten selbst gespielten Partien gegen die ganz unteren Elo Stufen habe ich versucht, mich an meine ersten Partien als Kind gegen meinen ersten Schachcomputer zu erinnern (ein Chess Champion MK2 ) In der ersten Partie gegen die Elo 1100 Stufe wollte ich schon fast Frust schieben, bis ich folgende Stellung auf dem Brett hatte. Gegen eine ungedrosselte Engine so natürlich nicht zu gewinnen, aber den MK2 hätte ich damals als Kiddy, zur Not auch mit Figurenopfern, in genau so eine Stellung getrieben und dann richtig schön fertig gemacht
Also mal probieren, und tatsächlich: 29. Se5 Db2 30. Txf7 Txf7 31. Dxf7+ Kh8 32. Sxg6#
Ok, das hatte funktioniert und geht für die Einstellung "Elo 1100" wohl auch so in Ordnung. Noch schnell der Gegencheck, und yupp, gegen die Einstellung "Elo 1300" funktioniert das bereits, wie erhofft, nicht mehr. Was mir jetzt noch fehlt, ist, dass die Engine so tut, als würde sie alles geben - heißt, es sollte eine Einstellung geben, die bewirkt, dass sie nicht zu schnell zieht, sondern genauso viel Zeit verbraucht, wie bei ungedrosseltem Betrieb. Ist sonst schnell frustrierend, wenn man selber stundenlang überlegt, aber die Engine zieht immer mehr oder weniger sofort und gewinnt womöglich trotzdem Und dann als nächstes Einstellungen in der Richtung "aggressiv", "furchtloser Angreifer" oder auch "vorsichtiger Verteidiger", "Feigling" etc. Aber jetzt erst einmal mit Zittern und Bangen abwarten, was die ersten Anwender zu den Elo-Einstellungen sagen... Viele Grüße, Heiko Geändert von hmchess (30.03.2017 um 01:32 Uhr) Grund: Schreibfehler korrigiert |
|
|
Ähnliche Themen | ||||
Thema | Erstellt von | Forum | Antworten | Letzter Beitrag |
Tipp: Acid Ape Chess mit DGT-Brett-Anbindung | Belcantor | Die ganze Welt der Schachcomputer / World of chess computers | 35 | 19.04.2019 19:18 |
Turnier: mein Oldie-Turnier / Mein U1500 | mclane | Partien und Turniere / Games and Tournaments | 23 | 09.10.2016 17:40 |
News: Mein neues Forum ... eine Ergänzung zur Schachcomputer.Info Community | Mythbuster | Vorstellung / Presentation | 4 | 08.05.2010 12:00 |
Frage: Neues vom Novag Universal Brett (UCB) | user_298 | Die ganze Welt der Schachcomputer / World of chess computers | 2 | 19.10.2009 09:26 |