Sau câu trả lời ở đây , tôi sẽ mô tả một phương pháp chứng minh tính không đều đặn dựa trên độ phức tạp Kolmogorv.
Cách tiếp cận này được thảo luận trong "Cách tiếp cận mới đối với lý thuyết ngôn ngữ chính thức của độ phức tạp Kolmogorov" , bởi Ming Li và Paul MB Vitanyi (xem phần 3.1).
Đặt K ( x ) biểu thị độ phức tạp Kolmogorov của chuỗi x , tức là độ dài mã hóa ngắn nhất của máy Turing M , sao cho M ( ϵ ) = x (bất kỳ định nghĩa thông thường nào cũng sẽ làm được). Sau đó, người ta có thể sử dụng bổ đề sau để chứng minh tính không đều đặn:K( x )xMM( ϵ ) = x
KC-đặn : Hãy L ⊆ Σ * là một ngôn ngữ thông thường, sau đó có tồn tại một hằng số c mà chỉ phụ thuộc vào L , như vậy mà cho tất cả x ∈ Σ * , Nếu y là n ' t h string (tương ứng với thứ tự tự từ điển ) trong L x = { y ∈ Σ * | x y ∈ L } , sau đó K ( y ) ≤ O ( log n )L ⊆ Σ*cLx ∈ Σ*yviết sai rồi't hLx= { y∈ Σ*| xy∈ L }+ c .K( y) ≤ O ( nhật kýn ) + c
Người ta có thể hiểu được (và chứng minh) bổ đề trên như sau, đối với bất kỳ x ∈ Σ * , để mô tả n ' t h chuỗi trong L x người ta cần phải xác định:x ∈ Σ*viết sai rồi't hLx
- Máy tự động chấp nhận LL
- Trạng thái trong máy tự động sau khi xử lý tiền tố xx
- Chỉ số nviết sai rồi
Kể từ khi chúng ta chỉ cần nhớ trạng thái sau khi xử lý x , và không x chính nó, chúng ta có thể che giấu yếu tố này trong hằng số phụ thuộc vào L . Chỉ số n yêu cầu các bit log n để mô tả và chúng ta nhận được kết quả trên (để hoàn thiện, người ta cần thêm các hướng dẫn cụ thể cần thiết để tạo y , nhưng điều này chỉ thêm một yếu tố không đổi vào mô tả cuối cùng).xxLviết sai rồiđăng nhậpviết sai rồiy
Bổ đề này cho thấy làm thế nào để ràng buộc sự phức tạp Kolmogorov của tất cả các chuỗi đó là thành viên của L x đối với một số ngôn ngữ thông thường L và x ∈ Σ * . Để thể hiện tính không đều đặn, người ta có thể giả sử L là chính quy và chứng minh rằng các giới hạn quá hạn chế (ví dụ độ phức tạp Kolmogrov bị ràng buộc đối với một chuỗi các chuỗi vô hạn).LxLx ∈ Σ*L
Câu trả lời được liên kết ở trên có một ví dụ về cách sử dụng bổ đề này để hiển thị L = { 1 p | p là số nguyên tố } không thường xuyên, một số ví dụ khác được đưa ra trong bài báo. Để đầy đủ, chúng tôi chỉ ra ở đây cách chứng minh L = { 0 n 1 n | n ≥ 0 } là không thường xuyên.L = { 1p| p là số nguyên tố}L = { 0viết sai rồi1viết sai rồi| n≥0}
Đưa ra một số x ∈ { 0 , 1 } * , chúng ta biểu thị bởi y x i các i ' t h từ trong L x . Lưu ý rằng y 0 i 1 = 1 i . Sử dụng bổ đề trên, tập trung vào tiền tố x có dạng x = 0 i và sửa n = 1 , chúng ta thu được ∀ i ≥ 0 : K ( y 0 i 1x ∈ { 0 , 1 }*yxTôiTôi't hLxy0Tôi1= 1Tôixx = 0Tôin = 1) ≤ c . Vì y 0 i 1 = 1 i , điều này có nghĩa là chúng ta có thể ràng buộc độ phức tạp Kolmogorov của tất cả các chuỗi có dạng 1 i bằng một hằng số, điều này rõ ràng là sai. Điều đáng nói là chúng ta có thể kiểm tra một đơn x , ví dụ: x = 0 n cho đủ lớn n mà đáp ứng K ( 0 n ) ≥ log n (chúng tôi bắt đầu với một tiền tố phức tạp cao). Vì y x 1 = 1 n , chúng tôi nhận được∀ i ≥ 0 : K( y0Tôi1) ≤ cy0Tôi1= 1Tôi1Tôixx = 0viết sai rồiviết sai rồiK( 0viết sai rồi) ≥ logviết sai rồiyx1= 1viết sai rồiK ( 1 n ) < c , mâu thuẫn (giả sử n > 2 c ).K( 1viết sai rồi) < cn > 2c