Question for Bob Hyatt

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

diep
Posts: 1822
Joined: Thu Mar 09, 2006 11:54 pm
Location: The Netherlands

Re: Question for Bob Hyatt

Post by diep »

lkaufman wrote:I disagree with your statement that in general the queen is stronger than two rooks, definitely not weaker. All of my research, both in database stats and in optimizing the piece values for both Rybka and Doch, indicates that the queen is nearly equal to two rooks, but is worth a bit less (maybe a quarter pawn or so), not a bit more. Looking at the values assigned by different programs to the pieces is only useful if you know that they are well "centered", which is not always the case. I know it is not at all the case in Stockfish, the pawn is worth more in that program than its stated value.
The queen issue won't be resolved any soon as also between programs there is a lot of struggle. I feel there is not 1 truth there. Just that in most random positions the queen picks up sooner material.

As of your database research, referring to that is rather pathetic.
Your research looks more of a case of writing over research from others rather than any serious research.

It just quotes values similar to some GM's in the past long before computer age was there. I assume your database was a book quoting values from Max Euwe and Fischer.

Obviously not even 1 database research would show the values you figure out.

For a starter as you can see from tuning of stockfish, if you use automatic tools you don't find nice fixed rounded values, but total broken values.

Your values are according to wiki

3¼ 3¼ 5 9¾ Kaufman 1999 Add ½ point for the bishop pair[7] (Kaufman 1999)

That's not even close to rybka by the way.

In rybka actually the material only table gives 2 rooks against queen +0.94 for the ROOKS and that goes up, so far away from the 0.25 pawn you 'advised'.

In short you had NOTHING to do with the parameter tuning which is NCSA domain, and you are far away from those guys. Thank you.

It gives a bonus of +0.9 to +1.2 for a bishop pair

A knight is 0.6 stronger than a bishop in case of not a bishop pair running back to +0.36 of a knight being stronger. So they are not 'equal strong' at all.

Even if you had done your database research well, you can see that also Kasparov played like that (regardless of what he said).

That are the default material values in Rybka.

Please note also the rybka values are not exact rounded values to a quarter of a pawn, they are broken values of course and they don't even claim to have done database research.

As you see every tunings experiment carried out reach total other values.

My mainpoint is:

If you 'inject' your piece values into a chessprogram it plays litterally hundreds of elo's weaker. Yes even a chessprogram from the 90s.

You can easily set values of material for really about any commercial program. It requires 6 mouse clicks or something and then with 1 push at the button it can play games and you get results.

Even that obviously your 'research' didn't try. So it is total crap research.

If you would, you would have concluded quite some other values of course.

In 1999 a very easy manner would have been using the chessprogram nimzo1998 for that, to give some trivial example. By then released for years.

Note in 1999 the values of Diep were 3.6 for a piece and most programs had similar values like that. So not close to 3.25 either.

3.5 was the standard back then with Chrilly's 1998 values publicly visible in his chessprogram where with Che even you could program.

Nimzo dominated in 1998 as a chessprogram.

In 1999 Shredder became world champion. Actually its piece values also were a lot higher than 3.25 relative to a pawn, though ofcourse publicly not visible.

Crafty back then - i can't remember, maybe Bob can dig it up.

So i really wonder what you researched.

Vincent
diep
Posts: 1822
Joined: Thu Mar 09, 2006 11:54 pm
Location: The Netherlands

Re: Question for Bob Hyatt

Post by diep »

Please note you are not the only 'rybka' member who is doing statements about rybka without having a clue of what it is actual doing, so you're excused. It seems some organisation just wrote down a few new names of persons who 'build' that program and 'helped' it. The development department of it seems to have zero communication with those teammembers. As has been proven before.

There is some interviews with Vasik Rajlich about rybka, for example one at a russian website, where i definitely raise my eyebrowse, as some things said there you can simply verify whether they are true or not true.

I wonder which government organisation funds it, as the project will never break even. Not now and not 100 years from now either.

Industrial engineering is very expensive and just to do that for an engine is very expensive, as the number of people you need for that and the hardware in number of cpunode hours is really massive. It seems however that 3 such projects exist now in computerchess; they all share that the parameter tuning happens behind closed doors in USA somewhere.

To give one example you need to use a source code control system and you need massive changes to source code which in published source codes is not there of the engines in question. In all cases the original programmers of the projects seem to have been pushed aside and are simply getting 'overruled', or no longer know even what happens in the actual source code of the latest version of the engine. Lots of fake names and guys who claim credit without haveing a clue. And so on and so on.

It's fun in computerchess now.

For me of course industrial engineering is easy to recognize.

However it already has been posted by others and i heard it from several programmers that they 'noticed weird things in how programs are improving, as it had to be other and different programmers from the original authors improving it'. And so on and so on.

