Reinhard Scharnagl Interview
“20 Questions” with Reinhard Scharnagl (Author of
Smirf & FullChess) English Version
Questions by Christopher Conkie, Michael Diosi & Alex Schmidt.
Hello Reinhard. Thank you for agreeing to answer our questions today.
Thank you for the opportunity to be able to clear a few possible misunderstandings which concern me and my activities in computer chess.
Question 1.
Are you going to participate at the WCCC in Torino or at the next FRC-world championship, it would be nice to see you there?
I have not seriously thought about that yet. SMIRF has certainly made some progress, but it is not sure yet sure whether it can compete against "the majors". One should not forget that I try here and there to reinvent "the 'wheel" anew. This is certainly not efficient, and I also note with postings in different forums that probably everywhere, similar attempts exist, Nevertheless I keep on with my approach.
Before the Chess Classic in Mainz in 2005, I have taken it easy and there was glad to meet all the other competitors. I have tried in addition to suggest to SMK a compatible format X-FEN and thus make sure of a format that does not separate traditional chess and Chess960. However, unfortunately, I have bitten on granite, and thus today his UCI protocol forces Chess960 capable engines in an unnecessary way with different modes of operation and propagates his incompatible FEN extension. This one divergent solution was not so bad - in the beginning of such Chess960 tournaments but to proclaim this as a virtually standard so early was no right.
The has taught me that I am not taken seriously in spite of better arguments supported by logic as long as SMIRF is not really competitive - which is unfortunately rather unlikely, As long as I am perceived as a disruptive factor in the scene, I remain seperate from it. As to the rest, I lack at the moment also the means for traveling.
Question 2.
What are your sources of ideas/information when working on your chess engine ?
In the beginning there were only a few possibilities. You had to think of something by yourself whish is how it should be. Then as now and I have dealt purely with the theoretical side of things and have used various literature like for example "Advances in Computerchess ".
Most ideas seem to me to be problem realisation induced, and thus it barely surprises me to discover parallels in other solutions in various discussions. However, on the other hand I have been surprised when I note details (as far as I can see) every differ alot, This is happening in my 90 ° tilted board geometry with a 15x14 structure.
It often happens that in the middle of the night, an absolutely new solution occurs to me which is then tried out. I have already described that I have experimented with two chess boards instead of one to remove the troubling definition of the colour of the pieces. Only one colour was used on each of the boards, the opposing ones had all the opponents marked as e"enemies". A reflection of the opposing board led to identical routines for every side. Thus just the pointers on the active and passive board had to be exchanged instead of a colour change.
Decisively for really creative attempts distance is the norm. Therefore it has helped that I no longer have actively played chess for a long time, Today I am rather a bad player. I can also live with the fact that a solution compiled with a lot of expenditure is suddenly thrown by myself in the bucket, if a better idea appears.
The worst thing one could do in the beginning would be to get your "ideas" from Open Source projects. This nips every creative thought in the bud. This ends in patchworking and, if the worst comes to the worst, in Clones. Once I have looked briefly in the GNU chess sources to see what Open Source can show me. I have purified myself immediately by not looking at it ever again. Those who pretend to have learned something from the commented version, astonish me.
Question 3.
FRC engines do not use any opening libraries. Can you see this also happening for normal chess engines, meaning that they know enough of opening concepts to make opening books obsolete ?
There might be a misunderstanding here. Clearly, for the chess fan coming from traditional chess something seems to be missing with Chess960, nevertheless, everything is there - including position 518 (normal chess start position) which could occur if lots are drawn to produce the start position. I have heard about efforts by playing an immense number in Chess960 games, to build up a kind of opening library in a short time by means of Distributed Computing. People could barely use this knowledge anyway, because we should have at the end 960 times more of the whole opening theory obtained from centuries of the practise play of thousands upon thousands of chess players. However, in reality this is the charm of Chess960, which does not lie in reproducing theory statically but in dynamically analysing the positions on the board you are presented with.
For opening theory experts who are in habit of winning a game mostly during the opening, Chess960 may not be the ideal game. However for the promising player who would like to test their ability in chess without having barriers it is simply ideal.
In computer chess the true quality of the engine is tested for directly the same reason. Chess has always distinguished itself by having limited resources for a human player. Why a chess program (during an evaluation) shouls have unrestricted resources to knowledge, I have never understood. There nothing more unintelligent, than to look something up in a table, even if it may be factually efficient.
The fact that customary Chess engines with opening libraries do no analysis in openings before a real examination in games, how should they be able to (beyond the looked up knowledge) make real progress? Likewise with tablebases in the endgame, it leads to a degeneration of the games that involve look up's and the value is negligible. Peculiarities in these phases do not appear at all. I do not state that programs with looked up knowledge play worse, I say only that in this no progress is possible in program intelligence. Where the means remain limited, intelligence can originate and becomes tangible.
Chess960 playing programs have no choice in the long run but to become more intelligent in the opening phase (as they recieve no help). They are in a harder training situation than customary chess programs. Hence, games permit creation of quick statements about the relative strengths and weaknesses of the program. With Chess960 there is an ideal test field for engines.
This effect increases once again, when one considers the 10x8 chess scenario. The FullChess beginning of SMIRF simply signifies an employment of variants which contain traditional chess expanded. Thus experiences remain in principle transferable. SMIRF although one single engine, in reality plays all of these variants.
Question 4.
You didn't participate at the last FRC-WC because of a dispute regarding the FRC protocol. How is the situation now, any compromise in sight?
What is your point of view in this situation today, from a distance?
I have already spoken about this dispute above. I have predicted at that time that this would be too the detriment of Chess960 . I have been called a "religious fanatic" more or less. I stood against it with my understanding of a type of quality protection and in respect of existing solutions like game databases, tools and other programs. In the book "Play Stronger Chess by Examining Chess960” by Gene Milener you will recognize plainly which confusion I feared . Three different methods are presented in it. Fortunately, Fritz has at least in this area been set on a common line again. I must admit I was pleasantly surprised and could hardly believe it at first. I had tried unfortunately in unsuccessful mailings with SMK to convince him of the arguments, and also attempted a compromise but all without success. That has not kept away me from nevertheless approaching SMK in a point however. Consequently, the current X-FEN represents an unfortunately refused compromise. Today, I consider it a political chess decision that with UCI Chess960 has without need an incompatible variation instead of a compatible one.It is no longer for me to make a move therefore. If this assessment is a misunderstanding, SMK could put that right again quite easily with the forthcoming Shredder10.
Question 5.
Implementing endgame knowledge in an engine isn't easy. Most programmers implement tablebases support for their engines so they don't need to care about endgame knowledge. What path do you follow with SMIRF?
I maintain that Tablebases are successful as a marketing gag. 99.9% of all games would finish just the same without Tablebases. For theoretical considerations and analyses they may be really sensible. However, in the practical play they are without importance. To own a car that can drive 250 km/h, helps little in a traffic jam, but it helps lift ones status and one feels better. At least there are exotic test positions in which Tablebases are useful.
Question 6.
Last year we saw a few great engines being released. All this after people were saying that the strength of chess programs can't be pushed too much forward anymore. Do you see even more potential for stronger engines and where does this come from?
If I could answer this question SMIRF would already be a strong engine. Of course new faster processors will increase the playing strength of the engines. The same will happen wit the new multi-core CPUs. I can only contribute a little to all of these. My idea is that in a near future the engines will consider more the personality of their opponents. This could happen in different ways. In my opinion chess shouldnt be viewed as a zero-sum situation anymore (except maybe in the endgame). We lack the complete information. This would make the one-dimensional MiniMax obsolete.
Question 7.
Are you impressed by human knowledge in chess engines? If so, what are your thought on further future progress in this area?
What is this supposed to mean ? How can one tell this about a program ? Look-up-knowledge doesn't impress me at all. I am very sceptical about inserting human knowledge into a a chess engine. There are just to many exceptions, theory books have to be rewritten. I can not describe what I am doing so I will not program something like this. Instead I try to find elementary principles. If there realy are some grandmasters who can both program and describe their knoledge very exactly this approache might be successful. Eventhough I would rather try and use a fuzzy-logic approach instead of inflexible rules. If a strong playing engine is ready how can you decide how comes from the knowldge and what not ? If someone relies on knowldge alone this might handicap his thinking process. You can assign a rook the value of five pawns based on experience. It is much better however to understand why it has this value and introduce this elementary reason into the evaluation function. The recourse on experience must not be allowed to substitute the thinking process. Chess knowledge- whatever this is should be the last which is implemented (in SMIRF there is very little if any).
Question 8.
Which would please you more, if your engine were to become FRC world champion, or to beat a super grandmaster in a 10 games match?
Both will never happen. The problem is that we see programs playing each other which have totaly different origins. In my opinion games between engines wirtten under similiar conditions would be more intresting. Looking at all open source projects in the field of 8x8 chess this seems not to be possible anymore. It doesn't make much sense to participate in an 5000m race when "short distance runners" may rotate all the time. Regarding this a win in a Capablanca Random Chess (CRC-Chess) would probably mean much for me.
Question 9.
What are your future plans with SMIRF and FRC chess programming?
Currently I am trapped in a deadlock. I have only worked a little on the GUI. I am lacking motivation. I still do not have a sponsor and the few fans keep asking for an UCI version showing that tey are not really intereseted in SMIRF's 10x8 abilities. SMIRF still works internaly with a 32bit move representation, I have already thought about a 16bit one which was not easy if you keep in mind that there are 80 squares and some additional flags. This leads to a compression of the cached data and an an accelerated sorting of pre-evaluated moves. Aslo my "de-escalation search" is just a first step, just like my "pretty evaluation". I was surprised by SMIRF's performence which is around 2400-2500 ELO just by using such simple smethods. SMIRF still doesn't know about effective 0-move pruning. Maybe my internal move sorting system is alraedy effective enough even if I can't imagine it really is. All in all everything should undergo a new concept. The current break might prove to be a creative cesura for SMIRF.
Question 10.
On your homepage you are talking about a SMIRF Go project. Can you tell us more about it please?
In my life I have played GO more often than I have played chess. During playing GO both halves of the brain are used. Programming it is a fully different task than programming chess. This has several reasons. The already observable locality
of tactical conflicts in 10x8 is highly visible in GO. If in 10x8 chess we already have 1/4 more moves than in classical 8x8 chess we do have even more moving possibilities in GO. I look at the 10x8 chess as an intermediate step on the way to the GO game. Unfortunately no feasible GO protocol has been released which can also deal with move pondering.
My attempts to find contacts with other GO programmers were not very effective. So I have tried to make some theoretical preparations. I think to have found a very effective way to composing/decomposing boards. Pattern recognition is not my way, more I think this is something contraproductive. Pattern recognition is useful when one has a plenty of limited amount of known patterns. I do not see this in GO. I this it is a hopeless approach wanting to simulate human behaviour. GO playing programs should be able elaborate "playing principle". The big secret is however to understand what placing a stone really means. I still don't understand this completly. This sounds very modest but one should keep an inner distance on this issue and overcome habits.
Question 11.
Do you have any plans to enter SMIRF Go in any tournaments or is this just a fun project?
This will depend on the progress done and also whether there are equipped tournaments with reasonable prices. However, I will barely be able to afford a trip to Korea or Japan. Luckily software can walk around the globe much cheaper.
Question 12.
There is a very interesting page on your website about the worth of pieces. What are your thoughts on the analysis that you have conducted of the relative worth of pieces in both Capablanca and Classic Chess?
In approach I tried to derive the piece value for all kind of board geometries and move shapes for different pieces. I think I did quite well here. The thoughts were initilay based on just two aspects when regarding a piece namely how many squares does it effect (enter) and how many direction (pieces) can it attack (defend). This seemd to suffice. During my work with chess 10x8 chess I noticed that also the transportability (how fast the effect of a piece changes during a game) of a piece plays an important role. This led to minor changes in the calcuzlated piece values. Often there is a missunderstanding regarding this issue, namely that the changing of the overall evaluation involves only the value of the pieces taking part in an exchange. This is not so. When a piece is taken of the board also its positional effects will disappear. So if the effects of pieces overlay the effect of the piece with less value will dominate. A pawn can always take the risk of beeing re-captured a queen alsmost never. So the positional effect of a piexe is about 1/x compared to the exchange value. There still is no uniformed view about this, and it will remain like this.
Question 13.
Recently you entered and won a competition with to design a chess variant. To gain a wider audience Capablanca Chess needs to be marketed in the right way. Publishing the specification and rules to allow programmers to write engines for it would seem to be logical. Will you be making some of these items available as a resource and if so what will they be?
Casablanca Random Chess (CRC) is completely free. I have published it here http://www.chessvariants.org/. You can find more information about it also here http://de.wikipedia.org/wiki/Capablanca-Random-Chess. Here: http://www.brainking.com you can even play it online for free. Who wants will also get a C++ routine which is able to generate valid CRC (and Chess960) positions. This has been also published repeatedly. Some have asked about it and have received it then promptly. I consider CRC ideal training-surroundings for FullChess programs. This is why I have also published the free TMCI protocol (Third Millennium Chess Interface) as a proposal. I am always open for constructive suggestions and criticism on this.
Question 14.
Can you please explain for everyone the exact pros and cons of X-Fen as opposed to Shredder FEN? It may be helpful to clarify for the uninitiated the differences between the two and any weaknesses that you perceive. Could you exactly state the reasons why X-FEN encompasses compatibility with existing software and how Shredder FEN differs in this respect for our readers?
Well this is actually quite easy. First of all X-FEN is designed to cover the whole FullChess area (especially Chess960) without becoming incompatible with the existing FEN standard. The already existing Shuffle-Chess (without castling) as well as Pseudo-FRC (18 positions) support it, with the king and rook standing in the original position, not forgetting of course traditional chess as well.
The difficulty lies in the fact that it is not clear (like with the traditional chess) immediately with which rook a castling move may be carried out if both rooks stand on the same side of the king. FEN encodes not which piece has already moved but only on which side castling abilities exist. With classical chess only the rook standing in a corner can be meant. However, with Chess960 additional, determining information is required in cases of doubt. X-FEN meets here a clear default standard which is sufficient in 99.99% of all cases. When the castling standard of the furthest outside standing rook of the side comes up – it is absolutely compatibly with traditional chess. You only need information fot the rest of all cases when an inner rook is allowed to castle. X-FEN solves this rare case, by replacing the traditional castling tag (KQkq) with the letter of the rank of the affected inner castling rook (in use of big or small letters accordingly). The result is an unequivocal representation of Chess960 positions which will not lead to another representation when the traditional FEN standard is used. It is 100% backward compatible.
This X-FEN representation had been already used in several Chess960 starting positions listings, Chess960 databases etc before Shredder introduced an incompatibility into this issue. By using the Shredder-FEN one abandons the traditional castling-tags (KQkq) and uses the letter of ranks where the rooks are positioned instead. Chess960 is a superset of the traditional chess and so many games will end up in the same kind of middle games and endgames which don't differ from the ones in traditional chess.
This is mostly true for the starting position 518 as well as for all other pseudo FRC positions and the positions resulting out of them. Coded positions will be interpreted differently using the Shredder method even if in reality it is only one position there.
Hence, encoded positions receive – according to arbitrary Shredder perspective – absolutely different FEN string assigned, although there is only just one, real board situation. At the same time the enlarged UCI protocol was released. Now a strict separation between chess960 and traditional chess is necessary without being needed. For Chess960 a correct X-FEN will provide all needed information.
As it is known Arena provided the cadre to make Chess960/FRC playable. A few creative people have tried to find a solution without requiring an UCI enhancement. This might be the reason why this solution was chosen, regarding the UCI-protocol. The wait wasn't worth it.
Using the Shredder FEN introduced the necessity to differentiate without need between Chess960 games and traditional games because Shredder asks for it. However this is counterproductive. An engine needs to tell the GUI just once that it understands Chess960/FRC positions. If it doesn't do so it will not be confronted with such positions at all.
Castling’s moves can be notified as long as the king is moving more than one square using the traditional starting/aiming coordinates. Else the king is making apparently a move "onto" the involved castling rook. Here through a clear gesture for the input of the castling move in the GUI is defined. This entire procedure is downwards compatible. This advised method can be fully tested in SMIRF as a concrete solution and not as fantasy.
Question 15.
Back a bit now……. How long have you been programming in chess and how did you start out?
I am engaged in computer chess for a very long time already. I wrote my first program in Assembler on a Sharp MZ80K. This was followed by a very long break with occasionally studies about data structures in chess. Since an accident I do have involuntarily some more time till I will hopefully find a new engagement. This is why I have improved SMIRF over the past two years and was busy to keep up-to-date my knowledge about Borland and Microsoft development interfaces.
Question 16.
Are there any plans for another book that will encompass not just Chess960 but Capablanca Chess also. The original book is still available and has served as a seminal reference for those new to these types of variant chess. We are sure that an English version would be very popular. Are there any plans for more of your nice literature on this subject?
As a matter of fact, I have thought about publishing an updated book in German/English with an enclosed version of SMIRF. My first book about Chess960 was published as book-on-demand and couldn't be found in book shops. This project cost more than I could r earn from it. However I do think that a conventional published book could be very successful. I am still looking for an adequate publisher. Unfortunately I am inexperienced in this area.
Question 17.
Who were your greatest influences in both programming and chess?
I was taught how to play chess by my father. I was fascinated by Bobby Fischer in his good times. However all in all I remained a weak player. I have used many programming languages in my life: FORTRAN, SIMULA, LISP, FORTH, different ASSEMBLERs, BAL, COBOL, C, C++, BASIC. The Z80 times have taught me to rough with resources. The contact with decision-tables was instructive to learn more about economical sequencing causal dependencies. The transit to object oriented programming including the design of appropriate relational database structures have trained me to analyse problem areas and gaze them under several perspectives. I am using all this in chess programming now.
Question 18.
When programming a chess engine, what would you say is the best way to start and do you have any advice for those who are new to this kind of programming?
Some who can program a little will try to start to program a chess engine right away maybe also including an interface. But unfortunately it is not possible to come with something just like that and to achieve a good result at the same time. Some of them will try to shorten the invested resources by using known open source projects. Unfortunately they will miss the unique chance to use ideas when approaching a problem. They become copyists and patchworkers. Who can see any success in this will be lucky however I disadvise them to do so. In my opinion it is much better to scale down the expectations and not want to compete with the work of decades. Those who are not pleased a basic solution but want a good result should learn to understand his trade. This includes scheduling the work and thinking modular. My advice is to pick up a protocol and an exsisting GUI. Unfortunately almlost all protocols base upon deflected STDIN and STDOUT streams and the search for new solving methods goes on. It is about time to look for something new. I am not sure should recommend books like "Schach am PC" or "Das Große Computerschachbuch“ . All in all they are quite nice, if it wouldn't be such a great temptation to use the included sourcecode. I think thoritical treaties would help more. Also reading and participating in different chess fora is helpful but one should not directly fllow the advice and use bitboards.
Question 19.
What are the most interesting computer chess games that you have that were played by SMIRF? We are thinking specifically about the variant made by you and also Chess960. Do you have some favourite positions that have arisen out of these games and if so could you show us those that you feel best illustrate the new and interesting concepts of these variants?
I am very sceptical concerning games played by SMIRF and I do not think that they are very saying to be exposed. It was very nice to participate in the 10x8 Gothic Chess World Championship at the end of 2004 and achieve a quite good result despite the much too short preparation time. Unfortunately I was forced to cancel at the following tournament in 2005 because it was not possible to carry on aborted games in a sensible way. It is important for me to advert that in the mean time SMIRF is able to play even more variants like: Embassy Chess (MBC) or Chess480. I am also thinking about a completely new variant the Tabu-Chess. Here another neglected aspect of chess will be covered. I hope to remain creative in the field of chess variants.
Question 20.
Could you tell us a little about your interest in Sumerian Mathematics? How did you become interested and could you please give an explanation of the areas that interest you most?
During the history of mankind we have had alot of relapses and deadlocks in science and culture again and again. However, never (before our time) were the innovatative juices so present as in the times of the Sumerians. Once I wrote for an English company HiSoft, a complete floating point arithmetic library for a Z80 Pascal compiler (numerical co-prosessors did not exist then). The Sumerians used binary multiplication . It doesn't please me that our ancestors are often described as primitive beings. I am more enthusiastic about their practical approach than with the esoteric approach to mathematics of the Greeks. If you would like to know why a circle possesses exactly 360 degrees and who also knew approximately in 4000 B.C. the exact circumference of the Earth, can may rummage on my homepage http://www.chessbox.de. One may even use a balance to decide pi by means of a pair of scales. ;-)
Thank you for answering our questions today. We wish you all the very best with SMIRF, FullChess and Capablanca Chess in the future.
The Smirf and FullChess homepages can be found at http://de.geocities.com/rsmuenchen/ & http://www.chessbox.de/Compu/fullchess1.html
Exactachess © 2006
|