now after seeing all of this go down can anyone beat Vas

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

Moderators: hgm, Rebel, chrisw

kgburcham
Posts: 2016
Joined: Sun Feb 17, 2008 4:19 pm

now after seeing all of this go down can anyone beat Vas

Post by kgburcham »

Now after seeing how all of this can happen, we have all learned some things. Some more than others of course.

I am curious will someone step forward and beat Vas at his own game. Is it possible for someone to reverse engineer Houdini, Rybka, etc. and rewrite the code and pass through the tech lines at these tournaments?

Is there enough ideas, open source, supposedly stolen Rybka code floating around to put together another program? Is it possible that someone could mask over all the code to squeak thru a tech inspection and win a world championship?

What does it take to get a program to pass through the last group?
Can it be done?
Do you say impossible?

kgburcham
User avatar
hgm
Posts: 27790
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: now after seeing all of this go down can anyone beat Vas

Post by hgm »

It will be much harder now, of course. ICGA is now prepared, and will be on guard.
Vinvin
Posts: 5228
Joined: Thu Mar 09, 2006 9:40 am
Full name: Vincent Lejeune

Re: now after seeing all of this go down can anyone beat Vas

Post by Vinvin »

It's probably easy but that take time.
If understand correctly :
1) "copying other engines' ideas is allowed"
2) "copying other engines' code is forbidden"
lkaufman
Posts: 5960
Joined: Sun Jan 10, 2010 6:15 am
Location: Maryland USA

Re: now after seeing all of this go down can anyone beat Vas

Post by lkaufman »

To my thinking a key question is whether taking numerical values from another program is allowed or not. I mean things like piece square tables, mobility weights, bishop pair bonus, etc., things which can have a huge number of possible values. I don't mean things like number of moves reduced in LMR or plies reduced in null move, which can only have a few plausible values. Are these values "ideas" or "code"? Probably neither. They can be scaled differently so code is not identical, but they are usually the result of massive testing, hardly "ideas". So I think that this should NOT be allowed. This was the basis of my objection to the Ippolit-derived programs; the eval numbers were clearly approximations of the values I came up with for Rybka 3. I think we need a clear answer to whether the use of such values is allowed or not. Comments welcome.
User avatar
Graham Banks
Posts: 41423
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: now after seeing all of this go down can anyone beat Vas

Post by Graham Banks »

lkaufman wrote:To my thinking a key question is whether taking numerical values from another program is allowed or not. I mean things like piece square tables, mobility weights, bishop pair bonus, etc., things which can have a huge number of possible values. I don't mean things like number of moves reduced in LMR or plies reduced in null move, which can only have a few plausible values. Are these values "ideas" or "code"? Probably neither. They can be scaled differently so code is not identical, but they are usually the result of massive testing, hardly "ideas". So I think that this should NOT be allowed. This was the basis of my objection to the Ippolit-derived programs; the eval numbers were clearly approximations of the values I came up with for Rybka 3. I think we need a clear answer to whether the use of such values is allowed or not. Comments welcome.
Please excuse my ignorance because I'm not a programmer and I might have misunderstood, but surely it's okay for more than one chess engine to be using what are considered to be the standard piece values (such as pawn=1 bishops and knights=3, etc)? And if that is the case, surely you can't really prohibit the use of slightly different values?
gbanksnz at gmail.com
tomgdrums
Posts: 736
Joined: Wed Dec 02, 2009 9:48 am

Re: now after seeing all of this go down can anyone beat Vas

Post by tomgdrums »

lkaufman wrote:To my thinking a key question is whether taking numerical values from another program is allowed or not. I mean things like piece square tables, mobility weights, bishop pair bonus, etc., things which can have a huge number of possible values. I don't mean things like number of moves reduced in LMR or plies reduced in null move, which can only have a few plausible values. Are these values "ideas" or "code"? Probably neither. They can be scaled differently so code is not identical, but they are usually the result of massive testing, hardly "ideas". So I think that this should NOT be allowed. This was the basis of my objection to the Ippolit-derived programs; the eval numbers were clearly approximations of the values I came up with for Rybka 3. I think we need a clear answer to whether the use of such values is allowed or not. Comments welcome.
I don't know Larry, you and Don both said it was okay to get ideas from other engines. Piece values and evaluations seem like ideas to me.
BubbaTough
Posts: 1154
Joined: Fri Jun 23, 2006 5:18 am

