Schachcomputer.info Community

Zurück   Schachcomputer.info Community > Bereich Schachcomputer: > Die ganze Welt der Schachcomputer


Antwort
 
Themen-Optionen Ansicht

  #11  
Alt 07.02.2018, 13:42
Hartmut Hartmut ist offline
Schachcomputer Koryphäe
 
Registriert seit: 01.04.2010
Ort: Nürnberg
Alter: 54
Land:
Beiträge: 1.036
Abgegebene Danke: 720
Erhielt 575 Danke für 315 Beiträge
Activity Longevity
7/20 12/20
Today Beiträge
3/3 sssss1036
AW: Basisfragen zu Schachcomputer-Programmen

 Zitat von Solwac Beitrag anzeigen
Das Programm Demoschach (aus dem Data Becker Buch) ist etwas besser als Minimax (aus Schach am PC), ist aber nur mit Zeilenbasic geschrieben. Minimax gibt es im Original mit einem strukturiertem Basic und in C.
Naja, ich empfand Demoschach jetzt nicht als besser sondern eher als schlechter, habe jetzt aber nie beide gegeneinander spielen lassen, so dass der Eindruck recht subjektiv ist. Zudem sind die Zeiten als ich mich mit dem damaligen 64er Basic beschäftigt habe, lange vorbei. Dokumentiert sind die Programme beide eigentlich recht gut. Das Problem ist nur, dass man das 64er Programm nur sehr schwer verändern kann. Bei einem Zeilenbasic-Programm muss man sich viel tiefer reindenken als bei strukturiertem Basic. Und man kann bei Zeilenbasic auch weit mehr Fehler reinbauen. Da reicht eine falsche Zeilenangabe bei einem Sprungbefehl und schon kriegt man bei der Fehlersuche das kalte Grausen. Ich hatte mal versucht das Programm insoweit zu ändern, dass es in größere Rechentiefen vorstößt... Die Fehlersuche hat letztlich länger gedauert als das Schreiben der Routinen an sich. Interessant wäre hier das Programm Demoschach erstmal in eine vernünftige Basicvariante oder in Pascal zu überführen (ebenso wie Minimax). Danach eignet es sich sehr gut zum Experimentieren.

Zitieren:
Demoschach hat aber einen großen Vorteil, es ist besser dokumentiert, die verwendeten Tricks werden Stück für Stück erläutert und insbesondere die Implementation der Suche ist mit den verwendeten Datenstrukturen gut für das erstmalige Verständnis. Dazu kann man schön den Weg durch den Suchbaum verfolgen (Achtung: Bei heutigen Rechengeschwindigkeiten kann man es nicht live sehen - es ist zu schnell).
Das kann man aber umgehen. By the Way: Das Programm war ja für einen 64er angepasst. Man wird also in der Regel mit einem Emulator arbeiten und da kann man die Geschwindigkeit einstellen. Will man den Weg durch den Suchbaum verfolgen dann ist das ja eigentlich eher ein Feature für die Fehlersuche bzw. zum Verständnis des Programmes an sich. Man kann das gut verwenden um Schwächen bei der Suche zu ermitteln und das Programm dann eventuell anzupassen. Für das praktische Spiel sind diese Ausgaben sinnlos. Will ich also ein Verständnis für die Programmierung und die Routinen entwickeln dann baut man bei den Ausgaberoutinen ein paar Warteschleifen ein und schon ist die Ausgabe nicht mehr zu schnell.

Zitieren:
Aber abgesehen vom verwendeten BASIC gibt es auch Nachteile: Rekursion ohne lokale Variable ist einfach nicht schön
Ja, aber beim C64 leider ein gewisser Standard. Man musste damals für die Programmierung schon ein ziemlicher Nerd sein... Aber immerhin, es ist ein gutes Gedächtnistraining... Ich hab dank der vielen Sprungbefehle zu irgendwelchen dubiosen Zeilennummer noch heute ein fast unschlagbares Zahlengedächnis...

Zitieren:
die Variablen haben nur zwei Buchstaben als Namenslänge
Das empfand ich meist noch weit störender als die Rekursionsproblematik. Noch lustiger wurde es dann, wenn manche Variablen je nach Funktion doppelt und dreifach benutzt wurden. Da hilft dann auch die beste Dokumentation nix mehr...

