Not logged inRybka Chess Community Forum
Up Topic The Rybka Lounge / Computer Chess / Strelka 2.0
1 2 3 4 5 6 Previous Next  
Parent - By Vasik Rajlich (Silver) Date 2008-01-12 10:30
http://www.quotedb.com/quotes/2181

In practice, for Rybka, this goes up and down. Now, Rybka is getting quite bloated again. There is a constant fight against entropy - both code entropy and "algorithm entropy".

Anyway, computer chess is a funny field, isn't it. 40+ years of work by some of the smarter guys on the planet and what do we really have to show for all of it?

Vas
Parent - By turbojuice1122 (Gold) Date 2008-01-12 15:57
Ahh, nice to see that you've "come out of the woodwork" on the forum on this issue :-).  I remember mentioning back around the end of August that I'd seen you on the list as a "new member", but was surprised you weren't doing at least a little bit of "teasing" before Mexico (though I guess Silvian has been doing enough of that :-)).

Anyway, would you say that there is potentially a similar danger of someone doing this with Zappa (current or future versions), or would it seem too complicated to be able to put the product back into its original form with minor changes and whatnot?  I know that at least theoretically, the same thing could be tried with your program, but I don't know what would be the results, or if it would take far longer to do something meaningful than with Rybka.
Parent - - By Sesse (****) Date 2008-01-11 18:46
By the way, does this code even compile? board.c says, right at the top:


//////////////////////////////////////////////////////////////////////////
// хМХЖХЮКХГЮЖХЪ ОНГХЖХХ ХГ ЯРПНЙХ FEN
void board_from_fen(const char fen[])
{ int pos, i, j;
  char c;

  memset(Board, 0, sizeof(struct board_t));
  pos = 0;


Where is Board supposed to be declared? There are no #includes in that file...

Or is this some funky non-ANSI precompiled header stuff from MSVC?

/* Steinar */
Parent - - By Uri Blass (*****) Date 2008-01-11 18:53
You do not compile board.c

You compile only 3 files

Strelka.c
CONSTS.c
PARSE.c

Board.c is included in strelka.c that has

#include "trans.c"
#include "board.c"
#include "search.c"
#include "eval.c"
#include "genmov.c"
#include "utils.c"
#include "emater.c"

Uri
Parent - - By Sesse (****) Date 2008-01-11 18:55
Oh my, that's ugly. :-)

/* Steinar */
Parent - - By Anthony C (*) Date 2008-01-11 19:02
It probably helps the compiler generate better code.  Most compilers (especially simple ones like gcc) don't do "global" (between files) optimizations like inlining or register allocation.

anthony
Parent - By Sesse (****) Date 2008-01-11 19:15
I'd contend that even in a performance-critical piece of code like a chess engine, most functions do not really need to be inline. I mean, inlining too much _hurts_ performance...

/* Steinar */
Parent - By Sesse (****) Date 2008-01-11 20:12
By the way, I'm not sure if you can call gcc a "simple" compiler any more -- a lot has happened in the last ten years...

(For the case in question, -combine -fwhole-program will gobble in all files, combine them and do global optimizations on the whole thing. It will only work for C, though, not C++.)

/* Steinar */
Parent - By Sesse (****) Date 2008-01-11 19:09
Oh, by the way, from input_available():

  else {
    GetNumberOfConsoleInputEvents(stdin_h,&val);
    return val > 1;
  }

Finally I understand why I needed to return two events and not one in microwine! :-)

/* Steinar */
Parent - - By Sesse (****) Date 2008-01-11 19:22
Here's a patch to make it compile and run on Linux: http://storage.sesse.net/strelka-2.0beta-linux.patch

It took about half an hour. I wonder if Rybka itself it as easy to port :-)

/* Steinar */
Parent - By Sesse (****) Date 2008-01-11 19:27
OBTW, only tested on 64-bit. You'd probably have to tack on "ULL" for a few of the constants in 32-bit mode.