Re: now after seeing all of this go down can anyone beat Vas

Post by BubbaTough »

lkaufman wrote:To my thinking a key question is whether taking numerical values from another program is allowed or not. I mean things like piece square tables, mobility weights, bishop pair bonus, etc., things which can have a huge number of possible values. I don't mean things like number of moves reduced in LMR or plies reduced in null move, which can only have a few plausible values. Are these values "ideas" or "code"? Probably neither. They can be scaled differently so code is not identical, but they are usually the result of massive testing, hardly "ideas". So I think that this should NOT be allowed. This was the basis of my objection to the Ippolit-derived programs; the eval numbers were clearly approximations of the values I came up with for Rybka 3. I think we need a clear answer to whether the use of such values is allowed or not. Comments welcome.
I absolutely agree this is a key question, and a question that has not been answered. The problem is, for me anyway, its a bit of a gray area. Outlawing anyone from using similar numbers to another program in any area is a bit silly (as you imply with your LMR example) but having all identical numbers throughout a program feels wrong too. I think there is a gray area here. For example, if Critter uses PST numbers from another source, but all other aspects are completely original, is this outlawed? Is the answer different for different tournaments and ratings lists? Its a confusing area. The appropriate line may seem obvious to some, but I suspect that "obvious" line is in a different place for a lot of different people, each one having a reasonable perspective.

Side stepping legal issues for a bit, in a sense it does not matter what the "right" answer is. Just that each public venue, be it tournament or rating list, make it clear what it takes to qualify for participation. Then it is up to the engine authors to determine which line they feel is appropriate for their project, and submit only to that group. If copying PST only is fine for CCRL but not for ICGA, then critter can be on CCRL and not ICGA, no need for anyone to yell or scream about clones. If he wants to then participate in ICGA, he just spends the time tuning his own PST, and viola, he now qualifies. No need for people to dig up old copies and for paranoia to run rampant...clear rules would encourage transparency and honesty (at least, I would hope so).

-Sam
lkaufman
Posts: 5960
Joined: Sun Jan 10, 2010 6:15 am
Location: Maryland USA

Re: now after seeing all of this go down can anyone beat Vas

Post by lkaufman »

Graham Banks wrote: Please excuse my ignorance because I'm not a programmer and I might have misunderstood, but surely it's okay for more than one chess engine to be using what are considered to be the standard piece values (such as pawn=1 bishops and knights=3, etc)? And if that is the case, surely you can't really prohibit the use of slightly different values?
I think you are confusing the piece values with piece square tables. Of course no one "owns" the values 1-3-3-5-9 or even the values 1-3.25-3.25-5-9.75 which I came up with in my 1999 article on the subject. I suppose even copying identical "odd" values (say 1-3.31-3.37-5.11-9.86 to make up an example) from another program would not really be grounds for serious objection, as these values are only "par" values. I'm talking about the piece square tables in conjunction with the piece values, which define what every piece is worth on every square, aside from mobility and king safety considerations. If another program copies the exact values from my program (or uses formulas that give the same results within a couple centipawns), this means he has clearly copied that part of my program, except in the technical sense (i.e. multiplying them all by 1.03 for example doesn't change their derivation.). There is no significant possibility that he would come up with the same values independently, as there are several hundred numbers in question. The same applies to any other coefficients which can take on a huge number of possible values.

So, should this be allowed or forbidden? A number is not an "idea", it is the result of some actual testing (these days anyway), and someone who uses these numbers has taken a huge shortcut. Should this be allowed?
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: now after seeing all of this go down can anyone beat Vas

Post by bob »

