On Dalke

Code, algorithms, languages, construction...
User923005
Posts: 616
Joined: Thu May 19, 2011 1:35 am

Re: On Dalke

Post by User923005 » Wed Feb 22, 2012 4:00 am

syzygy wrote: Well, among the *programmers* (as opposed to the religious fanatics that seem to be crowding some of the fora), there seem to be a great many that are willing to discuss and share ideas in the open. Btw, I don't think Vas was ever one of them? (Feel free to correct me on this, since I might really be wrong here.)
This is true. Vas plied all the experts for months, wheedling every trick imaginable that they were willing to share. He never divulged his own ideas in return {voluntarily}. Even his greatest accomplishment, the brilliant stroke of using thousands of high speed games to mathematically verify the correctness of a change was 'tricked' out of him -- someone pretending to be GM Larry Kaufman got him to explain his testing methodology in detail. However, refusal to share what you know and sneaky marketing tricks like using nonstandard measures for ply depth and node counts do not make a person guilty of some other offense.

I think that there are a lot of chess programmers who do not like Vas for one reason or another.

I do want to state that I do not think that the board that convicted Vas *thought* they were doing anything improperly (indeed, the majority of them still think that everything was fine). It is not my intention to villify these men. I only want to say that I do not like the process that convicted Vas of wrongdoing and I find the body of evidence that was presented insufficient to warrant the penalties imposed and especially the villification of his name.

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: On Dalke

Post by hyatt » Wed Feb 22, 2012 4:59 pm

User923005 wrote:
syzygy wrote: Well, among the *programmers* (as opposed to the religious fanatics that seem to be crowding some of the fora), there seem to be a great many that are willing to discuss and share ideas in the open. Btw, I don't think Vas was ever one of them? (Feel free to correct me on this, since I might really be wrong here.)
This is true. Vas plied all the experts for months, wheedling every trick imaginable that they were willing to share. He never divulged his own ideas in return {voluntarily}. Even his greatest accomplishment, the brilliant stroke of using thousands of high speed games to mathematically verify the correctness of a change was 'tricked' out of him -- someone pretending to be GM Larry Kaufman got him to explain his testing methodology in detail. However, refusal to share what you know and sneaky marketing tricks like using nonstandard measures for ply depth and node counts do not make a person guilty of some other offense.

I think that there are a lot of chess programmers who do not like Vas for one reason or another.

I do want to state that I do not think that the board that convicted Vas *thought* they were doing anything improperly (indeed, the majority of them still think that everything was fine). It is not my intention to villify these men. I only want to say that I do not like the process that convicted Vas of wrongdoing and I find the body of evidence that was presented insufficient to warrant the penalties imposed and especially the villification of his name.

I have not seen his name "vilified". I have seen him labelled a "cheater" which is correct. Twice-over, because he first copied crafty and claimed it to be original, then he copied Fruit and did it again. He could "come clean", then show that his latest code is clean, and I think most would accept that and move on. But HE has to take that first step, which is a difficult one for someone to admit...

syzygy
Posts: 148
Joined: Sun Oct 16, 2011 4:21 pm

Re: On Dalke

Post by syzygy » Wed Feb 22, 2012 9:00 pm

User923005 wrote:However, refusal to share what you know and sneaky marketing tricks like using nonstandard measures for ply depth and node counts do not make a person guilty of some other offense.
Sure, but I did not argue otherwise. I was only reacting to your characterization of chess programming as a "cesspool of petty, mean-spirited, selfish jerks".

User923005
Posts: 616
Joined: Thu May 19, 2011 1:35 am

Re: On Dalke

Post by User923005 » Thu Feb 23, 2012 12:06 am

hyatt wrote:
User923005 wrote:
syzygy wrote: Well, among the *programmers* (as opposed to the religious fanatics that seem to be crowding some of the fora), there seem to be a great many that are willing to discuss and share ideas in the open. Btw, I don't think Vas was ever one of them? (Feel free to correct me on this, since I might really be wrong here.)
This is true. Vas plied all the experts for months, wheedling every trick imaginable that they were willing to share. He never divulged his own ideas in return {voluntarily}. Even his greatest accomplishment, the brilliant stroke of using thousands of high speed games to mathematically verify the correctness of a change was 'tricked' out of him -- someone pretending to be GM Larry Kaufman got him to explain his testing methodology in detail. However, refusal to share what you know and sneaky marketing tricks like using nonstandard measures for ply depth and node counts do not make a person guilty of some other offense.

