by Steve Lopez

So there I sat on the outer fringes of Hurricane Floyd, watching the downpour and wondering what I was going to do all day. Suddenly a package appeared at my doorstep -- the new Nimzo7.32! Great! A new chess program to horse around with! Concealing the package from my wife's prying eyes (she who has threatened to kick me out in the street if any more chess programs enter the house), I slipped silently into my office to fire up the PC and have a look.

The interface of Nimzo7.32 will be familiar to users of Fritz/Junior/Hiarcs -- it's the same interface (with the same features) as our other chess programs.

So what's different about Nimzo7.32 from its predecessor, Nimzo99? For one thing, it's now a true 32-bit engine so the speed has been improved (for example, on a position I tested, Nimzo99 looked at 820,000 positions during a 20 second search while Nimzo7.32 examined 990,000 positions over the same time period).

The new Nimzo will access endgame tablebases as do Hiarcs7.32 and newer versions of Crafty (see ETN June 27, 1999 for more information on tablebases).

But the main attraction of Nimzo has always been it's "tweakability". There are many user-configurable parameters that one can mess around with to get Nimzo to play in a variety of styles. This has made it a favorite among computer chess fans, particularly those interested in examining the effects these various tweaks have on a computer's play.

Nimzo7.32 continues with this tradition and expands upon it. It contains the configurable engine parameters of its predecessor, but also adds new ones to the mix.

When you select "Engine parameters" for Nimzo7.32, you get the following dialogue box:

Let's first have a look at the old parameters.

Middlegame mobility: this allows you to set how highly Nimzo values piece mobility during the middlegame. Going for higher settings means that Nimzo will prefer open middlegames (the type of game at which computers generally excel). Lower values mean that Nimzo won't mind playing in closed or cramped positions (which will likely give a human player an advantage).

Endgame mobility: this acts much like "middlegame mobility" but applies to the endgame. With higher settings you'll tend to see Nimzo centralize its pieces more often in endgame positions.

Weight King safety: fairly self-explanatory. Lower values tend to make Nimzo more reckless in its own play, while higher values make the program play more cautiously and defensively.

Weight pawn structures: higher values will cause the program to play a somewhat better positional game, as it will recognize and react to pawn weaknesses in the position.

Pawn value, etc.: this allows you to reset the relative values of the pieces. This is a double-edged sword, as resetting to a lower value will cause the program to make unsound sacrifices while overlooking more obvious tactical opportunities (for example, setting the Rooks to a value equal to a minor piece will cause the program to sacrifice the exchange more frequently, while sometimes overlooking the chance to win the exchange). Conversely, setting the values higher will sometimes result in more defensive play.

Detect piece threat: if the last move in Nimzo's search results in a piece threat, it will extend the evaluation a bit farther to examine the consequences.

Single move extension: somewhat similar to "detect piece threat". If the last move of Nimzo's search is the only legal move in that position, the program will look a bit farther to see the possible responses.

Futility cutoff: if there's a material imbalance at the end of Nimzo's search, it stops searching from that position if the next move won't restore the material balance. This means that Nimzo will cut more moves out of its search tree at earlier depths. The risk is that it will miss something important, while the benefit is that Nimzo will tend to search a bit deeper in the lines it does examine than with its normal settings. A 1 ply cutoff means that it stops searching at the end of its "search horizon", while a 2-ply cutoff means that it stops the search a ply earlier.

Hashtable learning: with this function clicked "on", Nimzo uses the positions stored in its learning function as part of it's transpositional tables. Over time, this will make the program "smarter" but does reduce the available space for new positions in the hash tables.

Now let's take a gander at the cool new stuff.

Style: Nimzo7.32 offers a choice of various preset playing styles -- "solid", "offensive", "aggressive", and "allaround". Selecting "solid" gets a more positionally sound game from the program, while "offensive" makes it a bit more tactical. "Aggressive" makes the program play recklessly, much like older programs such as Fritz2. "Allaround" is the most balanced setting.

Bonus Bishop pair: pretty self-explanatory. This allows you to determine how highly Nimzo values the strategic advantage of the Bishop pair. With lower settings, you'll see Nimzo more readily accept the trade of a Knight for a Bishop. With a higher setting, the program will try to preserve its own Bishops (while attempting to kill yours with its Knights).

Bonus nullmove: I won't bore you with a technical explanation, but higher values make the program tactically better but more "blind" positionally.

Critical legal moves: ChessBase programmer Mathias Feist explains it best, so I'll let him have the floor here: Influences the time control. For each move in the movelist in addition to this number of moves some additional time is allocated. So with lower values more time is used in the middlegame.

Tablebase depth: This can be used to limit the "lookahead" Nimzo uses in the endgame tablebases. Higher values tend to slow down the program, which can be critical in blitz games. This function allows you to trade off some endgame knowledge for increased search speed.

HashSize (kB): allows you to set the hash table size. See ETN for Sept. 27, 1998.

It's very easy (and fun!) to experiment with these settings to alter Nimzo's playing style. Note that these settings usually interact with each other, making it entertaining to see how the alteration of one setting can have an effect on the others.

I'm looking forward to diving in and tweaking Nimzo7.32 in myraid ways. With some judicious tweaks, I can already see how Nimzo7.32 will be like having my very own chess club on my computer. It's definitely an interesting and worthwhile addition to ChessBase's stable of playing engines.

Until next week, have fun!

You can e-mail me with your comments, suggestions, and analysis for Electronic T-Notes. If you love gambits, stop by my Chess Kamikaze Home Page and the Yahoo Chess Kamikazes Club.