A Polinômio Não-Determinístico (NP) problem is a class of problems in teoria da complexidade computacional que são caracterizados pelas seguintes duas propriedades principais:
- Verificação: Given a proposed solution to an NP problem, it can be verified quickly (in polynomial time) se essa solução está correta.
- Dificuldade de Busca: Finding a solution may not be possible in polynomial time; it may require an busca exaustiva de possíveis soluções.
In simpler terms, NP problems are those for which we can efficiently check the correctness of a solution, even though we may struggle to find that solution in the first place. A classic example is the Problema do Caixeiro Viajante, where finding the shortest possible route that visits a set of cities is computationally hard, but verifying a given route’s length is straightforward.
Problemas NP são centrais no campo de ciência da computação and have significant implications in various domains such as cryptography, optimization, and inteligência artificial. Understanding whether NP problems can be solved in polynomial time (the famous P versus NP question) is one of the most important open questions in computer science. If it were proven that P = NP, it would mean that all problems whose solutions can be quickly verified could also be quickly solved. Conversely, proving that P ≠ NP would imply that there are inherent limits to what can be efficiently computed.