CSCI 6610 Automata and Formal Languages Spring 2004 Homework set #4 Due by 2:30 PM on Friday, March 5 These exercises/problems are all from the text by Sipser. NOTES: "Show" always means PROVE in the exercise/problem descriptions. Be sure to consult the note below for any problem followed by a * in the listing, as this indicates a hint and/or directions. Hints are optional, but all other directions such as "modify", "let", "do",... are mandatory. -------------------------------------------------------------------------------- 7.12 (15 pts.) 7.15* (25 pts.) 7.22* (25 pts.) 7.29* (15 pts.) 7.30* (20 pts.) ************ Directions and/or Hints **************** * 7.15: you may assume that the input is of the form #1^(x_1)01^(x_2)0...01^(x_k)01^t where {x_1, x_2, ... , x_k} is the sequence of non-negative integers and t is the target value for a subset sum. This is a form of "unary" representation for the numbers. It is possible to convert these to binary, but that is not necessary, nor even helpful. What IS helpful is the dynamic programming approach to keeping track of which numbers can be obtained as sums of subsets of {x_1, ... , x_i} for i = 0, 1, 2, ... , k. * 7.22: you will need the result of part (a) when you verify part (b); in proving that the existence of a != assignment for phi' implies that phi is satisfiable, you may need to take the negation of the != assignment in order to find an assignment which satisfies phi. (Here phi is in 3-CNF, and we map from to in reducing 3-SAT to !=SAT>) * 7.29: you can develop a satisfying assignment one variable at a time, based on asking a series of questions about membership in SAT. * 7.30: you can determine the maximum size of a clique in G by asking a series of questions about membership in CLIQUE, then develop a clique of that size one node at at a time, based on asking another series of questions about membership in clique.