The selection from among those and others mentioned in other answers to the question is important, yes, and there are conceptual overlaps, but those are not algorithms.
Minimax, Alpha-beta pruning, Monte Carlo tree search are approaches to dealing with the spanning trees of the graphs associated with Markov chains to find an optimum next move based on metrics derived from vertices and edges. There are many potential algorithms that could realize each approach in software.
The best approaches and the best algorithms to realize them depend on many things.
- Dimensions of the data paths
- Hardware utilization options exposed through the operating system, cluster, and language employed
- Desired performance criteria and priorities
- Time requirements
- Skill and knowledge of the development team
Although many frameworks available in Python, Java, and other languages will provide ways to overlap concepts and rapid prototype, you cannot just learn one and the others will fall into place. You can hack through to a working solution for your current problem, but if you want to develop the ability to reliably create reliable software, there are no such shortcuts.
In my experience, the thing to start with is neither of the three. It is the commitment to diligence and thoughtfulness in ML software development. If we, as engineers and researchers do not commit to this, then the unreliability of smart systems we create will, in 50 years, rival the unreliability of cell phone connections. We could, to the detriment of safety and economic stability, exceed the maintainability issues characteristic of much of the middle tier software in production today.
I encourage those entering into this powerful and future-critical field to aim much higher than that.