|
|
||||||||||||
AW: Warum Fidelity scheiterte!
Erst im nächsten Schritt der Entwicklung, der Konstruktion, könnte so etwas kommen. Ich habe das erste Mal über den Einsatz bei Deep Thought im Artikel im Scientific American/Spektrum der Wissenschaft (keine Ahnung ob deutsch oder englisch) gelesen. Da war von der deutlichen Steigerung bei Stellungstests und beim Selbstspiel die Rede. Erst später habe ich dann mitbekommen (das könnte nach dem 1997er Match gegen Kasparow gewesen sein), dass der Effekt doch nicht so groß wie zuerst gedacht war. Erfahrungen mit Singular Extensions haben noch die Teams von Hitech und Cray Blitz gemacht und veröffentlicht, von den Schachprogrammen von Mikros gibt es hingegen kaum Infos über die ursprüngliche Version (die Profis waren da immer schon verschlossen) und ab Mitte der 90er haben dann etliche mit Varianten experimentiert. Zum Aufwand: Von Deep Thought kenne ich keine exakten Zahlen, aufgrund der Mischstruktur (die ersten paar Halbzüge wurden in Software auf einer Workstation berechnet, die letzten 4-6 Halbzüge in Hardware auf den Spezialchips) wäre es aber auch nicht so einfach übertragbar. Deep Thoughts Suchgeschwindigkeit wurde immer relativ merkwürdig beschrieben, die Spezialchips könnten durch die Wiederholungssuche also eventuell besser ausgenutzt werden und damit den Mehraufwand reduzieren. Von Hitech kenne ich (ich glaube u.a. von Berliner "Oral History" http://archive.computerhistory.org/p....103630824.pdf) die Aussage, dass es einen Halbzug in der Suchtiefe kostet, ähnlich ist die Aussage von Bob Hyatt für Cray Blitz (bis zum Faktor 10). Ed Schröder und Jonathan Schaeffer meinten 1996, dass sie aufgrund des enormen Mehraufwands andere Versionen testen würden. Was bedeutet das? Für Hitech und Cray Blitz sind ein Halbzug tiefer etwa ein Faktor 6 in der Rechenzeit. Die Erfahrungen waren, dass ca. 9 Halbzüge tief brute force (also jede Variante wird mindestens 9 Halbzüge tief berechnet, einzelne Züge dann aber tiefer) ungefähr vergleichbar sind mit 8 Halbzügen brute force und zusätzlichen Vertiefungen durch die singular extensions. Letztere finden zwar einige spektakuläre Kombinationen, über das ganze Spiel niweg würde es sich aber ungefähr ausgleichen. Dies passt auch zu den Erfahrungen von Hsu, wie er sie z.B. in seinem Buch über Deep Blue (Hsu, F.: Behind Deep Blue: Building the Computer that Defeated the World Chess Champion. (Paperback)) beschrieben hat. Mikrocomputer kamen damals eher auf 6 Halbzüge brute force, hätten also mit singular extensions nur noch etwa 5 Halbzüge tief suchen können. Der Verlust an Qualität ist dabei aber größer als beim Rückgang von 9 auf 8, vor allem wenn die Konkurrenz ungefähr die gleiche Rechenleistung zur Verfügung hat (Deep Thought sowieso, aber auch Hitech und Cray Blitz gehörten immer zu den jeweils rechenstärksten Teilnehmern). Außerdem sind die Programme auf Mikrorechnern schon früh vom reinen brute force abgegangen. Dadurch erhöhten sich die Suchtiefen und der Verzweigungsfaktor sank (zu Lasten eines Risikos etwas zu übersehen stieg so auch die Spielstärke). Allerdings bedeutet ein um den Faktor 6 erhöhter Aufwand jetzt nicht mehr nur die Verringerung der Suchtiefe um 1 sondern ist größer. Auch sind die selektiven Techniken der letzten 25 Jahre teilweise ähnlich im Effekt auf den Suchbaum, d.h. die zusätzliche Verwendung von singular extensions bringen weniger Erfolg und werden damit unattraktiver. |
|
||||||||||||
Re: AW: Warum Fidelity scheiterte!
Hast Du Dir schon mal den Quellcode (oder auch Pseudocode) angeschaut? Dann siehst Du, dass die Grundidee unabhängig von der Zugfolge ist und nur den aktuellen Zug der Variante betrachtet.
Könntest Du das mal bespielsweise formulieren? Ich sehe da nämlich keine Chance für eine Spezifikation. Erst im nächsten Schritt der Entwicklung, der Konstruktion, könnte so etwas kommen. Dafür gibt es genug Quellen, hier noch einmal ein Link: https://chessprogramming.wikispaces....lar+Extensions Ich habe das erste Mal über den Einsatz bei Deep Thought im Artikel im Scientific American/Spektrum der Wissenschaft (keine Ahnung ob deutsch oder englisch) gelesen. Da war von der deutlichen Steigerung bei Stellungstests und beim Selbstspiel die Rede. Erst später habe ich dann mitbekommen (das könnte nach dem 1997er Match gegen Kasparow gewesen sein), dass der Effekt doch nicht so groß wie zuerst gedacht war. Erfahrungen mit Singular Extensions haben noch die Teams von Hitech und Cray Blitz gemacht und veröffentlicht, von den Schachprogrammen von Mikros gibt es hingegen kaum Infos über die ursprüngliche Version (die Profis waren da immer schon verschlossen) und ab Mitte der 90er haben dann etliche mit Varianten experimentiert. Zum Aufwand: Von Deep Thought kenne ich keine exakten Zahlen, aufgrund der Mischstruktur (die ersten paar Halbzüge wurden in Software auf einer Workstation berechnet, die letzten 4-6 Halbzüge in Hardware auf den Spezialchips) wäre es aber auch nicht so einfach übertragbar. Deep Thoughts Suchgeschwindigkeit wurde immer relativ merkwürdig beschrieben, die Spezialchips könnten durch die Wiederholungssuche also eventuell besser ausgenutzt werden und damit den Mehraufwand reduzieren. Von Hitech kenne ich (ich glaube u.a. von Berliner "Oral History" http://archive.computerhistory.org/p....103630824.pdf) die Aussage, dass es einen Halbzug in der Suchtiefe kostet, ähnlich ist die Aussage von Bob Hyatt für Cray Blitz (bis zum Faktor 10). Ed Schröder und Jonathan Schaeffer meinten 1996, dass sie aufgrund des enormen Mehraufwands andere Versionen testen würden. Was bedeutet das? Für Hitech und Cray Blitz sind ein Halbzug tiefer etwa ein Faktor 6 in der Rechenzeit. Die Erfahrungen waren, dass ca. 9 Halbzüge tief brute force (also jede Variante wird mindestens 9 Halbzüge tief berechnet, einzelne Züge dann aber tiefer) ungefähr vergleichbar sind mit 8 Halbzügen brute force und zusätzlichen Vertiefungen durch die singular extensions. Letztere finden zwar einige spektakuläre Kombinationen, über das ganze Spiel niweg würde es sich aber ungefähr ausgleichen. Dies passt auch zu den Erfahrungen von Hsu, wie er sie z.B. in seinem Buch über Deep Blue (Hsu, F.: Behind Deep Blue: Building the Computer that Defeated the World Chess Champion. (Paperback)) beschrieben hat. Mikrocomputer kamen damals eher auf 6 Halbzüge brute force, hätten also mit singular extensions nur noch etwa 5 Halbzüge tief suchen können. Der Verlust an Qualität ist dabei aber größer als beim Rückgang von 9 auf 8, vor allem wenn die Konkurrenz ungefähr die gleiche Rechenleistung zur Verfügung hat (Deep Thought sowieso, aber auch Hitech und Cray Blitz gehörten immer zu den jeweils rechenstärksten Teilnehmern). Außerdem sind die Programme auf Mikrorechnern schon früh vom reinen brute force abgegangen. Dadurch erhöhten sich die Suchtiefen und der Verzweigungsfaktor sank (zu Lasten eines Risikos etwas zu übersehen stieg so auch die Spielstärke). Allerdings bedeutet ein um den Faktor 6 erhöhter Aufwand jetzt nicht mehr nur die Verringerung der Suchtiefe um 1 sondern ist größer. Auch sind die selektiven Techniken der letzten 25 Jahre teilweise ähnlich im Effekt auf den Suchbaum, d.h. die zusätzliche Verwendung von singular extensions bringen weniger Erfolg und werden damit unattraktiver. Angenommen es Spielt ein 6502 1 MHz. Er schafft ca wie folgt: 3 Ply = @ 1 Minute 4 Ply = @ 3 Minutes In ein spiel von 3 minute pro zug wuerde er dann mit Brute Force vielleicht 4 Ply schaffen. 1) Mit selektiv wo er nur den besten Zug weiter rechnet, damit koennte er vielliecht + 3 Ply gewinnen bei 3 Minuten pro Zug = 6 Ply Problem = nur 1 Zug wird laenger gerechnet = sehr viele fehl entscheidungen. 2) Aber theoretisch geht auch mit diesen 6502 1 Mhz die besten 2 Zuege ab 3 Ply weiter zu rechnen bis auf 6 Ply. = 3 Minuten fuer 2 hochgerechnete Zuege. Problem = nur 2 Zuege werden laenger gerechnet = wieder sehr viele fehl entscheidungen. Das koennte vielleicht nur einigermassen ok klappen wenn man die besten 5 oder 6 zuege weiter rechnet aber dafuer waere als besipiel ein 6502 1 MHz sehr viel zu langsam. Die Frage ist ab welcher geschwindigkeit waere es ein Akzeptabler weg? Oder ist die Theorie anders wo ZB: - alle zuege auf ZB 3 Ply gerechnet sind - 9 Besten + 2 Ply weiter gerechnet sind - 5 besten + weitere 2 Ply - 2 besten + weitere 2 ply = ca 9 Ply fuer die 2 besten zuege. Gruss Nick Gruss |
|
||||||||||||
AW: Warum Fidelity scheiterte!
Ähhhm. Ich helfe gern weiter: Teststellung --> Ergebnisse Konkurrenz --> Wieso können die das? --> Analyse Teil(Suchbäume) ---> Spezifikationen. Was denn sonst?! |
|
||||||||||||
AW: Warum Fidelity scheiterte!
Folgendes gilt für 95% der Schachprogramme: Es wird bis zu einer bestimmten Suchtiefe gesucht, die von einer Iteration zur nächsten erhöht wird. Es wird also zuerst ein Halbzug tief gesucht, dann zwei , dann drei usw. Es hängt hier also nicht vom Zug ab, ob vertieft wird oder nicht, es ist vorgegeben. In der Praxis wird die Suche meist rekursiv programmiert, d.h. bei einer vorgegebenen Suchtiefe von vier wird die Suche aufgerufen, ein Zug virtuell ausgeführt und die Suche in dieser virtuellen Position mit einer Restsuchtiefe von drei aufgerufen usw. Jetzt wurde festgestellt, dass bei einer vertieften Suche von manchen Zügen die Spielstärke steigt. Dazu wird z.B. im Programm festgelegt, dass Züge aus einem Schachgebot heraus nicht für die Suchtiefe zählen sollen (so etwas wird dann check extension genannt, da die Suche hier erweitert wird). Wo also eine normale Suche in Iteration vier so aussieht: Zug1, Zug2, Zug3, Zug4, Bewertung (meist noch inklusive einer Ruhesuche), so sieht es bei einem Schachgebot in der Variante so aus: Zug1, Zug2+ (das Plus soll signalisieren, dass dieser Zug ein Schachgebot ist), Zug 2a, Zug 3, Zug4, Bewertung. Diese Art von Vertiefung wurde auch für Schlagzüge und Bauernzüge auf die siebte (zweite) Reihe ausprobiert. Allerdings erhöht jede dieser Vertiefungen die benötigte Rechenzeit, es können also weniger Iterationen bei einer gegebenen Zeitkontrolle geschafft werden. Es wird also nicht am Ende der Zugfolge entschieden ob weiter vertieft wird oder nicht, die Vertiefungen erfolgen jeweils mitten in der Zugfolge. https://de.wikipedia.org/wiki/Programmfehler
".. wenn der Programmierer eine bestimmte Festlegung der Spezifikation nicht oder falsch umgesetzt hat" Ich würde doch stark davon ausgehen, dass die Erkennung von taktischen Wendungen zu den Spezifikationen eines Schachprogramms gehört. Insofern gehören für mich taktische Patzer eines Schachprogramms zur Kategorie "Programmfehler". Ausgenommen sind taktische Wendungen, die von vergleichbaren Schachcomputern auch nicht einfach entdeckt werden, denn in dem Fall kann man davon ausgehen, dass der Programmierer die technischen Möglichkeiten ausgereizt hat. Die Spezifikation eines Schachprogramms kann nur das Verhalten beschreiben und nicht jeden einzelnen internen Vorgang. In den meisten Fällen geht es aber auch nicht um Bugs (die sich dann aber gerne bei wichtigen Partien zeigen), sondern um ein technisch zwar richtiges Verhalten (also so programmiert wie gewollt), diese sich aber im Wettbewerb als schwächer als die Konkurrenz erweist. |
|
||||||||||||
AW: Warum Fidelity scheiterte!
Genau. Und das Erkennen von taktischen Wendungen auf dem Niveau der Klassenkameraden ist so ein Verhalten. |
|
|
Ähnliche Themen | ||||
Thema | Erstellt von | Forum | Antworten | Letzter Beitrag |
Frage: Mephisto Rebell 5,0: LED neben dem Uhrensymbol blinkt immer - warum? | pbandilla | Die ganze Welt der Schachcomputer / World of chess computers | 3 | 07.08.2013 06:50 |
Partie: Warum lieben wir die V11 so? | Endspielgott | Die ganze Welt der Schachcomputer / World of chess computers | 27 | 16.08.2010 08:59 |
Tuning: Saitek Corona mit 8 MHz WDC Prozessor (warum Leistung verschenken) | Mach2000 | Die ganze Welt der Schachcomputer / World of chess computers | 7 | 03.09.2009 21:52 |
Frage: Einziges Forum mit Java! Warum? | mb1 | Fragen / Questions - Forum + Wiki | 16 | 28.07.2009 23:57 |