For tiny events already massive hardware gets thrown into action, worth millions. Some years ago even well known professors couldn't get much of a system time on those machines FOR WORLD CHAMPIONSHIPS. And so on and so on.

Oh one question, what if they lose from Shredder, as it's obvious SMK is on his own, or maybe Diep?

Thanks,
Vincent
User avatar
Eelco de Groot
Posts: 4567
Joined: Sun Mar 12, 2006 2:40 am
Full name:   

Re: Question for Bob Hyatt

Post by Eelco de Groot »

diep wrote:
I guess it was around 2004 that i noticed that fruit's biggest problem was a total wrong tuning of especially its material and reported that to Fabien.

Fabien then started some sort of massive tuningsproject and produced Fruit 2.1 having the values:

pawn 100
knight 406
bishop 406
rook 625
queen 1250

In todays chess software we still find the Donninger values.
Sorry Vincent but I can't really square these "massive tuningproject" values with the actual material values in Fruit 2.1 which look much more natural. Toga has pretty much the same. Even if it were some sort of average positional values, it would be very difficult to get exact average positional values and besides, there would be no point determining this. So I do not really know what exactly happened with those values that Fabien found... Did this "massive tuningproject" ever really take place?

In Fruit 2.1's value.h:

Code: Select all

// constants

const int ValuePawn   = 100;   // was 100
const int ValueKnight = 325;   // was 300
const int ValueBishop = 325;   // was 300
const int ValueRook   = 500;   // was 500
const int ValueQueen  = 1000;  // was 900
const int ValueKing   = 10000; // was 10000
Okay, if you take the value of a pawn as 80 from material.cpp I suppose you come closer to the values mentioned. But these are still only guidelines, styarting values unless they have been properly "neutralized", so they would be average material values and positional bonuses and penalties would average out to zero. I don't think they do in Fruit, I have no hard data though.

Code: Select all

// constants and variables

static /* const */ int MaterialWeight = 256; // 100%

static const int PawnOpening   = 80; // was 100
static const int PawnEndgame   = 90; // was 100
static const int KnightOpening = 325;
static const int KnightEndgame = 325;
static const int BishopOpening = 325;
static const int BishopEndgame = 325;
static const int RookOpening   = 500;
static const int RookEndgame   = 500;
static const int QueenOpening  = 1000;
static const int QueenEndgame  = 1000;

Eelco
Last edited by Eelco de Groot on Fri Jan 15, 2010 2:33 am, edited 1 time in total.
diep
Posts: 1822
Joined: Thu Mar 09, 2006 11:54 pm
Location: The Netherlands

Re: Question for Bob Hyatt

Post by diep »

Eelco you are misquoting.

Pawn=80 in Fruit 2.1 not 100.

So i don't know what the hell you're doing, but you obviously are deliberate lying here, or looking in the wrong code.

3.25 / 0.8 = 4.0625 pawn.

I rounded that to 4.06

Same for the rest.

Fruit was done by Fabien letouzey. He did do things on his own.
He's the first to succeed and later on his idea got massively copied simply and industrial applied.

So he earns credits as one of the big minds that boosted artificial intelligence in the 21th century *major league*.

You have no idea yet.

Actually it is in material.cpp not material.h

Thanks,
Vincent
diep
Posts: 1822
Joined: Thu Mar 09, 2006 11:54 pm
Location: The Netherlands

Re: Question for Bob Hyatt

Post by diep »

in material.cpp:

static const int PawnOpening = 80; // was 100
static const int PawnEndgame = 90; // was 100
static const int KnightOpening = 325;
static const int KnightEndgame = 325;
static const int BishopOpening = 325;
static const int BishopEndgame = 325;
static const int RookOpening = 500;
static const int RookEndgame = 500;
static const int QueenOpening = 1000;
static const int QueenEndgame = 1000;

static const int BishopPairOpening = 50;
static const int BishopPairEndgame = 50;

In later Toga they put the value of a pawn even lower to 70 in fact.

You can already guess my tip to Fabien back then. I gave him the tip that his material was total wrong tuned and should look to nimzo 1998 which has (relative to pawn=100) the pieces at 4.2 etcetera. Fabien solved that by lowering the value of a pawn. Of course i present it here relative to the value of a pawn=100.

Vincent
User avatar
Eelco de Groot
Posts: 4567
Joined: Sun Mar 12, 2006 2:40 am
Full name:   

Re: Question for Bob Hyatt

Post by Eelco de Groot »

diep wrote:Eelco you are misquoting.

Pawn=80 in Fruit 2.1 not 100.

So i don't know what the hell you're doing, but you obviously are deliberate lying here.

3.25 / 0.8 = 4.0625 pawn.

I rounded that to 4.06

Same for the rest.

Fruit was done by Fabien letouzey. He did do things on his own.
He's the first to succeed and later on his idea got massively copied simply and industrial applied.

