@MISC{Feng_asimple, author = {Xixuan Feng}, title = {A Simple Survey on Top K Paths Algorithms on FST}, year = {} }

Share

OpenURL

Abstract

This article provides a survey on top k paths algorithms, especially focusing on how to apply these algorithms to finitestate transducers (FST). I would compare 3 algorithms that relate to the tree of paths, and 2 of them are implemented. 1. PROBLEM DEFINITION Our task is to enumerate top k shortest paths of a given FST as fast as possible. Before we actually look at the algorithms that find top k paths on a given graph, we should be aware of that an FST is a directed acyclic graph (DAG) with extra input and output labels attached to each edge, and it also has multiple edges between 2 nodes. Given this, we should not pay too much attention to algorithms that do more work to avoid loops in the output paths, which are presumably slower than the ones that do not consider loops at all. Therefore, in this article, our problem comes down to enumerate top k paths in a given DAG (allowing multiple edges between 2 nodes) efficiently. 2. ALGORITHMS The introduction section of [4] is a rather comprehensive description of some top-k-path algorithms. Besides the theoretical results of algorithms, I also discuss the details when implementing them and the time-space tradeoff if some indexes are built. 2.1 Terminology For a given FST G, let n be the number of states(nodes) in G, d be the maximum number of out degree of any nodes in G, and m be the number of edges in G. We have m = O(nd). s and t are source and sink nodes of G, respectively. Let k denote the k in the kth-shortest path problem, and Ak be the kth-shortest path. The 3 following algorithms are discussed in presence of the shortest path tree T from all the nodes to the sink node, which can be computed using Dijkstra’s algorithm with time complexity O(m + n log n).