/* Steinar */
Parent - - By Felix Kling (Gold) Date 2008-01-11 23:53
Maybe Vas should contact you for porting Rybka 3 to Linux :)
Parent - - By Sesse (****) Date 2008-01-12 00:21
Given the paranoia Vas protects his source code with, I sort of doubt it =)

/* Steinar */
Parent - By Banned for Life (Gold) Date 2008-01-12 00:28
Paraphrasing that old line, "He might give you the source code, but first he would have to kill you!". :-)

Alan
Parent - By Debaser (***) Date 2008-01-11 19:26
I do not remember right now the link. But S Markoff, the author of Smarthink appeared in some pictures with Osipov when this afffair started, so he knows him.

Sure Covekta can contact with S Markoff.
Parent - - By hristo (*) Date 2008-01-11 21:12 Edited 2008-01-11 21:35
"In light of the above, I am claiming Strelka 2.0 as my own and will release it in the next few days under my own name. The name of the author with the pen name "Osipov" will be included if he comes forward with hiw own real name, otherwise an anonymous contribution will be noted. The contributions of Igor Korshunov will also be confirmed and noted if appropriate. All usage permissions will be granted with this release."

Vas,
this might be suboptimal and could be rather messy.
Even if some parts of Strelka source belong to you, not all of them do and this would make it difficult to claim 'ownership' on the entire code-base.
Additionally, those who have a claim on some of the source code (outside of your claims) might have released their code under a license that is incompatible with the license under which you want to release.

Better option for you, IMO, is to add your name and 'copyright disclaimer' to the existing source (without claiming ownership on the entire code) and then let the other authors, who might find stolen material, do the same.  If it happens that some portions of the code must be under GPL while others must not (and are under incompatible license), then the code as such can no longer be distributed.

Claiming ownership on the entire code is probably going to be more burdensome to you than it is worth.
However, taking the position that
1) Strelka contains code stolen from Rybka.
2) You want this (#1) to be known.
3) You, currently, have no reasonable way of enforcing your copyrights ... but might do so in the future.

is simpler to understand, defend, and leaves the door open for you to seek justice at some point.

Regards,
Hristo
Parent - - By Vasik Rajlich (Silver) Date 2008-01-12 10:36
Thanks. Indeed, there may be some license issues and I'm not very familiar with them.

How exactly would I go about doing what you suggest?

Vas
Parent - - By hristo (*) Date 2008-01-12 20:01 Edited 2008-01-12 20:07
Hello Vas.
"How exactly would I go about doing what you suggest?"
the best thing is to talk to a lawyer about how to do this.

