什麼是圖靈機(Turing Machine)? (轉)
From Wikipedia, the free encyclopedia.
| 12.234.196.121
|
Definition
A Turing machine consists of:
- A tape which is divided into cells, one next to the other. Each cell contains a symbol from some finite alphabet. The alphabet contains a special blank symbol (here written as '0') and one or more other symbols. The tape is assumed to be arbitrarily extendible to the left and to the right, i.e., the Turing machine is always supplied with as much tape as it needs for its computation. Cells that have not been written to before are assumed to be filled with the empty symbol.
- A head that can read and write symbols on the tape and move left and right.
- A state register that stores the state of the Turing machine. The number of different states is always finite and there is one special start state with which the state register is initialized.
- An action table that tells the machine what symbol to write, how to move the head ('L' for one step left, and 'R' for one step right) and what its new state will be, given the symbol it has just read on the tape and the state it is currently in. If there is no entry in the table for the current combination of symbol and state then the machine will halt.
Note that every part of the machine is finite, but it is the potentially unlimited amount of tape that gives it an unbounded amount of storage space.
Example:
The following Turing machine has an alphabet {'0', '1'}, with 0 being the blank symbol. It expects a series of 1's on the tape, with the head initially on the leftmost 1, and doubles the 1's with a 0 in between, i.e., "111" becomes "1110111". The set of states is {s1, s2, s3, s4, s5} and the start state is s1. The action table is as follows.
Old Read Wr. New Old Read Wr. New St. Sym. Sym. Mv. St. St. Sym. Sym. Mv. St. - - - - - - - - - - - - - - - - - - - - - - - - s1 1 -> 0 R s2 s4 1 -> 1 L s4 s2 1 -> 1 R s2 s4 0 -> 0 L s5 s2 0 -> 0 R s3 s5 1 -> 1 L s5 s3 0 -> 1 L s4 s5 0 -> 1 R s1 s3 1 -> 1 R s3
A computation of this Turing machine might for example be: (the position of the head is indicated by displaying the cell in bold face)
Step State Tape Step State Tape - - - - - - - - - - - - - - - - - 1 s1 11 9 s2 1001 2 s2 01 10 s3 1001 3 s2 010 11 s3 10010 4 s3 0100 12 s4 10011 5 s4 0101 13 s4 10011 6 s5 0101 14 s5 10011 7 s5 0101 15 s1 11011 8 s1 1101 -- halt --
The behavior of this machine can be described as a l: it starts out in s1, replaces the first 1 with a 0, then uses s2 to move to the right, skip over 1's and the first 0 encountered. S3 then skips over the next sequence of 1's (initially there are none) and replaces the first 0 it finds with a 1. S4 moves back to the left, skipping over 1's until it finds a 0 and switches to s5. s5 then moves to the left, skipping over 1's until it finds the 0 that was originally written by s1. It replaces that 0 with a 1, moves one position to the right and enters s1 again for another round of the loop. This continues until s1 finds a 0 (this is the 0 right in the middle between the two strings of 1's) at which time the machine halts.
The Universal Turing Machine
Every Turing machine computes a certain fixed over the strings over its alphabet. In that sense it behaves like a computer with a fixed program. However, as Alan Turing already described, we can encode the action table of every Turing machine in a string. Thus we might try to construct a Turing machine that expects on its tape a string describing an action table followed by a string describing the input tape, and then computes the tape that the encoded Turing machine would have computed. As Turing showed, such a Turing machine is indeed possible and since it is able to simulate any other Turing machine it is called a universal Turing machine.
With this encoding of action tables as strings, it becomes in principle possible for Turing machines to answer questions about the behavior of other Turing machines. Most of these questions however are undecidable, see for instance the , which was already shown to be undecidable in Turing's original paper, and .
A universal Turing machine can be fairly simple, using just a few states and a few symbols. For example, only 2 states are needed, since a 2×18 (meaning 2 states, 18 symbols) universal Turing machine is known. A complete list of the smallest known universal Turing machines is: 2×18, 3×10, 4×6, 5×5, 7×4, 10×3, 22×2. The oldest of these is the 4×6 designed by in 1967. It is given in this table, where each row is a state, each column is a symbol, and each box contains the symbol to write, the direction to move the head, and the new state.
A universal Turing machine is . It can calculate any recursive function, decide any recursive language, and accept any recursively enumerable language. According to the , the problems solvable by a universal Turing machine are exactly those problems solvable by an algorithm or an effective method of computation, for any reasonable definition of those terms.
A Physical Turing Machine
It is not difficult to simulate a Turing Machine on a modern computer (except for the limited memory of actually existing computers).
It is also possible to build a Turing Machine on a purely mechanical basis. The mathematician Karl Scherer has indeed built such a machine in 1986 using metal and plastic construction sets, and some wood. The 1.5 meter high machine uses the pulling of strings to read, move and write the data (which is represented using ball bearing balls).
The machine is now exhibited in the entrance of the Department of Computer Science of the University in Heidelberg, Germany.
References:
- Turing, A., On Computable Numbers, With an Application to the , Proceedings of the London Mathematical Soceity, Series 2, Volume 42, 1936; reprinted in M. David (ed.), The Undecidable, Hewlett, NY: Raven Press, 1965; ( href="">online version)
- Boolos, G. and Jeffrey, R., Computability and Logic, 2nd ed., Cambridge: Cambridge University Press, 1980.
- Minsky, M. L., Computation: Finite and Infinite Machines, Prentice Hall, Englewood Cliffs, NJ, 1967. (gives 7×4 universal Turing machine. The transition table is )
- Rogozhin, Yurii, "Small Universal Turing Machines", Theoretical Computer Science, 168:215-240, 1996. (gives 4×6 and 2×18 universal Turing machines).
- Rogozhin, Yurii, "", Romanian Journal Of Information Science and Technology, 1(3), 259-265, 1998. (gives 22×2 and surveys known results)
External References:
- Turing Machines created in the form of software 'games': ()()
">Upload files
ages">Most popular
+Reports">Bug reports
| | | | |
This page has been accessed 1826 times. Other namespaces :
Last edited: Saturday, June 22, 2002, 13:14
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-998314/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 帶你深入理解圖靈機--什麼是圖靈機、圖靈完備圖靈
- 【翻譯】What is State Machine Diagram(什麼是狀態機圖)?Mac
- 什麼是幽靈依賴
- 圖解:什麼是旋轉陣列(Rotate Array)?圖解陣列
- 什麼是方框圖?
- 什麼是Transform轉換ORM
- 潛意識是什麼----------------- 靈感 的源泉
- Mesos Marathon能做什麼?理念是什麼?(轉)
- 什麼是控制反轉(IOC)?什麼是依賴注入?依賴注入
- 什麼是雲主機,雲主機是什麼樣的?
- pdf是一種什麼格式?pdf怎麼轉換成jpg圖片?
- 什麼是資料轉換?
- 什麼是Python型別轉換?主要包含什麼?Python型別
- 面試官靈魂三問:什麼是SOA?什麼是微服務?SOA和微服務有什麼區別?面試微服務
- 幽默圖:什麼是Bug纏身?什麼是義大利麵條?什麼是大泥球?
- 交換機是什麼,它的工作原理是什麼
- 圖解:什麼是AVL樹?圖解
- 雲主機是什麼?可以做什麼?
- IDC是什麼,什麼又是IDC機房
- 什麼是主機安全?
- mac截圖快捷鍵是什麼怎麼設定 mac截圖快捷鍵是ctrl加什麼Mac
- 關於程式碼重構的靈魂三問:是什麼?為什麼?怎麼做?
- 圖解:什麼是多租戶?圖解
- Linux Watchdog 機制是什麼Linux
- 什麼是POS機跳碼
- AI數學基礎之:確定圖靈機和非確定圖靈機AI圖靈
- 前端轉銷售是什麼體驗?前端
- 轉發代理的工作原理是什麼?
- 運維堡壘機是什麼?有什麼作用?運維
- 什麼是電話機器人?有什麼用?機器人
- 《Machine Learning in Action》—— Taoye給你講講決策樹到底是支什麼“鬼”Mac
- FUNMVP:幾張圖看懂區塊鏈技術到底是什麼?(轉載)MVP區塊鏈
- gigabyte是什麼主機板 gigabyte主機板設定bios和cpu圖解iOS圖解
- BGP是什麼意思,一般的BGP機房是什麼意思
- 【計算理論】圖靈機 ( 多個帶子的圖靈機 | 計算能力對比 | 證明過程 | 一個帶子圖靈機 )圖靈
- 開源堡壘機是什麼?開源堡壘機的優缺點是什麼?
- 什麼是注意力機制?
- Java虛擬機器是什麼?Java虛擬機
- 什麼是虛擬主機流量