Author: Stuart Cracraft
Date: 21:51:47 08/31/04
I know this is a long shot throwing this out there without much more info, but perhaps I'll get lucky and someone has seen this before. It's appeared on this bulletin board about 6 years ago. [D]4r1k1/p1qr1p2/2pb1Bp1/1p5p/3P1n1R/1B3P2/PP3PK1/2Q4R w - - bm Qxf4; id "WAC.141"; This position is supposed to be a good test for the implementation of Moreland's mate threat extension (if null move search value returns a mate, extend, or if it returns a mate one move away, extend (the more limited version) He says many humans can see this mate threat (even I could and I am a class C or B player) along the h-file but that some null move type programs have a problem, hence his extension. I am pretty sure my program is implementing the extension but it grinds and grinds and can't break free from Kf1 to the winning Qxf4. with mate threat code: 1/11 g2f1 0.00 -953 352 g2f1 f4d5 2/11 g2f1 0.01 -953 723 g2f1 f4d5 c1g5 3/16 g2f1 0.01 -953 2038 g2f1 f4d5 c1g5 d5f6 4/16 g2f1 0.05 -953 9887 g2f1 f4d5 b3d5 c6d5 f1g2 5/21 g2f1 0.36 -953 75432 g2f1 b5b4 b3a4 f4d5 f6g5 d5e7 6/33 g2f1 1.32 -953 267360 g2f1 b5b4 b3a4 f4d5 f6g5 d5e7 7/33 g2f1 9.36 -939 2144638 g2f1 a7a5 f6g5 f4e6 c1e3 d6e7 g5e7 d7e7 8/34 g2f1 16.14 -939 3355663 g2f1 a7a5 f6g5 f4e6 h4e4 a5a4 b3e6 e8e6 f1g1 9th ply here takes too long and didn't finish in a decent amount of time without mate threat code 1/11 g2f1 0.00 -953 352 g2f1 f4d5 2/11 g2f1 0.01 -953 723 g2f1 f4d5 c1g5 3/16 g2f1 0.01 -953 2038 g2f1 f4d5 c1g5 d5f6 4/16 g2f1 0.05 -953 9887 g2f1 f4d5 b3d5 c6d5 f1g2 5/21 g2f1 0.36 -953 75432 g2f1 b5b4 b3a4 f4d5 f6g5 d5e7 6/33 g2f1 1.39 -953 267360 g2f1 b5b4 b3a4 f4d5 f6g5 d5e7 7/33 g2f1 8.16 -939 1875448 g2f1 a7a5 f6g5 f4e6 c1e3 d6e7 g5e7 d7e7 8/34 g2f1 15.78 -939 3145843 g2f1 a7a5 f6g5 f4e6 h4e4 a5a4 b3e6 e8e6 f1g1 9/42 g2f1 151.08 -825 30769486 g2f1 g8f8 h4h5 g6h5 h1h5 e8e1 f1e1 d6b4 e1d1 f4 h5 c1h6 f8e8 10/46 g2f1 471.92 -825 92873175 g2f1 e8b8 h1g1 f4e6 h4h5 11/46> g2f1 666.85 -575 133140320 g2f1 e8b8 h1g1 f4e6 h4h5 basically blows up at ply 9 and moves on to ply 10. ply 11 then gets a fail high. I decided not to wait for the final ply 11 search as it was taking too long with the wider window. The mate threat code comes right after the null move portion in the main search and is: #ifdef MATETHREAT // If no extension so far, and null move thinks we're mated next move // then extend. Sorry, I don't use fractional extensions presently. if (!extend && value == -MATE+qdepth+2) { // printf("mate threat:\n");pbd(bd);getchar(); extend=1; depth++; } #endif I've tried it with the comment uncommented and it does show positions with the rook threat along the h file with the long-diagonal bishop's support threatening mate so I know it is seeing the threat, clearly. In this code, qdepth is like ply in most programs. It is poorly named and will be renamed at some point. Program structure if that helps for the above: Principal Variation Search Adaptive Null Move Move ordering by hash move, captures (mvv/lva), history heuristic, centrality Quiescence extends all checks with 1-ply search handoff by Main-search Quiescence uses SEE to avoid all SEE-negative captures Quiescence uses delta (futility) pruning with margin of maximum positional score so far for side to move Main search extends all checks by one, does one-move reply extension (There are other things like Enhanced Transposition Cutoff, Internal Iterative Deepening, Pawn Promotion and threat-to-promote extensions, recapture extensions, MTD(f), etc. that are disabled since they didn't seem to help with my one-second searches.) Hashing is done only in main search and algorithm is replace always when length >= depth stored in table. Hash table is single-tier only. Evaluation is material-only with pc/sq presently. (Next year is full eval.) Evaluation is in millipawns. Typical maximum positional score is 150. Pawn is 1000 Goal for this year was to simply get rid of bugs in the non-evaluation areas of the program, particularly the search. Thanks ahead, Stuart P.S. The program is solving 241/300 on WAC on the same slow 1ghz p3 and at the same 1 second per position setting that Crafty 19.16 gets 270/300 on -- fun since only was 175/300 a couple months ago and the program is less than 5 months old. Also recently up from expert score on IQ4 to master. Did not code specifically for any given position other than one in WAC (141 is the second.) I did not look at the positions beyond the first couple and avoided looking at the printout except the summary/stats. Position printout was disabled, etc., etc.
This page took 0.02 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.