My suggestion would be to identify the parts that belong to you and itemize them (item #1, #2, etc) and then place a copyright notice in all pertinent files:
"[Item name] Copyright (C) Year-Year Vasik Rajlich.  All rights reserved."

and then include a disclaimer that some or all of the copyrighted items that belong to you were obtained improperly by Strelka's author.

Since the code is out, by doing the above you would not only 'protect' yourself, but also help other developers (especially the commercial guys) who will have a clear warning as to what they should stay away from in order to avoid getting in legal disputes.

Regarding licenses: if you were to claim ownership (which I think you shouldn't) then you have to select the license and if there is anything in the code that is under the GPL then you must release the whole thing under the GPL or not at all.  (Obviously, ideas methods, and procedures don't fall under GPL protection ... only code.)  Besides, if Osipov has some original code then that particular code belongs to him and can't be appropriated, even if he has stolen (verbatim) most of the other code.
One of the points of this 'license - ownership' discussion is that if you take ownership you might be not allowed to (legally) distribute the code and therefore no one will see the items upon which you claim copyright. (It is twisted, but the whole thing is twisted)

This becomes a very tricky situation if you assert ownership ... and I'm not sure it is worth it. 

Protect what is yours and let the vultures croak.

Best Regards,
Hristo

p.s.
Vas,
this whole thing is so preposterous, ugly and disgusting.
Parent - By Vasik Rajlich (Silver) Date 2008-01-14 22:35
Hi,

ok, thanks for the comments. I'm going to hold off on doing anything for now, this will all take some time.

Vas
Parent - - By turbojuice1122 (Gold) Date 2008-01-11 22:30
It's really quite amazing that even with this, there are still people like Geno on TalkChess who are wanting more evidence and such--at this stage, the only logical reason would be so that they or their associates can see exactly what is the stuff that makes Rybka so good, since "more evidence" now would be "these Rybka routines match these Strelka routines, and here is the code"--obviously not a good idea for trying to keep the code secret.

I'm also shocked by some of the logic that these people are using to justify their beliefs--it's worse than a fundamentalist religion in that they are making statements involving elementary logical flaws and then "linking" Strelka to Rybka as engines that use ideas from Fruit.  (After all, how would the person who we call Yuri Osipov have had the idea of this without having already seen Rybka's decompiled code?)  They then do this and forget that Strelka also uses much of Rybka's code and say that the reasons for the similarities are that Rybka is derived from Fruit.  It's really quite incredible.
Parent - - By GenoM (**) Date 2008-01-12 00:52
It's quite hard to understand that if A=B and B=C ergo A=C if your only authority is one person. Isn't it?

Geno at TalkChess
GenoM here
thenewone at KasparovChess
Evgenii Manev, Plovdiv, Bulgaria
Parent - By turbojuice1122 (Gold) Date 2008-01-12 04:11
But that's not the conclusion that some of you all are making.  You're making the following conclusion: A < B and A < C therefore C < B (and sometimes even "C = B").  Here, "<" means "is a subset of" or "contains parts of", A is Strelka, B is Fruit, and C is Rybka.  This is the substance of the entire failed logical chain that some of you all are trying to play up in there and are making yourselves believe every word of it.
Parent - By Watchman (***) Date 2008-01-12 05:44
Very glad to see you do this Vas... It's a shame you have to do this (as I am sure it is a distraction from your work on Rybka... just one example how this effects us all) but what else to do?  If someone like this "Osipov" wants to cheat you (and us) I am very glad you are taking a stand.  Hats off to you...

I would like to encourage anyone who may have a copy of Rybka (or any other commercial engine like Hiarcs... :-P to Harvey)... I would encourage you to pay for it if you haven't done so.  "A laborer deserves his wages," and the simple "treats others how you would wish to be treated" if you were the author of a commercial software product.  Personally I feel I received much more than I paid for with Rybka (having purchased it back at 2.0Beta8).

Hopefully someone here can help you with the licensing issues (and assist in the code theft issues).

Thanks for your work, Vas.

Rob O.
Parent - By BB (****) Date 2008-01-12 16:26

> The author did at first make attempts to hide the Rybka origins


I'm not sure I completely agree about this - especially with the unchanged values of eval.c (which would be trivial to modify), it seems "obvious" that the author is deliberately trying to show that Strelka 2.0 and Rybka 1.0 have some common parts. It is dangerous to devolve to guessing motives (you alluded to possible blackmail), but one can note that there also seems to be a large "Fruit"-iness to the Strelka 2.0 code, and so perhaps the "main purpose" of the Strelka 2.0 distribution is to enlarge the Rybka-Fruit hypothesis. [I particularly like the function "move_order(move)" in utils.c that does nothing but return move - is there any reason for this but to re-use the Fruit name?]
Parent - - By tomski1981 (*****) Date 2008-01-12 23:15
something i came across, maybe somebody found it first... reveals the type of music our cloner likes

http://www.ubl.com/artists/belkaandstrelka/

*sigh* i know it's not very important :(
Parent - By Albert Silver (***) Date 2008-01-16 17:25
Not really. Belka and Strelka were two dogs sent in space together by the Russians in 1960.

Albert
Parent - - By albitex (***) Date 2008-01-14 23:02
I believe to be impossible to maintain secret a source code , for a lot of time.
I live in Turin, the city of the Fiat ( cars industry). In the years 70, the Japanese invaded our city photographing everything. In the following years, the Japanese invaded the market with more beautiful and less expensive models of cars. The Fiat entered a serious phase of crisis (also for other motives).  It assembled her efforts on the improvement of the quality of the her production. And she succeeded in holding up the competition.
Then,  I believe, that the only way that you have for defending your commercial laws, to be  : to create always,  more powerful programs. 
Remembered that the Japanese, have made never a Ferrari!
despite the so many attempts, the so many copies...
Parent - - By noctiferus (***) Date 2008-01-15 20:37
do you mean M..L...? :)
Parent - By albitex (***) Date 2008-01-16 21:57
M..L.. ? non capisco
Parent - By turbojuice1122 (Gold) Date 2008-01-18 15:27
[A few intemperate thoughts now with the Strelka "debate"=]

I cannot believe we still have a few unevolved, leftover stragglers of homo erectus in the TalkChess forum denying the Rybka clone nature of Strelka.  However, they keep going on, and it should be positively annoying for anyone who has a brain significantly larger than a walnut.  The most amusing thing is some keep talking about the supposed "real" nature of 'Yuri Osipov'.  I even recall one comment that to those of "us" in the Kasparov chess forum, he is as real as Vas is to Rybka users.  How incredibly stupid and naive!  When 'Osipov' is interviewed, photographed, and/or otherwise documented by any source of similar reputation to all of the journals, periodicals, etc. in which we've seen Vas (including Chessbase!), then such stupid comments won't be laughable.  If 'Osipov' officially comes forward for something that isn't a spoof with 'his' 'own' 'followers', then we might have something on the board...and even when and if that happens, the comments mentioned above would still be incredibly stupid and naive.

[/intemperate thoughts]
Parent - - By robertj (**) Date 2008-02-15 14:12
Hello Vas,

I am sorry to hear that a release of Strelka 2.0 sources may have damaged Rybka business.

I have implemented Strelka's 2.0 material tables into Crafty. Is that legal? I am trying to improve Crafty for an eventual re-match against GM Kiril Georgiev... http://www.jurjevic.org.uk/chess/crafty/

May I ask if the material tables are based on IM Larry Kaufman's research published in the article: The Evaluation of Material Imbalances, Chess Life, March 1999?

I am running an interesting tournament at the moment...

http://www.jurjevic.org.uk/chess/crafty/Test.html

The version of Crafty in this tournament uses Strelka 2.0 material tables for material evaluation and slightly modified set of original evaluation parameters, which are in jurjevic.cpf, it also has Strelka's assembler Windows routines for 'find_first' and 'find_last', as well as a Windows assembler routine for 'pop_count', in previous versions of Crafty I haven't used these assembler routines (forgot to set the compiler flag), also this version of Crafty has corrected bugs in quiescent search, EL of AEL pruning is switched off.

I use a version of Strelka 2.0 compiled by me, I used similar compilation flags as for Crafty. I think that I can speed up Strelka a bit by using Crafty's assembler 'pop_count', Strelka uses an non-assembler one (haven't done that yet).

