人工智能导论实验
文章目录
A-star algorithm
传送:看懂A*的网站
源码
"""
实验内容:假设在一个 n * m 的迷宫里,入口坐标和出口坐标分别为(1,1)和(5,5),
每一个坐标点有两种可能:0 或 1,其中 0 表示该位置允许通过,1 表示该位置不允许通过
如地图:
0 0 0 0 0
1 0 1 0 1
0 0 1 1 1
0 1 0 0 0
0 0 0 1 0
最短路径应该是:
A B 0 0 0
1 C 1 0 1
E D 1 1 1
F 1 J K L
G H 1 1 M
估价函数
估价函数 Evaluation Function
f(n) = g(n) + h(n)
估价 = 代价 + 启发
代价即 移动到该点的耗费
启发即 该点移动到终点的预计耗费
Open 表根据 f 排序,取 open 表首元素为下一步
"""
# def increase(dot, n, m):
def increase(dot):
flag = 0
n = int(dot[0])
m = int(dot[1])
print('n, m:', n, m)
increase_open_list = [] # 先排序,再放入 open 表
if m - 1 > 0 and list_map[n][m - 1] != 1:
point = (n, m - 1)
print(point)
point = (n, m - 1, f(point))
print(point)
if point not in close_list and point not in wrong_list:
increase_open_list.append(point)
flag = 1
if n - 1 > 0 and list_map[n - 1][m] != 1