NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential...

22
CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: Any NP-complete problem can be solved by a simple, but exponentially slow algorithm. We don’t have polynomial-time solutions to any NP- complete problem. We can prove that either all NP-complete solutions have polynomial-time solutions, or none of them do. It is generally believed that none of them do. But proving this would require solving the P versus NP problem, one of the best known unsolved problems in mathematics, much less theoretical computer sci- ence. NP-completeness is a property of decision problems. It can be used to prove that other types of problems are NP- hard, which means that (unless P = NP) they have no polynomial-time solutions. These include search, opti- mization, and approximation problems. 1

Transcript of NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential...

Page 1: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

CMPSCI611: NP Completeness Lecture 17

Essential facts aboutNP-completeness:

• Any NP-complete problem can be solved by a simple,but exponentially slow algorithm.

• We don’t have polynomial-time solutions to anyNP-complete problem.

• We can prove that eitherall NP-complete solutionshave polynomial-time solutions, ornoneof them do.

• It is generally believed that none of them do. Butproving this would require solving theP versus NPproblem, one of the best known unsolved problemsin mathematics, much less theoretical computer sci-ence.

NP-completeness is a property ofdecision problems. Itcan be used to prove that other types of problems areNP-hard, which means that (unlessP = NP) they have nopolynomial-time solutions. These includesearch, opti-mization, andapproximation problems.

1

Page 2: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

Definition: The classP is the set of decision problemsfor which there exists an algorithm solving them inO(nk)time for some constantk.

Definition: A formal languageA is in NP if there existsanother languageB in P, such that for any stringx, x isin A iff there exists a stringy, with |y| = |x|O(1), suchthat(x, y) is in B.

An equivalent, more algorithmic definition ofNP is asfollows. An NP-procedure consists of aguess phaseand averification phase. Given an inputx, the guessphase chooses an arbitrary stringy such that|y| = |x|O(1).The verification phase is an algorithm that takes bothxandy as input and returns a bit. We say thatx is in thelanguage of theNP-procedure iffit is possiblefor theprocedure to guess ay making the verification phase out-put “true”.

Thereis an obvious deterministic decision procedure foranyNP language – simply cycle through all possible stringsy and see whether the verification procedure accepts(x, y).The problem is that there are2nO(1)

possibley’s, of course.Our question is whether there is a better way to decidemembership in theNP language, one that might run inpolynomial time.

2

Page 3: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

Proving a language to be inNP is generally simple. Weneed to define a string to be guessed, and define a poly-time verification procedure that accepts the input and aguess iff the guessprovesthat the input is in the language.

We need to determine relationships among the languagesin NP, using the notion ofreduction. We want to showthat if problemB is in P, then so is problemA. One wayto do this is to describe an algorithm forA would runin polynomial time if it were allowed to make calls to ahypothetical poly-time algorithm to decide membershipin B. This is called aCook reduction. For definingNP-completeness, though, we will need a slightly differentnotion of reduction.

Let A andB be two formal languages, possibly over dif-ferent alphabets. AKarp reduction from A to B is apoly-time computable functionf such that for any stringx, x ∈ A if and only if f (x) ∈ B. If such a reduction ex-ists we say thatA is poly-time reducible to B and write“A ≤p B”. We also sometimes read this as “A is noharder thanB”.

3

Page 4: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

Two languagesA andB are said to bep-equivalent ifbothA ≤p B andB ≤p A. The relation≤p is a partialorder on the equivalence classes. We are interested in themaximal equivalence class inNP:

Definition: A languageB is NP-complete if (1) it is inNP, and (2) for any languageA in NP, A ≤p B.

Thus theNP-complete languages, if they exist, are thehardestlanguages inNP. It should be easy to see thatthey form an equivalence class, and that if anyNP-completelanguage is also inP, it follows thatP = NP.

If a language isNP-complete, then, we have strong evi-dence that it is not inP. We can use theNP-completenessof a language to talk about non-decision problems, eventhough by definition these cannot beNP-complete.

Definition: A problemX (with boolean output or other-wise) is said to beNP-hard if there is a Cook reductionfrom X to someNP-complete problemB. That is, thereis a poly-time algorithm, with access to a hypotheticalpoly-time algorithm forX, that decidesB.

It should be clear that ifX is NP-hard and there actuallyis a poly-time algorithm forX, thenP = NP.

