Có bằng chứng trực quan hơn về tính không ổn định của vấn đề tạm dừng hơn là đường chéo?


30

Tôi hiểu bằng chứng về tính không ổn định của vấn đề tạm dừng (ví dụ như trong sách giáo khoa của Papadimitriou), dựa trên đường chéo.

Mặc dù bằng chứng rất thuyết phục (tôi hiểu từng bước của nó), nhưng nó không trực quan với tôi theo nghĩa là tôi không thấy ai đó sẽ lấy được nó, bắt đầu từ vấn đề một mình.

Trong cuốn sách, bằng chứng đi như thế này: "giả sử MH giải quyết vấn đề ngăn chặn trên một đầu vào , có nghĩa là, quyết định liệu máy Turing tạm dừng cho đầu vào Xây dựng một máy Turing. mà phải mất một máy Turing như đầu vào, chạy và đảo ngược đầu ra. " Sau đó nó tiếp tục chỉ ra rằng D (D) không thể tạo ra một đầu ra thỏa đáng.M;xMxDMMH(M;M)D(D)

Đó là việc xây dựng D dường như tùy tiện D, đặc biệt là ý tưởng nuôi M cho chính nó, và sau đó là D cho chính nó, mà tôi muốn có một trực giác. Điều gì đã khiến mọi người xác định các cấu trúc và các bước ở nơi đầu tiên?

Có ai có một lời giải thích về việc ai đó sẽ lý giải theo cách của họ vào đối số đường chéo (hoặc một số bằng chứng khác), nếu họ không biết loại đối số đó để bắt đầu?

Phụ lục đưa ra vòng trả lời đầu tiên:

Vì vậy, các câu trả lời đầu tiên chỉ ra rằng việc chứng minh tính không ổn định của vấn đề tạm dừng là một cái gì đó dựa trên công việc trước đây của Cantor và Russell về vấn đề đường chéo, và bắt đầu "từ đầu" chỉ đơn giản là phải khám phá lại lập luận đó.

Đủ công bằng. Tuy nhiên, ngay cả khi chúng tôi chấp nhận đối số đường chéo như được hiểu rõ, tôi vẫn thấy có một "khoảng cách trực giác" từ nó đến vấn đề tạm dừng. Bằng chứng của Cantor về những con số thực không thể đếm được Tôi thực sự thấy khá trực quan; Nghịch lý của Russell thậm chí còn hơn thế.

Những gì tôi vẫn không nhìn thấy là những gì sẽ thúc đẩy một người nào đó để xác định D(M) dựa trên M 's 'tự ứng dụng' M;M , và sau đó lại áp dụng D cho chính nó. Điều đó dường như ít liên quan đến đường chéo (theo nghĩa là đối số của Cantor không có gì đó giống như vậy), mặc dù nó rõ ràng hoạt động tốt với đường chéo khi bạn xác định chúng.

PS

@babou tóm tắt điều khiến tôi lo lắng hơn bản thân mình: "Vấn đề với nhiều phiên bản của bằng chứng là các công trình dường như được kéo ra từ một chiếc mũ ma thuật."


3
Hãy xem xét khả năng rằng bất kỳ bằng chứng nào về sự tồn tại của các tập hợp không thể đếm được sẽ phải hơi phản trực giác, ngay cả khi chúng ta đã quen với thực tế rằng chúng là chính xác . Cũng xem xét khả năng câu hỏi này (nếu được viết lại đúng cách) thuộc về math.stackexchange.com .
André Souza Lemos

4
Cantor đã tìm ra đối số đường chéo, và bây giờ chúng ta không thể học được nó: Aus dem Paradies, das Cantor uns geschaffen, soll uns niemand vertreiben können .
Hendrik

1
Sau khi suy nghĩ thêm, tôi phải hỏi tại sao bạn nghĩ điều này quá khác biệt với nghịch lý của Russell. Nghịch lý Russell thậm chí trông giống nhau nếu chúng tôi sử dụng các ký hiệu có nghĩa là X S (tức là nghĩ về bộ như là chức năng có giá trị là hay ). Sau đó, nghịch lý của Russell là xác định , và sau đó xem xét . S(X)XStruefalseD(M) = not M(M)D(D)

1
Đường chéo là một kỹ thuật tiêu chuẩn . Chắc chắn đã có lúc nó không được biết đến nhưng nó đã trở thành tiêu chuẩn trong nhiều thời gian, vì vậy tranh luận của bạn chỉ đơn giản là do sự thiếu hiểu biết của bạn (tôi không muốn thô lỗ, là một sự thật: bạn không biết tất cả các bằng chứng khác sử dụng một kỹ thuật như vậy và do đó thấy nó kỳ lạ khi bạn nhìn thấy nó lần đầu tiên. Khi bạn nhìn thấy nó 50 lần, bạn có thể hiểu cách áp dụng nó trong một tình huống mới).
Bakuriu

1
Có lẽ bạn sẽ đọc trao đổi ý kiến ​​của tôi với Luke Mathieson (theo câu trả lời của anh ấy). Câu trả lời của ông giải thích về mặt lịch sử tại sao Turing sử dụng ứng dụng tự (một điều bạn yêu cầu trong câu hỏi của mình). Điều đó dường như khá nhiều khi các nhà toán học nhận thức được các vấn đề tại thời điểm đó. Câu trả lời của riêng tôi cố gắng đưa ra một bằng chứng rất đơn giản không sử dụng nó (hoặc ít nhất cho thấy nó không cần thiết), đó là một điều khác mà bạn yêu cầu, hoàn toàn khác. Có thể, tôi có thể làm cho nó thậm chí còn đơn giản hơn trong câu trả lời của tôi. Tại sao giáo viên vẫn sử dụng bằng chứng của Turing là một vấn đề xã hội học và sư phạm (?!). cc @HendrikJan
babou

