Computation. Binary Numbers Decimal numbers Binary numbers.

104
Computation

Transcript of Computation. Binary Numbers Decimal numbers Binary numbers.

Page 1: Computation. Binary Numbers  Decimal numbers Binary numbers.

Computation

Page 2: Computation. Binary Numbers  Decimal numbers Binary numbers.

Binary Numbers

http://faculty.mc3.edu/pvetere/Applets/APPLETS/NUMSYS/applet_frame.htm

• Decimal numbers

• Binary numbers

Page 3: Computation. Binary Numbers  Decimal numbers Binary numbers.

Text

Computers have revolutionized our world. They have changed the course of our daily lives, the way we do science, the way we entertain ourselves, the way that business is conducted, and the way we protect our security.

Page 4: Computation. Binary Numbers  Decimal numbers Binary numbers.

Text

Computers have revolutionized our world. They have changed the course of our daily lives, the way we do science, the way we entertain ourselves, the way that business is conducted, and the way we protect our security.

Les ordinateurs ont révolutionné notre monde. Ils ont changé le cours de notre vie quotidienne, notre façon de faire la science, la façon dont nous nous divertissons, la façon dont les affaires sont menées, et la façon dont nous protégeons notre sécurité.

Page 5: Computation. Binary Numbers  Decimal numbers Binary numbers.

Text

Computers have revolutionized our world. They have changed the course of our daily lives, the way we do science, the way we entertain ourselves, the way that business is conducted, and the way we protect our security.

計算機已經徹底改變我們的世界。當然,他們已經改變了我們的日常生活中,我們這樣做科研,我們自娛自樂的方式,經營的方式進行的方式,以及我們保護我們的安全。

Les ordinateurs ont révolutionné notre monde. Ils ont changé le cours de notre vie quotidienne, notre façon de faire la science, la façon dont nous nous divertissons, la façon dont les affaires sont menées, et la façon dont nous protégeons notre sécurité.

Page 6: Computation. Binary Numbers  Decimal numbers Binary numbers.

Representing Text

• Decide how many characters we need to represent.

• Determine the required number of bits.

• Ascii: 7 bits. Can encode 27 = 128 different symbols.

Page 7: Computation. Binary Numbers  Decimal numbers Binary numbers.

Ascii

http://www.krisl.net/cgi-bin/ascbin.pl

Page 8: Computation. Binary Numbers  Decimal numbers Binary numbers.

Representing Text

F o u r

01000110 01101111 01110101 01110010

Page 9: Computation. Binary Numbers  Decimal numbers Binary numbers.

Representing Text

T h e n u m b e r i s 1 7 .

54 68 65 20 6E 75 6D 62 65 72 20 69 73 20 31 37 2E

Page 10: Computation. Binary Numbers  Decimal numbers Binary numbers.

When We Need More Characters

简体字

What about things like:

Page 11: Computation. Binary Numbers  Decimal numbers Binary numbers.

When We Need More Characters

简体字

What about things like:

Answer: Unicode: 32 bits. Over 4 million characters.

http://www.unicode.org/charts/

A conversion applet:http://www.pinyin.info/tools/converter/chars2uninumbers.html

Page 12: Computation. Binary Numbers  Decimal numbers Binary numbers.

But What Do Symbols Look Like?

Computers have revolutionized our world.

Computers have revolutionized our world.

Computers have revolutionized our world.

Computers have revolutionized our world.

Computers have revolutionized our world.

Page 13: Computation. Binary Numbers  Decimal numbers Binary numbers.

The Basic Idea

results = google(text, query)

Page 14: Computation. Binary Numbers  Decimal numbers Binary numbers.

The Basic Idea

results = google(text, query)

if word_count(text) > 5000: return(“Done!!”)else:

return(“No sleep yet.”)

Page 15: Computation. Binary Numbers  Decimal numbers Binary numbers.

The Basic Idea

results = google(text, query)

if word_count(text) > 5000: return(“Done!!”)else:

