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 contexts, including optimization ones that can be addressed by dynamic programming algorithms, and for certain types of equivalence relations between solutions.
翻译:当一个问题存在多个解时,根据具体应用场景,通常需要枚举(即列出)所有解。即使枚举过程可以多项式延迟完成(即从一个解到下一个解所需时间不超过多项式时间),这仍然可能代价高昂,因为解的数量可能极其庞大,甚至呈指数级增长。此外,取决于具体应用,这些解中的许多可能被视为等价的。尽管多个领域已认识到需要高效枚举等价类或每类一个代表元(无需生成所有解),但这一问题目前仅在极少数特定案例中得到解决。本文提出一个通用框架,可在多项式延迟内解决此问题,适用于包括可通过动态规划算法解决的优化问题在内的广泛场景,以及某些类型的解间等价关系。