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.