Small qsearch idea

Programming Topics (Computer Chess) and technical aspects as test techniques, book building, program tuning etc

Moderator: Andres Valverde

Small qsearch idea

Postby Daniel Uranga » 19 Dec 2009, 18:37

Most programs does "captures only search" during qsearch (and sometimes they try checks too in first and second ply), so they try every move that causes a material difference of at least 100 centipawns between ply and ply-1. Is a good idea modifying that paramater?
Call that parameter "N", normal qsearch uses N=100, then: if eval(ply)-100>=eval(ply+1) then continue searching ply+1. And with N=50, N=75, etc? And what about N=50+15*qply?
I hope I explained my idea well. I want to know if that could be a good idea.
Daniel Uranga
 
Posts: 26
Joined: 01 Apr 2009, 05:15

Re: Small qsearch idea

Postby H.G.Muller » 20 Dec 2009, 11:45

The danger of indefinitely extending reversible moves is earch explosion caused by infinite recursion. If a move ups the eval by 100 cP (e.g. by pinning a vauable opponent piece), the opponent will likely have a move worth 100 cP to undo the pin, and then you might pin it again in another way.

E.g. q5k1/pr4pp/8/3r4/1P3P2/1Q6/6PP/6K1 w - - 0 1

1... Rf7 2. Qf3, Rb7 3. Qb3

Of course repetition detection might ameliorate this a litter, but even then there might be cases where you can keep it up for a long time before creating repeats.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Small qsearch idea

Postby Daniel Uranga » 20 Dec 2009, 18:39

I understand. Maybe using only using piece square based evaluation could help. Then positions where one side could easily improve doing a simple piece centralization move would be made instead of just calling eval and returning a value that may not reflect what is happening. I think it could help reducing "positional horizon effect" instead of just "tactical horizon effect" as standard qsearch do.
Need to test on my unfinished engine.
Daniel Uranga
 
Posts: 26
Joined: 01 Apr 2009, 05:15


Return to Programming and Technical Discussions

Who is online

Users browsing this forum: No registered users and 1 guest