人工智能导论斑马问题代码
时间: 2024-10-16 22:07:43 浏览: 22
斑马过马路的问题是一个经典的人工智能示例,用于展示搜索算法如深度优先搜索(DFS)或广度优先搜索(BFS)的应用。这个问题通常是以图形的形式描述的,其中斑马需要从起点走到终点,但是只能一次移动一格,并避开已经占据的黑白相间的格子。
下面是一个简单的Python代码实现,假设我们使用深度优先搜索来解决:
```python
# 定义一个二维数组表示马路
马路 = [['.', '.', '.'], ['W', 'B', 'W'], ['.','.','.']]
# 斑马的位置
zebra_pos = (0, 0)
target_pos = (2, 2)
def is_safe(x, y):
return马路[x][y] != 'W' and马路[x][y] != 'B'
def dfs(zebra_pos, target_pos):
if zebra_pos == target_pos:
print("斑马成功到达!")
return True
for dx, dy in [(0, 1), (0, -1), (1, 0), (-1, 0)]:
new_x, new_y = zebra_pos[0] + dx, zebra_pos[1] + dy
if 0 <= new_x < len(marble) and 0 <= new_y < len(marble[0]) and is_safe(new_x, new_y):
if dfs((new_x, new_y), target_pos):
return True
return False
if not dfs(zebra_pos, target_pos):
print("斑马无法安全过马路!")
```
在这个例子中,`is_safe`函数检查斑马当前位置是否可以移动,`dfs`函数递归地尝试所有可行的一步。如果找到目标位置,就返回True,表示斑马过马路成功。
阅读全文