Combining AlphaZero methods with Stockfish methods NOTE: I asked a similar question at the ai stackexchange, but didn't get any satisfying answers, so I will post an updated version of the question here, to see if someone with more of a chess background can answer it.

In short terms: Is it possible to combine the techniques used by AlphaZero with those used by, say, Stockfish? In AI terms that would be combining deep reinforcement learning with alpha-beta pruning. And if so, has it been attempted?

I have only a brief knowledge about how AlphaZero works, but from what I've understood, it basically takes the board state as input to a neural net, possibly combined with monte carlo methods, and outputs a board evaluation or prefered move. To me, this really resembles the heuristic function used by traditional chess engines like stockfish.

So, from this I will conclude (correct me if I'm wrong) that AlphaZero evaluates the current position, but uses a very powerful heuristic. Stockfish on the other hand searches through lots of positions from the current one first, and then uses a less powerful heuristic when a certain depth is reached.

Is it therefore possible to combine these approaches by first using alpha-beta pruning, and then using AlphaZero as some kind of heuristic when the max depth is reached? To me it seems like this would be better than just evaluating the current position like (I think) AlphaZero does. Will it take too much time to evaluate? Or is it something I have misunderstood? If it's possible, has anyone attempted it?

---Reopening motivation---

This closed question may have a good answer in https://www.newinchess.com/komodo-chess-13
You are asking the right question but only want to refine your premise slightly. AlphaZero does indeed search "through lots of positions from the current one first," as you have said, only not precisely via alpha-beta pruning. AlphaZero's makers explain it thus:


  Instead of an alpha-beta search with domain-specific enhancements, AlphaZero uses a general-purpose Monte Carlo tree search (MCTS) algorithm. Each search consists of a series of simulated games of self-play that traverse a tree from root state s root until a leaf state is reached. Each simulation proceeds by selecting in each state s a move a with low visit count (not previously frequently explored), high move probability and high value (averaged over the leaf states of simulations that selected a from s) according to the current neural network fθ. The search returns a vector π representing a probability distribution over moves, πa = Pr(a|sroot).


As you know, most opening and middlegame positions make it impractical to search all relevant chessboard futures, so the question is how to prune the search tree. AlphaZero prunes the tree as explained but, for each relevant chessboard future not pruned, evaluates the position by neural net.

Thus, contrary to your premise (if I grasp your premise correctly), AlphaZero judges not only the position actually on the board but also potential future positions.

If you have had occasion to review Stockfish's source code you will have noticed how straightforward Stockfish's evaluation function is. It's fairly simple and very quick. The speed of AlphaZero's evaluation function naturally depends in part on the hardware on which AlphaZero is run but in the absence of exotic hardware AlphaZero's evaluation can hardly be as fast as Stockfish's. Therefore, significantly, as far as I know, Stockfish has the advantage of evaluating more chessboard futures than AlphaZero can. Your premise is right to that extent.

Nevertheless, AlphaZero


searches more chessboard futures than a human master can, and
apparently evaluates each better than Stockfish can.


This is reportedly how AlphaZero plays better than either.

Insofar as AlphaZero's makers have not released their source, it is hard to say too much more, but meanwhile you may have heard of LCZero, a vigorous open-source attempt to replicate AlphaZero's results. If you have not heard of LCZero, also known as "Leela," then you might investigate when you have some time.