I will most likely not run the tournament to the end, I simply want to get an impression how strong Strelka 2.0 is. So far I found that the style of play of Strelka 2.0 and Rybka is similar.

I sorted out a bit Strelka 2.0 sources, looking at the sources one may come to the concussion that the author of Strelka 2.0 is not well versed in C programming (he included .c files into a .c file, a problem which could have been easily sorted out by introducing an additional .h file) or that he does not bother much about these things.

Zappa looks as the slowest engine of all (assuming that one cannot trust Rybka's nps output), and most of the times its search is the shallowest, Rybka's search is the deepest on average, Strelka is deep too, deeper than Crafty with no EL of AEL pruning.

I must admit that I do not understand how Zappa Mexico could have won in Mexico, apparently the Mexico version is only a marginally improved Zappa 1.1, my tests, including this one, show that Rybka is stronger than Zappa.

The games are played from a selected set of Nunn positions in "the silver suite".

May I ask if it is true that Rybka is based on Fruit?

Thanks.
Parent - - By Uri Blass (*****) Date 2008-02-15 18:16
I will be surprised if adding strelka's material table to Crafty makes Crafty better.

I did the opposite than you and tried to remove the material imbalance code from strelka and I found that strelka has clear wrong evaluation of material that no program has when it simply seems to overevaluate pawns.

Inspite of this wrong tables strelka was still strong and only lost by a small margin against glaurung so
my opinion is that the material imbalance tables are not the secret of strelka's strength. 

Strelka's material imbalance tables are based on some evaluation as beginning point and Crafty has not the same beginning point.
I also see no reason to copy and paste strelka's tables with no understanding.

For your question about how zappa won against rybka then I can say the following:
1)Zappa is better in taking advantage from additional processors and I guess that you did not use 8 processors in your test
2)It is possible that zappa had better book and that does not mean that zappa got better positions out of book but that zappa got positions that it knows to play better.

