Note: I understand how min-max works and I understand alpha beta pruning
Even if you can only answer one of my questions below I would be infinitely appreciative
No matter how much I try look at it and research I just cannot understand tranposition tables, specifically why we cannot always use the exact value for the SAME position.
I am referring to the psuedocode here here
I read that we also cannot store a move for the UPPERBOUND. Why would this be the case? We already explored ALL the children for that node so can't we be guaranteed to know the optimal move? Why would we not be able to store the best move?
On the contrary we can store the best move for the LOWERBOUND? The branch was pruned and we weren't able to get the best possible response so why would this be the case?
Finally, I understand why we can only use a table at a depth closer to the leaf than the root (since we have more accurate information from a deeper search). What I don't get is for a node that is the SAME as the previously computed (same hash) node why we can't return the value that was found? At least in the case of the UPPERBOUND don't we already have the optimal score we will achieve (since we explored all the child nodes)?
Thanks for any help, this has been frustrating me for so long and I cannot seem to find anything that clarifies these for me online