Depth-first branch-and-bound search is a way to combine the space saving of depth-first search with heuristic information. It is particularly applicable when many paths to a goal exist and we want an optimal path. As in A* search, we assume that h(n) is less than or equal to the cost of a lowest-cost path from n to a goal node.