Surprise...

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: Surprise...

Post by Houdini »

LOL, this is actually a good joke.
Congrats :).

Robert
gerold
Posts: 10121
Joined: Thu Mar 09, 2006 12:57 am
Location: van buren,missouri

Re: Surprise...

Post by gerold »

Houdini wrote:LOL, this is actually a good joke.
Congrats :).

Robert
Thanks for the great program Robert. Maybe Houdini 3 will be free :-)
User avatar
Houdini
Posts: 1471
Joined: Tue Mar 16, 2010 12:00 am

Re: Surprise...

Post by Houdini »

gerold wrote:Maybe Houdini 3 will be free :-)
No, I doubt that Houdini 3 will be free.

You probably don't realize how time-consuming the development of a top engine is. As a (rather successful) software architect and consultant, the time I spend on Houdini actually costs me money - in a real, not virtual way.
Without going commercial, Houdini 2 would certainly have been the last version (and maybe I wouldn't even have released it...).

It's what software pirates fail to understand, by denying the engine authors revenues they actually kill off the very thing they are enjoying.

Robert
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: Surprise...

Post by Don »

Alexander Schmidt wrote:Houdini is based on Fruit.

I know, some of you don't like my kind of analysis. But after Rybka turned out to be a Fruit clone my hit rate is still 100%.

For the new readers: Based on the UCI output it is possible to compare UCI engines. The UCI output is not restricted how it sends it info strings, so the placement of the strings is completely different in nearly every UCI engine. Here I wrote some more about it: http://talkchess.com/forum/viewtopic.php?t=23029

Now to Houdini. I took a quick look on it when it appeared. I wrote here that it is a clone. Noone was really interested and I didn't care much. Now Mr. Houdart wants to earn some money with it and I publish my analysis.
I think you are wrong, a LOT of people care about this. I only have so much time and it serves all the cloners best interest for me to waste my time on them instead of Komodo, so I have kept a low profile.

If you take a look, please use the oldest Houdini binary as it will be the most unchanged version and it will be the most obvious. If he is a cloner it's very likely he is going over every line of code and changing it as must as possible with each version.

I would like to see Houdart either completely exonerated and cleared or else exposed as a fraud (preferably by the FSF) - and I would welcome either development. It's just not good for us to have the top playing program with this shadow hanging over it. If he is legitimate he has the right to be cleared.

For me it is clear that Houdini is based on Fruit. Just like Rybka. I will not discuss again if this is a 100% evidence. For me it is. Maybe others want to look also at it and will find more. I guess it has also parts of the ippo family included. There is no other explenation for appearing with such a strength out of nowhere. But the basis was Fruit.
I think the best comparison is the first Houdini with Ivanhoe or Robbo.

I hope you go by much more than just the info strings, that is not convincing at all as there is nothing wrong with patterning your output based on another program.

Now to the comparism of the info strings. The order of the info strings is identical. Houdini sends additional nps (nodes per seconds) infos which is not really hard to implement. Some complete lines are disabled or sent at another place:

Fruit 2.1:

info depth 11
info depth 11 seldepth 24 score cp 23 time 842 nodes 861114 pv g1f3 b8c6 b1c3 g8f6 e2e3 d7d5 f1b5 c8g4 h2h3 g4f5 e1g1
info currmove c2c4 currmovenumber 15
info currmove f2f4 currmovenumber 16
info time 1014 nodes 1030000 nps 1015779 cpuload 1000

Houdini 1.0:

info depth 16
info time 4024 nodes 3314057 nps 823000 cpuload 467
info depth 16 seldepth 39 score cp 5 time 4493 nodes 3721786 nps 828000 pv e2e4 e7e5 g1f3 g8f6 b1c3 b8c6 f1c4 f8c5 e1g1 e8g8 d2d3 d7d6 c3a4 c5d4 c2c3 b7b5 c4b5
info currmove g1f3 currmovenumber 2
info currmove b1c3 currmovenumber 3
info time 5035 nodes 4172388 nps 828000 cpuload 486

(Although the depth is different, I compare only the output that appears at a special place, when the engine starts to send the currmove info)

The same without values:

Fruit 2.1:

depth
depth seldepth score cp time nodes pv
currmove currmovenumber
currmove currmovenumber
time nodes nps cpuload

Houdini 1.0:

depth
time nodes nps cpuload
depth seldepth score time nodes nps pv
currmove currmovenumber
currmove currmovenumber
time nodes nps cpuload

You can see that one line is doubled in houdini, the rest is nearly identical.

Realize that all this strings can appear at every place in the UCI output. There are no restrictions. How likely is this to happened perchance?

Also realize that this output looks different at different positions. In another position it looks like this:


Fruit 2.1:

2011-09-06 21:56:57,318<--1:info depth 34
2011-09-06 21:56:57,333<--1:info time 1014 nodes 3280000 nps 3234714 cpuload 1000
2011-09-06 21:56:57,349<--1:info depth 34 seldepth 33 score mate 10 time 1029 nodes 3342737 pv b7b6 h7g7 b6c6 g7f7 b5b6 f7e7 b6b7 e7f7 b7b8q f7g7 c6c5 g7f7 c5d6 f7g7 d6e6 g7h7 e6f6 h7h6 b8h8
2011-09-06 21:56:57,365<--1:info currmove b7c6 currmovenumber 2
2011-09-06 21:56:57,365<--1:info currmove b7c7 currmovenumber 3
2011-09-06 21:56:57,380<--1:info currmove b7a6 currmovenumber 4
2011-09-06 21:56:57,380<--1:info currmove b7c8 currmovenumber 5
2011-09-06 21:56:57,380<--1:info currmove b7a7 currmovenumber 6
2011-09-06 21:56:57,396<--1:info currmove b7b8 currmovenumber 7
2011-09-06 21:56:57,396<--1:info currmove b7a8 currmovenumber 8
2011-09-06 21:56:57,396<--1:info depth 34 seldepth 33 time 1029 nodes 3343751 nps 3249515
2011-09-06 21:56:57,411<--1:info depth 35
2011-09-06 21:56:57,411<--1:info currmove b7b6 currmovenumber 1
2011-09-06 21:56:57,411<--1:info depth 35 seldepth 33 score mate 10 time 1076 nodes 3520447 pv b7b6 h7g7 b6c6 g7f7 b5b6 f7e7 b6b7 e7f7 b7b8q f7g7 c6c5 g7f7 c5d6 f7g7 d6e6 g7h7 e6f6 h7h6 b8h8
2011-09-06 21:56:57,427<--1:info currmove b7c6 currmovenumber 2
2011-09-06 21:56:57,443<--1:info currmove b7c7 currmovenumber 3
2011-09-06 21:56:57,443<--1:info currmove b7a6 currmovenumber 4
2011-09-06 21:56:57,443<--1:info currmove b7c8 currmovenumber 5
2011-09-06 21:56:57,443<--1:info currmove b7a7 currmovenumber 6
2011-09-06 21:56:57,458<--1:info currmove b7b8 currmovenumber 7
2011-09-06 21:56:57,458<--1:info currmove b7a8 currmovenumber 8
2011-09-06 21:56:57,458<--1:info depth 35 seldepth 33 time 1076 nodes 3521461 nps 3272733
2011-09-06 21:56:57,474<--1:info depth 36

Houdini 1.0:

2011-09-06 21:57:21,681<--1:info depth 61
2011-09-06 21:57:21,747<--1:info time 4007 nodes 10707165 nps 2672000 cpuload 482
2011-09-06 21:57:21,779<--1:info depth 61 seldepth 45 score mate 10 time 4040 nodes 10798666 nps 2672000 pv b7b6 h7g7 b6c5 g7f7 c5d6 f7g7 d6e7 g7h7 b5b6 h7h6 e7f6 h6h7 b6b7 h7h6 b7b8q h6h7 b8a7 h7h6 a7g7
2011-09-06 21:57:21,794<--1:info currmove b7c6 currmovenumber 2
2011-09-06 21:57:21,799<--1:info currmove b7c7 currmovenumber 3
2011-09-06 21:57:21,804<--1:info currmove b7c8 currmovenumber 4
2011-09-06 21:57:21,809<--1:info currmove b7a6 currmovenumber 5
2011-09-06 21:57:21,814<--1:info currmove b7b8 currmovenumber 6
2011-09-06 21:57:21,819<--1:info currmove b7a7 currmovenumber 7
2011-09-06 21:57:21,824<--1:info currmove b7a8 currmovenumber 8
2011-09-06 21:57:21,829<--1:info depth 62
2011-09-06 21:57:21,834<--1:info currmove b7b6 currmovenumber 1
2011-09-06 21:57:21,898<--1:info depth 62 seldepth 45 score mate 10 time 4158 nodes 11088289 nps 2666000 pv b7b6 h7g7 b6c5 g7f7 c5d6 f7g7 d6e7 g7h7 b5b6 h7h6 e7f6 h6h7 b6b7 h7h6 b7b8q h6h7 b8a7 h7h6 a7g7
2011-09-06 21:57:21,913<--1:info currmove b7c6 currmovenumber 2
2011-09-06 21:57:21,918<--1:info currmove b7c7 currmovenumber 3
2011-09-06 21:57:21,923<--1:info currmove b7c8 currmovenumber 4
2011-09-06 21:57:21,928<--1:info currmove b7a6 currmovenumber 5
2011-09-06 21:57:21,933<--1:info currmove b7b8 currmovenumber 6
2011-09-06 21:57:21,938<--1:info currmove b7a7 currmovenumber 7
2011-09-06 21:57:21,943<--1:info currmove b7a8 currmovenumber 8
2011-09-06 21:57:21,948<--1:info depth 63

(Although the depth is different, I compare only the output that appears at a special place, when the engine starts to send the currmove info)


And again without the values:


Fruit 2.1:

depth
time nodes nps cpuload
depth seldepth score time nodes pv
currmove currmovenumber 2
currmove currmovenumber 3
currmove currmovenumber 4
currmove currmovenumber 5
currmove currmovenumber 6
currmove currmovenumber 7
currmove currmovenumber 8
depth seldepth time nodes nps
depth
currmove currmovenumber 1
depth seldepth score time nodes pv
currmove currmovenumber 2
currmove currmovenumber 3
currmove currmovenumber 4
currmove currmovenumber 5
currmove currmovenumber 6
currmove currmovenumber 7
currmove currmovenumber 8
depth seldepth time nodes nps
depth


Houdini 1.0:

depth
time nodes nps cpuload
depth seldepth score time nodes nps pv
currmove currmovenumber 2
currmove currmovenumber 3
currmove currmovenumber 4
currmove currmovenumber 5
currmove currmovenumber 6
currmove currmovenumber 7
currmove currmovenumber 8
depth
currmove currmovenumber 1
depth seldepth score time nodes nps pv
currmove currmovenumber 2
currmove currmovenumber 3
currmove currmovenumber 4
currmove currmovenumber 5
currmove currmovenumber 6
currmove currmovenumber 7
currmove currmovenumber 8
depth

Realize that the info strings in Fruit come in a different order in and after a different ammount of currmove infos in different position. In Houdini they still come in the same order as in Fruit.
User avatar
Houdini
Posts: 1471
Joined: Tue Mar 16, 2010 12:00 am

Re: Surprise...

Post by Houdini »

Don wrote:I hope you go by much more than just the info strings, that is not convincing at all as there is nothing wrong with patterning your output based on another program.
I'm quite convinced the OP is very much aware of that, and has written this topic as a kind of joke...

Robert
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: Surprise...

Post by Don »

Houdini wrote:
Don wrote:I hope you go by much more than just the info strings, that is not convincing at all as there is nothing wrong with patterning your output based on another program.
I'm quite convinced the OP is very much aware of that, and has written this topic as a kind of joke...

Robert
The logic people use on these forums is so broken that I cannot distinguish when someone is serious or not. People have said things much more stupid than this and were serious.
tpetzke
Posts: 686
Joined: Thu Mar 03, 2011 4:57 pm
Location: Germany

Re: Surprise...

Post by tpetzke »

It depends on the conditions where you think it is good to output an info string. It doesn't makes sense to do that totally random or because some time has passed, this will make the behavior inconsistent within a single engine alone.

Lets look

I output an info depth ... string always when I finished searching a ply. I also output an info depth string ... in between when I have a significant fail low on the move I thought it was best so far (just to signal me that condition and that the time control will allocate more time for that move)

So an engine that implements this simple behavior will send info strings always at the same time as I do (as long as our evaluations and search behavior is similar enough to indicate significant fail lows at the same time).

So if the info strings match it might count as an indication but not as proof. And it would be very simple to trivial to change the output behavior of an engine if I wanted to disguise something. So if something was equal that is hard to change without breaking anything else this would be more convincing.

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

Re: Surprise...

Post by Houdini »

Don wrote:
Houdini wrote:
Don wrote:I hope you go by much more than just the info strings, that is not convincing at all as there is nothing wrong with patterning your output based on another program.
I'm quite convinced the OP is very much aware of that, and has written this topic as a kind of joke...

Robert
The logic people use on these forums is so broken that I cannot distinguish when someone is serious or not. People have said things much more stupid than this and were serious.
So you really didn't notice that the OP was actually making fun of the ICGA Rybka process?

He's now clearly demonstrated that you can produce any kind of irrelevant data listing and have genuine engine authors like yourself discuss it seriously...

Robert
Pablo Vazquez
Posts: 154
Joined: Thu May 31, 2007 9:05 pm
Location: Madrid, Spain

Re: Surprise...

Post by Pablo Vazquez »

Houdini 1.0

Code: Select all

Houdini w32 1_CPU
build 2010-05-15 
by Robert Houdart
go
info depth 1 seldepth 2 score cp 0  time 0 nodes 21 nps 0 pv h2h4
info depth 1 seldepth 2 score cp 3  time 0 nodes 23 nps 0 pv g2g4
info depth 1 seldepth 2 score cp 18  time 0 nodes 27 nps 0 pv e2e4
info depth 1 seldepth 2 score cp 36  time 0 nodes 38 nps 0 pv g1f3
info depth 2 seldepth 6 score cp 11  time 1 nodes 117 nps 117000 pv g1f3 b8c6 b1c3 g8f6 d2d3
info depth 3 seldepth 6 score cp 11  time 1 nodes 216 nps 216000 pv g1f3 b8c6 b1c3 g8f6 d2d3
info depth 4 seldepth 7 score cp 11  time 1 nodes 532 nps 532000 pv g1f3 b8c6 b1c3 g8f6 d2d3
info depth 5 seldepth 16 score cp 3  time 3 nodes 1269 nps 423000 pv g1f3 b8c6 b1c3 g8f6 d2d4 d7d6 h2h3 c8e6 e2e4
info depth 6
info depth 6 seldepth 16 score cp 3  time 4 nodes 1706 nps 426000 pv g1f3 b8c6 b1c3 g8f6 d2d4 d7d6 h2h3 c8e6 e2e4
info depth 7
info depth 7 seldepth 25 score cp 5  time 7 nodes 3493 nps 499000 pv g1f3 b8c6 b1c3 g8f6 e2e3 e7e6 f1d3 d7d5 a2a3
info depth 8
info depth 8 seldepth 25 score cp 4  time 11 nodes 5403 nps 491000 pv g1f3 b8c6 b1c3 g8f6 d2d3 d7d6 c1e3 c8e6 h2h3 h7h6 f3d4
info depth 9
RobboLito 0.085g3

Code: Select all

RobboLito 0.085g3 w32
Dec 22 2009 12:36:39
windows version by kranium and sentinel
go
info depth 1 seldepth 2 score cp 1  time 0 nodes 21 nps 0 pv h2h4
info depth 1 seldepth 2 score cp 6  time 0 nodes 23 nps 0 pv g2g4
info depth 1 seldepth 2 score cp 29  time 0 nodes 27 nps 0 pv e2e4
info depth 1 seldepth 2 score cp 58  time 1 nodes 38 nps 38000 pv g1f3
info depth 2 seldepth 6 score cp 19  time 1 nodes 117 nps 117000 pv g1f3 b8c6 b1c3 g8f6 d2d3
info depth 3 seldepth 6 score cp 19  time 1 nodes 216 nps 216000 pv g1f3 b8c6 b1c3 g8f6 d2d3
info depth 4 seldepth 7 score cp 19  time 2 nodes 532 nps 266000 pv g1f3 b8c6 b1c3 g8f6 d2d3
info depth 5
info depth 5 seldepth 21 score cp 6  time 4 nodes 1322 nps 330000 pv g1f3 b8c6 b1c3 g8f6 d2d4 d7d6 h2h3 c8e6 e2e4
info depth 6
info depth 6 seldepth 21 score cp 6  time 5 nodes 1758 nps 351000 pv g1f3 b8c6 b1c3 g8f6 d2d4 d7d6 h2h3 c8e6 e2e4
info depth 7
info depth 7 seldepth 25 score cp 7  time 8 nodes 3060 nps 382000 pv g1f3 b8c6 b1c3 g8f6 h2h3 d7d6 d2d3 c8e6 c1e3 h7h6 f3d4
info depth 8
info depth 8 seldepth 25 score cp 7  time 13 nodes 4198 nps 322000 pv g1f3 b8c6 b1c3 g8f6 h2h3 d7d6 d2d3 c8e6 c1e3 h7h6 f3d4
info depth 9
Alexander Schmidt
Posts: 1235
Joined: Thu May 10, 2007 2:49 pm

Re: Surprise...

Post by Alexander Schmidt »

Thanks. That's quite convincing. I didn't look at this Robbo :)