12. Modeling Computation
12.1. Languages and Grammars
Phrase-Structure Grammars
Vocabulary(Alphabet) 는 Symbol의 Element의 Finite nomempty set이다.
위 Word(Sentence)는 의 Element로 구성된 Finite length의 String이다.
의 경우 Empty string이나 Null string은 Symbol이 포함되지 않은 String을 의미한다.
모든 Word의 Set을 로 표시하며 위 Language는 의 Subset이다.
대체 불가능한 Symbol을 Terminal, 그렇지 않은 Symbol을 Nonterminal이라고 하며 각각 으로 표현한다.
의 String에서 다른 String으로 교체할 수 있는 시점을 지정하는 규칙을 Grammar의 Production이라고 하며 Notation 으로 표시한다.
위 Notation은 가 으로 대체 가능하다는 것을 의미한다.
Start symbol은 로 표기한다.
Phrase-structure grammar 는 Vocabulary , 의 Subset (Terminal), 의 Start symbol , Production의 Finite set 로 구성되어 있다.
(은 Nonterminal symbol)이며 의모든 Production은 Left side에 최소한 하나의 Nonterminal을 포함하여야 한다.
Example
라고 할 때 이고 는 Start symbol, 일 때 는 Phrase-structure grammar의 예시이다.
가 Phrase-structure grammar라고 할 때 이고 이라고 할 때 가 의 Production일 경우 이 로부터 Directly derivable이라고 하며 으로 표현한다.
만약 이라면 이 으로 부터 Derivable라고 말한다().
로부터 을 얻기 위해 사용된 Step을 Derivation이라고 한다.
Example
앞 예시에서 String 는 Directly derivable from 이다.
왜냐하면 이기 때문이다.
는 로 부터 Derivable인데 그 이유는 이기 때문이다.
가 Phrase-structure grammar일 때 에 의해 생성된 Language는 로 표기하며 Starting state 로 부터 Derivable인 Terminal string들의 Set이다.
즉 이다.
Example
를 Vocabulary 의 Grammar라고 할 때 Grammar의 Language
- Solution
Start state 로부터 Production 를 사용하여 를 Derive할 수 있고 를 이용하여 를 로 Derive 가능하다.
즉 이다.
Example
Set 을 생성하는 Phrase-structure grammar
- Solution
두 개의 Production을 사용하여 0의 String 뒤에 같은 수의 1이 오는 모든 String을 생성할 수 있으며 이 때 Empty string도 포함된다.
String의 시작에 0, 끝에 1을 추가하여 점진적으로 길어지는 String을 만들고 두 번째 규칙은 가 임을 나타낸다.
즉 이며 는 Starting symbol, Production 는 가 된다.
Types of Phrase-Structure Grammars
Phrase-structure grammer는 허용되는 Production의 Type에 따라 분류할 수 있다.
- Type 0 grammer
Production 생성에 제한이 없다. - Type 1 grammer(Context-sensitive grammer)
Form의 일 때 는 Nonterminal symbol, 은 0개 이상의 Terminal 혹은 Nonterminal symbol이다.
라는 Production을 가질 수 있는데 이 때 는 다른 Production의 오른쪽에 나타날 수 없다. - Type 2 grammer(Context-free grammer)
이 Nonterminal symbol일 때 Form의 Production을 가질 수 있다. - Type 3 grammer(Regular grammer)
이고 인 경우 From의 Production을 가질 수 있다.
이 때 는 Nonterminal, 는 Terminal symbol이거나 혹은 일 경우에도 가능하다.
Contect-sensitive grammer로 생성된 Language를 Context-sensitive language, Context-free language grammer로 생성된 Language를 Context-free language, Regular grammer로 생성된 Language를 Regular라고 부를 수 있다.
From의 Production은 의 길이가 의 길이보다 작거나 같은 경우 Noncontracting(비축소적)이라고 한다.
모든 Type 1 grammer의 Production은 를 제외한다면 Noncontracting이다.
이는 Context-free language의 Derivation 과정에서 String의 길이가 Nondecreasing이라는 뜻이다.(를 제외하고)
즉, Context-sensitive grammer에 의해 생성된 Language에 Empty string이 포함되기 위해서 Production이 Grammer의 일부여야 한다.
Context-sensitive grammer로 정의되는 다른 방법은 모든 Production이 Noncontracting이거나 Monotonic(단조적)일 때이다.
Noncontracting grammer의 Class는 Context-sensitive grammer의 Class와 동일하지 않으나 이 두 Class는 밀접히 Related이며 Noncontracting grammer는 Empty string 를 포함하는 어떤 Language도 생성할 수 없다는 것을 제외하고 동일한 Language set을 정의한다는 것을 알 수 있다.
Example
의 Phrase-structure grammer를 찾고 어떤 Type의 Language인지 기입
- Solution
두 Grammer 를 이 Set에 생성하여 두 Grammer가 동일한 Language를 생성할 수 있음을 보여 Phrase-structre grammer를 찾는다.
Grammer 은 Alphabet Terminal Prouduction 가 Set을 생성한다.
첫 번째 Production을 번 사용할 경우 0이 개 String의 시작에 추가되고, 두 번째 Production을 번 사용할 경우 1이 개 String의 끝에 추가된다.
Grammer 는 Alphabet Terminal Production 이다.
과 로 역시 위 의 두 번째 Production과 동일하게 활용될 수 있다.
마지막으로 이 Language의 경우 Type 3 language, 즉 Regular language이다.
이유로 가 Regular grammer이고 그 로 생성되었기 때문이다.
요약하여 Table로 아래와 같이 나타낼 수 있다.
| Type | Restrictions on Productions w1 →w2 |
|---|---|
| 0 | No restrictions |
| 1 | (A\in N,l,r,w\in (N\cup T)^\ast \land w\not=\lambda) \to(w_1=lAr \land w_2=lwr); or w_1=S and w_2=\lambda as long as S is not on the right-hand side of another production |
| 2 | w_1=A, where A is nonterminal symbol |
| 3 | w_1=A \land (w_2=aB \lor w_2=a), where A\in N, B\in N, a\in T or w_1=S \land w_2=\lambda |
Derivation Trees
Context-free grammer로 생성된 Language의 Derivation은 Ordered rooted tree를 사용하여 표현할 수 있으며 이를 Derivation(Parse) tree라고 한다.
Root는 Start symbol 를, Tree의 Internal vertex들은 Derivation step에서 발생하는 Nonterminal symbol을 나타낸다.
Tree의 Leaf의 경우 Terminal symbol을 나타낸다.
만약 라는 Production이 Derivation step에서 발생할 경우 를 나타내는 Vertex들에는 라는 Symbol을 왼쪽에서 오른쪽 순서대로 나타내는 Children vertex들을 가진다.
Example
Hungry rabbit eats quickly에 대한 Derivation tree
- Solution\
Example
Word 가 Grammer 는 Starting symbol, Production 는 일 때 Word가 맞는 지 확인
- Solution
쉽게 풀기 위해 하위에서 상위로 Parsing 할 수 있는데 이를 Bottom-up parsing이라고 한다.
로 풀 수 있다.
정석으로 상위에서 하위로 Parsing하는 것은 Top-down parsing이라고 한다.
Backus-Naur Form
Type 2 grammer를 지정하는 Notation 중 Backus-Naur form(BNF)가 존재한다.
모든 Production을 나열하는 대신 왼 쪽에는 단일 Nonterminal symbol을 놓고 같은 Nonterminal symbol이 있는 모든 것을 하나의 Statement로 결합한다.
Production에서 대신에 를 사용한다.
모든 Nonterminal symbol을 로 묶어 Production의 오른쪽 부분을 같은 Statement에서 나열하고 를 사용하여 구분한다.
Example
Production 을 Backus-Naur form으로 표현
- Solution
ALGOL 60에서 Indentifier는 Alphanumeric character로 구성되며 반드시 Letter로 시작해야 한다.
이러한 Rule을 Backus-Naur form으로 아래와 같이 나타낼 수 있다.
12.2 Finite-State Machines with Output
이미 Output이 있는 Finite-state machine의 Formal definiton은 아래와 같다.
을 Finite-state machine이라고 할 때 Finite state set , finite input alphabet , finite output alphabet , transition function (각 State와 Input pair에 대한 새로운 State를 할당하는 Function), Output function (각 State와 Input pair에 대한 Output을 출력하는 Function), Initial state 로 구성된다.
이 Finite-state machine일 때 State table을 사용하여 Transitional function, Output function 의 모든 State와 Input pair에 대해 나타낼 수 있다.
Example
아래는 인 Finite-state machine에 대한 State table이다.
State table 대신 나타낼 수 있는 방법으로는 Finite-state machine의 State diagram이며 아래 그림과 같다.\
Input string은 Transition function에 의해 결정된 일련의 State를 통해 Starting state를 이동시킨다.
Input string을 왼쪽에서 오른쪽으로 Symbol 별로 읽을 때, 각 Input symbol은 Machine을 한 State에서 다른 State로 이동시킨다.
각 Transition이 Output을 생성하기에 Input string은 Output string도 생성한다.
Input string이 라고 할 때 이 Input을 읽는 과정에서 Machine은 State 에서 로 이동하며 가 되게 된다.
이 Transition의 순서는 Output string 를 생성하며 가 되게 된다.
즉 Function 의 정의를 Input string에 확장할 수 있으며 로 표현할 수 있다.
Example
Input string이 101011일 때 아래 그림에 의해 생성된 Finite-state machine의 Output string\
- Solution\
를 Finite-state machine이라고 하고 일 때 이 을 Recognize(Accepts)한다고 말할 수 있는 것은 Input string 가 에 속할 때, 를 Input으로 주었을 때 이 생성하는 마지막 Output bit가 이 되는 경우 뿐이다.
12.3. Finite-State Machines with No Output
Set of Strings
가 Vocabulary일 때 가 의 Subset이라고 가정할 때 (와 의 Concatenation)은 의 String 와 의 String 로 이루어진 모든 String 의 Set이다.
Example
일 때
- Solution
Example
일 때 ()
- Solution
이다.
반복하여
이 된다.
가 의 Subset일 때 의 Kleene closure는 로 표시하고 에서 임의의 개수의 String을 연결한 Set()이다.
Example
Set 일 때 각 Set의 Kleene closure
- Solution
의 Kleene closure는 String 0을 임의의 Finite 수 만큼 자신과 연결한 것이다.
즉 이다.
일 때의 가 된다.
이다.
Finite-state Automata
Output이 없는 Finite-state machine을 Finite-state automaton(복수: Automata)라고 하며 Output을 가지지 않으나 Final state set을 가진다.
Finite-state automaton 는 Finite state set , Finite input alphabet , Transition function (), Initial(Start) state , 의Final(Accepting) state의 Subset 를 가진다.
Finite-state automaton은 State table이나 State diagram으로 나타낼 수 있다.
Final state는 State diagram에서 이중 원을 사용하여 표시한다.
Example
Finite-state automaton 가 이며 가 아래의 표와 같을 때 State diagram\
- Solution\
Finite-state machine 의 Transition function 는 모든 State pair와 String에 대해 정의되도록 확장 가능하다.
즉, 는 로 확장 가능하다.
String 가 에 존재할 때 는 State 에서 시작하여 의 각 Symbol을 왼쪽에서 오른쪽으로 Input으로 사용하여 얻은 State이다.
이고 최종적으로 가 된다.
이 Extended transition function 를 결정론적 Finite-state machine 에 대해 Recursive하게 정의할 수 있다.
- 모든 State 에 대해
- 모든 에 대해
Structural induction과 이 Recursive Definition을 사용하여 Extended transition function의 Property를 증명할 수 있다.
Language Recognition by Finite-State Machines
String 가 Machine 에 의해 Reconized(Accepted)일 때 Initial state 에서 Final state 가 에 존재하는 State이다.
Machine 에 의해 Language recognized(Language accepted) 되는 것을 Notation 으로 표현하며 에 의해 Recognized인 모든 String의 Set이다.
두 Finite-state automaton이 Equivalent라고 할 때는 동일한 Language가 Reconize일 때를 의미한다.
Example
위 그림의 Automaton 의 Language recognized
- Solution
의 Final state는 뿐이다.
에서 로의 String은 0개 이상의연속된 1로 구성된 String이다.
즉, 이다.
의 Final state는 뿐이므로 에서 로의 String은 1, 01 뿐이다.
즉, 이다.
의 Final state는 이다.
에서 로의 String은 0개 이상의 연속된 0로 구성된 String, 에서 로의 String은 0개 이상의 0으로 구성된 String 뒤 10 이후임의의 String이 오는 것이다.
즉 이다.
Example
아래 특정 Finite-state automaton 구축
. 두 개의 0으로 시작하는 Bit string set
. 두 개의 연속된 0을 포함하는 Bit string set
. 두 개의 연속된 0을 포함하지 않는 Bit string set
. 두 개 이상의 연속된 0으로 끝나는 Bit string set
. 최소 두 개의 0을 포함하는 Bit string set
- Solution
의 경우 아래 그림과 같다.
두 개의 0으로 시작하지 않는 이상 Final state가 될 수 없게 Finite-state automaton을 구축한다.
의 경우 아래의 그림과 같다.
앞 전 두 개의 연속된 0이 나오지 않는 이상 Final state가 될 수 없게 Finite-state automaton을 구축한다.
의 경우 아래의 그림과 같다.
두 개의 연속된 0이 나오는 경우 Final state가 될 수 없게 Finite-state automaton을 구축한다.
의 경우 아래의 그림과 같다.
두 개 이상의 연속된 0이 나오지 않는 경우 Final state가 될 수 없게 Finite-state automaton을 구축한다.
의 경우 아래의 그림과 같다.
최소 두 개의 0을 포함하여야 Final state가 될 수 있게 Finite-state automaton을 구축한다.
Example
아래 두 Finite-state automaton이 Equivalent인 지 확인\
- Solution
String 가 에 의해 Recognized되기 위해 에서 로의 String이 되어야 한다.
에서 은 1만이 가 될 수 있다.
에서 는 1개 이상의 0과 마지막이 단일 1로 이루어진 String이 되어야 한다.
위 사항을 에 의해 Recognized되는 지 확인해보아야 한다.
String 가 에 의해 Recognized되기 위해 에서 으로의 String이 되어야하는데 0개 이상의 0과 단 하나의 1로 구성된 String이 가 될 수 있고, 위 조건과 동일하기에 두 Finite-state automaton은 Equivalent이다.
바로 위 예시처럼 Equivalent finite-state automaton들의(이 )에서 가능한 최소 State를 가진 Finite-state automaton으로 구성하는 Procedure를 Machine minimization이라고 한다.
Nondeterministic Finite-State Automata
앞전 다뤘던 Finite-state automaton들은 Deterministic이다.
각 State와 Input value pair에 대한 Transition function에 의해 결정되는 고유한 다음 State가 존재하였기 때문이다.
Nondeterministic finite-state automaton 는 State set , Input alphabet , Transition function (), Starting state , 의 Subset (Final state로 구성)으로 구성되어 있다.
Example
Nondeterministic finite-state automaton의 State table이 아래와 같을 때 State diagram(Final state: )\
- Solution\
Example
Nondeterministic finite-state automaon의 State diagram이 아래와 같을 때 State table와 Language recognized\
- Solution
위 Table은 해당하는 State table이다.
에서 로의 String 는 에서 으로, 즉 0개 이상의 0으로 이루어진 String이거나, 에서 로 즉 11(), 01()로 끝나는 String이다.
정리하여 이다.
Theorem
Language 이 Nondeterministic finite-state automaton 에 의해 Recognized일 때 은 Deterministic finite-state automaton 에 의해서도 Recognized이다.
Example
위 Nondeterministic finite-state automaton과 똑같은 Language를 Recognize하는 Deterministic finite-state
- Solution
위 Nondeterministic automaton과 동일한 Deterministic finite-state automaton이다.
이 Deterministic automaton의 State는 Nondeterministic automaton의 모든 State set의 Subset이다.
Input symbol에 대한 Subset의 다음 State는 이 Subset의 모든 Element의 Nondeterministic automaton의 다음 State를 포함하는 Subset이다.
은 0의 Input으로 로 Transition되기에 로, 또 가 1의 Input으로 , 가 1의 Input으로 로 가기에 는 로 이동하게 된다.
동일한 방법으로 는 0의 Input으로 으로 이동하고, 1의 Input으로 로 이동한다.
에서 0이나 1의 Input으로 으로 밖에 이동할 수 없기에 위와 같은 구조가 된다.
위 Deterministic finite-state automaton의 Initial state는 이며 Final state set은 를 포함한 모든 Set이 된다.
12.4. Language Recognition
Set 에 대한 Regular expression은 아래와 같이 Recursive하게 정의된다.
Symbol 는 Regular expression이다.(Empty set)
Symbol 는 Regular expression이다.(Empty string)
Symbol 는 일 때 Regular expression이다.
Symbol 는 가 Regular expression일 때 Regular expression이다.(= 의 Concatenation, = 의 Kleene closure)
Regular expression으로 표현하는 Set을 Regular set이라고 한다.
Example
Regular expression 의 Regular set의 String
- Solution
는 1 뒤에 0이 0개 이상 존재하는 String, 는 10이 0개 이상 존재하는 String, 은 0이나 01, 는 0으로 시작하는 모든 String, sms 0으로 끝나지 않는 String이다.
Kleene's Theorem
Theorem
Kleene's Theorem
모든 Regular set이 Finite-state automaton들에 의해 Recognized된다.
- Proof
Regular set은 Regular expression에 의해 정의되며, 이는 재귀적이다.
모든 Regular set이 Finite-state automaton에 의해 Recognize됨을 증명하기 위해 아래와 같은 작업을 수행할 수 있다.
1. 이 Finite-state automaton에 의해 Recognized
2. 가 Finite-state automaton에 의해 Recognized
3. 가 의 Symbol일 때 Finite-state automaton에 의해 Recognized
4. 가 모두 Recognized일 때 Finite-state automaton에 의해 Recognized
5. 가 모두 Recognized일 때 Finite-state automaton에 의해 Recognized
6. 가 가 Recognized일 때 Finite-state automaton에 의해 Recognized
는 Nondeterministic finite-state automaton에 의해 Recognized되므로 증명할 수 있다.
의 경우 Initial state 을 생성한 이후 Transition 시키지 않으며 증명 할 수 있다.
의 경우 Initial state 과 Final state 을 생성한 후 Input이 일 때 Transition시켜 증명할 수 있다.
의 경우 가 Recognized된다고 가정할 때 를 구성하여 의 String은 의 Initial state 에서 의 String인 로 Transition될 수 있어야하며 의 String은 Combined machine의 Final state로 Transition되어야 한다. 결과적으로 아래와 같이 생성하여 증명할 수 있다.
같은방식으로 를 구성하여 를 병렬로 연결하여 아래와 같이 생성하여 증명할 수 있다.
의 경우 를 구성하여 는 모든 를 포함하고, 는 모든 와 를 포함한다(가 Recognized이기에).
정리하여 그림으로 아래와 같이 생성하여 증명할 수 있다.\
Example
Nondeterministic finite-state automaton을 구성하여 Regular set 을 Recognize
- Solution
먼저 를 Recognize하는 Machine을 구축한다.
즉 로 나타낼 수 있다.
01에 대한 Machine은 를 로 나타내었기에 로 나타낼 수 있다.\
Regular Sets and Regular Grammers
Theorem
Regular set은 Regular grammer로 생성된 set만이 가능하다.
- Proof
가 Set 를 생성하는 Regular grammer일 때 가 Regular임을 보이기 위해 를 Recognize하는 Nondeterministic finite-state machine 를 구성한다.
State set 에는 의 Nonterminal symbol 마다 하나의 State 가 포함된다.
Start state 는 Start symbol 로부터 형성된 State이다.
의 Transition은 가 Production이라면 Input 에 대해 에서 로의 Transition이 포함되며, 가 Production이라면 Input 에 대해 에서 로의 Transition이 포함된다.
Final state set 가 포함되고 에서 가 Production인 경우 도 포함된다.
이 Recognize하는 Language가 Grammer 에 의해 생성되는 Language와 같다()
따라서 Regular grammer로 생성한 Set은 Regular set이다.
Regular set을 생성한 Grammer는 Regular grammer임을 보이기 위해 이 이 Set을 Recognize하는 Finite-state machine이며 의 Inital state 이 Transition의 다음 State가 아닌 경우를 가정하여 Grammer 는 의 Symbol set , Terminal symbol set , State set , 의 Production set 일 때 Start symbol 는 Start state 에서 형성한 Symbol이다.
의 Production set 는 의 Transition으로부터 형성된다.
State 가 Input 에 따라 State 로 이동한다면 Production 가 에 포함되며 는 State 로부터 형성된 Nonterminal symbol이다.
Production 는 오직 일 때만 에 포함된다.
의 Production이 의 Transition에 해당하고 Terminal로 이어지는 Production이 Final state로의 Transition에 해당하기에 이다.
Example
아래 그림의 Finite-state automaton이 Recognize하는 Regular set 생성\
- Solution
Grammer 는 이 Automaton이 Recognize하는 Set을 생성하며 , 는 , , 는 Start symbol, Production 는 이다.
A Set Not Reognized by a Finite-State Automaton
특정 Set이 Regular가 아님을 보여줄 수 있다.
Example
가 Regular가 아님을 증명
- Solution
위 Set을 Regular라고 가정하고 이를 Recognize하는 Nondeterministic finite-state automaton 가 존재하여야 한다.
이 Machine의 State 수를 이라고 하면() 은 0의 개수와 1의 개수가 같은 모든 String을 Recognized해야 하므로 은 을 Recognized한다.
State sequnce 은 에서 시작하여 을 Input으로 사용하여 얻어진다.
가 된다(이 Final state).
State가 개 뿐이므로 Pigeonhole principle에 따라 처음 개의 State 중 적어도 두 개는 동일해야 한다.
즉, 을 만족하는 가 일 때 가 만족한다는 의미이다.
Input 0을 번 사용하여 에서 로 돌아오는 Loop가 존재한다는 뜻이 된다.
Input string 은 성립할 수 없으므로 에 의해 Recognize될 수 없다.
위 Contradiction으로 는 Regular가 아님을 알 수 있다.\
More Powerful Types of Machines
Finite-state automaton은 Memory 제한으로 인해 많은 Computation을 수행할 수 없다.
Finite-state automaton의 한계때문에 더 편리한 Computation model을 사용하는데 그 중 하나는 Pushdown automaton이다.
Pushdown automaton은 모든 Finite-state automaton의 기능을 포함하고 무제한 Memory를 제공하는 Stack을 포함한다.
Stack의 Top에 Symbol을 놓거나 Symbol을 제거할 수 있다.
Pushdown automaton은 Input으로 사용될 때 Empty stack을 생성하는 모든 String으로 구성된 경우 Set을 Recognize하거나 Set이 Input으로 사용될 때 Final state로 이어지는 모든 String으로 구성된 경우 Set을 Recognized한다.
Pushdown automaton은 Context-free grammer에 의해 생성된 Language인 경우에만 Set을 Recognize한다는 것을 보여줄 수 있다.
Context-free grammer에 의해 생성된 Language로 표현할 수 없는 Set도 존재하는데 그 중 하나가 이다.
앞 Set은 Pushdown automaton에 의해 Recognized될 수 없는 이유로는 0의 수 만큼 1의 수를 일치하는 지 살릴 때 Stack이 비워지게 되어 2에 해당하는 개수를 살릴 수 없다.
Pushdown automaton보다 더 강력한 Linear bounded automaton이라는 Machine이 존재하는데 이는 앞 Set을 인식할 수 있다.
Linear bounded automaton은 Context-sensitive language를 Recognized할 수 있다.
하지만 Linear bounded automaton의 경우 Phrase-structure grammer에 의해 생성된 모든 Language를 Recognized할 수 없다.
특수 Type machine의 한계를 피하기 위해 Turing machine이라는 것이 존재한다.
Turing machine은 Finite-state machine의 모든 기능과 양쪽 방향으로 무한한 Tape를 포함하고 그 Tape를 읽고 쓸 수 있으며 Tape의 앞, 뒤로 이동 가능하다.
12.5. Turing Machines
Definition of Turing Machines
Turing machine 는 Finite-state set , Blank symbole 를 포함하는 Alphabet , 에서 의 Partial function , Starting state 로 구성된다.
Partial function은 Domain에 있는 Element에 대해서만 정의한다(일부 (state, symbol) pair에 대한 Partial function 가 정의되지 않을 수 있지만 정의된 Pari에 대해서는 고유한 (state, symbol, derection) 존재).
Turing machine 정의의 Partial function에 해당하는 five-tuples coressponding을 Transition rule이라고 한다.
위 그림은 Turing machine에 대해서 나타내고 있다.
Turing machine의 Tap는 주어진 순간에 Finite인 Nonblank symbol을 가지고 있다.
Turing machine의 각 Step에서의 동작은 현재 State와 Tape symbol에 대한 Partial function 의 Value에 따라 달라진다.
각 Step에서 현재 Tape symbol 를 읽고 만약 Control unit이 State 이고 Partial function 가 Pair에서 정의되어 있으며 인 경우 Control unit은 아래의 작업을 수행한다.
- State 로 들어간다.
- 현재 Cell에 Sumbol 를 쓰고 를 지운다.
- Direction 일 경우 오른쪽, 일 경우 왼쪽 Cell로 이동한다.
위 Step을 Form의 Five-tuple로 표기한다.
만약 Pari 에 대해 Partial function 가 정의되어 있지 않다면 Turing machine 는 중지한다.
Turing machine 작동 시작 시 Inital state 에 존재하며 Tape의 가장 왼쪽 비어있지 않은 Symbol 위에 위치한다.
만약 Tape가 모두 비어 있다면, Control head는 임의의 Cell에 위치할 수 있다.
Control head를 가장 왼쪽에 비어있지 않은 Tape symbol 위에 배치하는 것을 Machine의 Inital position이라고 한다.
Example
Turing machine 가 일곱 개의 Five-tuple로 정의될 때 이 Machine이 아래 그림에 나타난 Tape에서 실행될 때의 Final tape
- Solution
는 State 에서 시작하며 Tape의 가장 왼쪽 비어있지 않은 Symbol 위에 위치한다.
첫 Step에서 을 사용하여 가장 왼쪽 비어있지 않은 Cell에서 0을 읽고, State 를 유지하며 이 Cell에 0을 쓰고 Cell 오른쪽으로 이동한다.
위 행동을 반복하여 동작시킨 그림은 아래와 같다.
마지막 Step에서 State 으로 시작하는 Five tuple이 없기에 중지한다.
Using Turing Machines to Recognize Sets
Set 를 Alphabet 의 Subset이라고 할 때 Turing machine 는 String 가 에 속할 때 가 가 Tape에 쓰여진 Initial position에서 시작하여 Final state에서 멈출 때만 를 Recognize한다고 한다.
가 의 Subset 를 Recognize한다고 할 때 가 에 의해 Recognized되기에 가 에 속해야 한다.
Example
두 번째 Bit로 1을 가지는 Bit string set을 인식하는 Turing machine
- Solution
Regular set은 이다.
Turing machine이 왼쪽에서 가장 왼쪽의 비어 있지 않은 Tape cell에서 시작하여 오른쪽으로 이동하며 두 번째 Symbol이 1인 지 확인하는 것이기에 두 번째 Symbol이 1이면 Machine은 Final state로 이동해야 하며 그렇지 않다면 Machine은 중지하지 않거나 Nonfinal state에서 중지해야 한다.
Machine을 구성하기 위해 을 포함하여 첫 번째 Symbol을 읽고 Turing machine을 State 으로 이동하고 0이면 State , 1이면 State 로 이동하도록 을 포함한다.
두 번째 Bit가 0인 String은 Recognize하지 않기에 는 Nonfinal state, 는 Final state여야 한다.
을 포함하여야 한다.
Blank나 1 bit string을 Recognize 않기 위해 을 포함한다.
나열 된 일곱 개의 5-tuple로 구성된 Turing machine 는 Bit string이 두 개 이상의 Bit를 가지고 있고 Input string의 두 번째 Bit가 1일 때만 Final state 로 종료된다.
Bit string이 두 개 미만이거나 두 번째 Bit가 1이 아니면 Machine은 Non final state 에서 종료된다.
Example
Set을 Recognize하는 Turing machine
- Solution
Machine을 구축하기 위해 Marker로 사용할 Sub tape symbol 을 사용하여 로 두고 의 String의 Subset을 Recognize 할 것이다.
Turing machine은 가장 왼쪽에 있는 0을 으로 바꾸고 String의 가장 오른쪽에 있는 1을 으로 바꾸며 앞뒤로 이동하며, String이 0의 Block 뒤에 동일한 수의 1의 Block으로 구성되어 있을 때만 Final state 를 가지고 종료한다.
Marker 을 사용하여 이미 검사한 가장 왼쪽과 오른쪽 Symbol을 추적한다.
이다.
예시로 String 은 Machine이 작동하는 동안 순서로 변경된다.
Computing Functions with Turing Machines
Turing machine은 간단히 요약하여 Partial function의 값을 찾는 것이다.
Turing machine 가 Input으로 String 를 받았을 때 Tape에 String 를 남기고 정지한다고 할 때 로도 표현 가능하다.
의 Domain은 가 정지하는 String set이며 가 를 Input으로 받았을 때 정지하지 않을 경우 는 정의되지 않는다.
Non-negative integer의 -tuple에서 Non-negative integer set으로의 Function으로서 Turing machine을 고려하기 위해 Tape에 Integer의 -tuple을 표현할 방법으로 Unary representation을 사용한다.
Non-negative integer 은 개의 1로 이루어진 String으로 표현한다(0, 5 = 1, 111111).
-tuple()를 표현하기 위해 각 수+1에 해당하는 1과 구분자 로 나타낸다.
(4-tuple (2, 0, 1, 3) = )
Example
Non-negative integer를 더하는 Turing machine 구성
- Solution
Function 를 계산하는 Turing machine 를 만들기 위해 Pair 는 개의 1과 , 개의 1로 이루어진 String으로 표현된다.
Machine 는 Input으로 앞 String을 받아 개의 1로 이루어진 Tape를 출력한다.
Machine 는 Input string의 가장 왼쪽 1에서 시작하여 1을 지우는 Step을 수행하며 이 0일 경우 앞에 더 이상 1이 없으므로 정지하고, 를 가장 왼쪽에 남아있는 1로 교체한 후 정지한다.
즉
의 5-tuple 을 사용할 수 있다.
Different Types of Turing Machines
Turing machine의 Capability를 확장할 수 있다.
예시로 각 Step에서 Turing machine이 오른쪽이나 왼쪽으로 이동하거나 이동하지 않을 수 있도록 허용하거나 여러 Tape에서 작동하도록 허용하거나, 개의 Tape를 사용할 때 -tuple로 Turing machine을 설명할 수 있다.
Turing machine의 Tape를 2차원으로 허용할 수 있으며 이 경우 좌우뿐만 아니라 상하로도 이동할 수 있다.
여러 개의 Tape head가 서로 다른 Cell을 동시에 읽도록 허용할 수 있다.
Turing machine이 Nondeterministic을 허용하여 (State, Tape symbol) Pair가 Turing machine의 5-tuple 중 두개 이상의 첫 번째 Element로 나타날 수 있다.
Turing machine의 Capability를 제한할 수도 있다.
Tape가 한 차원에서만 무한하도록 제한하거나 Tape alphabet을 두 개의 Symbol로만 제한할 수도 있다.
Turing machine은 특정 Turing machine과 그 Input의 Incoding을 제공받았을 때 모든 Turing machine의 계산을 시뮬레이션할 수 있는 단일 Turing machine을 구성하는 것이 가능하며 이를 Universal turing machine이라고 한다.
The Church-Turing Thesis
어떤 문제에 대해 Turing machine이 해결할 수 있다는 것을 명시하는 것을 Church-turing thesis 라고 한다.
Theorem이 아닌 Thesis로 불리는 이유로는 유효한 Algorithm에 의한 해결 가능성 개념이 비공식적이고, 부정확한 반면, Turing machine에 의한 해결 가능성 개념은 공식적이고 정확하기 때문이다.
Computational Complexity, Computability, and Decidability
Turing machine을 사용하여 가장 쉽게 연구할 수 있는 문제는 "yes"나 "no"로 답할 수 있는 Decision problem이다.
Decision problem는 특정 Class의 Proposition이 True인 지 여부를 묻는 Problem이다.
앞에서 다뤘던 Halting problem은 주어진 Input string 에 대해 Turing machine 가 정지하는 지 묻는 Decision problem이다.
Theorem
Helting problem은 Unsolvable decision problem이다.
즉, Turing machine 와 Input string 의 Incoding이 주어졌을 때 가 가 Tape에 쓰여졌을 때 정지하는 지 판단할 수 있는 Turing machine은 존재하지 않는다.
Example of Unsolvable decision problems
- 두 개의 Context-free grammer가 동일한 String set을 생성하는 지 결정
- 주어진 Tile set이 겹치지 않게 반복 허용하여 전체 평면을 덮을 수 있는지 결정
- Hilbert's Tenth Problem
Integer coefficient를 가진 Polynomial equation에 대한 Integer solution이 존재하는 지 결정
Turing machine으로 계산할 수 있는 Function을 Computable function, 불가능한 Function을 Uncomputable function이라고 한다.
앞에서 다뤘던 P, NP라고 불리는 Problem class에 대해서도 Turing machine의 개념을 사용하여 정확히 정의할 수 있다.
Deterministic turing machine 에서 Transition rule은 에서 로의 Partial function 에 의해 정의된다.
Machine의 Transition rule은 5-tuple 형태로 표현되며(s, s': State, x, x': Tape symbol, d: Direction), 같은 Pair (s,x)로 시작하는 두 개의 Transition rule은 존재하지 않는다.
Nondeterministic turing machine은 Partial function이 아닌 5-tuple로 구성된 Relation을 사용하여 정의된다.
같은 Pair (s,x)로 시작하는 두 개의 Transition rule이 존재할 수 없는 제한이 사라진다.
즉, 각 (State, Tape symbol) Pair로 시작하는 Transition rule이 여러 개 존재할 수 있다.
따라서 Nondeterministic turing machine은 현재 State와 읽고 있는 Tape symbol의 일부 Pair에 대해 Transition choice가 존재한다.
Nondeterministic turing machine의 작동 각 Step에서 Machine은 현재 State와 Tape symbol Pair로 시작하는 Transition rule 중 하나를 선택한다.
선택할 때 마다 Step을 "Guess"하는 것으로 간주할 수 있다.
Deterministic turing machine과 마찬가지로, Nondeterministic turing machine은 현재 State와 Tape symbol로 시작하는 Transition rule이 정의되지 않았을 때 중지된다.
Nondeterministic turing machine 가 주어졌을 때, String 가 에 의해 인식된다고 말하는 것은 의 Transition sequence가 Final state로 끝나는 경우 Machine이 가 Tape에 적혀 있는 Inital position에서 시작할 때만 가능하다.
Nondeterministic turing machine 가 주어질 때 String 가 에 의해 Recognized된다고 말하는 것은 의 Transition sequence가 Final state로 끝나는 경우 Machine이 가 Tape에 적혀 있는 Initial position에서 시작할 때만 가능하다.
Nondeterministic turing machine 는 가 로 Recognized set 에 이다.
Decision problem은 Input의 크기에 따라 Polynomial time 안에 Deterministic turing machine에 의해 Solvable이라면 Class P이다.
즉, Decision problem은 특정한 Decision problem을 해결하는 Deterministic turing machine 와 모든 Integer 에 대해 가 길이의 String이 입력되었을 때 인 Polynomial이 존재한다면 P에 속한다.
Decision problem이 Class NP에 속하는 것은 Nondeterministic turing machine에 의해 Input 크기에 따라 Polynomial time 안에 해결할 수 있을 때이다.
즉, Decision problem은 문제를 해결하는 Nondeterministic problem 와 모든 Integer 에 대해 가 길이의 String이 입력되었을 때 Polynomial 가 존재한다면 NP에 속한다.
모든 Deterministic turing machine은 각 (State, Tape symbol) Pair가 Machine을 정의하는 단 하나의 Transition rule 내에서 발생하는 Nondeterministic turing machine으로 간주될 수 있으므로 이다.