Houdini and Gaviota Tablebases

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

User avatar
Houdini
Posts: 1471
Joined: Tue Mar 16, 2010 12:00 am

Re: Houdini and Gaviota Tablebases

Post by Houdini »

BubbaTough wrote:Perhaps it should avoid this behavior when in analysis mode (time = inf).

-sam
Yes, that's a good suggestion.

Upon reflection, the current behavior is an expression of "contempt" for the opponent. Instead of creating a new UCI option I should link it to the current "Contempt" level. With Contempt 0 or in analysis mode without "analysis_contempt" the behavior should be disabled.

Another useful idea is that I force a score of 0.00 in the output. The user would get the full PV with the correct draw score. This would make Houdini's behaviour easier to understand.

Robert
pawnslinger
Posts: 42
Joined: Thu Jan 06, 2011 9:10 pm
Location: Mesa, AZ USA

Re: Houdini and Gaviota Tablebases

Post by pawnslinger »

Houdini wrote:
BubbaTough wrote:Perhaps it should avoid this behavior when in analysis mode (time = inf).

-sam
Yes, that's a good suggestion.

Upon reflection, the current behavior is an expression of "contempt" for the opponent. Instead of creating a new UCI option I should link it to the current "Contempt" level. With Contempt 0 or in analysis mode without "analysis_contempt" the behavior should be disabled.

Another useful idea is that I force a score of 0.00 in the output. The user would get the full PV with the correct draw score. This would make Houdini's behaviour easier to understand.

Robert
After playing with the tb for a day or two, I have some ideas to add:

1. If the starting position _is_ found in the tb, and contempt analysis is disabled, then as you suggest.

2, If the starting position has more than the number of pieces than the tb supports, i.e. 6 > 5, then go ahead with the analysis as it is, but some more information on the hits in the tb would be nice. For example, I just showed an analysis in another thread here where the starting position had 8 pieces and after 7 minutes Houdini was showing > 360,000 tb hits. It would be very nice to have some breakdown on those hits: how many hits were on the critical line? And how many hits showed win vs draw?

Something like this: tb=369543,210123,15,4,80

Where: 369543 is the total hit count
210123 is the critical path hit count, critical path = pv
15 is the white win percentage
4 is the draw percentage
80 is the black win percentage

It is easy to say that these numbers would be nice to have, but as a retired programmer, I know that it would not be so simple to accumulate the statistics, especially if the pv changes late in the analysis.

Just some food for thought.

Thanks for the work you have done to produce Houdini... I like it very much.
User avatar
Houdini
Posts: 1471
Joined: Tue Mar 16, 2010 12:00 am

Re: Houdini and Gaviota Tablebases

Post by Houdini »

Edwin,

Like you said, getting statistics about the tbhits occurring in the PV would be very difficult, the PV is a very volatile concept.

On the other hand, the general win/draw/win statistics are fairly easy to count. My only fear is that the GUI will not allow an engine to send a text string like "369543,15,4,80" in the tbhits output, the UCI protocol expects a single number.

Robert
pawnslinger
Posts: 42
Joined: Thu Jan 06, 2011 9:10 pm
Location: Mesa, AZ USA

Re: Houdini and Gaviota Tablebases

Post by pawnslinger »

I couldn't resist. I just downloaded the uci spec, and found this under the "info" command...
* string <str>
any string str which will be displayed be the engine,
if there is a string command the rest of the line will be interpreted as <str>.
I am not sure what the GUI would do with this... would it just add it to the analysis display? If so, you could add the tablebase information to the display in that manner.

Would that work?

Sincerely,
Ed
pawnslinger
Posts: 42
Joined: Thu Jan 06, 2011 9:10 pm
Location: Mesa, AZ USA

Re: Houdini and Gaviota Tablebases

Post by pawnslinger »

Okay, the number of hits found in the pv is hard to get at... maybe it would be interesting to simply know if the position reached at the end of the pv (as displayed) is a tb hit or not, and if so, what was the tb result: white wins, draw, black wins. To get this information now, one would have to actually make the moves on the board in a gui other than Chessbase, such as Winboard w/Gaviota and the "Book" option.

