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.[Houdini and] IvanHoe 999963 both crash (albeit at different times; Ivan crashes just after "position fen ..."
Houdini Engine Origins
Re: Houdini Engine Origins
Re: Houdini Engine Origins
Well, Shredder 12 freezes at the same time as IvanHoe, so maybe that is the normal behavior.BB+ wrote: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.[Houdini and] IvanHoe 999963 both crash (albeit at different times; Ivan crashes just after "position fen ..."
Most engines seem to either just reject it or analyze it normally.
I'll test some more illegal positions.
Peter
Re: Houdini Engine Origins
position fen 8/8/5K2/5P2/4PkP1/5PP1/4PP2/8 b - - 0 1
go infinite
IvanHoe 999963: no output until "stop" is sent, then
Houdini 1.01:
Naum 4.2:
Stockfish 2.0.1:
position fen KK6/kk6/8/8/8/8/8/8 w - - 0 1
IvanHoe 999963: crashes with a *** ERRORE *** message
Houdini 1.01:
Naum 4.2: I sent the "go infinite" command and it actually started analyzing!
Stockfish 2.0.1:
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.
Peter
go infinite
IvanHoe 999963: no output until "stop" is sent, then
Code: Select all
bestmove NULL
Code: Select all
info depth 0 seldepth 1 score mate 0 time 0 nodes 0 nps 0 pv
bestmove NULL
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
Code: Select all
info depth 1 score mate 0
info nodes 0 nps 0 time 22
<I send "stop" command>
bestmove (none) ponder (none)
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
Code: Select all
...
<I send "stop" command>
bestmove b8b7
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)
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.
Peter
-
- Site Admin
- Posts: 1226
- Joined: Wed Jun 09, 2010 7:49 am
- Real Name: Jeremy Bernstein
- Location: Berlin, Germany
- Contact:
Re: Houdini Engine Origins
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.
Re: Houdini Engine Origins
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
Peter
-
- Site Admin
- Posts: 1226
- Joined: Wed Jun 09, 2010 7:49 am
- Real Name: Jeremy Bernstein
- Location: Berlin, Germany
- Contact:
Re: Houdini Engine Origins
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.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.
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
-
- Site Admin
- Posts: 1226
- Joined: Wed Jun 09, 2010 7:49 am
- Real Name: Jeremy Bernstein
- Location: Berlin, Germany
- Contact:
Re: Houdini Engine Origins
No comment from the developer?
Re: Houdini Engine Origins
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: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.
.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.
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.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
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.
-
- Site Admin
- Posts: 1226
- Joined: Wed Jun 09, 2010 7:49 am
- Real Name: Jeremy Bernstein
- Location: Berlin, Germany
- Contact:
Re: Houdini Engine Origins
Ideas don't result in _identical_ output in a machine with the complexity of a chess engine. Nothing but code does.Prima wrote:There's no doubt that Houdini 1.0 has ideas from Ippolit.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.
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.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?
Re: Houdini Engine Origins
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.Jeremy Bernstein wrote: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
How is Strelka then a clone of Rybka that supposedly don't have Fruit codes in it?"100% original at the source code level..."
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.