4CPU and 4 different evals.

Discussion of chess software programming and technical issues.

Moderator: Ras

Mateusz

4CPU and 4 different evals.

Post by Mateusz »

Hi,
I am thinking about test like this:
1. Create 4 eval functions
2. Run 4 search any every search will return best move.
cpu 1 - e4
cpu 2 - Nf3
cpu 3 - d4
cpu 4 - e4
so e4 is the best move ...
luisrodg
Posts: 30
Joined: Thu Oct 07, 2010 4:15 pm

Re: 4CPU and 4 different evals.

Post by luisrodg »

The idea is similar to what i read in another post in Go or Shogi, i dont remember.

You have 4 strong programs searching independently and they vote on a move (what you are doing). In case of a tie, the recognized stronger program has priority.

What will you do in case of a tie or if they each have a different best move?
B.S. in Mathematics
M.S. in Mathematics
Ph.D student in Mathematics.
Uri Blass
Posts: 10892
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: 4CPU and 4 different evals.

Post by Uri Blass »

I think that it is a bad idea.

chess is not democracy and I suspect that if you give players with similiar strength to vote about a move you can expect playing strength that is weaker than every one of them.
mathmoi
Posts: 290
Joined: Mon Mar 13, 2006 5:23 pm
Location: Québec
Full name: Mathieu Pagé

Re: 4CPU and 4 different evals.

Post by mathmoi »

Uri Blass wrote:I think that it is a bad idea.

chess is not democracy and I suspect that if you give players with similiar strength to vote about a move you can expect playing strength that is weaker than every one of them.
At the very least the strength will be weaker than the best of them.
rbarreira
Posts: 900
Joined: Tue Apr 27, 2010 3:48 pm

Re: 4CPU and 4 different evals.

Post by rbarreira »

Uri Blass wrote:I think that it is a bad idea.

chess is not democracy and I suspect that if you give players with similiar strength to vote about a move you can expect playing strength that is weaker than every one of them.
Are you saying that making a weak program sometimes play like Rybka or Stockfish will make it even weaker?
Robert Pope
Posts: 567
Joined: Sat Mar 25, 2006 8:27 pm
Location: USA
Full name: Robert Pope

Re: 4CPU and 4 different evals.

Post by Robert Pope »

rbarreira wrote:
Uri Blass wrote:I think that it is a bad idea.

chess is not democracy and I suspect that if you give players with similiar strength to vote about a move you can expect playing strength that is weaker than every one of them.
Are you saying that making a weak program sometimes play like Rybka or Stockfish will make it even weaker?
No, if you take a strong program like Rybka and make it sometimes play like a weak program, then it will make it even weaker.

Imagine you have 5 good programs of the same overall strength. But one is especially good in endgames, another in tactics, another in pawn development, etc. Each time that a program sees an opportunity to leverage its own special skill, it will be outvoted by the others, who don't see the brilliancy. So what you end up with is a bland, weaker composite, with none of the brilliance of any of them.
User avatar
hgm
Posts: 28390
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: 4CPU and 4 different evals.

Post by hgm »

It depends on if ou assume that the strengths are unique to the programs, or the weaknesses.
Milos
Posts: 4190
Joined: Wed Nov 25, 2009 1:47 am

Re: 4CPU and 4 different evals.

Post by Milos »

hgm wrote:It depends on if ou assume that the strengths are unique to the programs, or the weaknesses.
Exactly.
It's a two-side coin, and there is no way to know in advance which side would prevail.
jhaglund
Posts: 173
Joined: Sun May 11, 2008 7:43 am

Re: 4CPU and 4 different evals.

Post by jhaglund »

Hi,
I am thinking about test like this:
1. Create 4 eval functions
2. Run 4 search any every search will return best move.
cpu 1 - e4
cpu 2 - Nf3
cpu 3 - d4
cpu 4 - e4
so e4 is the best move ...
This idea would work depending on if you replace the word "cpu" with "engine"

I like this approach:

a) Each search will take 1 root move per thread and force that move for that particular search.

b) Then compare each evaluation score from the _end_ of each PV line to order root moves.

c) Step-Forward and force PV_line1 temporarily and do a con-current search

d) Concatenation of the two PV_lines, taking end ply move evaluation score2.

if(last_ply_score1 < last_ply_score2)
score = last_ply_score2 - last_ply_score1;
if(last_ply_score2 < last_ply_score1)
score = last_ply_score1 - last_ply_score2;
if(last_ply_score1 == last_ply_score2)
score = last_ply_score1;
if(last_ply_score2 == last_ply_score1)
score = last_ply_score2;
else
score = MATE - score;

PV[score] = PV_line1[last_ply_score1] + PV_line2[last_ply_score2];

e) Order root moves based on score2, PV[score2].

f) Win.

But, I've already said something like this before...
http://talkchess.com/forum/viewtopic.ph ... 80&t=35066
:)
Uri Blass
Posts: 10892
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: 4CPU and 4 different evals.

Post by Uri Blass »

rbarreira wrote:
Uri Blass wrote:I think that it is a bad idea.

chess is not democracy and I suspect that if you give players with similiar strength to vote about a move you can expect playing strength that is weaker than every one of them.
Are you saying that making a weak program sometimes play like Rybka or Stockfish will make it even weaker?
Not exactly(if you start from a weak program I do not expect it to be weaker by making move of rybka or stockfish but
I suspect that if the level of rybka and stockfish is almost the same you are going to get something weaker than both of them because stockfish may make one plan when rybka that is used to produce the next move is not going to follow the plan.