WAC.163: 662 node search tree

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Pradu
Posts: 287
Joined: Sat Mar 11, 2006 3:19 am
Location: Atlanta, GA

Re: WAC.163: 662 node search tree

Post by Pradu »

How does your "cognitive" search algorithm work?
Dann Corbit
Posts: 12538
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: WAC.163: 662 node search tree

Post by Dann Corbit »

Solving a mate in 11 with 662 nodes is utterly astounding. I would have been prepared to say probably impossible for a position such as the one posted.

Chest takes quite a long time and other engines solve fairly fast, but chug through a lot more nodes than 662. Rybka (which is generally considered to under-report node counts) takes 1.3 million nodes to solve it.

Code: Select all

Analysis from c:\mtest.epd   
4/30/2007 11:09:32 PM Level: 300 Seconds
Analyzing engine: Rybka v1.2.w32

1)                      
    Avoid move: 
    Best move (Rybka v1.2.w32): Qf3-g2
    Not found in: 05:00
      2	00:01	         368	5.888	+0.49	c6c5
      2	00:01	         416	5.324	+0.67	c6xd5
      3	00:01	         728	6.715	+0.48	c6xd5
      3	00:01	         976	9.003	+0.51	c6c5
      4	00:01	       3.384	15.750	+0.50	c6c5 Qb3c4
      5	00:01	       9.312	28.895	+0.60	c6c5 Qb3c3 Rf8b8
      6	00:01	      12.608	32.935	+0.29	c6c5 Qb3c3 Rf8b8 Ra1b1
      6	00:01	      13.896	33.639	+0.48	c6xd5 Qb3xd5+ Bg4e6 Qd5d1 Qf3f7
      7	00:01	      24.824	42.722	+0.22	c6xd5 Qb3xd5+ Bg4e6 Qd5d1 Qf3f6 Ne3g4
      7	00:01	      44.224	51.695	+0.48	c6c5 a2a4 Bg4c8 Qb3d1 Qf3f7
      8	00:02	      64.336	57.688	+0.52	c6c5 a2a4 Bg4c8 Qb3d1 Qf3f7 Ra1c1
      9	00:02	      84.304	63.429	+0.45	c6c5 a2a4 Bg4c8 Qb3d1 Qf3f7 Ra1c1 Qf7e7
     10	00:02	     141.912	73.171	+0.48	c6c5 a2a4 Bg4c8 Qb3d1 Qf3f7 Ra1c1 Qf7e7 Kh2h1
     11	00:04	     254.096	80.406	+0.45	c6c5 a2a4 Bg4c8 Qb3d1 Qf3f7 Ra1c1 Qf7e7 a4a5 Bc8d7
     12	00:17	   1.269.584	79.160	+0.44	c6c5 a2a4 Bg4c8 Ra1c1 Rh6b6 Qb3d1 Rb6xb2 Qd1xf3 Rf8xf3 Ne3d1 Rb2d2
     12	00:17	   1.292.176	79.883	+M11	Qf3g2+ Ne3xg2 h3xg2+ Kh2xg2 Bg4f3+ Qb3xf3 e4xf3+ Kg2g1 Rf8f5 Ra1e1 Rf5h5 Re1e8+ Kg8f7 Re8e7+ Kf7xe7 Rf1e1+ Ke7f8 Re1e8+ Kf8xe8
Hiarcs takes eons, and WinFinder gets it pretty fast, but far, far more than 662 nodes are needed:

Code: Select all

Analysis from c:\mtest.epd   
4/30/2007 11:11:40 PM Level: 300 Seconds
Analyzing engine: Hiarcs11.1UCI

