图灵机简介
今天計算機病毒課上老師給我們介紹了一下圖靈機。以前一直有聽說過圖靈機,今天簡單地了解了一下圖靈機,寫下一些學習過程中的收獲。
圖靈機是由圖靈大神由1936年提出的一種確定的抽象計算模型,據說它可以被看做是終極強大的邏輯機器。
圖靈的基本思想是用機器來模擬人們用紙筆進行數學運算的過程,他把這樣的過程看作下列兩種簡單的動作:
? 在紙上寫上或擦除某個符號;
? 把注意力從紙的一個位置移動到另一個位置;
而在每個階段,人要決定下一步的動作,依賴于(a)此人當前所關注的紙上某個位置的符號和(b)此人當前思維的狀態。
為了模擬人的這種運算過程,圖靈構造出一臺假想的機器,該機器由以下幾個部分組成:
一個讀寫頭HEAD。該讀寫頭可以在紙帶上左右移動,它能讀出當前所指的格子上的符號,并能改變當前格子上的符號。
一套控制規則TABLE。它根據當前機器所處的狀態以及當前讀寫頭所指的格子上的符號來確定讀寫頭下一步的動作,并改變狀態寄存器的值,令機器進入一個新的狀態。
一個狀態寄存器。它用來保存圖靈機當前所處的狀態。圖靈機的所有可能狀態的數目是有限的,并且有一個特殊的狀態,稱為停機狀態。
注意這個機器的每一部分都是有限的,但它有一個潛在的無限長的紙帶,因此這種機器只是一個理想的設備。圖靈認為這樣的一臺機器就能模擬人類所能進行的任何計算過程。
在最初的設計中圖靈機中是采用一種帶(tape)的東西作為臨時存儲,這種帶子無限長。帶可以被劃分成一個個的單元,每個單位只包含一個符號。帶子的各個單位可以被讀寫頭讀寫,這個讀寫頭可以在帶子上左右移動,但是每次只能讀寫一個符號。
我們可以把這個帶子和讀寫頭的關系跟初中使用過的復讀機的磁帶、磁頭想類比。一般它直觀看起來像是這個樣子:
表示當前狀態為q0,讀寫頭的字符為a時,狀態轉移的時候會把這個讀寫頭所指的字符改為b,然后讀寫頭先左移動一個單位,狀態由q0變成q1.
通常圖靈機以一個給定的初始狀態和帶上的信息開始,然后在狀態函數的指導下由一個狀態轉移到另外一個狀態。最后圖靈機將處于停機(halt state)狀態。當圖靈機到達一個狀態函數沒有定義的輸入時,圖靈機將會停止。另外,我們假定對于任意的狀態都沒有定義其轉移函數,圖靈機到達狀態的時候都會停機。
圖靈論題:
任何在算法上可計算的問題同樣可由圖靈機計算;
任何無法由圖靈機計算的問題都不可能找到解決的算法。
總結
- 上一篇: 松尾环 matlab,猝发式直扩信号
- 下一篇: App项目设计开发完整流程