An instructive problem

Discussion of chess software programming and technical issues.

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
mambofish

Re: An instructive problem

Post by mambofish » Wed May 30, 2007 9:02 pm

I am seriously impressed that you admit checks in the qsearch! How do you know which move is a check without searching? I did try that once but abandoned it as too costly :-(

Leaving that aside though, the problem I have with this explanation is simply that movei's own analysis doesn't appear to support your conclusions. The fact that movei considers the best response to 3 .. f6 to be a sequence of moves starting with Qh8+ must surely indicate it hasn't seen the consequence of g6. Otherwise that line would terminate much earlier.

Please understand that I intend no disrespect by this - I am sure that movei would eat ermintrude for breakfast. But I don't accept the explanation that some sort of static analysis after g6 is somehow directing movei to find Bg4 as a better move :-)

Kind regards
Vince

Alessandro Scotti

Re: An instructive problem

Post by Alessandro Scotti » Wed May 30, 2007 9:35 pm

Some tests with latest Hamsters:

No checks in qsearch:

Code: Select all

 7/25 0:00.67 30 271620 Bg4 Qg3 Qd7 f3 Bd6 Qf2 hxg5 fxg4 Nxg4
Checks in qsearch:

Code: Select all

 7/23 0:00.82 30 349258 Bg4 Qg3 Qd7 f3 Bd6 Qf2 hxg5 fxg4 Nxg4
Every extension I have removed brings the solution faster (even the usual check extension).

Removing all evaluation terms except material and piece/square tables delays the solution to ply 8 with about 550K nodes, but it still finds it.

Uri Blass
Posts: 8590
Joined: Wed Mar 08, 2006 11:37 pm
Location: Tel-Aviv Israel

Re: An instructive problem

Post by Uri Blass » Wed May 30, 2007 9:52 pm

mambofish wrote:I am seriously impressed that you admit checks in the qsearch! How do you know which move is a check without searching? I did try that once but abandoned it as too costly :-(

Leaving that aside though, the problem I have with this explanation is simply that movei's own analysis doesn't appear to support your conclusions. The fact that movei considers the best response to 3 .. f6 to be a sequence of moves starting with Qh8+ must surely indicate it hasn't seen the consequence of g6. Otherwise that line would terminate much earlier.

Please understand that I intend no disrespect by this - I am sure that movei would eat ermintrude for breakfast. But I don't accept the explanation that some sort of static analysis after g6 is somehow directing movei to find Bg4 as a better move :-)

Kind regards
Vince
1)I explained that I also have pruning and not only checks in the qsearch so movei simply did not search after g6 so it did not get into the qsearch.

The checking line was not pruned but g6 is a quite move so it did not cause extension and together with the pruning that I do after g6 based on evaluation black moves were not searched.


2)I know that a move is check without searching simply based on the from and the to square of the piece(in most cases they tell me that it is not check).

Movei can solve wac number 1 in depth 2 thanks to checks in the qsearch.

New game
2rr3k/pp3pp1/1nnqbN1p/3pN3/2pP4/2P3Q1/PPB4P/R4RK1 w - - 0 1

Analysis by Movei00_8_403:

1.Nf6-e8
³ (-0.69) Depth: 1 00:00:00
1.Nf6-e8
³ (-0.39) Depth: 2 00:00:00
1.Nf6-e8
² (0.31) Depth: 2 00:00:00
1.Nf6-e8 Rd8xe8 2.Ne5xf7+ Be6xf7 3.Qg3xd6
+- (2.27) Depth: 2 00:00:00
1.Qg3-g6
+- (2.28) Depth: 2 00:00:00
1.Qg3-g6
+- (2.57) Depth: 2 00:00:00
1.Qg3-g6 f7xg6 2.Ne5xg6#
+- (#2) Depth: 2 00:00:00
1.Qg3-g6 f7xg6 2.Ne5xg6#
+- (#2) Depth: 2 00:00:00

(, 31.05.2007)

Uri

mambofish

Re: An instructive problem

Post by mambofish » Wed May 30, 2007 10:00 pm

Hi Alessendro

Are you saying that Hamsters definitively recognises that hxg5 is a very bad move at ply 7, or does it (they?) consider it only slightly worse than Bxg4, like movei?

That's the key question I am trying to get an answer to. If it recognises at ply 7 (or even earlier) that hxg5 hxg4 Ne4 Qh5 f6 is a forced loss, then Hamsters has cracked the problem, and my only difficulty now is persuading you to part with your secrets! :-)

Regards,
Vince

Alessandro Scotti

Re: An instructive problem

Post by Alessandro Scotti » Wed May 30, 2007 10:14 pm

No need to persuade... the only secrets in Hamsters are its bugs! :-)

Yes at ply 7 it considers hxg5 only slightly worse than Bg4:

Code: Select all

 7/23 0:00.28 0 114112 hxg5 hxg5 Ne4 Qh5 f6 Qh8+ Kf7 g6+ Ke6 Qxg7
 7/24 0:00.65 13 273085 Bd7 Nh3 Bd6 Nf4 Bg4 Qg3 a5 Bxf6 Qxf6 Qxg4 Bxf4
 7/24 0:00.85 30 358613 Bg4 Qg3 Qd7 f3 Bd6 Qf2 hxg5 fxg4 Nxg4
Actually, it later chooses Bd6 for a couple of plies before coming back to Bg4.

mambofish

Re: An instructive problem

Post by mambofish » Wed May 30, 2007 10:40 pm

Let me recap, to make sure we are not misunderstanding each other :-)

In movei the 4 g6 line gets pruned, so it is not evaluated at all. Instead, the line with 4 Qh8+ is evaluated, and movei considers the end position of this variation to be a slight advantage for white, whereas the line starting Bg4 gives black a better edge.

Now I understand all this and can see why g6 would be pruned. But my point is that pruning g6 is absolutely wrong. g6 is a very strong move because it leads to mate. It is therefore much stronger than Qh8+ and is the real refutation of the variation gxh5 gxh4 Ne4 Qh5 f6.

So what I am saying is that movei's choice of Bg4 at ply 7 is right but for the wrong reasons..

The fact is that all lines from hxg5 result in severe material loss for black or worse, not just a few tenths of a pawn positional loss. But it is the failure to extend g6 that hides this fact and leaves the decision to the static evaluator when in fact the position is far from static!

But I repeat that I am not trying to pick holes in other people's engines. I am genuinely interested in trying to solve the problem that g6 should not be pruned in this position.

Kind regards
Vince

Post Reply