著名的精确覆盖问题算法由 Donald Knuth 给出,称为 Knuth's Algorithm X。
Input: List of subsets of a Universal sets
Output: All the possible disjoint subset whose union is Universal set
假设输入是{ab, ac, cd, c, d, a, b}
。是否有可能使 Knuth 的算法 X 能够根据某些预定义的块大小给出输出。例如,如果{2, 2}
是块大小设置,它会给出输出:{ab, cd}
,如果{2,1,1}
是块大小设置,它会给出输出:{ab, c, d}
,{ac, b, d}
和{cd, b, a}
。