1)                      
    Avoid move: 
    Best move (Hiarcs11.1UCI): Qf3-g2
    Not found in: 05:00
     8/23	00:01	     159.112	307.760	+0.84	Rf8f7
     8/23	00:01	     190.113	311.660	+0.84	Rf8f7 Ra1d1
     9/23	00:02	     381.162	300.838	+0.84	Rf8f7 Ra1d1 Bg4c8 d5xc6 Bc8a6 Rd1d8+ Kg8g7 Qb3b8 Rh6xc6 Qb8a8 Ba6xf1
     9/24	00:02	     505.468	291.336	+0.85	c6c5
     9/24+	00:02	     546.979	291.566	+1.09	c6c5
     9/24	00:02	     552.950	292.256	+1.09	c6c5 Qb3c3 c7c6 d5xc6 Rh6xc6 Ra1c1 Rc6f6 Qc3xc5 Bg4e6 Qc5g5+ Rf6g6
    10/25-	00:03	     766.085	302.561	+0.84	c6c5
    10/25	00:03	     866.370	299.574	+0.82	c6c5 Ra1c1 Rh6f6 Qb3c2 c7c6 d5xc6 Rf6xc6 b2b4 Rc6f6 Qc2xc5 Bg4e6
    11/28	00:08	   2.082.992	287.269	+0.88	c6c5 Ra1c1 Rh6b6 Qb3c3 Bg4c8 Rc1c2
    12/33	00:17	   5.020.063	305.096	+0.65	c6c5 Ra1d1 Bg4c8 Rd1d2 Bc8a6 Rf1e1 Ba6d3 Qb3c3 Rf8f7 Qc3xc5 Rh6g6 Qc5c3 Rg6f6
    12/33	00:20	   6.033.314	305.221	+0.66	c6xd5
    12/33	00:21	   6.361.454	304.041	+0.66	c6xd5 Qb3xd5+ Kg8g7 Qd5g5+ Rh6g6 Qg5e5+ Kg7g8 Ra1c1 c7c6 Rc1c4
    12/33	00:29	   8.634.442	301.629	+0.67	Rh6f6
    12/33	00:32	   9.427.529	300.020	+0.95	Rh6f6 Ra1c1 c6c5 a2a3 h7h5 Rc1c2 Bg4c8 Rc2xc5 h5h4 Rc5c2 Rf6f7 Rf1g1
    13/39+	00:46	  13.746.304	304.202	+1.20	Rh6f6
    13/40	00:54	  16.947.458	314.745	+1.20	Rh6f6 d5xc6+ Bg4e6 Qb3c2 Qf3xf2+ Rf1xf2 Rf6xf2+ Kh2g1 Rf2xc2 Ne3xc2 h3h2+ Kg1h1 Rf8f2 Nc2e3 Rf2xb2 a2a4 Rb2e2 Ne3g2 Be6h3
    14/40	01:12	  22.789.778	320.626	+1.05	Rh6f6 d5xc6+ Bg4e6 Qb3d1 Qf3xd1 Ne3xd1 e4e3 Nd1xe3 Rf6xf2+ Kh2h1 Rf2e2 Rf1xf8+ Kg8xf8 Ra1f1+
    15/41	02:06	  40.628.901	324.825	+0.98	Rh6f6 d5xc6+ Bg4e6 Qb3d1 Qf3xd1 Ne3xd1 e4e3 Nd1xe3 Rf6xf2+ Kh2h1 Rf2e2 Rf1xf8+ Kg8xf8 Ra1f1+ Kf8e8 Rf1f3 h7h5 a2a4 Re2xb2 a4a5 Rb2a2
    15/45	03:57	  76.635.161	324.681	+0.99	Qf3g2+
    15/45+	03:57	  77.003.960	324.952	+1.30	Qf3g2+
    15/45	03:59	  77.746.735	325.916	+M12	Qf3g2+
    15/45	04:00	  78.238.461	326.502	+M11	Qf3g2+ Ne3xg2 h3xg2+ Kh2xg2 Bg4f3+ Qb3xf3 e4xf3+ Kg2g1 Rf8f5 Ra1e1 Rf5h5 Re1e8+ Kg8f7 Re8e7+
    16/45	04:01	  78.688.741	326.868	+M11	Qf3g2+ Ne3xg2 h3xg2+ Kh2xg2 Bg4f3+ Qb3xf3 e4xf3+ Kg2g1 Rf8f5 Ra1e1 Rf5h5 Re1e8+ Kg8f7 Re8e7+ Kf7xe7 Rf1e1+ Ke7f8 Re1e8+ Kf8xe8
    17/45	04:02	  79.106.540	327.265	+M11	Qf3g2+ Ne3xg2 h3xg2+ Kh2xg2 Bg4f3+ Qb3xf3 e4xf3+ Kg2g1 Rf8f5 Ra1e1 Rf5h5 Re1e8+ Kg8f7 Re8e7+ Kf7xe7 Rf1e1+ Ke7f8 Re1e8+ Kf8xe8
    18/45	04:02	  79.127.838	327.289	+M11	Qf3g2+ Ne3xg2 h3xg2+ Kh2xg2 Bg4f3+ Qb3xf3 e4xf3+ Kg2g1 Rf8f5 Ra1e1 Rf5h5 Re1e8+ Kg8f7 Re8e7+ Kf7xe7 Rf1e1+ Ke7f8 Re1e8+ Kf8xe8
    19/45	04:02	  79.129.345	327.295	+M11	Qf3g2+ Ne3xg2 h3xg2+ Kh2xg2 Bg4f3+ Qb3xf3 e4xf3+ Kg2g1 Rf8f5 Ra1e1 Rf5h5 Re1e8+ Kg8f7 Re8e7+ Kf7xe7 Rf1e1+ Ke7f8 Re1e8+ Kf8xe8
    20/45	04:02	  79.130.918	327.282	+M11	Qf3g2+ Ne3xg2 h3xg2+ Kh2xg2 Bg4f3+ Qb3xf3 e4xf3+ Kg2g1 Rf8f5 Ra1e1 Rf5h5 Re1e8+ Kg8f7 Re8e7+ Kf7xe7 Rf1e1+ Ke7f8 Re1e8+ Kf8xe8
    21/45	04:02	  79.133.516	327.292	+M11	Qf3g2+ Ne3xg2 h3xg2+ Kh2xg2 Bg4f3+ Qb3xf3 e4xf3+ Kg2g1 Rf8f5 Ra1e1 Rf5h5 Re1e8+ Kg8f7 Re8e7+ Kf7xe7 Rf1e1+ Ke7f8 Re1e8+ Kf8xe8
   4/30/2007 11:15:49 PM, Time for this analysis: 00:04:03, Rated time: 05:00