4

Page 5: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

Our general methodology will be to develop a libraryof NP-complete problems. Once we have one problem,there is a straightforward way to get more:

Lemma: Let B be anNP-complete language andA be alanguage. If we prove:

• A ∈ NP

• B ≤p A

then we may conclude thatA is NP-complete.

But how do we start this process? In CMPSCI 601, weprove theCook-Levin Theorem, that the language SATis NP-complete. Last time, we gave an unconditionalproof that a particulargeneric NP languageisNP-complete.We’ll still need the Cook-Levin Theorem, because SATis a much more convenient starting place to build up alibrary of NP-complete languages.

5

Page 6: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

CMPSCI611: SAT and 3-SAT Lecture 17

Remember that a boolean formula is defined to besatis-fiable if there is at least one setting of its input variablesthat makes it true. The language SAT is the set of booleanformulas that are satisfiable.

Recall that a boolean formula is inconjunctive normalform (CNF) if it is the AND of zero or moreclauses,each of which is the OR of zero or moreliterals. A for-mula is in3-CNF if it is in CNF and has at most threeliterals in any clause. The language CNF-SAT is the setof CNF formulas that are satisfiable, and the language3-SAT is the set of 3-CNF formulas that are satisfiable.

Note that 3-SAT is a subset of CNF-SAT, which is a sub-set of SAT. In general, ifA ⊆ B, we can’t be certain thatA ≤p B. Although theidentity function maps elementsof A to elements ofB, we can’t be sure that it doesn’tmap a non-element ofA to an element ofB. But here weknow more – we can easily test a formula to see whetherit is in CNF or 3-CNF. To reduce 3-SAT to SAT, for ex-ample, we map a formulaϕ to itself if it is in 3-CNF,and to0 if it is not. A similar reduction works to showA ≤p B wheneverA is such anidentifiable special caseof B – that is, whenA = B ∩ C andC ∈ P.

6

Page 7: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

The Cook-Levin Theorem tells us that SAT isNP-complete,essentially by mapping an instance of the genericNPproblem to a formula that says that a particular string isa witness for a particularNP-procedure on a particularinput. (Recall that ifA is anNP language defined so thatx ∈ A iff ∃y : (x, y) ∈ B, we cally variously awitness,proof, or certificate of x’s membership inA.)

We’d like to show that CNF-SAT and 3-SAT are alsoNP-complete. It’s clear that they are inNP, but the easy spe-cial case reduction doesnot suffice to show themNP-complete. We can reduce 3-SAT to SAT, but what weneed is to reduce theknownNP-complete language, SAT,to the language we want to show to beNP-complete, 3-SAT.

On HW#4 I’ll have you work through the general re-duction from SAT to 3-SAT. Here, I’ll present the eas-ier reduction from CNF-SAT to 3-SAT. (The proof ofthe Cook-Levin Theorem given in CMPSCI 601 actuallyshows directly that CNF-SAT isNP-complete.)

7

Page 8: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

Let’s now see how to reduce CNF-SAT to 3-SAT. Weneed a functionf that takes a CNF formulaϕ, in CNF,and produces a new formulaf (ϕ) such thatf (ϕ) is in 3-CNF and the two formulas are either both satisfiable orboth unsatisfiable. If we could makeϕ andf (ϕ) equiv-alent, this would do, but there is no reason to think thatan arbitrary CNF formula will even have a 3-CNF equiv-alent form. (Every formula can be translated into CNF,but not necessarily into 3-CNF.)

Instead we will makef (ϕ) have a different meaning fromϕ, and even a different set of variables. We will add vari-ables tof (ϕ) in such a way that a satisfying setting ofboth old and new variables off (ϕ) will exist if and onlyif there is a satisfying setting of the old variables alone inϕ. In fact the old variables will be set the same way ineach formula.

Becauseϕ is in CNF, we know that it is the AND ofclauses, which we may name(`11 ∨ . . . ∨ `1k1), (`21 ∨. . . ∨ `2k2),. . .(`1m ∨ . . . ∨ `mkm), where the ’s are eachliterals. For each of these clauses inϕ, we will make oneor more 3-CNF clauses inf (ϕ), possibly including newvariables, so that the one clause inϕ will be satisfied iffall the corresponding clauses inf (ϕ) are satisfied.

8

Page 9: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

