Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Lecture 12 Computations –Formal Definition –Important Terms Computational Models –Formal Definition –Sequential access memory (tape) –Graphical representation.

Similar presentations


Presentation on theme: "1 Lecture 12 Computations –Formal Definition –Important Terms Computational Models –Formal Definition –Sequential access memory (tape) –Graphical representation."— Presentation transcript:

1 1 Lecture 12 Computations –Formal Definition –Important Terms Computational Models –Formal Definition –Sequential access memory (tape) –Graphical representation

2 2 Computations and Configurations

3 3 Computations What is a computation? –Execution of a program P on an input x Is the computation just the output produced by running P on x? –No, we define a computation to be a trace of the entire execution

4 4 Exercise 1 int x,y,r; 2 cin >> x; 3 cin >> y; 4 r = x % y; 5 If r = 0 goto 10; 6 x = y; 7 y = r; 8 r = x % y; 9 goto 5; 10 return y; Execute the above program on input 657 282

5 5 Definitions Configuration –Intuitive Definition Given the original program and the current configuration of a computation, someone should be able to complete the computation –Contents of a configuration current instruction to be executed current value of all variables Computation –Complete sequence of configurations

6 6 Computation 1 1 int x,y,r; 2 cin >> x; 3 cin >> y; 4 r = x % y; 5 If r = 0 goto 10; 6 x = y; 7 y = r; 8 r = x % y; 9 goto 5; 10 return y; Input: 10 3 Line 1, x=?,y=?,r=? Line 2, x=?, y=?,r=? Line 3, x=10, y=?, r=? Line 4, x=10, y=3, r=? Line 5, x= 10, y=3, r=1 Line 6, x=10, y=3, r=1 Line 7, x=3, y=3, r=1 Line 8, x=3, y=1, r=1 Line 9, x=3, y=1, r=0 Line 5, x=3, y=1, r=0 Line 10, x=3, y=1, r=0 Output is 1

7 7 Computation 2 1 int x,y,r; 2 cin >> x; 3 cin >> y; 4 r = x % y; 5 If r = 0 goto 10; 6 x = y; 7 y = r; 8 r = x % y; 9 goto 5; 10 return y; Input: 53 10 Line 1, x=?,y=?,r=? Line 2, x=?, y=?,r=? Line 3, x=53, y=?, r=? Line 4, x=53, y=10, r=? Line 5, x= 53, y=10, r=3 Line 6, x=53, y=10, r=3 Line 7, x=10, y=10, r=3 Line 8, x=10, y=3, r=3 Line 9, x=10, y=3, r=1 Line 5, x=10, y=3, r=1...

8 8 Computations 1 and 2 Line 1, x=?,y=?,r=? Line 2, x=?, y=?,r=? Line 3, x=53, y=?, r=? Line 4, x=53, y=10, r=? Line 5, x= 53, y=10, r=3 Line 6, x=53, y=10, r=3 Line 7, x=10, y=10, r=3 Line 8, x=10, y=3, r=3 Line 9, x=10, y=3, r=1 Line 5, x=10, y=3, r=1... Line 1, x=?,y=?,r=? Line 2, x=?, y=?,r=? Line 3, x=10, y=?, r=? Line 4, x=10, y=3, r=? Line 5, x= 10, y=3, r=1 Line 6, x=10, y=3, r=1 Line 7, x=3, y=3, r=1 Line 8, x=3, y=1, r=1 Line 9, x=3, y=1, r=0 Line 5, x=3, y=1, r=0 Line 10, x=3, y=1, r=0 return 1

9 9 Observation 1 int x,y,r; 2 cin >> x; 3 cin >> y; 4 r = x % y; 5 If r = 0 goto 10; 6 x = y; 7 y = r; 8 r = x % y; 9 goto 5; 10 return y; Line 5, x= 10, y=3, r=1 –Enough information to complete the computation –What was the original input? Uncertain Both previous inputs, 10 3 as well as 53 10 eventually reached above configuration

10 10 New Computational Model