Câu trả lời:


18

Trong phần chỉnh sửa của bạn, bạn viết:

Những gì tôi vẫn không nhìn thấy là những gì sẽ thúc đẩy một người nào đó để xác định dựa trên M 's 'tự ứng dụng' M ; M , và sau đó một lần nữa áp dụng D cho chính nó. Điều đó dường như ít liên quan đến đường chéo (theo nghĩa là đối số của Cantor không có cái gì đó giống như vậy), mặc dù nó rõ ràng hoạt động tốt với đường chéo khi bạn xác định chúng.D(M)MM;MD

Một bản tóm tắt "phổ biến" phổ biến về bằng chứng của Turing giống như thế này:

"Nếu chúng ta đã có một máy mà có thể quyết định liệu khác tạm dừng máy Turing hay không, chúng ta có thể sử dụng để xây dựng một máy D rằng, cho một máy Turing M , sẽ ngăn chặn khi và chỉ khi M đã không dừng lại. Nhưng sau đó chúng tôi có thể vượt qua D làm đầu vào cho chính nó và do đó có được một nghịch lý: cỗ máy này sẽ dừng lại khi và chỉ khi nó không dừng lại! "MHDMMD

Bây giờ, thật dễ dàng để thấy rằng tóm tắt ở trên làm nổi bật một chi tiết quan trọng - việc tạm dừng của máy Turing cũng phụ thuộc vào đầu vào của nó, mà chúng tôi chưa chỉ định! Nhưng vấn đề này có thể được cố định một cách dễ dàng đủ: chúng ta chỉ cần có D chọn một số đầu vào phù hợp x M cho mỗi máy đầu vào M , trước khi đi qua cả hai để M H .MDxMMMH

Lựa chọn nào phù hợp cho , cho rằng cuối cùng chúng ta muốn rút ra mâu thuẫn? Vâng, một sự lựa chọn tự nhiên được đề xuất trực tiếp bởi "handwavy" bằng chứng trên, nơi mà chúng ta cuối cùng có được sự mâu thuẫn bằng cách chạy máy D trên chính nó.xMD

Do đó, để hành vi của thực sự nghịch lý trong trường hợp này, tức là khi được gọi là D ( D ) , điều chúng ta muốn là tạm dừng D ( M ) phụ thuộc vào hành vi của M khi được gọi là M ( M ) . Bằng cách này, chúng ta sẽ có được những mâu thuẫn chúng ta muốn bằng cách thiết lập M = D .DD(D)D(M)M M(M)M=D

Tâm trí bạn, đây không phải là sự lựa chọn duy nhất; chúng tôi cũng có thể có nguồn gốc các mâu thuẫn đó bằng cách, ví dụ, xây dựng một máy như vậy mà D ' ( M ) tạm dừng khi và chỉ khi M ( D ' ) (chứ không phải là M ( M ) ) không dừng lại. Nhưng, trong khi rõ ràng là máy D có thể dễ dàng sao chép đầu vào của nó trước khi đi qua nó để M H , nó không hoàn toàn như vậy ngay lập tức rõ ràng làm thế nào để xây dựng một máy D ' rằng sẽ gọi M H với mã riêng của nó như là đầu vào. Vì vậy, sử dụng nàyDD(M)M(D)M(M)DMHDMH thay vì D sẽ không phức tạp hóa bằng chứng, và làm cho nó ít trực quan hơn.DD


1
Wow, bạn thực sự mò mẫm câu hỏi của tôi! Đó chính xác là thể loại truyện mà tôi đang tìm kiếm! Vẫn đọc tất cả mọi thứ, nhưng có vẻ như đây sẽ là câu trả lời được chấp nhận. Cảm ơn!
dùng118967

18

Có thể chỉ đơn giản là nó sai lầm khi nghĩ rằng ai đó sẽ lý giải theo cách này để tranh luận mà không đưa ra một lập luận tương tự tại một thời điểm nào đó trước đó, trong bối cảnh "đơn giản hơn".

Hãy nhớ rằng Turing biết bằng chứng về đường chéo của Cantor về tính không thể đếm được của thực tế. Ngoài ra, công trình của ông là một phần của lịch sử toán học bao gồm nghịch lý của Russell (sử dụng đối số đường chéo) và định lý không hoàn chỉnh đầu tiên của Gôdel (sử dụng đối số đường chéo). Trên thực tế, kết quả của Gôdel có liên quan sâu sắc đến bằng chứng về tính không ổn định của Vấn đề Ngừng (và do đó, câu trả lời tiêu cực cho Entscheidungsprobols của Hilbert).

Vì vậy, sự tranh cãi của tôi là câu hỏi của bạn theo một nghĩa nào đó được đặt ra một cách tồi tệ và rằng bạn không thể đạt được Vấn đề Ngừng mà không vượt qua phần còn lại (hoặc một cái gì đó tương tự đáng chú ý) trước tiên. Mặc dù chúng tôi trình bày những điều này cho sinh viên mà không đi vào lịch sử, nhưng nếu bạn là một nhà toán học đang làm việc, có vẻ như bạn không thể làm gì với Turing Machines mà không có gì ở giữa - toàn bộ vấn đề của họ là chính thức hóa tính toán, một vấn đề mà nhiều người gặp phải đã làm việc trong nhiều thập kỷ tại thời điểm đó.

