Máy tính trong thế giới thực có sử dụng cơ chế Turing Machine không?


7

Tôi là một học sinh cấp ba trong lớp mười hai. Tôi học lập trình cấp cao, và một chút về khoa học máy tính cơ bản.

Gần đây tôi đã bắt đầu hiểu Turing Machine là gì. Tôi muốn hỏi:

Tôi hiểu rằng Turing Machine là một thiết bị giả định được sử dụng để giải thích các cơ chế tính toán.

Nhưng liệu Turing Machine về mặt khái niệm có phải là cơ sở thực tế của máy tính không? (Ở cấp độ cơ bản nhất). Hay các cơ chế tính toán trong thế giới thực và cơ chế Turing Machine (cách tính toán mọi thứ) có rất ít điểm chung?

Câu trả lời:


10

Máy Turing được phát minh bởi Turing trong bài báo năm 1936 về các con số tính toán và vấn đề tạm dừng. Đó là một trong một vài mô hình trôi nổi vào thời điểm đó (như phép tính \ lambda của Church λ, đã được xác định trước đó). Tất cả các mô hình này sau đó đã được hiển thị tương đương, vì vậy nếu bạn chỉ quan tâm đến khả năng tính toán , thì mô hình máy Turing cũng tốt như bất kỳ mô hình nào khác.

Các máy tính hiện đại không dựa trên mô hình máy Turing. Máy Turing rất chậm và không thể hiện khả năng của phần cứng. Từ phía phần mềm, một máy tính hiện đại tương tự như máy RAM , cho phép đánh địa chỉ gián tiếp và có một "bảng chữ cái" không giới hạn (các thanh ghi của nó chứa các số nguyên lớn tùy ý), mặc dù các máy thực tế có các thanh ghi hạn chế và điều này đôi khi tạo ra sự khác biệt lớn ( ví dụ khi làm số học với số lượng lớn). Tôi không biết về một mô hình tốt cho phía phần cứng; Các mạch Boolean , phổ biến trong khoa học máy tính lý thuyết, mô hình hóa cả bộ nhớ và tính toán lặp.

Máy Turing tương đương đa thức với máy RAM có các thanh ghi giới hạn đa thức. Điều đó có nghĩa là cả hai máy đều cung cấp cùng một khái niệm về tính toán hiệu quả (tính toán thời gian đa thức), một khái niệm lý thuyết mà tính hữu dụng của nó trong thực tế là đáng nghi ngờ. Ngược lại, các máy RAM (giới hạn) tạo thành một mô hình hợp lý cho tính toán thực tế và do đó, kết quả phức tạp đối với các máy RAM có liên quan thực tế. Tuy nhiên, ngay cả mô hình này cũng bỏ qua một số phức tạp quan trọng của máy tính hiện đại, chẳng hạn như tốc độ truy cập vào các loại bộ nhớ khác nhau (đĩa, bộ nhớ chính, bộ nhớ cache khác nhau).


Cảm ơn câu trả lời của bạn. Tôi thừa nhận tôi có một chút bối rối. Tôi hiểu từ câu trả lời của bạn rằng máy tính hiện đại không dựa trên Turing Machines. Nếu vậy, điều tôi muốn biết là - đối với phần thứ cấp thấp nhất, tính toán của máy tính (sửa tôi nếu tôi sai - nhưng tôi cho rằng khả năng tính toán toán học là cơ bản nhất và ' khả năng ở mức độ thấp của bất kỳ máy tính nào, cho phép mọi thứ khác xảy ra), mô hình lý thuyết nào có thể giải thích điều này được thực hiện như thế nào? Tôi thực sự muốn hiểu một phiên bản đơn giản hóa về khía cạnh cơ bản nhất về cách thức hoạt động của máy tính.
Manila Cohn

1
Bạn có thể thử đọc Các yếu tố của hệ thống máy tính . Phần cứng hiện đại được thực hiện bằng cách sử dụng các bóng bán dẫn, thực hiện các cổng logic, flip-flop và các thiết bị bộ nhớ khác. Phần cứng thực hiện một máy RAM trên các từ của máy (hiện nay thường là 64 bit). Phần mềm được xây dựng trên nhiều lớp, nhưng mức thấp nhất mà nó có thể thấy là máy RAM này.
Yuval Filmus

1
??? Tính toán PTime "một khái niệm lý thuyết có tính hữu dụng trong thực tế là đáng nghi ngờ"? Huh?
vzn

@vzn Đối với tôi câu hỏi P so với NP hoàn toàn không có liên quan thực tế.
Yuval Filmus

1

tất cả các máy tính hiện đại về cơ bản được xây dựng trên kiến trúc Von Neumann , về cơ bản là CPU đơn vị xử lý trung tâm cộng với bộ nhớ và một chương trình được lưu trữ trong đó CPU cũng bao gồm ALU đơn vị số học / logic .

lưu ý rằng về cơ bản, máy Turing có cùng "kiến trúc", đặc biệt là máy tính vạn năng , có thể chạy các chương trình được lưu trên băng. các chức năng của bảng trạng thái và đầu băng giống như CPU ​​(trong tương tự này, ALU sẽ là tập hợp con của tất cả các trạng thái TM điều khiển logic số học) và băng dưới dạng bộ nhớ. tất nhiên nhiều máy tính thực sự ban đầu thậm chí đã sử dụng "băng" để lưu trữ dữ liệu (và điều này vẫn tiếp tục trong một số bối cảnh, ví dụ như hệ thống lưu trữ lớn). sự tương tự có thể được tăng cường hơn nữa với một "bảng chữ cái biểu tượng" nhị phân trên băng. cũng có những TM đa đầu được nghiên cứu giống như với máy tính thật.

Lý thuyết phức tạp TCS nghiên cứu các thực thể vật lý được vận hành bởi TM trừu tượng, cụ thể là cả không gianthời gian, cả hai đều có "tính liên tục / tính phân chia" giống như trong trường hợp vật lý thực. TM được cho là làm "công việc" vì nó tính toán / di chuyển , cũng là một khái niệm vật lý. nhiều định lý TCS sâu cho thấy mối tương quan sâu sắc giữa không gian và thời gian giống như có các khái niệm vật lý mạnh, ví dụ như "vận tốc". tức là tổng thể có mối liên hệ sâu sắc giữa TCS và vật lý . (không bao giờ quên TM đúng nghĩa là một cỗ máy! )

Nói tóm lại, có nhiều điểm tương đồng về khái niệm / ẩn dụ mạnh mẽ khác nhau giữa TM và máy tính hiện đại mặc dù tùy thuộc vào bối cảnh, điều này có thể được nhấn mạnh hoặc bị xem nhẹ (không đáng ngạc nhiên dẫn đến sự bối rối của học sinh). một điểm khác biệt chính là TM có bộ nhớ vô hạn trên băng, trong máy tính, đây chỉ là "xấp xỉ" (có thể nói) bởi những ký ức lớn.


1
Trong trường con của thuật toán, mọi người thường nghiên cứu các máy RAM, dường như vì chúng tạo thành một mô hình tính toán thực tế tốt hơn. Mặc dù máy Turing mô phỏng p máy RAM, máy RAM hiệu quả hơn nhiều. Bạn (có thể) không thể sắp xếp các số trong bằng máy Turing. Truy cập ngẫu nhiên là rất quan trọng trong thực tế. O(nlogn)
Yuval Filmus
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.