17-习题
2.5 习题
1.请创建包含100万个数的列表,用本章定义的 linear_contains() 和 binary_ contains() 函数分别在该列表中查找多个数并计时,以演示二分搜索相对于线性搜索的性能优势。
2.给 dfs() 、 bfs() 和 astar() 添加计数器,以便查看它们对同一迷宫进行搜索时遍历的状态数量。请针对100个不同的迷宫进行搜索并计数,以获得统计学上有效的结论。
3.多求解几种不同初始人数的传教士和食人族问题。提示:可能需要覆盖 MCState 的 __eq__() 方法和 __hash__() 方法。
[1] 关于启发式信息的更多信息,参见StuartRussell和PeterNorvig的《人工智能:一种现代的方法(第3版)》(第94页)。
[2] 关于A*搜索中的启发式算法的更多信息,参见AmitPatel的Thoughts on Pathfinding中的“Heuristics”一章。