Zitieren:
Weiß und Schwarz haben getrennte Suchroutinen
Das war das größte Problem, als ich die Suchtiefe erhöhen wollte... in der Suche die richtigen Routinen anzusprechen. Da ist dann bei den ersten Versuchen so manches Schmankerl passiert...

Zitieren:
und es gibt einige unschöne Designentscheidungen, z.B. die Verwendung eines 12*12 Felderbrettes und der "Trick" für die Bestimmung der Mobilität.
OK, das ist Geschmackssache. Ich empfand es jetzt für die damaligen Verhältnisse als nicht so schlimm. Heute gibt es bessere Programmiertechniken dafür. Damals hat man sich da wenig Gedanken drüber gemacht, zumal das Programm Demoschach ja ein "Extrakt" aus dem Großrechnerprogramm Bobby war. Und auf dem Großrechner konnte man natürlich Routinen verwenden, die auf dem kleinen 64er einfach sehr zeitintensiv und unschön waren.

Zitieren:
Minimax ist 10 Jahre jünger und man merkt den Fortschritt in der damaligen Rechnertechnik. Hat man Demoschach verstanden, dann bietet sich durch den Vergleich der beiden Programme der Blick auf die Unterschiede und Gemeinsamkeiten.
Stimmt. Ich kann aber nur empfehlen was ich oben schon gesagt habe. Versuchen Demoschach in eine vernünftige Basic- oder Pascal-Form zu bringen. Das ist zwar erstmal etwas Arbeit, sollte aber aufgrund der guten Dokumentation nicht so schwer sein, wenn man Basic gut beherrscht. Ist das erstmal vollbracht, dann fällt der direkte Vergleich der Programmstrukturen auch leichter, weil man vergleichbaren Code hat.
__________________
Mein Profil beim ICCF (International Correspondence Chess Federation)
https://www.iccf.com/player?id=89948&tab=3
Mit Zitat antworten
  #12  
Alt 07.02.2018, 14:48
Benutzerbild von Solwac
Solwac Solwac ist offline
Revelation
 
Registriert seit: 18.07.2010
Land:
Beiträge: 770
Abgegebene Danke: 163
Erhielt 327 Danke für 206 Beiträge
Activity Longevity
1/20 12/20
Today Beiträge
0/3 ssssss770
AW: Basisfragen zu Schachcomputer-Programmen

 Zitat von Hartmut Beitrag anzeigen
Naja, ich empfand Demoschach jetzt nicht als besser sondern eher als schlechter, habe jetzt aber nie beide gegeneinander spielen lassen, so dass der Eindruck recht subjektiv ist.
Demoschach ist taktisch besser wegen der Schlagzugvertiefung und der "korrekteren" Ruhesuche. Auch ist die Bewertungsfunktion besser. Der Suchbaum dürfte (Spekulation) bei Demoschach ein wenig größer sein. Aufgrund der unterschiedlichen Basics wird ein fairer Vergleich aber schwierig sein, ich stütze meine Aussage hier auf Erfahrungen und Einschätzungen von vor knapp 30 Jahren und letztlich unterschiedliche Rechentiefen.

 Zitat von Hartmut Beitrag anzeigen
By the Way: Das Programm war ja für einen 64er angepasst.
Nicht wirklich. Demoschach ist einfaches Zeilenbasic und das einzig spezifische sind Anweisungen für einen bestimmten Basic-Compiler. Ich habe das Programm damals einfach ohne REMs in Locomotive Basic und später in GFA-Basic abgetippt.

 Zitat von Hartmut Beitrag anzeigen
Ja, aber beim C64 leider ein gewisser Standard.
Nicht nur beim C64. Die Beschränkung auf globale Variablen ist für Zeilenbasics normal.

 Zitat von Hartmut Beitrag anzeigen
