MatPlus.Net

 Website founded by
Milan Velimirović
in 2006

16:15 UTC
ISC 2024
 
  Forum*
 
 
 
 

Username:

Password:

Remember me

 
Forgot your
password?
Click here!
SIGN IN
to create your account if you don't already have one.
CHESS
SOLVING

Tournaments
Rating lists
1-Jan-2024

B P C F





 
 
MatPlus.Net Forum Internet and Computing popeye's performance once again
 
You can only view this page!
(1) Posted by Mario Richter [Sunday, Jun 5, 2011 00:10]

popeye's performance once again


For comparison purposes I've tried to solve the following problem with popeye:
Borislav Stojanovic
(8) Mat Plus Review 03/2007
(= 2+15 )

h#13

After 9 hours without any noticeable progress I've cancelled the popeye session (Popeye Windows-32Bit v4.55 (1342 MB)).
Now my question: can somebody please repeat this test on his platform (perhaps my computer - Pentium IV, 3GHz, 2GByte RAM - is simply too old). Even better would be if somebody with access to WinChloe or Alybadyx can check, how long these programs need to solve the above problem.
Thanks in advance,

mario

P.S.: The input I used was:

anfang
Steine
Weiss Bh2 Kh1
Schwarz Lb7 Bf7 Kh4 Be3 Sf3 Bh3 Ba2 Bb2 Bd2 Be2 Da1 Tb1 Lc1 Td1 Sg1
forderung h#13
ende
 
(Read Only)pid=6983
(2) Posted by Dan Meinking [Sunday, Jun 5, 2011 10:52]; edited by Dan Meinking [11-06-05]

@Mario:

Since we know the play must begin 1.Se1+ Kxg1 2.Ba6/Bc8/Bh1 K(x)h1, I tested this in a few seconds as h#11. Popeye only finds a solution in the 2.Bc8 line:

BeginProblem
Protocol C:FancyFancypy.txt
Pieces
White Ph2 Kh1
Black Pf7 Bc8 Kh4 Pe3 Ph3 Pa2 Pb2 Pd2 Pe2 Qa1 Rb1 Bc1 Rd1 Se1
Stipulation h#11
Option MaxSolutions 10 MoveNumbers
EndProblem

Popeye Windows-32Bit v4.55 (256 MB)

1 (Se1-g2 + Time = 4.672 s)
2 (Se1-f3 + Time = 4.672 s)
3 (Se1-d3 + Time = 4.672 s)
4 (Se1-c2 + Time = 4.672 s)
5 (Kh4-h5 Time = 4.672 s)
6 (Kh4-g4 Time = 7.953 s)
7 (Kh4-g5 Time = 8.250 s)
8 (Kh4-g3 Time = 9.375 s)
9 (f7-f5 Time = 9.375 s)
1.f7-f5 Kh1-g1 2.f5-f4 Kg1-h1 3.f4-f3 Kh1-g1 4.f3-f2 + Kg1-h1 5.f2-f1=S Kh1-g1 6.Se1-c2 Kg1-h1 7.e2-e1=R Kh1-g1 8.e3-e2 Kg1-f2 9.Sf1-g3 Kf2-f3 10.Bc8-g4 + Kf3-f4 11.Bg4-h5 h2*g3 #
10 (f7-f6 Time = 36.484 s)
11 (Bc8-a6 Time = 36.484 s)
12 (Bc8-b7 + Time = 36.484 s)
13 (Bc8-g4 Time = 36.500 s)
14 (Bc8-f5 Time = 36.500 s)
15 (Bc8-e6 Time = 36.500 s)
16 (Bc8-d7 Time = 36.500 s)

solution finished. Time = 36.500 s
 
 
(Read Only)pid=6984
(3) Posted by Torsten Linß [Sunday, Jun 5, 2011 20:12]

Apparently, wPh2 must not be captured. You can tell Popeye to keep a piece for mating with the option "keepmatingpiece".
In German it's "HalteMattsetzendenStein", or "halte" for short.

Here is the input I used to find the solution in 16 sec using version 4.37:
anfang
Steine
Weiss Bh2 Kh1
Schwarz Lb7 Bf7 Kh4 Be3 Sf3 Bh3 Ba2 Bb2 Bd2 Be2 Da1 Tb1 Lc1 Td1 Sg1
forderung h#13
opti halte zugn
ende

For long helpmates, one may try option "intelligent". Though, in the present case this is not very successful...

Torsten
 
   
(Read Only)pid=6985
(4) Posted by Mario Richter [Sunday, Jun 5, 2011 23:25]

 QUOTE 
... the play must begin 1.Se1+ Kxg1

This was exactly my point, Dan. And even if one omits only the first black and white single move, thus specifying

BeginProblem
Pieces
White Ph2 Kg1
Black Pf7 Bb7 Kh4 Pe3 Ph3 Pa2 Pb2 Pd2 Pe2 Qa1 Rb1 Bc1 Rd1 Se1
Stipulation h#12
Option MaxSolutions 10 MoveNumbers
EndProblem

the solution terminates (as expected) after approx. 24 seconds. So why does prefixing the h#12 with a forced sequence so dramatically change the solving behaviour of popeye?

Even more strange: if the above problem is solved alone, the solution is found, but if it is combined with the h#11, popeye claims, that the h#12 has no solution:

