What percentage roughly of 7-man TBs exist?
> Vas? Who is famous for claiming that EGTBs are good for about 1 Elo?
"An analysis tool is what I am (slowly) putting together.
Writing a chess engine is like building a house. First, you put down the foundation. Then the structure. Then the walls. Finally, you put flowers in the windows.
If you like flowers, you'll just have to be a little patient :)"
~Vas, on Endgames.
"I'm not really much of a flowers guy .. apparently it's a congenital defect :)"
~Vas, on Flowers.
> Yes, this was one of many issues with Rybka that were never addressed
To be fair, most top engines are in the same status when it comes to endgame knowledge, giving high evals to drawn positions where a human can instantly see a side can't make progress.
I guess no programmer found them interesting...
I don't think programmers have been taken the right approach for such endgames, what they do is adding special knowledge for known drawn positions of the board so the engine tags them as 0.00 instead of using normal evaluation. This works for the special positions but leaves huge gaps for similar positions where the knowledge doesn't apply (say, a pawn on a different file doesn't make a difference for a draw result, yet the engine thinks this is winning because here its knowledge doesn't apply.)
With so many possibilities the approach of adding cases one by one becomes impractical, instead, I think the chess engine should change its paradigm of how the positions are searched because the way it builds a tree of lines no longer works, because all the leaf nodes have the wrong winning evaluation. Also, if the position is actually winning, there will be leaf nodes with right evaluation and wrong evaluation, and the engine can't tell them apart, the chance that it picks the wrong move is high.
Instead, I propose that the engine should find ways to win the position, and tag them temporary as 0.00 the ones it can't win. It can be as simple as doing something that I'd call "super-extensions", where the mainline is extended out till the end of the game (at depth 1 this shouldn't be too costly for a single leaf) or till the fail low happens where the engine realizes it can no longer win, or until the score gets to a zenith (say, root eval+4.00 cp, means 4 pawns of progress which should be enough.)
In drawn endgames, the engine will not be able to do that, because eventually 50-move rule hits in, and then, the engine can tag the whole branch without pawn moves and captures, and all the moves that transpose to it as 0.00 (temporarily), and repeat the process somewhere else. It doesn't matter if the position is actually winning, because the engine will go back to it when the other alternatives hit the 0.00 tag. Eventually the engine will be left with positions that are really winning (at least the engine can see from current position to winning position, which means the endgame isn't "dead drawn"), will prune most of the drawish positions increasing speed significantly, or tag all lines 0.00 without deviation so it'll show the right score of the position.
Currently, the engine uselessly and hopelessly reaches very high depths in such positions giving the wrong score, and all that time is wasted, so a good endgame module that takes over, at say, depth 20 onwards, would make a better time spent.
As an example, here's a position Richard Vida posted recently:
It's an obvious draw a human can defend without engine assistance, but most engines think white is totally winning. Heh, I'd love to see the Rybka Cluster analyzing this and showing a wrong winning eval up to several hours of analysis.
Well, here, if the engine switched paradigms, it could see that its mainline can't be won and that there are not possible winning deviations and the position would show a right 0.00 very fast.
Critter is currently analyzing this position correctly but I guess it's knowledge based, or based on fortress recognition that would be something too specific to be useful on other kinds of positions Critter is still analyzing wrongly.
I think the right search approach could solve such positions on the fly, and perhaps it could be used in other stages of the games as well (i.e. when two top non-transposing moves are tied in score, the engine could see and search if one of them could lead to a bigger advantage with "super-extensions".)
Does anyone have a recommended source for system components other than Newegg?
I think Tiger Direct does some shady selling practices like - reselling returns.
Price might average slightly higher than from Newegg, but Amazon is absolutely great on returns.
There does seem to be an expensive way to do this which would be to shrink the TB to only those positions that Rybka gets wrong. You could probably start with the draws at the edge. Only the full six pieces, and only the likely positions... You could then instead of keeping these in a TB (if it is a small enough number), but in the Hash. And they would just have a draw for the evaluation... If you were to do this, you could greatly minimize the need for the TB, and maximize your speed advantage at late endgame compared to an engine that constantly drops into TB checks, and I bet those 10-15 ELO becomes a very small number indeed.
> The reason that it is only worth 10-15 ELO is that the vast majority of the time, Rybka does not have a wrong view of the position
That's fine for games, yes, that's why developers may not care much about it.
On corr games and analysis, however, the positions where Rybka is good don't matter, as other engines will be good on them too. Showing 0.00 correctly or 5.00 correctly doesn't matter there, because the game has already been decided at that point. The positions that matter are those in where the engines have wrong evaluation, as they are the ones that will decide the game one way or the other.
That's why chasing elo is like a dog chasing its tail, if that's what the developer cares about, the true issues will never be resolved.
>There does seem to be an expensive way to do this which would be to shrink the TB to only those positions that Rybka gets wrong.
But this goes way before tablebase positions in 7men tablebases or 8men tablebases, or much more pieces, where even with tablebases Rybka will think it's winning because it avoids the TB positions, and chooses a wrong path that is drawn. That's another reason TBs aren't worth more, engines just avoid positions that lead to those bad endgames, but it's already too late to change game result due to previous mis-evaluations of positions (and curiously, most of the examples I've seen is of drawn positions being scored as wins, won positions scored wrongly as draws are extremely rare.)
While these ideas would be better than what we have (yes, it'd be nice to have "micro-6men TBs" only for positions where the engine needs them), a true breakthrough would be needed, maybe like FinalGen, but without game conclusions or solutions, just on-the-fly solving (at such positions stop focusing in the root in where having the knight at d2 or f3 doesn't make a difference!) to have better evals of positions.
I think we are saying the same thing, I take it back, I think I see your point. The basic engine problems would be accidentally believe it was winning through the engine, yet the TB shows a draw or loss. Or it thinks it is drawn but is actually lost. I honestly don't believe that it would be a problem if it is thought that it is drawn but it was actually winning, I see the problem now. The rarity is actually good for creating the micro TB's and putting it into hash so that the engine can run as full speed as possible. Its expensive because developing the micro TB would be very compute intensive and time consuming to create. But it should only need be done once, and it could be proprietary to Rybka or Chessbase. Unless it was reverse engineered by Crafty. And has anyone explained the difference between reverse engineering and copyright infringement?
Yes it would only be good for games and only for ELO, which at the end of the day is where all the money is. Knowing the truth at the late end game. Not as important, and not as important as beating your opponent and racking points. Not as important for spending developer time, though it would seem that this could easily just become a tuning setting. Knowing the winning answer in seconds, is different than knowing the truth in minutes or tens of minutes.
Powered by mwForum 2.27.4 © 1999-2012 Markus Wichitill