Open In App

Optimal Decision Making in Multiplayer Games

Last Updated : 21 Feb, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

The optimal solution becomes a contingent strategy when specifies MAX(the player on our side)’s move in the initial state, then Max move to the states resulting for every possible response by MIN. Then MAX’s moves in the states resulting from every possible response by MIN to those moves, and so on.

From the current state, the minimax method in the Figure above computes the minimax choice. It implements the defining equations directly using a simple recursive computation of the minimax values of each successor state. As the recursion unwinds, it progresses all the way down to the tree’s leaves, where the minimax values are then backed up through the tree. In the figure below, for example, the algorithm recurses down to the three bottom-left nodes and uses the UTILITY function to determine that their values are 3, 12, and 8, respectively. Then it takes the smallest of these values, 3 in this case, and returns it as node B’s backed-up value. The backed-up values of 2 for C and 2 for D are obtained using a similar approach. Finally, we add the maximum of 3, 2, and 2 to get the root node’s backed-up value of 3.

The minimax algorithm explores the game tree from top to bottom in depth-first. The temporal complexity of the minimax method is O if the maximum depth of the tree is m and there are b legal moves at each point (bm). For an algorithm that creates all actions at once, the space complexity is O(bm), while for an algorithm that generates actions one at a time, the space complexity is O(m)  The time cost is obviously impractical for real games, but this technique serves as a foundation for game mathematics analysis and more practical algorithms.

Many popular games support multiple players. Let’s look at how to apply the minimax concept to multiplayer games. From a technological standpoint, this is basic, but it introduces some intriguing new philosophical challenges. To begin, we must replace each node’s single value with a vector of values. Each node in a three-player game with players A, B, and C, for example, is associated with a vector <vA, vB, vC>. This vector represents the utility of a terminal condition from the perspective of each actor. The two-element vector can be reduced to a single value in two-player, zero-sum games because the values are always opposite. The UTILITY function returns a vector of utilities, which is the easiest method to accomplish this.

Nonterminal states must now be considered. In the game tree shown in the figure below, consider the node labeled X. Player C decides what to do in that situation. Both options result in terminal states with utility vectors of vA = 1, vB = 2, vC = 6 and vA = 4, vB = 2, vC = 3 respectively. C should make the first move since 6 is more than 3. If state X is reached, further play will result in a terminal state with utilities vA = 1, vB = 2, and vC = 6. As a result, this vector is the backed-up value of X. 

The utility vector of the successor state with the highest value for the player choosing at n is always the backed-up value of a node n. Anyone who plays multiplayer games like Diplomacy quickly realizes that there is a lot more going on than there is in two-player games. Multiplayer games sometimes include individuals forming formal or informal alliances. As the game progresses, alliances are formed and destroyed. The question that comes to our mind is how can one make understand this kind of behavior. Are alliances a natural result of each player’s optimal strategy in a multiplayer game? They can be, as it turns out. Consider the following scenario: A and B are in weak situations, whereas C is in a stronger position. Then, rather than attacking each other, it is generally preferable for both A and B to attack C. Otherwise, C will destroy each of them individually. Collaboration evolves from solely selfish behavior in this way. Of course, the partnership loses its significance as soon as C is weakened by the joint assault, and either A or B could break the arrangement. Explicit partnerships, in certain circumstances, only concretize what would have transpired anyhow. In other circumstances, breaking an alliance carries a social stigma, thus players must weigh the immediate benefit of breaking an alliance against the long-term cost of being viewed as untrustworthy. 

Collaboration can happen with just two participants if the game isn’t zero-sum. Assume there is a terminal state with utilities vA = 1000 and vB = 1000, with 1000 being the highest attainable utility for each participant. The best approach is for both players to do everything they can to get to this point—that is, the players will naturally cooperate to attain a mutually beneficial goal.


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads