Tóm lại : Turing Machine có thể thực hiện (chỉ định chính xác) các tính toán vô hạn trên dữ liệu vô hạn (được chỉ định chính xác) và tạo ra kết quả vô hạn (được chỉ định chính xác). Ý tưởng cơ bản là những điểm vô hạn đó có thể được định nghĩa là giới hạn của các thực thể hữu hạn, được định nghĩa theo cách phù hợp về mặt toán học. Đây là cơ sở của ngữ nghĩa toán học của tính toán. Nếu bạn xem xét các chương trình thay vì Turing Machines, các chương trình này cũng có thể chứa (được chỉ định chính xác) cấu trúc dữ liệu vô hạn. Trường hợp của một hàm được lập bảng fact
như là một thuật toán có thể được phân tích cuối cùng, như một chương trình, hoặc như một mô hình TM, với một gợi ý về mối quan hệ với việc đánh giá lười biếng các đối tượng vô hạn.
Với nhiều chi tiết hơn
Về câu hỏi cuối cùng của bạn, một TM không tính toán các số tùy ý, mà biểu thị biểu tượng của các số này dưới dạng các chuỗi ký hiệu dài tùy ý (không giới hạn) đại diện cho chúng. Modulo đúng mã hóa, đúng là họ có thể so sánh hoặc làm mỹ phẩm với những con số như vậy thông qua các đại diện này.
Nhưng câu hỏi ban đầu là về vai trò của vô cực trong Turing Machines nói chung.
Một câu trả lời chung cho câu hỏi này là Turing Machines không bao giờ đối phó với vô hạn. Chúng được xác định một cách hữu hạn, và bất cứ điều gì chúng tính toán đều được tính toán trong thời gian hữu hạn trên một phần hữu hạn của băng (do đó một băng hữu hạn lớn hơn sẽ là đủ). Điều đúng là thời gian yêu cầu không gian của TM không bị ràng buộc, điều này không giống như vô hạn.
Do đó, bất kỳ câu trả lời nào được tính toán bằng TM cũng có thể được tính toán bằng máy tự động trạng thái hữu hạn (FSA), đó là "ở một mức độ nào đó" một cách để xem xét lập bảng. Khó khăn ở đây là một số kích thước đầu vào (gần như luôn luôn là như vậy, nếu chỉ đọc đầu vào) sẽ vượt quá kích thước của máy tự động. Nhưng sau đó, chúng ta chỉ có thể sử dụng một cái lớn hơn. Vì vậy, nếu chúng ta muốn xem xét kích thước đầu vào không giới hạn, chúng ta cần một chuỗi FSA vô hạn có thể thực hiện tính toán. Trên thực tế, chúng ta có thể cần một máy trạng thái hữu hạn phức tạp hơn một chút so với FSA truyền thống vì có thể có một đầu ra được tính toán (chứ không phải là câu trả lời có - không), nhưng có thể nên chuyển đổi trạng thái hữu hạn.
Vì vậy, nếu chúng ta đang xem xét một vấn đề có một tập hợp vô hạn, chẳng hạn như tính toán GCD, hoặc đơn giản là sử dụng arithologists trên các số nguyên có kích thước tùy ý, chúng ta sẽ thấy rằng vô hạn đang quay trở lại với chúng ta thông qua cửa sau, vì điều này là vô hạn bộ FSA.
Nhưng có một vấn đề khác. Phân tích trên chỉ hoạt động khi chúng tôi xem xét các tính toán chấm dứt với kết quả. Nhưng không phải tất cả TM làm điều đó. Một số có thể liệt kê các thành viên của một tập hợp vô hạn. Đây thường là trường hợp cho một TM tính các số thập phân của và tiếp tục thêm một số mới, vô thời hạn. Tất nhiên, nó chỉ tính toán một câu trả lời hữu hạn trong một thời gian hữu hạn, nhưng điều chúng ta quan tâm thực sự là chuỗi vô hạn được tạo ra bởi một tính toán vô hạn. Lưu ý rằng bây giờ chúng ta có hai khía cạnh của vô cùng: tính vô hạn của tính toán và vô hạn của kết quả (tức là một số dữ liệu được tính toán). Trên thực tế, điều đó thậm chí có thể dẫn đến việc xem xét đầu vào vô hạn ... nhưng chúng ta hãy bỏ qua sự phức tạp này, liên quan đến các luồng dữ liệu không bị ràng buộc. Cũng lưu ý rằng các tính toán như vậy cung cấp đầu ra khác hơn là cóπ
Sau đó, một lần nữa, chúng ta có thể thay thế nó bằng một chuỗi vô hạn các tính toán hữu hạn bằng các máy hữu hạn. Nhưng chúng ta đang gian lận.
Từ quan điểm vật lý, đó là điều tốt nhất chúng ta có thể làm. Chúng tôi chỉ biết cách chế tạo những cỗ máy hữu hạn, ít nhất là theo tình trạng hiện đại của vật lý, dự kiến sẽ không thay đổi quá nhiều về vấn đề đó trong tương lai gần.
Nhưng làm thế nào chúng ta có thể xử lý những điểm yếu đó một cách nhất quán và dễ hiểu theo quan điểm toán học.
Khi bạn xem xét một bộ FSA vô hạn có thể sắp xếp hợp tác để tính toán một bộ câu trả lời vô hạn, bạn không thể thực hiện nó một cách tùy tiện. Bạn cần một số biện pháp bảo vệ để đảm bảo rằng những gì bạn đang làm có ý nghĩa. Người ta biết rằng bạn có thể xây dựng một cách tầm thường bất kỳ tập hợp nào với một tập hợp vô hạn của các tập thông thường, thực sự với một tập hợp vô hạn của các tập đơn. Vì vậy, việc xem xét các hiệp hội vô hạn tùy ý của automata mà không có bất kỳ hạn chế nào sẽ dẫn bạn đến đâu. Bạn thậm chí xem xét trong cùng một bộ automata cung cấp cho bạn câu trả lời không nhất quán.
Những gì bạn thực sự muốn là xác định một khái niệm về tính nhất quán. Nhưng điều đó đòi hỏi một số biện pháp phòng ngừa. Giả sử bạn đang sử dụng một chuỗi automata vô hạn để mô phỏng một TM trả lời có hoặc không, hoặc không dừng lại. Vấn đề là một FSA sẽ luôn dừng lại với một câu trả lời, chẳng hạn như có hoặc không. Nhưng nếu bạn sử dụng một FSA thực sự không có kích thước đủ lớn cho đầu vào được chọn, thì nó sẽ trả lời như thế nào. Cả có và không được dành riêng cho các trường hợp khi FSA thực sự chấm dứt tính toán TM và sử dụng một trong những câu trả lời này với một tính toán chưa hoàn thành sẽ chỉ dẫn đến nhầm lẫn. Điều bạn muốn là một câu trả lời có nội dung: " xin lỗi, tôi quá nhỏ và tôi không thể nói được. Hãy thử với một anh chàng lớn hơn trong gia đình ". Nói cách khác, bạn muốn có một câu trả lời như
tràn , hoặc không biết. Trên thực tế, nó được gọi bởi các nhà ngữ nghĩa học " không xác định " hoặc " dưới cùng " và thường được viết " ".⊥
Vì vậy, bạn cần automata có 3 loại trạng thái: chấp nhận, không chấp nhận và không xác định. Một trạng thái không xác định có thể được xem là trạng thái đứng cho một phần còn thiếu của máy tự động buộc tính toán phải dừng lại. Vì vậy, khi tính toán tạm dừng, tùy thuộc vào trạng thái dừng, bạn nhận được câu trả lời có , không hoặc không xác định .
Bây giờ, bạn thấy rằng những gì bạn muốn là chuỗi vô hạn của automata phù hợp . Cả có và không phù hợp với
không xác định , nhưng có không phù hợp với không . Sau đó, hai automata là nhất quán khi họ đưa ra câu trả lời nhất quán trên cùng một đầu vào.
Điều này có thể được mở rộng để automata tính toán các loại câu trả lời khác. Ví dụ: nếu họ tính toán các màu, chẳng hạn như đỏ, xanh dương, xanh lục ..., bạn có thể thêm màu không xác định phù hợp với tất cả các màu khác. Nếu câu trả lời là một chuỗi các chữ số vô hạn như của , thì mỗi chữ số có thể được thay thế một cách nhất quán và độc lập bằng cách không xác định sao cho phù hợp với và với
, nhưng sau này hai không phù hợp với . Trên thực tế, theo nghĩa này, không phải là xấp xỉ của3.14 ⊥ ⊥ ⊥ ⊥ . . . 3,1415 ⊥ ⊥ ⊥ ⊥ . . . ⊥ . ⊥ 5159 ⊥ ⊥ ⊥ ⊥ . . . 3,1416 ⊥ ⊥ ⊥ ⊥ . . . 3,1416 ⊥ ⊥ ⊥ ⊥ . . . ππ3.14⊥⊥⊥⊥...3.1415⊥⊥⊥⊥...⊥.⊥5159⊥⊥⊥⊥...3.1416⊥⊥⊥⊥...3.1416⊥⊥⊥⊥...π. Chúng tôi nói rằng một câu trả lời được xác định tốt hơn câu trả lời khác khi nó chứa tất cả thông tin có thể tìm thấy trong câu hỏi khác, và có thể nhiều hơn nữa. Đây thực sự là một thứ tự một phần.
Tôi sẽ không phát triển thêm các khía cạnh lý thuyết này, điều này hơi khó xử khi dựa trên Turing Machines. Vấn đề là các khái niệm này dẫn đến ý tưởng rằng các miền tính toán (dù là dữ liệu hay máy móc), hình thành các cấu trúc toán học như mạng tinh thể, trong đó đối tượng vô hạn có thể được định nghĩa đầy đủ là các giới hạn của các chuỗi tăng vô hạn (nghĩa là tốt hơn và được xác định tốt hơn) vật hữu hạn. Xác định các chuỗi vô hạn đòi hỏi một số bộ máy nhiều hơn và một khái niệm về tính liên tục. Đây là những gì cơ bản về lý thuyết ngữ nghĩa của Dana Scott, và nó đưa ra một cái nhìn hơi khác về các khái niệm về khả năng tính toán.
Sau đó, máy Turing hoặc các thiết bị chính thức khác có thể thực hiện "tính toán vô hạn" có thể được định nghĩa là giới hạn của các chuỗi xấp xỉ hữu hạn của máy, được xác định tốt hơn và tốt hơn. Điều này cũng đúng với bất kỳ dữ liệu nào mà máy tính toán, cho dù là đầu vào hay đầu ra.
Tài liệu đơn giản nhất tôi từng đọc về điều này là một tập hợp các ghi chú bài giảng viết tay của Dana Scott, thường được gọi là các ghi chú bài giảng ở Amsterdam. Nhưng tôi không thể tìm thấy nó trên web. Bất kỳ con trỏ đến một bản sao (thậm chí không đầy đủ, như tôi có một phần của nó) sẽ được hoan nghênh. Nhưng bạn có thể xem các ấn phẩm ban đầu khác của Scott, chẳng hạn như
Đề cương lý thuyết toán học .
Quay lại ví dụ ban đầu của câu hỏi
Những khái niệm gần đúng này áp dụng cho dữ liệu cũng như cho các chương trình. Hàm fact
được định nghĩa đệ quy, có nghĩa là nó là điểm cố định ít nhất của hàm có thể được sử dụng để tính một chuỗi hội tụ gần đúng hữu hạn fact
. Chuỗi các hàm hữu hạn ngày càng được xác định này hội tụ đến một thực thể vô hạn là cái mà bạn gọi là hàm fact
.
Nhưng nếu bạn sử dụng tra cứu mảng, bạn có thể thực hiện chính xác như vậy, với mã của bạn chứa các bảng lớn hơn và lớn hơn, đó là tất cả các xấp xỉ hữu hạn của bảng vô hạn của các giá trị được tính toán trước fact
. Mỗi mảng này thực sự có thể đưa ra câu trả lời cho bất kỳ số nguyên nào, nhưng câu trả lời có thể là ( không xác định ) khi bảng không được xác định đủ (đủ lớn). Thuật toán tra cứu bảng cũng phải được xác định bởi một chuỗi các xấp xỉ, vì nó tính toán với một bảng vô hạn.⊥
Đúng là, nếu bạn xem xét mô hình tính toán TM cơ bản, một mảng vô hạn như vậy không thể được thể hiện trong chủ nghĩa hình thức đó. Nó không có nghĩa là nó sẽ không có ý nghĩa. Một máy Turing có thể có một băng thứ hai được cho là khởi tạo với các giá trị được lập bảng của một số chức năng như fact
. Nó không thay đổi sức mạnh tính toán của TM, miễn là hàm đó là một tính toán, miễn là bảng có thể được khởi tạo với một tính toán vô hạn của một TM khác có thể tính toán tất cả các cặp giá trị đối số cho hàm liên quan.
Nhưng trong thực tế, bạn không thể hoàn thành một tính toán vô hạn. Do đó cách đúng đắn để làm điều đó là tính toán bảng một cách lười biếng, tức là chỉ điền vào các mục khi cần thiết. Đó chính xác là những gì được thực hiện với việc ghi nhớ, đó là câu trả lời tôi đã đưa ra cho bạn, với những lời biện minh khác nhau, cho câu hỏi trước đó của bạn.