Laskos wrote:Don wrote:Milos wrote:Don wrote:It's not like that at all. I personally don't believe that you have any right to "own" an idea. I am not a capitalist like you must be if you believe that. U.S. law makes ideas something that can be bought and sold and protected but I don't buy into that.
So now if some disreputable people come up with good ideas and publish them, then I have no obligation to refrain from using them and put myself at a disadvantage. If that were the case then I guess I am a hypocrite for using alpha/beta pruning and Hash tables in my program. That's how stupid and utterly ridiculous your line of reasoning is here.
No you are not a hypocrite for using alpha-beta or LMR.
You are a hypocrite for using ideas that are obtained by the means you personally believe are unethical.
I never said that I believe obtaining ideas from these programs are unethical. Show me where I said that.
I said that the verbatim copying of code from other programs is unethical. Now if I copied code from other programs, that would be unethical and it wouldn't make any difference if the code was from legitimate programs or the illegitimate programs.
That makes you unethical in your own system of values.
Except that you failed to show where this is a violation of my own ethics. To make your case you need to show some quote from me where I claim it is unethical to obtain or use ideas from other programs and you won't find that.
You are an unscrupulous and devious person for making the above statement in bold which is a complete misrepresentation of my position. You say, "ideas that obtained by the means you personally believe are unethical" which recasts my position into a form that you can attack, you are being dishonest for doing this.
If you want to have a constructive debate on this, please stop being devious and dishonest so that we can focus on the actual issues.
And ethics seams to be totally strange to you.
You are not one who should talk about ethics after the way you dishonestly keep misrepresenting our position on the usage of ideas. Also there is this matter of how you desperately need to equate the use of ideas with source code theft. These are 2 separate things but your whole argument falls into pieces unless you can make a strong connection between the two things. You have to keep doing this over and over with deceptive statement like the above because it isn't working for you.
Don, be more nuanced. We all accept that taking ideas is fair. Only by doing that, one could get into solving some experiments (tuning), maybe very similar to what is already done. We have to separate the theoretical part, "ideas", from the experiment. Do I have to re-make all the experiments, knowing the published results? If needed experiments (tuning) are already done, I think it's fair to use to every degree one needs the results of these experiments. That is how research in sciences is working.
I don't believe that you fully understand what you are actually saying here. In a nutshell you are saying to let someone else do the work, and then just start from that. It's already the case that the people doing the least work are taking the most credit.
I there is a serious misconception that perhaps MOST of the readers of this forum have about computer chess programming that is causing a lot of difficulty. They think that if you take 20 good ideas from some really good program, you end up with a good program.
Building a strong chess program is not summing the parts because the whole is not necessarily the sum of the parts, but it can also be much greater than the sum of it's parts. To those of you who start with a program that is already strong, you cannot really even begin to understand the effort to get there - and I suspect it's the reason the legitimate authors are so angry and feel the same way I do about this. You (not necessarily you personally) think that you can take some mundane program and just put in a few tricks "taken" from Ippolit for instance, and have an incredibly strong program. It doesn't work that way.
There is also a factor that most here are completely ignorant about which involves computer science and I believe applies here with a real vengeance. It's called the "local optimum" which means that a better solution exists, but it's probably not close to the point you are starting from. Put in everyday language it means that as long as you promote using Ivanhoe as your starting point and believe that everyone should start from that exact code and build in a straight line from that, you are not going to move towards better solutions. Learning algorithms in general struggle with that exact problem and often incest becomes an issue that exacerbates the problem. The general cure to this is "diversity."
So your "mental model" of how things should be done, in prefabricated assembly line fashion, is seriously broken as a vehicle towards making serious and drastic progress.
This is not a surprise, most of the top programs have the same basic "Kaufman" evaluation function. Rybka and Komodo have it for legitimate reasons. Still, Komodo is farther away that the other top programs which have the "Kaufman" evaluation function because Kaufman has continue to develop the evaluation function for Komodo, so the other programs are using the older stuff. Whatever modifications they have added have not really served to put much distance between them as seen in the graph.
This is a natural convergence of a way to build a strong engine. I am a theorist by nature, and if some already done experiments are useful to me, then I would not hesitate, and it's a common practice in sciences, to use even literally the results of the experiments. It's even absurd to tune for months some values which were already derived experimentally by others.
If you were as good as you say then you would realize that it doesn't work that way. Every part of a chess program interacts with every other part. For example if you change the evaluation function then you must then re-calibrate the futility margins and every other position based margin. Of course since you seem to be advocating leaving most of the program alone because someone else already did the real work you are unwilling to do, you will be forced into a dead end. At some point you will HAVE to make drastic changes in order to see actual progress and break out of your local optimum.
This is something that Larry and I are not afraid to do, we do not have this monolithic piece of code that we are afraid to touch because we don't understand how it works. We touched every piece of it, know the history of it, and understand it intimately. And we are not afraid to hammer it into a new shape if we have to.
Therefore it's fair to take ideas, and it's also fair to use as much experimental data as possible even literally, if it is of use. Experimental data is an intrinsic property of the theoretically described system, once the experimental data is shown, no one can claim it as his own, no more than the value of the eccentricity of the Earth's orbit or the rest mass of the electron. On the programming forum I saw one guy who presented his engine, as far as I understood, he was building it pretty fairly, but you guys came there to teach some moralistic, pretty wrong lessons, discouraging him to the point of abandoning the project. The lesson is that one shouldn't bother asking you.
You should look at that thread again. I was the only one who gave this guy encouragement, not even the open source guy did that.
Kai
You guys are in the minority here. With very few exceptions the ones advocating this behavior are the one DOING it, or the ones that don't know anything about computer chess programs. The ones actually doing it are followers, not leaders and even though they may have significant talent they lack imagination or are just lazy.
It's not in my own nature to do that. I told Larry once that we could probably take a program like Ivanhoe and easily add 100 ELO by implementing a lot of the ideas in Komodo and fixing the things that are obvious to us. We could also do this with Stockfish. I think Larry secretly would have liked to do this had it been legitimate, but to me it was like taking all the fun out of it. EVEN if it had been fully acceptable and ethical, I could not get satisfaction from doing it this way. I would be a fraud and I would feel that I was being dishonest. Of course I could just be up front about it and make an open source fork of the code, but then it's not my stuff. I would rather have a program that completely sucks than to have the best program out there that is basically someone else's work with my name on it.