首先我们介绍一种用于分词的基础算法,该算法是一个最短路径搜索图的算法,算法本身可以使用的场景很多,比如旅行商问题,物流配送问题,等等。这里主要介绍其在分词场景中的应用。
拓展
在分词的应用中,Dijkstra算法的应用方式也会随着原始图的储存方式的不同而不同。比如本届的数据结构中是对单独连接的词之间增加了一个特殊字符,以使得所有的连接都可以在一个图里面表示完成,但是可以将不同的词分开在不同的图中,这样图与图之间的连接就无穷大。这可以根据具体的应用场景,选组合适自己的数据结构进行处理。
Dijkstra算法所遍历的图只能是正值的边,对于负值的边是不能处理的。相对应的改进算法就是Bellman-ford算法。
在图中有可能存在两条具有相同路径的边连接或者稍微大一点的连接,而由于本算法只能求出其中的一种,如果想求出次优解那么可以在得到最优解之后,将其的一个连接点删掉,在遍历寻找,因为原始的搜索是有起始点逐层往外扩展的,那么在进行次优解的求解时就只能从相反的方向进行。
网友评论