Download presentation
Presentation is loading. Please wait.
Published byJames Anthony Modified over 9 years ago
1
::ICS 804:: Theory of Computation - Ibrahim Otieno - iotieno@uonbi.ac.ke +254-0722-429297 SCI/ICT Building Rm. G15
2
Course Outline Mathematical Preliminaries Turing Machines Recursion Theory Markov Algorithms Register Machines Regular Languages and finite-state automata Aspects of Computability
3
Last Week: Markov Algorithms Sequential computation and Markov Algorithms Language Acceptors/Recognizers Number-theoretic functions Labeled Markov algorithms Markov-Computable functions and partial recursive functions Efficiency
4
Course Outline Mathematical Preliminaries Turing Machines ◦ Additional Varieties of Turing Machines Recursion Theory Markov Algorithms Register Machines Regular Languages and finite-state automata Aspects of Computability
5
Register Machines Register machines Register machines and formal languages Model-independent characterization of computational feasibility
6
Register Machines
7
More up-to-date way of thinking about computation A register machine (RM) consists of a finite number of registers, instruction set and a CU. We write R 0, R 1,... for the registers. Each register contains a natural number: [R i ] denotes the content of the i th register. Note: there is no bound on the size of numbers stored in our registers The CU capable of executing certain instructions that manipulate register contents.
8
Example Register machine M with two registers: R1 and R2 Register: variable storage Initial: R1 contains natural number n
9
Example R2 initializes to 0
10
Example M checks whether R1=R2 If yes, then M halts. If no, R2’s value is incremented
11
Some Pseudocode Input R1 = n OutputR2 = n Algorithm Start; R2:=0; Loop:R1=R2? goto end; R2++; goto loop; End: Halt
12
Example
13
Exercise What does this register machine compute? Try starting with R1 and R2 both containing 10
14
Exercise What does this register machine compute? successor function
15
Example 5.1.3 (Binary Addition Function)
16
Additional Instructions *Ri++: increments register Rj where j is the natural number currently stored in register Ri Ri = *Rj? goto L: branch to instruction labeled L if the value in Ri is the same as the value in Rk, where k is the value currently stored in register Rj Also: *Ri =Rj?goto L *Ri = *Rj?goto L *Ri := 0 This is called indirect addressing (cf. Assembler)
17
Formal Definition A register machine M is any pair ◦ = {R 1, R 2, …, R m } with m 1 is a possibly infinite set of registers ◦ = with t 2 is a finite, nonempty sequence of instructions such that: Instruction t 1 is the start instruction Each of t 2,…,t t is either the halt instruction or an instruction of the form: (a) R i :=0 or *R i :=0 (b) R i ++or *R i ++ (c) R i =R j ? goto L or *R i =R j ? goto L or R i =*R j ? goto L or *R i =*R j ? goto L where R i and R j are members of while L is an identifier with exactly one of instructions t 1,t 2,…,t t t t is the Halt instruction
18
M computes k-ary f M’s registers R 1,R 2,…,R k contain arguments of f Ultimately, register R k+1 contains f(n 1,n 2,…,n k ) If f(n 1,n 2,…,n k ) is undefined, then M’s computation never terminates
19
Register-Machine-Computability f is said to be register-machine-computable if there exists a register machine that computes f
20
An Equivalence Result Let h be Turing-computable number-theoretic function. Then h is register-machine-computable. Then h is a partial recursive function as well. If f is register-machine-computable, then f is Turing-computable.
21
Register machines and formal languages
22
Language Acceptance/recognition Adds ◦ Input tape and output tape ◦ read(R i ) and write(R i ) instructions Initially, “input word” w on tape followed by terminating 0 (sentinel) If w L, then 1 written to output tape If w L, then 0 written to output tape (recogn)
23
Example L = {w *|n a (w) = n b (w)} 1s represent as and 2s represent bs Register-machine-acceptable language also: palindromes
24
Example R1 – Input R2 – No of a’s R3 – No of b’s R4 = 0 R5 = 1 – rep a
25
Model-independent characterization of computational feasibility
26
Time Analysis Time analysis of register-machine M: count each primitive operation Uniform Cost Assumption: size of register contents make no difference M in previous example carries out 4 steps for each symbol in word w Before loop, there are 2 steps, after end-of-input sentinel 0 is encountered, five steps are executed With |w| = n, then there are 4n+5 execution steps M computes in linear time
27
Feasibility (recap) Cobham–Edmonds thesis regarding computational feasibility: the problem of determining whether a given string is a member of a given language L is feasible if and only if L is in P Complexity class P: class of all languages accepted in polynomial time by some (single-tape) Turing Machine
28
Problems with the Thesis Computable by what? Focus on single-tape Turing machine Which model of computation is the favored one? Does it make a difference?
29
Problems with the Thesis e.g. L = {w *|n a (w) = n b (w)} ◦ Register machine: O(n) steps ◦ Single Tape Turing Machine: O(n 2 ) steps ◦ Multi-Tape Turing Machine: O(n) steps ◦ Markov Machine: O(n 2 ) steps
30
Polynomial Relatedness Suppose that multitape M TM accepts language L in O(n) steps. Then there exists M RM that accepts L in time O([time TM (n)] 2 ) under the uniform cost assumption. Suppose that M RM accepts language L in O(n) steps under the assumption of uniform cost. Then there exists multitape M TM that accepts L in time O([time TM (n)] 3 ).
31
Complexity (recap: MA) Given Turing machine M accepting L, there exists a Markov algorithm A S that accepts L in O(time M (n)) steps Given Markov algorithm A S accepting L, there exists a Turing machine M that accepts L in O([time A S (n)] 4 ) steps
32
Time and Space (recap: TM) Corollary Suppose that language L is accepted by k-tape Turing machine M. Then L is accepted by a single-tape Turing machine M 1 such that time M 1 (n) is O([time M (n)] 2 ) Corollary Suppose that language L is accepted by k-tape Turing machine M. Then L is accepted by a single-tape Turing machine M´ such that space M´ (n) is O(space M (n)).
33
Results Regarding Polynomial Relatedness of Models Markov Algorithm Model Multitape Turing Machine model Register Machine Model Single-tape Turing Machine model Theorem 4.3 Corollary 2.1 Theorem 5.3
34
Reformulation In invoking the Cobham-Edmonds thesis, it seems to make no difference which model we take Reformulation: A language-acceptance problem is feasible provided that the language in question is accepted in polynomially bounded time
35
More generally Invariance principle for models of sequential Computation Let Model be some machine model of sequential computation. Then Model will be said to be a reasonable model of sequential computation if it is polynomially related to the multitape Turing machine model
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.