Schach (US)

From Chessprogramming wiki
Jump to: navigation, search

Home * Engines * Schach

Knights Templar playing Chess [1] [2]

Schach,
an early chess program by Rolf C. Smith and Franklin D. Ceruti, competing the first three ACM North American Computer Chess Championships, the ACM 1970, ACM 1971 and the ACM 1972. Schach was originally developed in 1968 as part of the requirements for the degree of Master of Computer Science at Texas A&M University under advisor Dan D. Drew [3], was written in Fortran and had an implementation of a SOMA like algorithm instead of quiescence search. Static exchange evaluation was further used at interior nodes for move ordering and pruning aka reducing the width of a Shannon Type B program.

Description

Rolf C. Smith's description from the ACM 1971 panel session [4]:

SCHACH was originally developed in 1968 as part of the requirements for the degree of Master of Computing Science at Texas A&M University. Basic FORTRAN was chosen as the language which would lend itself best to the programming and the degree of machine independence and availability desired by its authors. It was initially programmed via the RAX terminal system on an IBM 360/40 belonging to LTV on loan to the University. In late 1968 it was switched over to A&M's new IBM 360/65; in 1969 it ran on IBM 360/50's in Saigon, RVN and in Sadahip, Thailand, when the authors were transferred overseas with the U.S. Air Force. It has most recently run on an IBM 1410 and is now in residence on a UNIVAC 418 III.

The backbone of SCHACH is the concept of piece board control, defined as all squares on which a piece exerts direct or indirect influence (can move to in a capture mode). Utilizing this concept we have found that a pseudo-dynamic position projection can be effected in a static environment on a local scale. Significant is that this is accomplished through the control concept without actual move regeneration in depth. Coupled with a heuristic method developed for examination of multiple piece exchanges (SWAP), it is theoretically possible to predict/project move sequences up to 36 plys in depth with substantial accuracy. This is used in lieu of alpha-beta pruning or dynamic move-generation ordering, permitting pre-pruning of move-group subsets prior to recursive evaluation and deeper ply explorations.

The following items are considered significant enough to warrant discussion during the panel session:

  1. Piece board control methods, theory, tabling and application.
  2. Dynamic piece reweighting system.
  3. Approaches to minimax criteria and systems of treeing used to date.
  4. Table of interrelated values/weights for the overall static evaluation "polynomial" and positionality criteria. In support of this are some sample sequences which demonstrate the effect of some of the major criteria in a stand-alone use for static evaluation.
  5. Coding optimization and considerations in logic optimization for elimination of repetitive and recursive portions in favor of progressive deepening and reevaluation compression and retention.
  6. Book opening considerations.
  7. Macro flow of program logic and micro explanation of basic table design.
  8. Statistics accrued in game play.

Captain Smith collaborated with Captain Franklin D. Ceruti, USAF, in the development of SCHACH.

Selected Games

ACM 1972, round 2, Leverett CP - Schach [5]

[Event "ACM 1972"]
[Site "Boston USA"]
[Date "1972.08.14"]
[Round "2"]
[White "Leverett CP"]
[Black "Schach"]
[Result "0-1"]

1.Nc3 d5 2.e4 dxe4 3.Nxe4 e5 4.Qh5 Nc6 5.Nf3 Nf6 6.Nxf6+ gxf6 7.Bc4
Qd7 8.Qxf7+ Qxf7 9.Bxf7+ Kxf7 10.O-O Rg8 11.d3 Bc5 12.Be3 Nd4 13.Nxd4
exd4 14.Bf4 Bd6 15.Bg3 Be6 16.a4 Rg5 17.h4 Rg4 18.b4 Bxg3 19.fxg3
Rxg3 20.Rf4 Rd8 0-1

Continuation

see main article Schach 2

According to the Chessgames.com description [6], a 1970 version of Schach was extended in 1978 to become Schach 2, ported to Algol by Matthias Engelbach, at that time German military officer and student at Bundeswehr University Munich. In the early 90s, along with co-author Thomas Kreitmair, Schach 3.0 was a complete re-write in x86 (486) assembly language for PCs, to become one of the fastest programs of its time [7].

See also

Publications

External Links

References

Up one level