Author: Joshua Haglund
Date: 22:51:35 02/28/04
Hi,
I have an idea I am not sure will work. Tell me what you think.
example:
search to ply 10 with static evals.
any search method, alpha/beta, NegaScout, MiniMax, Quiesce, etc.
Then start searching for ply 10 with all your other evaluations.
What i'm saying is:
Search deeper with right away with "dummy" moves so are depth is good. Then,
start searching for better moves.
void SearchForBetter()
{
Do_more_with_evaluation();
compare_alpha_beta();
}
DummySearch(alpha, beta, depth)
{
...
if(depth >= 10)
SearchForBetter();
...
return alpha;
}
Another Idea of this or maybe both can be tried at the same time is:
for (i = first_move[ply]; i < first_move[ply + 1]; ++i) {
sort_moves(i);
if (!makemove(generate_data[i]m.b))
continue;
++f; // number of moves to look at
// the less to look at the faster. 3 moves.
(plies should come fast before 5 to even worry about)
if (ply == 5 && f == 3) {
if (ply == 6)
f = 3;
if (ply == 7)
f = 3;
if (ply == 8)
f = 3;
if (ply == 9)
f = 3;
if (ply == 10)
f = 255; // look at all moves from ply 10 and onward.
++depth;
takeback();
break;
}
x = -search(-beta, -alpha, depth - 1);
and if we are very optimistic:
for (i = first_move[ply]; i < first_move[ply + 1]; ++i) {
sort_moves(i);
if (!makemove(generate_data[i]m.b))
continue;
++f; // number of moves to look at
// the less to look at the faster. 3 moves.
(plies should come fast before 5 to even worry about)
if (ply == 5 && f == 3) {
if (ply == 6)
f = 3;
if (ply == 7)
f = 3;
if (ply == 8)
f = 3;
if (ply == 9)
f = 3;
if (ply == 10)
f = 3;
if (ply == 11)
f = 3;
if (ply == 12)
f = 3;
if (ply == 13)
f = 3;
if (ply == 14)
f = 3;
if (ply == 15)
f = 255; // look at all moves from ply 15 and onward.
++depth;
takeback();
break;
}
x = -search(-beta, -alpha, depth - 1);
I hope you see my idea.
Joshua Haglund
This page took 0.01 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.