5

This is a speculative question since I don't know if such an engine is even plausible.

The idea: we'll start Stockfish and Leela at the same time using both my CPU and GPU. Within a fraction of a second, both engines will output principal variations. Then we use the other engine's principal variations to influence our search. For example, suppose Stockfish wants to play 1. e4 and Leela wants to play 1. d4. Using this, we move 1. e4 up Leela's move ordering, and do the same for 1. d4 and Stockfish.

In other words, both engines use the other engines' principal variation to influence their search, such that both engines is preferentially searching the other engine's principal variation. Then, combine the results from both engines, e.g. if the engines agree then play the move, and apply other heuristics if they don't. The idea seems straightforward to extend if the principal variations are the same up to 5 moves ahead, etc, and it also sounds obvious that it should produce a stronger engine.

This kind of engine would still be reliant on Leela and Stockfish individually, but be able to take advantage of both CPU and GPU resources. As far as I know there's no engine that does this (GPU engines already use some CPU power, but it's small; CPU engines don't use the GPU at all). So: does this idea work? If so, has anyone tried it? If not, why not?

1
  • Hmmmm. Not sure what this accomplishes. More importantly, it's hard to see how this converges (or am I just being blind today). When you get to the end, how do you pick between the two engine's choices, when they will presumably have different evaluations (hence the different PVs). You've been building out two long variations where each engine plays one color against the other, so we have to assume they have different evaluations of the position.
    – Arlen
    Nov 1, 2019 at 18:23

2 Answers 2

3

This seems to be somehow LeelaFish's approach:

https://github.com/killerducky/lc0/wiki/LeelaFish

More about it here (and probably on more posts in the same forum):

http://www.talkchess.com/forum3/viewtopic.php?t=70803&start=10

2
  • 1
    Thanks for answer. This seems like it's only one way though, with Leela taking advantage of Stockfish's PV. Are there any attempts to make Stockfish take advantage of Leela's PV?
    – Allure
    Oct 31, 2019 at 9:53
  • The reasoning here is that Leela is generally a better evaluator when she doesn't miss lines, while for SF it's blunders tend to be more due to mis-evaluating critical positions. Nov 1, 2019 at 3:14
2

Part of this can be accomplished with Chessbase GUI. There is an option called cloud analysis. It is thougt to use engines in the cloud additional to your own engine. It ever could be used with two local engines, one determining the 1-n main variants, the other to evaluate the variants. A third engine could make proposals for answers to the main moves and so on.

With brute force engines like Stockfish, each engine needs CPU threads and RAM for caching. Loading more than one engine would reduce the rating of each of them. I haven’t tried, but it might be that you can run Leela and p.e. Stockfish in this scenario without reducing performance.

One of the engine would use the proposals of the other, but not the other way. So it is only a partial answer to your question.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.