Method and system for rapid evaluation of logical expressions
First Claim
1. A computing device for rapidly evaluating logical expressions, the computing device comprising:
- a memory space for storing code;
a processor, coupled to the memory space, executing the code to cause the computing device to repeatedly perform operations of;
determining a set of primitives defining some or all of a current state of a model of a virtual or real world;
accessing a set of logical expressions including the primitives, each of the logical expressions being either a true or false statement about the current state of the model, wherein a union of the logical expressions is expressed in one or more directed acyclic graphs; and
computing which of the logical expressions are true statements about the current state of the model by traversing the one or more directed acyclic graphs once exactly in one path from a root node to a leaf node in the one or more directed acyclic graphs.
0 Assignments
0 Petitions
Accused Products
Abstract
Methods and systems capable of determining which subset of a set of logical expressions are true with relatively few evaluations of the primitives that together with any standard logical connectives, make up the logical expressions. A plurality of directed acyclic graphs, each graph including at least one root node, at least one leaf node, and at least one non-leaf node associated with a leaf node. Each node is associated with a, possibly empty, subset of presumed to be true logical expressions. Each non-leaf node is associated with one of the primitives mentioned in any of the logical expressions. Edges are defined between two of the nodes, each edge being associated with a possible value, or range of possible values, of the primitive associated with the node at the tail of the edge. Paths are defined through each of the directed acyclic graphs from a root node to a leaf node by recursively following each edge corresponding to the current value of the primitive at a selected non-leaf node. Lastly, subsets of logical expressions associated with the nodes on the defined paths are collated to yield a subset of logical expressions that are true.
45 Citations
24 Claims
-
1. A computing device for rapidly evaluating logical expressions, the computing device comprising:
-
a memory space for storing code; a processor, coupled to the memory space, executing the code to cause the computing device to repeatedly perform operations of; determining a set of primitives defining some or all of a current state of a model of a virtual or real world; accessing a set of logical expressions including the primitives, each of the logical expressions being either a true or false statement about the current state of the model, wherein a union of the logical expressions is expressed in one or more directed acyclic graphs; and computing which of the logical expressions are true statements about the current state of the model by traversing the one or more directed acyclic graphs once exactly in one path from a root node to a leaf node in the one or more directed acyclic graphs. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for rapidly evaluating logical expressions, the method comprising:
-
maintaining data in a memory space representing a model of a virtual or a real world, and a set of logical expressions including primitives, each of the logical expressions being either true or false about a current state of the model, wherein a union of the logical expressions is expressed in one or more directed acyclic graphs; computing which of the logical expressions are true statements about the current state of the model by traversing the one or more directed acyclic graphs once exactly in one path from a root node to a leaf node in the one or more directed acyclic graphs. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
Specification