return(“No sleep yet.”

display = render(text, font)

Page 16: Computation. Binary Numbers  Decimal numbers Binary numbers.

The Basic Idea

Computers have revolutionized our world.

Page 17: Computation. Binary Numbers  Decimal numbers Binary numbers.

Digital Images

Page 18: Computation. Binary Numbers  Decimal numbers Binary numbers.

Pixels

Page 19: Computation. Binary Numbers  Decimal numbers Binary numbers.

Pixels

Now we must turn this 2-dimensional bit matrix into a string of bits.

Page 20: Computation. Binary Numbers  Decimal numbers Binary numbers.

Pixels

0000110000 0001111000 0011111100 0111111110 0111111110 01111111100111001110 0111001110 0111001110 0111001110

Page 21: Computation. Binary Numbers  Decimal numbers Binary numbers.

Digital Images

Page 22: Computation. Binary Numbers  Decimal numbers Binary numbers.

Two Color Models

Page 23: Computation. Binary Numbers  Decimal numbers Binary numbers.

RGB

The red channel

Page 24: Computation. Binary Numbers  Decimal numbers Binary numbers.

RGB

The green channel

Page 25: Computation. Binary Numbers  Decimal numbers Binary numbers.

RGB

Red Green Blue

Page 26: Computation. Binary Numbers  Decimal numbers Binary numbers.

Experimenting with RGB

http://www.jgiesen.de/ColorTheory/RGBColorApplet/rgbcolorapplet.html

Page 27: Computation. Binary Numbers  Decimal numbers Binary numbers.

Representing Sounds

Page 28: Computation. Binary Numbers  Decimal numbers Binary numbers.

Digitizing Sound

Page 29: Computation. Binary Numbers  Decimal numbers Binary numbers.

Representing Programs

public static TreeMap<String, Integer> create() throws IOException public static TreeMap<String, Integer> create() throws IOException

{ Integer freq; String word; TreeMap<String, Integer> result = new TreeMap<String,

Integer>(); JFileChooser c = new JFileChooser(); int retval = c.showOpenDialog(null); if (retval == JFileChooser.APPROVE_OPTION)

{ Scanner s = new Scanner( c.getSelectedFile());while( s.hasNext() ){ word = s.next().toLowerCase(); freq = result.get(word); result.put(word, (freq == null ? 1 : freq + 1));}

} return result;}

}

Page 30: Computation. Binary Numbers  Decimal numbers Binary numbers.

Chess Boards

Forsythe-Edwards Notation

http://en.wikipedia.org/wiki/Forsyth-Edwards_Notation

rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1

Page 31: Computation. Binary Numbers  Decimal numbers Binary numbers.

Molecules

It’s just a string:

AUGACGGAGCUUCGGAGCUAG

Page 32: Computation. Binary Numbers  Decimal numbers Binary numbers.

The Roots of Modern Technology

1834 Charles Babbage’s Analytical Engine

Ada writes of the engine, “The Analytical Engine has no pretensions whatever to originate anything. It can do whatever we know how to order it to perform.”

The picture is of a model built in the late 1800s by Babbage’s son from Babbage’s drawings.

Page 33: Computation. Binary Numbers  Decimal numbers Binary numbers.

Using Logic

• TaiShanHasTail

• SmokyHasTail

• PuffyHasTail

• ChumpyHasTail

• SnowflakeHasTail

Page 34: Computation. Binary Numbers  Decimal numbers Binary numbers.

Using Logic

• Panda(TaiShan).

• Bear(Smoky).

