MACHINE COMPUTING

Preview:

Citation preview

MACHINE COMPUTING

the limitations

human computing

• stealing brain cycles of the masses– word recognition: to digitize all printed writing– language education: to translate web content

• games with a purpose– labeling game: labeling images

• basing image search on image content

– word game: common-sense facts– locating objects in images:

• generating a large data base for computer vision algorithms• zooming in on labeled objects

in general, taking a seemingly “difficult” problem,solve it with by-products

of otherwise motivated (human) actions

but what is "difficult"?

what is difficult?

• depends on the intelligence (of humans)– human age and health– training (expertise)– motivation

• depends on the degree of smartness (of hardware)– speed of operation (time complexity)– size of background memory (space complexity)– resource support

• depends on viewpoint– any contribution counts (or only the total)– many solutions are ok (or just one)– acceptable answer (or the exact answer) is needed

what is difficult for a computer?

• most famous "undecidable" problem : the halting problem– given a piece of code and an input, does processing terminate

• chip library problem

while x is not 1 doif x is even do x:=x/2else do x:=3x+1

chip library problem

dna self-assembly problems

S

T

other undecidable problems• given two groups of indexed strings over the same alphabet

same cardinality, is there a sequence of indices,yielding the same string

• is a given first-order logic statement universally valid?– first order logic includes quantifiers

• equality of two real numbers given a formula on integers– formula may have arithmetic operations,

logarithms and exponential functions

• indefinite integration– does a given function have a anti-derivative?

• is a piece of software a virus?

what is a computer?

A pc state x y workspacecombinatorial

circuitM

output

suppose we have a problem of an instance x,some data y

and an algorithm A

this is astate

machine

state machine specification

arcs leaving a state must be:1) mutually exclusive: no more than one choice for each input2) collectively exhaustive: a transition for each output

inputscu

rrent

sta

tes

next

state

s

outp

uts

state tables

inputs inputs

curr

ent

sta

tes

next

state

s

outp

uts

mealy state tables

stateoutp

stateoutp

"inp"c n

state transition diagrams

"inp"

"outp"

currstate

nextstate

mealy state transition diagrams

concept of the state machine

example: odd parity checker

assert output whenever input bit stream has odd # of 1's

even[0]

odd[1]

reset

0

0

1 1

statetransitiondiagram

present state even even odd odd

input 0 1 0 1

next state even odd odd even

output 0 0 1 1

symbolic state transition table

output 0 0 1 1

next state 0 1 1 0

input 0 1 0 1

present state 0 0 1 1

encoded state transition table

rese

t

finite state machines

a finite state machine has

• k states (one is the initial state)• m inputs• n outputs• transition rules for each state and input• output rules for each state

can fsm's solve all “common” problems?NO, there exist common problems that cannot be "effectively computed" by finite state machines ! ! !

checking for balanced parenthesis

for example: multiplying two arbitrary binary numbersdoubling a sequence of "1"schecking for palindromes

(()(()())) - okay(()())) - no good!)(()((())) - no good!

problem:for arbitrarily long paren sequences,arbitrarily many states are required

a finite state machine can only keep track of a finite number of objects.

)

( (q10)

(q01 )

( q30

q20

)

q*0

),(

unbounded-space computation

during 1920s and 30s, much of the "science" part of computer science was being developed (long before actual electronic computers existed).

many different "models of computation"were proposed, and the classes of "functions" which could be computed by each were analyzed.

one of these models was the turing machine named afterAlan Turing

a "turing machine" is just a finite state machine which receives its inputs from and writes outputs onto a tape with unlimited extendability .....

solving "finiteness" problem of finite state machines.

turing machine specification

• a tape

•discrete symbol positions

•that can be extended at both sides (without bound)

• finite alphabet – say {0, 1}

• finite state machine controlinputs:

symbol under the reading headoutputs:

write 0/1move left/right

• initial starting state {SO}

• halt state {Halt}

a turing parity counter

0 0 1 1 0 1 1 0 0 1 E 0 0 0 0

evenodd

00

even

00

even

00

odd

00

eveneveneven

00

odd

1

halt

any turing machine can be specified by a table of "quintuples"

the transition diagram

oddR

0

001

1

1 H

E

H

E10

evenR

even right0odd right0

halthalt

stopstop

01

even 0even 1oddodd

oddeven

rightright

00

01

evenodd

EE

currentstate

currentstate

nextstate write directionread

find the parity of the symbolsbetween the head

and the symbol "E", andreplace that symbol by the parity

a turing parenthesis checker0 E ( ( ) ) ( ) ( ( ) ) ) ( ( ) E 0 0

q0R

0 E ( ( ) ) ( ) ( ( ) ) ) ( ( ) E 0 0

q0R

0 E ( ( ) ) ( ) ( ( ) ) ) ( ( ) E 0 0

q0R

0 E ( ( X ) ( ) ( ( ) ) ) ( ( ) E 0 0

q1L

0 E ( X X ) ( ) ( ( ) ) ) ( ( ) E 0 0

q0R next sheet

a turing parenthesis checker0 E ( X X ) ( ) ( ( ) ) ) ( ( ) E 0 0

q0R

0 E ( X X X ( ) ( ( ) ) ) ( ( ) E 0 0

q1L

0 E ( X X X ( ) ( ( ) ) ) ( ( ) E 0 0

q1L

0 E ( X X X ( ) ( ( ) ) ) ( ( ) E 0 0

q1L

0 E X X X X ( ) ( ( ) ) ) ( ( ) E 0 0

q0R etc., etc.

not exactly a moore machine,

but almost ....

a turing parenthesis checker

q1 leftXq0 right(q2 leftE

)(EX

q0q0q0q0

currentstate

nextstate write directionread

q1q1

q1q0

leftright

q0 rightX)X

)(

q1q1q2q2q2q2

haltq1dchalthaltq2

stopleftdc

stopstopleft

0Xdc01X

EX)(EX

Eq0R

q2L E

(q1L

H

1H

0

(,X),X X

H0

X

X

)

(

E

E

remarks:the next state and directionare 1-1in "q2" the situation with ")"will never occur

this shows the superiorityof turing machines overfinite state machines

general purpose processors

programmable finite state machines:datapath withdata-dependent control

universal turing machines:can emulate

any turing machine

unlimited tape extendabilitydifficult to realize

solid engineeringavailable for synthesis

the state of affairsfinite state machines:limitations because ofrecurrent states

turing machines:can compute

any computable function

pragmatic compromise:finite state machine with very many states

what is difficult for a computer?

• not computable (undecidable)• if computable, what does it take?

– how much time?– how much memory space?– how many processors?

time complexity

space complexity

computer science answer: complexity classes

class structures

LogTime

LogSpace

P

co-NP

Pspace

ExpTime

ExpSpace

searching

sortinglinear programming

shortest paths

a decision problem is decidableif there exists a single algorithm that always leads to a correct yes-or-no answer.

decidable

Recommended