Schachcomputer.info Community

Schachcomputer.info Community (https://www.schachcomputer.info/forum/index.php)
-   Die ganze Welt der Schachcomputer / World of chess computers (https://www.schachcomputer.info/forum/forumdisplay.php?f=2)
-   -   Idee: Warum Fidelity scheiterte! (https://www.schachcomputer.info/forum/showthread.php?t=4925)

mclane 07.03.2015 12:50

Warum Fidelity scheiterte!
 
Bei mir kristallisiert sich in meinen Tests des Designers 2325 etwas heraus, das ich mit meinem Gesamteindruck vom Sparc Modul zusammenfüge.
Bislang dachten wir immer der sparc spielt so schlecht weil am Programm etwas unvollständig ist in der Arbeit die die spracklens abgeliefert haben, nun aber bin ich bei meiner Analyse des mach IV (aka designer2325 ) auf die gleichen Symptome gestoßen die mich meine Grundhaltung revidieren lassen.

Da ist etwas im spracklen Programm falsch schon VOR dem sparc Programm . Also ursächlich in dem mach III resp. Dessen Pendant auf dem 68020 Mach IV.

Das Gerät vertändelt Siege, verliert überraschend gegen schwächere Gegner in einer Weise die die alten 8 bitter M.E. So nicht gemacht hätten.

Ich werde versuchen meines Arbeitsthese hier zu belegen.

Ich komme erst jetzt, d.h. So spät zu dieser Erkenntnis, weil ich vorher keinen Zugang zu den fidelity machinen hatte.
Ich hatte mich wohl mit dem mach III beschäftigt (testartikel in der css) und damals auch mit dem excellence und par ex Programm, aber die schnelleren bzw. tiefer rechnenden geräte waren mir nicht zugänglich.

Solwac 07.03.2015 13:27

AW: Warum Fidelity scheiterte!
 
Da bin ich mal gespannt. Ich habe bisher immer gedacht, dass die Spracklens den Suchbaum nicht so wie die anderen in den Griff bekommen haben. Je schneller die Rechner wurden, desto stärker trat der Effekt in Erscheinung.
Dies ist vergleichbar mit den Lang-Programmen, deren gute selektive Spitze durch den immer größer werdenden Brute Force-Sockel immer wertloser wurde.

mclane 07.03.2015 14:43

AW: Warum Fidelity scheiterte!
 
ja in diese Richtung geht es wohl.
Bei den 8 Bitern kann man den Effekt noch nicht so sehen.
Aber je schneller die Fidelity Geräte in Suchtiefe kamen, desto krasser wird es m.E.

Die 2 folgenden Partien mögen darueber einen 1. Eindruck geben.

[Event "40/120, Oldie-Turnier"]
[Site "SCW"]
[Date "2015.03.04"]
[Round "1"]
[White "Tiger Grenadier"]
[Black "Fidelity Designer 2325 25 mhz"]
[ECO "A02"]
[Result "0-1"]

1. f4 e5 2. fxe5 d6 3. Nf3 dxe5 4. Nxe5 Bd6 5. d4 Bxe5
6. dxe5 Qh4+ 7. g3 Qe4 8. Rg1 Qxe5 9. c3 Nf6 10. Bf4 Qe7
11. Qa4+ Bd7 12. Qb3 Bc6 13. Qa3 Qe6 14. Nd2 Na6 15. O-O-O
O-O-O 16. e3 Be4 17. Bxa6 Qxa6 18. Qxa6 bxa6 19. Nxe4 Rxd1+
20. Rxd1 Nxe4 21. Rd4 Re8 22. Rc4 c5 23. h4 Kb7 24. b4 Kc6
25. bxc5 f5 26. Ra4 Nxc5 27. Rd4 g6 28. Rd6+ Kb5 29. Kb2
Re7 30. Rd4 a5 31. c4+ Kb4 32. Bd6 Rxe3 33. Rd2 a4 34. a3+
Kxc4 35. Rc2+ Kd5 36. Bxc5 Rb3+ 37. Ka2 Rxg3 38. Bxa7 Rg4
39. Rc5+ Ke6 40. h5 gxh5 41. Rc7 Kf6 42. Rxh7 Kg6 43. Rc7
h4 44. Kb2 h3 45. Rc6+ Kg5 46. Be3+ f4 47. Bd2 h2 48. Rc5+
Kg6 49. Rc6+ Kh7 50. Rc1 Rg1 51. Rc7+ Kg6 52. Rc6+ Kg5
53. Rh6 0-1


[Event "40/120, Oldie-Turnier"]
[Site "SCW"]
[Date "2015.03.06"]
[Round "1"]
[White "Sci SysTurbostar 432"]
[Black "Fidelity Designer 2325 25mhz"]
[ECO "C77"]
[Result "0-1"]

1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. Nc3 b5 6. Bb3
Bb4 7. a4 bxa4 8. Bxa4 Bb7 9. Bxc6 dxc6 10. O-O Qe7 11. d3
Rd8 12. Bd2 O-O 13. Qe2 c5 14. Rfe1 Rd6 15. Nh4 g6 16. Nf3
Rfd8 17. Bg5 Qe6 18. Nd5 Nxd5 19. exd5 Rxd5 20. Bxd8 Bxe1
21. Bxc7 Qe7 22. Bb8 Bb4 23. c3 Qe8 24. Bc7 Qe7 25. Bxe5 f6
26. cxb4 fxe5 27. Re1 cxb4 28. Nxe5 Rd8 29. Qe3 Qd6 30. f3
Re8 31. Re2 b3 32. f4 Qd5 33. f5 Qd6 34. d4 Bd5 35. fxg6
hxg6 36. Qh6 Bf7 37. Re4 Qf8 38. Qxf8+ Rxf8 39. Rf4 Be8
40. Rf2 Kg7 41. Rxf8 Kxf8 42. Kf2 Ke7 43. Ke3 a5 44. Kd3 a4
45. Kc4 Kf6 46. g4 Bb5+ 47. Kxb5 a3 48. bxa3 b2 49. g5+ Kf5
50. h4 b1=Q+ 51. Kc5 0-1


Beide zeigen m.E. denselben Effekt, nur durch die Freibauernbehandlung
gelang es dem Kasten gegen die schwächeren Programme zu gewinnen.
Die Eröffnungs- und Mittelspielbehandlung aber ist nicht so schön.

Die 8 Bit Fidelitys sind schon mal gerne im 3. und gehen dann auf Turnierstufe bis in den 5. Ganz selten auch mal
in den 6.
Der Mach III beginnt so im 5. und arbeitet sich oft bis zum 7. Hz. ab.
Oft schafft er dort nur den 1. Ast.

Der Mach IV ist dort gruendlicher und der 7.Hz ist kein Problem mehr.

Ich weiss es klingt ein wenig unglaubwuerdig beim ersten mal, aber solche merkwuerdige Partien produziert der Excellence, also
einer der langsamsten Fidelitys (teilweise nur 3 mhz im Gerät), nicht.

Solwac 07.03.2015 21:24

AW: Warum Fidelity scheiterte!
 
Zitieren:

Zitat von mclane (Beitrag 53851)
Ich weiss es klingt ein wenig unglaubwuerdig beim ersten mal, aber solche merkwuerdige Partien produziert der Excellence, also
einer der langsamsten Fidelitys (teilweise nur 3 mhz im Gerät), nicht.

Dazu müsste man eine Partie des schnelleren Geräts auf dem Achtbitter mit mehr Zeit nachspielen. Dann sollten die Hauptvarianten die Verwandtschaft zeigen oder eben auch nicht.

Bei Sargon V hieß es, es wäre das bis dahin beste Brute Force Programm der Spracklans gewesen. Sollte es nicht nur Marketing gewesen sein, dann wäre die Konkerrenz mit dem Nullmove schon einen Schritt weiter gewesen, den Schritt zwischen Gold und Silber...

mclane 08.03.2015 16:17

AW: Warum Fidelity scheiterte!
 
Der nächste Gegner war der Nigel Short. Nun ist das Gerät nicht so schwach wie Turbostar oder Grenadier, allerdings auch nicht in der Kategorie angesiedelt wo man den Mach IV vermuten wuerde, oder ?!


[Event "40/120, Oldie-Turnier"]
[Site "SCW"]
[Date "2015.03.07"]
[Round "1"]
[White "Mephisto Nigel Short"]
[Black "Fidelity Designer 2325 25mhz"]
[ECO "C86"]
[Result "1/2-1/2"]

1. e4 e5 2. Nf3 Nc6 3. Bb5 a6 4. Ba4 Nf6 5. O-O Be7 6. Qe2
b5 7. Bb3 O-O 8. c3 d5 9. d3 Re8 10. Re1 Bb7 11. Nbd2 Qd7
12. exd5 Nxd5 13. g3 Bf8 14. Ne4 Na5 15. Bc2 Qg4 16. Bd2 f5
17. b4 fxe4 18. dxe4 Nc4 19. exd5 Nxd2 20. Nxd2 Qxe2
21. Rxe2 Bxd5 22. a4 Bd6 23. Ne4 Be7 24. Rd1 c6 25. a5 Rad8
26. h4 Rf8 27. Re3 Ba2 28. Nd2 Bf6 29. Ree1 Bd5 30. Nb3 e4
31. Re3 g5 32. h5 g4 33. Nc5 Bg5 34. Re2 e3 35. fxe3 Rf3
36. Kh2 Bxe3 37. Ne6 Rb8 38. Nc7 Bf2 39. Nxd5 Bxg3+ 40. Kg2
cxd5 41. Rxd5 Bh4 42. Rd7 h6 43. Ra7 Rd8 44. Rxa6 Rg3+
45. Kh2 Rh3+ 46. Kg1 Rg3+ 47. Kh1 Rh3+ 48. Kg1 Rg3+ 49. Kh2
Rh3+ 50. Kg1 1/2-1/2

Theo 27.06.2015 22:48

AW: Warum Fidelity scheiterte!
 
Zitieren:

Zitat von mclane (Beitrag 53849)
Da ist etwas im spracklen Programm falsch schon VOR dem sparc Programm . Also ursächlich in dem mach III resp. Dessen Pendant auf dem 68020 Mach IV.

Das sehe ich genauso. Die Spracklens haben wohl einen Bug in der Variantenberechnung eingebaut und nie gefunden. Sowas kann passieren, wenn Programmierer ein immer größeres Programm schreiben und das systematische Testen vernachlässigen. Besonders in den Partien gegen "neuere" Morsch-Programme wie Milano Pro und RadioShack 2250XL werden die Schwächen deutlich offengelegt.

Einen Fehler in der Variantenberechnung hat meiner Erfahrung nach auch der Mephisto Modena. Was aber nicht schlimm ist, denn der Spielstil ist dadurch sehr "charmant" und abwechslungsreich. Bei meinem Modena 16 Mhz zeigt sich das besonders deutlich.

Bei den Kaplan Programmen habe ich übrigens auch das Gefühl, dass es taktisch nicht ganz sauber zugeht.

Weiterhin viel Erfolg in den Nachforschungen!
Gruß
Theo

Solwac 27.06.2015 23:17

AW: Warum Fidelity scheiterte!
 
Zitieren:

Zitat von Theo (Beitrag 54489)
Die Spracklens haben wohl einen Bug in der Variantenberechnung eingebaut und nie gefunden.

Kannst Du bitte etwas näher erläutern was Du damit meinst?

Theo 28.06.2015 00:13

AW: Warum Fidelity scheiterte!
 
Für die Zugauswahl müssen Schachcomputer viele unterschiedliche Zugfolgen evaluieren, wobei am Ende jeder Zugfolge immer die Frage ist: "Zugfolge nach diesem Zug stoppen und die Stellungsbewertung merken ODER wenigstens noch einen Zug untersuchen?"

Wenn die untersuchte Zugfolge zu einer "unruhigen" Stellung führt, müssen noch die taktischen Züge weiterverfolgt werden um eine aussagekräftige Bewertung zu bekommen, denn in einer Stellung, in der die Dame hängt die Bauernstruktur zu bewerten, macht oft keinen Sinn.

Und hier vermute ich das Problem. Taktische Patzer entstehen dann, wenn Programme taktische Zugfolgen nicht tief genug verfolgen, also zum Beispiel die Erkennung für Springergabeln, Fesselungen, Unterverwandlungen aus irgendwelchen Gründen nicht funktioniert und ein Programm die Stellung fälschlicherweise als ruhig einstuft und falsch bewertet, während der Gegner viel weiter rechnet.

Da es im Schach sehr viele Spezialfälle gibt und Programmierer für auf Geschwindigkeit optimierten Code damals die Übersichtlichkeit des Programms opfern mussten, standen Programmfehler auf der Tagesordnung. Beizukommen wäre diesen eigentlich nur mit exzessiven Tests.

Hier wäre so ein Beispiel:
GK 2100 spielt 8...Se4

GK 2100 spielt hier 8. ... Se4x und rechnet mit 9. Dd5 Le6 10. De4x d5 und Rückgewinn der Figur, übersieht aber, dass Weiss auf d5 schlagen kann 11. Ld5x Ld5x 12. Dd5x Dd5x 13. Sc7+ mit Gabel.

Ich hatte die Stellung mit meinem Travel Champion 2100 nachgespielt und herausgefunden, dass die Gabel 13. Sc7+ von GK2100 zum Zeitpunkt von 8...Se4x nicht gesehen wurde! Er sieht es erst später und sieht sich dann im Nachteil!

Dass die Partie dann doch noch von Schwarz gewonnen wird, lässt den Einschlag 8...Se4x wie Genialität erscheinen.

Schönen Gruß
Theo

Solwac 28.06.2015 09:03

AW: Warum Fidelity scheiterte!
 
Zitieren:

Zitat von Theo (Beitrag 54493)
Für die Zugauswahl müssen Schachcomputer viele unterschiedliche Zugfolgen evaluieren, wobei am Ende jeder Zugfolge immer die Frage ist: "Zugfolge nach diesem Zug stoppen und die Stellungsbewertung merken ODER wenigstens noch einen Zug untersuchen?"

So rechnen aber nur die wenigsten Programme, von den Spracklens dürfte keines dabei sein.

Normalerweise wird bei einer Iteration eine feste Zahl von Zügen tief gerechnet, wobei Schachgebote und Schlagzüge teilweise nicht mitgerechnet werden (dies gilt zumindest für die Berechnung der Hauptvariante, für die restliche Suche verkompliziert sich diese Betrachtung durch Nullmove und weitere "Tricks"). Jede Iteration rechnet jetzt etwas tiefer und irgendwann wird es dann "gesehen". Die Behandlung von Schachgeboten und Schlagzügen ist einer der Knackpunkte für die Spielstärke.

Zitieren:

Zitat von Theo (Beitrag 54493)
Wenn die untersuchte Zugfolge zu einer "unruhigen" Stellung führt, müssen noch die taktischen Züge weiterverfolgt werden um eine aussagekräftige Bewertung zu bekommen, denn in einer Stellung, in der die Dame hängt die Bauernstruktur zu bewerten, macht oft keinen Sinn.

Damit beschreibst Du die Ruhesuche. Das erste Programm der Spracklens hat da noch drauf verzichtet und eine statische Analyse versucht. Hier gibt es ein paar Tricks um den Rechenaufwand zu reduzieren, die aber auch Risiken bergen. Ich kann mir schon vorstellen, dass hier Spielstärke im Vergleich zur Konkurrenz verloren wurde. Aber ich sehe das nicht als Fehler an, deshalb die Frage wo denn der "Bug" liegen soll.

Zitieren:

Zitat von Theo (Beitrag 54493)
Und hier vermute ich das Problem. Taktische Patzer entstehen dann, wenn Programme taktische Zugfolgen nicht tief genug verfolgen, also zum Beispiel die Erkennung für Springergabeln, Fesselungen, Unterverwandlungen aus irgendwelchen Gründen nicht funktioniert und ein Programm die Stellung fälschlicherweise als ruhig einstuft und falsch bewertet, während der Gegner viel weiter rechnet.

Klar, bei vergleichbarer Rechenleistung entscheidet der bessere Algorithmus darüber, welches Programm mehr sieht. Aber eine geringere Spielstärke als ein anderes Programm ist kein Zeichen für Fehler. Als Fehler würde ich es nur bezeichnen, wenn das Programm anders rechnet als vom Programmierer gedacht.

Zitieren:

Zitat von Theo (Beitrag 54493)
Da es im Schach sehr viele Spezialfälle gibt und Programmierer für auf Geschwindigkeit optimierten Code damals die Übersichtlichkeit des Programms opfern mussten, standen Programmfehler auf der Tagesordnung. Beizukommen wäre diesen eigentlich nur mit exzessiven Tests.

Nochmal, das sind nur sehr selten Fehler (im Sinne der Informatik). Manches wird aus pragmatischen Gründen nicht berechnet und nur abgeschätzt. Wenn diese Abschätzung gut ist, dann steigt durch die Beschleunigung des restlichen Programms insgesamt die Spielstärke. Ist die Abschätzung hingegen nicht gut, dann werden (zu) viele Partien z.B. durch Freibauern entschieden.

Zitieren:

Zitat von Theo (Beitrag 54493)
Hier wäre so ein Beispiel:
GK 2100 spielt 8...Se4

GK 2100 spielt hier 8. ... Se4x und rechnet mit 9. Dd5 Le6 10. De4x d5 und Rückgewinn der Figur, übersieht aber, dass Weiss auf d5 schlagen kann 11. Ld5x Ld5x 12. Dd5x Dd5x 13. Sc7+ mit Gabel.

Ich hatte die Stellung mit meinem Travel Champion 2100 nachgespielt und herausgefunden, dass die Gabel 13. Sc7+ von GK2100 zum Zeitpunkt von 8...Se4x nicht gesehen wurde! Er sieht es erst später und sieht sich dann im Nachteil!

Schönes Beispiel!

Die Morsch-Programme sind i.A. ja taktisch gut. Aber hier fehlt es an Tiefe, Sc7+ ist kein Schlagzug und daher schwer zu finden. Solche forcierten Linien wie in den Zügen 11 und 12 in der Variante führten zu den Singular Extensions bei Deep Thought.

mclane 28.06.2015 14:31

AW: Warum Fidelity scheiterte!
 
Mach III aufwärts haben die fidelitys Singular extensions.

Interesting game between spracklens Mach III engine and Nelsons Igor engine:
Hier eine interessante Partie zwischen dem spracklen und dem "Nelson" (?!) Programm...



[Event "40/120, "]
[Site "SCW"]
[Date "2015.06.28"]
[Round "1"]
[White "Fidelity Designer 2265 20mhz"]
[Black "Excalibur Igor 24mhz"]
[ECO "D49"]
[Result "0-1"]

1. d4 d5 2. c4 c6 3. Nf3 Nf6 4. Nc3 e6 5. e3 Nbd7 6. Bd3
dxc4 7. Bxc4 b5 8. Bd3 a6 9. e4 c5 10. e5 cxd4 11. Nxb5
Nxe5 12. Nxe5 axb5 13. Qf3 Qa5+ 14. Kd1 Ra6 15. Bd2 Qb6
16. Rc1 Bd7 17. Nxd7 Kxd7 18. a3 Be7 19. Ke1 Raa8 20. g4 b4
21. g5 bxa3 22. gxf6 axb2 23. Rb1 Bxf6 24. Bxh7 Ra1 25. Be4
Rxb1+ 26. Bxb1 Qb5 27. Rg1 Rxh2 28. Bf4 Rh8 29. Qa3 Rc8
30. Kd2 Be7 31. Qd3 Qc5 32. Ke2 g6 33. f3 e5 34. Bg3 Qd5
35. Rd1 f5 36. Kf2 Rc1 37. Rd2 f4 38. Bh2 Qb7 39. Qxg6 Qb5
40. Qf5+ Ke8 41. Qh5+ Kd8 0-1


Es wurde sehr taktisch und unübersichtlich. Der Igor konnte da sehr gut mithalten.

Solwac 28.06.2015 15:05

AW: Warum Fidelity scheiterte!
 
Ist 1-0 da richtig? Weiß verliert einen Läufer für den Bauern auf b2 und hat damit zwei Minusbauern.

Zitieren:

Zitat von mclane (Beitrag 54498)
Mach III aufwärts haben die fidelitys Singular extensions.

Das glaube ich nicht. Singular Extensions sind für einen Mikro viel zu teuer in Sachen Rechenaufwand.
Was ich aber gerne glaube ist, dass Schlag- und Schachzüge etwas tiefer verfolgt werden. Hier können einige Halbzüge in der Hauptvariante schon einiges ausmachen. Allerdings kann der Suchbaum auch schnell explodieren, weshalb hier gerade bei älteren Maschinen schnell eine Grenze erreicht wird. Darüber hinaus sind Vertiefungen schädlich für die Spielstärke.

mclane 28.06.2015 17:35

AW: Warum Fidelity scheiterte!
 
mach III ist weiß. Igor schwarz. Sorry, war vertauscht. Mach III hat irgendwann den Überblick verloren. Igor nicht.

Ab mach III sind Singular extensions drin. Das mach IIa und b hatte die doch nicht, ich glaube aber die mach II c Version dann.

Danach hat sich das fidelitys Programm nicht mehr verändert. Lediglich die Hardware. Und dann kam ja der sparc.

Solwac 28.06.2015 18:46

AW: Warum Fidelity scheiterte!
 
Fidelity mag die Vertiefungen bei der Suche vielleicht Singular Extension genannt haben (ich habe dazu nichts gefunden), aber mit meinem Link hat das nichts zu tun.

Das Paper von Hsu et al. datiert von den Proceedings des AAAI Spring Symposium 1988. Das Programm der Spracklens wurde erstmals im Sommer 1988 eingesetzt, das wäre also sehr knapp, aber theoretisch möglich.

mclane 28.06.2015 22:56

AW: Warum Fidelity scheiterte!
 
Ich sagte doch schon.
Der mach 2 a und b hatte es nicht. Ab der c Version war es drin. Daher hat diese mehr elo gemacht.
Darüber wurde damals in den Zeitschriften berichtet.

Ach ich weiß es nicht mehr 100%.
Vielleicht war es auch erst der mach III.
Damals schrieb ich in Schachcomputer Info jedenfalls so:
https://www.schachcomputer.info/foru...ii-b-2183.html

https://www.schach-computer.info/wik..._68000_Mach_II

http://www.stmintz.com/ccc/index.php?id=40844

Solwac 29.06.2015 10:43

AW: Warum Fidelity scheiterte!
 
Zitieren:

Zitat von mclane (Beitrag 54507)

Das ist es, hier sind die veränderten "check extensions" erwähnt. :top:

Für Kombinationen, insbesondere bei Stellungstests, mit Schachgeboten ist das eine große Hilfe. Und es ist relativ beherrschbar, schwächt also das Programm nicht zu sehr wenn es keine Kombinationen gibt.

Theo 29.06.2015 17:53

AW: Warum Fidelity scheiterte!
 
Zitieren:

Zitat von Solwac (Beitrag 54495)
So rechnen aber nur die wenigsten Programme, von den Spracklens dürfte keines dabei sein.

Doch, genau so rechnen die meisten Programme und gerade die der Spracklens. Was da bewertet wird sind nichts anderes als Zugfolgen und ob und wann eine Zugfolge vertieft oder abgebrochen wird ist eine der zentralen Fragen.

Zitieren:

Zitat von Solwac (Beitrag 54495)
Nochmal, das sind nur sehr selten Fehler (im Sinne der Informatik).

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.

Theo 29.06.2015 17:59

AW: Warum Fidelity scheiterte!
 
<cite class="_Rm">Hier steht was von Fidelity & Singular Extensions

www.schachcomputer.at/fid10.htm
Spracklen, Dan & Kathe
</cite>

Solwac 30.06.2015 08:39

AW: Warum Fidelity scheiterte!
 
Zitieren:

Zitat von Theo (Beitrag 54518)
Doch, genau so rechnen die meisten Programme und gerade die der Spracklens. Was da bewertet wird sind nichts anderes als Zugfolgen und ob und wann eine Zugfolge vertieft oder abgebrochen wird ist eine der zentralen Fragen.

Irgendwie scheinen wir ein unterschiedliches Bild von den Begrifflichkeiten zu haben.

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.

Zitieren:

Zitat von Theo (Beitrag 54518)
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.

So funktioniert das nicht. Denn damit wird einem schwächeren Programm unterstellt, es enthielte Programmfehler.

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.

Solwac 30.06.2015 08:47

AW: Warum Fidelity scheiterte!
 
Zitieren:

Zitat von Theo (Beitrag 54519)
<cite class="_Rm">Hier steht was von Fidelity & Singular Extensions

www.schachcomputer.at/fid10.htm
Spracklen, Dan & Kathe
</cite>

Ich gehe davon aus, dass hier schlichtweg der falsche Begriff verwendet wurde. "Die" singular extensions wie von Hsu et al. beschrieben sind für Programme auf Mikrocomputern bis vor einigen Jahren schlichtweg viel zu teuer in Bezug auf den nötigen Rechenaufwand gewesen. Der Artikel über den Mach II schreibt von check extensions, das erscheint mir passend. Was ebenfalls sein kann ist eine Erweiterung der Suche wenn nur ein Zug für eine Seite legal möglich ist. Dies tritt häufig nach Schachgeboten auf, kann aber in blockierten Stellungen im Endspiel auftreten.

Theo 30.06.2015 20:30

AW: Warum Fidelity scheiterte!
 
Zitieren:

Zitat von Solwac (Beitrag 54521)
Es wird also nicht am Ende der Zugfolge entschieden ob weiter vertieft wird oder nicht, die Vertiefungen erfolgen jeweils mitten in der Zugfolge.

Diese Behauptung halte ich für sehr gewagt. Schon allein, weil die Mitte der Zugfolge an einem früheren Zeitpunkt das Ende der Zugfolge war.


Zitieren:

Zitat von Solwac (Beitrag 54521)
So funktioniert das nicht. Denn damit wird einem schwächeren Programm unterstellt, es enthielte Programmfehler.

Hmm, ich denke aus meinen Ausführungen lässt sich ganz sicher nicht sowas ableiten wie "Der Mephisto III hat Programmfehler, weil er schwächer spielt, als der Tasc R30".


Zitieren:

Zitat von Solwac (Beitrag 54521)
Die Spezifikation eines Schachprogramms kann nur das Verhalten beschreiben und nicht jeden einzelnen internen Vorgang.

Genau. Und das Erkennen von taktischen Wendungen auf dem Niveau der Klassenkameraden ist so ein Verhalten.

Theo 30.06.2015 20:36

AW: Warum Fidelity scheiterte!
 
Zitieren:

Zitat von Solwac (Beitrag 54522)
Ich gehe davon aus, dass hier schlichtweg der falsche Begriff verwendet wurde.

Das könnte ich mir auch gut vorstellen!

Zitieren:

Zitat von Solwac (Beitrag 54522)
"Die" singular extensions wie von Hsu et al. beschrieben sind für Programme auf Mikrocomputern bis vor einigen Jahren schlichtweg viel zu teuer in Bezug auf den nötigen Rechenaufwand gewesen.

Hast Du dafür eine Quelle oder ist es Deine Hypothese? Meinst Du die Singular Extensions kosten auf dem Großrechner +10% Rechenzeit und auf einem Mikro +50%, so ungefähr ?!

Theo 01.07.2015 00:03

AW: Warum Fidelity scheiterte!
 
Zur Abwechslung und Ehrenrettung des Mach IV mal eine Partie gegen den nicht soo schwachen Revelation Polgar.

Polgar war nach 5 Zügen von Mach aus dem Buch und spielte 5...Se4, was in einem Stonewall hätte münden können. Allerdings zog es der Polgar stattdessen vor, die Stellung trotz schlechterer Entwicklung ordentlich aufzureissen, angefangen mit 8...c5?!

Dann Schrecksekunde für den Mach: nach 13... b5 sahen beide den Polgar vorne, es sah nach Figurenverlust aus. Beide Geräte übersahen 17.Se5 und die Gefahr des Erstickten Matts. Polgar wollte allen Ernstes erst mit 17...Sd2 kontern, bis er dann nach langem Nachdenken und im 6. (!!) Halbzug plötzlich das Matt sah. Und wie es das Zeitmanagement des Polgar wollte, nahm er den nächstbesten Zug, 17...Le6, ohne alle anderen Züge der 6. Iteration durchzurechnen.

17...Le6 verschenkt eine Figur und verliert sofort.

Jedenfalls, da haben wir eine Partie mit check extensions und einem möglichen Programmfehler im Zeitmanagement des Polgar :)


[Date "2015.06.30"]
[White "Fidelity Designer 2325"]
[Black "Revelation Polgar"]
[Comment "30min/game, 5/4 Buchzüge"]
[Result "1-0"]

1.d4 Nf6 2.c4 e6 3.Nc3 Bb4 4.e3 O-O 5.Nf3 Ne4 6.Qc2 d5 7.Bd3
f5 8.O-O c5 9.cxd5 Bxc3 10.bxc3 exd5 11.Ba3 Qa5 12.Qb3 Rd8 13.c4
b5 14.cxb5 c4 15.Bxc4 dxc4 16.Qxc4+ Kh8 17.Ne5 Be6 18.Qxe6 g6
19.Be7 Nd7 20.Nxd7 Qxb5 21.Nc5 Qb6 22.Qe5+ Kg8 23.Ne6 Kf7 24.Nxd8+

Solwac 01.07.2015 09:50

AW: Warum Fidelity scheiterte!
 
Zitieren:

Zitat von Theo (Beitrag 54528)
Diese Behauptung halte ich für sehr gewagt. Schon allein, weil die Mitte der Zugfolge an einem früheren Zeitpunkt das Ende der Zugfolge war.

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.

Zitieren:

Zitat von Theo (Beitrag 54528)
Genau. Und das Erkennen von taktischen Wendungen auf dem Niveau der Klassenkameraden ist so ein Verhalten.

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.

Zitieren:

Zitat von Theo (Beitrag 54529)
Hast Du dafür eine Quelle oder ist es Deine Hypothese? Meinst Du die Singular Extensions kosten auf dem Großrechner +10% Rechenzeit und auf einem Mikro +50%, so ungefähr ?!

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.

spacious_mind 01.07.2015 13:56

Re: AW: Warum Fidelity scheiterte!
 
Zitieren:

Zitat von Solwac (Beitrag 54534)
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.

Um etwas zu verstehen da muss ich das problem erst zerbrechen in kleine Stufen um ueberhaupt es zu verstehen. Hier versuche ich es mal zu verstehen.

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

Theo 01.07.2015 21:08

AW: Warum Fidelity scheiterte!
 
Zitieren:

Zitat von Solwac (Beitrag 54534)
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.

Hast Du schon mal was vorzeigbares damit programmiert? Tue es und Du siehst die Sache vielleicht weniger einseitig.

Zitieren:

Zitat von Solwac (Beitrag 54534)
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.

Ähhhm. Ich helfe gern weiter: Teststellung --> Ergebnisse Konkurrenz --> Wieso können die das? --> Analyse Teil(Suchbäume) ---> Spezifikationen. Was denn sonst?!


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

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