Uri
Parent - - By robertj (**) Date 2008-02-15 18:46
Hello Uri,

> I did the opposite than you and tried to remove the material imbalance code from strelka and I found that strelka has clear wrong evaluation of material that no program has when it simply seems to overevaluate pawns.


My understanding is that the tables contain material scores for all possible material combinations on the board and not only the material imbalance corrections, so I would think that by removing material tables from Strelka 2.0 you would practically remove material knowledge, i.e. Strelka would have no clue that say a queen is more valuable than a pawn.

> Strelka's material imbalance tables are based on some evaluation as beginning point and Crafty has not the same beginning point.


That can easily be scaled, if Crafty's pawn value is a 100, then the scaling factor is 100 / 3399.

> I also see no reason to copy and paste strelka's tables with no understanding.


There is not much to understand here, material values are given for any possible combination of the material on the board and pre-stored in a table for fast access during play, my understanding is that the values were derived using a statistical analysis of high quality games of strong human chess players... http://tinyurl.com/2axzfe

> For your question about how zappa won against rybka then I can say the following: 1)Zappa is better in taking advantage from additional processors and I guess that you did not use 8 processors in your test 2)It is possible that zappa had better book and that does not mean that zappa got better positions out of book but that zappa got positions that it knows to play better.


Right, that could be the explanation. By the way, I think that Crafty has a pretty good parallel algorithm (though I do not understand it). Another though could be that the faster engines calculate (i.e. they run on an 8-core machine) the differences in evaluation between the two engines matters less (as both engines reach 'a critical' depth), just a speculation.
Parent - - By Uri Blass (*****) Date 2008-02-15 19:13
Your understanding is clearly wrong.
The table is table of correction to the original values that are 1 for pawn 3 for knight and bishop 5 for rook 9 for queen.

The problem is that together with bonus for passed pawns the practical value of pawn is more than 1 and strelka simply overevaluate pawns without the material imbalance tables.

I do not know how the tables were achieved and it is only a conjecture.
You basically cannot use tables of another program with different evaluation and hope for improvement.

If you want to improve crafty by material imbalance tables then the way to do it is to build your own tables when the statistics should be based not only on games but also on crafty's positional evaluation that is different than strelka's evaluation.

Uri
Parent - - By robertj (**) Date 2008-02-15 19:43
Hello Uri,

> The table is table of correction to the original values that are 1 for pawn 3 for knight and bishop 5 for rook 9 for queen.


My tests with Crafty show that the tables contain material scores for all possible material combinations on the board and not only the material imbalance corrections, I removed all material evaluation from Crafty and replaced it with Strelka 2.0 tables, i.e. Crafty relies on Strelka 2.0 material tables to say find out how much is queen worth compared to a pawn.

> You basically cannot use tables of another program with different evaluation and hope for improvement.


These tables are generated based on a sound statistical analysis, Crafty had a simple heuristics for material evaluation.

> If you want to improve crafty by material imbalance tables then the way to do it is to build your own tables when the statistics should be based not only on games but also on crafty's positional evaluation that is different than strelka's evaluation.


I see no reason to attempt to correct Strelka 2.0 tables, unless I am going to repeat the same statistical analysis with say different set of games, etc., material versus positional evaluation can be easily scaled.
Parent - - By Uri Blass (*****) Date 2008-02-15 20:36
1)The tables clearly contain material imbalance corrections for many material configuration(and not for every one because the table does not have material  scores for situation when one side has 2 queens).
I do not see how your tests with crafty can show that the table contain  material scores and not material corrections when the code clearly show that strelka has material evaluation except the tables.

