计算机能模拟图灵机吗,关于计算机科学:图灵机与冯诺依曼机器
背景
Von-Neumann架構描述了存儲程序計算機,其中指令和數據存儲在存儲器中,并且機器通過改變其內部狀態來工作,即指令對一些數據進行操作并修改數據。因此,系統中存在狀態。
圖靈機架構通過操縱磁帶上的符號來工作。即存在具有無限數量的槽的磁帶,并且在任何一個時間點,圖靈機都在特定的槽中。根據在該插槽讀取的符號,機器可以更改符號并移動到不同的插槽。所有這些都是確定性的。
問題
這兩個模型之間有什么關系嗎?馮·諾伊曼模型是基于圖靈模型還是受其啟發?
我們可以說圖靈模型是Von Newman模型的超集嗎?
功能編程是否適合圖靈模型?如果是這樣,怎么樣?我假設
功能性編程并不適合Von Neuman模型。
圖靈機是發明的理論概念,用于在數學上探索可計算問題的領域并獲得描述這些計算的方法。
Von-Neumann架構是用于構建實際計算機的架構(其實現圖靈機在理論上描述的內容)。
函數式編程基于lambda演算,這是描述計算的另一種方法,或者更準確地說是可計算的函數。雖然它使用了一種完全不同的方法,但它對圖靈機也同樣強大(據說它是完整的)。
每個lambda演算程序(術語)T僅使用組合來編寫
變量如x
像λx. T這樣的匿名函數
功能應用T T
盡管是無狀態的,但這對于計算機可以進行的每次計算都是足夠的。圖靈機和lambda術語可以相互模擬,Von-Neumann計算機可以同時執行(除了提供無限存儲等技術限制,圖靈機可能需要)。
但是由于其無狀態和更抽象的性質,功能性程序在Von-Neumann計算機上的效率可能會降低,而且與按照二進制,內存和更新方式遵循的命令式程序相比,不那么"直觀"。
清晰的擴張。但是,Von Neuman架構能否實現圖靈機所能描述的一切?
@Santosh:理論上,沒有真正的真實計算機可以做到這一點,也沒有人會這樣做 - 因為圖靈機需要無限量的存儲空間。
@Santhosh,邁克爾:嗯,好點。編輯了答案。
任何圖靈可計算功能必須由停止的圖靈機描述。停止的圖靈機不需要無限存儲(如何在有限的時間內讀取或寫入無限多的數據?)。因此,理論圖靈機可計算的任何東西都可以由具有足夠存儲空間的實際計算機計算。所需的存儲空間可能是任意大的,但不會是無限的。
@Tyler:不是一個無限循環圖靈可計算的嗎?當然它不會停止......
@Dario:不是在"可計算"的形式意義上它不是。圖靈可計算函數被定義為函數f,對于每個輸入n,存在停止并輸出f(n)的圖靈機。它幾乎就是"算法"的同義詞,算法定義的一個部分是它必須有有限的許多步驟,而無限循環則不然。
@Tyler:不應該是"存在一個圖靈機,對于f域中的每個n,停止并輸出f(n)"?我不認為f允許每個輸入都有一個單獨的圖靈機。
@Michael是的,你是對的;我的措辭混亂了。接得好。
@Dario是基于Von-Neumann架構的現代計算機嗎?如果最后一個問題的答案是肯定的:你還說Von-Neumann架構實現了圖靈機模型,但我認為現代計算機是基于RAM而不是基于圖靈機模型的?
一般來說,一個是指馮·諾依曼建筑,與哈佛建筑形成鮮明對比。前者具有以相同方式存儲的代碼和數據,而后者具有用于代碼和數據的單獨的存儲器和總線路徑。所有現代臺式電腦都是Von Neumann,大多數微控制器都是哈佛。兩者都是試圖模仿理論圖靈機的現實世界設計的例子(這是不可能的,因為真正的圖靈機需要無限的存儲器)。
感謝哈佛建筑與圖靈機的對比
@Santhosh:也許這只是一個錯字,但我沒有提出任何這樣的對比。正如我在回答中所說,Von Neumann和Hardvard架構都是圖靈機器。它們之間的對比是它們的內存布局。
我不知道圖靈機和馮諾伊曼架構之間有什么歷史關系。然而,我確信馮·諾伊曼在開發馮·諾伊曼建筑時意識到了圖靈機。
然而,就計算能力而言,圖靈機和馮·諾伊曼機器是等價的。任何一方都可以模仿另一方(IIRC,在圖靈機上模擬von Neuman程序是O(n ^ 6)操作)。以lambda演算形式的函數式編程也是等價的。實際上,至少與圖靈機一樣強大的所有已知計算框架都是等效的:
圖靈機
Lambda演算(函數式編程)
馮諾伊曼機器
部分遞歸函數
可以使用任何這些模型計算的函數集沒有區別。
函數式編程源自lambda演算,因此它不直接映射到Turing或von Nemuan機器。他們中的任何一個都可以通過仿真運行功能程序,hoewver。我認為圖靈機的映射可能比馮諾伊曼機器的映射更繁瑣,所以我對第三個問題的回答是"不,實際上它更糟糕"。
為O(n ^ 6)?對于什么?運行時不依賴于程序的細節嗎?
圖靈模型定義了計算能力而沒有深入實現,沒有人會創建看起來像圖靈機的計算機。 (愛好者除外http://www.youtube.com/watch?v=E3keLeMwfHY)。
圖靈模型不是架構。
馮·諾伊曼是如何建造計算機的指導。它沒有說明計算能力。根據指令集,生產的計算機可能是也可能不是圖靈完成(手段可以解決與圖靈機相同的任務)
函數編程(lambda演算)是圖靈完成的另一種計算模型,但不能原生地適用于馮·諾依曼架構。
圖靈"模型"根本不是建筑模型。這只是一個不存在的機器,圖靈假設它可以作為他證明決策問題的工具。
總結
以上是生活随笔為你收集整理的计算机能模拟图灵机吗,关于计算机科学:图灵机与冯诺依曼机器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国六b排放标准影响
- 下一篇: 一汽大众的营销客体是什么?