-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathU1L2a.txt
229 lines (217 loc) · 8.67 KB
/
U1L2a.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
#
# File: content-mit-8370x-subtitles/U1L2a.txt
#
# Captions for course module
#
# This file has 220 caption lines.
#
# Do not add or delete any lines. If there is text missing at the end, please add it to the last line.
#
#----------------------------------------
There are many models of classical computation.
Last time we discussed a few of them,
and you shouted out a few of these models.
And what I'd like to do is to illustrate
a wide variety of models, some of which
you might find unexpected.
So for example, one model of mechanism
by which you can build computers is actually mechanical.
Can anybody tell me of a mechanical computer you've met
recently or know of in history?
Yes, please.
Abacus.
Abacus.
Beautiful.
I think there's one that's got a-- like a little--
Yes, there is.
There's a differential analyzer that uses--
it's not the differential analyzer,
but it's a machine that does some kind of addition
by having a ball rolling down.
Beautiful.
Yes, please.
The old Curta calculators.
The old?
The rotary Curta-type calculators.
Yes, the old rotary Curta-type calculators.
But there's more than that.
The thermostats on the walls, at least at MIT,
are driven by pneumatic pressure,
and they actually little switch.
So they're a little kind of computer
that controls temperature, but it's an analog computer.
So mechanical computers do not need to be digital,
like the one in Stata.
They do not have to be abacuses that do integer arithmetic.
They can come in all kinds of shapes and forms.
And the one that's perhaps the most famous in history
is Babbage's difference engine.
And it had this feature that if he had been able to finish it,
it would have become or could have
become a universal computer in the sense of universality
as I hope you'll see.
So here's another one.
We saw this one last time.
We can have electrical circuits, which
are ways of building a universal classical computer.
We can also have optical, computers
that are made out of information carriers that
are photons and not electrons.
Here's another one.
Biological.
So in many ways, you and I are walking, talking computers
in some kind of sense.
And this idea of biology and biological systems as computers
is currently going through a Renaissance because
of the notions of neural networks and deep learning
and these kinds of networks of neurons
that act as computation.
I also want to make a distinction
between these models and some conceptual models.
These are models by which you might realize computation,
and these are the conceptual models which
you might want to realize.
One of them was described last time
in some general notions, which is the Turing machine.
And for those of you who don't know what
a Turing machine, since that wasn't described explicitly
last time, it is a machine that has a head and a tape.
And the tape has slots on it, which may have ones and zeros.
And it is something which has an extent to left and right,
which goes off, in principle, to infinity,
and the tape is a kind of memory.
And the thing which is ostensibly
doing the computation is a head that can read and write
to this tape, but the only thing inside this head
is a finite state machine.
So there are different states and there
are transitions between the states, which happen
depending on what is read at what
time and the previous state that it used to exist in.
And Turing machines like this come in many different flavors.
So for example, there are probabilistic Turing machines,
and there are universal Turing machines.
So given a certain kind of structure of a finite state
machine here, you find that this Turing machine then
is capable of simulating any other Turing machine.
And then one of my favorites that's not widely known
about today is called Minsky machines.
Marvin Minsky, a professor who pioneered
much of this area, passed away recently,
asked this beautiful question about the minimum size
of the head that you need to build a Turing
machine to accomplish different tasks, for example, being
a universal Turing machine.
And so that's the topic of Minsky machines
which we won't have time to go into here.
Here's another model, cellular automata.
Today's buzz word is neural networks.
Maybe 30 years ago, one of the buzzwords
was cellular automata.
And here the model of computation
is a world which is a grid in two dimensions and n
dimensions where the point is that you have
some kind of state in a local cell of this grid,
and it undergoes transitions based
on the state of its neighbors.
And you may have a local Cartesian neighborhood.
You may have super Cartesian, but depending
on what you're surrounded by, you change your state.
You change yourself to becoming empty or filled
or a different color and so forth.
And these rules of patterns and pattern changes
can give rise to computation and how
we can understand, for example, Conway's game, which gives rise
to something which people will interpret as life.
There's the von Neumann architecture.
I call it an architecture.
It is, again, a conceptual model of computation,
and here the idea is to split memory from something
which does arithmetic.
So we have an arithmetic logic unit,
for example, maybe some registers.
Memory reads out data and feeds it into this ALU.
And then the ALU feeds data back into the memory.
And this is, by and large, the model that's
used by all processors today, including
the ones on all of your phones.
So here's another model of computation.
How many folks have ever encountered
DNA-based computation?
It's a rather wild concept.
A few of you have.
So this the idea that maybe you have strands of bases AGCT.
And then A and T, adenosine and T,
which I can't remember right now,
associate each other and this is called ligation.
And then G and C also ligate, and therefore,
when you have two different strands of DNA,
they will pattern match other strands
in the right locations which matched the sequence of bases
to produce base-pair ligations.
And this has been shown to allow a kind of computation
christened as DNA computation.
And so these biological operations
include primitives very different from the kind
of gates that we might think of for electrical and optical,
such as melting.
So this is melting of strands separating them
into different parts.
Appending, adding two strands and connecting them together
at the ends.
Cutting, and doing things like restriction flip enzyme rip
flips, which are used to insert pieces
of a genome in different places, and then
amplifying for a measurement using polymerase chain reaction
tools.
So that if you have a beaker, for example, with just one
DNA strand, with PCR, you can amplify
the number of DNA strands there so
you can detect the existence of a certain sequence of DNA.
High school students are now doing this with little kits.
And you can even use a swab to pull DNA out of your mouth.
And so it's really neat that you can
think of using such tools to do computation.
And I want you to be open to such kinds of models
of computation, especially today.
Because it is in your generation that we are now
starting to reconsider what it means to do computation.
In many ways, we are at the end of the road of silicon today.
We cannot rely on Moore's Law much longer to provide
an increasing scaling that's exponential of capability
and size and power and weight to build our computers.
We need to look at different physical mechanisms
to build computation.
And that's why all of these different approaches where
you represent information in different ways
is so appealing to think about because maybe the next thing
beyond silicon could be something different, very
different that utilizes these ideas.
And maybe what we might discover is
that it's already happening all around us or within us,
if we only know how to think about it in the right way.
So although this class is about quantum computation ostensibly,
what I want you to also think about
as we go through this journey of quantum computation is how
we're also thinking about a broader question of what
is the physics of computation, how
do you think of physical mechanisms
as doing computation, and how do you
think you might be able to exploit
physical mechanisms and biological mechanisms that
exist to realize the computations that you
want to achieve.
So let's keep on going through this journey,
and I hope you'll find some things that
are unexpected and exciting.
There are lots of interesting opportunities that arise.
Today, we have the excitement of CRISPR/Cas9,
which changes the opportunities of what's
available for DNA computing.
Because it allows you to snip out very specific locations
and patterns of DNA.
Does this change the complexity of what you
can achieve with DNA computing?
I don't know, but lots of things are changing in this avenue.
And people don't normally think about it
with their glasses of computation on,