So he earns credits as one of the big minds that boosted artificial intelligence in the 21th century *major league*.

You have no idea yet.

Actually it is in material.cpp not material.h

Thanks,
Vincent
Yes, sorry I realized my mistake before reading your above post and edited mine. I still don't think the Fruit 2.1 values are true averages though. There are tons off additional rules. The piece square tables alone in Fruit must introduce big changes to those material values. You can not really look at this without taking the material imbalance tables into account. Which I suppose is were Vas started too and an important ingredient therefore of Strelka´s strength. Have you looked at Tord´s work on the material imbalance tables in Stockfish. I was really amazed by it, that the table could give such big corrections and be accurate. I still don´t get it that those rules from Larry, actually seem to work there.

Sorry for the confusion Vincent, not intentional

Eelco

Dan Heisman put Larry Kaufman´s article on the net
http://home.comcast.net/~danheisman/Art ... alance.htm[/code]
Last edited by Eelco de Groot on Fri Jan 15, 2010 2:57 am, edited 1 time in total.
Debugging is twice as hard as writing the code in the first
place. Therefore, if you write the code as cleverly as possible, you
are, by definition, not smart enough to debug it.
-- Brian W. Kernighan
diep
Posts: 1822
Joined: Thu Mar 09, 2006 11:54 pm
Location: The Netherlands

Re: Question for Bob Hyatt

Post by diep »

Eelco: as for your tuning question.

I will ask you the same question like GCP asked me when looking at the strelka (rybka 1.0) source code as published on the internet: "do these values to you look like as if they have been manual tuned or is it automatic tuned?".

And some years before that, i'll ask you the same question like Shay Bushinsky asked me in world champs 2005 in a cafe with several programmers also answerring that question: "Vincent, how much elopoints do you guess your program can win if you can automatic tune it a little closer towards the true value?".

The answer of most programmers was either : "don't know or VERY LITTLE".

MY ANSWER WAS +300 ELO.

The interesting question is however not the answer to that question, but why he asked the question. What did he knew at that time that i didn't know.

Well we CAN analyze of course Zappa world champs 2005 very careful.
I have it here. And i did careful analyze its accurate tuning with the months later released rybka yes.

Thanks,
Vincent
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Question for Bob Hyatt

Post by bob »

lkaufman wrote:I disagree with your statement that in general the queen is stronger than two rooks, definitely not weaker. All of my research, both in database stats and in optimizing the piece values for both Rybka and Doch, indicates that the queen is nearly equal to two rooks, but is worth a bit less (maybe a quarter pawn or so), not a bit more. Looking at the values assigned by different programs to the pieces is only useful if you know that they are well "centered", which is not always the case. I know it is not at all the case in Stockfish, the pawn is worth more in that program than its stated value.
I can only say that I optimized this value over a half-million games or so, I think I posted the results as well, showing that for Crafty, at least, 1050 is the best value. But also don't forget other scoring. All of which can change that by a significant amount.

All of our values came from testing, although I must admit, that the values don't have a great influence on rating until they begin to get significantly "out of whack" -- at least in Crafty at present.
lkaufman
Posts: 5960
Joined: Sun Jan 10, 2010 6:15 am
Location: Maryland USA

Re: Question for Bob Hyatt

Post by lkaufman »

"a piece relative to pawn value is worth around 4.0 to 4.2 as that's about what every commercial program has as its base value." The base value for this ratio in Rybka 3 is about 3.25 on average (i.e. with half the material remaining on the board); of course this excludes the bishop pair bonus. Of course this ratio is somewhat dependent on the details of the program, i.e. on how well centered the piece values are, but I tried reasonably hard to center them, so this value is not too far off from the true value used. This value is definitely the one that tested best (within a few hundreds of a pawn) over hundreds of thousands of hyperspeed games. My own feeling as a human GM is that the value is too low in Rybka, that it should be about 3.5, but it tested poorly with values that high (of course the rook and queen were appropriately adjusted). It's very hard to reconcile a value of 3.25 with the values you mention of 4 and more. One possibility is that higher values test better at deeper levels; perhaps these high values were based on small numbers of games at serious time limits. This is precisely the issue that caused me to start this thread; I hope Bob can get us answers.
jwes
Posts: 778
Joined: Sat Jul 01, 2006 7:11 am

Re: Question for Bob Hyatt

Post by jwes »

bob wrote:One note. I believe the inflated piece values were a direct response to programs trading knight for 3 pawns and ending up in hopeless positions, and such. I did the "bad trade" idea in Crafty to avoid this, since the bad trade idea directly addresses the issue rather than indirectly thru modifying piece values.
I wonder to what extent it is that programs do not understand how to play with material differences, e.g. with 3 pawns vs. a piece, you need to use the pawns aggressively.