
九年级全册第7 课“搜索算法”教学设计 年级 九年级 单元/主题 第 3 单元 揭秘人工智能 课名 第 7 课 搜索算法 一、教学建议 教学时长建议 3 课时 教学目标 本课的主要教学目标是: 1.了解无信息搜索和启发式搜索的区别; 2.了解广度优先搜索和深度优先搜索的区别; 3.理解 A*算法的原理,并成功运行 A*算法。 教学设计建议 教学设计建议如下: 1.让学习者思考迷宫等问题的求解思路,从而让学习者知道无信息搜索和启发式搜索的区别。 2.通过编程的方式运行成功 A*算法,修改不同的迷宫来运行A*算法,观察 A*算法找到的最短路径是否是最优解。 教学方法建议 在学习引入方面,教师应该联系生活实际,让大家思考如何在地图中对路径进行搜索。 在新知学习方面,教师可以使用树形的结构来进行逐步搜索,分别使用广度优先搜索和深度优先搜索。然后教师可以介绍对迷宫的搜索来进行具象化的教导,让学生能清楚的知道无信息搜索和启发式搜索的过程。 在“项目探究 ”方面, 教师可以通过引导学生设计迷宫的方式,让他们自己动手创建迷宫,并分享如何解决这个简单迷宫的过程。随后,可以介绍 A* 算法是如何在预设地图中找到路径的。首先,学生需要了解如何将迷宫这样的地图转换成代码。通常情况下,迷宫可以表示为一个二维列表,其中不同的值代表不同的区域或障碍物。这样的数据结构方便在代码中进行处理和分析。接下来,学生需要使用优先队列等数据结构来实现 A* 算法的逻辑。算法的基本流程可以转换成代码形式,包括启发式函数、路径搜索过程等 。如果学生觉得编写这一部分比较复杂,可以考虑利用networkx 库中的 astar_path 函数来实现。需要注意的是,networkx中的图数据结构并不是二维列表形式,而是图的形式。示例代码如下: import networkx as nx import matplotlib.pyplot as p lt # 创建一个有向图 G = nx.DiGraph() G.add_edges_from([(1, 2, {'weight' : 1}), (1, 3, {'weight' : 2}), (2, 4, {'weight' : 3}), (3, 4, {'weight' : 1})]) source = 1 # 起点 target = 4 # 终点 # 使用A*算法查找最短路径 path = nx.astar_path(G, source, target, heuristic=None, weight='weight') print("Shortest Path:", path) # 可视化图和路径 pos = nx.spring_layout(G) # 设置节点布局 plt.figure(fig size=(8, 8)) nx.draw_networkx_nodes(G, pos=pos, node_color='lightblue', node_size=1000) nx.draw_networkx_edges(G, pos=pos, edge_color='gray') nx.draw_networkx_labels(G, pos=pos) path_edges = list(zip (path, path[1:])) nx.draw_networkx_edges(G, pos=pos, edgelist=path_edges, edge_color='red', width=2) plt.title("Shortest Path using A* Algorithm") plt.axis('off') plt.show() 二、补充知识 对应教材内容(对教材中何处内容的补充) 无 补充内容 无 补充知识来源(提供网站链接或按参考文献格式提供) 无 三、对应需要的软件、硬件说明 对应教材内容(对教材中何处内容使用软件、硬件) 知识内容 项目探究 2.编程实现 软件名称(最好提供开源软件) 开源软件:python 基本功能说明 使用 python 进行编程 硬件名称(选择 性价比高、中小学能用得起的) 无 基本功能说明 无 四、操作练习答案 一、技能操练 按照示例使用地图软件进行导航。 ... ...
~~ 您好,已阅读到文档的结尾了 ~~