Page 1 of 1

Engine for analysis

Posted: Thu Jun 17, 2010 8:05 am
by kirill57
I am not a programmer myself, but I was thinking about learning chess programming in order to make an engine not for game play, but exclusively for chess analysis. I really do not see a practical sense to make engines which will be stronger in 1-1 time control settings, but engine which can be really good in a very long analysis makes perfect sense for professional/correspondence players. Such analysis for just one position can last days, in some cases even weeks. It can use a number of different new techniques, comparing to the regular analysis performed by chess engine. In particular I think it can use:
1. A combination of IDEA/Monte Carlo analysis
2. A "true" positional learning, where evaluation function will be adjusted to be best for analyzed position (in particular engine will learn which pieces are more valuable and may be even which positional factors are more important in a concrete position).

However, before trying to waste my time on such an endeavor, I just want to ask real programmers if all this makes sense :).

Re: Engine for analysis

Posted: Thu Jun 17, 2010 11:41 am
by bbauer
Yes this makes sense.
Up to now most developers are only interested in strength which they measure in Elo.
Such a engine may find a good move which wins, but is not the best move.
Example:
rnb1k1nr/p2p1ppp/3B4/1p1N1N1P/4P1P1/3P1Q2/PqP5/R4Kb1 w kq - 0 1

Here vi know that e5 is winning, but it may take some time to find the best move.
Kind regards
Bernhard

Re: Engine for analysis

Posted: Thu Jun 17, 2010 10:03 pm
by 64x
I keep wondering. Much "chess knowledge" is incorporated in chess engines to increase speed. Is it worth challenging those heuristics when it comes to analysis (i.e. relying more on brute force)?. Do they ever cause tactical misses?

On the other hand, maybe the extended amount of time allowed to the engine corrects all those issues. And if so, does that mean that at ultra long time controls elo differences among engines becomes marginal (i.e. at 1 day/move TC top engines are almost equal??

Re: Engine for analysis

Posted: Thu Jun 17, 2010 11:07 pm
by mcostalba
kirill57 wrote:However, before trying to waste my time on such an endeavor, I just want to ask real programmers if all this makes sense :).
No :)

Re: Engine for analysis

Posted: Fri Jun 18, 2010 1:29 am
by kirill57
mcostalba wrote:
kirill57 wrote:However, before trying to waste my time on such an endeavor, I just want to ask real programmers if all this makes sense :).
No :)
And by that do you mean chess programming in general or just chess programming optimized for analysis:)?
Nevertheless I was always wonder why Monte Carlo did significantly improve strength of go programms and was rendered useless for chess? In go it was mainly a substitute for strategy. IMHO strategy is the weakest point of chess engines as well...

Re: Engine for analysis

Posted: Fri Jun 18, 2010 3:03 am
by Sentinel
kirill57 wrote:And by that do you mean chess programming in general or just chess programming optimized for analysis:)?
Nevertheless I was always wonder why Monte Carlo did significantly improve strength of go programms and was rendered useless for chess?
Because of the branching factor.

Re: Engine for analysis

Posted: Fri Jun 18, 2010 5:52 am
by kirill57
Sentinel wrote:
kirill57 wrote:And by that do you mean chess programming in general or just chess programming optimized for analysis:)?
Nevertheless I was always wonder why Monte Carlo did significantly improve strength of go programms and was rendered useless for chess?
Because of the branching factor.
Yes, but in chess there are also many "quiet" positions with many equal candidates where branching factor will be higher. Also Monte Carlo implementations I saw so far are not "optimal" at best. Why not fist to run some deep analysis, and than to use the resulting tree as an "opening book" for MC (with weights according to the EF)? After that lines which looks more promising from MC point of view could be deepened and the entire process could be repeated. I know many positions where EF is completely wrong and I think MC can really help there. Of course this approach is not practical under game conditions, but I am talking about days for just one move...

Re: Engine for analysis

Posted: Fri Jun 18, 2010 6:01 am
by kirill57
And one more point. The learning techniques in the starting position are not very efficient simply because starting position is just too symmetrical. However later in the game when positions become unbalanced they make much more sense. And Monte Carlo is also used to automatically optimized weights in EF for a concrete position.

Re: Engine for analysis

Posted: Sun Jun 20, 2010 5:54 pm
by kirill57
So, my quesion is are those ideas valid or it was tried before and it was a dead end?

Re: Engine for analysis

Posted: Tue Jun 22, 2010 6:19 am
by BB+
Looking at the titles of papers in the recent "Advances in Computer Games", it seems that Monte Carlo is a trendy subject, at least for academic boffins. http://www.springerlink.com/content/k723933hu624

Adding Expert Knowledge and Exploration in Monte-Carlo Tree Search
A Lock-Free Multithreaded Monte-Carlo Tree Search Algorithm
Monte-Carlo Tree Search in Settlers of Catan
Evaluation Function Based Monte-Carlo LOA
Monte-Carlo Kakuro