fire and other engines playing style

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

Moderators: hgm, Rebel, chrisw

User avatar
fern
Posts: 8755
Joined: Sun Feb 26, 2006 4:07 pm

Re: fire and other engines playing style

Post by fern »

Probably you are righ. As a minor chess player, surely today lot less than 2000, I am in the wrong side... :-)

Fern
User avatar
rvida
Posts: 481
Joined: Thu Apr 16, 2009 12:00 pm
Location: Slovakia, EU

Re: fire and other engines playing style

Post by rvida »

rvida wrote: blah blah
With all this drunken "blah-blah" I just wanted to say that R4 is _much_ closer to IPPO's than R3 was... Now which is a derivative of which?

Richard
BubbaTough
Posts: 1154
Joined: Fri Jun 23, 2006 5:18 am

Re: fire and other engines playing style

Post by BubbaTough »

rvida wrote:
rvida wrote: blah blah
With all this drunken "blah-blah" I just wanted to say that R4 is _much_ closer to IPPO's than R3 was... Now which is a derivative of which?

Richard

I am not sure what you are saying (except that you are drunk, which I quite approve of). Here are my premise:

1. There is a great similarity between Rybka search and Ippolit search shared by no previous programs (lets not get into whether its appropriate or legal or whatever in this thread).
2. There is a fair amount of similarity between Rybka eval and Ippolit eval, shared to a greater extent by other programs.

This is just based on a BB report. I only skimmed it and that was a while ago, and have not looked into anything myself. Now if you disagree with those premise, let me know. Assuming you mostly agree, are you saying:

1. Ippolit is likely written completely independently from Rybka, and then Rybka got its search ideas and eval ideas from ippolit?

or

2. Ippolit was inspired by Rybka (particularly the search), and then once published Rybka took some improvements from Ippolit (particularly a simplified eval) introduced in Rybka 4?

or

3. Ippolit and Rybka both independently came up with very similar searches and fairly similar evals, and then Rybka introduced some improvements into Rybka 4 inspired by Ippolit.

I am trying to stay away from the different between copied, derived, inspired, legal, illegal, unethical, ethical, and all other gray areas (I would need to match you beer for beer before diving into these areas) and am just curious about your opinion of who looked at what and the basic chronology.

-Sam
User avatar
rvida
Posts: 481
Joined: Thu Apr 16, 2009 12:00 pm
Location: Slovakia, EU

Re: fire and other engines playing style

Post by rvida »

This one:
BubbaTough wrote: 2. Ippolit was inspired by Rybka (particularly the search), and then once published Rybka took some improvements from Ippolit (particularly a simplified eval) introduced in Rybka 4?
But I see no "code copying" in either direction. I am pretty convinced that Ippolit was written from scratch as almost every common feature differs too much to be a simple copy.

Richard
User avatar
slobo
Posts: 2331
Joined: Mon Apr 09, 2007 5:36 pm

Re: fire and other engines playing style

Post by slobo »

kranium wrote:1 Houdini 1.5 x64 3001 15 15 1920 77% 2784 30%
2 Rybka 4 x64 Exp. 42 2969 20 19 1240 80% 2719 25%
3 Rybka 4.1 x64 Exp. 79TD v.1 2962 19 19 1240 78% 2743 26%
4 Rybka 4 x64 Exp. 61 2961 21 21 1000 78% 2743 27%
5 Rybka 4.1 x64 2958 16 16 1400 72% 2793 38%
6 Critter 1.2 x64 2955 18 18 1240 76% 2754 34% NEW, + 58
7 Fire 2.2 xTreme x64 2946 19 18 1200 76% 2748 33% NEW, + 9 to 1.5 xTreme
8 Stockfish 2.1.1 JA x64 PHQ 2946 17 17 1360 75% 2757 32% NEW, + 9 to 2.1.1 JA default
9 Houdini 1.03a x64 2944 21 20 1000 80% 2711 30%
10 Rybka 4 x64 2939 17 17 1520 80% 2700 29%
11 IvanHoe B47cB x64 2939 16 16 1360 70% 2791 41%
12 Stockfish 2.1.1 JA x64 2937 16 16 1440 72% 2768 36% NEW, + 30
13 Fire 1.5 xTreme x64 2937 17 16 1400 73% 2763 36% NEW, + 33
14 IvanHoe B49jA x64 2933 17 17 1360 72% 2767 36%
15 Komodo 2.03 JA x64 2929 16 16 1480 70% 2773 33% NEW, + 88
16 IvanHoe B52aC x64 2924 18 18 1160 73% 2756 36%
17 Stockfish 2.0.1 JA x64 2907 18 18 1120 69% 2768 38%
18 Stockfish 1.9.1 JA x64 2906 18 17 1280 73% 2728 33%
19 Stockfish 1.8.0 JA x64 2906 18 18 1200 75% 2715 33%
20 Fire 1.31 x64 2904 19 19 1040 73% 2733 37%
21 Rybka 3 x64 2903 21 20 1000 78% 2686 29%
22 Critter 1.01 x64 2897 16 16 1360 66% 2781 39%
23 Stockfish 1.7.1 JA x64 2896 19 19 1120 76% 2706 34%
24 Stockfish 1.9.1 JA w32 2893 20 20 1000 77% 2692 31%
25 Rybka 4 w32 2891 18 18 1200 76% 2695 32%
26 Critter 0.90 x64 2872 18 17 1200 68% 2741 37%
27 Stockfish 1.7.1 JA w32 2872 18 18 1200 75% 2687 31%
28 Stockfish 2.0.1 JA w32 2872 20 20 1000 76% 2679 34%
29 Critter 0.90 w32 2868 20 20 1000 76% 2679 32%
30 Stockfish 1.8.0 JA w32 2863 19 19 1000 73% 2702 38%
31 Rybka 3 w32 2858 16 16 1520 74% 2687 31%

