I'm trying to write a chess engine, Min-Maxing works. Now I wanted to implement Alpha-Beta-Pruning, but despite reading about it and watching videos, I must have a severe misunderstanding somewhere.
For Min-Maxing, I build the complete search tree, and evaluate only the nodes at the deepest depth. Then go upwards, and "carry" the scores, without evaluating other nodes; I only compare the carried scores.
For ABP, I also build the complete search tree (?!), and evaluate only the nodes at the deepest depth. Then go upwards, and "carry" the scores; but this time I can often prune nodes, meaning that I don't need to min-max that often, and also don't have to evaluate all nodes at the deepest depth.
Thing is: I'm not limited by the times I have to evaluate nodes, I'm limited by memory (In size and access speed) because I still need to build a tree of millions of nodes, and prune it afterwards.
I assumed ABP should somehow occur earlier, so that I don't even have to create branches, but that doesn't work, since you have to always evaluate the deepest nodes for comparison (So you have to build the tree all the way).
I'm feeling like an idiot here, what do I miss?