What is the Minimax Algorithm? Explain the terminologies involved in a Minimax problem.

Minimax is a recursive algorithm used to select an optimal move for a player assuming that the other player is also playing optimally.

A game can be defined as a search problem with the following components:

  • Game Tree: A tree structure containing all the possible moves.
  • Initial state: The initial position of the board and showing whose move it is.
  • Successor function: It defines the possible legal moves a player can make.
  • Terminal state: It is the position of the board when the game ends.
  • Utility function: It is a function which assigns a numeric value for the outcome of a game.