Links

- REBEL's new flexible engine -

REBEL10.5's new "flexible engine concept" allows easy and powerful tweaks (tuning) of the engine by the user.

Below you will find some examples and explanations how the new "flexible engine concept" works and how you can tune REBEL yourself. This page is also meant as a guide line for those who want to participate in the THE BIG REBEL10.5 ENGINE CONTEST

The below positions are available for download HERE in EPD format.



[Pawn Value = 80] will lower the basic pawn value with 20%. Therefore REBEL will tend to sacrifice a pawn sooner, for instance for positional compensation.

In this position REBEL10.5 will play Anand's move c5! after 0:50.











[King Safety = 150] will increase the positional values for King Safety with 50%. REBEL will tend to sacrifice material sooner for a serious King Attack.

In this position REBEL will play Nxg7! at once (and with a possitive score) because the black king has to enter the center and will face a hard time over there.

The default setting [King Safety = 100] plays Nh6+ with a -0.60 score and needs about 40 seconds to find the Nxg7! combination.







[Mobility = 150] will increase the positional values for Mobility with 50%. Mobility is an important item in REBEL. Mobility more or less is decisive for active or passive play.

In this position (taken from the BS2830 test) REBEL will play Ne4! after just 11 seconds with a -0.11 score.

The default setting [Mobility = 100] will also play Ne4! but with a -0.34 score and 35 seconds to find the move.







[Mobility = 150] will increase the positional values for Mobility with 50%. Mobility is an important item in REBEL. Mobility more or less is decisive for active or passive play.

In this position (taken from the LCT-II test) REBEL will play Capablanca's 1.e5! making possible the strong Ne4 there after.

The default setting [Mobility = 100] will not play 1.e5! within a reasonable time.







[Pawn Structure = 150] will increase the positional values for all items of the Pawn Structure (isolated pawns, backward pawns, pawn structure, double pawns, triple pawns) with 50%.

Pawn Structure is an important item in REBEL. Once a pawn has moved it can't go back to the square it just moved from.

In this position (also taken from the LCT-II test) REBEL will play 1..e5! very soon. It attacks the strong white center and makes space for the inactive black bishop on d7.

The default setting [Pawn Structure = 100] will also play 1..e5! but with a 0.25 score difference.




[Pawn Structure = 150] will increase the positional values for all items of the Pawn Structure (isolated pawns, backward pawns, pawn structure, double pawns, triple pawns) with 50%.

Pawn Structure is an important item in REBEL. Once a pawn has moved it can't go back to the square it just moved from.

In this position (another one from LCT-II) REBEL will play h4! much quicker than with its default setting. The move destroys the black pawn shelter around its king.







[Passed Pawns = 150] will increase the positional values for all items of the Passed Pawn chess knowledge with 50%.

In this position (source is LCT-II again) REBEL will play the Nxa2! sacrifice within a few seconds. It creates 2 dangerous passed pawns. At first sight it looks the pawns can be stopped but the contrary is true on long term.

The default setting [Passed Pawns = 100] has no clue and it takes a long time before Nxa2! is found.







[Passed Pawns = 150] will increase the positional values for all items of the Passed Pawn chess knowledge within REBEL with 50%.

In this position REBEL will play the winning move Kg4! at once with a winning score. White can not hold the 2 black passed pawns with its rook alone.

The default setting [Passed Pawns = 100] will play the Kg4! move too within a reasonable time but its score is around 0.00 expecting a repetition of moves. However the 150-setting goes for a black win showing +1.00.






[Pins = 200] will increase the positional values for all kind of pins with 100%.

In this position REBEL smells the loss after Bxb2? in seconds because of the pin after Rd8+!.

The default setting [Pins = 100] needs 11 plies to see Bxb2? is losing while the 200-setting already on the 9th ply sees the upcoming trouble.








[Chess Knowledge = 200] Chess Knowledge above 100 will result in more accurate positional play but a lower search depth. Chess Knowledge below 100 will result in less accurate positional play but a higher search depth. This function needs a detailed (and quite technical) explanation:

The heart of a (any) chess program is its evaluation function (EVAL). In there all chess knowledge is present. The most important ones are already discussed above (King Safety, Mobility, Pawn Structure, Passed Pawns etc). Above these major items EVAL contains over 200 specific (position oriented) chess knowledge cases of all kind. To name a few: Bishop of opposite colors, bad (or good) bishops, piece development in the opening, castling, rook endings, pawn endings and and and... EVAL is the soul of a (any) chess program and will reflect the playing style the programmer has (had) in mind.

