Вычислимость Колмогорова сложности Turging-Increplete язык

cs.stackexchange https://cs.stackexchange.com/questions/127448

Вопрос

Я пытаюсь определить, вычислите ли сложность Колмогорова для определенного языка. Я уверен, что этот данный язык не завершен. Язык определяется следующим образом:

$ a; b \ text {- выполняет инструкции A и B один за другим.} $
$! x_i! \ text {- устанавливает переменную} x_i \ text {значение} 2. $
$ \ {x_i \} \ text {- удваивает значение переменной} x_i $
$ [x_i] \ Text {- половины значение переменной} x_i \ text {и раунд его.} $
$ "W" \ text {- печатает строку} w \ in \ {a, b, ..., z, a, b ..., z \} $
$ \ lambda (x_i, a) \ lambda (x_i, a) \ text {- выполняет инструкцию} a \ text {точно} x_i \ text {раз, независимо от более поздних изменений в} x_i $ < / P >.

В частности, мне нужно знать, является ли сложность Колмогорова относительно этого языка, как правило, вычисляется. Программа, которая вычисляет эту сложность, может быть записана на уровне Turing-Complete.

Я понимаю, что для любого звонком-полного языка, сложность Колмогоров не вычисляется. Этот язык здесь не хватает возможности создавать инфинтную петлю, хотя и как таковой меньше, чем завершен. Я не чувствую никакой интуиции, возникающей из этого наблюдения, хотя. Я предполагаю, что этот язык слабее, сложность Колмогорова может быть вычислимой сейчас. Тем не менее, я не могу найти доказательство для этого. Предоставление алгоритма, которое выполняет эту задачу, оказывается чрезмерно сложной. Использование этого языка похоже на особый случай более общей вычисления сложности колмугоров и как таковой, я не могу получить из атрибутов общего случая, если общий случай не вычислительно. Это все еще может быть.

Я не нахожу ни одной земли, чтобы стоять с этой проблемой и приветствовать любые советы и указатели к решению. Можем ли мы вывести что-нибудь еще с этого языка, чем то, что я упоминал до сих пор? Сравните ли в нижней мощности относительно Turing-полных языков, помогите нам с этой ситуацией?

Это было полезно?

Решение

Важно отметить, что ваши программы всегда остановываются. Это делает вычисление колмогорова сложностью легкой задачей, поскольку с учетом строки $ W $ , вы можете перейти на все возможные программы длины $ \ le | w | +2 $ , чтобы найти кратчайшую программу, выход которой находится $ W $ . Верхняя граница $ | w | +2 $ следует из того факта, что для любой строки $ W $ w $ , «W» - это программа, выход которой составляет $ W $ .

На самом деле, вы, вероятно, можете вычислить сложность строки в многочленом времени, поскольку сжатие возможна только в случае повторений (вы не можете воспользоваться более общей структурой). Что-то вдоль следующих строк должно работать $ KC (w_1 ... w_n)=min \ limits_i \ big (kc \ left (w_ {i + 1} ... w_n | w_i \ Right) + kc (w_1 ... w_i) \ big) $ , где $ KC \ Left (w | w '\ vant) $ есть Просто $ KC (W) $ Если $ w '$ не является префиксом $ w $ и $ KC (W '') + O (\ log j) $ в противном случае, где $ w= w '^ jw' '$ и $ j $ - это максимальное число, удовлетворяющее это. Дело в том, что вам нужно только вычислить сложность подстроителей $ W $ , из которых есть $ O (| W | ^ 2) $ .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с cs.stackexchange
scroll top