Rebel Century review
By Claudio Bollini
Introduction.
For some years now Rebel company has been inarguably ahead in specific computer chess research and development. The list of accomplishes includes among others, the joining of efforts with Tiger (chess engine) and with Chess Partner (Windows GUI); the matches against strong GMs; an excellent user support with the release of newer versions for free, especially the 10c with the alternative engine System Tiger, and improved extensions. Rebel Century is the maturation of the ideas arisen from these numerous activities, now gathered and assembled. Although this version keeps yet the old DOS platform, this doesn’t represent a mayor drawback, since Rebel runs smoothly into Win98 (although some adjustments of hash tables have to be done for slower PCs). The lost of performance respect pure DOS is almost irrelevant.
The exciting news is a much wider capability to modify Rebel engine. This innovative option turns it permeable for "mayor surgery". Final Rebel Century release will include an user-friendly interface for the edition of the parameters, like CM6000 and CST (DOS version), but it is by far much more stronger.
Despite this net gain over previous versions, an unavoidable question arises. Is it worthy trying to modify the default settings established by the programmer himself? Anti-GM option is no longer active as default: if you click "strongest settings" it will be turned off, while Rebel 10c set it in "Smart" option. There are several new parameters, like knowledge, attractiveness, attacking or searching techniques. Even if you select a dozen of the (presumably) most significant of them, the endeavor of combining them, each one admitting different degrees, confronts you with a geometrical explosion of feasible configurations. Besides, there is often a non-linear relation between the input and the output. I mean, I experience with my own program this "butterfly effect": You try to fine-tune a parameter, and suddenly occurs an unexpected "synergetic effect", that drastically alters both performance and style. Ed confirmed me that he has to cope with this phenomenon too.
So, how could be handled this challenging task?
Main engine parameters: an attempt of classification
Let’s sketch a surveying of what I gathered and found out about principal parameters. Let me emphasize that this is a personal and subjective selection, and I may leave outside some important factors:
With lower values, Rebel will be more willing to sacrifice pawns for positional reasons.
Stresses the importance of destroying enemy pawn structure. The documentation doesn’t mention it, but according with the examples given and with my own tests, it doesn’t seem to produce an over-care of the own pawn structure, so it’s perhaps an asymmetric component. If we increase it together with "pawn value", it will heighten even more this goal.
In a counter-intuitively way, the greater value, the stronger tendency of leading king attacks. In contrast, this parameter doesn’t generate a more conservative strategy for defending the proper king. Is it another asymmetric parameter?
Ed himself remarks the importance of this aspect of evaluation algorithm. This is one of the main keys for adjusting Rebel’s behavior from passive to aggressive.
I have to confess that I was surprised when I read that this parameter is set in 100, while 500 is the upper bound. The explanation resides on an algorithm called "lazy evaluation", that decides which sections of Rebel’s chess knowledge will be used… and which will be discarded! As Ed himself admits, this is a dangerous feature, but it has to be considered as a trade-off between evaluation accuracy and search depth. With "Knowledge" at its max, Rebel drops severely its speed. Ed declared that it could be of a factor of 7-8 times, and that at deep nodes up to 3 plies could be missed. But perhaps this measure depends on the sort of position. Both with a slower Pentium Pro and with a PII 266 I only could average around of 50% of speed reduction. However, I saw that with K = 100 Rebel finds some solutions a ply later, but spending lesser time than with K = 500.
This option succeeded in Rebel-Anand match, and it was (is it yet?) considered the strongest against humans. But surprisingly it was turned off as the default (using "strongest settings").
I run a set of 50 positional sacs (fixed time = 3 min.), and this is the result:
Default: 8/50 pos. (235 points)
Knowledge: 500 9/50 pos. (265 points).
Anti-GM: 10/50 pos. (295 points).
Checking the log files, I found that K=500 generated the same PV than Anti-GM in most of solved positions, except for some where Anti-GM got better time performance. On the other hand, when Rebel failed the solution, Anti-GM was almost the same of Normal. I believe that Anti-GM is strongly co-related with a bigger Knowledge degree than the default (100). It seems that there are certain positional features, sometimes thrown away by the lazy algorithm, that are kept in Anti-GM option.
This is a totally new development that determines how brilliant or boring will be Rebel’s personality. It employs a king-attacking algorithm newer than Anti-GM, that stresses king safety aspect, as well as mobility, pawn structure and others. Being of similar nature of King Safety, they boost each other. (Ed suggests Attr. = 1.25 + KS = 1.50)
Another new parameter that either pursues tactical positions or avoids them, according if the value is set above or below 100 points.
The higher value, the more drastically pruning will be performed, and the deeper ply could be reached. Inversely, for values below of 100 points, the search becomes slower but more confident. As for all pruning methods, the cost is the hazard (proportional with its degree) of discarding a key move and overlooking an essential PV.
For searching algorithm, some innovative settings have been created. Most interesting:
Despite the name, Ed states that this option achieves a speed-up of 15-20% without noticeable side effects. It has some undocumented variations: Risky2, 3, 4 and 5.
A very useful new option for postal games that avoids the usual "flatten" of the searching tree beyond the 12 or 13 ply threshold. After a couple of hours it will be increasingly harder to gain an additional ply. Averaging some test positions, I drew the following diagram that shows how "Overnight" option can perform deeper searches for long times. Please, note that "Normal Search" turns almost exponential beyond ply 14, while "Overnight" keeps into a smooth curve.
An original development that carries out some pruning techniques for finding deep tactical combinations. The key move will eventually be found 1, 2 or 2-3 plies earlier, according if you select 1st, 2nd or 3rd degree.
Another undocumented parameter, similar to "Selective Search". Allows 4 levels of "prune bad moves" and a "lower selective search"
An attempt to classify main parameters
Note: There are some parameters that could have been assigned in the other column. I insist that this is a personal selection, according with what I consider the main attribute of each parameter.
Balance speed Û
knowledge Balance passivity Û
aggressiveness
Evaluation-based |
Pawn, P. Structure, Passed Pawn |
Mobility |
Chess Knowledge |
King safety, Attractiveness |
Anti-GM |
Draw Contempt factor |
|
Attacking |
Searching-based |
Selective Technique (Deep, Risky…) |
Extensions (checks, captures) |
Selective Search |
|
More Speed (prune bad moves) |
|
|
|
Combining different parameters
Basically, there are three ways for modifying a chess engine:
- Balancing knowledge vs. speed:
A subject under permanent discussion. How much knowledge could a programmer add without turning his program dangerously blind for tactical blows? Inversely, how much knowledge is it prudent to wipe off without become it positionally dumber? You can enhance Rebel’s knowledge via "knowledge" or "anti-GM" parameters, or remove it, with pruning methods like "selective search" or any of the "selective techniques". On one hand you will get a more accurate evaluation in detriment of speed, on the other the opposite effect will take place.
- Balancing personality:
You can encourage Rebel to launch king attacks ("king safety", "attractiveness"), with a wide range of ferocity level, or to reach open and tactical games. On the contrary, you may force it to look for closer and slower positions ("mobility", "attacking").
- Enhancing evaluation algorithm:
Roughly keeping the same speed, you may attempt to improve the evaluation algorithm with parameters like pieces value, "pawn structure", "mobility" or "king safety". However this practice strongly depends on the internal structure of the evaluation algorithm and its limitations. In other words, you obviously cannot ask for something that isn’t already there.
I have intended to put some order on the parameters scenery. Now, I will dare to go after my own tastes and focus myself in the first method. I dream with a program with ever-increasing amount of knowledge, without any needing of cut-off, since it possesses extremely clever search extensions to compensate the slow-down effect.
I consider Rebel a knowledge-based program, but am I requesting it to be what it is not? Am I trying an alien configuration, which doesn’t fit with its personality?
Hence, my first selection was: Knowledge = 500, and Selective Search = 150 and Selective Technique = "Risky" to compensate the lost of speed. To check if this configuration worked out I run Louguet 2 and BS2830 tests, as well as a 22 games engine-engine match at G/30. (I did the latter a bit reluctantly, because I believe that the addressee of any engine improvement is the chessplayer, and it is well know that computer-computer games barely reflect its real strength against humans. But, on the other hand, this is the only way I had to check the candidate profile in living games.)
Louguet 2 BS-2830
Default (Df) ("strongest settings"): 2550 2519
1st setting (1S) (K = 500, SS = 150, ST = Risky): 2480 2570
Match engine-engine (G/30): Df: 12.5 - 1S: 9.5 ( 8 / 9 / 5 = 22 )
An interesting remark is that the worse performance of 1S in Louguet 2 was mainly due to it slowness. Most of positions were solved later than Df. The BS-2830 test is harder, but it conceded 15 min. per move instead of the 10 min. of Louguet 2. With its additional knowledge, 1S solved 3 positions more than Df. Again, most the solutions were found later (although with a shallower search). The number of games is the largest I could perform, but was yet too small to be conclusive. However, my impression is that the performance of 1S wasn’t so bad, taking in account that the time control used favors Df. Anyway; I realized that 1S was very slow. So, I proceed to speed up it a little, sacrificing some knowledge and reducing simultaneously the risk of pruning:
2nd setting (2S) was: K = 300, SS = 120, ST= "Risky".
Louguet 2 BS-2830
2S (K = 300, SS = 120, ST = Risky): 2490 2564
Match engine-engine (G/30): Df: Century 2S: 11.5 ( 6 / 9 / 7 = 22 )
A significant fact: Having wiped off 40 % of knowledge, a few points were respectively gained in Louguet 2 and lost in BS-2830. The margin of the second match is not so far of the first one, and more games would unbalance these provisional results. Both 1S and 2S showed very promising, and I will keep testing them.
Conclusion
I cannot draw a definitive conclusion, since the sampling isn’t significant enough. Both further results and the reports from the other betatesters will bring more clearness to general panorama. In any case, I still find stimulating the idea of seizing as much knowledge as it’s possible. I watched many games of 1S and 2S, and I found their style extremely attractive and enterprising. The different profiles I tested were always consistent and strong, and no coarse degradations were detected. Almost all the games with autoplay series I saw were decided in late endgames.
Moreover, looking for strengthen the engine is not the only constructive task to face. Some partial combinations between parameters are a worthy experiment. As we mentioned, Ed had already suggested the use of "king safety" and "attractiveness" together, in order to obtain wilder king attacks. It would interest too to try other different "blends". For instance, I suggest the following essays:
- For a wiser overnight search
: Knowledge = 500 + Search Technique = "Overnight"
- For better blitz games
: More Speed = "Prune bad moves 1" + Search Technique = "Risky"
- For slow positional games
: Knowledge = 500 + Attacking = 80
- For open and unclear positions
: Mobility = 150 + Attacking = 150 + Pawn Value = 80
The combinations are never-ending, and you can look for the one that best fits with your needs.
Another aspect I consider particularly valuable is to design a different profile for any of the entries of "Personalities" menu (Kasparov, Karpov, Anand, etc.), to modify the ones that were already configured (Tal, Fischer), or even to create new ones from the default pattern. Of course, the task of achieving a sort of clones of these GMs is entirely futile, but rather to pointing out which is the desired style you want Rebel to approach to.
Finally, those users not so eager to jump into these turbulent waters could benefit yet with the latest state-of-art of the outstandingly powerful and well-balanced Rebel engine, stronger and more resourceful than ever. |