Предположим, что - булев язык из конечных строк над . Пусть будет количеством строк в с длиной . Для функции от натуральных чисел до натуральных чисел имеет верхнюю плотность если для всех достаточно больших .{ 0 , 1 } L n L n d ( n ) L d ( n ) L n ≤ 2 n d ( n ) n
Есть ли P-полные булевы языки с более высокой плотностью ?
мотивация
PARITY имеет верхнюю плотность . ДА (язык всех конечных двоичных строк) имеет верхнюю плотность 1. Любой конечный язык имеет верхнюю плотность 0.
Разреженный язык обладает тем свойством, что существует такой многочлен , что для всех . Если - разреженный язык, то для многочлена степени один больше, чем у , поэтому верхняя плотность равна нулю.p ( n ) L n - L n - 1 ≤ p ( n ) n L L n ≤ p 1 ( n ) p 1 p L
Jin-Yi Cai и D. Sivakumar показали, что P-полный язык не может быть разреженным, если P = L (= LOGSPACE). Поскольку P = co-P, любой язык, в котором дополнение является разреженным, также не может быть P-полным, если только P = L.
По простому неравенству (см., Например, следствие 2 Россера и Шёнфельда, 1962 ) PRIMES имеет верхнюю плотность . Вопрос Известно ли, что проблемы PRIMES, FACTORING являются P-hard? обсуждает, является ли PRIMES P-hard (это, кажется, открыто в настоящее время).
В некотором смысле полные (или универсальные) языки для класса сложности содержат всю структуру класса. Поэтому моя предварительная гипотеза, основанная на дикой экстраполяции результатов Цая и Сивакумара, заключается в том, что такие языки не могут быть слишком редкими. Обычная полиномиальная граница, определяющая разреженные языки, кажется слишком ограничительной, поэтому я спрашиваю о границе, которая немного менее ограничительна.
Работа над lownness Фортнау, Хемаспандрой и другими также, возможно, связана.
Вопрос может быть задан для классов, отличных от P, но я не могу вспомнить какие-либо результаты, которые позволили бы установить плотность, скажем, -SAT. Указатели на соответствующую литературу приветствуются.
Подтверждения
Смотрите также связанный вопрос Условная плотность простых чисел . Спасибо @Tsuyoshi Ito и @Kaveh за полезные комментарии к более ранней версии этого вопроса, которая, к сожалению, была некорректной.
источник
Ответы:
Я не знаю, какова плотность общих P-полных задач, но вот дополнительный аргумент, который показывает, как снизить любую плотность ниже :1/n
Возьмите свой любимый P-полный язык . Этот язык имеет некоторую плотность . Теперь определим . В общем, будет некоторой функцией от , поэтому это может не определять для всех размеров, поскольку нас беспокоит только верхняя плотность, просто сделайте если . Какова верхняя плотность ? Ну у нас есть d ( n ) ∈ ω ( 1 / n ) L ′ n + m = { x 0 m | x ∈ L n } m n L ′ L ′ k = ∅ k ≠ n + m L ′Ln⊆{0,1}n d(n)∈ω(1/n) L′n+m={x0m|x∈Ln} m n L′ L′k=∅ k≠n+m L′
Теперь давайте используем LOG-сокращения для построения машины для используя машину для . Что ж, если вам дан ввод просто скопируйте его по одному на ленту запроса (также используйте счетчик, чтобы подсчитать, что такое ), затем используйте второй счетчик, чтобы сосчитать до , добавляя его каждый Когда вы добавляете ноль к ленте запросов (чтобы иметь пространство журнала, нам нужно и легко вычислимый). Затем запросите и верните результат в качестве ответа.M L M′ L′ x n m(n) m(n)∈poly(n)
Если мы хотим быть уверены, что мы меньше просто выберите , и тогда у нас будет .m ( n ) = n d ′ ( 2 n ) ≤ d ( n ) / 2 n ∈ O ( 1 / n )1/n m(n)=n d′(2n)≤d(n)/2n∈O(1/n)
источник