Depth-First Iterative-Deepening: An Optimal Admissible Tree Search