Why search() reaching max ply of > 120 ?

Discussion of chess software programming and technical issues.

Moderator: Ras

AlvaroBegue
Posts: 931
Joined: Tue Mar 09, 2010 3:46 pm
Location: New York
Full name: Álvaro Begué (RuyDos)

Re: Why search() reaching max ply of > 120 ?

Post by AlvaroBegue »

Also, if you print out the depth left in your stack dump, it might be easier to see what's going on.
Chan Rasjid
Posts: 588
Joined: Thu Mar 09, 2006 4:47 pm
Location: Singapore

Re: Why search() reaching max ply of > 120 ?

Post by Chan Rasjid »

hgm wrote:You are saying that you only extend moves that deliver checks, and not those that evade check? If that is your intension, it obviously is not implemented properly. If you look at the sequence of moves you see that the search continues both after the checks and the evasions. If at d=1 an evasion would not be extended, you would be at d=0 after it (i.e. in QSearch), and you would not search any non-capture checks there (as is done in your stack-trace).
My move stack trace posted earlier indeed allowed extension for some non-checking moves (evasion).

I now simplified everything:-
1) only checks are extended; all extended unconditionally. Same also for rootsearch();
2) repetition detection and fifty draws are detected in all search including qsearch.

Yet fullsearch() can still reached ply 120 - seems checks alone without limit can reach high ply somehow avoiding repetition.

I don't suspect yet there is any zobrist hashkey bugs as it is debugged by full computation at some points.

This is the new dump:-
dump depth 1

