The scheme we used to represent knowledge about the game's state space was similar to the well known "logic box" model. At the most basic level we use a disjunctive clause to represent the possible cards that a player can have:
The one basic operation in this scheme is an assertion that a player does not have a certain card. All other assertions are based on this basic operation. For example, to assert that a player has a certain card, we simply assert that all other players do not have the card.
The iterative removal of variables from a disjunction simulates the operation of the Elimination Algorithm. The Elimination Algorithm is an online algorithm for learning monotone disjunction that begins with the assumption that all attributes are included in the disjunction. As new evidence is observed attributes are slowly removed from the hypothesis until only the relevant attributes (the cards that the player has) remain.
We also use some secondary data structures to aid or augment our
basic scheme. First we dichotomize every player's card disjunction
into two sets and
:
This separation is useful for making various inferences.
The disadvantage of this basic scheme is that only one disjunction
is stored, when in fact throughout the game, as other players make
interrogations, we would like to introduce new disjunctions over
the "asked" cards (assuming the interrogated player responded with
a card). To solve this problem, we augment our representational
model by assigning each player a list of clauses. A new clause is
added every time that player is interrogated and he or she
responds with a card. These clauses are exactly like the
disjunctions mentioned above. The only difference is that they
are not required to have a minimum length of . Clauses
are removed when they are redundant with respect some other
clause, or with respect to
.