org.ggp.base.util.propnet.architecture.PropNet
The PropNet class is designed to represent Propositional Networks. A propositional network (also known as a "propnet") is a way of representing a game as a logic circuit. States of the game are represented by assignments of TRUE or FALSE to "base" propositions, each of which represents a single fact that can be true about the state of the game. For example, in a game of Tic-Tac-Toe, the fact (cell 1 1 x) indicates that the cell (1,1) has an 'x' in it. That fact would correspond to a base proposition, which would be set to TRUE to indicate that the fact is true in the current state of the game. Likewise, the base corresponding to the fact (cell 1 1 o) would be false, because in that state of the game there isn't an 'o' in the cell (1,1). A state of the game is uniquely determined by the assignment of truth values to the base propositions in the propositional network. Every assignment of truth values to base propositions corresponds to exactly one unique state of the game. Given the values of the base propositions, you can use the connections in the network (AND gates, OR gates, NOT gates) to determine the truth values of other propositions. For example, you can determine whether the terminal proposition is true: if that proposition is true, the game is over when it reaches this state. Otherwise, if it is false, the game isn't over. You can also determine the value of the goal propositions, which represent facts like (goal xplayer 100). If that proposition is true, then that fact is true in this state of the game, which means that xplayer has 100 points. You can also use a propositional network to determine the next state of the game, given the current state and the moves for each player. First, you set the input propositions which correspond to each move to TRUE. Once that has been done, you can determine the truth value of the transitions. Each base proposition has a "transition" component going into it. This transition has the truth value that its base will take on in the next state of the game. For further information about propositional networks, see: "Decomposition of Games for Efficient Reasoning" by Eric Schkufza. "Factoring General Games using Propositional Automata" by Evan Cox et al.
@author Sam Schreiber