Bằng chứng về sự không đều đặn, dựa trên độ phức tạp Kolmogorov


8

Trong lớp, giáo sư của chúng tôi đã chỉ cho chúng tôi 3 phương pháp để chứng minh sự không đều đặn:

  1. Định lý Nerode của Myhill
  2. Bơm bổ đề cho các ngôn ngữ thông thường
  3. Bằng chứng về sự không đều đặn, dựa trên độ phức tạp Kolmogorov

Bây giờ hai định lý đầu tiên, định lý Myhill-Nerode và bổ đề Pumping, tôi đã hiểu rõ và tôi cũng có thể thực hiện các bài tập theo hai phương pháp đầu tiên. Nhưng tôi không hiểu cái thứ ba. Định nghĩa của phương pháp thứ ba như sau:

Đặt là ngôn ngữ thông thường. Đặt với mọi . Sau đó, tồn tại một hằng số , sao cho tất cảL x = { y ( Σ b o o l ) * | x y L } x ( Σ b o o l ) * c x , y ( Σ b o o l ) * L(Σbool) Lx={y(Σbool)|xyL} x(Σbool) c x,y(Σbool)

 K(y)log2(n+1)+c

if là từ thứ n trong ngôn ngữ .L x y Lx

Bây giờ tôi không hiểu làm thế nào để sử dụng định lý này để chứng minh rằng một ngôn ngữ không thường xuyên, tôi không thực sự hiểu khái niệm này. Chúng tôi đã sử dụng độ phức tạp kolmogorov trước đây để xác định độ dài của chương trình máy tính ngắn nhất của một đối tượng. Làm thế nào để chứng minh sự không đều đặn với định lý này? Và ý nghĩ đằng sau nó là gì?

Cảm ơn rất nhiều!

Câu trả lời:


8

Theo hiểu biết của tôi, đây không phải là một trong những cách tiếp cận "cổ điển" được sử dụng để mô tả các ngôn ngữ thông thường.

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).

Họ đưa ra một số ví dụ trong đó người ta có thể sử dụng câu lệnh mà bạn đã đề cập thay vì sử dụng bổ đề bơm. Ví dụ: chứng minh tính không đều đặn của ở đâuL

L={1p|p is prime} .