ply(118), pc-type(4) move(h7g7), check(0) fifty(1)
ply(117), pc-type(6) move(f6g6), check(6) fifty(0)
ply(116), pc-type(4) move(h8h7), check(0) fifty(17)
ply(115), pc-type(2) move(c5f2), check(0) fifty(16)
ply(114), pc-type(6) move(c1d2), check(6) fifty(15)
ply(113), pc-type(5) move(f1g2), check(0) fifty(14)
ply(112), pc-type(6) move(c3c1), check(6) fifty(13)
ply(111), pc-type(5) move(e1f1), check(0) fifty(12)
ply(110), pc-type(6) move(b3c3), check(6) fifty(11)
ply(109), pc-type(5) move(d1e1), check(0) fifty(10)
ply(108), pc-type(6) move(c3b3), check(6) fifty(9)
ply(107), pc-type(5) move(c1d1), check(0) fifty(8)
ply(106), pc-type(6) move(b3c3), check(6) fifty(7)
ply(105), pc-type(5) move(b1c1), check(0) fifty(6)
ply(104), pc-type(6) move(a4b3), check(6) fifty(5)
ply(103), pc-type(5) move(c2b1), check(0) fifty(4)
ply(102), pc-type(6) move(a1a4), check(6) fifty(3)
ply(101), pc-type(5) move(c3c2), check(0) fifty(2)
ply(100), pc-type(6) move(a2a1), check(6) fifty(1)
ply(99), pc-type(5) move(b4c3), check(0) fifty(0)
ply(98), pc-type(1) move(a7a5), check(1) fifty(58)
ply(97), pc-type(5) move(a4b4), check(0) fifty(57)
ply(96), pc-type(6) move(d5a2), check(6) fifty(56)
ply(95), pc-type(5) move(b3a4), check(0) fifty(55)
ply(94), pc-type(6) move(d2d5), check(6) fifty(54)
ply(93), pc-type(5) move(b4b3), check(0) fifty(53)
ply(92), pc-type(6) move(d1d2), check(6) fifty(52)
ply(91), pc-type(5) move(b3b4), check(0) fifty(51)
ply(90), pc-type(6) move(e2d1), check(6) fifty(50)
ply(89), pc-type(5) move(c4b3), check(0) fifty(49)
ply(88), pc-type(6) move(d1e2), check(6) fifty(48)
ply(87), pc-type(5) move(d3c4), check(0) fifty(47)
ply(86), pc-type(6) move(e1d1), check(6) fifty(46)
ply(85), pc-type(5) move(e3d3), check(0) fifty(45)
ply(84), pc-type(6) move(d1e1), check(6) fifty(44)
ply(83), pc-type(5) move(f3e3), check(0) fifty(43)
ply(82), pc-type(6) move(c2d1), check(6) fifty(42)
ply(81), pc-type(5) move(e4f3), check(0) fifty(41)
ply(80), pc-type(6) move(d2c2), check(6) fifty(40)
ply(79), pc-type(5) move(f4e4), check(0) fifty(39)
ply(78), pc-type(6) move(c3d2), check(6) fifty(38)
ply(77), pc-type(5) move(g3f4), check(0) fifty(37)
ply(76), pc-type(6) move(c2c3), check(6) fifty(36)
ply(75), pc-type(5) move(f2g3), check(0) fifty(35)
ply(74), pc-type(6) move(b3c2), check(6) fifty(34)
ply(73), pc-type(5) move(g3f2), check(0) fifty(33)
ply(72), pc-type(6) move(d5b3), check(6) fifty(32)
ply(71), pc-type(5) move(f3g3), check(0) fifty(31)
ply(70), pc-type(6) move(d2d5), check(6) fifty(30)
ply(69), pc-type(5) move(f2f3), check(0) fifty(29)
ply(68), pc-type(6) move(d1d2), check(6) fifty(28)
ply(67), pc-type(5) move(f1f2), check(0) fifty(27)
ply(66), pc-type(6) move(d2d1), check(6) fifty(26)
ply(65), pc-type(5) move(g2f1), check(0) fifty(25)
ply(64), pc-type(6) move(c1d2), check(6) fifty(24)
ply(63), pc-type(5) move(f1g2), check(0) fifty(23)
ply(62), pc-type(6) move(c3c1), check(6) fifty(22)
ply(61), pc-type(5) move(e1f1), check(0) fifty(21)
ply(60), pc-type(6) move(b3c3), check(6) fifty(20)
ply(59), pc-type(5) move(d1e1), check(0) fifty(19)
ply(58), pc-type(6) move(c3b3), check(6) fifty(18)
ply(57), pc-type(5) move(c1d1), check(0) fifty(17)
ply(56), pc-type(6) move(b3c3), check(6) fifty(16)
ply(55), pc-type(5) move(b1c1), check(0) fifty(15)
ply(54), pc-type(6) move(c3b3), check(6) fifty(14)
ply(53), pc-type(5) move(a1b1), check(0) fifty(13)
ply(52), pc-type(6) move(c2c3), check(6) fifty(12)
ply(51), pc-type(5) move(a2a1), check(0) fifty(11)
ply(50), pc-type(6) move(c1c2), check(6) fifty(10)
ply(49), pc-type(5) move(a1a2), check(0) fifty(9)
ply(48), pc-type(6) move(d2c1), check(6) fifty(8)
ply(47), pc-type(5) move(a2a1), check(0) fifty(7)
ply(46), pc-type(6) move(d1d2), check(6) fifty(6)
ply(45), pc-type(5) move(b1a2), check(0) fifty(5)
ply(44), pc-type(6) move(d2d1), check(6) fifty(4)
ply(43), pc-type(5) move(b2b1), check(0) fifty(3)
ply(42), pc-type(6) move(e1d2), check(6) fifty(2)
ply(41), pc-type(5) move(c3b2), check(0) fifty(1)
ply(40), pc-type(6) move(e2e1), check(6) fifty(0)
ply(39), pc-type(5) move(c4c3), check(0) fifty(3)
ply(38), pc-type(6) move(d2e2), check(6) fifty(2)
ply(37), pc-type(5) move(d4c4), check(0) fifty(1)
ply(36), pc-type(6) move(e2d2), check(6) fifty(0)
ply(35), pc-type(2) move(e7c5), check(0) fifty(0)
ply(34), pc-type(1) move(c6c5), check(1) fifty(0)
ply(33), pc-type(3) move(f3e5), check(0) fifty(4)
ply(32), pc-type(2) move(b8e5), check(2) fifty(3)
ply(31), pc-type(5) move(c4d4), check(0) fifty(2)
ply(30), pc-type(6) move(f2e2), check(6) fifty(1)
ply(29), pc-type(5) move(d4c4), check(0) fifty(0)
ply(28), pc-type(6) move(e2f2), check(6) fifty(1)
ply(27), pc-type(5) move(e4d4), check(0) fifty(0)
ply(26), pc-type(6) move(b2e2), check(6) fifty(0)
ply(25), pc-type(5) move(d3e4), check(0) fifty(0)
ply(24), pc-type(1) move(e5e4), check(1) fifty(3)
ply(23), pc-type(5) move(c2d3), check(0) fifty(2)
ply(22), pc-type(6) move(a1b2), check(6) fifty(1)
ply(21), pc-type(5) move(d2c2), check(0) fifty(0)
ply(20), pc-type(1) move(d4c3), check(1) fifty(2)
ply(19), pc-type(5) move(e1d2), check(0) fifty(1)
ply(18), pc-type(6) move(a5a1), check(6) fifty(0)
ply(17), pc-type(1) move(c2c3), check(0) fifty(0)
ply(16), pc-type(6) move(a2a5), check(6) fifty(0)
ply(15), pc-type(4) move(h4h7), check(0) fifty(3)
ply(14), pc-type(5) move(f7g8), check(0) fifty(2)
ply(13), pc-type(6) move(h6f6), check(6) fifty(1)
ply(12), pc-type(5) move(g7f7), check(0) fifty(0)
ply(11), pc-type(6) move(d2h6), check(6) fifty(0)
ply(10), pc-type(5) move(f8g7), check(0) fifty(0)
ply(9), pc-type(2) move(a3e7), check(2) fifty(2)
ply(8), pc-type(5) move(e8f8), check(0) fifty(1)
ply(7), pc-type(3) move(f5g7), check(3) fifty(0)
ply(6), pc-type(3) move(g8e7), check(0) fifty(3)
ply(5), pc-type(4) move(b7e7), check(4) fifty(2)
ply(4), pc-type(6) move(e6a2), check(0) fifty(1)
ply(3), pc-type(3) move(e3f5), check(0) fifty(0)
ply(2), pc-type(1) move(d5d4), check(0) fifty(0)
ply(1), pc-type(1) move(g3g4), check(0) fifty(3)
ply(0), pc-type(2) move(c7b8), check(0) fifty(2)
Rasjid
Uri Blass
Posts: 10886
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Why search() reaching max ply of > 120 ?

