An Algorithmic and Social Introduction to Computer Science (CSC-105 2000S)

What implications do you see in the existence of NP-complete problems?



From what I understand, NP-complete problems point to the fact that for some problems/questions, there is no algorithm that can solve them easily or quickly. I guess, on a wider scale, this points to the fact that there are some problems that even computers cannot solve easily or quickly. [More precisely, there are no known easy/fast solutions.]

Also, I don't quite understand the possible implications of the fact that "any two NP-complete problems are mutually transformable in polynomial time," but it seemed to be an important piece of the topic. On the positive side, maybe this means that although right now, that all of these problems are connected means that all of them take a long time to solve, perhaps it also points to the possibility that if a faster solution to one is found sometime in the future, it could applied to all of them. [Yes, that's correct.]


I honestly can't say that I understand what NP-completely problems are well enough to answer this question. I'm sorry. I'm hoping our discussion in class today will help me figure it out.


Here is a short, and, I might add, a lot clearer definition than Dewdney of exactly what NP-Completeness means (and adds in a nice non-determinism definition as well), which avoids overly mathematizing the theory and confusing me with words I haven?t really been exposed to yet:

NP-complete problem: any of a class of computational problems for which no efficient solution algorithm has been found. Many significant computer-science problems belong to this class--e.g., the traveling salesman problem (q.v.), satisfiability problems, and graph covering problems.

So-called easy, or tractable, problems can be solved by computer algorithms that run in polynomial time; i.e., for a problem of size n, the time or number of steps needed to find the solution is a polynomial function of n. Algorithms for solving hard, or intractable, problems, on the other hand, require times that are exponential functions of the problem size n. Polynomial-time algorithms are considered to be efficient, while exponential-time algorithms are considered inefficient, because the execution times of the latter grow much more rapidly as the problem size increases.

A problem is called NP (nondeterministic polynomial) if its solution (if one exists) can be guessed and verified in polynomial time; nondeterministic means that no particular rule is followed to make the guess. If a problem is NP and all other NP problems are polynomial-time reducible to it, the problem is NP-complete. Thus, finding an efficient algorithm for any NP-complete problem implies that an efficient algorithm can be found for all such problems, since any problem belonging to this class can be recast into any other member of the class. It is not known whether any polynomial-time algorithms will ever be found for NP-complete problems, and determining whether these problems are tractable or intractable remains one of the most important questions in theoretical computer science. When an NP-complete problem must be solved, one approach is to use a polynomial algorithm to approximate the solution; the answer thus obtained will not necessarily be optimal but will be reasonably close.

From my understanding of the concepts from Dewdney and this information, I surmise that the implications for NP-Complete are:

1. That polynomial-time computation seems to be the only thing we currently consider solvable, and that exponential computation will just take too long-thus, we need to consider ways of getting to polynomial-timed solutions via a solution composed of parts, I suppose, like compiling finite automata, or by breaking down the exponential function into polynomial parts ( I wish I were a math major genius and I could tell you if that's even a valid thing to say'but it seems what is suggested by the use of polynomial algorithms which approximate the optimal, but do not completely "effectively" solve the problem.)

2. If we don't have a computer polynomial-time algorithm that can solve these exponential-time problems, if we classify them as NP Complete, then we'll have to A. come up with exponentially faster computers, or B. wait until a genius is born who happens to know how to construct the elusive algorithm we need, perhaps by a method suggested in (1), but not likely.

3. In essence, the real implication is that we may not ever be able to know some things exactly the way we want to, and that holding on to the notion that we can solve any problem the most efficient way possible using a computer may be flawed, underdeveloped, or at the least, limited in scope by our humanity and Time. Limitations to computing are incredibly interesting, since I never knew the actual bounds of things that are not now considered solvable by computation methods currently available. I think that knowing this implies that there is so much out there we might be able to do better, but how will we prioritize these problems? And of even more concern to me is who is going to construct the solutions if we can't yet produce a clearer text on computer science as a theoretical discipline?

Moreover, after thinking more about our class on Monday, I think we need to define our concept of power in greater detail in order to apply that word clearly to computing-or at least I think it needs qualifying words to accompany it---computational power vs. structural integrity and longevity, information storage room, and even factors of speed should be considered in a greater collaboration. A model is only as good as the assumptions it is founded on.


Seeing as how an NP-complete problem is one that can be solved by computer only by sometimes waiting an extraordinarily long time for its solution, such problems would clearly be problematic in situations where action was contingent upon said solution. While in some fields, such as philosophy or mathematical theory, which often explore the more abstract side of things, and where the inability of the computer to generate a solution in a timely manner is not so dire, NP-complete problems would certainly be frustrating, but in some ways inconsequential.

It seems to be in the more practically applicable fields, such as engineering, where NP-comple problems and the slow response time could more directly affect situations. Dewdney gives the example of engineers needing to analyze the structural steel frameworks. If these engineers encountered an NP-complete problem in the process of designing and building a structure, and the computer was unable to return needed figures or solutions, then you could see how the computer's limited capabilities would be problematic.


Computers are infallible. The existence of NP-complete problems demonstrates that certain problems are unsolvable by computers and/or algorithms. The average human is unable, as a computer is, to determine the perfect route for the travelling sales(wo)man to take, however, the average human is able to produce a reasonable algorithm to prove or verify his/her solution. A computer with an NP-complete problem is unable to provide any algorithm to solve the solution to the problem of the travelling sales(wo)man. The University of Pittsburgh states, ``No one knows of a polynomial time algorithm for any NP-complete problem'' and ``No one knows of a proof that no NP-complete problem can have a polynomial time algorithm'' and concludes, ``Almost all computer scientists believe that NP-complete problems do not have polynomial time algorithms.''

Concluding, solving an NP-complete problem is impossible [No, just expensive.]. Also, answering the question [which question?] is impossible because the implications to the unknown are unknown. In the end, states, ``I can't find an efficient solution to the problem and if there is one than there are efficient solutions to hundreds of other problems researchers have been working on for years.'' The problem can be defined as solving NP-complete problem or answering Question 42 in Sam Rebelsky's 105 class. [Great sarcasm.]



Okay, if I understand chapter 41 properly, an NP-complete problem is one that can be solved with a computer, but only if you wait a really, really long time for an answer. I also had to look up "NP" in the index, and instead of "Necrophiliac Porcupines" [Funny?], as I suspected, it instead is "Nondeterministic Polynomial-time". I think this means that with regard to determinism, there is none, and it takes a whole helluva long time to find anything useful with these types of problems. I suppose an important implication is that when these problems start to pop up more and more in day-to-day life, the more likely people are to be upset and start bashing their computers in because they expect their computers to be able to do anything. [Funny?] Also, I think if a computer is presented with this kind of a problem, crashing and sucked-up system resources will become more commonplace and problematic [Ok], and life in general will suck a little more for we poor unfortunate computer users.


I have no idea what Dewdney is talking about.


Hopefully I've got an okay general understanding of this concept. I think that one of the biggest implications of NP-complete problems is that they reach answers without supplying a complex structure for problem solving. [Hmmm, I'd like to see more details about what you mean by "without supplying a complex structure"]. The question P=NP addresses this issue, asking whether or not the two types of problems are equivalent.

Disclaimer Often, these pages were created "on the fly" with little, if any, proofreading. Any or all of the information on the pages may be incorrect. Please contact me if you notice errors.

This page may be found at

Source text last modified Wed Feb 16 08:16:10 2000.

This page generated on Fri Apr 21 09:44:19 2000 by Siteweaver. Validate this page's HTML.

Contact our webmaster at