2)Chess programs have static evaluation that is not about material imbalance and if one chess program has different static evaluation then it means that the material scores that it needs are different scores.

statistical analysis that is only based on games for scores is simply nosense.
You cannot do statistical analysis and say that KRPPP vs KRN is better for the pawns when you ignore the fact that the program has bonus for passed pawns so it already evaluates KRPPP as better than KRN

If you find based on statistical analysis that the average value of KRPPP vs KRN should be one pawn advantage for the side with the pawns and your program already have average positional evaluation of +1 for the pawns then it is illogical to add to this evaluation another +1 for the pawns.

I do not think that material versus positional can be easily scaled and if you try to add to crafty tables from strelka then I expect crafty to be weaker program.

I simply see no reason to do it and if you want to add material imbalance tables then I suggest that you build your own.
Note that I doubt if the material imbalance table help strelka because strelka may use something that is clearly wrong if one side has more than one queen or more than 2 rooks or more than 2 bishops or more than 2 knights.

You can easily see that the evaluation is not symmetric KNNN vs kb may be evaluated different than KB vs knnn and I do not see why do you insist to use tables of a buggy program.

Strelka is strong but material tables are implemented in buggy way and they are simply not the main reason.

Uri
Parent - - By robertj (**) Date 2008-02-16 00:12 Edited 2008-02-16 00:38

> 1)The tables clearly contain material imbalance corrections for many material configuration(and not for every one because the table does not have material  scores for situation when one side has 2 queens).


You may be right, not for every material configuration.

> I do not see how your tests with crafty can show that the table contain material scores and not material corrections when the code clearly show that strelka has material evaluation except the tables.


Strelka 2.0 material evaluation code is...

  diff = Board->mat_diff;     // ìàòåðèàëüíàÿ ðàçíèöà
  summ = (Board->mat_summ) & 0x3FFFF;       // ìàòåðèàëüíàÿ ñóììà
  flags = 0;
  value = diff * 3399;
  if (summ < MAX_MATERIAL) {
    value += Material[summ].value;
    flags = Material[summ].flags;
  }


and although...

  value = diff * 3399;

is 'outside' the tables it assumes that the relative material values are in 1 : 3 : 3 : 5 : 10 proportion for the imbalance correction...

  if (summ < MAX_MATERIAL) {
    value += Material[summ].value;
  }


to work.

My Strelka 2.0 material evaluation implementation in Crafty goes as follows...

/*
**********************************************************************
*                                                                    *
*   material calculated based on Strtelka 2.0 material tables, which *
*   are probably based on IM Larry Kaufman's research published in   *
*   the article: The Evaluation of Material Imbalances, Chess Life,  *
*   March 1999.                                                      *
*                                                                    *
**********************************************************************
*/
  if (material_table) {
    wq = TotalWhiteQueens;
    bq = TotalBlackQueens;
    wr = TotalWhiteRooks;
    br = TotalBlackRooks;
    wb = TotalWhiteBishops;
    bb = TotalBlackBishops;
    wn = TotalWhiteKnights;
    bn = TotalBlackKnights;
    wp = TotalWhitePawns;
    bp = TotalBlackPawns;
    summ = wq+bq*2+wr*4+br*12+wb*36+bb*108+wn*324+bn*972+wp*2916+bp*26244;
    summ &= 0x3FFFF;
    diff = (wq-bq)*10+(wr-br)*5+(wb-bb)*3+(wn-bn)*3+(wp-bp);
    value = diff * 3399;
    if (summ < MAX_MATERIAL) {
      value += MaterialTable[summ].value;
    }
    score = value * pawn_value / 3399;
  }


where normally...

pawn_value = 100

and, when using the tables, all...

knight_value = 325
bishop_value = 325
rook_value = 500
queen_value = 975


are ignored.

