i was reading some post i cant remember where , it was the author of zappa talking about rybka .he seemed to say that mostly rybka was just a very very fast searcher with only a hint of knowledge and that vas made the false nps to hide that fact . so it got me thinking how important is knowledge and how important is the search ? so if there is any trueth to what was said about rybka then it seems that counting beans might be the most important thing .because rybka is the strongest you have to conclude that the search is most important . lets say there was a program that had no knowledge , the only thing it did was count the number of pieces each side had and that was the score , like 1 = pawn 3 knight etc etc .the king was value at 100 . no other considderation were made passed pawns etc etc . but it was ran on a super computer that can do 900,000,000,000,000,000 knps would it be beatable ??? it was brute force no selectivity . plus how much faster would rybka be if it had no knowledge ? is the nps displayed by rybka true or does it show a lower number ? if so what should the number be if you were getting 135 knps ???
Hi !
Take a look here-please:
http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?tid=3172
Regards,
Silvian
Take a look here-please:
http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?tid=3172
Regards,
Silvian
yep thats where i read it , i guess the part i remember the most is this """There is no equivalent to null move, history pruning, or even
singular extensions. For two years, whenever things were becoming
boring computer chess enthusiasts could always debate about what
Rybka's secret was. In hindsight, Vasik must have been quite amused
by those discussions, because Rybka's "secret" was simply to be super
optimized to 3 or 4 times faster than everything else.
There is only one thing that is really interesting about Strelka: that
a search is still important. A lot of people (myself included, under
the dark school of Diepeveen) thought that 16-18 or at most 20 ply was
sufficient for any position. Obviously, we were wrong. This is why I
said earlier that I thought Vasik went in a different direction (at
least from me). While I was trying to improve the evaluation, he was
trying to optimize his program, and since Rybka gets about 4-5 more
plies than Zappa, his 5 ply search, especially in quicker games,
proved better than my heuristical evaluation.
Anyway, from an engineering standpoint Strelka (rybka) is fantastic.
It packs most of the search and evaluation of Fruit/Crafty into
something almost 3 times faster. For those of you that have never
written code, 3 times is quite a bit, considering that Fruit and
Crafty are already reasonably well coded. Rybka is even faster than
the ultimate beancounter, Fritz 5, while having a lot more under the
hood. And this is why I said that Strelka was more a source of
motivation than insight, because I had never really taken the time to
optimize Zappa, persuaded by the standard CS doctrine of "don't waste
your time trying to improve the constants on an exp-time algorithm".
bean counter thats where i herd that before ,anyway he seems to think his eval is alot better and that rybka is just a case of superfast search .maybe he is right and if he is ????? im not so sure , then maybe thats why rybka 3 is taking so long to produce ( make better) because it was about as good as it get search wise. while adding more knowlwdge on the surface seems the right move it will take away the biggest thing it had going for it ,the superfast search . so i bet indeed vas had to work hard real hard to keep rybka from slowing down to the point where the extra knowledge would be useless .
but i still wonder if the search is the key factor in computer chess ,it always seems to be .
singular extensions. For two years, whenever things were becoming
boring computer chess enthusiasts could always debate about what
Rybka's secret was. In hindsight, Vasik must have been quite amused
by those discussions, because Rybka's "secret" was simply to be super
optimized to 3 or 4 times faster than everything else.
There is only one thing that is really interesting about Strelka: that
a search is still important. A lot of people (myself included, under
the dark school of Diepeveen) thought that 16-18 or at most 20 ply was
sufficient for any position. Obviously, we were wrong. This is why I
said earlier that I thought Vasik went in a different direction (at
least from me). While I was trying to improve the evaluation, he was
trying to optimize his program, and since Rybka gets about 4-5 more
plies than Zappa, his 5 ply search, especially in quicker games,
proved better than my heuristical evaluation.
Anyway, from an engineering standpoint Strelka (rybka) is fantastic.
It packs most of the search and evaluation of Fruit/Crafty into
something almost 3 times faster. For those of you that have never
written code, 3 times is quite a bit, considering that Fruit and
Crafty are already reasonably well coded. Rybka is even faster than
the ultimate beancounter, Fritz 5, while having a lot more under the
hood. And this is why I said that Strelka was more a source of
motivation than insight, because I had never really taken the time to
optimize Zappa, persuaded by the standard CS doctrine of "don't waste
your time trying to improve the constants on an exp-time algorithm".
bean counter thats where i herd that before ,anyway he seems to think his eval is alot better and that rybka is just a case of superfast search .maybe he is right and if he is ????? im not so sure , then maybe thats why rybka 3 is taking so long to produce ( make better) because it was about as good as it get search wise. while adding more knowlwdge on the surface seems the right move it will take away the biggest thing it had going for it ,the superfast search . so i bet indeed vas had to work hard real hard to keep rybka from slowing down to the point where the extra knowledge would be useless .
but i still wonder if the search is the key factor in computer chess ,it always seems to be .
I'm not a programmer or much of a theorist about chess or chess engines, but from my limited perspective, a high search speed and depth would only be superior to the extent that it uncovered tactics. If there are no tactics found, then the only goal of the search is to identify which move will lead to the superior position, ie. the position from which favorable tactics are most likely to be devoloped. It's therefore hard, with my limited knowledge of these things, to see how a clean and fast search can by itself be responsible for Rybka's superiority. Without a superior evaluation, the engine would have little idea of what it's searching for and, if it knew, it might not recognize it when it found it.
.
.
Search is a chess engine's substitute for the human concept of planning. Seeing tactics is just a nice side-effect. :-p
Plus you massively underestimate the importance of tactics.
Plus you massively underestimate the importance of tactics.
I think you have misunderstood me, because the essence of what I meant is that tactics are how games are won and lost. That, if anything, would be overestimating the importance of tactics. My point is that if an engine searches deeply and still cannot see any tactics that gain an advantage, then it must have a good evaluation function that knows what a 'good' position looks like because, except for tactics, that's all there is left to look for to achieve an advantage. And if it can achieve the 'good' position it finds with its search, favorable tactics are more likely to be found from this 'good' position than from a bad position. In other words, a 'good' position in itself cannot win a game and has no value in and of itself. Only the tactics that flow from the good position can win games. Searching for and achieving 'good' positions is therefore just a way of creating conditions from which good tactics are likely to be found. Of course, I am taking for granted the premise that favorable tactics flow from good positions much more often than from other kinds of positions.
My ultimate point with regard to Anthony's remarks is that a very fast search will help an engine only if it finds favorable tactics without going through the intermediate step of achieving a superior position first. If it can't find any tactics, then an engine with a great search but a lousy evaluation function has a problem in that it won't know how to play to acheive a good position, and it will have to continue to try to find winning tactics from bad or neutral positions.
My ultimate point with regard to Anthony's remarks is that a very fast search will help an engine only if it finds favorable tactics without going through the intermediate step of achieving a superior position first. If it can't find any tactics, then an engine with a great search but a lousy evaluation function has a problem in that it won't know how to play to acheive a good position, and it will have to continue to try to find winning tactics from bad or neutral positions.
HELLoooooooooooooooo !
And..................the evaluation is a chess engine's substitute for the human concept of ideology on which is based the search (the planning concept of Mr.Vempele) . This is the axiom number 2 !
:):):):):):):):):)
All the best,
Silvian
:):):):):):):):):)
And..................the evaluation is a chess engine's substitute for the human concept of ideology on which is based the search (the planning concept of Mr.Vempele) . This is the axiom number 2 !
:):):):):):):):):)
All the best,
Silvian
:):):):):):):):):)
Hi,
an easy way to understand how more speed (depth) vs. knowledge is benefitial, especially from a programmers point of view is due to the tranformative character of search. Imagine:
a)
- limited depth
- extensive eval
---> extensive evals + limited depth tend to be more unreliable due to:
- exceptions to the "rules"
- tactical oversights
b)
-deeper search
-simpler eval
---> the simple eval tends to be more "stable" due to:
-less expections to more generalized rules
-less tactical oversights
but most important: increased search depth transforms complex positions (where extensive evals would be needed) into a number of simple ones (where the simpler eval is enough). From a programmers point of view additional practical benefits are:
- simpler eval is easier to maintain
- simpler eval is less bugprone
- simpler eval is more intuitive and needs less specialized chess knowledge
BUT this does not mean the most basic of evals is best. Its a tradeoff: How many plies do i need to transform desired knowledge to my simpler knowledge? And which pieces of knowledge are most important? Some people thought that 20+ ply searches would shift the focus on more complex and specialized knowledge as all possible tactics seemed to take place inside that horizen. I think that conclusion was completely wrong. It might be true that the tactical (from a human point of view) potential does not increase that much but the transformative character of search increased. This leads to the paradox (at first sight) that even less and possibly different knowledge is called for in 20+ ply searches in conjunction with lets say 24+ ply searchs..... the first programs to focus in that area will lead the rating lists (and already do)....
regards,
jitugo
an easy way to understand how more speed (depth) vs. knowledge is benefitial, especially from a programmers point of view is due to the tranformative character of search. Imagine:
a)
- limited depth
- extensive eval
---> extensive evals + limited depth tend to be more unreliable due to:
- exceptions to the "rules"
- tactical oversights
b)
-deeper search
-simpler eval
---> the simple eval tends to be more "stable" due to:
-less expections to more generalized rules
-less tactical oversights
but most important: increased search depth transforms complex positions (where extensive evals would be needed) into a number of simple ones (where the simpler eval is enough). From a programmers point of view additional practical benefits are:
- simpler eval is easier to maintain
- simpler eval is less bugprone
- simpler eval is more intuitive and needs less specialized chess knowledge
BUT this does not mean the most basic of evals is best. Its a tradeoff: How many plies do i need to transform desired knowledge to my simpler knowledge? And which pieces of knowledge are most important? Some people thought that 20+ ply searches would shift the focus on more complex and specialized knowledge as all possible tactics seemed to take place inside that horizen. I think that conclusion was completely wrong. It might be true that the tactical (from a human point of view) potential does not increase that much but the transformative character of search increased. This leads to the paradox (at first sight) that even less and possibly different knowledge is called for in 20+ ply searches in conjunction with lets say 24+ ply searchs..... the first programs to focus in that area will lead the rating lists (and already do)....
regards,
jitugo
Knowledge is a way to compansate inadequate search depth.
Search depth will never be enough.
So the knowledge will always be important for engines.
As the search depths increase, the knowledge will help less against weaker opponents.
But against stronger opponents, which can calculate very deep, knowledge will keep its importance.
Knowledge has an effect like "the engine calculates n moves deeper" than without knowledge. ( n depends of the quality of knowledge)
If the extra time caused by adding knowledge is less then the time needed to calculate n moves deeper, it is better to use that knowledge.
This is what happened in the tests used for R3s "more knowledge or more depth" desicion.
for the full discussion :
http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?tid=3377
Search depth will never be enough.
So the knowledge will always be important for engines.
As the search depths increase, the knowledge will help less against weaker opponents.
But against stronger opponents, which can calculate very deep, knowledge will keep its importance.
Knowledge has an effect like "the engine calculates n moves deeper" than without knowledge. ( n depends of the quality of knowledge)
If the extra time caused by adding knowledge is less then the time needed to calculate n moves deeper, it is better to use that knowledge.
This is what happened in the tests used for R3s "more knowledge or more depth" desicion.
for the full discussion :
http://rybkaforum.net/cgi-bin/rybkaforum/topic_show.pl?tid=3377
A program with no knowledge except the basic piece values running at the speed you mention would probably play below 2000 level, maybe far below. It would just play so badly when there was nothing to win; it might open f3, Kf2, and Ke3 for example. But if you add just a few basic rules, say keep the king near the corner with queens on and near the center with queens off, and advance pawns if they don't lose anything, and maximize the number of legal moves available other things being equal, then it might play at GM or even elite GM level I think. If Rybka 3 had only this knowledge it might run 3-4 times as fast, I would guess (Vas could give a more accurate figure). As for NPS, it has been said that if you just add another zero to the NPS displayed by Rybka 2.3.2a you get a number that is pretty comparable to the NPS of other engines.
"A program with no knowledge except the basic piece values running at the speed you mention would probably play below 2000 level, maybe far below. It would just play so badly when there was nothing to win; it might open f3, Kf2, and Ke3 for example. if yoBut u add just a few basic rules, say keep the king near the corner with queens on and near the center with queens off, and advance pawns if they don't lose anything, and maximize the number of legal moves available other things being equal, then it might play at GM or even elite GM level I think."
And if we add a lot of chess knowledges ( not only just a few basic rules ) without any loss in speed ( he he he -nice perspective ! - in this way the pruning functions or/and others new concepts will be used ) ? What do you think ?
Regards,
Silvian
And if we add a lot of chess knowledges ( not only just a few basic rules ) without any loss in speed ( he he he -nice perspective ! - in this way the pruning functions or/and others new concepts will be used ) ? What do you think ?
Regards,
Silvian
Basically you are asking what Rybka's rating on CCRL/CEGT would be if she ran a trillion times faster? No one knows, but I believe the rating would be between 4,000 and 4,500. An interesting sidenote on this; last night I tried to make the best Rybka I could without considering speed (and without asking Vas for new terms), and the tests show that it does play slightly better than normal Rybka given equal speed, but a few Elo worse due to the slowdown. Not surprising, just nice to see theory confirmed in practice.
So for a very deep analysis of a position (say running Rybka for a couple days), would the extra terms that you added result in a better analysis, even though they slow the search somewhat? Or would the loss of a few elo still be evident in very long analyses?
We have no way to determine how much of a gain in strength there would be at such long time limits. If it is the same as at game in one second, probably it would roughly cancel out the slight loss from the slowdown at such levels. But it could be that the gain in strength is far greater at long time limits (it could also turn out to be the opposite, but that seems unlikely to me). My guess is that the "smarter" version would indeed be better at such correspondence-level time limits, and might even be better at tournament time limits like 40/2. If we include this version with Rybka 3 (I don't know this yet) perhaps someone will run such tests to find out.
How did you test? Your hardware is very decent, but I assume you played blitz games?
Not just blitz, but hyperbullet, speeds like game in one second. To measure a gain of 2 Elo with confidence, you need something like 60,000 games, which cannot be played at any normal time limit. You might say that this has nothing to do with normal chess, but our experience with Rybka demonstrates otherwise. Still, the estimates of rating gains from small changes could be way off.
Okay, thanks. I knew you were mainly testing at very short time controls. (And this may have little to do with chess, but still, I would also guess that 60.000 'hyperbullet' games are probably more meaningful to compare the strength of two versions than 60 standard games.) I had just thought that you may have made some tests just to compare which version gains more from longer time limits.
Long games only make sense if the likely Elo difference is much larger, perhaps 30-40 Elo.
I'd be glad to run some tests, as I'm sure others would also. (I have a two-week vacation coming up in mid-August so it would be a good opportunity to let the computer run...)
We hope that you and others will indeed run such tests between different Rybka versions that come with Rybka 3, as well as testing these versions against our nearest rivals.
I think that in case of no knowledge in the evaluation order of moves is important.
The program may never play 1.f3 but play 1.e4 with different order of moves.
I guess that there may be big difference in rating between different order of moves.
I also do not think that it is going to play below 2000 level at the mentioned speed.
Even with bad order of moves it may aboid 3.Ke3 because it may see that the move is losing material.
900,000,000,000,000,000 knps is a lot.
It is 9*10^20 nodes per second.
Assuming braching factor of 7 it means that the program can see everything to depth of 25 plies
I guess this means rating above 2000 even with bad order of moves.
Uri
The program may never play 1.f3 but play 1.e4 with different order of moves.
I guess that there may be big difference in rating between different order of moves.
I also do not think that it is going to play below 2000 level at the mentioned speed.
Even with bad order of moves it may aboid 3.Ke3 because it may see that the move is losing material.
900,000,000,000,000,000 knps is a lot.
It is 9*10^20 nodes per second.
Assuming braching factor of 7 it means that the program can see everything to depth of 25 plies
I guess this means rating above 2000 even with bad order of moves.
Uri
I see another problem with what people are saying: what does one mean by "no knowledge"? Surely, all programs will have some knowledge about material evaluation. If they have this, it is just as easy to input some knowledge on other things such as pawn structure, times when bishop versus knight is better or worse, doubled pawns, etc. With just these simple terms, it would seem to me that any brute force program that searches to 25 ply will have an elo over 3000.
The assumption in this thread is literally no knowledge of anything about chess except the standard basic piece values (1-3-3-5-9). I agree that with just a few key pieces of chess knowledge, a 25 ply program will rate over 3000.
The biggest problem in its play might be the endgame. Without some sense that pushing passed pawns (or pawns in general) is desirable, it will play almost random moves in many endgames unless queening is within the horizon. Even worse, it might go to great lengths to win a pawn in twenty ply while the opponent gets connected passers on the sixth, for example. My estimate of under 2000 was influenced heavily by this issue. If we just add a 1 centipawn bonus for each pawn move, the potential rating would jump a few hundred Elo, I think.
Things are of course dependent on order of moves and order of moves may encourage pushing pawns.
I remember that I tried tests in the past and it seems that additional 3 plies of only material is equivalent to slightly more than additional 1 ply of normal evaluation(of course I could try only for small depth like 3 plies against 8 plies).
It means that 25 plies of only material may be equivalent to 8 plies of normal programs and 8 plies of normal programs is level that is above 2000(I assume some diminishing returns here that means that the value of additional plies of only material is relatively smaller at higher depths).
Uri
I remember that I tried tests in the past and it seems that additional 3 plies of only material is equivalent to slightly more than additional 1 ply of normal evaluation(of course I could try only for small depth like 3 plies against 8 plies).
It means that 25 plies of only material may be equivalent to 8 plies of normal programs and 8 plies of normal programs is level that is above 2000(I assume some diminishing returns here that means that the value of additional plies of only material is relatively smaller at higher depths).
Uri
I think that knowledge is very important when you start but becomes less important when you continue.
The difference between only material evaluation and piece square table evaluation is huge.
When you continue to add knowledge the difference becomes smaller.
The difference between one hour of work about evaluation that includes at least piece square table and one day of evaluation can be also big.
The point is that the difference between one week of working on the evaluation and one year of working on the evaluation is relatively small.
For some reason it seems that the author of zappa considers one week of working on the evaluation as unimportant and
I simply disagree with this opinion.
Uri
The difference between only material evaluation and piece square table evaluation is huge.
When you continue to add knowledge the difference becomes smaller.
The difference between one hour of work about evaluation that includes at least piece square table and one day of evaluation can be also big.
The point is that the difference between one week of working on the evaluation and one year of working on the evaluation is relatively small.
For some reason it seems that the author of zappa considers one week of working on the evaluation as unimportant and
I simply disagree with this opinion.
Uri
Powered by mwForum 2.27.4 © 1999-2012 Markus Wichitill
