-    F  ÷˙	     SiSiSi                       +      8                                         Stand 3.1.1989          (            *  - $m - ˙˙˙˙˙˙˙ <Programme f}r perfekte Schachendspiele und deren Validierung         (  ˙˙      1. Zusammenfassung          (            (  ?F}r spezielle Endspiele, z.B. K|nig und Bauer gegen K|nig m|ch- ?te man ein Programm entwickeln, das perfekt spielt. Das hei~t ?genau: Bei jeder Stellung, die zu gewinnen ist, soll das Pro- ?gramm diese Tatsache erkennen und es soll einen Gewinnzug fin- ?den; entsprechendes soll bei Remis gelten; in verlorener Stel- &lung soll es nur den Verlust erkennen.         (  ?Sicher bestehen einige Chancen, diese Forderung bei einigen ?einfachen Endspielen vollst{ndig zu erf}llen. Im folgenden wird 1skizziert, wie man ein Programm gestalten k|nnte.         (  ?Der Vorschlag, der in dieser Arbeit beschrieben wird, besteht ?in der Kombination der normalen Baumsuche mit dem Einsatz von        A ?Regeln aus dem Schachwissen zur Entscheidung }ber Gewinn/Remis/ ?Verlust f}r bestimmte Stellungen und dem Speichern von Stellun- gen mit Information.      
   (  ?Zuerst wird der einfache Fall vorgestellt, bei dem das Schach- ?wissen, auf Stellungsmerkmale angewendet, eine der drei M|g- ?lichkeiten f}r die Bewertung endg}ltig ausw{hlt: die einstufige ?Punktbewertung. An dem einfachen Beispiel K|nig und Bauer gegen ?K|nig wird gezeigt, da~ man mit nur 12 Regeln ungef{hr 90 Pro- ?zent der Stellungen entscheiden kann und die restlichen mit ?sehr geringem Suchaufwand, im Mittel weniger als 5 Knoten, ma- ?ximal weniger als 100 Knoten je Stellung, ebenfalls vollst{ndig ?beurteilen kann. Nur wenige Ausnahmestellungen werden in einer Hash-Tabelle gespeichert.         (  ?Dann wird die zweistufige Intervallbewertung vorgestellt. F}r ?die zu untersuchende Stellung wird durch das Schachwissen das         ?Intervall f}r die Bewertung eingegrenzt, z.B. auf Remis/Gewinn. ?Kombiniert mit den Bewertungsintervallen der in der Suche ange- ?troffenen Nachfolgerknoten (unter Umst{nden auch nur eines ?Nachfolgers) ergibt sich dann in sehr vielen F{llen eine voll- ?st{ndige Entscheidung }ber den Wert. Das Demonstrationsbeispiel (ist K|nig und Dame gegen K|nig und Dame.         (  ?F}r beide Varianten wird die Validierung beschrieben. Durch ?einmaliges Durchlaufenlassen des Validierungsprogrammes, das ?alle durch Regeln beurteilte Stellungen bearbeitet, kann man ?feststellen, ob das Endspielprogramm in allen F{llen richtig ist.         (  ˙˙      2. Der Algorithmus          (  ˙˙˙      2.1 Die extremen Formen          (            (  ?Man kann sich drei extreme Formen von Programmen f}r perfekte ?Endspiele vorstellen. Jede dieser Extremformen ist f}r sich ?wahrscheinlich v|llig absurd, aber eine Kombination von diesen l|st vielleicht das Problem.         (  Die drei extremen Formen.ŝ˙ŝ˙    (  ;A:Alle legalen Stellungen, die mit diesen wenigen Figuren         9m|glich sind, werden gespeichert. Die Bewertung Gewinn/         9Remis/Verlust und der zugeh|rige "beste" Zug werden ein 9f}r alle Mal ermittelt und bei der Stellung ebenfalls ge- 
speichert.ŝ˙ŝ˙    (  ;B:Es wird eine Baumsuche durchgef}hrt, und zwar so tief, 9bis ein ]bergang in ein anderes Endspiel erfolgt. Diese 9anderen Endspiele werden in gleicher Art behandelt. Viel- 9leicht besteht bei dem reduzierten Material doch eine /Hoffnung, in tragbarer Zeit zum Ziel zu kommen.ŝ˙ŝ˙    (  ;C:Aus dem Schachwissen werden Regeln hergeleitet, die ohne 9Ausnahme bei jeder Stellung feststellen k|nnen, wie sie 0zu beurteilen ist und welches der beste Zug ist.           ?Jede dieser drei Arten von Programmen ist in der reinen Form ?aus Effizienzgr}nden sicher nicht praktikabel. Betrachten wir ?die Gr|~enordnungen am Beispiel des einfachen Endspiels K|nig und Bauer gegen K|nig.ŝ˙ŝ˙      ;A:Der Bauer kann auf 6*8 feldern stehen, die beiden K|nige 9je auf fast 64 Feldern, Wei~ oder Schwarz kann am Zug 9sein, das ergibt ungef{hr 2-hoch-18 verschiedene Stellun- 9gen, also 1/4 Million, das ist f}r den Arbeitsspeicher 9schon recht viel. Vor allen ist das kaum auf Endspiele 9mit vier Steinen und }berhaupt nicht auf solche mit noch mehr Steinen erweiterbar.ŝ˙ŝ˙      ;B:Das l{ngste Endspiel hat vielleicht 10 Z}ge bis zum ]ber- 9gang in ein anderes. Die Suchtiefe kann also mit ca 20 9Halbz}gen angenommen werden. Rechnet man im Durchschnitt 9mit einer Verzweigung von 8, so sind unter Umst{nden 98-hoch-20, also ungef{hr 10-hoch-20 Z}ge zu untersuchen. 9Das d}rfte auch bei schneller Hardware nicht m|glich sein.ŝ˙ŝ˙ 
     ;C:Hier gibt es einen interessanten Vorschlag, der einen 9baumartigen Aufbau der Regeln vorsieht und gewisse heuri- 9stische Optimierungen durchf}hrt (siehe /QUI 83 oder 9Mehlsam). Der Nachteil besteht darin, das haben wenig- 9stens die ersten Experimente ergeben, da~ das Verzweigen 9bis zum letzten Detail, also das Ber}cksichtigen aller 9Sonderf{lle zu recht gro~en B{umen f}hrt. Dadurch wird 4dieses Verfahren recht aufwendig. Auch ist es recht 8schwierig, diese vielen Regeln (einige Hundert) alle ge- nau zu ermitteln.           ˙˙˙˙˙˙˙ <2.2 Das kombinierte Verfahren mit einstufiger Punktbewertung           ?Man kann sich vorstellen, da~ die drei beschriebenen Formen die ?Eckpunkte eines Dreiecks bilden. Jeder Punkt im Dreieck ist ei- ?ne Mischstrategie, die jede der reinen Strategien in einem ge- ?wissen Ausma~ enth{lt. Man m}~te den Punkt finden, der in einem ?gewissen Sinn optimal ist, der also das einfachste oder effi- ?zienteste Endspielprogramm darstellt. Nennen wir ihn den Schwerpunkt S (siehe Bild 1).ŝ˙         =S:Wir speichern einige charakteristische Stellungen (A), die ;insbesondere die schwierigen Ausnahmesituationen abdecken, ;z.B. schwarzer K|nig (sK) nicht im Quadrat des wB, trotzdem ;Remis: Wei~ Ka8, Ba7, Schwarz Kc8. Die Stellungen sollten ;eventuell auch "zentral" sein, d.h. von vielen Seiten aus ;erreichbar sein, z.B. K vor B, nicht links oder rechts schr{g davor.                         !                        C: Regeln                                                     S                                                      7            A: Speichern                B: Suche                                           1Bild 1: Der kombinierte Algorithmusŝ˙           ŝ˙      9Durch einfache Regeln (C) entscheiden wir viele einfache 9Stellungen, z.B. sK nicht im Quadrat des wB f}hrt zum Ge- 9winn f}r Weiss durch einen Bauernzug. Sicher braucht man 9noch einige weitere Regeln, z.B. }ber die Opposition. 9Aber nicht alle Stellungen m}ssen durch solche Regeln 9entschieden werden. Vor allem sollen ganz einfache 9Stellungen entschieden werden. F}r diejenigen, die kom- 9plizierte Man|ver verlangen, gilt der folgende Abschnitt.  ŝ˙      9Es wird zus{tzlich eine Suche (B) programmiert. Diese 9tritt dann in Kraft, wenn die Stellung nicht gespeichert 9ist und nicht durch einfache Regeln zu entscheiden ist. 9Diese Suche mu~ aber jetzt viel schneller zum Ziel f}h- 9ren. Denn bei allen Stellungen, die dabei erreicht wer- 9den, wird nat}rlich }berpr}ft, ob sie nach A oder C zu 9entscheiden sind. Wenn das der Fall ist, wird von dort 9aus nicht weitergesucht, d.h. der Suchbaum wird schm{ler, 9und viele Zweige sind weniger tief. Vor allem ganz unsin- 9nige Zweige, z.B. der K l{uft vom B weg, sollten durch  die Regeln abgeschnitten werden.           ?Es bleibt dem Geschick des Entwerfers einer solchen Strategie ?}berlassen, die Anteile der drei Strategien mit dem richtigen ?Gewicht in sein Programm einzubauen, also den Punkt S m|glichst gut zu approximieren.           ?Da das Ermitteln des besten Zuges in einer durch Regeln ent- ?schiedenen Stellung unter Umst{nden nur mit sehr komplizierten ?zus{tzlichen Regeln m|glich ist, lassen wir zwei Formen von ?entschiedenen Knoten zu: Der beste Zug, d.h. je nach der Situa- ?tion ein Gewinnzug oder ein Remiszug, kann ermittelt sein oder ?er ist unbekannt. Im ersten Fall kann das Programm beim Spielen ?unmittelbar auf diesen Zug zur}ckgreifen. Im zweiten Fall mu~ ?es ihn durch Suche erst ermitteln. Diese Suche ist sehr ?schnell, weil ja im allgemeinen die meisten Nachfolger durch ?Regeln entschieden werden und, wenn man einen mit geeigneter :Bewertung gefunden hat, dann kann man die Suche abbrechen.            ?Man mu~ aber doch beachten, da~ die beschriebene Vereinfachung ?Suchaufwand kostet. Vor allem in komplizierten Endspielen, in ?denen nur ein kleinerer Anteil von Stellungen durch die Regeln ?entschieden werden, k|nnen doch erhebliche Suchwege entstehen. ?Es ist daher in jeder Endspielart sorgf{ltig zu }berpr}fen, ob ?die Vereinfachung gerechtfertigt ist. Sie kann aber erheblich ?sein! Z.B. ist in unserem einfachen Beispiel die Regel "Der wB ?erreicht ungef{hrdet das Umwandlungsfeld" recht einfach mit der ?Quadratregel zu formulieren. Aber der Gewinnzug ist keineswegs ?immer der einfache Bauernzug um ein Feld nach vorne, es gibt ?viele Sonderf{lle: Der Doppelschritt (manchmal notwendig!), die ?Umwandlung (in was? Die Dame kann Patt verursachen), der wK mu~ 6ausweichen, weil er dem wB den Weg verstellt (wohin?).                         *                                                     ˙˙˙˙    "2.3 Mehrstufige Intervallbewertung            ?Anla~ f}r das Einf}hren einer "mehrstufigen Intervallbewertung" ?war die Feststellung, da~ es in manchen Endspielen leicht ist, ?mit sehr einfachen Regeln eine Teilbewertung durchzuf}hren. ?Beispielsweise im Endspiel K|nig und Dame gegen K|nig und Dame ?ist in sehr vielen Stellungen leicht zu sehen, da~ die Partei, ?die am Zug ist, nicht mehr verlieren wird: Bewertung /0,maxbew/.            ?Wenn das in einer Stellung S der Fall ist, und in allen ?Nachfolgestellungen - mit dem Gegner am Zug - der Gegner nicht verliert, dann ist S Remis.            ?Wir betrachten daher in diesem Kapitel ganz allgemein ?Intervalle als Bewertungen und kombinieren diese }ber mehrere Ebenen.                         ˙˙      2.3.1. Die Bewertung                         ?Die Bewertung einer Stellung S besteht aus einem Intervall ?/a,b/ und einer Tiefe t, eventuell noch aus einem Zug zbest. ?Sie bedeutet: Bestes Spiel von S aus f}hrt mit absoluter ?Sicherheit zu einem Ergebnis, das in /a,b/ enthalten ist. Diese ?Information wurde mit der Untersuchungstiefe t gewonnen. Wenn ?man ein genaueres Ergebnis haben will, dann mu~ man auf jeden ?Fall tiefer suchen, mit einer Tiefe <= t kann man nichts mehr verbessern.                         ?Diese Definition hat Konsequenzen auf den Beta-Abbruch! Man mu~ ?in diesem Fall die Tiefe auf Null zur}cksetzen, man hat ja ;unter Umst{nden nicht alle Z}ge mit der Tiefe t untersucht.                        ?Der Zug zbest, wenn er }berhaupt angegeben ist, ist nicht ?unbedingt der beste Zug. F}r ihn ist nur garantiert, da~ man ;mit ihm ein Ergebnis, das in /a,b/ enthalten ist, erreicht.                         ˙˙˙˙˙?   .2.3.2. Die Verwendung einer Stellungsbewertung                         ?bestzug6 wird f}r eine Stellung S mit einem Intervall ?/alpha,beta/ und einer gew}nschten Suchtiefe m aufgerufen. Die ?Hash-Tabelle enth{lt eine Bewertung nach 1. Kann sie verwendet werden?                          ?Wenn beta <= a ist, dann ist die gespeicherte Bewertung f}r die ?gestellte Anfrage genau genug, t spielt keine Rolle. Die ?Ergebnisparameter von bestzug6 sind auf /a,b/ und t zu setzen. 9zbest kann verwendet werden, wenn es nicht "nullzug" ist.                         ?Wenn b <= alpha ist, dann wei~ man mit Sicherheit, da~ kein ?besseres Ergebnis als alpha zu erreichen ist. Man wei~ nicht, ?ob man }berhaupt alpha erreichen kann. Die Ergebnisse sind wieder /a,b/ und t.                        ?Wenn keiner dieser F{lle vorliegt, dann darf die Bewertung nur "verwendet werden, wenn t >= m ist.                         ˙˙       2.3.3. Die Suche                         ?In S seien die Z}ge zi m|glich. Diese werden nacheinander ?ausgef}hrt, und die rekursiven Aufrufe von bestzug6 liefern die ?Bewertungen /ai,bi/ und die Tiefen ti zur}ck. Die Genauigkeit ?mmin der Untersuchung richtet sich nach dem ungenauesten Teil, also ist die Bewertung:                          3     maxa = Max  ai,  maxb = Max bi,  mmin = Min ti            /             i         i                      i            ?Damit hat man eine Bewertung nach 1, und zwar die sch{rfste, ,die m|glich ist bei der gew{hlten Suchtiefe.           ?zbest ist der Zug zi, der zu dem maximalen ai gef}hrt hat. Bei ?mehreren Z}gen mit dem gleichen ai wird der genommen, der das ?gr|~te bi hat. F}r die Tiefe ist jedoch, wie oben definiert, (nicht ti, sondern das Minimum zu nehmen.                         ˙˙      2.3.4. Der beta-Abbruch                   
      ?Die Suche kann abgebrochen werden, wenn f}r ein ai >= beta ?erreicht wird. Das Bewertungsintervall ist dann auf /ai,maxbew/ ?auszudehnen, denn es wurden ja nicht alle Z}ge untersucht, und ?die nicht untersuchten h{tten ja noch das Intervall nach rechts ?vergr|~ern k|nnen (die Verkleinerung links {ndert nichts an der ?Einschlie~ungseigenschaft des ermittelten Intervalls). Au~erdem ?mu~ die Tiefe auf Null zur}ckgesetzt werden, denn die ?Untersuchung mit der aktuellen Tiefe ist nicht abgeschlossen ?und daher mu~ die Aussage in 1. }ber die Tiefe nicht erf}llt sein.                         ˙˙˙˙˙   +2.3.5. Die Kombination von Regeln und Suche                         ?Die Regeln haben ein Intervall /a,b/ ergeben. Dann wird ?gesucht, das liefert /maxa,maxb/. Das richtige und sch{rfste ?Ergebnis ist der Schnitt, die Tiefe ist die von der Suche ermittelte.                         ?Es ist notwendig, maxa vor der Suche mit a zu initialisieren ?(und zbest mit nullzug), damit bei zbest kein Zug mit einem ?ai˙<˙a eingetragen wird, der also die Bewertung a unter ?Umst{nden nicht erreicht. Nach der Suche wird dann die obere ?Intervallgrenze gegebenenfalls auf b zur}ckgesetzt. Auch beim 1Beta-Abbruch darf b statt maxbew genommen werden.                        ?Wenn man Regeln benutzt hat, die auch ein zbest liefern, dann 1darf man nat}rlich mit diesem Zug initialisieren.                         ˙˙˙˙˙˙   02.3.6. Einbeziehen einer gespeicherten Bewertung                          ?Von einer gespeicherten Bewertung, die die Bedingungen von 2 ?nicht erf}llt, d}rfen jedoch das Intervall und zbest zur ?Initialisierung vor der Suche benutzt werden. Die Tiefe hat keine Bedeutung.                         ?Gibt es Ergebnisse von den Regeln und aus der Hash-Tabelle, so 0ist letztere wie eine Zugbewertung zu behandeln.                         ˙˙˙     2.3.7. Ein Punktintervall                         ?Erh{lt man f}r eine Stellung ein Intervall mit a = b, dann kann ?man diesem die Tiefe maxm zuordnen. Man kann auch die Suche 
