Not logged inRybka Chess Community Forum
Up Topic Rybka Support & Discussion / Rybka Discussion / Breach vs. assumed violation
1 2 3 4 5 6 7 Previous Next  
- - By RFK (Gold) Date 2015-05-02 03:27 Edited 2015-05-02 03:31
> He was accused of violating ICGA rule 2.

Try and get that elevator of yours to the top floor will you! 

In the opinion of the EC, ICGA’s proceedings and decisions against Mr Rajlich had a double nature: from one side they concerned the evaluation of an assumed violation of ICGA’s tournament rules,


FIDE EC transcript did not say, ''' from one side they were concerned with a breach in tournament rules! Then FIDE would be agreeing with you!

There was no such agreement made-it reads -  concerned the evaluation of an "assumed violation of ICGA's tournament rules

So, you won nothing there either. What you didn't get is punished for making a mockery  of justice -that is what you are really all happy about! Twit. But you're not the brightest bulb in the box to recognize this fact.
Parent - - By bob (Gold) [us] Date 2015-05-02 14:44
They didn't say that because they clearly wrote they were not competent to comment on the rule violation and such, that was beyond their purview, NOT that they agreed with us or not.
Parent - - By RFK (Gold) Date 2015-05-02 16:08
And, clearly the ICGA was likewise  incompetent in making any  determination on a rule violation as well!

That was why FIDE EC could not agree  with you!

If they felt you had competency they would have unequivocally stated as much!

But, "Bob" they made it very clear that you bumbling idiots had no legal expertise at all! eh! No background in law . They may  just as well have said, you were a bunch of fruitcakes, trying to play out an episode of Perry Mason where Hamilton Burger finally wins one over on Perry Mason!
Parent - - By bob (Gold) [us] Date 2015-05-03 00:48
If you read the report, they DID say such.

Consequently, EC has no competence about the merit of ICGA’s decision concerning Mr Rajlich’s behaviour and alleged violations of ICGA internal rules, nor about ICGA’s reconstruction of some alleged facts of “plagiarism” or “cheating” during the World Computer Chess Championships.
Only the national judge, identified in accordance with the rules of international private law, can have jurisdiction on that, applying the relevant national legal order. In other words, about these issues, Mr Rajlich can lodge a complaint in front of the competent ordinary judge but not in front of the EC.
Therefore, all arguments focused on these aspects, raised by the opposing parties, have no relevance for the current proceedings and have to be dismissed.


So they say they have "no competence" to deal with the way ICGA applied its rules, the investigation, etc.

Then

ICGA decided that Mr Rajlich had violated “Tournament Rule 2” of the World Computer Chess Championships and, consequently, disqualified him from the World Computer Chess Championships (WCCC) of 2006, 2007, 2008, 2009 and 2010.
FIDE tournaments rules were not applicable to those tournaments.
ICGA has exclusive competence on the interpretation of their tournament rules.
For any decision concerning a violation of their tournament rules, ICGA has not to respect a given model of procedural rules, even less the principles of a “fair trial”, just because this is not a trial. Exactly as a chief arbiter or a tournament director may impose penalties or disqualify a player from a competition without respecting a given model of procedural rules.


So we are expected to make our own rules and enforce them as we see fit.

And then

There are no violations of any FIDE rules.
For what concerns a possible violation of par. 2.2.2 of the FIDE Code of Ethics, there is no evidence that the members of the ICGA Executive Committee –the only ICGA organ responsible for the decision- did not act in an impartial way.
For these reasons, under this profile, the complaint has to be dismissed.


So all the noise and such was dismissed, we have the right to define our own rules, even more stringent than FIDE's.  With one exception, that the penalty needs to be in writing:

In Swiss law, it is generally accepted that an association may impose disciplinary sanctions upon its members if they violate the rules and regulations of the association. The jurisdiction to impose such sanctions is based upon the freedom of associations to regulate their own affairs. The association is granted a wide discretion to determine the violations that are subject to sanctions, the measure of the sanctions and all procedural rules.
However, in order to impose a sanction an association must satisfy the following conditions (cfr. Swiss Federal Supreme Court 90 II 347 E. 2):
- There must be a sufficiently clear statutory basis for a penalty in the statutes or bylaws of the association.
- The sanction procedure must guarantee the right to be heard.


So through this point, the ICGA has done NOTHING wrong.  Vas had the right to be heard and was requested to present something.  But the preceding point was their ONLY complaint about the ICGA, that the rules do not list a lifetime ban (or any other punishment other than "declaring a program invalid (with no time limit specified)") and that was the basis for their sanction against the ICGA, NOTHING more:

In Swiss law, it is generally accepted that an association may impose disciplinary sanctions upon its members if they violate the rules and regulations of the association. The jurisdiction to impose such sanctions is based upon the freedom of associations to regulate their own affairs. The association is granted a wide discretion to determine the violations that are subject to sanctions, the measure of the sanctions and all procedural rules.
However, in order to impose a sanction an association must satisfy the following conditions (cfr. Swiss Federal Supreme Court 90 II 347 E. 2):
- There must be a sufficiently clear statutory basis for a penalty in the statutes or bylaws of the association.
- The sanction procedure must guarantee the right to be heard.

ICGA has to be invited to modify their statutes in accordance with the present judgement and to consider revising the lifetime ban sanction imposed against Mr Rajlich.


So we were asked to do two things:

(1) clarify the rules and specify whatever penalty possibilities we deem appropriate, in writing.

(2) Consider revising the lifetime ban on Vas' tournament participation.

That was it, end of story.  The ICGA will certainly comply with point (1) above, and in reality, it should have been previously addressed.  But such a case had not come up in the same way previously.  Up until this point all instances of ICGA-recognized rule 2 violation were caught either before the tournament started, or while it was in progress.  Most assume that an association has wide latitude in its ability to sanction rule violations depending on the severity of the rule, the number of times it was done, and how the violated responded to requests for information.  There was a case where an author was banned because he did not comply with the "let us see the source to verify this is not a derivative."  But he did later provide said source and the ban was lifted.  So this has been around for a while, just not in writing.  Something that is easy enough to fix.

NOTHING about the panel, the process or the board was raised as an issue, period.  Just a rule that lacked specificity and which therefore had to fall under the FIDE rule that says no more than 3 years for a ban.  Until the rule is modified and the lifetime ban option will then be perfectly valid so far as FIDE is concerned.

I don't have any intent of continuing to dredge over this.  You guys ought to work for Obama or Hillary Clinton, they need spin-doctors.  You guys are among the best.  But this was not a "slam" of the ICGA.  They pointed out an oversight that can be corrected and this won't be an issue again, period.
Parent - - By RFK (Gold) Date 2015-05-03 05:16 Edited 2015-05-03 05:28
Let's take that one at at time -

> Consequently, EC has no competence about the merit of ICGA’s decision concerning Mr Rajlich’s behaviour and alleged violations of ICGA internal rules, nor about ICGA’s reconstruction of some alleged facts of “plagiarism” or “cheating” during the World Computer Chess Championships.
> Only the national judge, identified in accordance with the rules of international private law, can have jurisdiction on that, applying the relevant national legal order. In other words, about these issues, Mr Rajlich can lodge a complaint in front of the competent ordinary judge but not in front of the EC.


You can certainly make a case that  the ICGA showed little competence in bringing  alleged violations  against Mr Rajlich; had the ICGA relied up legal counsel to begin with in making their case - these issues would not be now  coming to the fore

> ICGA has to be invited to modify their statutes in accordance with the present judgement and to consider revising the lifetime ban sanction imposed against Mr Rajlich.


( re:  Swiss Law -I wouldn't even waste my time with that sidebar. Bring that up  would be fuel for the fire in giving precedence to the  reconsideration of ethics violations prior to 2012.

Again- because you had no legal authority to impose a life time ban -let alone go outside of the ICGA's organizational jurisdiction in encouraging  other organizations to enforce that ban-  which was in and of itself a  malicious driven action,  I would say that the ICGA and its officers are in a great deal of hot water.
Parent - - By bob (Gold) [us] Date 2015-05-03 16:24
We had the "legal authority" to impose a lifetime ban, and still do.  The ONLY shortcoming was not putting that in writing.  That's why they called this a "minor violation" that only deserved a warning so it could be fixed.

There is zero "hot water" to be found here.
Parent - By RFK (Gold) Date 2015-05-03 17:52
Only in your own limited reality! Outside of that your ban does not exist.

How many of these planks put in place to publicly judge some one was ethically, morally just in conduct?

I can go through everyone of these articles and pick it apart one by one and show implied and  bias.

Do you think for a moment a case of malice wouldn't be far behind?!

Operation of the Panel
[a] The Panel shall conduct its discussions on a Web site forum closed to non-members.
All discussions on the Panel’s web site forum shall be in English.
[c] The Panel’s web site shall be operated and maintained by a person or persons invited by the ICGA to do so.
[d] The day-to-day activities of the Panel shall be managed by a Secretariat of three members of the Panel who shall be invited or approved by the ICGA. The ICGA shall have the right to replace members of the Secretariat at its sole discretion upon giving seven days notice on the forum.
[e] For all general decisions relating to the day-to-day running of the Panel and its forum a majority decision of the Secretariat shall suffice. In any matters deemed by the ICGA to be of an especially crucial or controversial nature the ICGA may overrule a decision of the Secretariat.
[f] Anyone against whom an allegation of cloning or creating a derivative has been made on the forum shall have the right to respond in the forum to each and every posting relating to such allegations, provided that such person is a current member of the forum. In the case of persons who have previously been barred from participating in the forum, for example persons previously found by the Panel to have been guilty of cloning, such persons shall be invited by the Secretariat to present their defence to the Panel as and when the Secretariat feels is appropriate.
[g] The Secretariat shall normally decide when an allegation of cloning or creating a derivative program has been sufficiently investigated and discussed in the forum. At such time the Secretariat shall be responsible for presenting to the ICGA the Panel’s report on the allegations, and on the defence if any offered by those against whom the allegations have been made, and on the findings of the Panel as to the veracity or otherwise of the allegations. The Secretariat’s report to the ICGA shall include its recommendations if any as to what action if any should be taken by the ICGA in respect of sanctions against anyone found by the Panel to have been guilty of cloning or creating a derivative. Before making its decisions the ICGA shall invite the accused to present any comments they might have on the Panel’s findings and recommendations.
[h] The ICGA shall consider the reports and recommendations of the Panel and shall at its sole discretion decide upon what action if any should be taken. The sanctions that the ICGA might take against those found guilty of cloning or creating a derivative include but are not limited to:
Banning the guilty person(s) from participation in future ICGA events for any period deemed appropriate by the ICGA;
[ii] Publicizing, wheresoever it deems appropriate, the allegations and the names of those who have been investigated by the Panel and the findings of the Panel;
[iii] Recommending to other computer event organizers the exclusion of persons who have been found guilty by the Panel.
[iv] Annulling any titles that have already been awarded to programs that have since found by the Panel to have been clones or derivative programs, and demanding the return of any prize money paid to the offending programmer(s).
Parent - - By RFK (Gold) Date 2015-05-03 19:20 Edited 2015-05-03 19:49
From where I stand the only way out of this for the ICGA- is possibly to place a disqualification on Rajlich for using crafty as his model  in (what was it 2004 or was it 5?) -

But, the ICGA has to lift  the disqualifications placed on him in 2006, 7,8, 9 and 10.

The  morally corrupt and  unmitigated measure of the intemperate environment established by the ICGA  that  ended up maligning, and   deliberately set about to  character assassinate in a  sustained process  Rajlich , in order to make sure of a verdict of guilty- will never happen again, and demands that the ICGA rescind their verdict on Rajlich with a full apology to the Computer Chess Community that the ICGA will take whatever measures necessary to see that this type of action against anyone never happens again.

[edit]

If the ICGA continues to remain unmoved, refusing to accept its moral obligation to act within the bounds of reason and  moderation, the price for lacking to do is a  high price to pay- in the end,  it will  be the entire computer chess community that ends up paying the price.
Parent - - By bob (Gold) [us] Date 2015-05-03 22:00
1.  There is NOTHING that says the disqualification can't just be mitigated to "indefinite".  Or, as the panel suggested, disqualified until he proves that his code is now clean.

2.  The rule will be changed so that a lifetime ban is no longer in conflict with FIDE rules, since once the penalties are enumerated, FIDE has no issues.

Whether the ban is removed or kept, do you REALLY think it will make any difference to anybody?
Parent - By RFK (Gold) Date 2015-05-03 23:13
The ICGA  is not  in a moral  position to set terms over  what any  individual  needs  to do to  met  conditions by which it will decide whether  to  over turn a  politically motivated   decision. A decision, I might add,  derived at  through the machinations  of its ethically flawed system. A system that will itself disappear into obscurity.
Parent - - By Ugh (*****) [fr] Date 2015-05-04 12:46
Because, Mr Dimwit, who has already been told this very clearly, it is not a "disqualification" of a PROGRAMMER, it's an "invalidation" of the PROGRAM. That's all the TD and your panel process is allowed to do by law.

If this is too difficult for you, the PROGRAMMER can turn up with another program at another event and play. The programmer can turn up even with a modified version of the same program as long as it doesn't contain the alleged infringements. If the programmer says it doesn't then you need to believe him. You can launch another investigation on him, in the same way as with anyone, but you must let him enter. If he turns up with an identical version, you MAY be able to argue NO, but it is debatable, because unclear.

You can't change Rule 2 to give a lifetime ban. This has already been explained. A TD has to act fast for the benefit of keeping the tournament going and sometimes makes mistakes - it is also almost impossible for the accused programmer to put up a defence in the time available during a tournament - to compensate for this, draconian penalties are not allowed. A draconian penalty requires a second body, impartial, full rights to the accused programmer etc etc. If all Levy does is give the TD power to ban for life, he is making another serious error which can again be challenged at FIDE EC or even in the courts.
Parent - - By bob (Gold) [us] Date 2015-05-04 18:43
Please show me the law, giving the specific code, section, sub-section and country of origin.  There IS NO LAW regarding what we can or can not do in a private organization regarding our rules or how we enforce them.

There is NOTHING that says that declaring a program invalid does NOT include the author.  That is your imagination.  Given your poor logic, I assume that Ben Johnson should not have been banned from the olympics, just the drugs he used, which were illegal. 

We are not "changing rule 2 to give a lifetime ban".  We WILL clarify rule 2 as the EC requested to indicate that a lifetime ban is one of the alternatives if one breaks the rule.
Parent - - By Ugh (*****) [fr] Date 2015-05-04 21:28
contract law.

your convoluted use of negations to prove nothing is bulllshitting.

feel free to breach natural justice and all precedents by more legitimate organizations, FIFA, FIDE etc etc by allowing a TD to make life bans when the accused programmer has no proper opportunity to defend, the TD can rely on biased advice and can be wrong, all in the name of keeping the tournament or match going smoothly. Readers can only assume you need the life ban obliteration kill as some kind of fetishistic desire to overule all other considerations. Hyatt fetishistic kill fantasy encoded in rule 2.
Parent - - By bob (Gold) [us] Date 2015-05-04 21:36
He had a "proper opportunity to defend."  He elected to not do so.  That is HIS mistake, NOT ours...

There is no contract law applicable here.  No "consideration given".  This is a rule used by a private organization that has the right to define the rules as it sees fit.  So the penalty was not listed.  That will be fixed.  As far as the rest of this nonsense, I've not seen anything that has changed.
Parent - - By Ugh (*****) [fr] Date 2015-05-04 21:58
It's astonishing  arguing with someone who understands so little.

The defence opportunity, as identified by FIFE EC, was before the ICGA board, not your panel/secretariat. the reason you were not hauled over the coals for extreme bias, was becuse the ICGA argued the board was the deciding body, if you now want to say you were the deciding body that had to be appeared before, then the irrefutable bias argument re-emerges to your detriment. You can't have it both ways. Sorry about that.

there's a contract, real and implied between the tournament organiser (icga) and the entering programmer. it consists of the entry form, the payment, the tournament published rules etc. The rules of what to do and what not to do plus the potential penalties are part of the contract. do you need any more lessons in basic stuff? please go back to school, because i get very bored explaining them to you over and over and over.

I already explained, as have others, that draconian penalties by TDs, referees etc. are not acceptable for the simple reason that the "keep the tournment going" constraint is not compatible with giving an accused person their proper rights. we trade, pragmatically,  a limitation on penalty against necessary speed of decision in these cases. Your desire to give the referee the life ban kill capability says more about your fetishistic desire to kill than anything else. cf. gasolining and tearing apart of prisoners between greyhound buses death fantasies for parallels. Somehow I doubt computer chess is going to allow your inner demons/fetish fantasies to affect its rule systems, but you never know with Levy in charge.
Parent - By Harvey Williamson (*****) Date 2015-05-04 22:26

> The defence opportunity, as identified by FIFE EC,


The 2nd time these mighty guys in FIFE have been mentioned.
Parent - By Banned for Life (Gold) Date 2015-05-04 23:13
The defence opportunity, as identified by FIFE EC, was before the ICGA board, not your panel/secretariat. the reason you were not hauled over the coals for extreme bias, was becuse the ICGA argued the board was the deciding body, if you now want to say you were the deciding body that had to be appeared before, then the irrefutable bias argument re-emerges to your detriment. You can't have it both ways. Sorry about that.

It would have been interested to hear how David Levy finessed this point in Tromsø. No doubt he would have had a much harder time if you had been there! :wink:
Parent - - By bob (Gold) [us] Date 2015-05-04 23:36
David asked Vas to provide something TO THE BOARD, AFTER THE PANEL HAD FINISHED.  That was his "one short" and he refused.  I don't need to have anything any way other than the way it happened.  He had the right to be heard.  He had the opportunity to be heard multiple times.  He refused. 

And for the record, YOU, ME or anyone else is NOT GUARANTEED the right to participate in an ICGA event.  They can exclude programs if they so choose.  It has been done in the past when everyone had to submit sample games for new entries so that their skill level could be judged.  This "contract" is nonsensical, particularly since he has not already entered any future events and then been told "sorry".  So getting onto this year's WCCC does NOT constitute a contract that says you will be welcomed back next year.

You can try to make up all the case law you want, but it doesn't fly.
Parent - - By RFK (Gold) Date 2015-05-05 01:10
Hi Bob,

You have to forgive me- I've explained that I'm not a programmer, but I couldn't help but find these postings of some interest. Seeing your the authority I leave it to you to shed some light on what Russell Reagan might be referencing here?!

Messages

Subject: Re: Fruit 1.0 UCI (with source code) now available

Author: Russell Reagan

Date: 12:58:23 03/17/04

Go up one level in this thread

On March 17, 2004 at 07:25:03, Fabien Letouzey wrote:

>
>Hello,
>
>Fruit 1.0 is now officially available for download
>at Leo Dijksman's WBEC Ridderkerk:
>
>http://wbec-ridderkerk.nl/
>
>Have fun,
>
>Fabien.


Hi Fabien,

Thanks for making your source code available.

We must have very similar thinking processes. I feel like I'm having deja vu
reading some of your source code. I am really amazed at how similar your code is
to mine. It is mostly the lower level classes. I have some of the same files as
you: board.h, color.h, move.h, piece.h, square.h, and they are very similar.
Your implementations of these are basically the struct version of my code (I use
classes for these). From how you name your classes (postfixing _t) to how you
protect duplicate header file inclusion (postfixing _H), there are a lot of
similarities. I feel like I'm reading my own code sometimes :)

There are definite differences though. You use structs where I use classes. You
are definitely farther along than I am. Your board representation is different.
The way you do higher level things like search is definitely different too.

Here is a comparison of our square.h files.

You have: void square_init ();
I have:   square_t::square_t(); // constructor

You have: bool square_is_ok (int square);
I have:   bool is_valid (square_t square);
          bool is_square (square_t square);

You have: int square_make (int file, int rank);
I have:   square_t::square_t (rank_t rank, file_t file); // constructor

You have: int  square_file (int square);
I have:   file_t to_file (square_t square);

You have: int square_rank (int square);
I have:   rank_t to_rank (square_t square);

You have: int file_from_char (int c);
I have:   file_t to_file (char c);

You have: int rank_from_char (int c);
I have:   rank_t to_rank (char c);

You have: int file_to_char (int file);
I have:   char to_char (file_t file);

You have: int rank_to_char (int rank);
I have:   char to_char (rank_t rank);

You have: bool square_to_string (int square, char string[], int size);
I have:   std::string to_string (square_t square);

You have: int square_from_string (const char string[]);
I have:   square_t to_square (const std::string & square_string);

But I have no equivalent to these:

int square_from_64 (int square);
int  square_to_64 (int square);
bool square_is_promote (int square);
int  square_ep_dual (int square);
int  square_colour (int square);
void square_disp (int square);

board.h, color.h, move.h, piece.h are all similar the same ways.

Anyway, I thought it was interesting :)
Parent - - By RFK (Gold) Date 2015-05-05 01:19
Messages

Subject: Re: Fruit 1.0 UCI (with source code) now available

Author: Fabien Letouzey

Date: 04:25:44 03/18/04

Go up one level in this thread

On March 17, 2004 at 15:58:23, Russell Reagan wrote:

>Thanks for making your source code available.


No problem as long as people don't ask too many questions about it :)
More seriously releasing the source code is quite natural for Unix
users and I also thought that would make Fruit less "mysterious".

>We must have very similar thinking processes. I feel like I'm having deja vu
>reading some of your source code. I am really amazed at how similar your code is
>to mine. It is mostly the lower level classes. I have some of the same files as
>you: board.h, color.h, move.h, piece.h, square.h, and they are very similar.
>Your implementations of these are basically the struct version of my code (I use
>classes for these). From how you name your classes (postfixing _t) to how you
>protect duplicate header file inclusion (postfixing _H), there are a lot of
>similarities. I feel like I'm reading my own code sometimes :)


Oh well, glad at least one person in the world can read the code then.
As for some of the idioms you mention, they are quite popular (or used
to be) in the Unix community.

>There are definite differences though. You use structs where I use classes. You
>are definitely farther along than I am. Your board representation is different.
>The way you do higher level things like search is definitely different too.


> ...


The differences are easily explained.  As you might have noticed,
Fruit is an ex ANSI-C program that was "stuffed" into .cpp files.
That explains a lot especially why I have to prepend the "type" to
most function names.

I plan to slowly make use of more and more C++ features, but not in
the near future.  This should not be too difficult though, because my
C style has become more and more "OO"-like over the years.

>Anyway, I thought it was interesting :)


Indeed!

I do hope that it makes it easier for me to make changes.  Of course I
know I lose a bit of speed about everywhere in the code, but I don't
mind for now.

Fabien.
Parent - - By RFK (Gold) Date 2015-05-05 01:22
Messages

Subject: Re: Fruit 1.0 UCI (with source code) now available

Author: Uri Blass

Date: 04:54:57 03/18/04

Go up one level in this thread

On March 18, 2004 at 07:25:44, Fabien Letouzey wrote:

>
>On March 17, 2004 at 15:58:23, Russell Reagan wrote:
>
>>Thanks for making your source code available.
>
>No problem as long as people don't ask too many questions about it :)
>More seriously releasing the source code is quite natural for Unix
>users and I also thought that would make Fruit less "mysterious".
>
>>We must have very similar thinking processes. I feel like I'm having deja vu
>>reading some of your source code. I am really amazed at how similar your code is
>>to mine. It is mostly the lower level classes. I have some of the same files as
>>you: board.h, color.h, move.h, piece.h, square.h, and they are very similar.
>>Your implementations of these are basically the struct version of my code (I use
>>classes for these). From how you name your classes (postfixing _t) to how you
>>protect duplicate header file inclusion (postfixing _H), there are a lot of
>>similarities. I feel like I'm reading my own code sometimes :)
>
>Oh well, glad at least one person in the world can read the code then.
>As for some of the idioms you mention, they are quite popular (or used
>to be) in the Unix community.
>
>>There are definite differences though. You use structs where I use classes. You
>>are definitely farther along than I am. Your board representation is different.
>>The way you do higher level things like search is definitely different too.
>
>> ...
>
>The differences are easily explained.  As you might have noticed,
>Fruit is an ex ANSI-C program that was "stuffed" into .cpp files.
>That explains a lot especially why I have to prepend the "type" to
>most function names.


I use only C file in movei and not C++ but it did not help me to make me easy to
understand the code.

I will probably try to understand it later(I admit that I did not spend more
than an hour on trying to understand your code) because I decided that other
things like getting rid of my magic number that is going have bigger priority.

Uri
Parent - - By RFK (Gold) Date 2015-05-05 01:23
Messages

Subject: Re: Fruit 1.0 UCI (with source code) now available

Author: Fabien Letouzey

Date: 05:55:46 03/18/04

Go up one level in this thread

On March 18, 2004 at 07:54:57, Uri Blass wrote:

>I use only C file in movei and not C++ but it did not help me to make me easy to
>understand the code.


It does not matter if you use C or C++, just pick the one that makes things
easier for you.

>I will probably try to understand it later(I admit that I did not spend more
>than an hour on trying to understand your code) because I decided that other
>things like getting rid of my magic number that is going have bigger priority.


Note that I am not saying "please read my code and learn a lot".
I'm just not going to prevent people from trying.
If you believe this can help you, please do so.

What is your magic number? :)

>Uri

Parent - - By Graham Banks (*****) [nz] Date 2015-05-05 01:48
You'd like this then.

http://www.top-5000.nl/int/fruit.htm

"...I am sorry to say that whether an engine is someone's "own work" makes little sense to me, although I understand that tournament directors would like a clear yes or no.

The reason is that all engines, whether amateur or commercial, share most of the techniques. Alpha-beta (of which PVS, NegaScout and MTD(f) are only derivatives), iterative deepening, check extensions, null move, etc ... are shared by most and have been published, mostly by researchers, some of them more than 30 years ago! Sure there are many different ways to represent the board and pieces but it only affects speed, which rarely amounts to more than a few dozen Elo Points.

There is one component that so far is distinct in each engine (although some older ones were probably "inspired" by Crafty): the evaluation function. But there again the evaluation features are hardly ever very original: the principles of sound chess play can be found in hundreds of books. It's hardly a secret that rooks should be placed on open files, something that Fruit does not even know (though rook mobility partly emulates this piece of knowledge).

So what is left for improvisation? A lot of course, otherwise all engines would be equal. But say in terms of quantity of code they don't represent so much. Among this "lot" I think there is a large place for things that cannot be extracted: programming style and ways of linking engine components, making them work together. Not something that most would consider as a "chess-engine technique" like null move.

OK let's stop here and do a little sum up with Fruit in mind: I can't think of a search feature in it that was not described before. Ditto for evaluation terms (except perhaps a few drawish-endgame rules that activate in one game in a hundred). There are specific principles that I follow in Fruit that gives it a personality somewhat (like never truncating the PV and making sure that mate-depth claims are always correct), but they probably have no impact on strength at all and could even hurt a little.

Can I claim that I have written it all on my own? "Yes", I typed all the code myself. Without help??? Certainly not, hence my point: "it makes no sense".

Sorry for the dramatic style ... One positive point now: instead of seeing engine authors competing against each others, I see them as cooperating (mostly indirectly) and making progress together, since they have so much in common, whether they want it or not.

My opinion anyway ... "
Parent - By RFK (Gold) Date 2015-05-05 03:21
I remember reading that some time back. What I found interesting is that this programmer could see his own programming code reflected  in Fruit-the commonality between the two being  that similar.

But I think Bob is way too  constipated and in need of colonic hydrotherapy before he could even think about  coming to the table for a healthy nourishing  coarse of food for thought!
Parent - By Rebel (****) Date 2015-05-05 06:35
Fine description of R1.
Parent - - By bob (Gold) [us] Date 2015-05-05 03:02
Those are less about "program content" than "programming style".  IE what do you name a class, or a structure, or a variable or a procedure/method, etc.  As opposed to what they do internally, which is where the issue of originality comes from.  For example, most everyone has a procedure called Search(), one called Quiesce(), one called Evaluate(), a board data structure, a move format, a board representation, a procedure to locate book moves, etc, etc, etc.  But the similarity stops there for most.  I could think of several examples, but they have already been discussed ad nauseum.

You might compare this to house builders.  Everyone has a framing crew, a foundation crew, a roofing crew, an exterior finishing crew, an interior crew (drywall, etc), a trim crew (crown molding, door trim, window trim, etc, an electrical crew, a HVAC crew, a plumbing crew.

Or at a different level, a blue print, electric saw, electric drill, hammer, screw driver, level, plumb bob, sweating torch, etc, etc....

But that doesn't make two houses look exactly the same. 

Programming is a similar thing.  Chess people talk regularly (i.e. at CCC).  So the terminology tends to "standardize".  And basic building blocks (Search(), Evaluate(), SEE(), Movgen(), Make(), Unmake(), and such) generally sound similar.  But again, the program internals can both follow the same basic template, use the same basic tricks (IE the #include trick previously mentioned since you can't #include the same file multiple times without getting a lot of errors, so you prevent that by something like this:

file to be included:

#if !defined(ALREADY_INCLUDED)
#    define ALREADY_INCLUDED

#endif

The first time you include that "ALREADY_INCLUDED" is not defined so the entire file is processed, but if you include it again (say when you compile all the source as one big file to make it easier to inline/optimize) ALREADY_INCLUDED is already defined and the code is just skipped over.  Common trick, used in every #include in the standard C library include files, not a sign of copying or non-originality at all.
Parent - - By RFK (Gold) Date 2015-05-05 03:29
I wouldn't trust anything you had to say on this!
Parent - - By bob (Gold) [us] Date 2015-05-05 04:17
You asked, I replied.  I won't reply again.
Parent - - By RFK (Gold) Date 2015-05-05 13:30
I apologize Bob, your right. Forgive my being testy on the subject. My point being that if  the code is that similar by comparison on the surface for the use of ideas -then why couldn't there be further mistaken assumptions of the copying of code deeper down when it came to basic structures of  programming?! Isn't that what is fueling this controversy.
Parent - By bob (Gold) [us] Date 2015-05-05 18:27
What fueled the controversy was that the similarities were present at the lowest level.  The base search is generally built around a 10-line Negamax procedure Ken Thompson published back in the 70's.  But that 10 line bit of code turns into 2,700 lines of code in Crafty, or 1900 lines in stockfish (Crafty has significantly more comments than StockFish).  Those two searches look absolutely nothing alike.
Parent - - By RFK (Gold) Date 2015-05-05 17:37

> For example, most everyone has a procedure called Search(), one called Quiesce(), one called Evaluate(), a board data structure, a move format, a board representation, a procedure to locate book moves, etc, etc, etc.  But the similarity stops there for most.  I could think of several examples, but they have already been discussed ad nauseum.


Are you telling me that other programmers didn't find similarities within their own programming of their chess engines that reflected a likeness to Fruit-in their own instances, perhaps  terrified to come forward to point this out for fear of being labeled themselves cloners?

If it is possible for these instances to exist on the surface - then there is some certainty that they exist on a deeper level.
Parent - - By bob (Gold) [us] Date 2015-05-05 18:23
No.  Nobody cares if one names his search as Search() or Search_Full() or AlphaBeta().  What the ICGA cares about is how those procedures are actually written internally...

As far as your last statement, there is NO "certainty" the similarities exist on a deeper level.  Just compare Crafty search implementation to Fruit.  That is easy enough.  And it will show the point quite clearly.
Parent - By RFK (Gold) Date 2015-05-05 23:47
Okay, thanks for the answer.
Parent - - By Banned for Life (Gold) Date 2015-05-06 01:52
What the ICGA cares about is how those procedures are actually written internally...

Really? What does that mean? Suppose an engine developer goes through the Stockfish search, and takes good notes on what is being done algorithmically. The Stockfish search is well structured and commented to make this as easy as possible. One could easily document the algorithm and formulas used in this search in a single day's work.

I'm not sure if you've done this or not. I'm 100% sure the developers of Komodo have done this, and so have many others. This is the best search out there today, and anybody with any algorithmic skills and some knowledge regarding searching in chess can learn exactly what is being done. They can also use the Stockfish code to test what happens when parts of this chain are modified.

This is a Godsend for anybody wanting to develop a competitive engine today, and anybody wanting to have a competitive engine today is likely to have a search that looks a lot like the Stockfish search. Maybe even one that is algorithmically identical. In fact, it is a virtual certainty that any top engine has a search that looks a lot more like the Stockfish search today than it did a few years ago.

Is anybody at the ICGA tracking this? Of course not. Is this against the rules? Who knows?

As far as your last statement, there is NO "certainty" the similarities exist on a deeper level.  Just compare Crafty search implementation to Fruit.

Similarities don't need to exist if you are willing to live with an engine that is hundreds of Elo weaker than the leaders. But if you want to be competitive, you need a state of the art search. And today's state of the art search is clearly documented for all to see in the Stockfish code. You have to be pretty naive to believe that people are not taking advantage of this.

Note that I am not interested in whether this is recoded or not. The magic of the Stockfish code is inherent in the algorithm. There is nothing special about the coding, other than the fact that keeping it easily readable was obviously a high priority for the developers. But I am quite sure that if the same algorithms were coded by Robert Hyatt, it would be a little faster and a few Elo better...
Parent - - By bob (Gold) [us] Date 2015-05-06 02:41
The code in search.cpp is a small part of the whole stockfish advantage.  Things like the LMR values, and such.  There is so much room for differences.  Yes you can copy it.  But you can study it and extract ideas which will almost certainly be implemented differently.  The down-side to copying is that you almost certainly won't understand what is going on, which means you will be hard-pressed to improve anything.

There are literally hundreds of DIFFERENT ways to implement a search that will cover a pretty similar tree to StockFish, WITHOUT resorting to just cut and paste.

As far as your last statement goes, either you are getting a little more mellow, or you took the wrong medication this morning.  Never recall your saying anything positive about MY programming skills previously.  :)

In any case, tournament rules are always evolving.  Where they will end up will be where the participants want them to end up.  Where that will be my crystal ball won't reveal.  I don't think that from a programmer's perspective, anyone wants to say "anything goes, derivatives welcome".  But that doesn't stop someone from doing such events somewhere.  Until you have been a "programmer" (chess programmer in this context) it is hard to understand where they are coming from.  But those that "are" understand clearly.  To those that "get it" the program is almost an extension of themselves in an odd sort of way.
Parent - - By turbojuice1122 (Gold) [us] Date 2015-05-06 04:01 Edited 2015-05-06 11:29
(comment deleted by user)
Parent - By RFK (Gold) Date 2015-05-06 04:28
No! Bob is purposely being thick! It is an academically acquired skill.
Parent - - By Banned for Life (Gold) Date 2015-05-06 04:37 Edited 2015-05-06 04:41
I wasn't being sarcastic. Bob's programming style is ultra efficient, reflecting his knowledge of what's going on behind the curtains. Marco Costalba, who is the Stockfish coding style guru (he will rewrite any modification that he doesn't like), coding style is almost artistic, but not necessarily most efficient. Anyway, I don't think anyone here or anywhere else seriously questions Bob's ability to write top notch, ultra efficient code. Ironically, the chess problem, being exponential in nature, diminishes the importance of this, or any other linear speedup.
Parent - By turbojuice1122 (Gold) [us] Date 2015-05-06 11:29
Thanks; in that case, I take back my comment.
Parent - By RFK (Gold) Date 2015-05-06 16:57
Bob might know how to write an  effective programming code and  do it expertly from an academic perspective. But to have the creative ability to develop a "program" that is uniquely advanced in every aspect of its coded application- that is another level entirely. Unless of course we  can  imply that    Crafty is  just such an example of that next step in applied technical  expertise.

I would suggest that "Crafty"  was academically  developed to be the model for all chess engines. Not first and foremost as a competing chess engine. My reasoning for this is that once you develop the "perfect" model and start screwing with the  code -the chances for creating  bugs become exponentially greater. Like now Crafty's scoring is bad.
Parent - - By Venator (Silver) [nl] Date 2015-05-06 06:08
:lol:  Bob has no sarcasm detector!
Parent - - By bob (Gold) [us] Date 2015-05-06 16:28
Apparently YOURS is broken to boot...
Parent - By Venator (Silver) [nl] Date 2015-05-15 11:49
How do you know? You don't have one! :lol:
Parent - By RFK (Gold) Date 2015-05-06 04:25

> In any case, tournament rules are always evolving.  Where they will end up will be where the participants want them to end up.  Where that will be my crystal ball won't reveal.  I don't think that from a programmer's perspective, anyone wants to say "anything goes, derivatives welcome".


You guys say that you test each engine before entry- what prevented you from testing Rybka in 2004 and catching the fact that it was pathetically modeled after Crafty? It came in 53rd! :lol: It was a new entry right?

I'm not being sardonic here -it is an honest question.
Parent - - By RFK (Gold) Date 2015-05-06 05:34
I do have another question here for you Bob!

This ICGA response appears to be a knee jerk reaction to the Rybka inquisition. Another  seven years after the fact  later retro complaint.  How much more bazaar can the ICGA get?

From where I'm sitting this is  a show case complaint.

"Hey, Look over here! See,  we aren't just going after Vas-we're going after two other chess engines -one eight years ago and the another five years later.We be cool."

And you dredged up Watkins for the data ceremonials; at least this time around  he isn't shoving the data over to you, Bob,  and there is that same fanfare  that Vas had to put up with when he was tar and feathered.  

The ICGA has received formal complaints against the Chess programs LOOP and THINKER, both of which have participated in the World Computer Chess Championship. LOOP was entered by Fritz Reul into the 2007 WCCC in Amsterdam. THINKER was entered into the 2010 WCCC in Kanazawa.
...
Here we present extracts from the first section of each of Mark Watkins reports.

Loop “The version examined here is Loop 2007 (64-bit), which was released at approximately the same time as the WCCC. There is notable similarity to Fruit in the evaluation function (other components were not examined).”
...
Parent - - By RFK (Gold) Date 2015-05-06 05:37
Yeah! I know Bob! The ICGA only responded to the complaint -how convenient.
Parent - - By bob (Gold) [us] Date 2015-05-06 16:34
That is what triggered the official investigation.  Once participants file a formal protest, there was little choice.  I suppose one additional rule change I am going to suggest is to adopt an official statute of limitations, maybe 1 year or something similar, just to avoid going back SO far...  whether others will agree or not is unknown, however.

For myself, I would be perfectly happy if everyone would simply follow the rules.  But that has never been the case.  For example, I can remember a case with another well-known program where the operator (not the author) used to use the "move now" key during a game, a direct violation of the rules.  He did it so blatantly I caught him on video and showed it to the TD (Mike Valvo).  Mike quietly told him "if you do this again, you and XXX are going to be DQ'ed on the spot."  That seemed to solve it.  Others have been caught using commercial programs modified with a hex editor to look different.  Etc.  For some reason, some take a rule as something to be broken, not followed.
Parent - - By RFK (Gold) Date 2015-05-06 17:02

> ...  I suppose one additional rule change I am going to suggest is to adopt an official statute of limitations, maybe 1 year or something similar, just to avoid going back SO far...  whether others will agree or not is unknown, however.


THAT would have been the sane approach!
Parent - - By bob (Gold) [us] Date 2015-05-06 17:52
As the old saying goes, "live and learn".  Hard to write rules to cover every case until you have actually encountered every case...
Parent - - By Ugh (*****) [fr] Date 2015-05-07 18:53
admission that the case vs Rajlich should never have gone ahead in your opinion, once you are compiling new rules under which it wouldn't have gone ahead. makes no difference, you are still held guilty for your role. No escape.
Up Topic Rybka Support & Discussion / Rybka Discussion / Breach vs. assumed violation
1 2 3 4 5 6 7 Previous Next  

Powered by mwForum 2.27.4 © 1999-2012 Markus Wichitill