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-T
in Loki's weight table for a particular opponent is 0.60.
This weight indicates that if Q-T
has been
dealt to this opponent then Loki believes there is a
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.
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).
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-A is 0.90, and the opponent calls. In the previous reweighting system the weight for A-A would still be high, because the program only distinguished between fold and play. Now, if the PT for A-A in the current context is [0, 0.20, 0.80] then the updated weight for this hand would be (i.e. A-A 's weight times the probability of the observed action). The relative likelihood of the opponent holding A-A 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.