Post by Uri Blass »

I do not understand the meaning of your output but you should have remaining depth after every move.

The remaining depth should go down after a non extended move and should remain the same after extended moves and you should go to qsearch when the remaining depth is 0.

If one of these things does not happen you have a bug(the bug can be extending checks by more than 1 ply or extending non checks).

Note that in movei I practically extend part of the checks by more than one ply(with partial extensions) but I also have less than 2 plies for 2 consecutive moves so the problem of very long lines at small depth does not happen for me.
Chan Rasjid
Posts: 588
Joined: Thu Mar 09, 2006 4:47 pm
Location: Singapore

Re: Why search() reaching max ply of > 120 ?

Post by Chan Rasjid »

Hello,

This has depth printed out; depth = depth + matethreat(if trigerred by nullmove); this depth is extended by 1 for check moves.

I don't quite understand why depth == 7 was repeated so many times in the trace below.
dump depth 1

ply(118), depth(1) pc-type(6) move(b6e6), check(6) fifty(0)
ply(117), depth(1) pc-type(4) move(e4e6), check(4) fifty(2)
ply(116), depth(2) pc-type(5) move(f7f6), check(0) fifty(1)
ply(115), depth(2) pc-type(3) move(h7g5), check(3) fifty(0)
ply(114), depth(3) pc-type(5) move(g7f7), check(0) fifty(0)
ply(113), depth(3) pc-type(6) move(h5f7), check(6) fifty(1)
ply(112), depth(4) pc-type(5) move(f8g7), check(0) fifty(0)
ply(111), depth(4) pc-type(3) move(g5h7), check(3) fifty(27)
ply(110), depth(5) pc-type(6) move(b5b6), check(0) fifty(26)
ply(109), depth(6) pc-type(5) move(f1e1), check(0) fifty(25)
ply(108), depth(6) pc-type(6) move(c5b5), check(6) fifty(24)
ply(107), depth(7) pc-type(5) move(f2f1), check(0) fifty(23)
ply(106), depth(7) pc-type(6) move(c1c5), check(6) fifty(22)
ply(105), depth(7) pc-type(5) move(g1f2), check(0) fifty(21)
ply(104), depth(7) pc-type(6) move(d2c1), check(6) fifty(20)
ply(103), depth(7) pc-type(5) move(f2g1), check(0) fifty(19)
ply(102), depth(7) pc-type(6) move(c3d2), check(6) fifty(18)
ply(101), depth(7) pc-type(5) move(f3f2), check(0) fifty(17)
ply(100), depth(7) pc-type(6) move(c6c3), check(6) fifty(16)
ply(99), depth(7) pc-type(4) move(e1e4), check(0) fifty(15)
ply(98), depth(7) pc-type(6) move(c4c6), check(6) fifty(14)
ply(97), depth(7) pc-type(5) move(e2f3), check(0) fifty(13)
ply(96), depth(7) pc-type(6) move(c3c4), check(6) fifty(12)
ply(95), depth(7) pc-type(5) move(f3e2), check(0) fifty(11)
ply(94), depth(7) pc-type(6) move(c2c3), check(6) fifty(10)
ply(93), depth(7) pc-type(5) move(f2f3), check(0) fifty(9)
ply(92), depth(7) pc-type(6) move(b3c2), check(6) fifty(8)
ply(91), depth(7) pc-type(5) move(g3f2), check(0) fifty(7)
ply(90), depth(7) pc-type(6) move(d5b3), check(6) fifty(6)
ply(89), depth(7) pc-type(5) move(f3g3), check(0) fifty(5)
ply(88), depth(7) pc-type(6) move(d2d5), check(6) fifty(4)
ply(87), depth(7) pc-type(5) move(f2f3), check(0) fifty(3)
ply(86), depth(7) pc-type(6) move(d3d2), check(6) fifty(2)
ply(85), depth(7) pc-type(5) move(g3f2), check(0) fifty(1)
ply(84), depth(7) pc-type(6) move(d6d3), check(6) fifty(0)
ply(83), depth(7) pc-type(1) move(f2f4), check(0) fifty(7)
ply(82), depth(7) pc-type(6) move(c6d6), check(6) fifty(6)
ply(81), depth(7) pc-type(5) move(f3g3), check(0) fifty(5)
ply(80), depth(7) pc-type(6) move(b6c6), check(6) fifty(4)
ply(79), depth(7) pc-type(5) move(e3f3), check(0) fifty(3)
ply(78), depth(7) pc-type(6) move(a6b6), check(6) fifty(2)
ply(77), depth(7) pc-type(5) move(e2e3), check(0) fifty(1)
ply(76), depth(7) pc-type(6) move(d6a6), check(6) fifty(0)
ply(75), depth(7) pc-type(4) move(h1e1), check(0) fifty(2)
ply(74), depth(7) pc-type(4) move(c1e1), check(4) fifty(1)
ply(73), depth(7) pc-type(5) move(d2e2), check(0) fifty(0)
ply(72), depth(7) pc-type(6) move(e5d6), check(6) fifty(4)
ply(71), depth(7) pc-type(5) move(e3d2), check(0) fifty(3)
ply(70), depth(7) pc-type(6) move(b2e5), check(6) fifty(2)
ply(69), depth(7) pc-type(5) move(d4e3), check(0) fifty(1)
ply(68), depth(7) pc-type(6) move(b5b2), check(6) fifty(0)
ply(67), depth(7) pc-type(5) move(e3d4), check(0) fifty(0)
ply(66), depth(7) pc-type(1) move(d5d4), check(1) fifty(3)
ply(65), depth(7) pc-type(5) move(e2e3), check(0) fifty(2)
ply(64), depth(7) pc-type(6) move(b1b5), check(6) fifty(1)
ply(63), depth(7) pc-type(5) move(e1e2), check(0) fifty(0)
ply(62), depth(7) pc-type(4) move(c8c1), check(4) fifty(14)
ply(61), depth(7) pc-type(2) move(d2c1), check(0) fifty(13)
ply(60), depth(7) pc-type(6) move(c2b1), check(6) fifty(12)
ply(59), depth(7) pc-type(5) move(d1e1), check(0) fifty(11)
ply(58), depth(7) pc-type(6) move(d3c2), check(6) fifty(10)
ply(57), depth(7) pc-type(5) move(c1d1), check(0) fifty(9)
ply(56), depth(7) pc-type(4) move(a8c8), check(4) fifty(8)
ply(55), depth(7) pc-type(5) move(b1c1), check(0) fifty(7)
ply(54), depth(7) pc-type(6) move(a3d3), check(6) fifty(6)
ply(53), depth(7) pc-type(5) move(c1b1), check(0) fifty(5)
ply(52), depth(7) pc-type(6) move(b3a3), check(6) fifty(4)
ply(51), depth(7) pc-type(5) move(b1c1), check(0) fifty(3)
ply(50), depth(7) pc-type(6) move(a4b3), check(6) fifty(2)
ply(49), depth(7) pc-type(5) move(c2b1), check(0) fifty(1)
ply(48), depth(7) pc-type(6) move(a3a4), check(6) fifty(0)
ply(47), depth(7) pc-type(5) move(b1c2), check(0) fifty(6)
ply(46), depth(7) pc-type(2) move(a4c2), check(2) fifty(5)
ply(45), depth(7) pc-type(5) move(a1b1), check(0) fifty(4)
ply(44), depth(7) pc-type(6) move(b3a3), check(6) fifty(3)
ply(43), depth(7) pc-type(5) move(b1a1), check(0) fifty(2)
ply(42), depth(7) pc-type(6) move(c4b3), check(6) fifty(1)
ply(41), depth(7) pc-type(5) move(c1b1), check(0) fifty(0)
ply(40), depth(7) pc-type(6) move(d3c4), check(6) fifty(5)
ply(39), depth(7) pc-type(5) move(d1c1), check(0) fifty(4)
ply(38), depth(7) pc-type(2) move(d7a4), check(2) fifty(3)
ply(37), depth(7) pc-type(2) move(c1d2), check(0) fifty(2)
ply(36), depth(7) pc-type(6) move(b1d3), check(6) fifty(1)
ply(35), depth(7) pc-type(2) move(f4c1), check(0) fifty(0)
ply(34), depth(7) pc-type(6) move(b4b1), check(6) fifty(10)
ply(33), depth(7) pc-type(5) move(d2d1), check(0) fifty(9)
ply(32), depth(7) pc-type(6) move(a4b4), check(6) fifty(8)
ply(31), depth(7) pc-type(5) move(c2d2), check(0) fifty(7)
ply(30), depth(7) pc-type(6) move(a3a4), check(6) fifty(6)
ply(29), depth(7) pc-type(5) move(c1c2), check(0) fifty(5)
ply(28), depth(7) pc-type(6) move(a1a3), check(6) fifty(4)
ply(27), depth(7) pc-type(2) move(c2b1), check(0) fifty(3)
ply(26), depth(7) pc-type(6) move(c3a1), check(6) fifty(2)
ply(25), depth(7) pc-type(2) move(b3c2), check(0) fifty(1)
ply(24), depth(7) pc-type(6) move(b4c3), check(6) fifty(0)
ply(23), depth(7) pc-type(2) move(c2b3), check(0) fifty(2)
ply(22), depth(7) pc-type(3) move(d4b3), check(3) fifty(1)
ply(21), depth(7) pc-type(5) move(d2c1), check(0) fifty(0)
ply(20), depth(7) pc-type(6) move(b2b4), check(6) fifty(9)
ply(19), depth(7) pc-type(2) move(d3c2), check(0) fifty(8)
ply(18), depth(7) pc-type(6) move(a1b2), check(6) fifty(7)
ply(17), depth(7) pc-type(5) move(e1d2), check(0) fifty(6)
ply(16), depth(7) pc-type(6) move(a3a1), check(6) fifty(5)
ply(15), depth(7) pc-type(5) move(e2e1), check(0) fifty(4)
ply(14), depth(7) pc-type(3) move(f5d4), check(3) fifty(3)
ply(13), depth(7) pc-type(5) move(e3e2), check(0) fifty(2)
ply(12), depth(7) pc-type(3) move(d4f5), check(3) fifty(1)
ply(11), depth(7) pc-type(2) move(f1d3), check(0) fifty(0)
ply(10), depth(7) pc-type(6) move(b2a3), check(6) fifty(5)
ply(9), depth(7) pc-type(5) move(d2e3), check(0) fifty(4)
ply(8), depth(7) pc-type(6) move(a1b2), check(6) fifty(3)
ply(7), depth(7) pc-type(5) move(e2d2), check(0) fifty(2)
ply(6), depth(7) pc-type(3) move(c6d4), check(3) fifty(1)
ply(5), depth(7) pc-type(5) move(e1e2), check(0) fifty(0)
ply(4), depth(7) pc-type(6) move(f6a1), check(6) fifty(2)
ply(3), depth(8) pc-type(6) move(d1h5), check(0) fifty(1)
ply(2), depth(9) pc-type(6) move(d8f6), check(0) fifty(0)
ply(1), depth(10) pc-type(1) move(e5d6), check(0) fifty(0)
ply(0), depth(11) pc-type(2) move(e7d6), check(0) fifty(0)
Rasjid
Chan Rasjid
Posts: 588
Joined: Thu Mar 09, 2006 4:47 pm
Location: Singapore

