Restricting decision trees #
Fixing some variables can only make a function easier to compute by decision trees: answering the
queries fixed by a restriction (partial assignment) ρ in a tree for f gives a tree for the
restricted function f ∘ ρ.fill that is no deeper (DecisionTree.restrict,
DecisionTree.complexity_comp_fill_le).
Post-processing the output does not make it harder either (DecisionTree.complexity_comp_le), and
post-processing by an injective map, such as negation, does not change it
(DecisionTree.complexity_comp_of_injective).
Main definitions #
Cslib.DecisionTree.restrict: a tree with some queries answered.
Main results #
Cslib.DecisionTree.complexity_comp_fill_le: restricting does not raise decision tree complexity.Cslib.DecisionTree.complexity_comp_of_injective: post-processing by an injective map preserves decision tree complexity.
t with the queries fixed by ρ answered: a variable i with ρ i = some b reads b.
Instances For
The restricted tree computes the restricted function.
Restricting does not raise decision tree complexity.
Post-processing by an injective map preserves decision tree complexity: a left inverse undoes it.
Negation preserves decision tree complexity.