1. A method comprising: accessing a database tree having a plurality of nodes; receiving a set of input variable values, a non-empty set of output variables, and information indicative of a node in the database tree; determining, by use of a processor, a traversal cost based on the node and the set of input variable values; determining, by use of the processor, a lower bound based on the node and the set of input variable values, wherein the lower bound corresponds to an upper-bound probability estimate based on one or more of the plurality of nodes and the set of input variable values; pruning one or more of the plurality of nodes based on the traversal cost, the lower bound, and a pruning bound; and returning a result including a non-empty set of output variable values based on the set of input variable values, the node, the traversal cost, and the lower bound.