11 11 Computational Models So far, we have worked with C ++ as our computational model We now define some new computational models We first restrict the computational model to simplify their formalization –Note, these models will be just as powerful as C ++ We then restrict the power of the computational models in ways that limit their power

12 12 Language Recognition Problems We define our computational models with language recognition problems as our focus –Decision problems are general –Decision problems can be formulated as languages with language recognition problems

13 13 Components of Computational Models Memory Data Types Operations Graphical Representation Formal Definition

14 14 Memory Random Access Memory Model –We have been assuming a random access memory computational model for C ++ –Time to access next memory location is independent of previously accessed memory location Sequential Access Memory Model –Memory is stored on a tape broken up into cells –Tape head scans currently accessed cell

15 15 Illustration Tape Head Time to access a particular cell is dependent on current tape head location...

16 16 Data Types C ++ has many data types –integers –reals –characters –allows definition of new data types Our models –just characters –Alphabet will typically be just {a,b} or {0,1}

17 17 Illustration... a baabab Tape Head

18 18 Operations C ++ has a complex operation set –some operations change memory –other operations control flow of execution Our operation set –Memory operations read a character write a character tape head movement –simple control flow switch statements goto statements

19 19 Illustration... a baabab Tape Head 1 switch(current tape cell) { case a: write b; move tapehead left 1 cell; goto 7; case b: write a; move tapehead right 1 cell; goto 4; case EOF: return YES; } 2 switch(current tape cell) {...

20 20 Sample Program 1 switch(current tape cell) { case a: write a; move tapehead right 1 cell; goto 2; case b: write b; move tapehead right 1 cell; goto 2; case EOF: return YES; } 2 switch(current tape cell) { case a: write a; move tapehead right 1 cell; goto 1; case b: write b; move tapehead right 1 cell; goto 1; case EOF: return NO; } Claim –This computational model is as powerful as C ++ –Any language which can be decided by a C ++ program can be decided by one of these programs

21 21 Example 1 switch(current tape cell) { case a: write a; move tapehead right 1 cell; goto 2; case b: write b; move tapehead right 1 cell; goto 2; case EOF: return YES; } 2 switch(current tape cell) { case a: write a; move tapehead right 1 cell; goto 1; case b: write b; move tapehead right 1 cell; goto 1; case EOF: return NO; } Run this program on input aabbaa

22 22 Computation 1 switch(current tape cell) { case a: write a; move tapehead right 1 cell; goto 2; case b: write b; move tapehead right 1 cell; goto 2; case EOF: return YES; } 2 switch(current tape cell) { case a: write a; move tapehead right 1 cell; goto 1; case b: write b; move tapehead right 1 cell; goto 1; case EOF: return NO; } Input: aabbaa Line 1, tape=aabbaa$ Line 2, tape=aabbaa$ Line 1, tape=aabbaa$ Line 2, tape=aabbaa$ Line 1, tape=aabbaa$ Line 2, tape=aabbaa$ Line 1, tape=aabbaa$ Output yes –$ is EOF

23 23 Configurations What needs to be recorded? –Current instruction –Tape contents –Tape head location Line 1, tape=aabbaa$ Line 2, tape=aabbaa$ Line 1, tape=aabbaa$ Line 2, tape=aabbaa$ Line 1, tape=aabbaa$ Line 2, tape=aabbaa$ Line 1, tape=aabbaa$ Return yes –$ is EOF

24 24 Graphical Representation 1 switch(current tape cell) { case a: write a; move tapehead right 1 cell; goto 2; case b: write b; move tapehead right 1 cell; goto 2; case EOF: return YES; } 2 switch(current tape cell) { case a: write a; move tapehead right 1 cell; goto 1; case b: write b; move tapehead right 1 cell; goto 1; case EOF: return NO; } 1 2 a;a;R b;b;R a;a;R b;b;R Color coded. Still missing one thing.


Download ppt "1 Lecture 12 Computations –Formal Definition –Important Terms Computational Models –Formal Definition –Sequential access memory (tape) –Graphical representation."

Similar presentations


Ads by Google