Das war das größte Problem, als ich die Suchtiefe erhöhen wollte... in der Suche die richtigen Routinen anzusprechen.
Hm, MT und einige Array-Dimensionen müssen erhöht werden und es braucht schnell mehr als ein 16 Bit-Int für die Knotenzahl. Auf dem CPC hatte ich schnell MT=12 und ein Float für die Knotenzahl. Dann passierte nach einem Tag auch kein Überlauf mehr... (ca. 0,3 Knoten/s).
Die Suchfunktion selbst braucht keine Änderung, aber trotzdem geht es übersichtlicher -> also doch schnell geändert...


 Zitat von Hartmut Beitrag anzeigen
OK, das ist Geschmackssache.
Sicher. Wobei ein 12*10-Brett nicht schwerer zu erklären ist und das war die Begründung für das 12*12. Und die Verlagerung der Mobilitätsberechnung in den Zuggenerator ist pragmatisch, aber keine gute Didaktik.

 Zitat von Hartmut Beitrag anzeigen
Ich kann aber nur empfehlen was ich oben schon gesagt habe. Versuchen Demoschach in eine vernünftige Basic- oder Pascal-Form zu bringen.
Ich empfehle hier einfaches C. Die Umstellung von Zeilenbasic mit globalen Variablen fällt da relativ leicht. Aber ja, strukturiert ist wichtig und ansonsten hängt es vom Können und der Vorliebe ab.
Mit Zitat antworten
  #13  
Alt 13.02.2018, 17:51
rhglomb rhglomb ist offline
Conchess Monarch
 
Registriert seit: 28.11.2008
Ort: Bayern, Schwaben
Beiträge: 68
Abgegebene Danke: 22
Erhielt 24 Danke für 9 Beiträge
Member Photo Albums
Activity Longevity
11/20 14/20
Today Beiträge
2/3 sssssss68
AW: Basisfragen zu Schachcomputer-Programmen

 Zitat von Hartmut Beitrag anzeigen
Willst Du selber ein Schachprogramm schreiben (was ich aufgrund deines Eingangsposts glaube)
Hallo Hartmut,

ein Programm will ich nicht selber schreiben. Da fehlt mir die Zeit und die Übung.

Aber ich wollte einfach mehr darüber erfahren, wie so ein Schachprogramm im Schachcomputer grundsätzlich arbeitet.

Damit kann ich dann manchen Sachen bei den alten Schachcomputern dann vielleicht eher einordnen oder verstehen.

Somit waren alle Eure Anmerkungen wirklich super.
Ich hab jetzt auch schon viel gelesen und glaube, vieles schon mal im Kern verstanden zu haben.
Mit Zitat antworten
Folgender Benutzer sagt Danke zu rhglomb für den nützlichen Beitrag:
Egbert (13.02.2018)
  #14  
Alt 14.02.2018, 13:33
Eskimo Eskimo ist offline
Fidelity Prestige
 
Registriert seit: 02.04.2016
Ort: Frankfurt
Land:
Beiträge: 101
Abgegebene Danke: 99
Erhielt 23 Danke für 10 Beiträge
Activity Longevity
3/20 4/20
Today Beiträge
0/3 ssssss101
AW: Basisfragen zu Schachcomputer-Programmen

Im April 2016 habe ich begonnen, ein eigenes kleines Schachprogramm in JAVA zu schreiben.
Bis heute entwickle ich es ständig weiter und ich wollte schon immer mal hier davon berichten ... aber dazu ist ein eigener Thread nötig.
Es ist sehr naiv aufgebaut und beruht auf Rekursion. Zum Glück konnte ich irgendwann den Nega-Max-Algorithmus aus der Wikipedia nahtlos integrieren, was eine enorme Beschleunigung mit sich brachte, der Rest ist aber auf meinem eigenen Mist gewachsen ;-)
Ich schaffe es nicht mehr, es weiter zu beschleunigen - im Gegenteil: je mehr positionelles Wissen ich einbaue, desto langsamer wird es wieder.
Aber es ist erstaunlich, wie "menschlich" es inzwischen spielt und denkt.
Enpassant und Damenumwandlung waren äußerst schwierig zu bauen und manche "triviale" Sachen sind so ungeheuer umständlich implementiert worden, wie Schachgebote, Rochade oder die Stellunsgwiederholungsregel.
Aber es lehrt einen viel über Schach und auch die Widersprüchlichkeit von positionellen Regeln!
Einige Regeln sind auch schlicht nicht umsetzbar, z.B. dass man keine Figuren tauschen soll, wenn man schlechter steht - sowas widerspräche der üblichen Systematik einer Stellungsbewertung.
Leider fehlen noch die 50-Züge Regel sowie die Umwandlung in etwas anderes außer die Dame.
Pondern kann es natürlich nicht und durch die Rekursion kann man auch nicht jederzeit stoppen, um den derzeit besten Zug zu spielen - die Berechnung muss immer komplett zu Ende gebracht werden.
Ich behaupte, es würde automatisch stärker bei mehr Speed (= Tiefe). Ich selbst habe mittlerweile Probleme, es zu schlagen und ich taxiere es auf etwa 1600.
Daher würde ich gerne hier mal ein Turnier U1600 oder U1650 veranstalten, um es endgültig irgendwo einordnen zu können.
Jedenfalls höchsten Respekt, demjenigen, der mal eins geschrieben hat !!
__________________
Es ist nie zu spät, eine glückliche Kindheit zu haben :tinysmile_hmm:

Geändert von Eskimo (14.02.2018 um 14:58 Uhr)
Mit Zitat antworten
Folgende 2 Benutzer sagen Danke zu Eskimo für den nützlichen Beitrag:
Egbert (14.02.2018), Hartmut (14.02.2018)
  #15  
Alt 14.02.2018, 14:42
Hartmut Hartmut ist offline
Schachcomputer Koryphäe
 
Registriert seit: 01.04.2010
Ort: Nürnberg
Alter: 54
Land:
Beiträge: 1.036
Abgegebene Danke: 720
Erhielt 575 Danke für 315 Beiträge
Activity Longevity
7/20 12/20
Today Beiträge
3/3 sssss1036
AW: Basisfragen zu Schachcomputer-Programmen

Bei dem Experiment wäre ich gerne dabei. Ich würde bei so einem Turnier auf jeden Fall mitmachen. Welche Bedenkzeiten sind angedacht? 30 sec/Zug im Schnitt?
__________________
Mein Profil beim ICCF (International Correspondence Chess Federation)
https://www.iccf.com/player?id=89948&tab=3
Mit Zitat antworten
  #16  
Alt 14.02.2018, 14:48
Benutzerbild von Solwac
Solwac Solwac ist offline
Revelation
 
Registriert seit: 18.07.2010
Land:
Beiträge: 770
Abgegebene Danke: 163
Erhielt 327 Danke für 206 Beiträge
Activity Longevity
1/20 12/20
Today Beiträge
0/3 ssssss770
AW: Basisfragen zu Schachcomputer-Programmen

 Zitat von Eskimo Beitrag anzeigen
Einige Regeln sind auch schlicht nicht umsetzbar, z.B. dass man keine Figuren tauschen soll, wenn man schlechter steht - sowas widerspräche der üblichen Systematik einer Stellungsbewertung.
Das verstehe ich nicht.
Chess hat dieses Feature schon in den 70ern eingebaut und ist eines der typischsten Programme bis zum Aufkommen von selektiver rechnenden Mikros gewesen.
Mit Zitat antworten
  #17  
Alt 14.02.2018, 15:04
Eskimo Eskimo ist offline
Fidelity Prestige
 
Registriert seit: 02.04.2016
Ort: Frankfurt
Land:
Beiträge: 101
Abgegebene Danke: 99
Erhielt 23 Danke für 10 Beiträge
Activity Longevity
3/20 4/20
Today Beiträge
0/3 ssssss101
AW: Basisfragen zu Schachcomputer-Programmen

Ich erklär's mal so: der Begriff "Abtausch" ist dem PRG nicht bekannt. Es macht eine Stellungsbewertung und der Zug, der die beste Stellungsbewertung im Baum erzielt, wird gemacht.
Zumindest so, wie ich es implementiert habe, ist es nicht möglich nebenher oder drumherum noch Regeln zu implementieren.
Ich wüsste zumindest nicht, wie ...
__________________
Es ist nie zu spät, eine glückliche Kindheit zu haben :tinysmile_hmm:
Mit Zitat antworten
  #18  
Alt 14.02.2018, 20:41
Hartmut Hartmut ist offline
Schachcomputer Koryphäe
 