I think that there are a lot of chess programmers who do not like Vas for one reason or another.

I do want to state that I do not think that the board that convicted Vas *thought* they were doing anything improperly (indeed, the majority of them still think that everything was fine). It is not my intention to villify these men. I only want to say that I do not like the process that convicted Vas of wrongdoing and I find the body of evidence that was presented insufficient to warrant the penalties imposed and especially the villification of his name.

I have not seen his name "vilified". I have seen him labelled a "cheater" which is correct. Twice-over, because he first copied crafty and claimed it to be original, then he copied Fruit and did it again. He could "come clean", then show that his latest code is clean, and I think most would accept that and move on. But HE has to take that first step, which is a difficult one for someone to admit...
The Rybka 1.6.1 version has never competed in any ICGA events. It is entirely possible that Vas has broken rules and prehaps even committed a crime in connection with that private beta. But it should not be lumped in with the ICGA case. Similarly, the Rybka beta 1.0 program never competed in any ICGA event. According to my understanding, the first Rybka to win an ICGA event was Rybka 2.0. Evidence used to convict Vas of wrongdoing in ICGA events should only use those programs that competed in ICGA events. If (for instance) Vas had entered an ICGA contest with Rybka 1.6.1 and evidence showed that it was a crafty clone, then that evidence should be used to convict him of ICGA event rules violation. But if that version of Rybka was not used, it does not make sense to use it to punish him for ICGA mishaps.

Punishments related to the ICGA should use evidence from the programs that competed to convict him of wrongdoing in the ICGA events.

There may be other serious misdeeds, but those should be handled separately.

The punishments handed down were unbelievably harsh. The issuing of a news bulletin to various publications around the world calling him a liar and a cheat was way, way over the top.

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: On Dalke

Post by hyatt » Thu Feb 23, 2012 12:35 am

User923005 wrote:
hyatt wrote:
User923005 wrote:
syzygy wrote: Well, among the *programmers* (as opposed to the religious fanatics that seem to be crowding some of the fora), there seem to be a great many that are willing to discuss and share ideas in the open. Btw, I don't think Vas was ever one of them? (Feel free to correct me on this, since I might really be wrong here.)
This is true. Vas plied all the experts for months, wheedling every trick imaginable that they were willing to share. He never divulged his own ideas in return {voluntarily}. Even his greatest accomplishment, the brilliant stroke of using thousands of high speed games to mathematically verify the correctness of a change was 'tricked' out of him -- someone pretending to be GM Larry Kaufman got him to explain his testing methodology in detail. However, refusal to share what you know and sneaky marketing tricks like using nonstandard measures for ply depth and node counts do not make a person guilty of some other offense.

I think that there are a lot of chess programmers who do not like Vas for one reason or another.

I do want to state that I do not think that the board that convicted Vas *thought* they were doing anything improperly (indeed, the majority of them still think that everything was fine). It is not my intention to villify these men. I only want to say that I do not like the process that convicted Vas of wrongdoing and I find the body of evidence that was presented insufficient to warrant the penalties imposed and especially the villification of his name.

I have not seen his name "vilified". I have seen him labelled a "cheater" which is correct. Twice-over, because he first copied crafty and claimed it to be original, then he copied Fruit and did it again. He could "come clean", then show that his latest code is clean, and I think most would accept that and move on. But HE has to take that first step, which is a difficult one for someone to admit...
The Rybka 1.6.1 version has never competed in any ICGA events. It is entirely possible that Vas has broken rules and prehaps even committed a crime in connection with that private beta. But it should not be lumped in with the ICGA case. Similarly, the Rybka beta 1.0 program never competed in any ICGA event. According to my understanding, the first Rybka to win an ICGA event was Rybka 2.0. Evidence used to convict Vas of wrongdoing in ICGA events should only use those programs that competed in ICGA events. If (for instance) Vas had entered an ICGA contest with Rybka 1.6.1 and evidence showed that it was a crafty clone, then that evidence should be used to convict him of ICGA event rules violation. But if that version of Rybka was not used, it does not make sense to use it to punish him for ICGA mishaps.

