- By
**beate** - Follow User

- 95 Views
- Uploaded on

Download Presentation
## PowerPoint Slideshow about 'Lecture 10' - beate

**An Image/Link below is provided (as is) to download presentation**

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

Lecture 10

- Universal Algorithms
- moving beyond one problem at a time
- operating system/general purpose computer

Observation

- So far, each program solves one specific problem
- Divisor
- Sorting
- Multiplication
- Language L

Universal Problem/Program

- Universal Problem (nonstandard term)
- Input
- Program P
- Input x to program P

- Task
- Compute P(x)

- Input
- Univeral Program
- Program which solves universal problem
- Universal Turing machine

- Program which solves universal problem

Example Input

int main(A[6]) { Input

int i,temp;

for (i=1;i<=3;i++) A[1] = 6

if (A[i] > A[i+3]) { A[2] =4

temp = A[i+3]; A[3] = 2

A[i+3] = A[i]; A[4] = 5

A[i] = temp; A[5] = 3

} A[6] = 1

for (i=1; i<=5; i++)

for (j=i+1;j<=6;j++)

if (A[j-1] > A[j]) {

temp = A[j];

A[j] = A[j-1];

A[j-1] = temp;

}

}

Questions

- Which of the following two people is most like a universal program?
- Brilliant, creative scientist
- Efficient, obedient soldier

- How does a universal program work?
- What is a universal program in real life?

Program P’s Memory

Program Counter

OrganizationUniversal Program’s Memory

Program P

int main(A[6]){

int i,temp;

for (i=1;i<=3;i++)

if (A[i] > A[i+3]) {

temp = A[i+3];

A[i+3] = A[i];

A[i] = temp;

}

for (i=1; i<=5; i++)

for (j=i+1;j<=6;j++)

if (A[j-1] > A[j]) {

temp = A[j];

A[j] = A[j-1];

A[j-1] = temp;

}

}

6

4

2

5

3

1

int A[6],i,temp;

Line 1

Description of Universal Program

- Basic Loop
- Find current line of program P
- Execute current line of program P
- Update program P’s memory

- Update program counter
- Return to Top of Loop

Past, Present, Future

- Turing came up with the concept of a universal program (Universal Turing machine) in the 1930’s
- This is well before the invention of the general purpose computer
- People were still thinking of computing devices as special-purpose devices (calculators, etc.)
- Turing helped move people beyond this narrow perspective

- Turing/Von Neumann perspective
- Computers are general purpose/universal algorithms
- Focused on computation
- Stand-alone

- Computers are general purpose/universal algorithms
- Today, we are moving beyond this view
- Computation, communication, cyberspace
- However, results in Turing perspective still relevant

Halting Problem Revisited

- Halting Problem is half-solvable
- Modified Universal Program (MUP) half-solves H
Run P on x

Output yes

- This step only executed if first step halts

- Modified Universal Program (MUP) half-solves H
- Behavior
- MUP halts and accepts all yes instances of H
- MUP loops on all no instances of H
- Stuck in “Run P on x” step

Debuggers

- How do debugger’s like gdb or ddd work?
- They basically operate like a universal program
- Key properties of debugger’s to aid in debugging
- Breakpoints
- Display memory commands

RE and REC

- We now have a problem that is half-solvable but not solvable
- What do we now know about the complement of the Halting Problem?
- It is not even half-solvable

- This proves RE is not closed under the set complement operation
- H is counterexample

Summary

- Universal Programs
- 1930’s, Turing
- Introduces general purpose computing concept
- Not a super intelligent program, merely a precise follower of instructions

- Halting Problem half-solvable but not solvable
- RE not closed under set complement

Download Presentation

Connecting to Server..