實踐中沒有使用圖靈機有幾個原因。對於初學者來說,不可能構建一個,因爲你需要無限的資源來構建無限大的磁帶。而且,由於數據訪問的順序性,圖靈機本質上比其他計算模型慢。例如,圖靈機不能先跳過陣列的中間位置,而不先跳過它想要跳過的所有陣列元素。最重要的是,圖靈機非常難以設計。例如,嘗試編寫一個圖靈機來對32位整數列表進行排序。 (其實請不要,這真的很難!)
這就引出了問題......爲什麼要研究圖靈機呢?幸運的是,有很多原因可以做到這一點:
推理什麼可能被計算的限制。因爲圖靈機能夠模擬行星地球上的任何計算機(或根據Church-Turing論文,任何物理上可實現的計算設備),如果我們能夠顯示圖靈機可以計算的極限,我們可以證明什麼希望能夠在實際的計算機上完成。
正式確定算法的定義。爲什麼二進制搜索算法,而聲明「猜答案」不是?爲了回答這個問題,我們必須有一個計算機是什麼和算法是什麼的正式模型。將圖靈機作爲計算模型使我們能夠嚴格定義算法是什麼。實際上沒有人想要將算法轉換爲格式,但是這樣做的能力使算法和可計算性理論領域具有堅實的數學基礎。
確定性和非確定性算法的定義。現在計算機科學中最大的問題可能就是P = NP的問題。如果你對P和NP有一個正式的定義,這個問題纔有意義,而如果是確定性和非確定性計算(雖然在技術上它們可以用二階邏輯來定義),這些問題反過來需要定義。使用圖靈機讓我們可以談論NP中的重要問題,併爲我們提供一種找到NP完全問題的方法。例如,SAT是NP-complete的證明使用SAT可用於編碼圖靈機並且它是在輸入上執行的事實。
希望這有助於!
圖靈機是否過時?或如何在當前日期使用它? –
他們在理論上說「無限磁帶」bcz來概括所有情況。但我認爲我們知道我們的案例的輸入或堆棧需要多長時間(至少大約) –
它們是爲算法計算研究創建的數學概念。他們不能'過時',因爲他們只是一個想法。計算研究的另一個想法來自Alonzo Church和他的Lambda微積分。它們不是真正的機器,而是用於證明和研究的抽象概念。 –