Đây chỉ là một ý tưởng nảy ra trong đầu tôi khi đọc Marvin L. Minsky, "Tính không thể giải quyết được của vấn đề về thẻ của bài viết và các chủ đề khác trong lý thuyết về máy Turing"; đặc biệt là định lý nổi tiếng Ia:
Định lý Ia: Chúng ta có thể biểu diễn bất kỳ hàm đệ quy một phần
bằng một chương trình hoạt động trên hai số nguyên S 1 và S 2
bằng cách sử dụng các hướng dẫn I j của các dạng:
(i) THÊM 1 đến S j và đi đến I j 1
( ii) ĐĂNG KÝ 1 từ S j , nếu S j ≠ 0 và chuyển đến I j 1 , nếu không đi đến I j 2
Nghĩa là chúng ta có thể xây dựng một chương trình như vậy bắt đầu bằng S 1f(n)S1S2Ij
SjIj1
SjSj≠0Ij1Ij2
và S 2 =S1=2n và cuối cùng dừng lại với S 1 = 2 f ( n ) và S 2 = 0S2=0S1=2f(n)S2=0
Nếu bạn có DFA hai chiều với một bộ đếm trên một băng vô hạn (bán) trong đó đầu vào được đưa ra dưới dạng đơn nhất: thì DFA có thể:$12n000...
- đọc đầu vào đơn nguyên (và lưu nó trong quầy);
- làm việc trên phần của băng và sử dụng khoảng cách từ 1 s như quầy thứ hai.0∞1
do đó, nó có thể mô phỏng một máy Turing hoàn thành hai máy đếm.
Bây giờ, nếu bạn có hàm đệ quy chạy trong thời gian T ( n ) trên máy Turing tiêu chuẩn, DFA hai chiều với một bộ đếm bắt đầu trên băng hữu hạn $ 1 m $f(n)T(n) $1m$(nơi và T ' ( n ) » T ( nm=2n3T′(n) ) có thể:T′(n)≫T(n)
- đọc đầu vào đơn nguyên (và lưu nó trong quầy);
- trở về biểu tượng ngoài cùng bên trái;
- chia bộ đếm cho 3 cho đến khi bộ đếm chứa theo cách này: đi vòng lặp bên phải từ các trạng thái q z 0 , q z 1 , q z 2 và trừ đi 1; nếu bộ đếm đạt 0 ở trạng thái q z 0, hãy chuyển đến biểu tượng ngoài cùng bên trái thêm +1 và tiếp tục vòng chia, nếu không thì thêm 1 (nếu ở trạng thái q z 1 ) hoặc 2 (nếu ở trạng thái q z 2 ) và đi đến biểu tượng ngoài cùng bên trái thêm + 3 (tức là khôi phục giá trị trước đó của bộ đếm không chia hết cho 3) và tiến hành bước 4.;2nqz0,qz1,qz2qz0qz1qz2
- tại thời điểm này bộ đếm chứa ;2n
- tính bằng cách sử dụng khoảng trống T ′ ( n ) ở bên phải làm bộ đếm thứ hai (giá trị của bộ đếm thứ hai là khoảng cách từ ký hiệu ngoài cùng bên trái $ ).2f(n)T′(n)$
Vì vậy, với mã hóa đầu vào đặc biệt được mô tả ở trên cung cấp cho nó đủ không gian trên băng hữu hạn, DFA hai chiều với một bộ đếm và bảng chữ cái đơn nhất có thể tính toán mọi hàm đệ quy.
Nếu phương pháp này là chính xác, nó sẽ là thú vị để suy luận về làm thế nào để chọn hoặc khi nó là đủ để chọn một lẻ lớn k » 2 và mã hóa các đầu vào như 1 m , m = 2 n k nT′(n)≫T(n)k≫21mm=2nkn