我正在尝试确定Kolmogorov复杂性是否可用于特定语言。我确定这赋予语言没有完成。语言定义如下:

$ a; b \ text { - 在另一个之后执行指令a和b一个。} $
$!x_i! \ text { - 设置变量} x_i \ text {to值} 2。$
$ \ {x_i \} \ text { - 加倍变量的值} x_i $
$ [x_i] \ text { - 减半变量的值} x_i \ text {并舍入它。} $
$“w”\ text { - 打印字符串} w \ in \ {a,b,...,z,a,b ...,z \} $
$ \ lampda(x_i,a)\ text { - 执行指令} a \ text {buleate} x_i \ text {times,无论稍后更改为】x_i $ < / p>

具体地,我需要知道相对于这种语言的KOLMOGOROV复杂性是否通常是可计算的。计算这种复杂性的程序可以用简化的语言编写。

我明白,对于任何提出完整的语言,Kolmogorov复杂性不是可计算的。此语言确实缺乏创建信息循环的能力,因此且小于图灵完成。我不感觉到这种观察中产生的任何直觉。我认为,这种语言较弱,Kolmogorov复杂性现在可以是可计算的。然而,我找不到这个证据。提供满足此任务的算法似乎过于复杂。这种语言的使用似乎是一个特殊的案例,即Kolmogorov复杂性的更常识性,因此,如果常规情况不可计算,我无法导出一般情况的属性。这仍然是。

我没有找到任何地面,无法忍受这个问题,欢迎任何提示和指向解决方案的指针。我们可以从这种语言中推断出其他任何东西比到目前为止提到的其他东西吗?它相对于图灵完整的语言是较低的力量,帮助我们解决这种情况吗?

有帮助吗?

解决方案

要注意的重要事项是您的程序总是停止。这使得计算kolmogorov复杂性是一个简单的任务,因为给定了一个字符串 $ w $ ,你可以覆盖所有可能的长度 $ \ LE | W | +2 $ 查找最短的程序,其输出为 $ w $ 。上限 $ | w | +2 $ 从任何字符串 $ w $ , “W”是一个程序,其输出是 $ w $

事实上,您可能会计算多项式时间中字符串的复杂性,因为只有在重复的情况下只能进行压缩(您无法利用更常规的结构)。沿着以下行的一些东西应该工作 $ kc(w_1 ... w_n)=min \ limits_i \ big(kc \ left(w_ {i + 1} ... w_n | w_i \右)+ kc(w_1 ... w_i)\ big)$ ,其中 $ kc \ left(w | w'\右)$ 是只是 $ kc(w)$ 如果 $ w'$ 不是 $ W $ ,以及 $ kc(w'')+ o(\ log j)$ 否则其中 $ w= w'^ jw'$ $ j $ 是满足此的最大号码。关键是您只需要计算 $ w $ 的子串的复杂性,其中有 $ o(| W | ^ 2)$

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top