Complement, Complexity, and Symmetric Representation
A representation for a set is defined to be symmetric if the space required for the representation of the set is the same as the space required for representation of the set's complement. The use of symmetric representation is shown to be important when studying the time complexity of algorithms. A symmetric data structure called a flip list is defined, and it is employed for the Clique, Independent Set, and Vertex Cover problems in a case study. The classic reductions among these problems require the complement of either a graph's edge set or a subset of its vertices. Flip lists can be complemented in constant time with no increase in space. When a flip list is used to represent the edge set of a graph, Clique, Independent Set, and Vertex Cover are shown to have identical (and strongly exponential) time complexity when the classical complexity parameter of input length is used. On the other hand, when a flip list is used to represent a set of numbers as input for the Partition problem, an algorithm can be built that retains strongly sub-exponential time complexity. This provides new evidence with respect to which NP- complete problems should be classified as sub-exponential. Symmetric representation has the advantage of space efficiency, at most linear-time and space complement operations, and symmetry in representing sparse and dense sets. These features can have a significant impact on complexity studies.