BeginProblem
Protocol long_hm3.pyo
Pieces
White Ph2 Kh1
Black Pf7 Bc8 Kh4 Pe3 Ph3 Pa2 Pb2 Pd2 Pe2 Qa1 Rb1 Bc1 Rd1 Se1
Stipulation h#11
Option MaxSolutions 10 MoveNumbers
Next

Pieces
White Ph2 Kg1
Black Pf7 Bb7 Kh4 Pe3 Ph3 Pa2 Pb2 Pd2 Pe2 Qa1 Rb1 Bc1 Rd1 Se1
Stipulation h#12
Option MaxSolutions 10 MoveNumbers
EndProblem

To me it looks like a bug in popeye (most probably some trouble with the hashing mechanism or some not correctly initialized variable).

@Torsten
I was talking about popeye version 4.55 (i.e the most current official version), and in fact I even checked the behaviour for some older versions (including 4.47), but not as far back as to version 4.37. Would be a little bit time consuming if one would repeat a test with all predecessor versions of popeye every time opeye shows some unexpected behaviour ...
 
   
(Read Only)pid=6987
(5) Posted by Geoff Foster [Sunday, Jun 5, 2011 23:51]

There is a bug with the "next" command in v4.55. I found the bug when, like Mario, I was testing shorter versions of a problem. Thomas Maeder has fixed the bug in the development version of Popeye.
 
   
(Read Only)pid=6988
(6) Posted by Frank Richter [Monday, Jun 6, 2011 07:56]

I solved this h#13 just for comparison with Gustav 3.2d (PC 1.8 GHz, 800 MB hash memory).
Solution was found in brute force mode after 1.82 sec.
 
   
(Read Only)pid=6989
(7) Posted by Torsten Linß [Monday, Jun 6, 2011 12:20]; edited by Torsten Linß [11-06-06]

Strictly speaking, the sequence 1.Se1+ Kxg1 is *not* forced. There is the alternative 1.Sxh2 Kxh2 and Popeye checks this. Of course, in *orthodox* chess no mate will be possible. However, Popeye is a fairy chess program and there are fairy conditions where a single king can mate. Therefore, the user should tell Popeye to keep this extra piece for mating. BTW, the option "KeepMatingPiece" is available *since* version 3.37.

@FRi: Gustav kennt keine Märchen, weshalb das natürlich fest implementiert ist...
 
   
(Read Only)pid=6991
(8) Posted by Mario Richter [Monday, Jun 6, 2011 13:38]

Hi Torsten,

what hidden side effects (of the semantics of "KeepMatingPiece") prevent the programmers of popeye from adding a line like

IF (no_fairy_condition AND (stip==some_kind_of_mate) ) THEN set_option(KeepMatingPiece)

to the program (somewhere near the place where the input processing of a problem has been finished)?
 
   
(Read Only)pid=6992
(9) Posted by Torsten Linß [Tuesday, Jun 14, 2011 22:35]

That's a possibility. Thanks for the suggestion!
 
   
(Read Only)pid=7017
(10) Posted by Ian Shanahan [Saturday, Jun 18, 2011 17:36]

Torsten, I've noticed that Popeye also examines moves where the King walks into check. Couldn't these likewise be eliminated?
 
   
(Read Only)pid=7019
(11) Posted by Thomas Maeder [Sunday, Jun 19, 2011 12:51]

 QUOTE 
I've noticed that Popeye also examines moves where the King walks into check. Couldn't these likewise be eliminated?


The examination of such moves is supposed to take virtually zero time (more precisely: the time required to detect the self-check). Do you have reason to believe that it takes more time?
 
 
(Read Only)pid=7021
(12) Posted by Thomas Maeder [Sunday, Jun 19, 2011 12:53]

 QUOTE 
what hidden side effects (of the semantics of "KeepMatingPiece") prevent the programmers of popeye from adding a line like

IF (no_fairy_condition AND (stip==some_kind_of_mate) ) THEN set_option(KeepMatingPiece)

to the program (somewhere near the place where the input processing of a problem has been finished)?


Counting pieces obviously takes some time, but that time is normally negligible.

Could you please post a feature request on http://sourceforge.net/tracker/?func=browse&group_id=200122&atid=972240 ? Thanks!
 
   
(Read Only)pid=7022
(13) Posted by Mario Richter [Monday, Jun 20, 2011 13:28]

 QUOTE 
Counting pieces obviously takes some time, but that time is normally negligible.

As long as you do not allow to specify a specific piece as the one that should survive as the mating piece, simple capture counting is enough (so this "takes some time" reduces to the cost of not much more then two processor instructions).

 QUOTE 
Could you please post a feature request on http://sourceforge.net/tracker/?func=browse&group_id=200122&atid=972240 ?

Nevertheless, it costs some extra time, and so the question is: Is the extra comfort (not to add the line 'option KeepMatingPiece' to popeye's input by hand) worth this extra time?

I'm not a regular user of popeye (my main area of interest is retrograde analysis), so requesting a feature that I will perhaps never use, seems to be a little bit inappropriate.
But if some regular user of popeye thinks, that this feature would be desirable, then he is invited to do such a request.
 
 
(Read Only)pid=7023

No more posts


MatPlus.Net Forum Internet and Computing popeye's performance once again