0 of 1 matching moves
4/30/2007 11:15:50 PM, Total time: 12:04:09 AM
Rated time: 05:00 = 300 Seconds

--------------------------------------------------------------------------------

Analysis from c:\mtest.epd   
4/30/2007 11:11:40 PM Level: Infinite
Analyzing engine: Rybka WinFinder 1.0.w32

1)                      
    Avoid move: 
    Best move (Rybka WinFinder 1.0.w32): Qf3-g2
    Not found in: 05:00
      3	00:01	      13.576	73.554	+1.01	c6xd5
      4	00:01	      16.344	76.073	+0.87	c6xd5
      4	00:01	      23.504	85.046	+0.94	Kg8g7
      5	00:01	       6.648	17.366	+0.78	Kg8g7 d5xc6
      5	00:01	       6.864	17.930	+0.88	c6xd5 Qb3xd5+ Bg4e6
      6	00:01	      11.789	24.095	+0.62	c6xd5 Qb3xd5+ Bg4e6 Qd5d1
      6	00:01	      21.401	31.084	+0.72	Rh6g6 d5xc6+ Bg4e6 Qb3d1
      7	00:01	      29.294	36.141	+0.57	Rh6g6 d5xc6+ Bg4e6 Qb3d1 Qf3f6
      7	00:02	      37.370	38.810	+0.59	c6xd5 Qb3xd5+ Kg8g7 Qd5g5+ Rh6g6 Qg5e7+ Kg7g8
      7	00:02	      49.109	41.732	+0.72	c6c5 Ra1c1 Rh6b6 Qb3a3
      8	00:02	      80.426	49.672	+0.86	c6c5 Ra1c1 Rh6b6 Qb3c3 Bg4d7
      8	00:02	      88.151	51.551	+M0	Qf3g2+ Ne3xg2 h3xg2+ Kh2xg2 Bg4f3+ Qb3xf3 e4xf3+ Kg2g1 Rf8f5 Rf1e1 Rf5h5
      9	00:02	      88.247	51.607	+M0	Qf3g2+ Ne3xg2 h3xg2+ Kh2xg2 Bg4f3+ Qb3xf3 e4xf3+ Kg2g1 Rf8f5 Rf1e1 Rf5h5
     10	00:02	      88.159	51.556	+M0	Qf3g2+ Ne3xg2 h3xg2+ Kh2xg2 Bg4f3+ Qb3xf3 e4xf3+ Kg2g1 Rf8f5 Rf1e1 Rf5h5
   4/30/2007 11:16:35 PM, Time for this analysis: 00:00:36, Rated time: 05:00

Does whatever you are doing work for best moves also, and not just won/loss/draw solutions?
User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Re: WAC.163: 662 node search tree

Post by sje »

Pradu wrote:How does your "cognitive" search algorithm work?
See the status report for 2007.04.25.
User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Re: WAC.163: 662 node search tree

Post by sje »

Dann Corbit wrote: Does whatever you are doing work for best moves also, and not just won/loss/draw solutions?
Not yet, and not soon. It's still a long road ahead.
Pradu
Posts: 287
Joined: Sat Mar 11, 2006 3:19 am
Location: Atlanta, GA

Re: WAC.163: 662 node search tree

Post by Pradu »

sje wrote:
Pradu wrote:How does your "cognitive" search algorithm work?
See the status report for 2007.04.25.
Search algorithm looks very alpha-betaish eg attacker/defender. The implementation of attack and defense metrics will be rather interesting though.
User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Re: WAC.163: 662 node search tree

