Problem 7.30 from the textbook. SET-SPLITTING = { | S is a finite set and C = {C1, ..., Ck} is a collection of subsets of S, for some k > 0, such that elements of S can be colored red or blue so that no Ci has all its elements colored with the same color}. SET-SPLITTING example. S = {a, b, c} C = {{a,b}, {a,c}} Show that SET-SPLITTING is NP-Complete. Show that SET-SPLITTING is in NP. Given an assignment of colors to members of S: verify that each subset contains both colors. checking items in each subset is O(n) (subsets are part of input) checking color of each item is at worst O(n) (find item in S) Show that 3SAT reduces to SET-SPLITTING. Given a 3SAT problem instance , create a SET-SPLITTING problem instance . Construct S and C for the formula F. F = (not a or b or not c)(a or c or d)(not b or c or not d) Set S = {x1, !x1, ..., xm, !xm, y} Make an element in S for each literal (two for each variable) and an extra element y. Make a subset Cx for each variable x containing x and !x. Make a subset Ci for each clause in F. Add an element to Ci for each literal in the clause and also include the extra element y. The reduction is polynomial time. The set S contains 2v + 1 elements, where v is the number of variables in F. All the variable subsets combined contain a total of 2v elements. All the clause subsets combined contain a total of 4c elements, where c is the number of clauses in F. The total number of elements created is 4v + 4c + 1. Show that if is in 3SAT, is in SET-SPLITTING. Color the true literals blue and the false literals red. Color the extra element (y) red. Each variable subset contains one blue and one red element. Each clause subset contains at least one blue element because at least one literal in the clause is true. Each clause subset also contains at least one red element (y). Show that if is in SET-SPLITTING, is in 3SAT. Set the literals to true that are colored differently from y. Set the literals to false that are the same color as y. A literal and its complement cannot have the same value because the variable subsets require them to have different colors. Each clause will have at least one literal set to true because each clause subset must have a literal colored different from y.