Backtracking(Rat in Maze)
A Maze is given as N*N binary matrix of blocks where source block is the upper left most block i.e., maze[0][0] and destination block is lower rightmost block i.e., maze[N-1][N-1]. A rat starts from source and has to reach destination. The rat can move only in two directions: forward and down.
In the maze matrix, 0 means the block is dead end and 1 means the block can be used in the path from source to destination. Note that this is a simple version of the typical Maze problem. For example, a more complex version can be that the rat can move in 4 directions and a more complex version can be with limited number of moves.
Following is an example maze.
Gray blocks are dead ends(value = 0).
Following is binary matrix representation of the above maze
1 | {1, 0, 0, 0} |
Following is maze with highlighted solution path.
Following is the solution matrix(output of program) for the above input maze.
1 | {1, 0, 0, 0} |
Native Algorithm
The Naive Algorithm is to generate all paths from source to destination and one by one check if the generated path satisfies the constraints.
1 | while there are untried paths |
Backtracking Algorithm
1 | If destination is reached |
Implementation of Backtracking solution
1 | /* C/C++ program to solve Rat in a Maze problem using |