This paper presents the first polynomial time algorithm for finding common RNA substructures that include pseudoknots and similar structures. While a more general problem is known to be NP-hard, this algorithm exploits special features of RNA structures to match RNA bonds correctly in polynomial time. Although the theoretical upper bound on the algorithm's time and space usage is high, the data-driven nature of its computation enables it to avoid computing unnecessary cases, dramatically reducing the actual running time. The algorithm works well in practice, and has been tested on sample RNA structures that include pseudoknots and pseudoknot-like tertiary structures. © 2011 Elsevier B.V. All rights reserved.
Evans, P. A. (2011). Finding common RNA pseudoknot structures in polynomial time. In Journal of Discrete Algorithms (Vol. 9, pp. 335–343). https://doi.org/10.1016/j.jda.2011.04.002