next up previous contents
Next: Specific opponent modeling Up: Using probability triples Previous: As a betting strategy

As a reweighting factor

The opponent modeling module maintains an array for each opponent with weights for all the hands that opponent can hold. What does the weight for a specific hand represent? For instance assume that the weight for Q$\clubsuit$-T $\diamondsuit$ in Loki's weight table for a particular opponent is 0.60. This weight indicates that if Q$\clubsuit$-T $\diamondsuit$ has been dealt to this opponent then Loki believes there is a $ 60 \% $ chance that this opponent would have played in the observed manner so far in the game. In other words, the weight for a hand is the probability of an opponent's past behavior in a game given a specific pair of cards.

\begin{displaymath}wt = P(\mbox{observed actions} \; \vert \; \mbox{pair of cards}) \end{displaymath}

When an opponent action is observed, the weight table for that opponent is modified to reflect the latest action. In Loki-2 probability triples are used during the postflop rounds (after the three community cards have been dealt) as a reweighting factor to update the weight table of each opponent. Loki-2 computes the PT for each hand the opponent can hold (the community cards and Loki-2's cards are removed from the deck) and multiplies the weight of each hand by the entry in the probability triple that corresponds to the observed opponent's action (see Figure 4.2).

Figure 4.2: Pseudocode for the reweighting algorithm using PTs
...nd] * PT[observed_action];

By using PTs to update the weight tables, the opponent modeling module was simplified. It was also improved since it makes better use of the information provided by an opponent's action by differentiating between a call and a raise, and by not ignoring an opponent's check. For example, assume that the entry in the weight table for the hand A$\clubsuit$-A $\diamondsuit$ is 0.90, and the opponent calls. In the previous reweighting system the weight for A$\clubsuit$-A $\diamondsuit$ would still be high, because the program only distinguished between fold and play. Now, if the PT for A$\clubsuit$-A $\diamondsuit$ in the current context is [0, 0.20, 0.80] then the updated weight for this hand would be $ 0.90 \times 0.20 = 0.18 $ (i.e. A$\clubsuit$-A $\diamondsuit$'s weight times the probability of the observed action). The relative likelihood of the opponent holding A$\clubsuit$-A $\diamondsuit$ has decreased from 0.90 to 0.18 since no raise was made.

However, an opponent might try to deceive Loki by calling with a strong hand instead of raising. The call value of 0.20 in the above example reflects the uncertainty in Loki's beliefs about the actions of this particular opponent. Probability triple values allow Loki-2 to deal with the unreliable information during opponent modeling. This feature was not supported in Loki-1.

next up previous contents
Next: Specific opponent modeling Up: Using probability triples Previous: As a betting strategy
Lourdes Pena