Write a program which performs a breadth-first search to find the solution to any given board position for 15 puzzle Input The input should be given in the form of a sequence of numbered tiles for initial board configuration, '0' indicating the empty space (see example below) Output 1. Moves 2. Number of Nodes expanded 3. Time Taken 4. Memory Used Example >1024573896 11 12 13 10 14 15 Moves: RDLDDRR Number of Nodes expanded: 361 Time Taken: 0.238 Memory Used: 704kb Hint • You can use hashset to keep track of explored nodes and fast lookup
Use Python. The pseudocode is given in figure 3.9 use that and do not change the function names. The output should be
Moves: RDLDDRR
Number of Nodes expanded: 361
TIme Taken: 0.238
Memory Used: 704kb
This is the search.py file that is also given you have to write the code in a main.py file using the pseudocode.
class Search:
def goal_test(self, cur_tiles):
return cur_tiles == ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '0']
def solve(self, input): # Format : "1 0 2 4 5 7 3 8 9 6 11 12 13 10 14 15"
initial_list = input.split(" ")
# solution_moves = run_bfs(initial_list)
print("Moves: " + " ".join(path))
print("Number of expanded Nodes: " + str(""))
print("Time Taken: " + str(""))
print("Max Memory (Bytes): " + str(""))
return "".join(path) # Get the list of moves to solve the puzzle. Format is "RDLDDRR"
if __name__ == '__main__':
agent = Search()
Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 4 images
I need the solution in the format. The solution looks fine.
Moves: RDLDDRR
Number of Nodes expanded: 361
TIme Taken: 0.238
Memory Used: 704kb