As far as I understand, roughly speaking, chess engines work by:
- calculating all possible variations (game tree) up to some depth
- evaluating the final position based on some criteria (material, piece activity...)
- based on this evaluation decide for the best move
I fully understand that to have an efficient engine there are ways to prune certain lines, limiting the depth, etc; but this is not my question.
Question is: Are there any alternative attempts to program a (not necessarily strong, but not random either) chess engine, which does not follow this scheme?