> Statistical analysis that is only based on games for scores is simply nosense. You cannot do statistical analysis and say that KRPPP vs KRN is better for the pawns when you ignore the fact that the program has bonus for passed pawns so it already evaluates KRPPP as better than KRN. If you find based on statistical analysis that the average value of KRPPP vs KRN should be one pawn advantage for the side with the pawns and your program already have average positional evaluation of +1 for the pawns then it is illogical to add to this evaluation another +1 for the pawns.


I do not know how the statistical analysis has been carried out, but somehow it should take into account material and not positional factors.

Is the advantage of a bishop pair a material or a positional factor? I understand that most programs treat bishop pair bonus as a non-material score (I think Crafty does too). All which is already covered in the material tables should not be re-evaluated as a positional factor. I'll check Crafty's code and see which evaluation terms need to be disabled when using the tables. Thanks for pointing this out.

> Strelka is strong but material tables are implemented in buggy way and they are simply not the main reason.


I do not know why Strelka is strong, but the material tables look to me as a good idea.
Parent - - By Uri Blass (*****) Date 2008-02-16 05:57
You cannot have material table that does not consider positional factors assuming that you have positional evaluation that is not based on the material in the board(and not to evaluate passed pawns or mobility is a bad idea)

material table is basically table of corrections to scores that the program has without the table.
Crafty and Strelka have different evaluations so you cannot take table from one and put it in another program without demage to playing strengh,

You may delete code for bonus for bishop pairs but there are positional factors that are non constants and not only about material imbalance.

Example:
Strelka has bonus for passed pawns and Crafty also has bonus for passed pawns.
If you analyze games and use statistics then in most cases of  KPPPPP vs KNPP the sides with more pawns has passed pawns and get
some bonus for passed pawns.

If the average positional score when you do not consider material is 0.3 pawns for Crafty and 0.6 pawns for strelka then strelka needs different score for the KPPPPP vs KNPP to correct the positional evaluation.

You may try to Compare strelka's score and Crafty's score in many positions from games in order to see how to change the material imbalance scores but if you plan to do something like that then I think that it is simpler to take games and use them to calculate different tables without strelka.

Uri
Parent - - By robertj (**) Date 2008-02-21 19:15 Edited 2008-02-21 19:17
Hello Uri,

> You cannot have material table that does not consider positional factors assuming that you have positional evaluation that is not based on the material in the board (and not to evaluate passed pawns or mobility is a bad idea)


Strelka 2.0 material table does not care where the pieces are and in that sense the corrections are not positional.

> Material table is basically table of corrections to scores that the program has without the table. Crafty and Strelka have different evaluations so you cannot take table from one and put it in another program without damage to playing strength.


My understanding is that material table accounts for various material combinations, RP vs BN, RP vs BB, BB vs NN, BB vs BN, and all this taking into account the whole material on the board, i.e. evaluation of BB vs BN depends on the number of pawns on the board, etc. Of course, in that 'material' evaluation there is a 'positional' element, say BB is better then BN when there are less pawns on the board, probably because of the bishops' mobility, but the bishops' mobility has not been exactly calculated, we do not know if the pawns are actually blocking the bishops or not. You can look at the material table score corrections as to account to piece synergy, i.e. P + P is not always 2 * P, etc.

> Example: Strelka has bonus for passed pawns and Crafty also has bonus for passed pawns. If you analyse games and use statistics then in most cases of  KPPPPP vs KNPP the sides with more pawns has passed pawns and get some bonus for passed pawns.


If you look at PPPPP vs NPP evaluation correction in the material table as a synergy effect, then passed pawns should be evaluated separately.

> If the average positional score when you do not consider material is 0.3 pawns for Crafty and 0.6 pawns for strelka then strelka needs different score for the KPPPPP vs KNPP to correct the positional evaluation.


Material is material and the table should account for piece synergy correctly no matter how you evaluate your positional score, if I got the ratio between material and positional score right is another matter.

> You may try to Compare strelka's score and Crafty's score in many positions from games in order to see how to change the material imbalance scores but if you plan to do something like that then I think that it is simpler to take games and use them to calculate different tables without strelka.


