Меняется ли сложность задачи с полной NP-сложностью или NP-полной (как, например, определено здесь ), когда ее вход является унарным, а не двоичным?
Какая разница, если вход сильно NP-сложной задачи является унарным? Я имею в виду, если я возьму, к примеру, проблему рюкзака со слабой NP-полной, она является NP-полной при двоичном кодировании, но может быть решена за полиномиальное время динамическим программированием при унарном кодировании. Может быть, это имеет некоторые последствия для жесткости более высоких уровней иерархии полиномиального времени?
Является ли понятие сильно ...- сложным и для других классов сложности, например, более высоких классов полиномиальной иерархии времени?
Ранее я задавал этот вопрос на stackoverflow.com, но было отмечено, что он более уместен здесь.
источник
Ответы:
Проблема размера закодированного в унарном формате, - это размер и если двоичный файл. Если требуется время , это в первом случае и во втором случае. Таким образом, алгоритм, который является полиномиальным для первого случая, вероятно, будет экспоненциальным для второго. Кодирование задачи может радикально изменить сложность алгоритма.N log N F ( N ) F ( размер ) F ( 2 размера )N N журналN F( N) F( размер ) F( 2размер)
источник
Нет.
Если вы измените кодировку ввода, вы изменили формальное определение проблемы, что означает, что это другая проблема . Сложность исходной задачи не меняется, по той же причине, по которой указание на другой свет в небе не меняет массу луны.
источник
Короткий ответ: если вход имеет одинарное кодирование, то он длиннее . Это экспоненциально длиннее. Теперь алгоритм, который работает за полиномиальное время по размеру входных данных, имеет «достаточно времени» для решения проблемы, просто потому, что сам вход экспоненциально длиннее, чем в исходной задаче.
источник
Если посмотреть на проблему формулировки, указанную в ответе Джеффа, то ответ - да.
Рассмотрим проблему с ранцем . У него есть псевдополиномиальный алгоритм, то есть тот, в котором среда выполнения ограничена полиномом из числа, закодированного во входных данных. Поскольку в унарном кодировании значения соответствуют длине, это алгоритм за полиномиальное время для унарной версии.
Фактически, каждая слабо NP-полная задача попадает в эту категорию.
источник