문제

Kolmogorov 복잡성이 특정 언어에 대해 계산할 수 있는지 여부를 결정하려고합니다. 나는이 언어가 완성되지 않는이 언어가 이루어지지 않습니다. 언어는 다음과 같이 정의됩니다.

$ 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 {- 문자열을 인쇄 \ \ \ \ \ \ z, a, b ..., z \} $

$ \ lambda (x_i, a) \ text {- \ text {정확히} x_i \ text {정확한} x_i \ text {its,} x_i $ < / P>

특히이 언어에 비해 Kolmogorov 복잡성이 일반적으로 계산할 수 있는지 여부를 알아야합니다. 이 복잡성을 계산하는 프로그램은 완벽한 언어로 작성 될 수 있습니다.

튜링 완성 된 언어의 경우 콜모고 로프 복잡성은 계산할 수 없습니다. 이 언어는 여기에 infinte 루프를 생성 할 수있는 능력이 부족하고 튜닝 완료보다 작습니다. 나는이 관찰에서 발생하는 직감을 느끼지 않고있다. 나는이 언어가 약 해지고, 콜모고 로프의 복잡성은 이제 계산 될 수 있다고 가정합니다. 그러나 나는 이것에 대한 증거를 찾을 수 없습니다. 이 작업을 수행하는 알고리즘을주는 알고리즘은 지나치게 복잡합니다. 이 언어의 사용은 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) \ right) + kc (w_1 ... w_i) \ big) $ , 여기서 $ kc \ left (w | w '\ right) $ $ KC (W) $ 이면 $ W '$ $ W $ $ kc (w ') + o (\ log j) $ 여기서 $ w= w '^ jw' '$ $ j $ 은 이것을 만족하는 최대 수입니다. 요점은 $ w $ 의 하위 문자열의 복잡성을 계산하면 $ o (| w | ^ 2) $ .

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 cs.stackexchange
scroll top