Post by sje »

Pradu wrote:Search algorithm looks very alpha-betaish eg attacker/defender. The implementation of attack and defense metrics will be rather interesting though.
Well, there aren't any position scores, so there's no alpha and beta. And there isn't any real symmetry, as threats are generated via global selection while refutations are generated along a single variation. Each side has a different search, and both are best first and not depth first.

The attack and defense do take turns as they would in a traditional A/B searcher. But there's no particular "current position" or "current expectation window."

--------

I took another look at the first cut source and plenty of omissions have come to light, including the lack of draw recognition other than stalemates. All draws are correctly marked when a node is generated and inserted into the tree, but the metrics productions don't use this data at the present. The same can be said for a lot of other attributes, so there's lots of room for improvement here.

Somewhat annoyingly, the PV returned by the mate search is almost always not the theoretically best PV but rather a PV with suboptimal moves. It turns out that both sides tend to try the worst moves last, and this is what comes back as a result. It doesn't matter too much for actual play as the attacker's first move in the final result is always correct in the sense that it leads to some forced mate, if not the fastest one.
Dann Corbit
Posts: 12538
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: WAC.163: 662 node search tree

Post by Dann Corbit »

sje wrote:
Dann Corbit wrote: Does whatever you are doing work for best moves also, and not just won/loss/draw solutions?
Not yet, and not soon. It's still a long road ahead.
Whatever it is you have done here (and even if it is only for proof search) is -- fundamentally -- very, very interesting.

It seems almost miraculous and perhaps a new paradigm altogether.

If you could spend some time explaining it, it might be a breakthrough for proof search ideas.

I mean, 662 nodes for a depth 11 mate is borderline ridiculous!
;-)
User avatar
Steve Maughan
Posts: 1221
Joined: Wed Mar 08, 2006 8:28 pm
Location: Florida, USA

Re: WAC.163: 662 node search tree

Post by Steve Maughan »

Dann Corbit wrote:Solving a mate in 11 with 662 nodes is utterly astounding.
This may be a stupid question but where is the mate in 11 in the search? The key move is Qg2+ and the tree seems to focus on Qxf2. I cannot see the mating line in the tree.

What am I missing?

Steve
User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Re: WAC.163: 662 node search tree

Post by sje »

Dann Corbit wrote:I mean, 662 nodes for a depth 11 mate is borderline ridiculous!
Some might say that spending tens to hundreds of milliseconds at a node is just as ridiculous.

From what I know of Paradise, it was never tried on WAC.163, but I'm fairly sure that it could have solved the problem with under 500 nodes and maybe only 250 or less. And I think that a strong human with the assistance of paper and pencil (or the electronic equivalent) could do the same. Remember that nearly all of the problems in WAC and BWTC came from human games in the first place.

Consider the human correspondence chess player. With several days to a week or so for each move, there's plenty of time for leisurely analysis. One way of doing the analysis is to get a big piece of paper and start to draw a search tree with the nodes labeled with active attack and defend issues. The human extends the tree one node at a time with a different algorithm based on which side is on the move. The player adds a node for his/her choice based on which of all the lines seems the most promising. For the opponent's choice, the node added is the one that best refutes the current threat at any level of the threat. In both cases there's a slight bias for shorter threats and faster/early refutations.

Now add a simple computer program that replaces the paper and pencil and keeps track of the tree. Add to the program a set of functions (productions) that measures the relative nastiness and speed of a threat along with a sorting routine that picks the best one. Then add a set of defensive productions that measure at all levels of a threat the relative power of possible refutations and a companion sorting routine. Wrap all of this together and you've got the basics behind Symbolic's mate search.
User avatar
sje
Posts: 4675
Joined: Mon Mar 13, 2006 7:43 pm

Re: WAC.163: 662 node search tree

Post by sje »

Steve Maughan wrote:This may be a stupid question but where is the mate in 11 in the search? The key move is Qg2+ and the tree seems to focus on Qxf2. I cannot see the mating line in the tree.
First, there could be a fault in my implementation. It was the first try.

Second, the search is lacking in the area of PV reporting.

Third, the program thinks the key move (or at least one key move) is 1... Qxf2+.

Fourth, here's the list of successful mate threats as taken directly from a recent log (uh, I hope you have a wide screen monitor):

Code: Select all

