Algorithm Design Techniques
Due: Tues, April 1 in class
Late assignments -10% per
If you work closely with someone else, indicate the person's name(s)
on your homework.
The final write-up of each assignment must, however, be your own work.
In NP-completeness proofs, you may assume that SAT, 3-SAT, IND
SET, VERTEX COVER, and SUBSET SUM are known to be NP-complete.
1. CLIQUE: Input: Graph
G=(V,E), integer k.
Question: Is there a subset S of V with |S|=k such that every pair of
vertices in S is joined by an edge in E?
(a) Show this problem is NP.
(b) Give a direct reduction from SAT(Text, P. 460) to CLIQUE, and
prove its correctness.
(c) Illustrate your reduction by constructing the CLIQUE input
to the SAT input:
(x1 + x2
)(x1 + x2
+ x4)(x2 + x3)(x2
+ x3 +x4)
Text, P. 505 problem 3. Hint: The problem is NP-complete even if each
sport is known by exactly two
Also show how to formulate the original problem as an integer program.
3. Review text pp. 266-271
which shows how to solve the SUBSET SUM problem by dynamic programming.
In class we reduced 3-SAT to SUBSET SUM. Explain in detail why these
two results do not imply that
4. 3-SCHED: Input: The
processing times t1 , t2, ... , tn of
n jobs, and a deadline T. All data are integers.
Each of the jobs must be scheduled on one of three identical machines.
Each machine can process one job at a time.
Question: Is there a schedule so that all jobs finish before time T?
(a) Show that 3-SCHED is NP-complete.
(b) Show how to formulate the problem of finding the smallest T
for which there exists a 3-SCHED as an integer program.
(c) Use lp_solve to solve part (b) for the 9 jobs with processing times
104, 121, 145, 147, 150, 166, 168, 191, 194.