Maybe this extra information could be displayed if Houdini had a "verbose" mode, for each variation displayed. As they say where I come from (Missouri), it would be "hog heaven".
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: Houdini and Gaviota Tablebases

Post by michiguel »

pawnslinger wrote:Okay, the number of hits found in the pv is hard to get at... maybe it would be interesting to simply know if the position reached at the end of the pv (as displayed) is a tb hit or not, and if so, what was the tb result: white wins, draw, black wins. To get this information now, one would have to actually make the moves on the board in a gui other than Chessbase, such as Winboard w/Gaviota and the "Book" option.
I think this is a problem with the GUI and not the engine. In UCI, the GUI is supposed to support this options independently of the engine. If the GUI does not do it, the engine cannot do much about it. In the winboard protocol, this type of interaction is possible.

Miguel
Maybe this extra information could be displayed if Houdini had a "verbose" mode, for each variation displayed. As they say where I come from (Missouri), it would be "hog heaven".
pawnslinger
Posts: 42
Joined: Thu Jan 06, 2011 9:10 pm
Location: Mesa, AZ USA

Re: Houdini and Gaviota Tablebases

Post by pawnslinger »

I confess, I don't know what options that Chessbase supports... I know it uses the Nalimov tb, so getting information about the GTB is not likely. But still, even in other GUI, such as Winboard, to get to the end of the pv, to get the "Book" display, one would have to make the moves on-board... for a long pv, this could be quite onerous. If one was looking at multiple variations, it could be quite time consuming as well.

Or, perhaps I misunderstood. Do you mean that Chessbase wouldn't support the UCI "info string" command??
Jouni
Posts: 3621
Joined: Wed Mar 08, 2006 8:15 pm
Full name: Jouni Uski

Re: Houdini and Gaviota Tablebases

Post by Jouni »

There is a HUGE difference to Critter in displayed gaviota hits. In same position after 1 minute:

[d]8/8/2N4p/p5kP/P1K5/1P6/8/4b3 w - -

Analysis by Critter 0.90 64-bit:

1.Nxa5 Kf5 2.Nc6 Ke6 3.b4 Kd6 4.b5 Bf2 5.a5 Kd7 6.a6 Kc7 7.Ne7 Kb6 8.Nf5 Ka7 9.Nxh6 Bg3 10.Nf5 Be5 11.h6 Kb6 12.h7 Bh8 13.Nd4 Bg7 14.Nc6 Bf6 15.a7 Kb7 16.Kd5 Bh8
+- (8.55) Depth: 24/55 00:01:04 254mN, tb=91896

Analysis by Houdini 1.5a x64:

1.Nxa5 Bxa5 2.b4 Bb6 3.a5 Bf2 4.b5 Kxh5 5.b6 Kg5 6.Kb5 h5 7.a6 h4 8.a7 h3 9.a8Q Bg3 10.Qd5+ Kh4 11.b7 h2 12.Qe4+ Kh5 13.Qg2 Bc7 14.Qd5+ Kg6 15.Qc6+ Kg5 16.Qxc7 h1Q
+- (9.85) Depth: 22/62 00:01:00 246mN

May be Hard/Soft_Probe_Depth are too high - what are they actually meaning, Robert?

Jouni
User avatar
Houdini
Posts: 1471
Joined: Tue Mar 16, 2010 12:00 am

Re: Houdini and Gaviota Tablebases

Post by Houdini »

Jouni wrote:There is a HUGE difference to Critter in displayed gaviota hits. In same position after 1 minute:

...

May be Hard/Soft_Probe_Depth are too high - what are they actually meaning, Robert?

Jouni
Tablebase hits are no goal in se, as you see Houdini doesn't really need the tablebases for winning this position.

Hard_Probe_Depth is the earliest search depth at which the EGTB probing will result in a disk access.
Soft_Probe_Depth is the earliest search depth for EGTB probing that uses only the memory cache.

Houdini adds an additional depth factor depending on the usefulness of the tablebases, for example KQQQK will be probed *much* later than KRPKR.

Robert