# Do chess engines really prune more than 90% of branches?

I was looking at Fritz Online (https://fritz.chessbase.com/) engine's parameters/performance. Here is screen relating to one of made moves.

It means that there was a general depth equals to 15 but some branches were even explored to depth 39. Engine was analysing at average speed 530k positions per second. It lasted 5 sec. so ~2.6M nodes were evaluated.

Let's consider branching factor 3 at each level. Then there are 3^15=14M leaves to evaluate (not taking into account internal nodes). As we see in case of branching factor 3 we have more nodes to analyze (14M) than it really took place (2.6M) (not even considering branches explored deeper than 15).

Branching factor in chess is aproximately 35. I'm aware there are many, many sophisticated techniques to prune branches in search tree. But really from 35 to less than 3? How it's possible that more than 90% of branches are pruned?

Two remarks:

1. Provided parameters/performance come from phase between opening and middlegame. This is NOT taken from ending where branching factor is significantly lower.
2. Depth 15 is not something unusual. In most cases program performed analysis to depth between 13 and 16 in couple of seconds.
• Assess a random chess position, all the moves but a few will look ridiculous to you. Same way engines can prune branches which start with bad moves. – ferit Mar 7 '18 at 6:44
• What is the specific algorithm to do that? Good human player does it intuively and it's hard to provide exact way/algorithm. There are only some psychological researches stating man uses chunks, trajectories, etc. – stanwar Mar 7 '18 at 9:12
• @stanwar That's what it means to have an efficient evaluation function, which roughly is a superposition of a long set of factors (king safety, material difference, mobility, ...) which are weighted differently from engine to engine. The weights are determined heuristically. Here are many links where this is discussed: chess.stackexchange.com/questions/17957/… or chess.stackexchange.com/questions/2204/… or chessprogramming.wikispaces.com/Evaluation – user929304 Mar 7 '18 at 10:10
• Evaluation function can be used to decide which branches to prune. – ferit Mar 7 '18 at 15:47