I have done some comparison between Streelka's 2.0 (complete, not only material) and Crafty's evaluation and I have got that the average absolute difference (calculated based on a relatively large number of positions evaluated when searching a test suite to a fixed depth) is about 1 pawn.

I have done this to see if this difference is correlated to playing strength (not to correct the material table).
Parent - By Uri Blass (*****) Date 2008-02-22 02:59
I asked vasik about your question and his reply was:

"thanks. Yeah, for an open source engine like Crafty I will allow it."

Note that I understand that the table does not consider positional factors and this is the reason that I believe that you cannot expect the same table to be good for all programs.

I understood that the table is about different material combinations but
the table basically correct positional evaluation that is different without the tables.
You may need different corrections for different programs

Suppose that the average positional score of strelka without the tables for KPPPPP vs KNPP is +1 pawn for the pawns because of bonus for passed pawns and suppose the average score based on statistics is 50%

It means that Strelka needs to have score of -1 pawns in the table for KPPPPP vs KNPP to correct the positional score to show average of 0 score.
If the positional score of Crafty is only 0.5 pawns for the side with more pawns then crafty may need -0.5 pawns in the tables to correct the positional score.

You cannot expect table of one program to be used in another program with positive result and the problem is not only direct bonus for specific material structures but also indirect bonuses of mobility and passed pawns that are different for different programs. 

Uri
Parent - - By Uri Blass (*****) Date 2008-08-17 19:36

>In light of the above, I am claiming Strelka 2.0 as my own and will release it in the next few days under my own name. The name of the author with the pen name "Osipov" will be included if he comes forward with hiw own real name, otherwise an anonymous contribution will be noted. The contributions of Igor Korshunov will also be confirmed and noted if appropriate. All usage permissions will be granted with this release.


I wonder how many days are "next few days".
Parent - - By Rolf (*) Date 2008-08-17 20:54
Were you the only one who didnt understand what that meant in truth? It was bad English and spelled *newe* which means *never* in Oxford English. I decrypted this directly. The "e" spells like the *ä* in GM L(ä)ko. It's a known Magyar l(e)tter.
Parent - - By mihajovics (**) Date 2008-08-22 10:02
Off topic, and picky, I'm sorry... but it's Lékó...
"ä" is not a Hungarian letter.
Parent - - By Rolf (*) Date 2008-08-22 12:53
I meant the German spelt letter -ä- which would be the -e- in the English l-e-tter. Is it similar to the Hungarian spelling in Leko? Sorryx for being offtopic.
Parent - By mihajovics (**) Date 2008-08-22 13:55
Sorry, I  misunderstood you.
All Hungarian vowels have a short and a long form. The longer forms aren't necessarily just longer, but sometimes are pronounced somewhat differently. Here they are:
a - á, e - é, i - í, o - ó, ö -ő, u - ú, ü - ű
The written (spelt?) e is pronounced like bed and é sounds something like Spain, but only the first part of it, because it's a monophthong. Something like the German später.
So yes, ä sounds similar to é, but the latter is longer and more "open".
And ó in Lékó is something like door.
I hope this is what you wanted to know. :)
Parent - - By zwegner (***) Date 2008-08-17 21:12
Rolf is extremely wrong.

Look a little ways up on this page:

> ok, thanks for the comments. I'm going to hold off on doing anything for now, this will all take some time.

Parent - By Uri Blass (*****) Date 2008-08-18 05:26
some time.

How much time are we going to wait?
Parent - - By GCP (***) Date 2008-08-19 19:06

>In the meantime, if someone has information about 'Osipov', please get in touch with me.


In the latest ICGA Journal, there is a report on the 1st CIS Computer Championship. Strelka participated.

There are 2 pictures of Yuri Osipov included in the report.
Parent - - By GCP (***) Date 2008-08-19 20:02
Thanks. I didn't know yet this was a real person and not a fake name.

The ICGA photos are different from that one, but it is clearly the same person pictured.
Up Topic The Rybka Lounge / Computer Chess / Strelka 2.0
1 2 3 4 5 6 Previous Next  

Powered by mwForum 2.27.4 © 1999-2012 Markus Wichitill