Cho một số , . Hãy để chúng tôi chọn trong đó là số nguyên tố thứ . Đặt là từ đầu tiên trong . Rõ ràng, trong đó là số nguyên tố . Theo tuyên bố bạn đã đề cập, ( ), đối với một số hằng số chỉ phụ thuộc vào (xem giấy).L x = { y |xΣ x= 1 p p k y 1 L x y 1 = 1 p - p pk+1K( y 1 )cn=1cLLx={y|xy=1pp is prime}x=1ppky1Lxy1=1pppk+1K(y1)cn=1cL

Vì giá trị này giữ cho tất cả , chúng ta có thể ràng buộc độ phức tạp Kolmogorov của tất cả các phần tử trong bởi cùng một hằng số . Tuy nhiên, chúng tôi đã thấy rằng thực sự bao gồm sự khác biệt giữa các số nguyên tố liên tiếp, tức là trong đó là số nguyên tố thứ . Vì chúng ta biết không thể giới hạn độ phức tạp Kolmogorov (chênh lệch nguyên tố trở nên lớn tùy ý), điều này có nghĩa là không thể đều đặn.S = { y x 1 | x = 1 p  với số nguyên tố  py x 1  là chuỗi đầu tiên trong  L x } c S S = { 1 p k + 1 - p k | k 1 } p k k S LxS={y1x|x=1p for prime p y1x is the first string in Lx}cSS={1pk+1pk|k1}pkkSL


2
Tôi không biết về kỹ thuật này. Bạn có cảm thấy muốn thêm câu trả lời cho câu hỏi tham khảo của chúng tôi không?
Raphael

1
Vâng, tôi có thể thêm một cái sau. Tôi phải thừa nhận mặc dù tôi cũng không biết về kỹ thuật này, chỉ xem qua bài viết này sau khi tra cứu câu hỏi của op. Tôi không chắc mức độ phổ biến (so với các phương pháp khác) kỹ thuật này hóa ra là như thế nào. Bài báo trong Arxiv thực sự được xuất bản trên SIAM vào năm 1995, vì vậy nó không mới như tôi nghĩ lúc đầu (cách tiếp cận nguyên bản, thú vị và độc đáo).
Ariel

Cảm ơn rất nhiều cho những nỗ lực và ví dụ. Bạn có thể giải thích cho tôi tại sao là từ đầu tiên trong không? p là số nguyên tố thứ k và p 'là số nguyên tố k + 1, vì vậy chúng ta không nên nói rằng ? Và như tôi đã hiểu, pp 'không nhất thiết phải là số nguyên tố, đó là lý do tại sao chúng ta chọn cái này? L x y 1 = 1 p - p 1pp Lx y1=1pp
gammaALpha

1
Tiền tố là , từ đầu tiên trong có tiền tố là sao cho là số nguyên tố tiếp theo, vì vậy . Chúng tôi chọn theo cách này vì điều này cho phép chúng tôi ràng buộc độ phức tạp Kolmogorov của tất cả các bằng một hằng số. Vì các khác biệt nguyên tố có thể trở nên lớn tùy ý, tập hợp tất cả các là vô hạn (vì vậy nó không thể có độ phức tạp giới hạn). Tôi đã thêm một câu trả lời cho câu hỏi tham khảo, nó chứa nhiều thông tin bạn có thể thấy hữu ích và một ví dụ khác. L x y x 1 = 1 p - p p x y x 1 =x=1pLxy1x=1pppxy1x=1p+(pp)=1pxy1xy1x
Ariel

3

Một ví dụ rất dễ khác là như sau: sử dụng độ phức tạp Kolmogorov để chứng minh rằng không thường xuyên.Lww={www{0,1}}

Tôi cung cấp cho bạn một bằng chứng rất không chính thức với hy vọng rằng nó có thể giúp bạn hiểu rõ hơn về vai trò của sự phức tạp Kolmogorov.

Ý tưởng chính là như sau: một automata hữu hạn (nhận ra ngôn ngữ thông thường ) có số lượng "bộ nhớ" hữu hạn; vì vậy chạy trên chuỗi đầu vào khi nó đã "xử lý" phần đầu tiên của đầu vào , tư cách thành viên của trong chỉ phụ thuộc vào trạng thái hiện tại của nó và phần thứ hai của đầu vào .DLDx=yzyxLDz

Bây giờ giả sử rằng là thường xuyên; sau đó có một DFA nhận ra nó.LwwDww

Đặt là một chuỗi có độ dài không thể nény|y|=n|D|

Đối với tất cả các đầu vào , ở cuối phần đầu tiên , DFA rõ ràng sẽ ở cùng trạng thái và theo giả thuyết, nó sẽ chỉ chấp nhận nếu phần còn lại sao cho có thể được chia thành hai nửa bằng nhau (tức là ); ví dụx=yzyDwwqizx=yzyz=ww

 Let y = 10110
       y   z
 x = 10110 0  >> rejected
 x = 10110 1  >> accepted  (w=101, |y|>|z|)
 x = 10110 00 >> rejected
 x = 10110 01 >> rejected
 ....
 x = 10110 10110 >> accepted  (w=10110,  |y|=|z| !!!)
 ....
 x = 10110 1101101 >> accepted (w=101101, |z|<|y|

Nhưng điều quan trọng cần lưu ý là chỉ có một chuỗi có độ dàiđiều đó được chấp nhận ( ).z|y|z=y

Vì vậy, đưa ra mô tả của , trạng thái ở cuối và độ dàichúng ta có thể mô phỏng hành vi của trên tất cả các chuỗi và xem chuỗi nào trong số chúng chấp nhận ... nhưng nó chấp nhận chính xác . q i y | y | D w w 2 | y | z = yDwwqiy|y|Dww2|y|z=y

Vì vậy, với một chương trình có kích thước=|Dww|+logi+logy+c

( không gian cần thiết để lưu trữ mô tả của , khoảng trống để lưu trữ không gian , để lưu trữ độ dài của , cần có không gian cho các hướng dẫn mô phỏng DFA )D w w log i q i log y y c|Dww|Dwwlogiqilogyyc

chúng ta có thể "tái cấu trúc" chuỗi ; nhưng để đủ lớn chúng ta cóđó là một mâu thuẫn vì là không thể nén được.y < | y | yyy<|y|y


Tôi không biết về kỹ thuật này. Bạn có cảm thấy muốn thêm câu trả lời cho câu hỏi tham khảo của chúng tôi không?
Raphael
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.