abbrechen.                         ?Dieser Sonderfall tritt dann auf, wenn ein Zug ein ai liefert, ?das nicht kleiner als das b aus den Regeln ist, oder wenn man ?ein ai = maxbew findet. Das hei~t z.B.: In einer Stellung S ?kann Amzug nicht gewinnen (b=0); f}r einen zi wird ?festgestellt, da~ der Gegner nicht gewinnen kann (b=0 f}r den ?Gegner, aber ai=0 f}r zi von Amzug; damit ist die Stellung Remis und zi ist ein Remiszug.                         ?Der Sonderfall kann aber auch auf treten, wenn f}r S aus den ?Regeln ermittelt wurde, da~ Amzug nicht mehr verliert (a=0). ?Alle m|glichen Z}ge zeigen, da~ der Gegner nicht verliert (a>=0 ?f}r den Gegner, bi<=0 f}r Amzug f}r alle i, d.h. maxb=0. Auch ?in diesem Beispiel ergibt sich als Schnitt das Punktintervall /0,0/.                        ?Wenn in den beiden Beispielen die Bewertungen des Gegners aus ?den Regeln ermittelt wurden, dann hat man durch Kombination von ?Regeln aus zwei Ebenen eine eindeutige Stellungsbewertung ?ermittelt: zweistufige Intervallbewertung. Die Kombination der ?Intervalle wird aber durch den beschriebenen Algorithmus auch (}ber mehrere Stufen hinweg durchgef}hrt.                         ˙˙˙˙˙˙˙ 92.3.8. Das Alpha-Beta-Intervall f}r den rekursiven Aufruf                         ?Interessant f}r den rekursiven Aufruf sind nur Bewertungen ?besser als alpha, besser als a aus den Regeln und besser als ?das beste der bisher ermittelten ai. Bezeichnet man das Maximum ?dieser Werte mit maxab, dann ist das Alpha-Beta-Intervall f}r &den rekursiven Aufruf /-beta, -maxab/.                                    ˙˙      3. Die Validierung         (  ?Das Formulieren und Programmieren der Regeln sind extrem ?fehleranf{llige T{tigkeiten. Wer denkt schon daran, da~ es ?in unserem einfachen Beispiel bei "sK nicht im Quadrat" noch ?Ausnahmen gibt? Jeder kennt die Fehler in Abhandlungen }ber ?Endspiele. Beim Codieren werden oft noch weitere Fehler einge- ?schleppt. Auch beim Eintragen einzelner Stellungen k|nnen Irr- t}mer vorkommen.         (  ?Aus den genannten Gr}nden sollte ein Programm f}r perfektes ?Endspiel validiert werden, d.h. es sollte nachgewiesen werden,  >       ?da~ es immer das richtige Ergebnis liefert! Das kann man in folgender Art durchf}hren:            ˙˙˙     3.1. Die Konsistenzpr}fung                                ?Es werden alle legalen Stellungen nacheinander "gepr}ft". Jede ?Stellung S, die mit ihrem "besten" Zug gespeichert ist oder ?nach den vorliegenden Regeln entschieden wird, wird bei dieser ?]berpr}fung durch "Suche" getestet. Es wird zuerst der "beste" ?Zug ausgef}hrt, dann wird im Suchbaum vorausgeschaut. Dabei er- ?reicht man andere Stellungen z.B. solche, die nicht durch Spei- ?chern oder Regeln entschieden werden.  Aber beendet werden alle ?Zweige durch entschiedene Stellungen. Diese bezeichnen wir als ?die Stellungen, auf die sich S "abst}tzt". Man erreicht eventu- ?ell auch ]berg{nge in andere Endspiele, n{mlich nach Schlagz}- ?gen oder Umwandlungen. Es wird hier vorausgesetzt, da~ alle er- ?reichten anderen Endspiele schon validiert sind, also perfekt sind.           ?Als Ergebnis dieser Suche ergibt sich f}r jede zu untersuchende ?Stellung das Ergebnis Gewinn/Remis/Verlust. Dieses mu~ mit der 4aus den Regeln ermittelten Bewertung }bereinstimmen!           ?Falls das gespeicherte Ergebnis bei S nicht Gewonnen ist, kann ?es noch sein, da~ zwar die Bewertung f}r den angegebenen "be- ?sten" Zug richtig ist, da~ aber ein m|glicher besserer Zug beim ?Entwerfen }bersehen wurde. Man mu~ also zus{tzlich von S aus >suchen und pr}fen, ob nicht ein besseres Ergebnis m|glich ist.           ?Das Validieren der Stellungen, die zwar entschieden wurden, bei ?denen aber auf das Ermitteln des besten Zuges verzichtet wurde, ?geschieht auf dieselbe Art, es wird aber sofort in S mit der Suche begonnen.           ?Bei allen Stellungen, die nicht durch A oder C entschieden wer- ?den, mu~ man beim Pr}fen nur kontrollieren, ob die Suche mit ?"ertr{glichem Aufwand" zum Ziel f}hrt. Wir nehmen bei allem an, ?da~ wir ein korrektes Programm f}r die Suche haben, das alle 5Besonderheiten, wie Stellungswiederholung usw. kennt.         (  3Wir f}hren also folgenden Validierungsproze~ durch:          (         F}r alle Felder f}r den wK          (  $          F}r alle Felder f}r den sK          (  (              F}r alle Felder f}r den wB         (  1                  F}r Wei~ und f}r Schwarz am Zug          (  )                      Wenn Stellung legal         (  %                      dann validiere!           ?Danach st}tzen sich alle Stellungen nur noch auf validierte ?Stellungen ab, und durch Suche wurde das durch Speichern oder ?Regeln festgelegte Ergebnis best{tigt. Das gesamte Endspiel ist <jetzt fast (siehe n{chster Abschnitt) vollst{ndig validiert.           ˙˙      3.2 Validierungskreise           ?Ein Fehler ist jetzt nur noch m|glich, wenn sich falsche ?Stellungen auf falschen abst}tzen. Diese m}ssen sich aber wie- ?der auf falschen (anderen?) abst}tzen, und so weiter. Nach au- ?~en hin ist alles korrekt, die anderen Endspiele sollen ja ?schon validiert sein. Daher kann es Falsches nur dann geben, ?wenn der Abst}tzungsgraph Kreise enth{lt, d.h wenn sich minde- ?stens eine falsche Bewertung einer Stellung S auf sich selbst 6abst}tzt, eventuell auf dem Umweg }ber andere falsche.           ?Der  vollst{ndige Abst}tzungsgraph, also alle Stellungen mit ?ihren Abst}tzungen ist viel zu gro~ f}r eine explizite Untersu- ?chung auf Abst}tzungskreise. Zum Erkennen der Kreisfreiheit, ?bzw. der wenigen vorhandenen Kreise, lassen sich aber gro~e Re- ?duzierungen durchf}hren. Am besten f}hrt man eine "Statische ?Bewertung" ein. Jeder Kreis mu~ mindestens eine Stellung ent- ?halten, die sich auf eine andere mit kleinerer oder gleicher ?statischer Bewertung oder auf sich selbst abst}tzt. Man sagt ?also, da~ Abst}tzung auf h|here statische Bewertung unbedenk- ?lich ist; es werden aber alle Stellungen registriert, die sich ?auf solche mit niedrigerer oder gleicher statischer Bewertung ?abgest}tzt haben, das sind die kritischen Stellungen! F}r die- ?se, hoffentlich nur wenigen, wird dann explizit untersucht, ob %sie Ausgangspunkt eines Kreises sind.      	     ?Die statische Bewertung mu~ man nat}rlich so w{hlen, da~ m|g- ?lichst selten eine solche kritische Abst}tzung entsteht. Insbe- ?sondere sollte sie bei jeder irreversiblen Ver{nderung der ?Stellung, also bei einem Bauernzug, einem Schlagzug oder einer ?Umwandlung kr{ftig wachsen und damit auch die statischen Bewer- ?tungen der Stellungen, die durch einen solchen Zug getrennt ?sind, voneinander trennen. In unserem Beispiel k|nnen ja nur ?solche Stellungen in einem Kreis sein, die den Bauern auf dem- selben Feld haben.           ?Zum Nachweis der Kreisfreiheit mu~ man jetzt von jeder der oben ?erw{hnten kritischen Stellungen aus alle Zweige verfolgen. Er- ?reicht man dieselbe Stellung wieder, dann hat man einen Kreis ?gefunden. Erreicht man einen irreversiblen Zug, dann mu~ man ?diesen Zweig nicht weiter verfolgen, ein Kreis enth{lt ja einen ?solchen Zug nicht. Erreicht man eine andere kritische Stellung, ?so kann man diese gleich in die Untersuchung einbeziehen, f}r 0diese mu~ man ja jetzt dieselben Wege verfolgen.           ?Erkennt man beim Validieren einen Kreis, dann mu~ man diesen ?durch Korrektur der Regeln oder durch Hinzuf}gen neuer gespei- ?cherter Stellungen aufl|sen. Danach mu~ der Validierungsproze~ ?wieder ganz am Anfang begonnen werden. Die Korrektur eines Feh- ?lers an einer Stelle kann durchaus einen Fehler an anderer Stelle erzeugt haben.           ˙˙˙˙    $3.3 Korrektheit der Gewinnstellungen           ?Es gibt noch einen Satz, der den Zeitaufwand f}r das Suchen ,nach Abst}tzungskreisen erheblich reduziert:          8Satz: Falls die Validierung f}r ein Endspiel erfolgreich 8verlaufen ist, dann sind alle Gewinn- und Verlust- 8stellungen, die durch Regeln oder durch Speichern ent- #schieden wurden, richtig beurteilt.           ?Wir f}hren eine indirekten Beweis. Wir nehmen an, eine Gewinn- ?stellung S0 mit Wei~ am Zug sei falsch beurteilt, also mit Re- mis oder Verlust.            ?Jetzt konstruieren wir einen Gewinnweg von S0 zu einer Gewinn- ?stellung G (Matt oder aus einem anderen validierten Endspiel). ?Es wird ein solcher Gewinnweg ausgew{hlt, der beim Validieren ?mit Sicherheit verfolgt worden ist. Dieser Gewinnweg wird uns ?einen Widerspruch zur Annahme zeigen, wodurch der Satz bewiesen ist.                        /Bild 2: Kreisfreiheit bei Gewinn                        ?Auf jedem Gewinnweg wechseln Stellungen vom Typ g (Wei~ ge- ?winnt) und v (Schwarz verliert) einander ab, und er endet nach ?endlich vielen Schritten in G, welche garantiert richtig beur- ?teilt ist. Ein Gewinnweg enth{lt keine Stellungswiederholungen, ?d.h. die wei~en Gewinnz}ge f}hren in solche Stellungen, in de- ?nen schwarze Z}ge nicht erzwingen k|nnen, da~ eine auf dem bis- ?herigen Weg schon einmal erreichte Stellung wieder erreicht wird.           ?Der Gewinnzug f}hrt von S0 (falsch beurteilt) aus zu einer Ver- ?luststellung S1. Diese mu~ auch beim Validieren erreicht worden ?sein, weil ja von S0 aus ergebnislos nach einem Gewinnzug ge- ?sucht worden ist. Sie mu~ auch falsch beurteilt worden sein, ;sonst w{re ja S0 richtig als Gewinnstellung erkannt worden.           ?Die Nachfolger von S1 sind alle verschieden von S0 (keine Stel- ?lungswiederholung!). Alle sind Gewinnstellungen. Mindestens ei- ?ne ist falsch beurteilt worden und auch beim Validieren er- ?reicht worden, sonst w{re S1 richtig mit Verlust beurteilt wor- den, wir nennen sie S2.           ?Von S2 aus gehen wir einen Gewinnweg weiter, wie vorher von S0 ?aus. Wir kommen immer wieder zu falsch beurteilten Nachfolgern. ?Keine Stellung wird aber mehr als einmal angetroffen. Da es nur ?endlich viele Stellungen gibt, m}sen wir schlie~lich nach G >kommen, was richtig beurteilt ist und das ist der Widerspruch!            ?Da alle durch Regeln entschiedenen Gewinn- und Verluststellun- ?gen (nach erfolgreicher Validierung) richtig beurteilt sind, ?mu~ man keine auf Remis entschiedenen Stellungen auf Kreisfrei- ?heit untersuchen; diese k|nnen ja allenfalls falsch beurteilte ?Gewinn- oder Verluststellungen sein, was gerade ausgeschlossen wurde.                        ˙˙      3.4. Remiskreise           ?Abst}tzungskreise k|nnen also nur bei falsch beurteilten Remis- ?stellungen auftreten. Nach diesen mu~ dann aber auch gesucht werden.           ?Das bedeutet aber, da~ bei der Validierung alle mit Gewinn oder ?Verlust beurteilten Stellungen in der in 3.2. beschriebenen Art ?auf Kreisfreiheit untersucht werden m}ssen, es k|nnten ja ?falsch beurteilte Gewinnstellungen sein. Entdeckt man einen ?Kreis, der vom vermeintlichen Verlierer erzwungen werden kann, so liegt ein Fehler vor.           ?Es m}ssen schon stark einschr{nkende Voraussetzungen erf}llt ?sein, damit ein falsch beurteilter Remiskreis auf die Bewertung ?anderer Stellungen keinen Einflu~ haben kann, also bei der  Validierung nicht entdeckt wird:ŭ˙        ?1) Alle anderen wei~en Z}ge d}rfen nicht zum Gewinn f}hren, (sonst w{re die Beurteilung nicht falsch.ŭ˙        82) Alle anderen schwarzen Z}ge m}ssen auch (wirklich) zu 9Verlust f}hren, sonst w{re die Beurteilung nicht falsch. ŭ˙        ?3) Keine Remisstellung mit W am Zug darf in den Kreis f}hren, 'sonst w{re auch diese falsch beurteilt.ŭ˙        ?4) Jede Remisstellung mit S am Zug hat auch eine <Remisabst}tzung au~erhalb des Kreises, sonst w{re auch sie falsch beurteilt.           ?Es ist nicht leicht, ein Beispiel zu konstruieren, das alle ?diese Bedingungen erf}llt. Bei K|nig und Bauer gegen K|nig ist ?folgendes ein falsch beurteilter Remiskreis ohne Wirkung nach au~en:          :wei~er Randbauer, wK irgendwo vor ihm auf der Randlinie, sk auf der c bzw. d-Linie,          :wK um 1 Reihe vor oder hinter dem sk, sk jedoch mindestens :eine Reihe weiter als der wB (wenn wB auf dem Ausgangs- 6feld, dann sogar mindestens 2 Reihen weiter): Gewinn!?          (wk und sk auf derselben Reihe: Verlust!?                       ˙˙˙     3.5. Stellungswiederholungen           ?Auch nach erfolgreicher Validierung und nach dem Nachweis, da~ ?keine falsch beurteilten Kreise vorhanden sind, kann es beim 5Spielen der Partie zu Stellungswiederholungen kommen.           ?Beispiel: W: Kb6, Bb5; S: Kb8; W am Zug, Kb6-c6 f}hrt zu einer ?Stellung, die gewonnen ist, das ist korrekt beurteilt. Aber ?nach Kb8-a8 besteht die bekannte Pattgefahr. W mu~ mit dem K ?wieder zur}ck auf b6 und dann auf a6, erst dann kann der Bauer ?laufen. Es ist also ein Fehler des Algorithmus, wenn er in der ?gegebenen Stellung Kb6-c6 als Gewinnzug nimmt, bei Wiederholung $nimmt er diesen Zug ja immer wieder.           ?Man mu~ also bei der Validierung nach Kreisen in den ?Gewinnwegen suchen und diese eliminieren. Die Frage lautet ?also: Gibt es eine Gewinnstellung S, in der ein Gewinnzug nach ?S1 ermittelt wird, wobei von S1 aus der Gegner erzwingen kann, ?da~ f}r einen Gewinn wieder zu S zur}ckgegangen werden mu~? Das ?bedeutet aber: Gibt es einen Gewinnkreis, den der Verlierer erzwingen kann?           ?F}r die gewinnende Partei m}ssen wir in jedem Knoten den vom ?Algorithmus ermittelten Gewinnzug benutzen. F}r den Verlierer À       ?sind alle Z}ge zu erfolgen! Das hei~t wir m}ssen einen ganzen Baum durchsuchen!      	     ?Da es f}r die Existenz eines solchen Kreises unerheblich ist, ?wo man in ihn einsteigt, vereinbaren wir, da~ wir das an dem ?h|chsten Punkt, bez}glich der statischen Bewertung tun. Das ?bedeutet aber, da~ wir in jeder Gewinnstellung, in der der ?Gewinnzug zu einer niedrigeren statischen Bewertung f}hrt, die ?Untersuchung auf einen Kreis durchf}hren m}ssen. In jedem Zweig ?d}rfen wir die Untersuchung abbrechen, wenn wir einen ?irreversiblen Zug erreichen oder eine statische Bewertung die %gr|~er ist als die Ausgangsbewertung.            ?(Voraussetzung an die statische Bewertung: Wei~, der Gewinner, 5ver{ndert sie mit jedem Zug, und zwar st{rker als S).                                     ˙˙      3.6 Teilvalidierungen           ?Bei komplizierteren Endspielen, insbesondere bei einer gr|~eren ?Anzahl von Steinen ist eine vollst{ndige L|sung in der be- ?schriebenen Art nicht mehr m|glich. Insbesondere ist die ?Validierung nicht mehr l}ckenlos durchf}hrbar, sie w}rde unter Umst{nden Jahre dauern.      	     ?In diesen F{llen wird aber eine Teill|sung, also der Einbau ei- ?niger sicherer Regeln und Stellungen, den normalen Suchvorgang ?durch Abschneiden vieler [ste des Zugbaums eine Beschleunigung ?bringen. Insbesondere wird das wirkungsvoll, weil ja f}r die ?"entschiedenen" Stellungen eine sichere, endg}ltige Entschei- ?dung getroffen wird. Also unabh{ngig von der Suchtiefe wird die ?Bewertung dieser Stellungen  unwiderruflich festgelegt, auch ?bei h|herer Suchtiefe (in der Iteration) werden sie nicht wie- 3der untersucht und verursachen keinen Aufwand mehr.           ?Man beachte aber, da~ in diesen nicht vollst{ndig validierten ?Endspielen nur solche Stellungen und Regeln benutzt werden, die ?garantiert richtig sind! Aber schon einige Unsinnigkeitsregeln $begrenzen den Suchaufwand erheblich.            ˙       3.7 Priorit{ten                   	     ?Man wird auf jeden Fall die Priorit{tsregel einf}hren, da~ bei ?einer zu untersuchenden Stellung zuerst gepr}ft wird, ob sie ?gespeichert ist. Erst danach wird man die Regeln auswerten. Da- ?durch kann man die Regeln unter Umst{nden viel einfacher formu- ?lieren, denn sie m}ssen ja nur f}r die Stellungen richtig sein, ?die nicht gespeichert sind. Zum Beispiel ist "sK nicht im Qua- ?drat" eine hinreichende Bedingung f}r Gewonnen, wenn man vor- ?aussetzt, da~ W:Ka8,Ba7, S:Kc8 sowie die anderen verwandten Re- misstellungen gespeichert sind.      	     ?Ebenso wird man die Regeln untereinander ordnen, soda~ jede Re- ?gel nur f}r solche Stellungen gelten mu~, die nicht gespeichert ?sind und nicht durch Regeln h|herer Priorit{t entschieden wer- ?den. Dadurch vereinfachen sich die Regeln niedrigerer Priorit{t ?ganz erheblich. Z.B. untersuchen wir in unserem Beispiel zuerst ?die "Einklemmregel", d.h. ob der wK vor dem wB auf einer Rand- ?linie eingeklemmt werden kann. Danach m}ssen wir in vielen fol- ?genden Regeln die Ausnahmeregeln f}r den Randbauern nicht mehr 	beachten.            ?Die Priorit{ten steigern die Fehleranf{lligkeit erheblich. Da- ?durch wird die Notwendigkeit einer vollst{ndigen Validierung noch deutlicher.                                     ˙       4. Literatur÷˙  	      ?/QUI 83/ Quinlan, J.R.: Learning Efficient Classification 6Procedures And Their Application To Chess End Games, #Machine Learning (1983), P.463-482.÷˙  	       ?/BAR,TH/ Barth, Thomas: Neue Varianten von Suchverfahren und 6Stellungsbewertungen im Computerschach, Dissertation "Technische Universit{t Wien, 1988.             rd die Notwendigkeit einer vollst{ndigen Validierung noch deutlicher.                                     ˙       4. Literatur÷˙  	      ?/QUI 83/ Quinlan, J.R.: Learning Efficient Classification 6Procedures And Their Application To Chess End Games, #Machine Learning (1983), P.463-482.÷˙  	       ?/BAR,TH/ Barth, Thomas: Neue Varianten von Suchverfahren und 6Stellungsbewertungen im Computerschach