每个计算机科学专业的学生(包括我自己,在我攻读 CS 学士学位时)都可能遇到过著名的单源最短路径Dijkstra 算法(DA)。如果你还上过关于人工智能的入门课程(就像我几年前在我的学士学位期间所做的那样),你应该也遇到过一些搜索算法,特别是统一成本搜索 (UCS)。
网络上的一些文章(例如关于 DA 的 Wikipedia 文章)说 DA(或其变体)等同于 UCS。著名的 Norvig 和 Russell 的著作《人工智能:一种现代方法》(第 3 版)甚至指出
Dijkstra (1959)的两点最短路径算法是统一成本搜索的起源。这些作品还引入了探索集和前沿集(封闭和开放列表)的概念。
DA 究竟如何等同于 UCS?