  Search is a central problem in artificial intelligence, and breadth-first
search (BFS) and depth-first search (DFS) are the two most fundamental ways to
search. In this paper we derive estimates for average BFS and DFS runtime. The
average runtime estimates can be used to allocate resources or judge the
hardness of a problem. They can also be used for selecting the best graph
representation, and for selecting the faster algorithm out of BFS and DFS. They
may also form the basis for an analysis of more advanced search methods. The
paper treats both tree search and graph search. For tree search, we employ a
probabilistic model of goal distribution; for graph search, the analysis
depends on an additional statistic of path redundancy and average branching
factor. As an application, we use the results to predict BFS and DFS runtime on
two concrete grammar problems and on the N-puzzle. Experimental verification
shows that our analytical approximations come close to empirical reality.
