Importance of Null Move Pruning

Discussion of chess software programming and technical issues.

Moderator: Ras

rdhoffmann
Posts: 54
Joined: Fri Apr 21, 2023 3:46 pm
Full name: Richard Hoffmann

Re: Importance of Null Move Pruning

Post by rdhoffmann »

looa wrote: Fri May 05, 2023 6:02 pm All this relies on you having a good evaluation function though, null move pruning won't help you if your evaluation is out of whack. So should you put effort into your evaluation or implement these additional search optimizations? I'm currently weighing these options for my own engine, should I spend more time figuring out optimizing my search or should I add more data to my evaluation?
True, pruning is a complete waste of time without proper evaluation. I noticed this when trying out LMR in the endgame. It didn't work at all, until I realized it cannot possibly work without updating eval as well.
User avatar
hgm
Posts: 28353
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Importance of Null Move Pruning

Post by hgm »

But 'null-move pruning' is not really pruning. It is more like 'bundling' all your moves, by reserving a turn for them, and finding a continuation that would work in that case (i.e. cause a cutoff). Assuming that there would be at least one move that doesn't alter the position so much (i.e. is equally useless) that the continuation would not work in the same way.
Uri Blass
Posts: 10790
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Importance of Null Move Pruning

Post by Uri Blass »

looa wrote: Fri May 05, 2023 6:02 pm All this relies on you having a good evaluation function though, null move pruning won't help you if your evaluation is out of whack. So should you put effort into your evaluation or implement these additional search optimizations? I'm currently weighing these options for my own engine, should I spend more time figuring out optimizing my search or should I add more data to my evaluation?
Piece square table evaluation is enough to make null move pruning to work so you do not need a lot of effort for it.
JoAnnP38
Posts: 253
Joined: Mon Aug 26, 2019 4:34 pm
Location: Clearwater, Florida USA
Full name: JoAnn Peeler

Re: Importance of Null Move Pruning

Post by JoAnnP38 »

Uri Blass wrote: Fri May 05, 2023 11:29 pm
looa wrote: Fri May 05, 2023 6:02 pm All this relies on you having a good evaluation function though, null move pruning won't help you if your evaluation is out of whack. So should you put effort into your evaluation or implement these additional search optimizations? I'm currently weighing these options for my own engine, should I spend more time figuring out optimizing my search or should I add more data to my evaluation?
Piece square table evaluation is enough to make null move pruning to work so you do not need a lot of effort for it.
Since the largest component of nearly every evaluation function is material, just having the most basic evaluation that only considers enough is enough. The Null Move will prove out that your opponent cannot recapture the material you have claimed.
looa
Posts: 5
Joined: Sat Apr 15, 2023 9:17 pm
Full name: Alexander Ek

Re: Importance of Null Move Pruning

Post by looa »

Null Move vs Non :lol: :roll:

Code: Select all

 
 > fen 2k5/2pb2p1/8/8/8/4PB2/6P1/5K2 w - - 0 1
 > bestmove 8
info nps 0
info score cp 2.55 depth 1 nodes 21 time 0 pv g2g4
info nps 0
info score cp 0.05 depth 2 nodes 118 time 1 pv e3e4 c8b8
info nps 348666
info score cp 2.40 depth 3 nodes 1046 time 3 pv f1e1 c7c5 g2g4
info nps 401461
info score cp -0.15 depth 4 nodes 5219 time 13 pv f3d1 g7g6 e3e4 c8b8
info nps 536842
info score cp 0.25 depth 5 nodes 47779 time 90 pv g2g3 d7b5 f1g1 c8b8 e3e4
info nps 521423
info score cp -0.05 depth 6 nodes 152777 time 293 pv f1g1 d7f5 f3d5 f5e4 d5c4 c8b8
info nps 570514
info score cp 0.20 depth 7 nodes 819830 time 1437 pv e3e4 c7c5 e4e5 d7b5 f1g1 c8b8 e5e6
info nps 619775
info score cp -0.10 depth 8 nodes 3360423 time 5423 pv f1g1 c7c6 e3e4 g7g5 f3e2 c8b8 e2f1 d7e6
 Best Move: f1g1

Code: Select all

 > fen 2k5/2pb2p1/8/8/8/4PB2/6P1/5K2 w - - 0 1
 > bestmove 8
info nps 8
info score cp 2.55 depth 1 nodes 21 time 2357 pv g2g4
info nps 50
info score cp 0.05 depth 2 nodes 118 time 2358 pv e3e4 c8b8
info nps 443
info score cp 2.40 depth 3 nodes 1046 time 2361 pv f1e1 c7c5 g2g4      
info nps 2201
info score cp -0.15 depth 4 nodes 5219 time 2372 pv f3d1 g7g6 e3e4 c8b8
info nps 19501
info score cp 0.25 depth 5 nodes 47779 time 2450 pv g2g3 d7b5 f1g1 c8b8 e3e4
info nps 57608
info score cp -0.05 depth 6 nodes 152777 time 2653 pv f1g1 d7f5 f3d5 f5e4 d5c4 c8b8
info nps 216943
info score cp 0.20 depth 7 nodes 819830 time 3780 pv e3e4 c7c5 e4e5 d7b5 f1g1 c8b8 e5e6
info nps 434107
info score cp -0.10 depth 8 nodes 3360423 time 7741 pv f1g1 c7c6 e3e4 g7g5 f3e2 c8b8 e2f1 d7e6
 Best Move: f1g1
lol :p