Re: Why search() reaching max ply of > 120 ?

Post by Chan Rasjid »

Uri Blass wrote:I do not understand the meaning of your output but you should have remaining depth after every move.

The remaining depth should go down after a non extended move and should remain the same after extended moves and you should go to qsearch when the remaining depth is 0.

If one of these things does not happen you have a bug(the bug can be extending checks by more than 1 ply or extending non checks).

Note that in movei I practically extend part of the checks by more than one ply(with partial extensions) but I also have less than 2 plies for 2 consecutive moves so the problem of very long lines at small depth does not happen for me.
Yes! I can't figure out why my trace earlier shows depth == 7 not going down despite a non-checking(non- extended) move.

I'll have to see.

Rasjid
Chan Rasjid
Posts: 588
Joined: Thu Mar 09, 2006 4:47 pm
Location: Singapore

Re: Why search() reaching max ply of > 120 ?

Post by Chan Rasjid »

Hello,

I think I now know where the problem is - it is in the variable 'matethreat' that is set by nullmove(). If I ignore matethreat ( always 0), the search now does not reach max ply.

I am not sure if my implementation of nullmove matethreat is good. If nullmove shows checkmate, then the usual advice is to extend 1 ply; but nullmove is done at the start of search() after ttprobe(). So if it is to be extended I have:

int depth_to_search = depth + matethreat;

If a move to be searched also gives check and the node has matethreat, then the move is extended 2 ply - here is where the problem lie.

So I am not sure what should be the cure; whether it is something expected of matethreat or I have something broken.

Best Regards,
Rasjid
Uri Blass
Posts: 10886
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Why search() reaching max ply of > 120 ?

Post by Uri Blass »

I think that you simply need not to extend mate threat by a full ply.

If you do not have partial extensions then it may be better not to extend mate threats and I am also not sure if extending mate threats by less than a full ply is a good idea(I remember reading that Crafty got rid of partial extensions because they were not productive for it)
AlvaroBegue
Posts: 931
Joined: Tue Mar 09, 2010 3:46 pm
Location: New York
Full name: Álvaro Begué (RuyDos)

Re: Why search() reaching max ply of > 120 ?

Post by AlvaroBegue »

You probably shouldn't do a null-move search at all if you are in check. What does your move generator think of capturing kings? Is that what is returning the mate score? If that's the case, you are effectively extending every mate evasion.
Chan Rasjid
Posts: 588
Joined: Thu Mar 09, 2006 4:47 pm
Location: Singapore

Re: Why search() reaching max ply of > 120 ?

Post by Chan Rasjid »

AlvaroBegue wrote:You probably shouldn't do a null-move search at all if you are in check. What does your move generator think of capturing kings? Is that what is returning the mate score? If that's the case, you are effectively extending every mate evasion.