lkaufman wrote:
Graham Banks wrote: Please excuse my ignorance because I'm not a programmer and I might have misunderstood, but surely it's okay for more than one chess engine to be using what are considered to be the standard piece values (such as pawn=1 bishops and knights=3, etc)? And if that is the case, surely you can't really prohibit the use of slightly different values?
I think you are confusing the piece values with piece square tables. Of course no one "owns" the values 1-3-3-5-9 or even the values 1-3.25-3.25-5-9.75 which I came up with in my 1999 article on the subject. I suppose even copying identical "odd" values (say 1-3.31-3.37-5.11-9.86 to make up an example) from another program would not really be grounds for serious objection, as these values are only "par" values. I'm talking about the piece square tables in conjunction with the piece values, which define what every piece is worth on every square, aside from mobility and king safety considerations. If another program copies the exact values from my program (or uses formulas that give the same results within a couple centipawns), this means he has clearly copied that part of my program, except in the technical sense (i.e. multiplying them all by 1.03 for example doesn't change their derivation.). There is no significant possibility that he would come up with the same values independently, as there are several hundred numbers in question. The same applies to any other coefficients which can take on a huge number of possible values.

So, should this be allowed or forbidden? A number is not an "idea", it is the result of some actual testing (these days anyway), and someone who uses these numbers has taken a huge shortcut. Should this be allowed?
I've always treated this the same as the PGN copyright issue. You can't copyright a single game of chess. But you can create a collection of games, such as the classic Fischer's 100 greatest games, and that collection can be copyrighted because of the effort involved. Same with numbers. A single number or a small set (such as piece values) is probably not going to produce a claim of plagiarism. But if you take the typical program, which would generally have 12 piece/square tables, 12 * 64 values is a bit much to copy, and too much similarity, as you suggested, would be bad. The more values that are copied, the worse it looks. What is the minimum that is acceptable? Hard to say and probably depends on the context. But an array of 64 values is a bit much. 12 such arrays is way much.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: now after seeing all of this go down can anyone beat Vas

Post by bob »

BubbaTough wrote:
lkaufman wrote:To my thinking a key question is whether taking numerical values from another program is allowed or not. I mean things like piece square tables, mobility weights, bishop pair bonus, etc., things which can have a huge number of possible values. I don't mean things like number of moves reduced in LMR or plies reduced in null move, which can only have a few plausible values. Are these values "ideas" or "code"? Probably neither. They can be scaled differently so code is not identical, but they are usually the result of massive testing, hardly "ideas". So I think that this should NOT be allowed. This was the basis of my objection to the Ippolit-derived programs; the eval numbers were clearly approximations of the values I came up with for Rybka 3. I think we need a clear answer to whether the use of such values is allowed or not. Comments welcome.
I absolutely agree this is a key question, and a question that has not been answered. The problem is, for me anyway, its a bit of a gray area. Outlawing anyone from using similar numbers to another program in any area is a bit silly (as you imply with your LMR example) but having all identical numbers throughout a program feels wrong too. I think there is a gray area here. For example, if Critter uses PST numbers from another source, but all other aspects are completely original, is this outlawed? Is the answer different for different tournaments and ratings lists? Its a confusing area. The appropriate line may seem obvious to some, but I suspect that "obvious" line is in a different place for a lot of different people, each one having a reasonable perspective.

Side stepping legal issues for a bit, in a sense it does not matter what the "right" answer is. Just that each public venue, be it tournament or rating list, make it clear what it takes to qualify for participation. Then it is up to the engine authors to determine which line they feel is appropriate for their project, and submit only to that group. If copying PST only is fine for CCRL but not for ICGA, then critter can be on CCRL and not ICGA, no need for anyone to yell or scream about clones. If he wants to then participate in ICGA, he just spends the time tuning his own PST, and viola, he now qualifies. No need for people to dig up old copies and for paranoia to run rampant...clear rules would encourage transparency and honesty (at least, I would hope so).

-Sam
The problem with that is that a chess program is a large project. With tens of thousands of lines of code, perhaps thousands of lines of "values". I don't quite see how to draw a line in the sand to define what is acceptable and what is not. Copying code is clearly not allowable, except for previously accepted exceptions like basic bitboard implementation (direct computation, rotated, or magic), egtb access code, etc. But numbers can be the same. And trying to say no more than N lines, or M numbers or X lines + Y numbers where X + Y < Z where Z is the threshold, looks to be very difficult to do.

I believe this is always going to remain a subjective rule, otherwise it might become as large as the US Tax code, which nobody understands it seems.