Punishments related to the ICGA should use evidence from the programs that competed to convict him of wrongdoing in the ICGA events.

There may be other serious misdeeds, but those should be handled separately.

The punishments handed down were unbelievably harsh. The issuing of a news bulletin to various publications around the world calling him a liar and a cheat was way, way over the top.

The press release simply said he had violated ICGA rules, and that the titles he had won had been vacated. It certainly implied he "cheated" by violating rules. Didn't call him a liar anywhere in there...

User avatar
lmader
Posts: 70
Joined: Thu Jun 10, 2010 3:22 am

Re: On Dalke

Post by lmader » Sat Feb 25, 2012 8:14 pm

I think that User923005 has done a good job of expressing the concern (confusion) about the idea that Vas used algorithms (not protectable) from Fruit, as opposed to actually copying implementation, which is protectable and in any case would violate ICGA rules #2.

It would be extremely useful to clarify for User923005 and others why this argument is invalid. Hopefully others can jump in and help make this point, because it is somewhat subtle.

The point, I think, is in clarifying at what level a sequence of programming steps can be called an algorithm, vs at what point a sequence of programming steps represents using someone else's specific implementation.

So, in chess programming, we have an algorithm for evaluating a board position. The input to the algorithm is the board representation, the output is a number representing the evaluation. This algorithm necessarily needs to go through many steps - considering pawn structure, piece mobility, king safety, etc. Each of these steps can be thought of as a component in the evaluation algorithm. Each one of these individual evaluation components is itself an algorithm (i.e, an algorithm to compute how the pawns in front of the king affect its safety). And each evaluation component uses algorithms to do its work (iterate over squares, then bitmask, shift, etc).

At a certain point you could say that the entire chess program is just an algorithm for computing moves, and thus the entire thing can't be protected. Obviously there is a level of abstraction that goes too far when defining the concept of an algorithm. It is this level of abstraction for algorithm definition that must be addressed.

The evaluation of a chess position can be written an infinite number of ways, and the choices made in terms of what to consider, what is useful knowledge vs what isn't, has been an area that chess programmers all do differently, and there is no single best answer. This area is always being changed and improved. The EVAL_COMP document shows that Vas took a huge number of the same eval components as Fruit and used them in the same order.

This is the crux of the issue. User923005 and others argue that Fruit's choice of eval components and the ordering of them is simply an algorithm that is not protectable. This is not true, because the level of creative art involved in arriving at these choices goes way beyond the definition of simple algorithm -> it is the heart of what makes Fruit's algorithm excellent. To say that Fruit's evaluation is just an algorithm that can be taken and used pretty much as is, is to take that level of abstraction too far.

Can others help make this point more clearly? I think it will help a lot of people get this issue.
Thanks.

syzygy
Posts: 148
Joined: Sun Oct 16, 2011 4:21 pm

Re: On Dalke

Post by syzygy » Sun Feb 26, 2012 12:34 am

lmader wrote:I think that User923005 has done a good job of expressing the concern (confusion) about the idea that Vas used algorithms (not protectable) from Fruit, as opposed to actually copying implementation, which is protectable and in any case would violate ICGA rules #2.

It would be extremely useful to clarify for User923005 and others why this argument is invalid. Hopefully others can jump in and help make this point, because it is somewhat subtle.
Although I can't speak for the panel, I'm pretty sure that the anser would be something like: the argument is OF COURSE valid, and all panel members were well aware of the distinction between abstract algorithms and concrete implementations. Therefore they did have this distinction in mind when deciding, on the basis of all the evidence (possibly including the complete lack of cooperation by Vas) that it was more likely than not (or whatever standard of proof was applied) that the rule had been violated.

User avatar
lmader
Posts: 70
Joined: Thu Jun 10, 2010 3:22 am

Re: On Dalke

Post by lmader » Sun Feb 26, 2012 2:37 am

syzygy wrote:
lmader wrote:I think that User923005 has done a good job of expressing the concern (confusion) about the idea that Vas used algorithms (not protectable) from Fruit, as opposed to actually copying implementation, which is protectable and in any case would violate ICGA rules #2.