Everything is clear now. I added a debug variable to printout 'matethreat'; a node does nullmove and detected matethreat, so :
depth_to_search = depth + matethreat (depth +1). This is the depth printed and is the same as the previous depth; it also searches a check move, so the next depth also remains unchanged - and this repeats 'add-infinitum'.

I'll have to see what to do about matethreat or have some limits somehow.

Thanks,
Rasjid
dump depth 1

ply(118), depth(1), matethreat(0), pc-type(4), move(d8e8), check(4), fifty(1)
ply(117), depth(1), matethreat(0), pc-type(4), move(e7e8), check(4), fifty(0)
ply(116), depth(2), matethreat(0), pc-type(4), move(d1d8), check(0), fifty(0)
ply(115), depth(2), matethreat(0), pc-type(1), move(d7d8q), check(6), fifty(25)
ply(114), depth(3), matethreat(1), pc-type(4), move(g1d1), check(0), fifty(24)
ply(113), depth(3), matethreat(0), pc-type(5), move(d1e2), check(0), fifty(23)
ply(112), depth(3), matethreat(1), pc-type(4), move(g2g1), check(4), fifty(22)
ply(111), depth(3), matethreat(0), pc-type(5), move(d2d1), check(0), fifty(21)
ply(110), depth(3), matethreat(1), pc-type(4), move(g3g2), check(4), fifty(20)
ply(109), depth(3), matethreat(0), pc-type(5), move(e3d2), check(0), fifty(19)
ply(108), depth(3), matethreat(1), pc-type(4), move(g2g3), check(4), fifty(18)
ply(107), depth(3), matethreat(0), pc-type(5), move(e2e3), check(0), fifty(17)
ply(106), depth(3), matethreat(1), pc-type(4), move(g3g2), check(4), fifty(16)
ply(105), depth(3), matethreat(0), pc-type(5), move(d3e2), check(0), fifty(15)
ply(104), depth(3), matethreat(1), pc-type(4), move(g4g3), check(4), fifty(14)
ply(103), depth(3), matethreat(0), pc-type(5), move(c4d3), check(0), fifty(13)
ply(102), depth(3), matethreat(1), pc-type(4), move(g5g4), check(4), fifty(12)
ply(101), depth(3), matethreat(0), pc-type(5), move(d5c4), check(0), fifty(11)
ply(100), depth(3), matethreat(1), pc-type(4), move(g4g5), check(4), fifty(10)
ply(99), depth(3), matethreat(0), pc-type(5), move(e4d5), check(0), fifty(9)
ply(98), depth(3), matethreat(1), pc-type(4), move(g5g4), check(4), fifty(8)
ply(97), depth(3), matethreat(0), pc-type(5), move(e5e4), check(0), fifty(7)
ply(96), depth(3), matethreat(1), pc-type(4), move(g4g5), check(4), fifty(6)
ply(95), depth(3), matethreat(0), pc-type(5), move(d4e5), check(0), fifty(5)
ply(94), depth(3), matethreat(1), pc-type(4), move(g3g4), check(4), fifty(4)
ply(93), depth(3), matethreat(0), pc-type(5), move(c3d4), check(0), fifty(3)
ply(92), depth(3), matethreat(1), pc-type(4), move(g4g3), check(4), fifty(2)
ply(91), depth(3), matethreat(0), pc-type(5), move(b4c3), check(0), fifty(1)
ply(90), depth(3), matethreat(1), pc-type(4), move(g3g4), check(4), fifty(0)
ply(89), depth(3), matethreat(0), pc-type(1), move(b5a6), check(0), fifty(0)
ply(88), depth(3), matethreat(1), pc-type(1), move(a7a5), check(1), fifty(26)
ply(87), depth(3), matethreat(0), pc-type(5), move(b3b4), check(0), fifty(25)
ply(86), depth(3), matethreat(1), pc-type(4), move(g2g3), check(4), fifty(24)
ply(85), depth(3), matethreat(0), pc-type(5), move(c2b3), check(0), fifty(23)
ply(84), depth(3), matethreat(1), pc-type(4), move(g1g2), check(4), fifty(22)
ply(83), depth(3), matethreat(0), pc-type(5), move(d1c2), check(0), fifty(21)
ply(82), depth(3), matethreat(1), pc-type(4), move(g2g1), check(4), fifty(20)
ply(81), depth(3), matethreat(0), pc-type(5), move(d2d1), check(0), fifty(19)
ply(80), depth(3), matethreat(1), pc-type(4), move(g3g2), check(4), fifty(18)
ply(79), depth(3), matethreat(0), pc-type(5), move(c3d2), check(0), fifty(17)
ply(78), depth(3), matethreat(1), pc-type(4), move(g4g3), check(4), fifty(16)
ply(77), depth(3), matethreat(0), pc-type(5), move(c4c3), check(0), fifty(15)
ply(76), depth(3), matethreat(1), pc-type(4), move(g3g4), check(4), fifty(14)
ply(75), depth(3), matethreat(0), pc-type(5), move(d3c4), check(0), fifty(13)
ply(74), depth(3), matethreat(1), pc-type(4), move(g2g3), check(4), fifty(12)
ply(73), depth(3), matethreat(0), pc-type(5), move(e2d3), check(0), fifty(11)
ply(72), depth(3), matethreat(1), pc-type(4), move(g3g2), check(4), fifty(10)
ply(71), depth(3), matethreat(0), pc-type(5), move(e3e2), check(0), fifty(9)
ply(70), depth(3), matethreat(1), pc-type(4), move(g4g3), check(4), fifty(8)
ply(69), depth(3), matethreat(0), pc-type(5), move(d4e3), check(0), fifty(7)
ply(68), depth(3), matethreat(1), pc-type(4), move(g5g4), check(4), fifty(6)
ply(67), depth(3), matethreat(0), pc-type(5), move(e5d4), check(0), fifty(5)
ply(66), depth(3), matethreat(1), pc-type(4), move(g4g5), check(4), fifty(4)
ply(65), depth(3), matethreat(0), pc-type(5), move(e4e5), check(0), fifty(3)
ply(64), depth(3), matethreat(1), pc-type(4), move(g5g4), check(4), fifty(2)
ply(63), depth(3), matethreat(0), pc-type(5), move(d5e4), check(0), fifty(1)
ply(62), depth(3), matethreat(1), pc-type(4), move(g4g5), check(4), fifty(0)
ply(61), depth(3), matethreat(0), pc-type(5), move(d4d5), check(0), fifty(6)
ply(60), depth(3), matethreat(1), pc-type(4), move(g5g4), check(4), fifty(5)
ply(59), depth(3), matethreat(0), pc-type(5), move(e5d4), check(0), fifty(4)
ply(58), depth(3), matethreat(1), pc-type(4), move(g4g5), check(4), fifty(3)
ply(57), depth(3), matethreat(0), pc-type(5), move(f4e5), check(0), fifty(2)
ply(56), depth(3), matethreat(1), pc-type(4), move(g3g4), check(4), fifty(1)
ply(55), depth(3), matethreat(0), pc-type(5), move(g5f4), check(0), fifty(0)
ply(54), depth(3), matethreat(0), pc-type(4), move(f3g3), check(4), fifty(0)
ply(53), depth(4), matethreat(0), pc-type(5), move(f6g5), check(0), fifty(1)
ply(52), depth(4), matethreat(1), pc-type(4), move(e3f3), check(4), fifty(0)
ply(51), depth(4), matethreat(0), pc-type(5), move(e6f6), check(0), fifty(4)
ply(50), depth(4), matethreat(1), pc-type(4), move(f3e3), check(4), fifty(3)
ply(49), depth(4), matethreat(0), pc-type(5), move(f5e6), check(0), fifty(2)
ply(48), depth(4), matethreat(1), pc-type(4), move(c3f3), check(4), fifty(1)
ply(47), depth(4), matethreat(0), pc-type(5), move(f4f5), check(0), fifty(0)
ply(46), depth(4), matethreat(1), pc-type(1), move(g6g5), check(1), fifty(1)
ply(45), depth(4), matethreat(0), pc-type(5), move(g4f4), check(0), fifty(0)
ply(44), depth(4), matethreat(1), pc-type(1), move(h7h5), check(1), fifty(2)
ply(43), depth(4), matethreat(0), pc-type(5), move(f3g4), check(0), fifty(1)
ply(42), depth(4), matethreat(1), pc-type(4), move(c1c3), check(4), fifty(0)
ply(41), depth(4), matethreat(0), pc-type(5), move(e2f3), check(0), fifty(6)
ply(40), depth(4), matethreat(1), pc-type(2), move(e4f3), check(2), fifty(5)
ply(39), depth(4), matethreat(0), pc-type(5), move(e1e2), check(0), fifty(4)
ply(38), depth(4), matethreat(1), pc-type(4), move(c2c1), check(4), fifty(3)
ply(37), depth(4), matethreat(0), pc-type(5), move(d2e1), check(0), fifty(2)
ply(36), depth(4), matethreat(1), pc-type(4), move(c3c2), check(4), fifty(1)
ply(35), depth(4), matethreat(0), pc-type(5), move(c1d2), check(0), fifty(0)
ply(34), depth(4), matethreat(1), pc-type(4), move(c4c3), check(4), fifty(9)
ply(33), depth(4), matethreat(0), pc-type(4), move(d3c3), check(0), fifty(8)
ply(32), depth(4), matethreat(1), pc-type(4), move(b4c4), check(4), fifty(7)
ply(31), depth(4), matethreat(0), pc-type(5), move(b1c1), check(0), fifty(6)
ply(30), depth(4), matethreat(1), pc-type(4), move(c4b4), check(4), fifty(5)
ply(29), depth(4), matethreat(0), pc-type(4), move(a3d3), check(0), fifty(4)
ply(28), depth(4), matethreat(1), pc-type(4), move(c2c4), check(2), fifty(3)
ply(27), depth(4), matethreat(0), pc-type(5), move(c1b1), check(0), fifty(2)
ply(26), depth(4), matethreat(1), pc-type(4), move(e2c2), check(4), fifty(1)
ply(25), depth(4), matethreat(0), pc-type(5), move(b2c1), check(0), fifty(0)
ply(24), depth(4), matethreat(1), pc-type(4), move(h2e2), check(4), fifty(11)
ply(23), depth(4), matethreat(0), pc-type(2), move(d3e2), check(0), fifty(10)
ply(22), depth(4), matethreat(1), pc-type(4), move(h1h2), check(4), fifty(9)
ply(21), depth(4), matethreat(0), pc-type(5), move(b1b2), check(0), fifty(8)
ply(20), depth(4), matethreat(1), pc-type(4), move(h2h1), check(4), fifty(7)
ply(19), depth(4), matethreat(0), pc-type(5), move(c2b1), check(0), fifty(6)
ply(18), depth(4), matethreat(1), pc-type(4), move(h1h2), check(4), fifty(5)
ply(17), depth(4), matethreat(0), pc-type(2), move(e2d3), check(0), fifty(4)
ply(16), depth(4), matethreat(1), pc-type(2), move(f3e4), check(2), fifty(3)
ply(15), depth(4), matethreat(0), pc-type(5), move(d1c2), check(0), fifty(2)
ply(14), depth(4), matethreat(1), pc-type(4), move(h6h1), check(4), fifty(1)
ply(13), depth(4), matethreat(0), pc-type(2), move(d3e2), check(0), fifty(0)
ply(12), depth(4), matethreat(1), pc-type(2), move(g4f3), check(2), fifty(0)
ply(11), depth(4), matethreat(0), pc-type(1), move(f2f3), check(0), fifty(1)
ply(10), depth(4), matethreat(1), pc-type(2), move(h3g4), check(2), fifty(0)
ply(9), depth(4), matethreat(0), pc-type(1), move(d6d7), check(0), fifty(2)
ply(8), depth(5), matethreat(0), pc-type(5), move(g7g8), check(0), fifty(1)
ply(7), depth(5), matethreat(0), pc-type(4), move(e1e7), check(4), fifty(0)
ply(6), depth(6), matethreat(0), pc-type(4), move(h5h6), check(0), fifty(0)
ply(5), depth(6), matethreat(0), pc-type(2), move(e3h6), check(2), fifty(0)
ply(4), depth(7), matethreat(0), pc-type(2), move(e6h3), check(0), fifty(4)
ply(3), depth(8), matethreat(0), pc-type(4), move(h1e1), check(0), fifty(3)
ply(2), depth(9), matethreat(0), pc-type(3), move(g8h6), check(0), fifty(2)
ply(1), depth(10), matethreat(0), pc-type(4), move(a2a3), check(0), fifty(1)
ply(0), depth(11), matethreat(0), pc-type(4), move(h4h5), check(0), fifty(0)
Chan Rasjid
Posts: 588
Joined: Thu Mar 09, 2006 4:47 pm
Location: Singapore

Re: Why search() reaching max ply of > 120 ?

Post by Chan Rasjid »

Could there be some programs out there that also reaches a max-ply due to extending matethreat with a 1 full ply; my program could have just played on as long as it returns something proper and not search on; I would not have known of this issue had I not added some warning messages when it reaches max-ply. Or is it just a minor hiccup that would not have much effect on the strength of an engine?

Rasjid