Complete Enumeration Arguments Deemed Harmful
mat.tepper.cmu.edu
mat.tepper.cmu.edu
For instance: the Byzantine generals problem can be understood by the public as well as scientists: it doesn't seem all that contrived, just simplified. However, the dining philosophers problem doesn't usually go down very well: it seems contrived rather than simplified. The response I usually get is something like: give them more chopsticks, DONE.
On that note, I really wish I had some lucid way of explaining that these model problems are whimsical ways of conveying the essence of a difficult abstract problem, rather than actually representing an actual concrete problem.
Here is an obvious difference:
In sorting, we have locally correct solutions in that given any two distinct elements a, b out of the N, we know whether a is to the left or to the right of b in the final order. Moreover, for a given a, we can find, in linear time, the smallest b which is greater than a: a's successor in the sorted order. Thus sorting is no worse than quadratic. Also, we can examine any permutation of the N items and tell in one pass whether or not it is in sorted order. So recognizing solutions to the sorting problem is linear.
Given any two cities, a and b out of N, we do not know which one is visited first in the shortest path, and we certainly don't know what a's successor will be in the solution. Even verifying a solution to the problem (Is this sequence of cities the shortest path?) cannot be done in polynomial time.
So, yes, the mere fact that there are N! orders to search through is by itself unconvincing about the hardness of the problem.
Lectures on it would be easy if that were the case: Good morning everyone; today we discuss a class of so-called "NP hard" problems, which occur whenever there is a combinatorial explosion in a search space. :)
Usually, the problem is simplified to a threshold test, like: Does this tour have path length < X? These kind of problems are equivalently difficult to produce solutions for in the general case, but are straightforward to verify.
For Traveling Salesman, this means that given the best tour for an N-city graph, the best tour for the same graph augmented by a single vertex could be entirely different.
And this is easy to then contrast with, say, sorting, to counter the earlier objection.
We can split the set into two, sort the two parts individually and then trivially merge the results. We cannot split the cities into two, solve the traveling salesman problem, and then easily merge the results.
And adding a new element to a sorted list is just a linear insertion.
This is a pretty funny claim to see made about one of the most famous NP-complete problems there is. As thelema314 points out, the usual certificate verifies "is this path shorter than a threshold?".
This is exactly why the ancient Greeks viewed philosophy and rhetoric as two sides of the same coin. This is also why I feel most engineers need better written / verbal communication skills: "soft skills" are all about when to be verbose / concise, what tone or communication methods to use in what situation, and how to read your audience to know what level of communication they need to hear.
The story from the article tells me a good deal about the interviewer and the interviewee: the interviewer has the presence of mind to understand his meaning was not getting through and how to keep that from happening in the future. The interviewee should have asked more clarifying questions if he did not understand. Misunderstanding is a two-way street; and at least in an interview, it can be helpful to see how someone reacts to a question they don't fully understand.