Leaves, rank, decision lists, and energy of decision trees #
The Boolean answers along a root-to-leaf path identify the reached leaf, even when different
leaves have the same label. The structural leaf count includes unreachable leaves and exceeds the
internal node count by one. A tree of depth d has at most 2 ^ d leaves; refined by
Ehrenfeucht–Haussler rank r or by right-branch energy e, it has at most
∑ j ∈ Finset.range (r + 1), d.choose j or ∑ j ∈ Finset.range (e + 1), d.choose j leaves.
Decision lists have rank at most 1, hence at most d + 1 leaves and d internal nodes.
The energy bound is attained by ordered threshold comparisons: every positive number of leaves
up to BitString.ballSize q e is realized at depth at most q and energy at most e. The
construction returns each consecutive input index at its own leaf, so none of the counted leaves
is unreachable. This is the ordered-tree step of the scalar capacity theorem, not a construction
of native weighted-threshold circuits.
Main definitions #
Cslib.DecisionTree.leafCount: the number of structural leaves.Cslib.DecisionTree.nodeCount: the number of internal query nodes.Cslib.DecisionTree.path: the answers along the path taken by an input.Cslib.DecisionTree.rank: the Ehrenfeucht–Haussler rank of a binary decision tree.Cslib.DecisionTree.IsDecisionList: trees in which every internal node has a leaf child.Cslib.DecisionTree.energy: the maximum number oftruebranches on a root-to-leaf path.
Main results #
Cslib.DecisionTree.eval_eq_of_path_eq: a common path gives a common output.Cslib.DecisionTree.leafCount_eq_nodeCount_add_one: a binary tree has one more leaf than internal nodes.Cslib.DecisionTree.leafCount_le_two_pow_depth: a tree of depthdhas at most2 ^ dleaves.Cslib.DecisionTree.leafCount_le_sum_choose_rank: a tree of depthdand rankrhas at most∑ j ≤ r, d.choose jleaves.Cslib.DecisionTree.IsDecisionList.rank_le_one: every decision list has rank at most1.Cslib.DecisionTree.leafCount_le_sum_choose_energy: a tree of depthdand energyehas at most∑ j ≤ e, d.choose jleaves.Cslib.DecisionTree.exists_orderedComparisonTree_iff: the exact leaf capacity of ordered comparison trees, with an evaluation specification for every consecutive input index.
References #
The number of structural leaves, including any unreachable leaves.
Instances For
The answers along the path to the reached leaf.
Instances For
Every decision tree has at least one structural leaf.
A decision tree of depth d has at most 2 ^ d structural leaves.
Relabelling queries preserves the structural leaf count, including unreachable leaves.
Relabelling queries preserves the path taken by an input.
The number of internal query nodes, including any unreachable subtrees.
Instances For
The structural leaf count exceeds the internal node count by one.
Relabelling queries preserves the internal node count.
The Ehrenfeucht–Haussler rank of a binary decision tree: leaves have rank zero, a node
with unequal child ranks has their maximum, and equal child ranks r give rank r + 1.
Instances For
Relabelling queries preserves the rank.
The rank of a decision tree is at most its depth.
A decision tree of rank at most r and depth at most d has at most
∑ j ∈ Finset.range (r + 1), d.choose j structural leaves.
A decision tree of depth d and rank r has at most
∑ j ∈ Finset.range (r + 1), d.choose j structural leaves.
A decision tree of rank at most 1 has at most depth internal nodes.
A binary decision tree is a decision list when every internal node has at least one leaf
child (leafCount = 1).
Instances For
A tree with a single structural leaf has rank zero.
Every decision list has Ehrenfeucht–Haussler rank at most 1.
A decision list has at most depth + 1 structural leaves.
A decision list has at most depth internal nodes.
Relabelling queries preserves decision-list structure.
The energy of a binary decision tree: the maximum number of true (right) branches on a
root-to-leaf path.
Instances For
Relabelling queries preserves the energy.
The energy of a decision tree is at most its depth.
A decision tree of energy at most e and depth at most d has at most
∑ j ∈ Finset.range (e + 1), d.choose j structural leaves.
A decision tree of depth d and energy e has at most
∑ j ∈ Finset.range (e + 1), d.choose j structural leaves.
Exact ordered query-activity capacity. A tree making scalar threshold comparisons has
exactly L leaves, depth at most q, and true-branch energy at most e, with distinct outputs
on L consecutive scalar inputs, if and only if 0 < L ≤ BitString.ballSize q e.
Query k asks whether k ≤ a + j; on input a + j, for j < L, the output is a + j.
The arbitrary offset a lets the construction recurse on adjacent intervals. The theorem includes
zero depth, zero energy, and energy budgets exceeding depth. It formalizes the ordered-tree
construction in the proof of Theorem 4.1 of [26], not the
subsequent compilation into a native weighted-threshold circuit.