In most games, the size of the search tree is much greater than the size of the state space because there are usually multiple combinations of actions that lead into the same state. For the game of tic-tac-toe with the board size of 4×4, to give an instance, the size of the search tree is 16! 2.09e+13 whereas the size of the state space is only 316 4.3e+07.
This means, of course, that a method such as minimax would needlessly compute the value of the same state many times. Tic-tac-toe also has a lot of symmetries: if we rotate or flip the board, that does not change the value. It would therefore be extremely inefficient to apply minimax directly.
This can be solved using a method known as memoization. A memoized minimax would use a cache to store the already computed state-values. When querying for a value of a state, it would then first look in the cache. If the value of that state had already been computed, it would simply be retrieved from the cache and it would not need to be recomputed. When searching the cache, symmetries can also be exploited: the algorithm can search for the various symmetric versions of the game state as well.