Next Step - Search
Moderators: hgm, Rebel, chrisw
-
- Posts: 226
- Joined: Sun Mar 08, 2009 3:08 pm
- Location: Canada
Next Step - Search
Hi all, Im trying to decide the next step to take in search after having added LMR, and improved Null so it no longer is simply R = 2. What would you suggest for the next *big* improvement in search? I really dont have anything else, just very plain qsearch, null, and a pvs/lmr. The more trivial to implement the better Thanks!
outAtime
-
- Posts: 2684
- Joined: Sat Jun 14, 2008 9:17 pm
Re: Next Step - Search
What is the ELO of your engine ? You should already have a good ELO with what you have, try to test against some weak engine and verify your engine arrives at the end of the match, possibly without losing too much.outAtime wrote:Hi all, Im trying to decide the next step to take in search after having added LMR, and improved Null so it no longer is simply R = 2. What would you suggest for the next *big* improvement in search? I really dont have anything else, just very plain qsearch, null, and a pvs/lmr. The more trivial to implement the better Thanks!
This is the serious approach, instead if you are more interested in having fun then go wild adding everthing comes to your mind
-
- Posts: 226
- Joined: Sun Mar 08, 2009 3:08 pm
- Location: Canada
-
- Posts: 482
- Joined: Thu Oct 16, 2008 4:23 am
- Location: Milky Way
Re: Next Step - Search
I think futility, razoring and static null move are very easy and quick to implement and your engine can gain a significative speed up. Although find the right parameters which will better fit to your search is not that trivial. It would require a lot of tests.outAtime wrote:Hi all, Im trying to decide the next step to take in search after having added LMR, and improved Null so it no longer is simply R = 2. What would you suggest for the next *big* improvement in search? I really dont have anything else, just very plain qsearch, null, and a pvs/lmr. The more trivial to implement the better Thanks!
But if I were you I would first write a separated function to handle root moves and also a dedicated function to order root moves. At least for me it was very important to make further improvements in the search.
Regards,
Ben-Hur Carlos Langoni Junior
http://sourceforge.net/projects/redqueenchess/
http://sourceforge.net/projects/redqueenchess/
-
- Posts: 879
- Joined: Mon Dec 15, 2008 11:45 am
Re: Next Step - Search
Hi,
well, one of the next steps may be futility pruning (and delta pruning (QS)). Depending on the level your engine already has, this can be good
for 30-50 elo. IMHO this is easy to implement and wont take much time.
good luck and enjoy your work...
Michael
well, one of the next steps may be futility pruning (and delta pruning (QS)). Depending on the level your engine already has, this can be good
for 30-50 elo. IMHO this is easy to implement and wont take much time.
good luck and enjoy your work...
Michael
-
- Posts: 226
- Joined: Sun Mar 08, 2009 3:08 pm
- Location: Canada
-
- Posts: 613
- Joined: Sun Jan 18, 2009 7:03 am
Re: Next Step - Search
# Fine tuning LMR (reducing several plies at the end of the move list)outAtime wrote:Hi all, Im trying to decide the next step to take in search after having added LMR, and improved Null so it no longer is simply R = 2. What would you suggest for the next *big* improvement in search? I really dont have anything else, just very plain qsearch, null, and a pvs/lmr. The more trivial to implement the better Thanks!
# Futility pruning
# Move count based pruning
# Filtering out neg. SEE moves at qsearch
# Razoring
# static null move pruning
All are trivial to implement and should offer considerable ELO increase
Joona Kiiski
-
- Posts: 226
- Joined: Sun Mar 08, 2009 3:08 pm
- Location: Canada
-
- Posts: 226
- Joined: Sun Mar 08, 2009 3:08 pm
- Location: Canada
-
- Posts: 226
- Joined: Sun Mar 08, 2009 3:08 pm
- Location: Canada
Re: Next Step - Search
Does depth need to == 1 for move count based pruning?
Thanks. Just wondering because it's hard to find examples.
Thanks. Just wondering because it's hard to find examples.
outAtime