Cantor thậm chí không sử dụng đường chéo trong bằng chứng đầu tiên của mình về tính không thể đếm được của thực tế, nếu chúng ta lấy ngày xuất bản là gần đúng khi anh ta nghĩ ra ý tưởng (không phải lúc nào cũng là một điều đáng tin cậy), anh ta đã mất khoảng 17 năm kể từ khi biết rằng thực tế là không thể đếm được, để làm việc ra đối số đường chéo.

Liên quan đến "tự ứng dụng" trong bằng chứng mà bạn đề cập, đây cũng là một phần không thể thiếu trong nghịch lý của Russell (hoàn toàn phụ thuộc vào tự tham chiếu), và định lý bất toàn đầu tiên của Gôdel giống như phiên bản nghịch lý của Russell . Bằng chứng về tính không ổn định của Vấn đề Ngừng được thông tin rất nhiều bởi công việc của Gôdel đến nỗi khó có thể tưởng tượng đến đó mà không có nó, do đó ý tưởng về "tự áp dụng" đã là một phần của kiến ​​thức nền tảng mà bạn cần có để giải quyết vấn đề Ngừng . Tương tự như vậy, công việc của Gôdel là làm lại nghịch lý của Russell, vì vậy bạn không đến đó mà không có người khác (lưu ý rằng Russell không phải là người đầu tiên quan sát một nghịch lý như thế này, vì vậy các nguyên mẫu của lập luận đường chéo đã xuất hiện trong logic chính thức kể từ khoảng 600BCE). Cả công việc của Turing và Gôdel (các bit mà chúng ta đang nói ở đây) có thể được xem là minh chứng ngày càng mạnh mẽ cho các vấn đề với sự tự tham chiếu và cách nó được đưa vào toán học. Vì vậy, một lần nữa, thật khó để đề xuất rằng những ý tưởng này ở cấp độ Turing đang đối phó với chúng đã xuất hiệnmột tiên nghiệm , họ là đỉnh cao của công việc của thiên niên kỷ trong các phần của triết học, toán học và logic.

Tự tham khảo này cũng là một phần trong tranh luận của Cantor, nó chỉ không được trình bày bằng một ngôn ngữ không tự nhiên như công việc logic cơ bản hơn của Turing. Đường chéo của Cantor có thể được định nghĩa lại như là một lựa chọn các yếu tố từ tập hợp sức mạnh của một tập hợp (về cơ bản là một phần của Định lý Cantor). Nếu chúng ta coi tập hợp các thực (dương) là tập hợp con của tự nhiên (lưu ý chúng ta không thực sự cần các chữ số để ra lệnh cho nó hoạt động, thì nó chỉ là một bản trình bày đơn giản hơn) và cho rằng có sự từ chối từ tự nhiên đối với các thực thể, sau đó chúng ta có thể tạo ra một yếu tố của tập hợp sức mạnh (tức là một thực tế) không có trong hình ảnh của sự từ chối (và do đó rút ra một mâu thuẫn) bằng cách lấy yếu tố này thành tập hợp các nhân vật không phải là chính họ hình ảnh dưới sự từ chối. Khi chúng tôi diễn đạt nó theo cách này, nó '


2
Vâng, có vẻ như toàn bộ quan điểm của Turing là tái tạo tính tuần hoàn (từ đó bắt nguồn từ đường chéo) bằng cách đưa ra một số ý tưởng trừu tượng về thời gian , để nói về sự hữu hạn theo một cách mới.
André Souza Lemos

Có lẽ bạn có thể khai sáng cho tôi, vì tôi không quen thuộc với một số bằng chứng này. Tôi có thể hiểu rằng những bằng chứng này có thể được đưa ra bằng cách tự tham khảo. Tôi thậm chí có thể tin (mặc dù nó có thể cần một bằng chứng) rằng luôn có một số tài liệu tham khảo tự tìm thấy trong bất kỳ cấu trúc nào được xây dựng cho mục đích này. Nhưng tôi không thấy sự cần thiết phải sử dụng nó một cách rõ ràng để tiến hành bằng chứng cho kết luận của nó. Bạn có thể viết lại đối số của Cantor theo cách đó, nhưng bạn không phải làm vậy. Và tôi không thấy lý do tại sao bạn phải làm điều đó cho vấn đề tạm dừng. Tôi có thể đã bỏ lỡ một bước, nhưng đó?
babou

Để làm cho nhận xét trước đây của tôi rõ ràng hơn, câu hỏi ban đầu là : " Có bằng chứng trực quan hơn về sự không ổn định của vấn đề tạm dừng ... ". Tôi đang bỏ qua kết thúc, vì cảm giác của tôi là OP phàn nàn chủ yếu về việc thiếu trực giác. Tôi tin rằng thực sự có một bằng chứng trực quan hơn, không sử dụng tự tham khảo. Bạn có thể nghĩ rằng việc sử dụng bằng chứng đó là không khôn ngoan (vì không liên quan đến công việc của Russell và Gôdel), nhưng nếu nó trả lời câu hỏi được hỏi, thì điểm từ chối của nó là gì. Bạn dường như đang từ chối câu hỏi hơn là trả lời nó.
babou