EVAL in REBEL takes a lot of processor time even for todays fast computers. EVAL's size is over 120 Kb (pure assembler code) containing over 30,000 instructions which is very big for a chess program. Calling EVAL for every position in the tree-search is very expensive and will slow down the search tremendously, in REBEL's case a slow down factor of 7 to 8 (nodes per second) is not unusual.

To handle this chess programmers invented LAZY EVAL in all kind of sorts. LAZY-EVAL is a smart algorithm that only picks the main important parts of EVAL belonging to the (current position) and then skips the rest of EVAL. This is of course a very dangerous approach as often LAZY-EVAL is not 100% right and will return a score that isn't 100% accurate which (sometimes) in the end may result in a lesser quality move.

On the other hand Rebel's LAZY-EVAL algorithm will speed-up the search tremendously and allows REBEL to look 2-3 plies deeper than without LAZY-EVAL which in the end is by far is superior in terms of chess strength.

With the option [Chess Knowledge = 200] you can tune REBEL's LAZY-EVAL. The higher you set its value the more accurate REBEL will play but the search depth will decrease. If you set Chess Knowledge to its maximum [Chess Knowledge = 500] you actually see REBEL's EVAL in its full glory as LAZY-EVAL is hardly active anymore. However REBEL'S nodes per second (NPS) will drop typically with a factor of 7-8. On a PII-333 REBEL searches about 100,000 positions a second. Using [Chess Knowledge = 500] REBEL's NPS will drop to 12,000-15,000.

More technical stuff: all of the above is true for current and older INTEL processors. However times are changing, chips are equiped with larger and faster cache memory. On the new AMD-K6-III the cache runs at full processor clock speed. INTEL processors cache memory is just running on 100 or 66 Mhz. The result is that on AMD K6-III using the maximum [Chess Knowledge = 500] REBEL will run 2-2 times faster than on INTEL.

All of this makes it very difficult to tune Chess Knowledge for its best setting because it is very dependant on the processor you have in your PC. This month AMD released the new K7 processor which again doubled the cache memory and REBEL will profit a lot from that. INTEL surely will answer. The bottom line is that one day the ideal setting will be [Chess Knowledge = 500] and you can use REBEL's EVAL in its full glory.

3 examples are justified to show the effects of [Chess Knowledge = 200] which slows down REBEL's search not too much (typically 20-40% depending on your processor). In the above position REBEL will find the winning move Rxa1! one ply sooner.

[Chess Knowledge = 200] Chess Knowledge above 100 will result in more accurate positional play but a lower search depth. Chess Knowledge below 100 will result in less accurate positional play but a higher search depth.

In this position REBEL will find the winning move Nxc6! one ply sooner.









[Chess Knowledge = 200] Chess Knowledge above 100 will result in more accurate positional play but a lower search depth. Chess Knowledge below 100 will result in less accurate positional play but a higher search depth.

In this position REBEL will find the winning move Bxg7! one ply sooner.











[Attractiveness = 125] is something totally new in REBEL's evaluation. Attractiveness above 100 will result in spectacular play. Attractiveness below 100 will result in a kind of boring (unattractive) play. Part of Attractiveness above 100 is that it will use a new King Safety which is focussed to play against strong humans.

As a matter of fact this new King Safety was a result of the first game of the Monthly GM Challenge against GM Rohde where REBEL lost this game unnecessary after 26.f4?? totally underestimating the potential of black's king attack.

This is the critical position of REBEL vs GM Rohde. The only one good move in this position is Bg2. Other moves such as Rxb7? and f4? will lose after Re8 followed by h5.

REBEL now smells the danger after 25 seconds. The REBEL version that played GM Rohde needed over 10 minutes.



[Attractiveness = 125] is something totally new in REBEL's evaluation. Attractiveness above 100 will result in spectacular play. Attractiveness below 100 will result in a kind of boring (unattractive) play. Part of Attractiveness above 100 is that it will use a new King Safety which is focussed to play against strong humans.

In this famous position against GM Anand REBEL was too greedy and played Bxb2 collecting the material gain too soon after a well played king attack. In the remaining ending GM Anand could escape to a draw via an amazing (forced) manoeuvre.

REBEL's new King Saftey is much more keen on heavy king attacks and plays Qe6! after 50 seconds increasing the pressure on the white king even more instead of collecting the material gain.



[Attractiveness = 125] is something totally new in REBEL's evaluation. Attractiveness above 100 will result in spectacular play. Attractiveness below 100 will result in a kind of boring (unattractive) play. Part of Attractiveness above 100 is that it will use a new King Safety which is focussed to play against strong humans.

