# Chapter *5*

*Decision Trees*

The trees in truth are our parents, We sprang from the oak.

—Czeslaw Milosz

The trees have turned inward to become so many pages unmarked by mistakes.

—Philip Levine

The depth of a decision tree is a fundamental complexity measure for Boolean functions. We study the algebraic and topological proof techniques to establish lower bounds for the depth of decision trees, particularly for monotone graph properties. Randomized decision trees and branching programs are also studied.

## 5.1 Graphs and Decision Trees

We first review the notion of graphs and the Boolean function representations of graphs.^{1} A graph is an ordered pair of disjoint sets (*V*,*E*) such that *E* is a set of pairs of elements in *V* and. The elements in the set *V* are called *vertices* and the elements in the set *E* are called *edges*. Two vertices are *adjacent* if there is an edge between them. Two graphs are *isomorphic* if there exists a one-to-one correspondence between their vertex sets that preserves adjacency.

A *path* is an alternating sequence of distinct vertices and edges starting and ending with vertices such that every vertex is an end point of its neighboring edges. The length of a path is the number of edges appearing in the path. A graph is *connected* if every pair of vertices are joined by a path.

Let be the vertex set of a graph . Then its *adjacency matrix* is defined by

Note that and ...

Get *Theory of Computational Complexity, 2nd Edition* now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.