Check out Glinski's Hexagonal Chess, our featured variant for May, 2024.

Enter Your Reply

The Comment You're Replying To
H. G. Muller wrote on Wed, Jul 2, 2008 07:51 AM UTC:
Sam Trenholme:
| I think the best way to come up with reasonable piece values is 
| to have a computer program play itself hundreds or thousands of 
| games of a given chess variant, and use genetic selection (evolution) 
| to choose the version of the program with piece values that win the 
| most games. 

This has been tried many times before (in normal Chess, mainly), with an
appalling lack of success. The reason is that even a very wrong evaluation
of one of the pieces (say a program that values a Queen at 7.5 in stead of
a correct 9.5) still only leads to bad trades in a minority of the cases, like 10-20%. This because it does require complex exchanges (like Q vs R+B)
rather than simple 1:1 exchanges, which simply do not present themselves
very often in games. In the other 80-90% of games the Queens will be
traded against each other, which will always be a neutral trade to each
program, no matter how much they differ in Queen value.

When only 10% of the games is affected by the piece-value difference,
while 90% with equal trades will have a 50-50 outcome, that latter set of
games will still produce statistical noise, which is added to the noise in
the overall result score, while it dilutes the systematic bias because of
the different evaluation. If, after a wrong trade (say Q vs R+B) induced
by the faulty Q value the side with Q left would have 70% winning chance,
(20% above par), the total score would be only 52% (2% above par). To
detect this score excess with the same relative statistical accuracy as
the 20% excess would require 100x as many games. (So 10,000 in stead of
100.)

The situation could be lightly improved if one would SELECT games before
analysis, throwing out all games whith equal trades (Q vs Q). Then you
eliminate the random noise produced by them from the result, and would
only look at the sample with unequal trades (with 20% score access). You
would still need about 100 of those, but now you only have to play 1,000
games to acquire them. Problem is that judging which games were affected
by the piece-value under study is a bit subjective, as Q vs Q trades do
not always occur through QxQ, ...xQ combinations, but sometimes are part
of a larger exchange with intermediate positions with material imbalance
(not affecting the engine decision, as they were within the horizon of the
engine search).

This is why I adopted the methodology of forcing the material imbalance
under study into the game from the very beginning. ('Asymmetric
playtesting' in Dereks terminology.) All games I play are then relevant.
Even if the engine I play with has a completely wrong idea of the piece
values, the material advantage it has at the outset (say A vs B+N) will be
needlessly traded away in only 10% of the cases. And if both engines share
the misconception, that will be still lower, as the opponent would
actually try to avoid such trades. So you will have only a light
suppression of the excess score, and very little noise added to it.

| I could do it myself, but I need a chess variant engine that I can 
| set, from the command line, white's and black's values of the pieces 
| independently, and then have the variant play itself a game of the 
| chess variant. 

I would only applaud this. In fact the engines you request do exist, and
can be downloaded as free software from my website:

* Joker80 allows setting of the piece values by a command-line argument,
(a feature requested by Derek, as discussed below in this thread) but is
limited to 10x8 variants with the Capablanca pieces.

* Fairy-Max allows implementation of (nearly) arbitrary fairy pieces, and
setting of their values, through a configuration file (fmax.ini) that can
be changed with a simple text editor like Notepad. (This because the
options here are too elaborate to fit on the command line.) The format of
the piece description is admittedly a bit cumbersome (that is, the
description of the way it moves, especially if it is a complex move like
that of a Crooked Bishop), but the fmax.ini that is provided for download includes many examples for the more common fairy pieces. And changing the piece value is absolutely trivial. Furthermore, I am always available to provide assistance.

Edit Form
Conduct Guidelines
This is a Chess variants website, not a general forum.
Please limit your comments to Chess variants or the operation of this site.
Keep this website a safe space for Chess variant hobbyists of all stripes.
Because we want people to feel comfortable here no matter what their political or religious beliefs might be, we ask you to avoid discussing politics, religion, or other controversial subjects here. No matter how passionately you feel about any of these subjects, just take it someplace else.
Quick Markdown Guide

By default, new comments may be entered as Markdown, simple markup syntax designed to be readable and not look like markup. Comments stored as Markdown will be converted to HTML by Parsedown before displaying them. This follows the Github Flavored Markdown Spec with support for Markdown Extra. For a good overview of Markdown in general, check out the Markdown Guide. Here is a quick comparison of some commonly used Markdown with the rendered result:

Top level header: <H1>

Block quote

Second paragraph in block quote

First Paragraph of response. Italics, bold, and bold italics.

Second Paragraph after blank line. Here is some HTML code mixed in with the Markdown, and here is the same <U>HTML code</U> enclosed by backticks.

Secondary Header: <H2>

  • Unordered list item
  • Second unordered list item
  • New unordered list
    • Nested list item

Third Level header <H3>

  1. An ordered list item.
  2. A second ordered list item with the same number.
  3. A third ordered list item.
Here is some preformatted text.
  This line begins with some indentation.
    This begins with even more indentation.
And this line has no indentation.

Alt text for a graphic image

A definition list
A list of terms, each with one or more definitions following it.
An HTML construct using the tags <DL>, <DT> and <DD>.
A term
Its definition after a colon.
A second definition.
A third definition.
Another term following a blank line
The definition of that term.