![]() | ![]() |
Diskutiere Arbeitsweise von Schachcomputern/ Programmen im Schachcomputer Bereich; Hallo zusammen! Bin absoluter Laie auf dem Gebiet und habe mal eine Frage zur Arbeitsweise von Schachcomputern/ Programmen: ich verstehe einfach nicht, daß ein Schachprogramm ...
| |||||||
| | #1 |
| Arbeitsweise von Schachcomputern/ Programmen Hallo zusammen! Bin absoluter Laie auf dem Gebiet und habe mal eine Frage zur Arbeitsweise von Schachcomputern/ Programmen: ich verstehe einfach nicht, daß ein Schachprogramm resp. Computer deutlich stärker als sein Autor (Programmierer) sein kann?! Zwar kann ich noch nachvollziehen, daß die reine Prozessorleistung bei der Berechnung von Varianten dem menschlichen Gehirn überlegen ist, aber egal wie tief und schnell ein Computer auch rechnet, irgendwann kommt der Punkt, wo eine Stellung bewertet werden muß! Wo kommt diese offensichtlich sehr gute Bewertung her? Hätte der Autor sie in seinen Programmen vornehmen können, wäre er doch mindestens so stark wie sein Programm (ist er ja aber nicht!)? Wo ist mein "Denkfehler"? Wäre Klasse, wenn mir das jemand erklären könnten, bzw. einen Link für mich hätte, wo meine Frage beantwortet wird Liebe Grüße Dugena | |
| | #2 | |
| AW: Arbeitsweise von Schachcomputern/ Programmen Zitat:
Ein Kran kann auch wesentlich höhere Lasten heben als der Konstrukteur desselben, etc. etc | ||
| | #3 |
| AW: Arbeitsweise von Schachcomputern/ Programmen Die Bewertung selber hat natürlich der Programmierer festgelegt. Aber wenn der versucht, wie die Engine bei jedem Zug zu rechnen, wie die Bewertung ist, dann überschreitet er die Zeit Oder schaffst du z.B. 40 Züge in 2 Stunden, wenn du jedesmal... 1. den Wert aller Figuren zusammen addierst, und 2. dann noch Stellungsbewertungen dazu rechnest usw... und 3. das auch noch nach jedem gedachten Zug (du denkst ja im Voraus) machen musst? Sonictroot | |
| | #4 | |
| AW: Arbeitsweise von Schachcomputern/ Programmen Zitat:
Dein Denkfehler ligt schon darin zu meinen das Schachprogramme eine "gute" Stellungsbewertung haben. Ein durchschnittlicher Schachspieler dürfte über erheblich mehr reines Schachwissen als ein Spitzenprogramm verfügen. Chrilly Donninger("Vater" der Nimzos + Hydra)sagte glaube ich mal "nehmen sie Awerbachs Endspielbuch "Bauernendspiele" her und geben 10% dessen was dort steht in ihr Schachprogramm ein und ihr Programm übertrifft alle derzeit auf dem Markt befindlichen Schachprogramme im Bauernendspielwissen deutlich". Mit freundlichem Grusse Mr. Ioso | ||
| | #5 | |
| AW: Arbeitsweise von Schachcomputern/ Programmen Zitat:
Damit meine ich, dass - selbst wenn die Stellungsbewertungsroutine des Computers recht rudimentär ist - dies durch geballte Rechenpower mehr als kompensiert wird. MfG schawipp | ||
| | #6 | |
| AW: Arbeitsweise von Schachcomputern/ Programmen Zitat:
findest du z.B. in einer Maturitätsarbeit des Schweizers Dominik Käser. Die Grundsätze des Regelwerks selber - dessen laufende Differenzierung macht einen bedeutenden Teil der Spielstärke moderner Programme aus - sind schon seit Jahren bekannt, seine Formalisierungen erlauben es auch schlechten Schachspielern, hervorragende Programme zu schreiben. Falls du Engine-Autoren persönlich fragen willst, lohnt sich vielleicht ein entspr. Posting im größten deutschen Computerschach-Forum CSS. Gruss: Walter | ||
| | #7 | |||||
| AW: Arbeitsweise von Schachcomputern/ Programmen Zunächst mal vielen Dank für eure Denkanstöße Zumal eure Antworten doch in Recht unterschiedliche Richtungen zielen: Zitat:
Dagegen läuft doch die Konstruktion eines Krans "straight-forward" und "deterministisch ab! Zitat:
Es ist aber gerade Deine Feststellung, daß der Programmierer die Bewertung festlegt, die ich nicht begreife. Denn diese Bewertung muß m.E. trotz der Vorteile bei der Rechenleitung des Prozessors immer noch saugut sein. Hätte gedacht z.B. auf GM Niveau. Der Programmierer hat aber kein GM Niveau?! Wie erklärt sich diese Diskrepanz? Zitat:
Dann hätte ich allerdings eine neue Frage: wenn am Ende der Berechnung einer Variante nicht die "Bewertung" steht, was macht das Programm stattdessen?? Zitat:
Ich hätte mal gedacht, daß die Dinge kaum vergleichbar sind. Ersten stelle ich mir sehr einfach vor, aber wie sieht der "Algorithmus" zur Bewertung einer Mittelspielstellung aus? Beispiel: Ist der Nachteil des Doppelbauern langfristig durch die Iniatitive kompensiert? Was für eine schwierige Fragestellung, von der ich überhaupt nicht wüßte, wie sie "algorithmisch" zu greifen ist?! Zitat:
![]() Euer Dugena | ||||||
| | #8 |
| AW: Arbeitsweise von Schachcomputern/ Programmen Nicht bei allen Programmen wird die Bewertung und Parameteraufstellung vom Autoren gemacht (siehe auch genetische Schachprogrammierung) | |
| | #9 | |
| AW: Arbeitsweise von Schachcomputern/ Programmen Zitat:
Natürlich wird jede stellung einer "Bewertung" unterzogen nur ist diese eben recht einfach gestrickt und nicht mit dem eines z.B. Grossmeister zu vergleichen der uhnmengen an positionellem Wissen besitzt. Selbst die Besten Programme sind in erster Linie Materialisten. Mit freundlichem Grusse Mr. Ioso | ||
| | #10 |
| AW: Arbeitsweise von Schachcomputern/ Programmen es gibt n programm, welches bei Suchtiefe 1 ne geschätzte Elo von ca. 2250 erreicht - wenn man es lange genug lernen lässt, denn das Programm nimmt ein eigene Parametereinstellung vor. | |
| | #11 | |
| AW: Arbeitsweise von Schachcomputern/ Programmen Zitat:
![]() Die Stellungsbewertung von Schachprogrammen ist tatsächlich nur eine primitve Summenbildung, die dann letztlich zu den bekannten "+0.13" führt. Dabei zählt "das Ding" aber nicht nur Material, sondern auch "Stellungsfaktoren" mit vorgegebener Gewichtung. Also beispielsweise +0.2 für das Läuferpaar oder -0.5 für einen isolierten Doppelbauern oder +0.2 für Turm auf einer offenen Linie. Das sind alles rein fiktive Beispiele, sollen aber das Prinzip verdeutlichen. Die Algorithmen zur Findung von Punkten, an denen überhaupt eine genaue (!) Bewertung durchgeführt wird, macht dann viel von der Rechentiefe eines Programms aus. Außerdem sind die Engines problemlos in der Lage mittels mehrerer Threads sämtliche Kapazitäten der Hardware auszunutzen. Seit Dual- und Quadcore-Prozessoren üblich sind, können sie also doppelt bis viermal soviele Knoten pro Zeit durchrattern. Für diejenigen ohne Programmierkenntnisse hier mal ein beispielhafter Vergleich, wie Computer und Mensch an einfache Probleme herangehen. Sicher kein sehr tolles Beispiel, vielleicht hat da jemand ein besseres. Ist eine beliebige Zahl durch 6 teilbar? Ein Mensch würde nach etwas Vorüberlegung die letzte Ziffer ansehen. Ist diese gerade, dann würde er die Quersumme bilden und wenn diese durch 3 teilbar ist, dann ist die Zahl durch 6 teilbar. Software kann das in jedem Fall schneller als der Mensch leisten, kann aber immer nur das tun, was der Mensch ihr vorher eingebläut hat. Entweder ich führe die "menschliche Abfrage" in Programmcode durch oder ich lasse direkt Zahl modulo 6 rechnen und falls das 0 ergibt, dann war die Zahl teilbar. Letzteres ist vermutlich schneller und weniger fehleranfällig. ![]() Was ich damit verdeutlichen will: Wenn es den Entwicklern von Schachsoftware möglich wäre, dem Programm mehr "Schachverstand" einzuimpfen während sie es dabei verbessern, dann würden sie das sicher tun. Meinem Kenntnisstand nach ist das auch die intensivste Forschungsstelle zur Zeit, aber bisher sind die "brutalen" Lösungen mit wenig Stellungsverständnis noch besser... | ||
| | #12 |
| AW: Arbeitsweise von Schachcomputern/ Programmen die genetische Programmierung hat da bereits Wege eingeschlagen, die zwar noch nicht zu wirklich guten Programmen führten - aber vom Grundsatz her ganz anders als herkömmliche Schachprogramme sind. Man setzt zB eine Anzahl von Parametern: Wertung der Figuren als Zahlenwerte (aber ohne die Werte zu bestimmen), Anzahl der Figuren, freie Felder - also viele verschiedene Kriterien, die man für relevant hält, aber ohne Werte dafür einzufügen. Dann lässt man mehrere Tausend dieser Engines, die anfangs auf gleichem Niveau sind, gegeneinander spielen - und/oder macht eine Auswertung von Partien, die vorher gründlich daraufhin untersucht werden müssen, dass sie nicht auf Zeit verloren wurden, oder extrem grober Fehler. Am Ende - so nach einem Jahr kommen sehr interessante Bewertungskriterien dabei heraus - die dann auch nicht wie bei primitiven Programmen statisch sein müssen - und aus rein empirischer Betrachtung mit technischer analyse dann gegeneinander aufgewogen werden. Darüber hinaus kann man noch weiter gehen und Programme schaffen, die die Regeln eines Spiels gar nicht kennen und durch viele Spiele, die sie nachspielen erlernen. Bei genügend hoher Anzahl von ERfahrungswerten wäre beim Schach zB das Regelwerk fast egal, um eine Stellung mit Suchtiefe 1 zu bewerten - wäre aber jetzt sehr kompliziert das genauer zu erläutern. Wenn ich Zeit habe suche ich heraus, welches Institut das eLO 2250 prog experimentel entwickelt hat und welches beinahe Positions"verständnis" hat. Die entsprechenden Ressourceneinträge in die Programmierung wurde dabei vom Computer vorgenommen - nicht vom Menschen. - Die "software" schreibt sich dabei also quasi teilweise selbst. Wahrscheinlich hier schon vielen bekannt und da es kostenlos öffentlich zur Verfügung gestellt wurde erwähne ich eine von vielen Arbeiten zu diesem Thema: " Dissertation zur Erlangung des Grades eines Doktors der Naturwissenschaften der Universität Dortmund am Fachbereich Informatik von Wolfgang Kantschik" ist aber schon 4 Jahre alt - ist nicht das einzige zu dem Thema und hat sich bereits weiterentwickelt. | |
| | #13 |
| AW: Arbeitsweise von Schachcomputern/ Programmen Ich verstehe deine Ausführungen und glaube auch gerne, dass da einiges rauszuholen ist. Eine Spielstärke von ELO 2250 bei Suchtiefe 1 halte ich aber für vollkommen unmöglich. Schach ohne Taktik gibt es nicht, ein klein wenig muss man in jeder Partie auch Varianten rechnen. Also wenn du Zeit hast, würde mich ein Link zu dem besagten Programm interessieren, habe aber selbst grade Klausurphase. Insofern keine Eile! | |
| | #14 | |
| AW: Arbeitsweise von Schachcomputern/ Programmen Zitat:
Bei Junior hatte der Autor Amr Ban ich glaub es war von JUni0r 8 auf Junior 9 sehr lange gebraucht mit dem Release, auf Nachfrage sagte er glaube ich, wenn ich das noch recht in Erinnerung habe, die meiste Zeit der Entwicklung für Junior 9 ging für eine bessere Bewertungsfunktion drauf. Deshalb glaube ich schon, daß eine Verbesserung der Bewertungsfunktion eines Schachprogrammes dieses vorwärts bringen kann. Gruß Thomas Wallendik | ||
| | #15 | ||
| AW: Arbeitsweise von Schachcomputern/ Programmen Zitat:
Zitat:
Das hat auch keiner bestritten. Trotzdem ist das Schachwissen von Schachprogrammen deutlich geringer als das von GMs. | |||
| | #16 | |
| Zitat:
Andererseits ist Strategie aber nichts anderes als eine Krücke, um die mangelnde menschliche Fähigkeit, taktisch präzise zu rechnen und zu spielen, zu überbrücken. Von daher sind die hauptsächlich taktisch orientierten Schachprogramme vielleicht doch auf dem besseren Weg zur schachlichen Perfektion!? | ||
| | #17 | ||
| AW: Arbeitsweise von Schachcomputern/ Programmen Zitat:
Zitat:
Natürlich könnte man dieses Problem lösen, indem man der 'perfekten' Maschine eine Art Schwierigkeitsgradmesser für die Stellung einbaut, sodass sie immer Stellungen wählt, die für den Gegner möglichst schwierig zu spielen sind. Und genau diese Funktion hat in herkömmlichen Engines und auch bei Menschen die Strategie! Strategie ist die Fähigkeit, aus einer Remisstellung mehr als das Remis herauszuholen, indem man Stellungen anstrebt, die für den Gegner möglichst schwer zu spielen sind. | |||
| | #18 | |
| AW: Arbeitsweise von Schachcomputern/ Programmen Zitat:
PS - Was Programmierer von kommerziellen und bekannten Schachprogrammen bisher geleistet haben, find ich übrigens enorm - Fritz, Hiarcs, Rybka ... . ich kann sie nicht alle aufzählen. | ||
| | #19 |
| AW: Arbeitsweise von Schachcomputern/ Programmen Hallo Dugena und alle anderen, ich hole mal interessante Beiträge wieder hoch. der Programmierer muss gar nicht bewerten können. Er muss nur die Schachgrundregeln kennen, sehr gut programmieren können, Eröffnungsbücher eingeben können und sehr gut in Mathematik sein. Die Programmierer von Stockfish verwenden zum Beispiel die Alpha-Beta-Suche, um gute Züge zu finden und die Bitboard Struktur zur Figurenanalyse. Die Eröffnungsbücher verleihen der Maschine unüberwindbare Vorteile gegenüber dem menschlichen Spieler, der irgendwann in der Eröffnung einen Fehler macht. Aus dieser fehlerhaften Stellung berechnet das Programm dann nach mathematischen Regeln der Alpha-Beta-Suche den besten Antwortzug. Bitboard ? Wikipedia Alpha-Beta-Suche ? Wikipedia | |
| | #20 |
| AW: Arbeitsweise von Schachcomputern/ Programmen naja - keres angriff fehlerhaft? noch keine engine gesehen, die darauf kommt - ich würde das vorsichtiger einschätzen, was GMs in Eröffnungen spielen und was engines dabei alles so verzapfen | |
| | |||||
| Themen-Optionen | Thema durchsuchen |
| ||||
| Thema | ||||
| Frage bezüglich Schach Programmen Frage bezüglich Schach Programmen: Hallo, habe lange Zeit kein Schach mehr gespielt... | ||||
| verschiedene Spielstile bei Schachcomputern verschiedene Spielstile bei Schachcomputern: Hallo, ich habe einen Kasparov Mk14 Trainer... | ||||