@babou Tôi nghĩ vấn đề ở đây là chúng tôi đang trả lời các câu hỏi khác nhau. OP đoán không đúng về vấn đề đó tôi đoán. Câu hỏi lặp đi lặp lại trong cơ thể của OP dường như đối với tôi là "làm thế nào mà ai đó từng nghĩ về lập luận đường chéo để chứng minh ..." (dĩ nhiên là diễn giải), và "các công trình dường như được kéo ra từ một chiếc mũ ma thuật" .
Luke Mathieson

@babou, cũng để giải thích một chút, với một bàn phím phù hợp, tôi không nghĩ cách này hay cách khác nhất thiết phải có ích về mặt sư phạm (nó sẽ phụ thuộc nhiều vào ngữ cảnh). Trên thực tế, đối với hầu hết các khóa học CS hiện đại, có lẽ tốt hơn là làm điều đó mà không cần đối số chéo, hầu hết các sinh viên CS không chỉ nghiêng về mặt toán học để biết nền tảng dễ hiểu hơn, nhưng tôi chắc chắn đã trả lời câu hỏi kết thúc văn bản cơ thể ban đầu: ...
Luke Mathieson

9

Tự áp dụng không phải là một thành phần cần thiết của bằng chứng

Tóm lại

Nếu có máy Turing giải quyết vấn đề tạm dừng, thì từ máy đó, chúng ta có thể xây dựng một máy Turing L khác với hành vi tạm dừng (chức năng đặc trưng tạm dừng) không thể là hành vi tạm dừng của bất kỳ máy Turing nào.HL

Nghịch lý được xây dựng trên chức năng tự áp dụng (được gọi là L trong câu trả lời này - xin lỗi về sự không nhất quán ký hiệu) không phải là một thành phần cần thiết của bằng chứng, nhưng là một thiết bị có thể sử dụng với việc xây dựng một mâu thuẫn cụ thể, che giấu những gì có vẻ là "thực mục đích "của việc xây dựng. Đó có lẽ là lý do tại sao nó không trực quan.DL

Dường như trực tiếp hơn để chỉ ra rằng chỉ có vô số hành vi tạm dừng (không nhiều hơn các máy Turing), có thể được định nghĩa là các chức năng tạm dừng đặc trưng được liên kết với mỗi máy Turing. Người ta có thể định nghĩa một cách xây dựng một chức năng tạm dừng đặc trưng không có trong danh sách, và xây dựng từ nó, và từ một máy giải quyết vấn đề tạm dừng, một máy L có chức năng tạm dừng đặc trưng mới đó. Nhưng vì, bằng cách xây dựng, nó không phải là chức năng tạm dừng đặc trưng của máy Turing, L không thể là một. Vì L được chế tạo từ H sử dụng các kỹ thuật chế tạo máy Turing, H không thể là máy Turing.HLLLHH

Việc tự áp dụng cho chính nó, được sử dụng trong nhiều bằng chứng, là một cách để thể hiện sự mâu thuẫn. Nhưng nó chỉ hoạt động khi chức năng tạm dừng đặc tính không thể được xây dựng từ đường chéo của danh sách các chức năng tạm dừng đặc trưng được phép Turing, bằng cách lật đường chéo này (trao đổi 01 ). Nhưng có vô số cách khác để xây dựng một chức năng tạm dừng đặc trưng mới. Sau đó, không phải Turing-ness có thể không còn được chứng minh bằng một nghịch lý nói dối (ít nhất là không đơn giản). Cấu trúc tự ứng dụng không trực quan vì nó không cần thiết, nhưng trông có vẻ lắt léo khi được rút ra khỏi chiếc mũ ma thuật.L01

Về cơ bản, không phải là máy Turing vì nó được thiết kế từ đầu để có hành vi tạm dừng không phải là máy Turing và có thể được hiển thị trực tiếp hơn, do đó trực quan hơn.L

Lưu ý : Có thể, đối với bất kỳ lựa chọn mang tính xây dựng nào của chức năng tạm dừng đặc tính không thể, có một sự sắp xếp lại có thể tính toán của phép liệt kê máy Turing sao cho nó trở thành đường chéo (tôi không biết). Nhưng, imho, điều này không thay đổi thực tế rằng tự ứng dụng là một kỹ thuật chứng minh gián tiếp đang che giấu một thực tế trực quan và thú vị hơn.

Phân tích chi tiết các bằng chứng

Tôi sẽ không trở thành lịch sử (nhưng nhờ những người này, tôi thích nó), nhưng tôi chỉ cố gắng làm việc theo khía cạnh trực quan.

Tôi nghĩ rằng bài thuyết trình được đưa ra @vzn , mà tôi đã gặp từ lâu (tôi đã quên), thực sự khá trực quan, và thậm chí giải thích tên chéo. Tôi chỉ nhắc lại chi tiết vì tôi cảm thấy @vzn không nhấn mạnh đủ sự đơn giản của nó.

Mục đích của tôi là có một cách trực quan để lấy lại bằng chứng, biết rằng Cantor. Vấn đề với nhiều phiên bản của bằng chứng là các công trình dường như được kéo ra từ một chiếc mũ ma thuật.

Bằng chứng mà tôi đưa ra không hoàn toàn giống như trong câu hỏi, nhưng nó là chính xác, theo như tôi có thể thấy. Nếu tôi không phạm sai lầm, nó đủ trực quan vì tôi có thể truy xuất nó sau nhiều năm hơn là tôi quan tâm, làm việc với các vấn đề rất khác nhau.

Trường hợp các tập con của (Cantor)N

