Houdini Engine Origins

Discussion about chess-playing software (engines, hosts, opening books, platforms, etc...)
Post Reply
BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Houdini Engine Origins

Post by BB+ » Thu Jan 20, 2011 5:48 pm

[Houdini and] IvanHoe 999963 both crash (albeit at different times; Ivan crashes just after "position fen ..."
I think early IvanHoes (and IPPOLIT) would simply exit [not quite the same as "crashing", but indistinguishable usually] when an invalid position was given. The later ones seem not to do so (though they still do if you corrupt the FEN itself). I'm not sure what one should expect from an engine on invalid input. If an engine returned "c8h3" (as per HIARCS in some cases), I would be more suspicious. :)

Peter C
Posts: 154
Joined: Thu Jun 10, 2010 3:12 am
Real Name: Peter C

Re: Houdini Engine Origins

Post by Peter C » Thu Jan 20, 2011 6:30 pm

BB+ wrote:
[Houdini and] IvanHoe 999963 both crash (albeit at different times; Ivan crashes just after "position fen ..."
I think early IvanHoes (and IPPOLIT) would simply exit [not quite the same as "crashing", but indistinguishable usually] when an invalid position was given. The later ones seem not to do so (though they still do if you corrupt the FEN itself). I'm not sure what one should expect from an engine on invalid input. If an engine returned "c8h3" (as per HIARCS in some cases), I would be more suspicious. :)
Well, Shredder 12 freezes at the same time as IvanHoe, so maybe that is the normal behavior. :P

Most engines seem to either just reject it or analyze it normally.

I'll test some more illegal positions.

Peter

Peter C
Posts: 154
Joined: Thu Jun 10, 2010 3:12 am
Real Name: Peter C

Re: Houdini Engine Origins

Post by Peter C » Thu Jan 20, 2011 7:11 pm

position fen 8/8/5K2/5P2/4PkP1/5PP1/4PP2/8 b - - 0 1
go infinite

IvanHoe 999963: no output until "stop" is sent, then

Code: Select all

bestmove NULL
Houdini 1.01:

Code: Select all

info depth 0 seldepth 1 score mate 0 time 0 nodes 0 nps 0 pv
bestmove NULL
Naum 4.2:

Code: Select all

info depth 1 seldepth 1
info score cp 0 depth 1 seldepth time 0 nodes 1 nps 1000 tbhits 0 pv
<I send "stop" command>
bestmove 0000
Stockfish 2.0.1:

Code: Select all

info depth 1 score mate 0
info nodes 0 nps 0 time 22
<I send "stop" command>
bestmove (none) ponder (none)
position fen KK6/kk6/8/8/8/8/8/8 w - - 0 1

IvanHoe 999963: crashes with a *** ERRORE *** message

Houdini 1.01:

Code: Select all

ERROR: Invalid position - ONE white king required
Internal board reset to start position
Naum 4.2: I sent the "go infinite" command and it actually started analyzing!

Code: Select all

...
<I send "stop" command>
bestmove b8b7
Stockfish 2.0.1:

Code: Select all

<I send "go infinite" command>
info depth 1 score mate 0
info nodes 0 nps 0 time 5
<I send "stop" command">
bestmove (none) ponder (none)
All other illegal positions I tried get one of these two responses, usually the second one (although Houdini's error message changes).
I can conclude:
The UCI parsers of Houdini and IvanHoe aren't particularly similar, although they show signs of some similarity.
Stockfish and Naum have either very robust or very dumb UCI parsers. :P

Peter

Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Re: Houdini Engine Origins

Post by Jeremy Bernstein » Fri Jan 21, 2011 12:56 pm

I'm not sure that comparing UCI or even FEN parsers is particularly telling, when looking for similarities. Positive hits don't really indicate much (the engine developer might have compared his failure handling to that of other developers, or used open-source UCI parser code in use by many developers). Negative hits don't tell us much either. Indications that the engines being compared are searching or evaluating similarly are a) a greater indication of internal identity and b) more relevant to the actual performance/behavior of the engine.

Peter C
Posts: 154
Joined: Thu Jun 10, 2010 3:12 am
Real Name: Peter C

Re: Houdini Engine Origins

Post by Peter C » Fri Jan 21, 2011 5:11 pm

How the engine behaves in illegal positions can be a good indicator of cloneness. For instance, Rybka outputs a1a1 in most illegal positions, so it's pretty easy to detect a Rybka clone. Unfortunately, IvanHoe just crashes in most illegal positions and Houdini seems to validate the FEN for legality, so my test didn't really tell us anything.

Peter

Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Re: Houdini Engine Origins

Post by Jeremy Bernstein » Thu Jan 27, 2011 11:19 am

Prima wrote:Here's the glitch; Though Robert Houdart authors Houdini and used ideas from IppoLit, he didn't decompile Rybka. Base on the fact that an accusation was made by Vasik Rajlich but failed to support such "clone claim", I'm now sure that the IppoLit authors did not decompiled Rybka 3. It is unfair to lump Houdini with the Rybka-Fruit issue.

[...]

Another pointer; The "claimed decompiled" Rybka 3 is about 55 ELO weaker than Rybka 4. Houdini 1.5/a is estimated to be roughly 70+ (some tests have it at 50+)ELO over Rybka 4. Paired against Rybka 3, Houdini 1.5/a is roughly 105 ELO over the "claimed-clone" Rybka 3. Where did this increase over Rybka 3 & 4 come from? Lets' assume Robert Houdart actually stole ideas; where did he steal this ideas or 70+ ELO (and 105 Elo over Rybka 3) from? There is currently no engine stronger than Houdini 1.5 itself for Robert Houdart to steal ideas from. It is highly unlikely that a clone of Rybka 3 surpasses its parent, let alone an updated version of Rybka4 which is an updated version.

Robert Houdini deserves a big credit for his genuine work that apparently yeilds greater ELO.
I am talking about Houdini 1.0, and I am talking about the obvious Ippolit origin of Houdini 1.0, based on the engine output posted previously in this thread. I give Robert Houdart great credit for understanding the code he started with, and developing it further and better than anyone else. But that's not the point: Houdini is (or was) Ippolit at the basic level of search and evaluation. As such, it's absolutely fair game to lump it in with the rest of the Ippolit derivatives. I don't care if it performs worse than R3 or better than the cluster.

OK, you say, but that was Houdini 1.0. What about Houdini 1.5a? And I say, hell if I know -- I haven't tested it. I believe that Mr. Houdart, when he realized that he hadn't obfuscated the origins of his engine enough (after I posted similar evaluation output on the day of the release of Houdini 1.0 and others noticed, as well), rewrote some of the search and evaluation to ensure different output. I haven't tested this, though, to be sure. But it's the same issue as Rybka 1.0 beta v. Rybka 4. How much Fruit is left? Who knows? But if R1 had its roots in Fruit, R4, as a derivative of R1, carries the "stain", as well. If Houdini 1.0 had its roots in Ippolit, then 1.5a does, too.

What's good for Rybka is good for Ippolit is good for Houdini (that is, Ippolit derivatives). I say, let them all play. If you decry Ippolit as a clone, you have to decry Houdini as the same. If you decry Ippolit as a clone, though, you probably have to decry Rybka as one, as well.

Jeremy

Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Re: Houdini Engine Origins

Post by Jeremy Bernstein » Thu Jan 27, 2011 10:09 pm

No comment from the developer?

Prima
Posts: 328
Joined: Tue Dec 14, 2010 6:12 am

Re: Houdini Engine Origins

Post by Prima » Thu Jan 27, 2011 11:41 pm

Jeremy Bernstein wrote:I am talking about Houdini 1.0, and I am talking about the obvious Ippolit origin of Houdini 1.0, based on the engine output posted previously in this thread.
There's no doubt that Houdini 1.0 has ideas from Ippolit. The author clearly acknowledged this, so that outputs from Houdini 1.0 and Ippolit is not surprising.
Jeremy Bernstein wrote: As such, it's absolutely fair game to lump it in with the rest of the Ippolit derivatives
.

All okay. But keep in mind that lumping Houdini (1.0?) to Ippolit doesn't mean it came from a decompiled Rybka 3. It still doesn't change the fact that Vas is legally and morally obligated to support his infamous Rybka3-Ippolit clone claim....if he wants to be taken seriously. To date, or close to 2yrs, this still hasn't been done. So even lumping Houdini (1.0?) with Ippo doesn't prove wrong-doing on the part of Houdini, other than ideas used - which was/is acknowledged.
Jeremy Bernstein wrote:OK, you say, but that was Houdini 1.0. What about Houdini 1.5a? And I say, hell if I know -- I haven't tested it. I believe that Mr. Houdart, when he realized that he hadn't obfuscated the origins of his engine enough (after I posted similar evaluation output on the day of the release of Houdini 1.0 and others noticed, as well), rewrote some of the search and evaluation to ensure different output. I haven't tested this, though, to be sure. But it's the same issue as Rybka 1.0 beta v. Rybka 4. How much Fruit is left? Who knows? But if R1 had its roots in Fruit, R4, as a derivative of R1, carries the "stain", as well. If Houdini 1.0 had its roots in Ippolit, then 1.5a does, too
.

I'm not aware though about any obfuscation on the part of Robert Houdart. I'll rather leave that to him. However, rewriting the search of a program occurs commonly among engine authors. Rewriting is usually done to improve its search function, or attempting to rewrite it in another language etc.

Jeremy Bernstein wrote:What's good for Rybka is good for Ippolit is good for Houdini (that is, Ippolit derivatives). I say, let them all play. If you decry Ippolit as a clone, you have to decry Houdini as the same. If you decry Ippolit as a clone, though, you probably have to decry Rybka as one, as well.

Jeremy
The key point here is, there is no established relation between Ippolit and Rybka. Just speculations. I do agree with you that if one cries Ippolit as a clone, Rybka has to be treated the same way, considering its origins. The fact that some testers refused to tests Ippolit/RobboLito/IvanHoe, and now Houdini, without an ounce of evidence shows prejudice on their part. All nice and dandy.

Now that a direct correlation has been shown between Rybka 1.0 (and safe to assume R2, R3, and R4) and Fruit, where is that moral compass so upheld by "some engine testers", 'certain' forum moderators/chessbase sysops? Like you suggested, don't you think Rybka engines ought to treated the same way as the Ippolit family has been treated? So, it's either these prejudiced engine testers either remove all Rybka engines from their rating lists or include the Ippolit & family, and Houdini in them.

Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Re: Houdini Engine Origins

Post by Jeremy Bernstein » Thu Jan 27, 2011 11:54 pm

Prima wrote:
Jeremy Bernstein wrote:I am talking about Houdini 1.0, and I am talking about the obvious Ippolit origin of Houdini 1.0, based on the engine output posted previously in this thread.
There's no doubt that Houdini 1.0 has ideas from Ippolit.
Ideas don't result in _identical_ output in a machine with the complexity of a chess engine. Nothing but code does.
Now that a direct correlation has been shown between Rybka 1.0 (and safe to assume R2, R3, and R4) and Fruit, where is that moral compass so upheld by "some engine testers", 'certain' forum moderators/chessbase sysops?
I think it's a bit early to say that a direct correlation has been shown. There are (and have been for a long time) indications, and Fabien appears to be assessing the data that's been made available. I assume he'll have something more specific to say when he's ready, and it's best to let him take his time and make a well-informed determination. But don't hold your breath: ChessBase and ChessOK (Convekta) are distributors and business partners of Vasik Rajlich; PlayChess is a wholly-owned subsidiary of ChessBase. People like Graham, Mr. Muller and Mr. Szots are so far down the road of "intellectual dishonesty" (although the word intellectual is difficult to justify here) that there's really no chance of them making a reversal, whether or not they are compromised through gifts of complimentary software in return for their testing. I wouldn't expect any massive changes to the current computer-chess-political landscape, but there's no harm in working toward it.

Prima
Posts: 328
Joined: Tue Dec 14, 2010 6:12 am

Re: Houdini Engine Origins

Post by Prima » Fri Jan 28, 2011 12:22 am

Jeremy Bernstein wrote:Ideas don't result in _identical_ output in a machine with the complexity of a chess engine. Nothing but code does.
By your own assessment here, don't you see this applicable in the Fruit-Rybka issue? The same also applies to Rybka 1.0 with regards to Fruit 2.1: Ideas don't result in _identical_ output in a machine with the complexity of a chess engine. Nothing but code does.

Let's, for one moment, ignore the evidence of Rybka as a Fruit clone provided by the professionals. The damning evidence also came from Vas himself; when he claimed Strelka 2.0 as his own source code. Strelka was and has recently been proven and recently re-examined to have lots of Fruit 2.1 code in it. Since Vas denied using Fruit code in Rybka, stating, and I quote here
"100% original at the source code level..."
How is Strelka then a clone of Rybka that supposedly don't have Fruit codes in it?

Jeremey, no matter how one (not you in particular) bends this against Ippolits & co., the same logic and predicaments applies to Rybka in a direct fashion.

Post Reply