Title: The Power and the Limits of Computation
1The Power and the Limits of Computation
2The Earliest Digital Computers
1945 ENIAC
Stored 20 10-digit decimal numbers
3The IBM 7090
A dual 7090 system at NASA in about 1962. Could
store 32,768 36-bit words. Thats about .00015
gigabytes. Cost about 3,000,000. or
19,794,000 2005 dollars
4(No Transcript)
5The Earth Simulator
The Earth Simulator (ES) is a project of Japanese
agencies to develop a 40 TFLOPS system for
climate modeling. The ES site is a new location
in an industrial area of Yokohama, an hour drive
west of Tokyo. The facility became operational in
late 2001. Hardware The ES is based on 5,120
(640 8-way nodes) 500 MHz NEC CPUs 8 GFLOPS per
CPU (41 TFLOPS total) 2 GB (4 512 MB FPLRAM
modules) per CPU (10 TB total) shared memory
inside the node 640 640 crossbar switch
between the nodes 16 GB/s inter-node bandwidth
20 kVA power consumption per node
6The iPod Nano
2005 Can store 4 gigabytes (1000 songs). Cost
about 250.
7Compute Power Increases Over Time
From Hans Moravec, Robot Mere Machine to
Transcendent Mind 1998.
8Moores Law
9What Can We Do With All that Power?
Overheard in ACES last week Genomics has
turned biology into an information science.
Is there anything we cant do?
10The Traveling Salesman Problem
11Finding a Solution to the TSP
- Given n cities
- n choices for a starting point.
- n-1 for the next city
- n-2 for the next city
- For a total of n! paths to be considered.
12Finding a Solution to the TSP
- Given n cities
- n choices for a starting point.
- n-1 for the next city
- n-2 for the next city
- For a total of n! paths to be considered.
- We notice that it doesnt matter where we start
(since we need to make a loop). - And the cost is the same forward or backward. So
we can cut the number of paths down to - (n 1)!/2
13The Growth Rate of n!
n! n(n-1)(n-2)(1)
2 2 11 479001600
3 6 12 6227020800
4 24 13 87178291200
5 120 14 1307674368000
6 720 15 20922789888000
7 5040 16 355687428096000
8 40320 17 6402373705728000
9 362880 18 121645100408832000
10 3628800 19 2432902008176640000
11 39916800 36 3.6 ?1041
14Putting that Rate into Perspective
Speed of light 3 ?108 m/sec Width of a
proton 10-15 m If we perform one operation
in the time light crosses a proton, we
can perform 3 ? 1023 ops/sec Seconds since
the big bang 3 ? 1017 Operations since the big
bang 9 ? 1040 Compared to 36! 3.6 ?1041
15The Post Correspondence Problem
i X Y
1 b bbb
2 babbb ba
3 ba a
4 bbbaa babbb
16The Post Correspondence Problem
i X Y
1 b bbb
2 babbb ba
3 ba a
4 bbbaa babbb
2 X b a b b b Y b a
17The Post Correspondence Problem
i X Y
1 b bbb
2 babbb ba
3 ba a
4 bbbaa babbb
2 1 X b a b b b b Y b a b b b
18The Post Correspondence Problem
i X Y
1 b bbb
2 babbb ba
3 ba a
4 bbbaa babbb
2 1 1 X b a b b b b b Y b a b b b b
b b
19The Post Correspondence Problem
i X Y
1 b bbb
2 babbb ba
3 ba a
4 bbbaa babbb
2 1 1 3 X b a b b b b b b a Y b
a b b b b b b a
20The Post Correspondence Problem
i X Y
1 10 101
2 011 11
3 101 011
i X Y
1 1101 1
2 0110 11
3 1 110
21The Post Correspondence Problem
A program to solve this problem Until a
solution is found do Generate the next candidate
solution. Test it. If it is a solution, halt and
report yes. So, if there are say 4 rows in the
table, well try 1 2 3
4 1,1 1,2 1,3 1,4
1,5 2,1 1,1,1 .
22The Post Correspondence Problem
A program to solve this problem Until a
solution is found do Generate the next candidate
solution. Test it. If it is a solution, halt and
report yes. So, if there are say 4 rows in the
table, well try 1 2 3
4 1,1 1,2 1,3 1,4
1,5 2,1 1,1,1 . But what if
there is no solution?
23A Tiling Problem
24A Tiling Problem
25A Tiling Problem
26A Tiling Problem
27A Tiling Problem
28A Tiling Problem
29A Tiling Problem
30A Tiling Problem
31A Tiling Problem
32A Tiling Problem
33Programs Debug Programs
Given an arbitrary program, can it be guaranteed
to halt?
read n if 2int(n/2) n then print
even else print odd read n result
1 for i 2 to n do result result
i print result
34A Problem That Cannot be Solved in Any Amount of
Time
Given an arbitrary program, can it be guaranteed
to halt?
read n if 2int(n/2) n then print
even else print odd read n result
1 for i 2 to n do result result
i print result
result 1 i 2 2 i 3 6 i 4
24 i 5 120
35Other Kinds of Loops
result 0 count 0 until result gt 100 do
read n count count 1
result resultn print count
36Other Kinds of Loops
result 0 count 0 until result gt 100 do
read n count count 1
result resultn print count Suppose all
the inputs are positive integers.
37Other Kinds of Loops
result 0 count 0 until result gt 100 do
read n count count 1
result resultn print count Suppose some
of the integers are negative.
38The Halting Problem Is Not Solvable
- Suppose that the following program existed
- Halts(program, string) returns
- True if program halts on string
- False otherwise
39The Halting Problem is Not Solvable
- Consider the following program
- Trouble(string)
- If Halts(string, string) then loop forever
- else halt.
- Now we invoke Trouble(ltTroublegt).
- What should Halts(ltTroublegt, ltTroublegt) say? If
it - Returns True (Trouble will halt) Trouble
loops - Returns False (Trouble will not halt) Trouble
halts - So there is no answer that Halts can give that
does not lead to a contradiction.
40Other Unsolvable Problems
- PCP
- We can encode a ltprogramgt,ltinputgt pair as an
instance of PCP so that the PCP problem has a
solution iff ltprogramgt halts on ltinputgt. - So if PCP were solvable then Halting would be.
- But Halting isnt. So neither is PCP.
41Other Unsolvable Problems
- Tiling
- We can encode a ltprogramgt,ltinputgt pair as an
instance of a tiling problem so that there is an
infinite tiling iff ltprogramgt halts on ltinputgt. - 00010000111000000111110000000000000
00010000111010000111110000000000000 - 00010000111011000111110000000000000
-
- So if the tiling problem were solvable then
Halting would be. - But Halting isnt. So neither is the tiling
problem.