Schachcomputer.info Community

Zurück   Schachcomputer.info Community > Schachcomputer / Chess Computer: > Die ganze Welt der Schachcomputer / World of chess computers


Antwort
 
Themen-Optionen Ansicht

  #1  
Alt 23.03.2017, 23:35
Benutzerbild von hmchess
hmchess hmchess ist offline
Mephisto MM 4 Turbo Kit
 
Registriert seit: 24.09.2007
Ort: Dortmund
Alter: 56
Land:
Beiträge: 166
Abgegebene Danke: 40
Erhielt 49 Danke für 21 Beiträge
Aktivitäten Langlebigkeit
0/20 17/20
Heute Beiträge
0/3 ssssss166
Lächeln 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
Mit Zitat antworten
Folgende 7 Benutzer sagen Danke zu hmchess für den nützlichen Beitrag:
Belcantor (24.03.2017), Drahti (24.03.2017), iuppiter (24.03.2017), Mapi (24.03.2017), Robert (24.03.2017), xchessg (25.03.2017)
  #2  
Alt 25.03.2017, 11:40
user_298
Gast
 
Beiträge: n/a
Aktivitäten Langlebigkeit
0/20 0/20
Heute Beiträge
sssssssss
Lächeln AW: Neues Futter für Acid Ape / DGT Brett: HMChess - mein Danke an diese Community :-

Vielen Dank für das tolle Geschenk!

Ich liebe auch die Acid Ape App - endlich kann man ohne großen Aufwand mit dem DGT Brett vernünftig spielen - freue mich sch wenn unterschiedliche Eröffnungsbücher bei der App integriert werden.

Ich befürchte nur, dass mir deine Engine viel zu stark ist - um selber damit zu spielen - und ap und zu auch mal ein Remis zu schaffen - oder zu gewinnen!

Mein traum wäre:

1. Engine mit ca. Elo 1700
1. Engine mit ca. Elo 1800
1. Engine mit ca. Elo 1900
1. Engine mit ca. Elo 2000
1. Engine mit ca. Elo 2001
auf dem Handy.

Dann könnte jeder SELBST darauf spielen und nach Lust und Laune mal gegen einen stärkeren/schwächeren Gegner antreten.

LG Peter
Mit Zitat antworten
  #3  
Alt 25.03.2017, 11:42
user_298
Gast
 
Beiträge: n/a
Aktivitäten Langlebigkeit
0/20 0/20
Heute Beiträge
sssssssss
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
Mit Zitat antworten
  #4  
Alt 25.03.2017, 13:06
Benutzerbild von hmchess
hmchess hmchess ist offline
Mephisto MM 4 Turbo Kit
 
Registriert seit: 24.09.2007
Ort: Dortmund
Alter: 56
Land:
Beiträge: 166
Abgegebene Danke: 40
Erhielt 49 Danke für 21 Beiträge
Aktivitäten Langlebigkeit
0/20 17/20
Heute Beiträge
0/3 ssssss166
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
Mit Zitat antworten
  #5  
Alt 25.03.2017, 19:37
user_298
Gast
 
Beiträge: n/a
Aktivitäten Langlebigkeit
0/20 0/20
Heute Beiträge
sssssssss
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
Mit Zitat antworten
Folgender Benutzer sagt Danke zu für den nützlichen Beitrag:
hmchess (26.03.2017)
  #6  
Alt 26.03.2017, 23:38
Benutzerbild von hmchess
hmchess hmchess ist offline
Mephisto MM 4 Turbo Kit
 
Registriert seit: 24.09.2007
Ort: Dortmund
Alter: 56
Land:
Beiträge: 166
Abgegebene Danke: 40
Erhielt 49 Danke für 21 Beiträge
Aktivitäten Langlebigkeit
0/20 17/20
Heute Beiträge
0/3 ssssss166
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
Mit Zitat antworten
Folgende 3 Benutzer sagen Danke zu hmchess für den nützlichen Beitrag:
Belcantor (29.03.2017), Drahti (29.03.2017)
  #7  
Alt 26.03.2017, 23:47
Benutzerbild von hmchess
hmchess hmchess ist offline
Mephisto MM 4 Turbo Kit
 
Registriert seit: 24.09.2007
Ort: Dortmund
Alter: 56
Land:
Beiträge: 166
Abgegebene Danke: 40
Erhielt 49 Danke für 21 Beiträge
Aktivitäten Langlebigkeit
0/20 17/20
Heute Beiträge
0/3 ssssss166
AW: Neues Futter für Acid Ape / DGT Brett: HMChess

Hallo Peter,

 Zitat von PeterO Beitrag anzeigen

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
Mit Zitat antworten
Folgender Benutzer sagt Danke zu hmchess für den nützlichen Beitrag:
  #8  
Alt 29.03.2017, 18:19
user_298
Gast
 
Beiträge: n/a
Aktivitäten Langlebigkeit
0/20 0/20
Heute Beiträge
sssssssss
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
Mit Zitat antworten
  #9  
Alt 29.03.2017, 21:02
Drahti Drahti ist offline
Revelation
 
Registriert seit: 27.02.2016
Ort: An der Schleuse
Land:
Beiträge: 730
Abgegebene Danke: 602
Erhielt 390 Danke für 254 Beiträge
Aktivitäten Langlebigkeit
3/20 8/20
Heute Beiträge
1/3 ssssss730
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
Mit Zitat antworten
  #10  
Alt 30.03.2017, 01:30
Benutzerbild von hmchess
hmchess hmchess ist offline
Mephisto MM 4 Turbo Kit
 
Registriert seit: 24.09.2007
Ort: Dortmund
Alter: 56
Land:
Beiträge: 166
Abgegebene Danke: 40
Erhielt 49 Danke für 21 Beiträge
Aktivitäten Langlebigkeit
0/20 17/20
Heute Beiträge
0/3 ssssss166
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
Mit Zitat antworten
Folgende 3 Benutzer sagen Danke zu hmchess für den nützlichen Beitrag:
Drahti (30.03.2017), Mapi (30.03.2017)
Antwort

Themen-Optionen
Ansicht

Forumregeln
Du bist nicht berechtigt, neue Themen zu erstellen.
Du bist nicht berechtigt, auf Beiträge zu antworten.
Du bist nicht berechtigt, Anhänge hochzuladen.
Du bist nicht berechtigt, deine Beiträge zu bearbeiten.

BB code ist An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.

Gehe zu

Ä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


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:19 Uhr.



Powered by vBulletin (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
©Schachcomputer.info