Pergunta

Somewhat related to this question.

The verifier-based definition of NP complexity class says:

NP is the class of languages which are accepted by a deterministic Turing Machine verifier in polynomial time.

All problems in P are considered to be in NP. As explanation, the following is commonly stated:

Given a certificate for a problem in P, we can ignore the certificate and just solve the problem in polynomial time.

A verifier needs to use the certificate and show that the problem can be verified in polynomial time. Why does everyone keep saying ignore the certificate and just solve the problem ? Is solving the problem equivalent to providing a certificate ?

Foi útil?

Solução

In worrying about whether the verifier "uses" the certificate, you're taking the term "verifier" too literally. A verifier is an algorithm that takes the original problem and some additional information ("a certificate"), and provides the correct answer ("yes" or "no") in polynomial time. We call it a verifier, but that doesn't impute upon it a new "job".

For problems like subset sum, the certificate serves as a useful shortcut- we're given a subset that we just have to check a) adds up to 0 and b) is a subset. But if we already know the problem can be solved in polynomial time, that shortcut becomes unnecessary.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top