So let’s consider a single clause`1∨. . .∨`k in ϕ. If k ≤ 3,we can simply copy the clause over tof (ϕ), because it isalready suitable for a CNF formula. What ifk = 4? Wecan add one extra variable and make two clauses:(`1 ∨`2 ∨ x1) and(¬x1 ∨ `3 ∨ `4). It’s not too hard to see thatboth of these clauses are satisfied iff at least one of the`’s is true. If `1 or `2 is true, we can afford to makex1

false, and if 3 or `4 is true, we can makex1 true.

The general construction fork > 4 is similar. We havek − 2 clauses andk − 3 new variables: The clauses are(`1 ∨ `2 ∨ x1), (¬x1 ∨ `3 ∨ x2), (¬x2 ∨ `4 ∨ x3), andso on until we reach(¬xk−4 ∨ `k−2 ∨ xk−3) and finally(¬xk−3 ∨ `k−1 ∨ `k).

If we satisfy the original clause with some`i, this satisfiesone of the new clauses, and we can satisfy the others bymaking all thexi’s before it true and all those after itfalse. Conversely, if we satisfy all the new clauses, wecannot have done it only withxi’s because there are moreclauses thanxi’s and eachxi only appears at most onceas true and at most once as false, and so can satisfy atmost one clause.

9

Page 10: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

Since this reduction is easily computable in polynomialtime, it shows that CNF-SAT≤p 3-SAT, and thus (withthe quoted result that CNF-SAT isNP-complete) that 3-SAT isNP-complete.

3-SAT is often the most convenient problem to reduce tosomething else, but other variants of SAT are also some-times useful. One we’ll use later isnot-all-equal-SAT orNAE-SAT. Here the input is a formula in 3-CNF, but theformula is “satisfied” only if there is both a true literaland a false literal in each clause.

Let’s prove that NAE-SAT isNP-complete. Is it inNP?Yes, if we guess a satisfying assignment it is easy (in lin-ear time) to check the input formula and verify that thereis a true literal and a false literal in each clause. So weneed to reduce a knownNP-complete problem to NAE-SAT – we’ll choose 3-SAT itself. Again we’ll transformeach old clause into the AND of some new clauses, inthis case three of them.

10

Page 11: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

Given the clause1 ∨ `2 ∨ `3, we introduce two new vari-ablesx andy that appear only in the new clauses for thisclause, and a single new variableα that appears severaltimes. The three new clauses are

(`1 ∨ `2 ∨ x) ∧ (¬x ∨ `3 ∨ y) ∧ (x ∨ y ∨ α).

We must show that the three new clauses are jointly NAE-satisfiable iff the original clause is satisfiable in the ordi-nary way. First, we assume that the old clause is satisfiedand show that we can choose values forx, y, andα toNAE-satisfy the new clauses. We makeα true (for all theclauses in the formula) and consider the seven possibili-ties for the values of1, `2, and`3. In each of the sevencases, we can setx andy, not both true, to NAE-satisfythe three new clauses – we’ll check this on the board.

11

Page 12: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

Now assume that the three new clauses are NAE-satisfied– we will show that at least one of thei’s is true. Firstassume thatα is true, because if the new formula is NAE-satisfied withα false we can just negate every variable inthe formula and get a setting that NAE-satisfies all theclauses but hasα true.

If α is true, then eitherx or y must be false. Ifx is false,then either 1 or `2 must be true. Ify is false andx is true,then`3 must be true. So one of the three`’s must be true,and the original clause is satisfied in the ordinary way.

12

Page 13: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

CMPSCI611: CLIQUE and VERTEX-COVER Lecture 17

So far we’ve seen that several problems in logic areNP-complete. In fact there areNP-complete problems in ahuge array of domains – we’ll next look at some prob-lems ingraph theory, similar to some problems we’vealready solved in polynomial time.

Let G be an undirected graph. Aclique in G is a setAof vertices such that all possible edges between elementsof A exist inG. Any vertex forms a clique of size 1, theendpoints of any edge form a clique of size 2, and anytriangle is a clique of size 3.

The language CLIQUE is the set of pairs(G, k) such thatG is an undirected graph that contains some clique of sizek. It should be clear that CLIQUE is in the classNP. OurNP-procedure guesses an arbitrary setA of vertices (byguessing a bitvector of lengthn). Then the verificationphase checks thatA has size exactlyk and that there isan edge between every pair of vertices inA.

13

Page 14: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

We’ll prove CLIQUE to beNP-complete by reducing 3-SAT to it. Recall that this means defining a function from3-CNF formulas to graph-integer pairs, such that satisfi-able formulas are mapped to pairs(G, k) such thatG hasak-clique and unsatisfiable formulas are mapped to pairswhereG does not have ak-clique.

The essential element of any reduction is a correspon-dence between the witnesses of the twoNP-problems.The 3-CNF formula is satisfied or not satisfied by a bitvec-tor of lengthn, and the possible cliques are also denotedby bitvectors. We want to arrange the graph so that a sat-isfying instance corresponds to ak-clique and vice versa,and we get to pickk for our convenience.

Here’s the construction. We have a node for eachappear-ance of a literal in the formula. So if there arem clauses,each withki literals, the number of vertices in the graphis the sum from 1 tom of ki. Now we need edges. Weplace an edge between nodesx andy if they refer to lit-erals thatoccur in different clausesand arenot in conflict(aren’t negations of one another). We setk to bem, thenumber of clauses.

14

Page 15: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

Nodes:Appearances of literals in clauses

Edges: Pairs of nodes that are in different clauses andnot in conflict.

We claim that the 3-CNF formula is satisfiable iff there isanm-clique in the graph. First assume that there is a sat-isfying assignment, which means that there is at least oneliteral in each clause that is set true. Fix a set containingexactly one true literal in each clause. Them nodes cor-responding to these literals must form a clique. No twoof them are in the same clause, and no two of them canbe in conflict, so all possible edges between then exist.

Conversely, suppose that we have anm-clique in the graph.The m nodes must occur inm different clauses, sinceedges only connect nodes in different clauses. Becausethem nodes also contain no conflicts, we can construct asetting of the variables consistent with all those literals.(We may have to arbitrarily set variables that don’t occurin the set either as true or as false.) This setting makesat least one literal in each clause true, so it satisfies theformula.

15

Page 16: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

With some easy reductions, we can use CLIQUE to provesome similar problems to beNP-complete.

Again letG be an undirected graph. A set of verticesAis anindependent setif there arenoedges inG betweenvertices inA. The language IND-SET is the set of allpairs(G, k) such that there exists an independent set ofsizek in G. Clearly IND-SET is inNP, because we canguess the setA, verify its size, and verify that it containsno edges.

We prove IND-SET to beNP-complete by reducing CLIQUEto it, now that we know CLIQUE to beNP-complete.This reduction will be a function that takes pairs(G, k)to pairs(H, `) such thatG has a clique of sizek iff H hasan independent set of size`.

But this is easy! The problems are very similar, so muchso that we can giveH the same set of vertices asG andarrange that a setA is a clique inG iff it is an independentset inH. How do we do this? We want to map sets withall the edges to sets with none of the edges, so we justmakeH the complementof G – the graph that has anedge(x, y) exactly when that edge isnot an edge ofG.Then the function taking(G, k) to (H, k) is the desiredreduction.

16

Page 17: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

Another similar problem is VERTEX-COVER. A setAof nodes of an undirected graphG is a vertex cover ifevery edge ofG has at least one endpoint inA. The lan-guage VERTEX-COVER is the set of pairs(G, k) suchthatG has a vertex cover of sizek. As before, it is clearthat VERTEX-COVER is inNP.

The Adler notes give a direct reduction from 3-SAT toVERTEX-COVER, which is very similar to the reductionfrom 3-SAT to CLIQUE. But we don’t need to use thisreduction, because it’s very easy to reduce CLIQUE orIND-SET to VERTEX-COVER and thus use our previ-ous work to prove VERTEX-COVER to beNP-complete.

If A ⊆ V is a vertex cover inG, look at the setV \ A ofnodesnot in A. There are no edges between these nodes,since every edge has at least one endpoint inA. SoV \Ais an independent set – in fact it is an independent setiffA is a vertex cover.

So G has a vertex cover of sizek iff it has an indepen-dent set of sizen − k. Thus the function taking(G, k)to (G, n− k) is a reduction from IND-SET to VERTEX-COVER, proving that the latter problem isNP-complete.

17

Page 18: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

We don’t want to get carried away with this sort of ar-gument, though. Consider the language NON-CLIQUE,defined to be the set of pairs(G, k) such thatG doesnothave a clique of sizek. Is this problemNP-complete?

In all likelihood, it is not. A Karp reduction must takeyes-instances of one problem to yes-instances of the other,so the identity map is not a Karp reduction. In fact it’s notat all clear that NON-CLIQUE is inNP, because there isnothing that we can guess to prove that a clique doesnotexist.

18

Page 19: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

We define a classco-NPto be the set of languages whosecomplements are inNP. (Note that this is quite differentfrom the complement operation taking us from CLIQUEto IND-SET.) We can defineco-NP-completeness anal-ogously toNP-completeness, and see that a language isco-NP-complete iff its complement isNP-complete. Coulda language be both? It follows easily from the definitionsthat if there is,NP andco-NP are the same class. Thisis considered unlikely, though not quite as unlikely asPandNP being the same.

A Cookreduction is allowed to take the answer of a queryand negate it, so there is a simple Cook reduction fromCLIQUE to NON-CLIQUE. (To decide whether(G, k)is in CLIQUE, determine whether the same pair is inNON-CLIQUE and reverse the answer.) So theco-NP-complete problems are allNP-hard, though probably notNP-complete.

A final note – if we insist thatk or n − k be a constant,CLIQUE and these other problems become solvable inP,because we now have time to guess all possible cliques(or independent sets, or vertex covers). Sometimes anidentifiable special case of anNP-complete problem iseasier.

19

Page 20: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

CMPSCI611: The SUBSET-SUM Problem Lecture 17

For our final problem today, we revisit the SUBSET-SUMproblem – the input is a set of numbers{a1, . . . , an} anda target numbert, and we ask whether there is a sub-set of the numbers that add exactly tot. Using dynamicprogramming, we showed that we could decide this lan-guage in time that is polynomial inn ands, the sum ofall theai.

Now we allow the numbers to get larger, so that they nowmight ben bits long. The problem is still inNP, becausewe can guess a subset by guessing a bitvector, add thenumbers in the set, and verify that we gett. But it’s nolonger clear that we are inP, and in fact we will now seethat the general problem isNP-complete.

We reduce 3-SAT to SUBSET-SUM (with large num-bers). We first assume that every clause in our input for-mula has exactly three literals – we can just repeat literalsin the same clause to make this true. Our numbers will berepresented in decimal notation, with a column for eachof the v variables and a column for each clause in theformula.

20

Page 21: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

We’ll create an itemai for each of the2v literals. Thisitem will have a 1 in the column for its variable, a 1 inthe column of each clause where the literal appears, andzeroes everywhere else. We also have two items for eachclause, each with a 1 in the column for that clause andzeroes everywhere else. The target number has a 1 foreach variable column and a 3 for each clause column.

We now have to prove that there is a subset summing tothe target iff the formula is satisfiable. If there is a sat-isfying assignment, we choose the item for each literalin that assignment. This has one 1 in each variable col-umn, and somewhere from one to three 1’s in each clausecolumn. Using extra items as needed, we can reach thetarget.

Conversely, if we reach the target wemusthave chosenone item with a 1 in each variable column, so we havepickedv variables forming an assignment. Since we havethree 1’s in each clause column and at most two camefrom the extra items, we must have at least one 1 in eachclause column from our assignment, making it a satisfy-ing assignment.

21

Page 22: NP- - UMass Amherstbarring/cs611/lecture/17.pdf · CMPSCI611: NP Completeness Lecture 17 Essential facts about NP-completeness: • Any NP-complete problem can be solved by a simple,

Given a problem with numerical parameters, we say thatit is pseudopolynomialif it becomes polynomial whenthose parameters are given in unary. If it isNP-completewith parameters given in unary, we say that it isstronglyNP-complete. The SUBSET-SUM problem is pseudopoly-nomial, but all our graph problems are stronglyNP-complete.

Recall that the KNAPSACK is similar to SUBSET-SUMbut has avaluefor each item as well as itsweight. We areasked to find whether a set of at least a given value existswith at most a given weight. Since SUBSET-SUM is anidentifiable special case of KNAPSACK (where weightand value are both equal), we know that SUBSET-SUM≤p KNAPSACK. Since KNAPSACK (as a decision prob-lem) is in NP, it is NP-complete. The associated opti-mization problem is thusNP-hard.

22