Bằng chứng của Cantor giả định (đó chỉ là một giả thuyết) rằng có một phép liệt kê các tập con của các số nguyên, do đó tất cả các tập con có thể được mô tả bởi hàm đặc trưng C j ( i )1 nếu i S j và bằng 0 nếu không.SjCj(i)1iSj0

Đây có thể được xem như một bảng , sao cho T [ i , j ] = C j ( i )TT[i,j]=Cj(i)

Sau đó, xem xét các đường chéo, chúng tôi xây dựng một chức năng đặc trưng D ( i ) = ¯ T [ i , i ] , tức là nó giống với đường chéo của bảng với mỗi bit lật sang giá trị khác.DD(i)=T[i,i]¯

Không có gì đặc biệt về đường chéo, ngoại trừ đó là một cách dễ dàng để có được một chức năng đặc trưng khác với tất cả những người khác, và đó là tất cả những gì chúng ta cần.D

Do đó, tập hợp con đặc trưng bởi không thể nằm trong bảng liệt kê. Kể từ đó sẽ thực sự của bất kỳ điều tra, không thể có một điều tra rằng liệt kê tất cả các tập con của N .DN

Điều này được thừa nhận, theo câu hỏi ban đầu, khá trực quan. Chúng ta có thể làm cho bằng chứng của vấn đề tạm dừng là trực quan?

Trường hợp của vấn đề tạm dừng (Turing)

Chúng tôi giả định rằng chúng tôi có một bảng liệt kê các máy Turing (mà chúng tôi biết là có thể). Hành vi tạm dừng của máy Turing có thể được mô tả bằng chức năng tạm dừng đặc trưng H j ( i )1 nếu M j dừng trên đầu vào i và bằng 0 nếu không.MjHj(i)1Mji0

Đây có thể được xem như một bảng , sao cho T [ i , j ] = H j ( i )TT[i,j]=Hj(i)

Sau đó, xem xét các đường chéo, chúng tôi xây dựng một đặc tính ngăn chặn chức năng D ( i ) = ¯ T [ i , i ] , tức là nó giống với đường chéo của bảng với mỗi bit lật sang giá trị khác.DD(i)=T[i,i]¯

Không có gì đặc biệt về đường chéo, ngoại trừ việc dễ dàng có được chức năng tạm dừng đặc trưng khác với tất cả các đường chéo khác, và đó là tất cả những gì chúng ta cần (xem ghi chú ở phía dưới).D

Do đó, hành vi tạm dừng được đặc trưng bởi không thể là hành vi của máy Turing trong bảng liệt kê. Vì chúng tôi liệt kê tất cả, chúng tôi kết luận rằng không có máy Turing nào có hành vi đó.D

Không có lời tiên tri tạm dừng cho đến nay, và không có giả thuyết tính toán : Chúng tôi không biết gì về khả năng tính toán của và của các hàm H j .THj

Bây giờ giả sử chúng ta có một máy Turing có thể giải quyết vấn đề tạm dừng, do đó H ( i , j ) luôn luôn dừng với H j ( i ) .HH(i,j)Hj(i)

Chúng tôi muốn chứng minh rằng, cho , chúng tôi có thể xây dựng một cỗ máy L có đặc tính ngăn chặn chức năng D . Máy L gần giống với H , do đó L ( i ) bắt chước H ( i , i ) , ngoại trừ bất cứ khi nào H ( i , i ) sắp kết thúc với giá trị 1 , L ( i ) đi vào một vòng lặp vô hạn và không chấm dứt.HLDLHL(i)H(i,i)H(i,i)1L(i)

Rõ ràng là chúng ta có thể xây dựng một máy như vậy nếu H tồn tại. Do đó, máy này phải nằm trong bảng liệt kê ban đầu của tất cả các máy (mà chúng tôi biết là có thể). Nhưng không thể vì hành vi tạm dừng D của nó tương ứng với không có máy nào được liệt kê. Máy L không thể tồn tại, ngụ ý rằng H không thể tồn tại.LHDLH

Tôi cố tình bắt chước bằng chứng đầu tiên và đi vào chi tiết nhỏ

Cảm giác của tôi là các bước đến một cách tự nhiên theo cách này, đặc biệt là khi người ta coi bằng chứng của Cantor là trực quan hợp lý.

Đầu tiên liệt kê các cấu trúc tôn giáo. Sau đó, người ta lấy và sửa đổi đường chéo như một cách thuận tiện để chạm vào tất cả chúng để có được một hành vi không được xác định, sau đó nhận được một mâu thuẫn bằng cách thể hiện một đối tượng không xác định được hành vi ... nếu giả thuyết nào đó là đúng: sự tồn tại của bảng liệt kê cho Cantor, và sự tồn tại của một lời tiên tri tạm dừng tính toán cho Turing.

Lưu ý: Để xác định hàm , chúng ta có thể thay thế đường chéo bị lật bằng bất kỳ hàm tạm dừng đặc trưng nào khác, khác với tất cả các hàm được liệt kê trong T , có thể tính toán được ( ví dụ như các hàm được liệt kê trong T ) . Sau đó, máy L sẽ phải được xây dựng tương ứng, để có D là chức năng tạm dừng đặc trưng và L ( i ) sẽ sử dụng máy H , nhưng không bắt chước trực tiếp H ( i , i ) . Sự lựa chọn của đường chéo làm cho nó đơn giản hơn nhiều.DTTLDL(i)HH(i,i)

So sánh với bằng chứng "khác"

Hàm được định nghĩa ở đây rõ ràng là tương tự của hàm D trong chứng minh được mô tả trong câu hỏi.LD

