Some questions concerning P != NP

I am actually kind of perplexed by this. My understanding is that if P != NP there should exist problems in NP that are not in P that aren't NP-complete but is the reverse also true? i.e. should there be a problem whose solution is in NP but not in P but not NP-complete would this imply that P != NP?

For example, it would seem to me at first blush that certain problems do fall in this class if one allows for imperfect knowledge of subroutine code (which occurs in practice). For example password cracking would be one assuming the verification subroutine runs in polynomial time.

1. It is in NP since one can nondeterministically guess all strings and verify each in P time.
2. It is rather straight forward to prove that it takes exp time to get the correct string in the worse case since given any alphabet A of size k there are k^N possible strings to examine with the subroutine verifier. Since from a sort of information theoretical point of view testing one string yields no information about the correct string except that the current string is not the correct string when answered in the negative(i.e. it yields no information whatsoever about whether another even similar string is the correct string or not). One needs k^N unique string tests in the worse case each executing sequentially in polynomial time which isn't in P.

My understanding about this subject is limited however but it would seem that this problem is guaranteed to execute in O(P*exp) on a TM and P time on a NTM and there is no room for improvement on a TM- why doesn't this show that P != NP? It seems like something that must have been considered by many people.

Thanks in advance,

P.S. I asked a CS professor already and he wasn't sure about it since it isn't his specialty. So I thought it might be worth asking on a general forum.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Offtopic

This probably isn't on topic for the site, but as a long time member, you probably already knew that!

i.e. should there be a problem whose solution is in NP but not in P but not NP-complete would this imply that P != NP?

So you're positing that there is a problem in NP but not P and are asking whether that implies that P != NP? Sets are only equal if they have the same elements, so yes :).

Sorry if it is a bit off

Sorry if it is a bit off topic. I wasn't too sure where to ask something like this. I guess the question becomes if guessing games like password cracking are valid when it comes to asking if P != NP. I guess I will maybe try posting somewhere else. Thanks.

Stack Exchange

You might try cs.stackexchange.com.

Thanks

Thanks

Ah

It is rather straight forward to prove that it takes exp time to get the correct string in the worse case

I forgot a lot about the subject but the above is simply not true, or unknown, as I remember it.

answer

I suppose its off topic but the question is not hard to answer.

Your main handwave, that invalidates the argument you suggest, is here:

It is rather straight forward to prove that it takes exp time to get the correct string in the worse case

and here:

if one allows for imperfect knowledge of subroutine code (which occurs in practice).

Please recall (or learn) that the question of P ?= NP is a question of the computational complexity of definite mathematical functions.

You say:

For example password cracking would be one assuming the verification subroutine runs in polynomial time.

Evidently, the mathematic function you have in mind takes as input a "verification subroutine".

Because you treat this subroutine as a vague type, you don't even have a way to talk meaningfully about the size of the subroutine.

Whether or not the deterministic password cracker program can operate in polynomial time relative to the size of the subroutine is what determines if the problem is or is not in P. Until you can characterize what mean by the size of a subroutine in this context, the password cracker example is simply meaningless wrt P ?= NP.

Finally, to the more abstract question... here there is a definite, simple answer:

should there be a problem whose solution is in NP but not in P but not NP-complete would this imply that P != NP?

If there is a problem whose solution is in NP but not P, then it follows that there does not exist any NP-complete problem in P.

Why? Proof by contradiction: An NP-complete problem in P can encode and solve every NP problem in polynomial time. Since there (in your hypothesis) exists an NP problem not in P, then there does not exist a P solution to any NP-complete problem.

You asked a cs faculty member about this? Sheesh.

re answer

Ah. I see this is a running gag, so to speak. :-)

http://lambda-the-ultimate.org/node/4610

Thanks for the reply. I

Thanks for the reply. I wasn't sure about that and I am still not sure how to formulate the problem entirely in TM form. It would seem to me that any subroutine would be similar to writing two strings on a tape and comparing them which in TM terms requires several traversals of the string but is still in P time. The size of the subroutine if one views it in terms of a UTM including the the tape space to hold the comparator string should be some constant size + the extra tape space so it would still be the case unless I am incorrect.

How do you encode the password?

Find a CS prof in crypto - this is a fairly standard question for them. The problem that you have is that you need to compare the input password with the knowledge of the correct answer. This is not a real computer with memory protection - this is a TM. If you encode the verification as a simple comparison (i.e. it is definitely in P) then cracking the password is in P.

Proof: Look at the plaintext version of the password. Output the result.

So you need a way to encode the password which is protected in some way. How can you do that? Well you could try to hash it, but which hash scheme will you use that can be computed in P? Remember that it needs a proof that it is only (deterministically) reversible in significantly more time, e.g.O(2^n).

It turns out that building such a hash is a strong enough result to prove that P!=NP anyway, and of course no hashes that we know of have properties defined as strongly as that.

You could try a scheme other than hashing, but you still need to prove that reversing the scheme is computationally infeasible while computing it is efficient.

Actually even without

Actually even without encryption which is a completely different issue according to Church-Turing thesis one should be able to represent this type computation in a TM even if it rules out certain possible "optimizations" such as peeking at the answer.

Why

Why should it be possible?

maybe gig rather than gag

maybe gig rather than gag :P. I am actually curious why something in the realm of normal algorithms like password crackers are related to theory and why it's impossible to show for sure perhaps that the algorithm not in P.

You already answered that yourself

Maybe there's a manner to exploit (imperfect) knowledge about the subroutine.

Actually that's something I

Actually that's something I am unsure about. Is it possible to formulate imperfect knowledge situations in complexity theory? This is quite common in practice since with OS protections your programs don't have access to all the information available to the kernel part of the system.

I gather that is even normal

I gather that is even normal practice.

BTW. LtU has threads

You can simply hit the reply button underneath a post to reply in a threaded manner to remarks.

Ah alright thanks.

Ah alright thanks.