linguistic:voice_change, structural:summarization, quality:correction, linguistic:translation
Dynamic programming

Also, a dynamic programming algorithm of Bellman, Held, and Karp can be used to solve the problem in time O(n 2). In this method, one determines, for each set S of vertices and each vertex v in S, whether there is a path that covers exactly the vertices in S and ends at v. For each choice of S and v, a path exists for (S, v) if and only if v has a neighbor w such that a path exists for (S − v, w), which can be looked up from already-computed information in the dynamic program.