Last version of IvanHoe is more than 80 points higher than the program from which it was allegedly 'cloned'...
?
relationship kinda looks like Fruit 2.1/ Rybka 1.0 beta at end 2005

yet some here are using the fact that Vas significanty improved Fruit 2.1 as justification for it's legitimacy.
in that case, i guess the ippolit authors are also 'geniuses'...
Houdini_15a_w32_4cpu vs Fire_22_xTreme_w32_NS: 16 (+ 4,= 11,- 1), 59.4 %

: 16 (+ 4,= 11,- 1), 59.4 %
"Well, I´m just a soul whose intentions are good,
Oh Lord, please don´t let me be misunderstood."
Milos
Posts: 4190
Joined: Wed Nov 25, 2009 1:47 am

Re: fire and other engines playing style

Post by Milos »

rvida wrote:This one:
BubbaTough wrote: 2. Ippolit was inspired by Rybka (particularly the search), and then once published Rybka took some improvements from Ippolit (particularly a simplified eval) introduced in Rybka 4?
But I see no "code copying" in either direction. I am pretty convinced that Ippolit was written from scratch as almost every common feature differs too much to be a simple copy.
One of the rare sense ppl regarding this matter on the forum :).
This is exactly my view.
Someone (a very strong programmer) reverse engineered Rybka 3 to gain extremely high understanding of all the things (this could have been done by a wider circle of ppl from the CC community, but again not more than 20-30). He took all the good ideas and wrote a new (real high quality engine) from scratch, with a lot of tuning (on the search side) and with a really low level of bugs (despite what all the clowns on this forum say). He was especially careful not to take any code from Rybka so that the code is perfectly legal. The person who did this is really skillful and there are certainly less than 5 ppl in the whole CC community who could have done that.
Finally, he didn't publish the original code, but a preprocessed code stripped of useful names and all the constants, and then dropped it into one single file.

Who did this and why remains a question and probably will stay like this forever. Maybe there was an element in this to hurt Vas, but more importantly the probable goal was to offer some knowledge to the community for free.
Regarding how much effort was needed to make such a great functional engine this is really a Robin Hood thing.

And if I may add, the biggest problem that, for example, Bob Hyatt has with it, is that it made Crafty unimportant as a learning tool (its biggest significance). Now anybody who wants to learn something more about chess programming looks into Robbo (and to a lesser degree into SF) and almost no one any more checks Crafty ;).
User avatar
slobo
Posts: 2331
Joined: Mon Apr 09, 2007 5:36 pm

Re: fire and other engines playing style

Post by slobo »

Milos wrote:
rvida wrote:This one:
BubbaTough wrote: 2. Ippolit was inspired by Rybka (particularly the search), and then once published Rybka took some improvements from Ippolit (particularly a simplified eval) introduced in Rybka 4?
But I see no "code copying" in either direction. I am pretty convinced that Ippolit was written from scratch as almost every common feature differs too much to be a simple copy.
One of the rare sense ppl regarding this matter on the forum :).
This is exactly my view.
Someone (a very strong programmer) reverse engineered Rybka 3 to gain extremely high understanding of all the things (this could have been done by a wider circle of ppl from the CC community, but again not more than 20-30). He took all the good ideas and wrote a new (real high quality engine) from scratch, with a lot of tuning (on the search side) and with a really low level of bugs (despite what all the clowns on this forum say). He was especially careful not to take any code from Rybka so that the code is perfectly legal. The person who did this is really skillful and there are certainly less than 5 ppl in the whole CC community who could have done that.
Finally, he didn't publish the original code, but a preprocessed code stripped of useful names and all the constants, and then dropped it into one single file.

Who did this and why remains a question and probably will stay like this forever. Maybe there was an element in this to hurt Vas, but more importantly the probable goal was to offer some knowledge to the community for free.
Regarding how much effort was needed to make such a great functional engine this is really a Robin Hood thing.

