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.
翻译:当一个问题有不止一种解决办法时,根据基本背景,往往必须列出(即列出)所有解决办法。即使查点工作可以在多种族延迟的情况下进行,也就是说,花费不超过多民族时间从一个解决办法到下一个解决办法,但费用可能很高,因为解决办法本身的数量可能很大,包括有时的指数性。此外,根据应用情况,许多这些解决办法可以视为等同的。有效列出等同类别或每类一名代表(而不产生所有解决办法)的问题尽管在许多领域被确定为需要,但只针对极少数具体案例。在本文件中,我们提供了一个总的框架,在多种情况下在多民族延迟的情况下解决这个问题,包括可以通过动态的编程算法和解决办法之间某些类型的等同关系来解决的优化问题。