Учитывая интерес к этому вопросу, я подумал, что было бы полезно более четко указать причину, по которой мы вообще не должны удивляться ответу, и попытаться дать некоторые указания для уточнения вопроса. Это собирает и расширяет некоторые комментарии. Прошу прощения, если это "очевидно"!
Рассмотрим множество струн колмогоровской сложности :
Таких строк не более , так как имеется описание длины . Но обратите внимание, что это множество неразрешимо для общего (в противном случае мы могли бы вычислить просто выполнив итерацию от до и проверив членство в ). Кроме того, функция
растет неисчислимо быстро. Это вариант функции «занятый бобер»: какой самый длинный вывод машины Тьюринга с длиной описанияn
JK(n)={w:K(w)=n}.
2n2nnnK(w)n=1|w|JK(n)gK(n)=maxw∈JK(n)|w|
n? Если бы это росло медленнее, чем какая-то вычислимая функция, мы могли бы решить проблему остановки: с учетом TM построить который имитирует и печатает на каждом шаге. Если длина описания равна , то либо: останавливается не более чем за шагов; или не останавливается.
MM′M1M′nMgK(n)M
Теперь, к вопросу Эндрю, мы имеем, что , где - исходный язык. Таким образом, единственный способ избежать содержащего входы, очень большие по это если содержит только очень несжимаемые строки. (Обратите внимание, что в противном случае мы можем полностью игнорировать различие между наихудшим и средним случаями анализа, потому что мы усредняем не более строк, но размер самой большой строки растет быстрее, чем любая вычислимая функция . )IK(n)=S∩JK(n)SIK(n)nS2nn
Я чувствую, что, вероятно, невозможно построить какой-либо нетривиальный (т. Е. Бесконечный) , содержащий только несжимаемые строки, но разрешимый. Но я не знаю Однако, надеюсь, это дает интуицию относительно того, почему мы не должны надеяться, что большинство языков будут иметь растущий медленнее, чем вычислимая функция.SfKn
Чтобы немного отступить, вопрос заключается в сравнении производительности на входах длины с производительностью на входах, которые могут быть сжаты до длины . Но у нас есть представления о сжатии, которые гораздо более податливы (и менее мощны), чем сложность Колмогорова. Простой способ - получить схему размером , которая на входе двоичного числа выдает й бит . Обратите внимание, что здесь увеличение входного размера является не более экспоненциальным (схема размером имеет не более возможных входов).nnnbbwn2n
Таким образом, мы можем перефразировать вопрос, разрешив
И определить аналогично. Причина надежды здесь заключается в том, что большинству строк требуется схема, почти такая же большая, как сама строка, и ни одна строка не имеет экспоненциально большего размера, чем требуемая схема. Возможно, в этом случае мы могли бы найти языки, где и асимптотически похожи.
IC(n)={w∈S:the smallest circuit implicitly specifying w has size n}.
fCnfnfCn
Довольно тесно связанный вопрос - это сложность неявных языков, таких как
IMPLICIT_SAT является NEXP-полным, и обычно неявная версия NP-завершенных задач является NEXP-полной. Решить IMPLICIT_SAT как минимум так же просто, как просто использовать схему для записи всех , а затем запустить алгоритм для SAT для . Таким образом, если для SAT, то это кажется близким к доказательству того, что IMPLICIT_SAT в среднем случае почти так же быстро разрешимо, как SAT в худшем случае. Но я не знаю, как можно было бы напрямую сравнить ваше понятие с неявными языками, потому что понятие «наименьшая схема для
IMPLICIT_SAT={circuits C:C implicitly specifies w,w∈SAT}.
wwfCn=Θ(fn)w"не входит в игру для неявных языков.
Надеюсь, что это полезно / интересно!
Я не уверен в учебнике, который упоминает неявные проблемы, но вот некоторые примечания к лекции: http://people.seas.harvard.edu/~salil/cs221/spring10/lec8.pdf