我们已经讨论了Set 1中的Backtracking和Knight的巡回问题。让我们讨论迷宫中的Rat作为可以使用Backtracking解决的另一个示例问题。
迷宫作为块的N * N二进制矩阵给出,其中源块是最左上的块,即maze [0] [0],而目标块是最右下块的块,即maze [N-1] [N-1] 。老鼠从源头开始,必须到达目的地。老鼠只能在两个方向上移动:向前和向下。
在迷宫矩阵中,0表示该块是死胡同,而1表示该块可以在从源到目的地的路径中使用。请注意,这是典型迷宫问题的简单版本。例如,更复杂的版本可以是大鼠可以沿4个方向移动,而更复杂的版本可以具有有限的移动次数。
以下是迷宫的示例。
Gray blocks are dead ends (value = 0).
以下是上述迷宫的二进制矩阵表示。
{1, 0, 0, 0}
{1, 1, 0, 1}
{0, 1, 0, 0}
{1, 1, 1, 1}
以下是具有突出解决方案路径的迷宫。
以下是上述输入矩阵的解决方案矩阵(程序的输出)。
{1, 0, 0, 0}
{1, 1, 0, 0}
{0, 1, 0, 0}
{0, 1, 1, 1}
All enteries in solution path are marked as 1.