Engine for analysis

Code, algorithms, languages, construction...
Post Reply
kirill57
Posts: 5
Joined: Thu Jun 10, 2010 2:46 am

Engine for analysis

Post by kirill57 » Thu Jun 17, 2010 8:05 am

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 :).

bbauer
Posts: 3
Joined: Thu Jun 10, 2010 7:20 am

Re: Engine for analysis

Post by bbauer » Thu Jun 17, 2010 11:41 am

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
Last edited by kingliveson on Tue Jun 22, 2010 6:04 pm, edited 1 time in total.
Reason: broken fen tag

64x
Posts: 301
Joined: Thu Jun 10, 2010 2:47 am

Re: Engine for analysis

Post by 64x » Thu Jun 17, 2010 10:03 pm

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??

mcostalba
Posts: 91
Joined: Thu Jun 10, 2010 11:45 pm
Real Name: Marco Costalba

Re: Engine for analysis

Post by mcostalba » Thu Jun 17, 2010 11:07 pm

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 :)

kirill57
Posts: 5
Joined: Thu Jun 10, 2010 2:46 am

Re: Engine for analysis

Post by kirill57 » Fri Jun 18, 2010 1:29 am

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...

Sentinel
Posts: 122
Joined: Thu Jun 10, 2010 12:49 am
Real Name: Milos Stanisavljevic

Re: Engine for analysis

Post by Sentinel » Fri Jun 18, 2010 3:03 am

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.

kirill57
Posts: 5
Joined: Thu Jun 10, 2010 2:46 am

Re: Engine for analysis

Post by kirill57 » Fri Jun 18, 2010 5:52 am

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...

kirill57
Posts: 5
Joined: Thu Jun 10, 2010 2:46 am

Re: Engine for analysis

Post by kirill57 » Fri Jun 18, 2010 6:01 am

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.

kirill57
Posts: 5
Joined: Thu Jun 10, 2010 2:46 am

Re: Engine for analysis

Post by kirill57 » Sun Jun 20, 2010 5:54 pm

So, my quesion is are those ideas valid or it was tried before and it was a dead end?

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Engine for analysis

Post by BB+ » Tue Jun 22, 2010 6:19 am

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

Post Reply