Set partitioning via inclusion-exclusion. (English) Zbl 1215.05056
Summary: Given a set \(N\) with \(n\) elements and a family \(\mathcal{F}\) of subsets, we show how to partition \(N\) into \(k\) such subsets in \(2^n n^{O(1)}\) time. We also consider variations of this problem where the subsets may overlap or are weighted, and we solve the decision, counting, summation, and optimization versions of these problems. Our algorithms are based on the principle of inclusion-exclusion and the zeta transform. In effect we get exact algorithms in \(2^n n^{O(1)}\) time for several well-studied partition problems including domatic number, chromatic number, maximum \(k\)-cut, bin packing, list coloring, and the chromatic polynomial.
We also have applications to Bayesian learning with decision graphs and to model-based data clustering. If only polynomial space is available, our algorithms run in time \(3^n n^{O(1)}\) if membership in \(\mathcal{F}\) can be decided in polynomial time. We solve chromatic number in \(O(2.2461^n)\) time and domatic number in \(O(2.8718^n)\) time. Finally, we present a family of polynomial space approximation algorithms that find a number between \(\chi(G)\) and \(\lceil(1+\epsilon)\chi(G)\rceil\) in time \(O(1.2209^n+2.2461^{e^{-\epsilon}n})\).
We also have applications to Bayesian learning with decision graphs and to model-based data clustering. If only polynomial space is available, our algorithms run in time \(3^n n^{O(1)}\) if membership in \(\mathcal{F}\) can be decided in polynomial time. We solve chromatic number in \(O(2.2461^n)\) time and domatic number in \(O(2.8718^n)\) time. Finally, we present a family of polynomial space approximation algorithms that find a number between \(\chi(G)\) and \(\lceil(1+\epsilon)\chi(G)\rceil\) in time \(O(1.2209^n+2.2461^{e^{-\epsilon}n})\).
MSC:
05C15 | Coloring of graphs and hypergraphs |
68W01 | General topics in the theory of algorithms |
68R10 | Graph theory (including graph drawing) in computer science |
90C27 | Combinatorial optimization |