Chúng tôi chỉ xây dựng nó theo cách nó có chức năng tạm dừng đặc trưng tương ứng với không có máy Turing và trực tiếp nhận được mâu thuẫn từ đó. Điều này cho chúng ta sự tự do không sử dụng đường chéo (cho những gì nó có giá trị).

Ý tưởng về bằng chứng "thông thường" dường như cố gắng giết chết những gì tôi thấy là một con cá chết. Nó nói: hãy giả sử rằng là một trong những máy được liệt kê (nghĩa là tất cả chúng). Sau đó, nó có một chỉ số j L trong liệt kê rằng: L = M j L . Sau đó, nếu L ( j L ) dừng lại, chúng ta có T [ j L , j L ] = H ( j L , j L ) = 1 , sao cho L ( j L )LjLL=MjLL(jL)T[jL,jL]=H(jL,jL)=1L(jL)sẽ lặp bằng cách xây dựng. Ngược lại, nếu không dừng lại, thì T [ j L , j L ] = H ( j L , j L ) = 0 để L ( j L ) sẽ dừng lại khi xây dựng. Như vậy chúng ta có một mâu thuẫn. Nhưng mâu thuẫn xuất phát từ cách xây dựng chức năng tạm dừng đặc trưng của L , và có vẻ đơn giản hơn rất nhiều khi nói rằng LL(jL)T[jL,jL]=H(jL,jL)=0L(jL)LL không thể là máy Turing vì nó được chế tạo để có chức năng tạm dừng đặc trưng không phải là máy Turing.

Một điểm phụ là bằng chứng thông thường này sẽ đau đớn hơn rất nhiều nếu chúng ta không chọn đường chéo, trong khi cách tiếp cận trực tiếp được sử dụng ở trên không có vấn đề gì với nó. Cho dù điều đó có thể hữu ích, tôi không biết.


Rất tuyệt cảm ơn bạn! Có vẻ như bằng cách nào đó bạn đã xoay sở để đi xung quanh các công trình tự áp dụng mà tôi thấy rắc rối. Bây giờ tôi tự hỏi tại sao mọi người tìm thấy chúng cần thiết ở nơi đầu tiên.
dùng118967

@ user118967 Tôi đã cố gắng nhấn mạnh rằng sử dụng đường chéo không thực sự quan trọng. Tất cả những gì bạn muốn là xác định hàm tạm dừng đặc trưng khác với tất cả các hàm được liệt kê trong bảng và có thể tính toán được từ các hàm được liệt kê, miễn là chúng ta có một lời tiên tri tạm dừng. Có vô số chức năng tạm dừng đặc trưng như vậy. Bây giờ dường như không thể thấy rõ trong bằng chứng thông thường, và có thể một số cấu trúc của bằng chứng đó có vẻ độc đoán chỉ đơn giản là vì chúng giống như chọn đường chéo trong bằng chứng ở trên. Nó chỉ đơn giản, không cần thiết.
babou

@ user118967 Tôi đã thêm và giới thiệu tóm tắt phân tích các bằng chứng khác nhau. Nó bổ sung cho sự so sánh giữa các bằng chứng (có và không có ứng dụng tự) được đưa ra cuối cùng. Tôi không biết liệu tôi đã bỏ đi với đường chéo như đã hỏi hay chưa :) (Tôi nghĩ sẽ không công bằng khi nói như vậy) nhưng tôi đưa ra gợi ý về cách loại bỏ đường chéo rõ ràng. Và bằng chứng không sử dụng tự ứng dụng, có vẻ như không cần thiết, nhưng tìm kiếm khéo léo, lừa che giấu những gì có vẻ là một vấn đề quan trọng hơn, hành vi tạm dừng.
babou

@ user118967 Để trả lời bình luận đầu tiên của bạn và sau khi đọc câu trả lời được đánh giá cao nhất, dường như động lực chính là liên kết với công việc của Russell và Gôdel. Bây giờ tôi không biết liệu nó có thực sự cần thiết cho mục đích đó hay không, và biến thể xây dựng tự áp dụng chắc chắn có thể được nghiên cứu cho mục đích này, nhưng tôi không thấy quan điểm của việc áp dụng nó lên mọi người. Hơn nữa, bằng chứng trực tiếp hơn có vẻ trực quan hơn, và cung cấp cho công cụ để phân tích sâu hơn phiên bản tự áp dụng. Tại sao sau đó?
babou

Vâng, tôi có xu hướng đồng ý với bạn về điều đó.
dùng118967

8

Ngoài ra còn có một bằng chứng về thực tế này sử dụng một nghịch lý khác, nghịch lý của Berry, mà tôi nghe được từ Ran Raz.

B(n)nS(n)nB(n)S(n)

Hãy xem xét chương trình sau:

  1. n

  2. L

  3. L

B(n)nÔi(đăng nhậpn)nÔi(đăng nhậpn)Cđăng nhậpnNCđăng nhậpNNNB(N)B(N)

Ý tưởng tương tự có thể được sử dụng để chứng minh các định lý không hoàn chỉnh của Gôdel, như được thể hiện bởi Kritchman và Raz .


Có lẽ đó là trong bài báo mà tôi trích dẫn, hoặc trong chuyên khảo cổ điển Kolmogorov Complexity của Li và Vitányi.
Yuval Filmus

Nhân tiện, bạn có nghĩ rằng phương pháp này cung cấp một cuộc tấn công vào vấn đề NP vs CoNP không?
Mohammad Al-Turkistany