It would be extremely useful to clarify for User923005 and others why this argument is invalid. Hopefully others can jump in and help make this point, because it is somewhat subtle.
Although I can't speak for the panel, I'm pretty sure that the anser would be something like: the argument is OF COURSE valid, and all panel members were well aware of the distinction between abstract algorithms and concrete implementations. Therefore they did have this distinction in mind when deciding, on the basis of all the evidence (possibly including the complete lack of cooperation by Vas) that it was more likely than not (or whatever standard of proof was applied) that the rule had been violated.
I agree, I'm quite sure that the panel was aware of this distinction. My purpose with that post was simply to try to clarify the issue of what constitutes an (unprotecable) algorithm, because there was a series of posts where one member was arguing that Vas simply reimplemented some algorithms. This argument is erroneous as applied to Rybka's use of Fruit's eval, but this apparently isn't obvious - thus the need for an explanation as to why this is the case.

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: On Dalke

Post by BB+ » Sun Feb 26, 2012 4:05 am

lmader wrote:The point, I think, is in clarifying at what level a sequence of programming steps can be called an algorithm, vs at what point a sequence of programming steps represents using someone else's specific implementation.

So, in chess programming, we have an algorithm for evaluating a board position. The input to the algorithm is the board representation, the output is a number representing the evaluation. This algorithm necessarily needs to go through many steps - considering pawn structure, piece mobility, king safety, etc. Each of these steps can be thought of as a component in the evaluation algorithm. Each one of these individual evaluation components is itself an algorithm (i.e, an algorithm to compute how the pawns in front of the king affect its safety). And each evaluation component uses algorithms to do its work (iterate over squares, then bitmask, shift, etc).

At a certain point you could say that the entire chess program is just an algorithm for computing moves, and thus the entire thing can't be protected. Obviously there is a level of abstraction that goes too far when defining the concept of an algorithm. It is this level of abstraction for algorithm definition that must be addressed.
In private communications with Dalke, I was reduced to trying to explain evaluation features as the subtask hierarchy of the evaluation function. I don't know if that helps or not (it is closer to the vocabulary used in copyright cases, but obviously the ICGA documents shouldn't be written that way).
The evaluation of a chess position can be written an infinite number of ways, and the choices made in terms of what to consider, what is useful knowledge vs what isn't, has been an area that chess programmers all do differently, and there is no single best answer. This area is always being changed and improved. The EVAL_COMP document shows that Vas took a huge number of the same eval components as Fruit and used them in the same order.
The statements about ordering are not quite correct. As I noted to Schröder at one point, it is hard to say anything one way or the other. [The number of ways is not "infinite", but large. There is also the fact that there is a large number of reasonable ways of writing eval, whereas this is not so true with something like move generation].
This is the crux of the issue. User923005 and others argue that Fruit's choice of eval components [...] is simply an algorithm that is not protectable. This is not true, because the level of creative art involved in arriving at these choices goes way beyond the definition of simple algorithm -> it is the heart of what makes Fruit's algorithm excellent. To say that Fruit's evaluation is just an algorithm that can be taken and used pretty much as is, is to take that level of abstraction too far.
I think Dalke argues that such algorithmic design falls under patent law, at least by the current balances struck in the laws. [He has never stated anything explicitly AFAIK, but I sense he takes US copyright/patent law as normative in his commentary].

User avatar
lmader
Posts: 70
Joined: Thu Jun 10, 2010 3:22 am

Re: On Dalke

Post by lmader » Sun Feb 26, 2012 5:03 pm

BB+ wrote:
lmader wrote: The evaluation of a chess position can be written an infinite number of ways, and the choices made in terms of what to consider, what is useful knowledge vs what isn't, has been an area that chess programmers all do differently, and there is no single best answer. This area is always being changed and improved. The EVAL_COMP document shows that Vas took a huge number of the same eval components as Fruit and used them in the same order.
The statements about ordering are not quite correct. As I noted to Schröder at one point, it is hard to say anything one way or the other. [The number of ways is not "infinite", but large. There is also the fact that there is a large number of reasonable ways of writing eval, whereas this is not so true with something like move generation].
Oh, good call. I think I was remembering the ordering of the root search operations, which I think ZW showed was identical.

Post Reply