Although our initial thoughts about this problem leaned toward a probabilistic approach, it became quickly obvious that the most significant gains would be made through simple mechanical reasoning using Boolean formulae. As we refined our reasoning engine, we realized that logic will only go so far in attacking this problem. Two avenues to improve the performance of a pure reasoning engine are possible. The first is the use of probabilistic information for informing us of the best possible interrogations to make. The other is frequency analysis, in which a player counts the number of times a given card is asked for, and draws inferences from that data.
Both techniques were used to varying degrees of success by other teams. We however, felt that frequency analysis is too brittle a technique to make any strong inferences from. Probabilistic analysis on the other hand, now seems like it would have been useful in guiding our interrogation strategy. By computing the expected number of cards revealed for a certain guess, and optimizing interrogations based on that, a player (such as Group 1 for example) is able to do significantly better than our pure reasoning engine. However, it is important to note that while our player does not use much probabilistic information, its interrogation strategy, among other things, is driven by prior knowledge of the game.