Abstract
When a problem has more than one solution, it is often important, depending on the underlying context, to enumerate (i.e., to list) them all. Even when the enumeration can be done in polynomial delay, that is, spending no more than polynomial time to go from one solution to the next, this can be costly as the number of solutions themselves may be huge, including sometimes exponential. Furthermore, depending on the application, many of these solutions can be considered equivalent. The problem of an efficient enumeration of the equivalence classes or of one representative per class (without generating all the solutions), although identified as a need in many areas, has been addressed only for very few specific cases. In this paper, we provide a general framework that solves this problem in polynomial delay for a wide variety of optimization problems solvable by dynamic programming algorithms, and for certain types of equivalence relations between solutions.
Similar content being viewed by others
References
Braga, M.D.V., Sagot, M., Scornavacca, C., Tannier, E.: Exploring the solution space of sorting by reversals, with experiments and an application to evolution. IEEE/ACM Trans. Comput. Biol. Bioinf. 5(3), 348–56 (2008). https://doi.org/10.1109/TCBB.2008.16
Andersson, S.A., Madigan, D., Perlman, M.D.: A characterization of Markov equivalence classes for acyclic digraphs. Ann. Stat. 25(2), 505–541 (1997). https://doi.org/10.7916/D8280JSB
Blumer, A., Blumer, J.A., Haussler, D.H., McConnell, R.M., Ehrenfeucht, A.: Complete inverted files for efficient text retrieval and analysis. J. ACM 34(3), 578–595 (1987). https://doi.org/10.1145/28869.28873
Narisawa, K., Inenaga, S., Bannai, H., Takeda, M.: Efficient computation of substring equivalence classes with suffix arrays. In: Ma, B., Zhang, K. (eds.) Combinatorial Pattern Matching, pp. 340–351. Springer, Berlin (2007). https://doi.org/10.1007/s00453-016-0178-z
Fernau, H., Golovach, P.A., Sagot, M.-F.: Algorithmic enumeration: output-sensitive, input-sensitive, parameterized, approximative (Dagstuhl Seminar 18421). Dagstuhl Rep. 8(10), 63–86 (2019). https://doi.org/10.4230/DagRep.8.10.63
Angel, A., Koudas, N.: Efficient diversity-aware search. In: Proceedings of the 2011 ACM SIGMOD International Conference on Management of Data. SIGMOD ’11, pp. 781–792. Association for Computing Machinery, New York, NY, USA (2011). https://doi.org/10.1145/1989323.1989405
Molinaro, C., Sliva, A., Subrahmanian, V.S.: Super-solutions: Succinctly representing solutions in abductive annotated probabilistic temporal logic. ACM Trans. Comput. Logic (2014). https://doi.org/10.1145/2627354
Morrison, K.: An enumeration of the equivalence classes of self-dual matrix codes. Adv. Math. Commun. 9, 415 (2015). https://doi.org/10.3934/amc.2015.9.415
Martelli, A., Montanari, U.: Optimizing decision trees through heuristically guided search. Commun. ACM 21(12), 1025–1039 (1978). https://doi.org/10.1145/359657.359664
Nilsson, N.J.: Principles of Artificial Intelligence. Springer, Palo Alto (1982)
Dechter, R., Mateescu, R.: And/or search spaces for graphical models. Artif. Intell. 171(2), 73–106 (2007). https://doi.org/10.1016/j.artint.2006.11.003
Gnesi, S., Montanari, U., Martelli, A.: Dynamic programming as graph searching: an algebraic approach. J. ACM 28(4), 737–751 (1981). https://doi.org/10.1145/322276.322285
Karp, R.M., Held, M.: Finite-state processes and dynamic programming. SIAM J. Appl. Math. 15(3), 693–718 (1967). https://doi.org/10.1137/0115060
Bellman, R.: Dynamic Programming. Dover Books on Computer Science. Dover Publications, Mineola (2013)
Bonzon, P.E.: Necessary and sufficient conditions for dynamic programming of combinatorial type. J. ACM 17, 675–682 (1970). https://doi.org/10.1145/321607.321616
Buresh-Oppenheim, J., Davis, S., Impagliazzo, R.: A stronger model of dynamic programming algorithms. Algorithmica 60, 938–968 (2011). https://doi.org/10.1007/s00453-009-9385-1
Helman, P.: A common schema for dynamic programming and branch and bound algorithms. J. ACM 36(1), 97–128 (1989). https://doi.org/10.1145/58562.59304
Bertele, U., Brioschi, F.: Nonserial Dynamic Programming. Academic Press Inc, USA (1972)
Bellman, R.: Dynamic programming treatment of the travelling salesman problem. J. ACM 9(1), 61–63 (1962). https://doi.org/10.1145/321105.321111
Held, M., Karp, R.M.: A dynamic programming approach to sequencing problems. J. Soc. Ind. Appl. Math. 10(1), 196–210 (1962). https://doi.org/10.1137/0110015
Kellerer, H., Pferschy, U., Pisinger, D.: Basic Algorithmic Concepts, pp. 15–42. Springer, Berlin (2004). https://doi.org/10.1007/978-3-540-24777-7_2
Wagner, R.A., Fischer, M.J.: The string-to-string correction problem. J. ACM 21(1), 168–173 (1974). https://doi.org/10.1145/321796.321811
Ibaraki, T.: Classes of discrete optimization problems and their decision problems. J. Comput. Syst. Sci. 8(1), 84–116 (1974). https://doi.org/10.1016/S0022-0000(74)80024-3
Rokach, L., Maimon, O.Z.: Data Mining with Decision Trees: Theory and Applications. Series in Machine Perception and Artificial Intelligence. World Scientific, Singapore (2008). https://doi.org/10.1142/9097
Felzenszwalb, P.F., Huttenlocher, D.P.: Pictorial structures for object recognition. Int. J. Comput. Vis. 61(1), 55–79 (2005). https://doi.org/10.1023/B:VISI.0000042934.15159.49
Veksler, O.: Stereo correspondence by dynamic programming on a tree. In: 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR’05), vol. 2, pp. 384–390 (2005). https://doi.org/10.1109/CVPR.2005.334
Bansal, M.S., Alm, E.J., Kellis, M.: Efficient algorithms for the reconciliation problem with gene duplication, horizontal transfer and loss. Bioinformatics 28(12), 283–291 (2012). https://doi.org/10.1093/bioinformatics/bts225
Donati, B., Baudet, C., Sinaimeri, B., Crescenzi, P., Sagot, M.: Eucalypt: efficient tree reconciliation enumerator. Algorithms Mol. Biol. 10(1), 3 (2015). https://doi.org/10.1186/s13015-014-0031-3
Sankoff, D.: Minimal mutation trees of sequences. SIAM J. Appl. Math. 28(1), 35–42 (1975). https://doi.org/10.1137/0128004
Hale, W.K.: Frequency assignment: theory and applications. Proc. IEEE 68(12), 1497–1514 (1980). https://doi.org/10.1109/PROC.1980.11899
Roberts, F.S.: T-colorings of graphs: recent results and open problems. Discret. Math. 93(2), 229–245 (1991). https://doi.org/10.1016/0012-365X(91)90258-4
Tesman, B.A.: List t-colorings of graphs. Discret. Appl. Math. 45(3), 277–289 (1993). https://doi.org/10.1016/0166-218X(93)90015-G
Page, R.D.M.: Tangled Trees: Phylogeny, Cospeciation, and Coevolution, p. 350. The University of Chicago Press, Chicago (2003)
Wang, Y., Mary, A., Sagot, M., Sinaimeri, B.: Capybara: equivalence class enumeration of cophylogeny event-based reconciliations. Bioinformatics 36(14), 4197–4199 (2020). https://doi.org/10.1093/bioinformatics/btaa498
Bodlaender, H.L.: Dynamic programming on graphs with bounded treewidth. In: Lepistö, T., Salomaa, A. (eds.) Automata, Languages and Programming, pp. 105–118. Springer, Berlin (1988). https://doi.org/10.1007/3-540-19488-6_110
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Conflict of interests
The authors declare that they have no conflict of interest.
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Wang, Y., Mary, A., Sagot, MF. et al. A General Framework for Enumerating Equivalence Classes of Solutions. Algorithmica 85, 3003–3023 (2023). https://doi.org/10.1007/s00453-023-01131-1
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00453-023-01131-1