Không. Vấn đề như vậy là ngoài chúng ta vào lúc này.
Yuval Filmus

n

nnn

6

Có một ý tưởng tổng quát hơn liên quan ở đây được gọi là "định lý đệ quy" có thể trực quan hơn: Máy Turing có thể sử dụng mô tả của riêng họ (và do đó tự chạy). Chính xác hơn, có một định lý:

Đối với bất kỳ máy Turing nào T, có một máy Turing Rtính toán R(x) = T(R;x).

Nếu chúng ta có một máy Turing có thể giải quyết vấn đề tạm dừng, thì bằng cách sử dụng ý tưởng được mô tả ở trên, chúng ta có thể dễ dàng xây dựng một loạt các máy turing "nói dối": ví dụ như trong ký hiệu giống trăn,

def liar():
    if halts(liar):
        return not liar()
        # or we could do an infinite loop
    else:
        return True

Đối số phức tạp hơn về cơ bản chỉ là cố gắng làm điều này trực tiếp mà không lôi cuốn định lý đệ quy. Đó là, nó lặp lại một công thức để xây dựng các chức năng "tự tham chiếu". ví dụ: được cung cấp một máy Turing T, đây là một công thức như vậy để xây dựng mộtR thỏa mãn

R(x) = T(R; x)

Đầu tiên, xác định

S(M; x) = T(M(M; -); x)

trong đó M(M; -), điều tôi thực sự muốn nói là chúng tôi tính toán (sử dụng mô tả M) và cắm mô tả về máy Turing, trên đầu vàoy , đánh giá M(M; y).

Bây giờ, chúng tôi quan sát rằng nếu chúng ta cắm Svào chính nó

S(S; x) = T(S(S; -); x)

chúng tôi nhận được sự trùng lặp mà chúng tôi muốn. Vì vậy, nếu chúng ta thiết lập

R = S(S; -)

sau đó chúng tôi có

R(x) = T(R; x)

như mong muốn.


Đoạn đầu tiên không khớp với định lý bạn trích dẫn, mà tôi biết theo tên của định lý smn.
Raphael

