What is the main difference between Breadth First Search and Best First Search? What is meant by saying Breadth First Search requires previous knowledge?
In Breadth First Search, nodes are processed by non-decreasing value of their depth, i.e. the next node processed in the unprocessed node with the smallest depth.
In Best First Search, a value is assigned to each unprocessed node. The next node processed is the unprocessed node with the smallest value. Therefore, Breadth First Search is equivalent to a Best First Search where the value assigned to each node is its depth.
From an implementation point of view, Breadth First Search can be implemented with a simple queue while Best First Search will generally require a priority queue.