描述让一台机器人能够穿过一个迷宫的算法，并提供一个简单的迷宫作为例子。
迷宫是一个4×4的矩阵，其中P代表起点，G代表终点，O代表可通过的空格，#代表不可通过的墙壁。迷宫如下所示：
```
|#|#|#|#|
|O|O|O|#|
|#|O|#|#|
|P|O|G|#|
```
迷宫问题可以用搜索算法解决，其中最著名的是深度优先搜索（DFS）和广度优先搜索（BFS），下面给出 DFS 解法：

1. 利用递归实现 DFS。定义一个递归函数 `dfs(x, y)`，其中 `(x, y)` 为当前所在位置的坐标；
2. 判断当前位置是否是终点，如果是，返回True
3. 判断当前位置是否越界或者为障碍，如果是，返回 False
4. 若当前位置不是终点，则将其标记为已访问 (`visited[x][y] = True`)，并尝试向四个方向移动（上下左右），对每个方向执行 `dfs()` 函数；
5. 若四个方向均返回 False，则该点没有通往终点的路径，回溯到上一层递归。

下面是Python实现代码：
```python
maze = [["#","#","#","#"],
        ["O","O","O","#"],
        ["#","O","#","#"],
        ["P","O","G","#"]]

visited = [[False] * 4 for _ in range(4)]

def dfs(x, y):
    if maze[x][y] == "G": # 到达终点
        return True
    if x < 0 or x >=4 or y < 0 or y >= 4 or maze[x][y] == "#" or visited[x][y]:
        return False
    visited[x][y] = True
    for dx, dy in [(0,1),(0,-1),(1,0),(-1,0)]: # 四个方向
        if dfs(x+dx, y+dy):
            return True
    visited[x][y] = False # 回溯
    return False

if dfs(3,0):
    print("可以到达终点")
else:
    print("不能到达终点")
```

输出为：“可以到达终点”。