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

User avatar
Graham Banks
Posts: 41491
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:
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?
Sounds like it should be forbidden, but programmers would be the best to know.
gbanksnz at gmail.com
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 »

bob wrote:
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.
Unfortunately you are probably right. I guess that is why the legal system is so messy. Its just hard to use rules to replace common sense, and everyone has different common sense :(.

-Sam
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 »

Graham Banks wrote:
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?
Sounds like it should be forbidden, but programmers would be the best to know.
The problem is there is disagreement on where the line should be drawn. Larry suggests PST + material values should not be used, or modified versions within a few centipawns. Well, what if a program uses the PST but not the material values? or the material values and not the PST? What if someone spends a month auto-tuning both tables, but uses someone else's seed values and the result is "somewhat" similar? How important is it how someone defines the transition to endgame, since these values interact strongly with that? What if a beta version used copy values, but the values were original by the time a tournament was entered. In my mind the problem is not only is it hard to define a line in the sand, the problem is there are a number of different lines in the sand that are equally reasonable. And that is just about tuning numbers, it gets much more complicated defining "too similar".

-Sam
Father
Posts: 1391
Joined: Sun Mar 19, 2006 4:39 am
Location: Colombia
Full name: Pablo Ignacio Restrepo

... do not drown out the small fish, the great magician inmo

Post by Father »

July 2, 2011

Beloved community of scientists, players, teachers, and lovers of the science game

With all due respect, I wonder what has happen to us "the consumers."

Rybka and Houdini for me, regardless of its origins, represent an entitlement that honestly should also be respected by the courts.

There is a universal principle that states that the common mistake it right. This mean that Rybka and Houdini are the two most beautiful ladies of the party, and with reason, we, the consumers, are very in love with them.

It's stupid for us to obey a court to force me to love another girl, when my love notes for the two beautiful blondes, Houdini and Rybka, becouse they are the two most beautiful female dancing, and I want to dance alone with bolero and chachacha the two champions of beauty.

Besides knowledge belongs to humanity, and the general interest must prevail over private interest. Knowing above have.

There are two perspectives on this issue, and as a customer, user and consumer, I claim with all due respect, for allowed the distribution of medicine against the cancer of mediocrity.

I personally believe that if you really feel offended and have a love for chess, should grant the waiver, the creators of Houdini and Rybka and Rybka creators of Houdini and should ask for forgiveness, but if the remedy is to kill small fishes Houdini or pretend that eternal life comes from a sign I we humbly, all tis would be a mistake.... as a lover of chess, I cry and claim that the cure wont be worse than the disease ... do not drown out the small fish and the the great magician
:( :( :( :(
Respectfully,
:D :D :D
Pablo Ignacio Restrepo
Father
Playchess user
I am thinking chess is in a coin.Human beings for ever playing in one face.Now I am playing in the other face:"Antichess". Computers are as a fortres where owner forgot to close a little door behind. You must enter across this door.Forget the front.
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 »

"The problem is there is disagreement on where the line should be drawn. Larry suggests PST + material values should not be used, or modified versions within a few centipawns. Well, what if a program uses the PST but not the material values? or the material values and not the PST? What if someone spends a month auto-tuning both tables, but uses someone else's seed values and the result is "somewhat" similar? How important is it how someone defines the transition to endgame, since these values interact strongly with that? What if a beta version used copy values, but the values were original by the time a tournament was entered. In my mind the problem is not only is it hard to define a line in the sand, the problem is there are a number of different lines in the sand that are equally reasonable. And that is just about tuning numbers, it gets much more complicated defining "too similar".

-Sam[/quote]

These are hard questions, but we should still provide guidelines, even though there will always be disagreement about what they mean. My own view is that you can do anything you want with private beta versions, the only ones that matter are those entered in tournaments or released to the public. I don't object to using someone else's numbers as "seed" numbers, as long as the end result is not obviously derived from those numbers. As for PST and material values, I would say that material values are too few to put restrictions on, but PST that are either nearly identical to another program or would be if you add and/or multiply by a constant should not be allowed. The bottom line (in my view) is this: if it is obvious to a knowledgeable observer that you could not have come up with the values you used without having seen those in another program you have made a derivative of that program. Of course this leaves room for interpretation but so do most laws.
Chan Rasjid
Posts: 588
Joined: Thu Mar 09, 2006 4:47 pm
Location: Singapore

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

Post by Chan Rasjid »

lkaufman wrote: ...
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?
GM Larry Kaufman, Don Daily,

The code below is the formula that I use to compute PST values for pawn and it might be exactly the same as that of Fruit. I am not sure of my other values for 1/3/3/5/9 etc. which, if they are the same, would make the PST values to be NOT JUST NUMBERS OR IDEAS, but something that is "found from tuning" and is proprietary- that others using the same values would be violating copyrights:

Code: Select all

static const int PawnFile&#91;8&#93; = &#123;
	-3, -1, 0, 1, 1, 0, -1, -3
&#125;;

// must decrease after rank 5
static const int PawnRankDE&#91;8&#93; = &#123;
	0,   0,  10,  20,  25,  15,  0,   0
&#125;;


void init_pst&#40;) &#123;

	for &#40;t = 1; t <= 6; ++t&#41; &#123;
		for &#40;sq = 0; sq <= 63; ++sq&#41; &#123;
			switch &#40;t&#41; &#123;
			case Pawn&#58;
				// opening stage	
				x = PawnFile&#91;FILE&#40;sq&#41;&#93; * 5;
				if &#40;FILE&#40;sq&#41; == 3 || FILE&#40;sq&#41; == 4&#41; &#123;
					x += PawnRankDE&#91;7 - RANK&#40;sq&#41;&#93;;
				&#125;
				x = &#40;x * PawnStructureWeight&#41; / 256;
				P&#40;t + 5, sq, open&#41; = x;

				break;
			case Bishop&#58;
		....			

				
		&#125;

 White Pawn Open&#91;64&#93;&#123;
     0,     0,     0,     0,     0,     0,     0,     0,
   -15,    -5,     0,     5,     5,     0,    -5,   -15,
   -15,    -5,     0,    15,    15,     0,    -5,   -15,
   -15,    -5,     0,    25,    25,     0,    -5,   -15,
   -15,    -5,     0,    30,    30,     0,    -5,   -15,
   -15,    -5,     0,    20,    20,     0,    -5,   -15,
   -15,    -5,     0,     5,     5,     0,    -5,   -15,
     0,     0,     0,     0,     0,     0,     0,     0
&#125;;


I don't need to refer to Fruit's codes to come up with the above as the reasons why the formula is such could be understood by any 7 year old. If I found that it works on my program, tell me how I should change the values to satisfy you and Don Daily. The formulae for the other types could also be easily understood and no cut&paste is needed.

Don Daily is a direct head-on competitor of Vasik Rajlich. What he failed to achieve in a lifetime working on CilkChess and Socrates Vasik did in one year. The weakest point in Rybka is in it's evaluation that closely imitates that of Fruit's and all you people did was to aim at his weakest point to bring him down - to make it seem Vasik is not as bright as the ELO of Rybka 4 shows. What is the ELO of Socrates?
“The Rybka code base was without doubt derived directly from other people’s work and this was never revealed, so this is [a] case of taking credit for the work of others,” Don Dailey,
Vasik was correct (with a wee bit of dishonesty) when he said the "game playing codes" of Rybka is not derived from the codes of others; this was his opinion which just did not tally with that of ICGA and Don Daily's. When losers make rules, they have the tendency to stress on things easier on themselves and difficult for their competitors - this is human nature and human weakness.

You Larry Kaufmann is a little lacking in smartness and needs tuning but others may not need any tuning - just go through the PST formulae of Robbolitto and immediately can smell why the 12 * 64 values would come out as what they are. Don't ask why.


In the end, if one participates in ICGA events, then whatever they rule applies. As in case of copyrights when it goes to court, how much copying of the story line of "Cinderella" is acceptable depends on the judge. If the case of Rybka vs Fruit goes to court and the presiding judge happens to be a brilliant (albeit unknown) chess programmer who immediately know that "evaluation is a puny little part" (not as what others like to make it as all and everything just to shoot Vas) that contributes at most 20 ELO, then Vasik would win the case.

Rasjid.
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 »

I do not want to discuss the Rybka/Fruit issue here, but to address some of your points. I added somewhere between 50 and 100 elo just from eval to Rybka from version 2.2 to Rybka 3, the period I worked on Rybka's eval, so clearly eval is worth much more than 20 elo. Rybka's eval was its weak point when I joined the team, but after my work it was a strong point, not a weak point. The current IPON rating of our program Komodo is tied with Rybka 4, so I don't know why you are asking about the rating of our 20 year old program. The list of programmers who have created top-five programs is a small list, but it most certainly includes both Vas Rajlich and Don Dailey. Rybka 1 may not have been very original, but Rybka 3 surely was mostly original work, by Vas on the search and by me on the eval.
Jimmy Huggins
Posts: 98
Joined: Tue Feb 15, 2011 7:00 am
Location: Kansas USA

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

Post by Jimmy Huggins »

Just curious Larry was you ask to take part in or give any input into the ICGA investigation?
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:
These are hard questions, but we should still provide guidelines, even though there will always be disagreement about what they mean. My own view is that you can do anything you want with private beta versions, the only ones that matter are those entered in tournaments or released to the public. I don't object to using someone else's numbers as "seed" numbers, as long as the end result is not obviously derived from those numbers. As for PST and material values, I would say that material values are too few to put restrictions on, but PST that are either nearly identical to another program or would be if you add and/or multiply by a constant should not be allowed. The bottom line (in my view) is this: if it is obvious to a knowledgeable observer that you could not have come up with the values you used without having seen those in another program you have made a derivative of that program. Of course this leaves room for interpretation but so do most laws.
I would be fine with these rules...but if someone else came along and stated a different set, I would probably be fine with those. Perhaps it would be good if the community created 3 sets of guidelines, mild, moderate and strict. Tournaments and rating lists could state which they were adapting. That way, if the author of a chess engine like sloppy wants grab some eval values from elsewhere (with acknowledgement) the author can do so without shame and persecution by just sticking with the mild settings, while folks that care strongly that every line is completely original can stick to the strict guidelines and participate in environments where others feel the same way.

It would be impossible to cover everything, but a few examples would be easy enough to generalize from. This certainly would not do anything to stop cheating, but it would encourage an environment where honest programmers can participate in the hobby without fear of persecution for making choices others deem invalid.

-Sam
Dirt
Posts: 2851
Joined: Wed Mar 08, 2006 10:01 pm
Location: Irvine, CA, USA

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

Post by Dirt »

lkaufman wrote:The bottom line (in my view) is this: if it is obvious to a knowledgeable observer that you could not have come up with the values you used without having seen those in another program you have made a derivative of that program. Of course this leaves room for interpretation but so do most laws.
That's pretty much how I view copyright law. Whether using equations to generate values for piece square tables that approximate yours would be a violation, though, I don't know.