Solving the 8-puzzle problem with different search algorithms: breadth first search, depth first search, greedy best first search