In this position REBEL will play the winning move Nxb7! in just 2 seconds. REBEL recognizes white's king attack is more important than black's one and REBEL goes for the sacrifice.






[Attractiveness = 125] is something totally new in REBEL's evaluation. Attractiveness above 100 will result in spectacular play. Attractiveness below 100 will result in a kind of boring (unattractive) play. Part of Attractiveness above 100 is that it will use a new King Safety which is focussed to play against strong humans.

This position is already discussed above using [Pawn Structure = 150]. Another part of [Attractiveness] is that it will take other parts of REBEL's EVAL into consideration too (such as Pawn Structure, Mobility to name a few). This together with the new King Safety will result in an almost immediate play of h4!.

After 1.h4 gxh4 2.f4 hxg4 3.fxe5 dxe5 4.Bxg4 the black king pawn shelter is destroyed and white can launch a king attack.





[Attractiveness = 125] + [King Safety = 150] will result in wild king attacks. 3 examples are justified:

In this position REBEL only needs 3 plies and 0.05 seconds to play the sacrifice Bxh6!. Normally it takes REBEL 7 plies and about 15 seconds.









[Attractiveness = 125] + [King Safety = 150] will result in wild king attacks. Example-2:

In this position REBEL only needs 7 plies and 8 seconds to play the sacrifice Nxg2!. Normally it takes REBEL 9 plies and several minutes to find this strong move.









[Attractiveness = 125] + [King Safety = 150] will result in wild king attacks. Example-3:

In this position REBEL only needs 6 plies and 4 seconds to play the sacrifice Bxd6!. Normally it takes REBEL 8 plies and 37 seconds.









[Attack = 125] is also something totally new in REBEL's evaluation. Attacking above 100 will result in tactical positions on the board. Attacking below 100 will do the opposite (avoid tactics).

This position is already full of tactics and the standard REBEL will go for the Rxe6?! sacrifice in about 20 seconds. [Attack = 125] will go for Rxe6?! even sooner in 5 seconds.









[Attack = 125] is also something totally new in REBEL's evaluation. Attacking above 100 will result in tactical positions on the board. Attacking below 100 will do the opposite (avoid tactics).

This position the standard REBEL will play the quiet b6 where as [Attack = 125] comes up with the surprising d3! which is a fantastic move after a closer look.









[Search Technique = DEEPEST] is also something totally new in REBEL. It will focus on tactics and will try to find combinations (if present) much sooner. There are 3 levels: DEEP, DEEPER and DEEPEST. The DEEPEST setting usually finds combinations 2 to 3 plies sooner. 5 examples for this nice new piece of software are justified:

Move: Rc1+!

REBEL 10.0    0:03 (6th ply)
REBEL 10.5    0:01 (4th ply)




[Search Technique = DEEPEST] is also something totally new in REBEL. It will focus on tactics and will try to find combinations (if present) much sooner. There are 3 levels: DEEP, DEEPER and DEEPEST. The DEEPEST setting usually finds combinations 2 to 3 plies sooner.

Example-2:

Move: Nf6+!

REBEL 10.0    0:02 (6th ply)
REBEL 10.5    0:01 (4th ply)




[Search Technique = DEEPEST] is also something totally new in REBEL. It will focus on tactics and will try to find combinations (if present) much sooner. There are 3 levels: DEEP, DEEPER and DEEPEST. The DEEPEST setting usually finds combinations 2 to 3 plies sooner.

Example-3:

Move: Rh8+!!

REBEL 10.0    6:08 (10th ply)
REBEL 10.5    0:48 ( 7th ply)




[Search Technique = DEEPEST] is also something totally new in REBEL. It will focus on tactics and will try to find combinations (if present) much sooner. There are 3 levels: DEEP, DEEPER and DEEPEST. The DEEPEST setting usually finds combinations 2 to 3 plies sooner.

Example-4:

Move: exf6!

REBEL 10.0    0:13 (9th ply)
REBEL 10.5    0:01 (6th ply)




[Search Technique = DEEPEST] is also something totally new in REBEL. It will focus on tactics and will try to find combinations (if present) much sooner. There are 3 levels: DEEP, DEEPER and DEEPEST. The DEEPEST setting usually finds combinations 2 to 3 plies sooner.

Example-5:

Move: Qxc4!

REBEL 10.0    not after 3 minutes
REBEL 10.5    0:05 (6th ply)






Used hardware, AMD 600 Mhz with 60 Mb hash tables.