And if I may add, the biggest problem that, for example, Bob Hyatt has with it, is that it made Crafty unimportant as a learning tool (its biggest significance). Now anybody who wants to learn something more about chess programming looks into Robbo (and to a lesser degree into SF) and almost no one any more checks Crafty ;).
Yes... it´s hard for Dr Hyatt to hear that, but it is a truth.
"Well, I´m just a soul whose intentions are good,
Oh Lord, please don´t let me be misunderstood."
User avatar
slobo
Posts: 2331
Joined: Mon Apr 09, 2007 5:36 pm

Re: fire and other engines playing style

Post by slobo »

Milos wrote: And if I may add, the biggest problem that, for example, Bob Hyatt has with it, is that it made Crafty unimportant as a learning tool (its biggest significance). Now anybody who wants to learn something more about chess programming looks into Robbo (and to a lesser degree into SF) and almost no one any more checks Crafty ;).
It would be almost impossible, but anyway:
if, one day, I start programing a chess engine, I would start with Crafty... só I think it´s nice we have another option, a simple one, for people who, like myself, don´t care about competitions.
"Well, I´m just a soul whose intentions are good,
Oh Lord, please don´t let me be misunderstood."
BubbaTough
Posts: 1154
Joined: Fri Jun 23, 2006 5:18 am

Re: fire and other engines playing style

Post by BubbaTough »

rvida wrote:This one:
BubbaTough wrote: 2. Ippolit was inspired by Rybka (particularly the search), and then once published Rybka took some improvements from Ippolit (particularly a simplified eval) introduced in Rybka 4?
But I see no "code copying" in either direction. I am pretty convinced that Ippolit was written from scratch as almost every common feature differs too much to be a simple copy.

Richard
OK, that makes sense. I kind of assumed that is what Vas did with fruit too, rewrite every (or at least most) functions more efficiently, but maintaining enough similarity to really bug people. Its easier to do of course starting with source. I also kind of assumed that is what Houdini did with Ippo to start with, take the source, rewrite each (or most) functions cleaner and better, but maintaining a lot of semantic similarity. As someone who has actually dug into these programs, do you think these processes were all pretty similar, maybe with vary degrees of how much was tweaked versus left semantically identical? Or are there indicators that the processes were fundamentally different. Again, lets leave aside whether this process is legal, ethical, etc..

-Sam
User avatar
Eelco de Groot
Posts: 4567
Joined: Sun Mar 12, 2006 2:40 am
Full name:   

Re: fire and other engines playing style

Post by Eelco de Groot »

BubbaTough wrote:
rvida wrote:This one:
BubbaTough wrote: 2. Ippolit was inspired by Rybka (particularly the search), and then once published Rybka took some improvements from Ippolit (particularly a simplified eval) introduced in Rybka 4?
But I see no "code copying" in either direction. I am pretty convinced that Ippolit was written from scratch as almost every common feature differs too much to be a simple copy.

Richard
OK, that makes sense. I kind of assumed that is what Vas did with fruit too, rewrite every (or at least most) functions more efficiently, but maintaining enough similarity to really bug people. Its easier to do of course starting with source. I also kind of assumed that is what Houdini did with Ippo to start with, take the source, rewrite each (or most) functions cleaner and better, but maintaining a lot of semantic similarity. As someone who has actually dug into these programs, do you think these processes were all pretty similar, maybe with vary degrees of how much was tweaked versus left semantically identical? Or are there indicators that the processes were fundamentally different. Again, lets leave aside whether this process is legal, ethical, etc..

-Sam
I only know some Fruit and Toga code, so nothing like the knowledge someone would have who has looked at assembly code of Houdini and compared it with Ippolit, however I did not get this impression of "what Houdini did with Ippo to start with, take the source, rewrite each (or most) functions cleaner and better". Neither do I think Vas can claim that he took Fruit and Crafty and "rewrote every (or at least most) functions more efficiently". I do not get that impression from any of the programmers, or people like Larry Kaufman even. I think that would be way too much honour and if he did it would clear Mr. Rajlich of any GPL issues with Fruit. Which I don't think is the case. So I would take issue , preemptively, with people like Rolf or George or Chris Whittington now maybe claiming, on the basis of this post, that suddenly everything with Rybka 1, or if not then Rybka 2, if not then Rybka 3 or Rybka 4 is OK because it was "rewritten". It was certainly not so with Rybka 1.0 beta or the Crafty clone before that.

Also "almost every common feature differs too much to be a simple copy" does not quite equate with "written from scratch" in the case of Ippolit either, and in my opinion even if true that does not make it not_a _clone as we are talking about semantic identities there, at least as I understand it. But having never looked at either Ippolit, Strelka or Robbo etc. sources I can't claim to know much about technical details there...

Just my one cent about this,
Eelco
Debugging is twice as hard as writing the code in the first
place. Therefore, if you write the code as cleverly as possible, you
are, by definition, not smart enough to debug it.
-- Brian W. Kernighan