Antonio Torrecillas wrote:Hi Vincent,
How strong is that stuff?
Rocinante 1.01 PB* with ufo evaluation (material+pst) 1650 elo
Rocinante 2.0 PB* with ufo eval 1750-1800 elo
Rocinante 2.0 PB* with new eval not tested.
Rocinante 2.0 MCTS AB with ufo eval 1850-1900 elo
Rocinante 2.0 MCTS AB with new eval 2000 elo.
Why MCTS AB?
The main drawback of PB* is a double evaluation for leaf nodes (real + pessimistic). The second is a kind of horizont effect, and a last chance effect. If you expand a node and find it quiet you never come back to this node to see deeper.
I tried to overcome the first drawback, doing simply a single leaf evaluation. To overcome the second I was trying to change the way PB* trace down the next node to expand.
Once there I realized that I do reinvent something that already exist. So I applied Upper confidence to tree and a single eval.
So that's a MCTS with the random playout replaced by a fixed depth alpha-beta.
I agree that MCTS with random playout is really weak, but a UCT on top an alpha-beta is another beast.
This is a newborn, let see how it grows.
regard Antonio.
No no i'm not a fan of Monte Carlo at all for computerchess. CNS is far stronger than Monte Carlo of course.
Realize the elo depends upon a lot of factors. I don't think the initial focus should be elo, as that's dependant upon things like what book you use,
what time control you use - and you don't want quick time controls with all these algorithms - and the overhead it costs.
I feel such comparisions aren't fair for experimental search strategies. It requires years of optimization just to get the same amount of nps that the normal chess engines get quite easily. Don't waste time in those optimizations now.
Then furthermore bunches of enhancements and algorithms added to depth limited alfabeta, they won't work in the same manner usually for alternative forms of search. Optimization of such search with such enhancements is a special field of research simply.
You won't manage to do that within a year. It requires nonstop testing what works better for the specific algorithm.
It's about the progress you can make.
Monte Carlo + UCT in itself doesn't allow much of a progress, as basically you're busy adding moves to the search tree in a manner that in advance has too much of an overhead.
You can of course already modify depthlimited alfabeta a tad to do that more efficient than MC + UCT do that.
The interesting thing is to improve CNS and initially compare it in a correct manner. Just against fullwidth alfabeta + hashtable, for the same program.
When you add nullmove, add it for both engines at the same time and then compare again.
Check extensions you also add for both at the same time, and so on.
Then compare that.
This is all big work, but more promising than any monte carlo derivate of course.
Ignore the absolute elorating, that's so so dependant as well upon the evaluation functions quality, it's about comparing the same program with the same program using a different search and measuring the progress possible of the alternative approach.
Todays engines have bunches of search optimizations. Dozens. You won't be able to implement all that so quickly into an alternative approach.
Right now of course a simple fullwidth alfabeta with hashtables will handsdown beat any Monte Carlo chessprogram of course.
The overhead of MC is too huge, in all its incarnations.
Now another thing to consider is that many engines aren't very efficient searchers WITHOUT their forward pruning, but that's for later concern.