Registriert seit: 01.04.2010
Ort: Nürnberg
Alter: 54
Land:
Beiträge: 1.036
Abgegebene Danke: 720
Erhielt 575 Danke für 315 Beiträge
Activity Longevity
7/20 12/20
Today Beiträge
3/3 sssss1036
AW: Basisfragen zu Schachcomputer-Programmen

Ohne zu wissen, wie Dein Programm aufgebaut ist, kann man da natürlich wenig dazu sagen. Aber in dem Link oben ist ja eine Formel gegeben, die letztlich genau das leistet. Sie errechnet auf einer gewissen Basis eine Wertigkeit für die Materialdifferenz. Diese sorgt dafür dass eben Figuren nicht getauscht werden, wenn ein Materialunterschied besteht. Sowas sollte man in eine Bewertungsfunktion einbauen können. Irgendwie muss er ja herausfinden dass er besser oder schlechter steht. In der Regel geschieht das dadurch, dass man das Material durchzählt. Also hat man doch alle Werte um eine solche Formel irgendwie zum Einsatz bringen zu können.
__________________
Mein Profil beim ICCF (International Correspondence Chess Federation)
https://www.iccf.com/player?id=89948&tab=3
Mit Zitat antworten
  #19  
Alt 15.02.2018, 16:37
Benutzerbild von paulwise3
paulwise3 paulwise3 ist offline
Revelation
 
Registriert seit: 19.02.2015
Ort: Eindhoven
Alter: 71
Land:
Beiträge: 720
Abgegebene Danke: 1.061
Erhielt 391 Danke für 223 Beiträge
Activity Longevity
6/20 6/20
Today Beiträge
2/3 ssssss720
AW: Basisfragen zu Schachcomputer-Programmen

 Zitat von Eskimo Beitrag anzeigen
...
und Damenumwandlung waren äußerst schwierig zu bauen
...
Ich habe lange her auch mal ein versuch gemacht, da hatte ich aber ein beispielprogramm vom MIT gefunden und übersetzt in Fortran.
Wenn du ein zuggenerator programmiert die die zuge in eine liste hinzu fügt, sollte das doch ganz einfach sein: wenn ein bauer die 8. linie erreicht, einfach alle promotions-möglichkeiten als extra zuge drin setzen?

 Zitat von Eskimo Beitrag anzeigen
Jedenfalls höchsten Respekt, demjenigen, der mal eins geschrieben hat !!
Daher auch viel respekt für dich!

Gruss, Paul
__________________
Wenn ich mich irre, sollte es ein Horizont Wirkung sein
Mit Zitat antworten
  #20  
Alt 15.02.2018, 20:16
Benutzerbild von Rasmus
Rasmus Rasmus ist offline
Mephisto Montreux
 
Registriert seit: 26.08.2016
Land:
Beiträge: 256
Abgegebene Danke: 62
Erhielt 246 Danke für 109 Beiträge
Member Photo Albums
Activity Longevity
2/20 3/20
Today Beiträge
0/3 ssssss256
AW: Basisfragen zu Schachcomputer-Programmen

 Zitat von Eskimo Beitrag anzeigen
Ich erklär's mal so: der Begriff "Abtausch" ist dem PRG nicht bekannt. Es macht eine Stellungsbewertung und der Zug, der die beste Stellungsbewertung im Baum erzielt, wird gemacht.
Ich hab das im CT800 so eingebaut, daß er sich die Material-Zusammenstellung in der Ausgangsstellung merkt. In der Bewertungsfunktion kann er dann feststellen, ob irgendwo im Suchbaum abgetauscht worden ist.
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, 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
Anleitung: Multi-TASCing – TASC R30 mit 3 umschaltbaren Programmen Walter Technische Fragen und Probleme / Tuning 15 01.08.2013 04:09
Test: Bei welchen Programmen wirkt sich Tuning am effektivsten aus ? Paisano Technische Fragen und Probleme / Tuning 21 30.07.2011 19:23
Info: Kurts Schachcomputer + Schachcomputer.info Chessguru News und Infos zum Forum + Wiki 24 07.07.2009 21:46


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:47 Uhr.



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