x (Panda(x) Bear(x).

x (Bear(x) HasPart(x, Tail)).

x (Bear(x) Animal(x)).

x (Animal(x) Bear(x)).

x (Animal(x) y (Mother-of(y, x))).

x ((Animal(x) Dead(x)) Alive(x)).

Does TaiShan have a tail?

Page 35: Computation. Binary Numbers  Decimal numbers Binary numbers.

Search

http://www.javaonthebrain.com/java/puzz15/

Start state Goal state

Page 36: Computation. Binary Numbers  Decimal numbers Binary numbers.

What is a Heuristic?

Page 37: Computation. Binary Numbers  Decimal numbers Binary numbers.

What is a Heuristic?

The word heuristic comes from the Greek word (heuriskein), meaning “to discover”, which is also the origin of eureka, derived from Archimedes’ reputed exclamation, heurika (“I have found”), uttered when he had discovered that the volume of water displaced in the bath equals the volume of whatever (him) got put in the water. This could be used as a method for determining the purity of gold.

Page 38: Computation. Binary Numbers  Decimal numbers Binary numbers.

What is a Heuristic?

The word heuristic comes from the Greek word (heuriskein), meaning “to discover”, which is also the origin of eureka, derived from Archimedes’ reputed exclamation, heurika (“I have found”), uttered when he had discovered that the volume of water displaced in the bath equals the volume of whatever (him) got put in the water. This could be used as a method for determining the purity of gold.

A heuristic is a rule that helps us find something.

Page 39: Computation. Binary Numbers  Decimal numbers Binary numbers.

An Aside on Checking Facts on the Web

Who invented the 15-puzzle?

Sam Loyd did: (http://www.jimloy.com/puzz/15.htm )

Did he or didn’t he:

(http://www.archimedes-lab.org/game_slide15/slide15_puzzle.html )

No he didn’t: (http://www.cut-the-knot.org/pythagoras/fifteen.shtml )

Page 40: Computation. Binary Numbers  Decimal numbers Binary numbers.

Breadth-First Search

Is this a good idea?

Page 41: Computation. Binary Numbers  Decimal numbers Binary numbers.

Depth-First Search

Page 42: Computation. Binary Numbers  Decimal numbers Binary numbers.

More Interesting Problems

The 20 legal initial moves

Page 43: Computation. Binary Numbers  Decimal numbers Binary numbers.

Scalability

Solving hard problems requires search in a large space.

To play master-level chess requires searching about 8 ply deep. So about 358 or 21012 nodes must be examined.

Page 44: Computation. Binary Numbers  Decimal numbers Binary numbers.

Growth Rates of Functions

Page 45: Computation. Binary Numbers  Decimal numbers Binary numbers.

Scalability

To play one master-level game

21012 nodes

Seconds since Big Bang 3 1017

Number of sequential games since Big Bang

150,000

Page 46: Computation. Binary Numbers  Decimal numbers Binary numbers.

Yet This Exists

How?

Page 47: Computation. Binary Numbers  Decimal numbers Binary numbers.

A Heuristic Function for Chessc1 * material + c2 * mobility + c3 * king safety + c4 * center control + ...

Computing material:

Pawn     100    Knight    320    Bishop   325    Rook     500    Queen    975    King      32767

Page 48: Computation. Binary Numbers  Decimal numbers Binary numbers.

The Advent of the Computer

1945 ENIAC The first electronic digital computer

1948 Modified to be a stored program machine

Page 49: Computation. Binary Numbers  Decimal numbers Binary numbers.

1949 EDVAC

Possibly the first stored program computer

Page 50: Computation. Binary Numbers  Decimal numbers Binary numbers.

Moore’s Law

http://www.intel.com/technology/mooreslaw/

Page 51: Computation. Binary Numbers  Decimal numbers Binary numbers.

How It Has Happened

Page 52: Computation. Binary Numbers  Decimal numbers Binary numbers.

Can This Trend Continue?

http://www.nytimes.com/2010/08/31/science/31compute.html?_r=1

Page 53: Computation. Binary Numbers  Decimal numbers Binary numbers.

How Much Compute Power Might It Take?

http://www.frc.ri.cmu.edu/~hpm/book97/ch3/index.html

Page 54: Computation. Binary Numbers  Decimal numbers Binary numbers.

How Much Compute Power is There?

Hans Moravec: http://www.frc.ri.cmu.edu/~hpm/talks/revo.slides/power.aug.curve/power.aug.gif

Page 55: Computation. Binary Numbers  Decimal numbers Binary numbers.

How Much Compute Power Is There?

Page 56: Computation. Binary Numbers  Decimal numbers Binary numbers.

Kurweil’s Vision

http://www.pocket-lint.co.uk/news/news.phtml/12920/13944/Computers-match-humans-by-2030.phtml

Page 57: Computation. Binary Numbers  Decimal numbers Binary numbers.

Some Other People Agree

http://www.networkworld.com/news/2009/092109-intel-cto-interview.html

Page 58: Computation. Binary Numbers  Decimal numbers Binary numbers.

Countdown to Singularity

Page 59: Computation. Binary Numbers  Decimal numbers Binary numbers.

Law of Accelerating Returns

Page 60: Computation. Binary Numbers  Decimal numbers Binary numbers.

Limits to What We Can Compute

Are there fundamentally uncomputable things?

• Does God exist?

• What’s the best way to run a country?

• Does this puzzle have a solution?

Page 61: Computation. Binary Numbers  Decimal numbers Binary numbers.

What Can We Do?

1. Can we make all true statements theorems?

2. Can we decide whether a statement is a theorem?

Page 62: Computation. Binary Numbers  Decimal numbers Binary numbers.

The Halting Problem

Program, M

input string, w

Does M halt on w?Yes

No

Page 63: Computation. Binary Numbers  Decimal numbers Binary numbers.

A Simple Example

read nameif name = “Elaine” then print “You win!!” else print “You lose ”

Page 64: Computation. Binary Numbers  Decimal numbers Binary numbers.

Another Example

read numberset result to 1set counter to 2until counter > number do

set result to result * counteradd 1 to counter

print result

Page 65: Computation. Binary Numbers  Decimal numbers Binary numbers.

Programs Debug Programs

read numberset result to 1set counter to 2until counter > number do

set result to result * counteradd 1 to counter

print result

Given an arbitrary program, can it be guaranteed to halt?

Suppose number = 5:

result number counter 1 5 2 2 5 3 6 5 4 24 5 5120 5 6

Page 66: Computation. Binary Numbers  Decimal numbers Binary numbers.

Changing It a Bit

read numberset result to 1set counter to 2until counter > number do

set number to number * counteradd 1 to counter

print result

Given an arbitrary program, can it be guaranteed to halt?

Suppose number = 5:

result number counter 1 5 2 1 10 3 1 30 4 1 120 5 1 600 6

Page 67: Computation. Binary Numbers  Decimal numbers Binary numbers.

How About this One?

Does this program halt on all inputs?

times3(x: positive integer) = While x 1 do: If x is even then x = x/2. Else x = 3x + 1.

Let’s try it.

Page 68: Computation. Binary Numbers  Decimal numbers Binary numbers.

The Halting Problem Is Undecidable

Program, M

input string, w

Does M halt on w?Yes

No

Page 69: Computation. Binary Numbers  Decimal numbers Binary numbers.

Another Undecidable Problem

The Post Correspondence Problem

Page 70: Computation. Binary Numbers  Decimal numbers Binary numbers.

A PCP Instance With a Simple Solution

i X Y

1 b aab

2 abb b

3 aba a

4 baaa baba

Page 71: Computation. Binary Numbers  Decimal numbers Binary numbers.

A PCP Instance With a Simple Solution

i X Y

1 b aab

2 abb b

3 aba a

4 baaa baba

Solution: 3, 4, 1

Page 72: Computation. Binary Numbers  Decimal numbers Binary numbers.

Another PCP Instance

i X Y

1 11 011

2 01 0

3 001 110

Page 73: Computation. Binary Numbers  Decimal numbers Binary numbers.

Another PCP Instance

i X Y

1 11 011

2 01 0

3 001 110

Page 74: Computation. Binary Numbers  Decimal numbers Binary numbers.

The Post Correspondence Problem

List 1 List 2

1 ba bab

2 abb bb

3 bab abb

Page 75: Computation. Binary Numbers  Decimal numbers Binary numbers.

A PCP Instance With No Simple Solution

i X Y

1 1101 1

2 0110 11

3 1 110

Page 76: Computation. Binary Numbers  Decimal numbers Binary numbers.

A PCP Instance With No Simple Solution

i X Y

1 1101 1

2 0110 11

3 1 110

Shortest solution has length 252.

Page 77: Computation. Binary Numbers  Decimal numbers Binary numbers.

Can A Program Do This?

Can we write a program to answer the following question:

Given a PCP instance P, decide whether or not P has a solution. Return:

True if it does.

False if it does not.

Page 78: Computation. Binary Numbers  Decimal numbers Binary numbers.

What is a Program?

Page 79: Computation. Binary Numbers  Decimal numbers Binary numbers.

What is a Program?

A procedure that can be performed by a computer.

Page 80: Computation. Binary Numbers  Decimal numbers Binary numbers.

The Post Correspondence Problem

A program to solve this problem:

Until a solution or a dead end is found do:If dead end, halt and report no. 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, we’ll try:

1 2 3 4

1,1 1,2 1,3 1,4 1,5

2,1 ……

1,1,1 ….

Page 81: Computation. Binary Numbers  Decimal numbers Binary numbers.

Will This Work?

• If there is a solution:

• If there is no solution:

Page 82: Computation. Binary Numbers  Decimal numbers Binary numbers.

A Tiling Problem

Page 83: Computation. Binary Numbers  Decimal numbers Binary numbers.

A Tiling Problem

Page 84: Computation. Binary Numbers  Decimal numbers Binary numbers.

A Tiling Problem

Page 85: Computation. Binary Numbers  Decimal numbers Binary numbers.

A Tiling Problem

Page 86: Computation. Binary Numbers  Decimal numbers Binary numbers.

A Tiling Problem

Page 87: Computation. Binary Numbers  Decimal numbers Binary numbers.

A Tiling Problem

Page 88: Computation. Binary Numbers  Decimal numbers Binary numbers.

A Tiling Problem

Page 89: Computation. Binary Numbers  Decimal numbers Binary numbers.

A Tiling Problem

Page 90: Computation. Binary Numbers  Decimal numbers Binary numbers.

A Tiling Problem

Page 91: Computation. Binary Numbers  Decimal numbers Binary numbers.

A Tiling Problem

Page 92: Computation. Binary Numbers  Decimal numbers Binary numbers.

Try This One

Page 93: Computation. Binary Numbers  Decimal numbers Binary numbers.

Another Tiling Problem

Page 94: Computation. Binary Numbers  Decimal numbers Binary numbers.

Another Tiling Problem

Page 95: Computation. Binary Numbers  Decimal numbers Binary numbers.

Is the Tiling Problem Decidable?

Wang’s conjecture: If a given set of tiles can be used to tile anarbitrary surface, then it can always do so periodically. In otherwords, there must exist a finite area that can be tiled and thenrepeated infinitely often to cover any desired surface.

But Wang’s conjecture is false.

Page 96: Computation. Binary Numbers  Decimal numbers Binary numbers.

Important Issues

• The halting problem is undecidable.

• There’s no black box reasoning engine for standard logic.

• Would quantum computing change the picture?

• Does undecidability doom our attempt to make artificial copies of ourselves?

Page 97: Computation. Binary Numbers  Decimal numbers Binary numbers.

Is Decidability Enough?

Page 98: Computation. Binary Numbers  Decimal numbers Binary numbers.

The Traveling Salesman Problem

Given n cities and the distances between each pair ofthem, find the shortest tour that returns to its starting pointand visits each other city exactly once along the way.

15

20

25

89

23

40

10

4

73

28

Page 99: Computation. Binary Numbers  Decimal numbers Binary numbers.

The Traveling Salesman Problem

15

20

25

89

23

40

10

4

73

28

Given n cities:

Choose a first city nChoose a second n-1Choose a third n-2

… n!

Page 100: Computation. Binary Numbers  Decimal numbers Binary numbers.

The Traveling Salesman Problem

Can we do better than n!

● First city doesn’t matter. ● Order doesn’t matter.

So we get (n-1!)/2.

Page 101: Computation. Binary Numbers  Decimal numbers Binary numbers.

The Growth Rate of n!

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.61041

Page 102: Computation. Binary Numbers  Decimal numbers Binary numbers.

Growth Rates of Functions, Again

Page 103: Computation. Binary Numbers  Decimal numbers Binary numbers.

Putting it into Perspective

Speed of light 3108 m/sec

Width of a proton 10-15 m

At one operation in the time it takes light to cross a proton

31023 ops/sec

Since Big Bang 31017 sec

Ops since Big Bang 91040 ops 36! = 3.61041

Neurons in brain 1011

Parallel ops since Big Bang

91051 43! = 61052

Page 104: Computation. Binary Numbers  Decimal numbers Binary numbers.

Does Complexity Doom AI?