2007.05.01 20:19:27.349 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Kd2 Rd3+ Kc2 Rh2+ Kb1 Rd1#)
2007.05.01 20:19:27.694 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Kd2 Rd3+ Kc2 Rh2+ Kc1 Rd1#)
2007.05.01 20:19:30.037 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Ke2 Ra3+ Kd2 e3+ Kc2 Bf5#)
2007.05.01 20:19:33.608 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Ke2 Rh2+ Kd1 Rf1#)
2007.05.01 20:19:34.961 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Ke2 Rh2+ Kd1 Re3+ Kc1 Re1#)
2007.05.01 20:19:36.961 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Ke2 Rh2+ Kd1 Rd3+ Kc1 Rd1#)
2007.05.01 20:19:42.225 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Ke2 Rxg3+ Kd2 Rh2+ Kc1 Rg1#)
2007.05.01 20:19:42.511 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Ke2 Rxg3+ Kd2 Rh2+ Ke1 Rg1#)
2007.05.01 20:19:46.985 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Ke2 Rh2+ Kd1 Rf4+ Kc1 Rf1#)
2007.05.01 20:19:47.613 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Ke2 Rh2+ Kd1 Rf4+ Ke1 Re2+ Kd1 Rf1#)
2007.05.01 20:19:50.426 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Ke2 Rh2+ Kd1 Rf5+ Kc1 Rf1#)
2007.05.01 20:19:51.082 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Ke2 Rh2+ Kd1 Rf5+ Ke1 Re2+ Kd1 Rf1#)
2007.05.01 20:19:53.643 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Ke2 Rh2+ Kd1 Rf6+ Kc1 Rf1#)
2007.05.01 20:19:54.336 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Ke2 Rh2+ Kd1 Rf6+ Ke1 Re2+ Kd1 Rf1#)
2007.05.01 20:20:01.354 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Ke2 Rh2+ Kd1 Rf7+ Kc1 Rf1#)
2007.05.01 20:20:02.128 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Ke2 Rh2+ Kd1 Rf7+ Ke1 Re2+ Kd1 Rf1#)
2007.05.01 20:20:06.188 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Ke2 Rh2+ Kd1 Rf8+ Kc1 Rf1#)
2007.05.01 20:20:06.998 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Nf5 Rxf5+ Qf3 Rxf3+ Ke1 h1=R+ Ke2 Rh2+ Kd1 Rf8+ Ke1 Re2+ Kd1 Rf1#)
2007.05.01 20:20:21.214 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Ke1 h1=Q+ Nf1 Qxf1+ Kd2 Qe2+ Kc1 Rf1+ Qd1 Qxd1#)
2007.05.01 20:20:21.698 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Ke1 h1=Q+ Nf1 Qxf1+ Kd2 Qe2+ Kc1 Rf1+ Qd1 Rxd1#)
2007.05.01 20:20:40.942 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Ke1 h1=Q+ Nf1 Qxf1+ Kd2 Qf2+ Kc1 Qe1+ Qd1 Qxd1#)
2007.05.01 20:20:41.501 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Ke1 h1=Q+ Nf1 Qxf1+ Kd2 Qf2+ Kc1 Qe1+ Kc2 Rf2#)
2007.05.01 20:20:46.620 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Ke1 h1=Q+ Nf1 Qxf1+ Kd2 Qe2+ Kc3 Rf3+ Kb4 Qb5+ Ka3 Qa5#)
2007.05.01 20:20:50.786 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Ke1 h1=Q+ Nf1 Qxf1+ Kd2 Qe2+ Kc3 Rf3+ Kb4 Qb5+ Ka3 Rxb3+ axb3 Qa5#)
2007.05.01 20:20:54.637 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Ke1 h1=Q+ Nf1 Qxf1+ Kd2 Qe2+ Kc3 Rf3+ Kb4 Qb5+ Ka3 Qa6+ Kb4 Qb5+ Ka3 Qa5#)
2007.05.01 20:20:55.835 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kh1 Bf3+ Ng2 Bxg2#)
2007.05.01 20:21:03.834 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Ke1 h1=Q+ Nf1 Qxf1+ Kd2 Qe2+ Kc3 Rf3+ Kb4 Qb5+ Ka3 Qa6+ Kb4 Qb5+ Ka3 Rxb3+ axb3 Qa5#)
2007.05.01 20:21:14.804 MA: (Qxf2+ Rxf2 Rxf2+ Kg1 h2+ Kxf2 Rf6+ Ke1 h1=Q+ Nf1 Qxf1+ Kd2 Qe2+ Kc3 Rf3+ Kb4 Qb5+ Ka3 Qa6+ Kb4 Qb5+ Ka3 Qa6+ Kb4 Qb5+ Ka3 Qa5#)
2007.05.01 20:21:16.122 MA: (Qxf2+ Kh1 Bf3+ Ng2 hxg2#)
2007.05.01 20:21:16.779 MA: (Qxf2+ Ng2 Qxg2#)