Я действительно ищу описание, что на самом деле означает NP alogrithm, и какой тип алгоритма/проблемы можно классифицировать как проблема NPНе детерминированный полином (NP) против полинома (P)?
Я прочитал много ресурсов в сети. Мне понравилось
- https://www.quora.com/What-are-P-NP-NP-complete-and-NP-hard
- What are the differences between NP, NP-Complete and NP-Hard?
- Non deterministic Turing machine
- What are NP problems?
- What are NP and NP-complete problems?
полиномиальной проблемы: - Если время работы некоторый многочлен функция размера входного сигнала **, например, если алгоритм работает в линейном или квадратичном времени или в кубическом времени, то мы говорим, что алгоритм работает в полиномиальное время. Пример может быть двоичным поиском
Теперь я понимаю Полиномиальную проблему. Но не в состоянии противопоставить его NP.
NP (недетерминировано Полином Задача): -
В настоящее время существует много программ, которые не (обязательно) выполняются в полиномиальное время на обычном компьютере, но работать за полиномиальное время на недетерминированном Машина Тьюринга. Эти программы решают задачи в NP, что означает недетерминированное полиномиальное время.
Я не могу понять/подумать о примере, который не выполняется в полиномиальное время на обычном компьютере. В соответствии с моим текущим пониманием, каждая проблема/алго может быть решена в некоторой полиномиальной функции времени, которая может или не может быть пропорциональна времени. Я знаю, что я что-то пропустил, но на самом деле не мог понять эту концепцию. Может ли кто-то привести пример проблемы, которая не может быть решена за полиномиальное время на обычном компьютере, но может быть проверена в полиномиальное время?
Один из примеров, приведенных во второй ссылке, упомянутой выше, - это Integer factorization is in NP. This is the problem that given integers n and m, is there an integer f with 1 < f < m, such that f divides n (f is a small factor of n)?
, почему это не может быть разрешено в течение какого-то полиномиального времени на обычном компьютере? мы можем проверить все числа от 1 до n, если они делят n или нет. Правильно ? Также здесь появляется часть проверки (я имею в виду, если она может быть решена в полиномиальное время, а затем, как решение проблемы может быть проверено в полиномиальное время)?
Ваш алгоритм для целочисленной факторизации работает в псевдополиномиальном времени. https://en.wikipedia.org/wiki/Pseudo-polynomial_time –