@Raphael: Nó được gọi là định lý đệ quy trong sách giáo khoa của tôi. :( Nỗ lực ngắn ngủi của tôi tại google không thể tìm thấy bất kỳ tên thay thế nào.

Đừng lo lắng; có thể tôi hiểu bạn sai, hoặc có những tên khác nhau cho cùng một điều. Điều đó nói rằng, câu "Máy Turing có thể sử dụng mô tả của riêng họ" không được hỗ trợ bởi định lý bạn trích dẫn. Trên thực tế, tôi nghĩ rằng nó sai: nếu hàm tính toán TM phụ thuộc vào chỉ mục của nó, thì tất cả nhiều TM sẽ tính toán cùng một hàm sẽ như thế nào?
Raphael

Xin lỗi, không theo dõi. Không nênTlà một TM phổ quát ? Ngoài ra tại sao liartrở lại Truetrong trường hợp khác? Có phải trả lời câu hỏi "không" kẻ nói dối "dừng lại?"? Nếu vậy, tại sao nó trở lại ok not liar()trong trường hợp đầu tiên? Nó không phải là False(hoặc vòng lặp vô hạn)?
dùng118967

@user: Không: bạn đã hiểu sai số lượng. Định lý là "cho mọiT, có tồn tại một R như vậy mà R(x)= =T(R;x)". Bạn đang nghĩ về" Có tồn tại một T như vậy cho mọi R, R(x)= =T(R;x).

5

bằng chứng Turing khá giống với bằng chứng của Cantors rằng tính chính xác của số thực ("không đếm được") lớn hơn số lượng của số hữu tỷ ("có thể đếm được") vì chúng không thể được đưa vào tương ứng 1-1 nhưng điều này không được ghi chú / nhấn mạnh trong rất nhiều tài liệu tham khảo (có ai biết không?). (iirc) một CS prof đã từng thể hiện cách đây nhiều năm trong lớp (không chắc anh ta tự lấy nó ở đâu). trong chứng minh Cantors người ta có thể tưởng tượng một lưới có kích thước ngang chữ số thứ n của số và kích thước dọc là số thứ n của tập hợp.

cấu trúc bằng chứng tạm dừng Turing khá giống nhau ngoại trừ nội dung của bảng là Halt / Nonhalt cho 1/0 thay vào đó, và trục ngang là đầu vào thứ n và trục dọc là chương trình máy tính thứ n . nói cách khác, sự kết hợp giữa các chương trình máy tính và đầu vào là có thể đếm được nhưng bảng / mảng vô hạn là không thể đếm được dựa trên cấu trúc mô phỏng máy vạn năng có thể "lật" một trường hợp tạm dừng giả sử tồn tại máy phát hiện dừng (do đó reductio ad absurdam ) .

Một số bằng chứng cho thấy Turing đã xây dựng Cantors một phần trong tâm trí là cùng một bài báo với bằng chứng tạm dừng nói về các số tính toán như (dọc theo dòng) các số thực với các chữ số tính toán.


phụ lục, thực sự có một cách rất "trực quan" để xem tính không ổn định nhưng nó đòi hỏi rất nhiều toán học cao hơn để nắm bắt (tức là trực giác của một người mới học khác nhiều so với trực giác của một chuyên gia). các nhà toán học xem xét vấn đề tạm dừng và các vị thần bằng chứng giống hệt nhau thông qua định lý điểm cố định Lawvere, nhưng đây là một thực tế tiên tiến không thể tiếp cận được với sinh viên đại học "chưa". Xem vấn đề tạm dừng, bộ không tính toán, vấn đề toán học phổ biến? Khoa học máy tính lý thuyết & cũng liên kết bài cho refs
vzn

3

Tại thời điểm này, đáng chú ý là tác phẩm của Emil Post , người được công nhận là người đồng phát hiện ra các kết quả cơ bản của tính toán, mặc dù đáng buồn là đã được công bố quá muộn để được coi là người đồng phát hiện ra giải pháp cho Entscheidungsprobols . Ông chắc chắn đã tham gia vào việc xây dựng luận án được gọi là Church-Turing .

Bài viết được thúc đẩy bởi những cân nhắc rất triết học, cụ thể là những hạn chế về mặt lý thuyết của khả năng tính toán của con người, hoặc thậm chí có được câu trả lời chính xác một cách nhất quán . Ông đã nghĩ ra một hệ thống, bây giờ được gọi là hệ thống chính tắc Post , các chi tiết không quan trọng, mà ông tuyên bố có thể được sử dụng để giải quyết bất kỳ vấn đề nào có thể được giải quyết bằng cách thao tác các biểu tượng . Thật thú vị, anh ta rõ ràng coi các trạng thái tinh thần là một phần của "bộ nhớ" một cách rõ ràng, do đó, ít nhất anh ta có thể coi mô hình tính toán của mình là một mô hình tư duy của con người.

Các Entscheidungsproblem xem xét khả năng sử dụng một phương tiện đó tính toán để nói, xác định theoremhood của bất kỳ thể biểu đề xuất trong hệ thống của Principia Mathematica . Nhưng Thủ tướng là một hệ thống được thiết kế rõ ràng để có thể đại diện cho tất cả các lý luận toán học, và, bằng cách mở rộng (ít nhất là vào thời điểm đó, khi Logic vẫn còn thịnh hành) tất cả lý luận của con người!

Do đó, điều đó không có gì đáng ngạc nhiên, khi chuyển sự chú ý của một hệ thống như vậy sang chính các hệ thống kinh điển của Post, giống như tâm trí con người, thông qua các tác phẩm của Frege, Russel và các nhà logic của thế kỷ đã chuyển sự chú ý của họ sang khoa lý luận của chính tâm trí con người.

Vì vậy, rõ ràng vào thời điểm này, việc tự tham khảo, hoặc khả năng tự mô tả các hệ thống, là một chủ đề khá tự nhiên vào đầu những năm 1930. Trên thực tế, David Hilbert đã hy vọng "tự khởi động" lý luận toán học, bằng cách cung cấp một mô tả chính thức về tất cả toán học của con người, sau đó có thể được chứng minh về mặt toán học là chính nó!

Sau khi sử dụng một hệ thống chính thức để suy luận về chính nó, đó là một bước nhảy và bỏ qua các nghịch lý tự tham chiếu thông thường (có một lịch sử khá cũ ).

Vì tất cả các tuyên bố trong Princia được coi là "đúng" theo nghĩa siêu hình nào đó, và Princia có thể diễn đạt

chương trình ptrả về kết quả trueđầu vàon

nếu một chương trình tồn tại để quyết định tất cả các định lý trong hệ thống đó, thì việc thể hiện trực tiếp nghịch lý của kẻ nói dối là khá đơn giản:

chương trình này luôn luôn nói dối.

có thể được thể hiện bởi

Chương trình pluôn trả về điều ngược lại với những gì mà nhà toán học nói psẽ trả lại.

Khó khăn là xây dựng chương trình p. Nhưng tại thời điểm này, việc xem xét câu tổng quát hơn là điều khá tự nhiên

Chương trình pluôn trả về điều ngược lại với những gì Thủ tướng nói qsẽ trả lại.

cho một số tùy ý q. Nhưng nó dễ dàng để xây dựng p(q)cho bất kỳ được đưa ra q! Chỉ cần tính toán những gì PM dự đoán nó sẽ xuất ra và trả về câu trả lời ngược lại. Tuy nhiên, tại thời điểm này, chúng ta không thể thay thế qbằng cách lấy đầu vào và không (không mất đầu vào). Hãy thay đổi bản án của chúng tôi để làm mất đầu vào:ppqqp

Chương trình ptrả về ngược lại với những gì PM nói q(r)sẽ trả lại.

Tranh cãi! Nhưng bây giờ pmất 2 miếng đầu vào: qr, trong khi qchỉ mất 1. Nhưng chờ đợi: chúng tôi muốn pở cả hai nơi anyways, vì vậy rkhông phải là một mới mẩu thông tin, nhưng chỉ cùng một mảnh dữ liệu một lần nữa, cụ thể là q! Đây là quan sát quan trọng.

Vì vậy, cuối cùng chúng tôi nhận được

Chương trình ptrả về ngược lại với những gì PM nói q(q)sẽ trả lại.

Hãy quên chuyện kinh doanh "PM nói" ngớ ngẩn này đi và chúng ta sẽ có

Chương trình p(q)trả về ngược lại với những gì q(q)sẽ trở lại.

Đây là một chương trình hợp pháp miễn là chúng tôi có một chương trình luôn cho chúng tôi biết những gì q(q)trả về . Nhưng bây giờ mà chúng tôi có chương trình của chúng tôi p(q), chúng tôi có thể thay thế qbằng pvà nhận nghịch lý kẻ nói dối chúng ta.

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.