1
00:00:00,390 --> 00:00:02,060
PROFESSOR: So OK, what
did we do last time?
2
00:00:02,060 --> 00:00:05,334
Thanks for coming
back by the way.
3
00:00:05,334 --> 00:00:08,870
So last time, we
did MDS codes.
4
00:00:15,760 --> 00:00:17,600
MDS codes, and we
looked at this.
5
00:00:17,600 --> 00:00:21,425
And we derived some generic
properties of these things if
6
00:00:21,425 --> 00:00:22,380
they existed.
7
00:00:22,380 --> 00:00:28,025
And then eventually, we moved
to Reed-Solomon codes.
8
00:00:30,730 --> 00:00:32,759
And so indeed, they exist.
9
00:00:32,759 --> 00:00:36,170
We talked a little bit about
existence altogether, the main
10
00:00:36,170 --> 00:00:39,425
conjection, MDS codes,
I just wrote it down.
11
00:00:39,425 --> 00:00:41,120
And like I said, you
want to be rich and
12
00:00:41,120 --> 00:00:43,890
famous, solve this.
13
00:00:43,890 --> 00:00:50,050
There's people doing geometry
in math that would be
14
00:00:50,050 --> 00:00:52,460
deliriously happy if
you solved it.
15
00:00:52,460 --> 00:00:54,780
So if for nothing else.
16
00:00:54,780 --> 00:00:59,240
So the last thing I wrote down
last time was something about
17
00:00:59,240 --> 00:01:01,800
a matrix which somebody
recognized as some Fourier
18
00:01:01,800 --> 00:01:02,890
transform matrix.
19
00:01:02,890 --> 00:01:06,530
And that's where I want to pick
up here, at least quickly
20
00:01:06,530 --> 00:01:08,460
make that connection.
21
00:01:08,460 --> 00:01:12,500
So let me rewrite the definition
of Reed-Solomon
22
00:01:12,500 --> 00:01:14,330
codes again.
23
00:01:14,330 --> 00:01:19,870
And so a Reed-Solomon code,
the way we defined it last
24
00:01:19,870 --> 00:01:22,475
time was all field elements,
we would evaluate the
25
00:01:22,475 --> 00:01:24,880
polynomial in all
field elements.
26
00:01:24,880 --> 00:01:26,130
Now we do it slightly
different.
27
00:01:29,980 --> 00:01:34,590
Let me make it Solomon-Stein
in order to denote that
28
00:01:34,590 --> 00:01:35,320
difference.
29
00:01:35,320 --> 00:01:46,150
And let's say this is
beta 0, beta n.
30
00:01:59,420 --> 00:02:00,730
So that's the old definition.
31
00:02:00,730 --> 00:02:11,530
Only the, let's say, the beta 0,
beta 1, up to beta n, they
32
00:02:11,530 --> 00:02:13,730
are the non-zero elements now.
33
00:02:13,730 --> 00:02:17,390
And just for the heck of it, so
we talked about punctured
34
00:02:17,390 --> 00:02:19,360
Reed-Solomon codes last
time that it would
35
00:02:19,360 --> 00:02:20,600
still be MDS codes.
36
00:02:20,600 --> 00:02:22,185
So nothing has changed there.
37
00:02:22,185 --> 00:02:25,510
In particular, all the arguments
would be the same.
38
00:02:25,510 --> 00:02:32,170
In particular, just to humor me,
let's say beta i is omega
39
00:02:32,170 --> 00:02:42,920
to the i, where omega
is primitive in Fq.
40
00:02:42,920 --> 00:02:46,790
So what that means, you remember
that primitive means
41
00:02:46,790 --> 00:02:48,460
that the powers of omega
cycle through all
42
00:02:48,460 --> 00:02:51,040
the non-zero elements.
43
00:02:51,040 --> 00:02:54,760
Remember the non-zero elements
are a multiplicative group.
44
00:02:54,760 --> 00:02:55,830
And it's a cyclic group.
45
00:02:55,830 --> 00:02:57,080
And it's the generator
of the group.
46
00:02:59,970 --> 00:03:01,220
Good.
47
00:03:06,020 --> 00:03:19,180
So once we write it like this,
we can actually write down the
48
00:03:19,180 --> 00:03:23,680
whole Reed-Solomon code in some
sort of transfer domain
49
00:03:23,680 --> 00:03:25,855
description in the Fourier
transform.
50
00:03:25,855 --> 00:03:28,710
And the way this goes
is the following.
51
00:03:28,710 --> 00:03:36,000
So from now on, I will make
implicit identification
52
00:03:36,000 --> 00:03:37,950
without making them.
53
00:03:37,950 --> 00:03:39,680
So this is an identification
which I
54
00:03:39,680 --> 00:03:41,360
just jump around between.
55
00:03:41,360 --> 00:03:42,790
A vector --
56
00:03:42,790 --> 00:03:49,280
so this one would be a Fqn.
57
00:03:49,280 --> 00:03:57,604
And Fx would be maybe
0 to MDS 1.
58
00:04:10,370 --> 00:04:11,310
Let's leave it at that.
59
00:04:11,310 --> 00:04:12,080
So I make this --
60
00:04:12,080 --> 00:04:13,820
AUDIENCE: [INAUDIBLE].
61
00:04:13,820 --> 00:04:18,430
PROFESSOR: Yeah, let's make
this identification free.
62
00:04:18,430 --> 00:04:21,570
It's just a vector of length n
and a polynomial of length n.
63
00:04:21,570 --> 00:04:24,240
And so whenever I want this
to have a low degree, the
64
00:04:24,240 --> 00:04:29,010
polynomial, then I just
write that expression.
65
00:04:29,010 --> 00:04:32,490
So this identification
we make freely now.
66
00:04:32,490 --> 00:04:36,620
And then how can we write F?
67
00:04:36,620 --> 00:04:48,820
Let F now be code word in
the Reed-Solomon code.
68
00:04:48,820 --> 00:04:50,000
And then I say Fi.
69
00:04:50,000 --> 00:04:51,620
What is Fi?
70
00:04:51,620 --> 00:04:54,390
The i is element.
71
00:04:54,390 --> 00:05:03,400
Well, we know that this is
F of omega to the i.
72
00:05:03,400 --> 00:05:07,200
So this is, at the moment,
counted from 0.
73
00:05:07,200 --> 00:05:09,100
So this is --
74
00:05:09,100 --> 00:05:10,730
you write it out --
75
00:05:16,820 --> 00:05:32,340
Fj omega to the i to the
j, which is omega i j.
76
00:05:32,340 --> 00:05:33,530
And now, at this point in time,
77
00:05:33,530 --> 00:05:34,780
everybody recognizes this.
78
00:05:38,000 --> 00:05:41,670
This would be the discrete
Fourier transform of a vector.
79
00:05:41,670 --> 00:05:45,940
This is an element of order n.
80
00:05:45,940 --> 00:05:47,840
Usually, there's e to
the j and then an
81
00:05:47,840 --> 00:05:48,970
element of order n.
82
00:05:48,970 --> 00:05:50,240
Now it's in the finite field.
83
00:05:50,240 --> 00:05:53,100
But what's the difference?
84
00:05:53,100 --> 00:05:55,180
This would be the Fourier
transform.
85
00:05:55,180 --> 00:05:58,450
So a code word would be the
Fourier transform of a vector
86
00:05:58,450 --> 00:06:03,350
F. Let's just make sure it also
goes the other direction.
87
00:06:03,350 --> 00:06:12,410
So I claim that Fl would be --
so what would be the Fourier
88
00:06:12,410 --> 00:06:16,630
transform if it, indeed, is
the Fourier transform?
89
00:06:16,630 --> 00:06:25,680
It is a minus, and then
it goes n minus 1
90
00:06:25,680 --> 00:06:31,450
Fj omega minus jl.
91
00:06:31,450 --> 00:06:34,560
So the question is
is that true?
92
00:06:34,560 --> 00:06:37,400
Because that would
be the inverse.
93
00:06:37,400 --> 00:06:38,978
Is that true?
94
00:06:38,978 --> 00:06:43,750
Well, let's do what we do with
proofs of this type.
95
00:06:46,860 --> 00:06:47,860
I need that space here.
96
00:06:47,860 --> 00:06:48,286
AUDIENCE: [INAUDIBLE].
97
00:06:48,286 --> 00:06:48,712
PROFESSOR: Sorry?
98
00:06:48,712 --> 00:06:49,990
AUDIENCE: [INAUDIBLE].
99
00:06:49,990 --> 00:06:50,420
PROFESSOR: Yeah.
100
00:06:50,420 --> 00:06:52,540
So let's do what we do with
proofs of this type.
101
00:06:52,540 --> 00:06:56,970
That means we write it out.
102
00:06:56,970 --> 00:06:59,170
That's another beautiful thing
about finite fields.
103
00:06:59,170 --> 00:07:02,790
You never have to worry
about convergence.
104
00:07:02,790 --> 00:07:07,310
So for the F, we just
plug that in here.
105
00:07:07,310 --> 00:07:10,310
Sum, this would be --
106
00:07:10,310 --> 00:07:11,590
what do we call it --
107
00:07:25,970 --> 00:07:33,920
Fi omega to the ij.
108
00:07:33,920 --> 00:07:38,860
So this would be Fj.
109
00:07:38,860 --> 00:07:42,600
And then I want omega
minus jl.
110
00:07:42,600 --> 00:07:43,535
So is that true?
111
00:07:43,535 --> 00:07:45,930
Is the identity now true?
112
00:07:45,930 --> 00:07:47,420
Well, we see two sums.
113
00:07:47,420 --> 00:07:50,200
What do we do with two sums?
114
00:07:50,200 --> 00:07:52,000
If we're compelled to exchange
the order, that's
115
00:07:52,000 --> 00:07:55,570
always what we do.
116
00:07:55,570 --> 00:08:02,150
So Fi goes out.
117
00:08:02,150 --> 00:08:09,900
And then you get
omega to the --
118
00:08:09,900 --> 00:08:12,160
what do we do --
119
00:08:12,160 --> 00:08:15,290
i minus l times j.
120
00:08:23,100 --> 00:08:25,970
We have this.
121
00:08:25,970 --> 00:08:27,450
And so what is this?
122
00:08:30,480 --> 00:08:33,270
How can we work this out?
123
00:08:33,270 --> 00:08:35,280
Well, you know how to
express the sum.
124
00:08:35,280 --> 00:08:42,280
So this part of the sum is
really just omega i minus l to
125
00:08:42,280 --> 00:08:49,472
the n minus 1 minus 1.
126
00:08:49,472 --> 00:08:51,690
Well, that's a standard
formula for summing
127
00:08:51,690 --> 00:08:52,840
these things up.
128
00:08:52,840 --> 00:08:57,280
But omega is an element
of order n.
129
00:08:57,280 --> 00:08:58,900
Omega was an element
of order n.
130
00:08:58,900 --> 00:08:59,870
That's how we chose it.
131
00:08:59,870 --> 00:09:00,750
AUDIENCE: [INAUDIBLE].
132
00:09:00,750 --> 00:09:01,595
PROFESSOR: It's what?
133
00:09:01,595 --> 00:09:04,040
AUDIENCE: [INAUDIBLE].
134
00:09:04,040 --> 00:09:06,680
PROFESSOR: You multiplied
omega --
135
00:09:06,680 --> 00:09:09,630
it's primitive in the
field, so omega --
136
00:09:09,630 --> 00:09:17,430
we have omega da-da-da-da-da i
unequal to 1 for all i less
137
00:09:17,430 --> 00:09:22,300
than n and omega n
is equal to 1.
138
00:09:22,300 --> 00:09:23,550
So OK.
139
00:09:27,640 --> 00:09:28,570
That's fine.
140
00:09:28,570 --> 00:09:29,910
So it's an element of order n.
141
00:09:29,910 --> 00:09:31,360
That means the n-th power.
142
00:09:31,360 --> 00:09:32,610
We can interchange this.
143
00:09:35,080 --> 00:09:39,070
So this is 1 to the some
power remains 1.
144
00:09:39,070 --> 00:09:40,790
So 1 minus 1 is 0.
145
00:09:40,790 --> 00:09:41,620
The denominator --
146
00:09:41,620 --> 00:09:44,140
well, actually, we get
two results here.
147
00:09:44,140 --> 00:09:51,555
If i is unequal to l,
then this is 0.
148
00:09:56,720 --> 00:10:02,590
If i is equal to l, then this
was just the sum of n once.
149
00:10:02,590 --> 00:10:05,240
So we get n here.
150
00:10:05,240 --> 00:10:05,970
i equal to 0.
151
00:10:05,970 --> 00:10:13,790
But n was q minus 1, the number
of non-zero field
152
00:10:13,790 --> 00:10:17,050
elements because it was
primitive in the field.
153
00:10:17,050 --> 00:10:23,990
And this one is just minus
1 in the field.
154
00:10:23,990 --> 00:10:30,190
Because q, we compute q is the
power of the prime of p.
155
00:10:30,190 --> 00:10:31,220
So that would be 0.
156
00:10:31,220 --> 00:10:33,220
If we just come out
as minus 1, that
157
00:10:33,220 --> 00:10:34,650
explains this minus here.
158
00:10:34,650 --> 00:10:37,000
And we can get rid of
the question mark.
159
00:10:39,810 --> 00:10:42,180
Look correct?
160
00:10:42,180 --> 00:10:42,550
All right.
161
00:10:42,550 --> 00:10:43,985
According to popular
vote, it is.
162
00:10:47,470 --> 00:10:48,740
So what do we really
have here?
163
00:10:48,740 --> 00:10:51,340
We have everything we want
from a Fourier transform.
164
00:10:51,340 --> 00:10:53,740
We have a Fourier
transform pair.
165
00:11:00,130 --> 00:11:04,780
We have a vector f, which we can
think of as being in the
166
00:11:04,780 --> 00:11:06,030
frequency domain.
167
00:11:08,800 --> 00:11:15,700
Then we have a vector F,
which is a Fourier
168
00:11:15,700 --> 00:11:17,920
transform of that.
169
00:11:17,920 --> 00:11:31,390
This one would be in the code
if the degree of this
170
00:11:31,390 --> 00:11:32,880
polynomial here would
be less than k.
171
00:11:36,410 --> 00:11:39,260
So now how can we understand
Reed-Solomon codes now from an
172
00:11:39,260 --> 00:11:41,010
engineering point of view?
173
00:11:41,010 --> 00:11:43,150
Classical --
174
00:11:43,150 --> 00:11:45,110
what about band-limited
functions?
175
00:11:45,110 --> 00:11:47,936
What do we know about
band-limited functions?
176
00:11:47,936 --> 00:11:54,442
Because in a sense, the degree
less than k, this means that
177
00:11:54,442 --> 00:11:58,810
Fi is 0 for all i
greater than k.
178
00:12:01,320 --> 00:12:02,820
That's what it means.
179
00:12:02,820 --> 00:12:06,070
So in a sense, it's nothing but
a band-limited function if
180
00:12:06,070 --> 00:12:09,060
this is a frequency domain,
if you consider this as a
181
00:12:09,060 --> 00:12:10,320
frequency domain.
182
00:12:10,320 --> 00:12:14,600
So what do we know about the
band-limited function?
183
00:12:14,600 --> 00:12:18,590
Well, if a function
is band limited,
184
00:12:18,590 --> 00:12:20,780
it cannot be impulsive.
185
00:12:20,780 --> 00:12:22,000
We know that.
186
00:12:22,000 --> 00:12:25,940
It's a part of the frequency,
and the frequency domain is
187
00:12:25,940 --> 00:12:30,520
inversely relational to the
support of the function.
188
00:12:30,520 --> 00:12:32,660
So the whole idea of
Reed-Solomon codes, in a
189
00:12:32,660 --> 00:12:35,540
sense, can actually be
understood, at least
190
00:12:35,540 --> 00:12:37,960
intuitively, from Fourier
transform and the duality
191
00:12:37,960 --> 00:12:40,162
between time and frequency.
192
00:12:40,162 --> 00:12:41,094
Yeah.
193
00:12:41,094 --> 00:12:43,430
AUDIENCE: Was q a
prime number?
194
00:12:43,430 --> 00:12:47,722
PROFESSOR: q is not prime.
q is a power of a prime.
195
00:12:47,722 --> 00:12:49,000
q to the n.
196
00:12:49,000 --> 00:12:50,250
AUDIENCE: [INAUDIBLE].
197
00:12:52,930 --> 00:12:54,840
PROFESSOR: There always is.
198
00:12:54,840 --> 00:12:55,400
Oh, sorry.
199
00:12:55,400 --> 00:12:56,350
AUDIENCE: [INAUDIBLE]
200
00:12:56,350 --> 00:12:59,820
or because for any q, there
would be always a primitive?
201
00:12:59,820 --> 00:13:02,740
PROFESSOR: Why there's always
a primitive element
202
00:13:02,740 --> 00:13:03,990
in the field --
203
00:13:06,350 --> 00:13:07,360
yeah, sorry.
204
00:13:07,360 --> 00:13:08,820
I thought you had gone
through that.
205
00:13:11,710 --> 00:13:15,370
It's because the non-zero
elements in a field always
206
00:13:15,370 --> 00:13:18,110
make up a multiplicative
group.
207
00:13:18,110 --> 00:13:21,640
And it's always a cyclic
multiplicative group.
208
00:13:21,640 --> 00:13:25,690
So it's a cyclic multiplicative
group.
209
00:13:25,690 --> 00:13:28,932
And it's just the generator
of that group.
210
00:13:28,932 --> 00:13:30,700
AUDIENCE: [INAUDIBLE]
it was a --
211
00:13:30,700 --> 00:13:32,800
PROFESSOR: It's the same
statement as saying, a cyclic
212
00:13:32,800 --> 00:13:34,050
group has a generator.
213
00:13:38,394 --> 00:13:43,024
AUDIENCE: If Fq, for example,
was a z, zq,
214
00:13:43,024 --> 00:13:46,680
then q has to be prime.
215
00:13:46,680 --> 00:13:47,290
PROFESSOR: Yeah.
216
00:13:47,290 --> 00:13:49,480
Yeah, in order for it to be a
field, q has to be prime.
217
00:13:49,480 --> 00:13:49,905
Right.
218
00:13:49,905 --> 00:13:51,180
That's true.
219
00:13:51,180 --> 00:13:52,030
That's true.
220
00:13:52,030 --> 00:13:55,490
But we are not worried
about --
221
00:13:55,490 --> 00:13:58,150
There's also a beautiful theory
[UNINTELLIGIBLE PHRASE]
222
00:13:58,150 --> 00:14:01,950
rings if this would not be a
prime, very nice theory,
223
00:14:01,950 --> 00:14:03,775
becomes a little bit
more technical.
224
00:14:03,775 --> 00:14:05,855
You see, more technical,
then more difficult.
225
00:14:09,960 --> 00:14:13,210
I just wanted to give you this
correspondence on the Fourier
226
00:14:13,210 --> 00:14:16,170
transform because it's, from an
engineering point of view,
227
00:14:16,170 --> 00:14:19,200
a very nice insight.
228
00:14:19,200 --> 00:14:21,510
One of the reasons one can
understand that Reed-Solomon
229
00:14:21,510 --> 00:14:24,220
codes have a good minimum
distance is because it has a
230
00:14:24,220 --> 00:14:25,790
transform of a band-limited
function.
231
00:14:29,890 --> 00:14:31,170
So that's what I wanted
to say about the
232
00:14:31,170 --> 00:14:33,240
Fourier transforms here.
233
00:14:33,240 --> 00:14:34,820
I do not want to spend
too much time.
234
00:14:34,820 --> 00:14:36,145
I have to get through
decoding here.
235
00:14:40,280 --> 00:14:42,820
Since we have now this Fourier
transform correspondence, we
236
00:14:42,820 --> 00:14:43,740
can do another thing.
237
00:14:43,740 --> 00:15:00,720
We can, namely, say, well, F is
in the code if and only if
238
00:15:00,720 --> 00:15:02,420
the Fourier transform --
239
00:15:02,420 --> 00:15:05,740
so that was the back
transform here.
240
00:15:09,340 --> 00:15:11,480
Also now, the code word, we can
interpret the code word as
241
00:15:11,480 --> 00:15:12,180
a polynomial.
242
00:15:12,180 --> 00:15:15,460
And the inverse transform
is just evaluating
243
00:15:15,460 --> 00:15:19,980
it at an omega again.
244
00:15:19,980 --> 00:15:26,010
F is in the code if and only the
transform of a code word
245
00:15:26,010 --> 00:15:34,385
is 0 for all i greater than
k up to n minus 1.
246
00:15:34,385 --> 00:15:34,850
Yeah.
247
00:15:34,850 --> 00:15:36,100
AUDIENCE: [INAUDIBLE].
248
00:15:38,790 --> 00:15:41,375
PROFESSOR: So it basically
just means the support.
249
00:15:46,400 --> 00:15:49,650
If this one is band limited,
then this one cannot have
250
00:15:49,650 --> 00:15:51,610
arbitrarily small support.
251
00:15:51,610 --> 00:15:55,110
That's what it means.
252
00:15:55,110 --> 00:15:56,460
That's really all
I wanted to say.
253
00:16:02,510 --> 00:16:09,620
i greater than k and
less than n.
254
00:16:09,620 --> 00:16:15,470
So we have that F is in the
code if and only the
255
00:16:15,470 --> 00:16:20,700
polynomial evaluates to 0
at a bunch of points.
256
00:16:20,700 --> 00:16:23,060
Now that leads to something
interesting.
257
00:16:23,060 --> 00:16:28,700
Because now we can say, well,
so what if we've just
258
00:16:28,700 --> 00:16:34,860
construct our set of vectors F
so that they evaluate to 0
259
00:16:34,860 --> 00:16:37,190
somewhere where we want
them to zero.
260
00:16:37,190 --> 00:16:40,630
We construct them somewhat
differently than here.
261
00:16:40,630 --> 00:16:48,250
And in particular, let's define
g as a product of i
262
00:16:48,250 --> 00:16:58,560
equal k up to n minus 1 of
x minus omega minus i.
263
00:16:58,560 --> 00:17:00,950
So it's a polynomial.
264
00:17:00,950 --> 00:17:07,369
This is a polynomial which
satisfies this.
265
00:17:07,369 --> 00:17:16,210
So in particular, we have g of
omega minus i is equal to 0
266
00:17:16,210 --> 00:17:20,481
for all i less than
n less than --
267
00:17:20,481 --> 00:17:21,864
I'm sorry --
268
00:17:21,864 --> 00:17:23,250
and greater than k.
269
00:17:26,540 --> 00:17:30,700
So this is a code word, right?
270
00:17:30,700 --> 00:17:33,116
We are agreed this
is a code word?
271
00:17:33,116 --> 00:17:33,940
Good.
272
00:17:33,940 --> 00:17:36,330
So we found a code word without
going through this
273
00:17:36,330 --> 00:17:40,020
here, without going through
the evaluation map.
274
00:17:40,020 --> 00:17:42,000
We found it straight away.
275
00:17:42,000 --> 00:17:44,210
But not only did we find this.
276
00:17:44,210 --> 00:17:48,470
This has degree n minus k.
277
00:17:48,470 --> 00:17:51,190
This has degree n minus k.
278
00:17:51,190 --> 00:17:53,990
So maybe there's another
interpretation.
279
00:17:53,990 --> 00:17:59,000
Now we can give a whole new
definition of the Reed-Solomon
280
00:17:59,000 --> 00:18:08,110
code, namely, as a set of
polynomials, which are sort of
281
00:18:08,110 --> 00:18:17,490
implicitly identified with a set
of vectors such that times
282
00:18:17,490 --> 00:18:30,830
this g of x and h of x
is less then k again.
283
00:18:30,830 --> 00:18:35,330
So what we have here, it's
again, you take a vector space
284
00:18:35,330 --> 00:18:38,050
of functions the h.
285
00:18:38,050 --> 00:18:40,800
It's a k dimensional
vector space.
286
00:18:40,800 --> 00:18:43,426
And we multiplied with this g.
287
00:18:43,426 --> 00:18:46,280
It's again a linear map, this
multiplication with a fixed
288
00:18:46,280 --> 00:18:47,530
polynomial.
289
00:18:49,220 --> 00:18:52,340
A linear map of this vector
space gives us, again, a
290
00:18:52,340 --> 00:18:54,810
vector space of dimension k.
291
00:18:54,810 --> 00:19:01,260
And all elements in this vector
space evaluate to 0 for
292
00:19:01,260 --> 00:19:04,270
all omega to the minus i.
293
00:19:04,270 --> 00:19:06,140
That's just the same
again, just the
294
00:19:06,140 --> 00:19:07,570
Reed-Solomon code again.
295
00:19:07,570 --> 00:19:12,140
So it's a very nice
complementary description to
296
00:19:12,140 --> 00:19:17,210
the same Reed-Solomon code we
could define up here, we have
297
00:19:17,210 --> 00:19:18,665
found again down here.
298
00:19:23,300 --> 00:19:24,550
What is so nice about this?
299
00:19:30,350 --> 00:19:33,830
Yeah, what do you think
is so nice about this?
300
00:19:33,830 --> 00:19:35,080
About this description?
301
00:19:39,960 --> 00:19:42,344
So now you have to think
as engineers.
302
00:19:42,344 --> 00:19:43,710
AUDIENCE: You can still
evaluate it.
303
00:19:43,710 --> 00:19:47,930
There, we have to evaluate it
at end points of function.
304
00:19:47,930 --> 00:19:48,930
PROFESSOR: Yeah, exactly.
305
00:19:48,930 --> 00:19:51,710
This is so easy to implement.
306
00:19:51,710 --> 00:19:55,730
So now we think a little
bit about encoder.
307
00:19:55,730 --> 00:20:04,320
An encoder for a Reed-Solomon
code.
308
00:20:04,320 --> 00:20:05,570
How would we do that?
309
00:20:07,710 --> 00:20:08,760
You look at this here.
310
00:20:08,760 --> 00:20:09,950
Hey, let's do this.
311
00:20:09,950 --> 00:20:11,550
Let's exactly do this.
312
00:20:11,550 --> 00:20:18,810
Meaning in VLSI, we do
something like --
313
00:20:36,720 --> 00:20:38,450
and here, you would write
-- and this is
314
00:20:38,450 --> 00:20:41,700
just a delay element.
315
00:20:41,700 --> 00:20:48,290
This one would be g n minus k.
316
00:20:48,290 --> 00:20:49,540
This one --
317
00:20:54,150 --> 00:20:56,120
so these would be the
coefficients.
318
00:20:56,120 --> 00:20:58,990
This polynomial, we can evaluate
once and for all.
319
00:20:58,990 --> 00:21:01,790
We do that once before we
start our communication.
320
00:21:01,790 --> 00:21:04,040
We evaluate that polynomial
once and for all.
321
00:21:04,040 --> 00:21:06,050
We know these coefficients.
322
00:21:06,050 --> 00:21:10,770
So these are multipliers which
multiply with those
323
00:21:10,770 --> 00:21:12,060
corresponding coefficients.
324
00:21:12,060 --> 00:21:19,450
And we feed into here the
coefficients of this
325
00:21:19,450 --> 00:21:20,160
polynomial.
326
00:21:20,160 --> 00:21:22,430
This is our information symbols,
which we simply feed
327
00:21:22,430 --> 00:21:25,930
into this circuitry.
328
00:21:25,930 --> 00:21:30,410
And into this circuit, out
comes F, out comes the
329
00:21:30,410 --> 00:21:32,290
coefficient.
330
00:21:32,290 --> 00:21:34,300
Polynomial multiplication.
331
00:21:34,300 --> 00:21:37,200
If you show that to a
VLSI designer, they
332
00:21:37,200 --> 00:21:39,330
are deliriously happy.
333
00:21:39,330 --> 00:21:40,470
They say, you know what?
334
00:21:40,470 --> 00:21:41,690
I implement you this thing.
335
00:21:41,690 --> 00:21:45,940
I implement you in 5,000 gates,
which is close to
336
00:21:45,940 --> 00:21:47,190
nothing nowadays.
337
00:21:49,760 --> 00:21:50,240
Maybe not.
338
00:21:50,240 --> 00:21:53,690
Maybe 10,000.
339
00:21:53,690 --> 00:21:56,500
And there you get to the
second reason that
340
00:21:56,500 --> 00:21:58,680
Reed-Solomon codes
are so extremely
341
00:21:58,680 --> 00:22:00,540
important in practice.
342
00:22:00,540 --> 00:22:04,660
On the one hand, they are MDS
codes, meaning they are about
343
00:22:04,660 --> 00:22:07,820
as good as it gets.
344
00:22:07,820 --> 00:22:10,615
And on the other hand,
they are algorithms.
345
00:22:10,615 --> 00:22:15,725
They are circuitry for these
things whose cost is close to
346
00:22:15,725 --> 00:22:18,970
nothing at least today.
347
00:22:18,970 --> 00:22:21,770
When they were invented, that
was quite different.
348
00:22:21,770 --> 00:22:25,250
In the '60s, that would have
not been implementable with
349
00:22:25,250 --> 00:22:27,680
transistors on a board or
something like that.
350
00:22:27,680 --> 00:22:29,920
But today, the cost is
close to nothing.
351
00:22:29,920 --> 00:22:32,380
So the whole algorithmic
treatment of Reed-Solomon
352
00:22:32,380 --> 00:22:36,000
codes is very well developed.
353
00:22:36,000 --> 00:22:37,570
The encoder you could
do like this.
354
00:22:37,570 --> 00:22:38,886
Yeah.
355
00:22:38,886 --> 00:22:40,983
AUDIENCE: Question about why
do you still require that
356
00:22:40,983 --> 00:22:43,546
degree [INAUDIBLE]?
357
00:22:43,546 --> 00:22:45,095
PROFESSOR: You don't
need to do that.
358
00:22:45,095 --> 00:22:47,160
But then the mapping is not
one-to-one anymore.
359
00:22:50,580 --> 00:22:52,550
Then the mapping is not
one-to-one anymore.
360
00:22:56,120 --> 00:22:58,170
Let's put it other ways.
361
00:22:58,170 --> 00:23:00,280
You want code words
of length n.
362
00:23:00,280 --> 00:23:03,590
If the degree is larger,
you run over.
363
00:23:03,590 --> 00:23:06,250
In order to still get a code
word, then you have to take it
364
00:23:06,250 --> 00:23:08,840
modular x to the n minus 1.
365
00:23:08,840 --> 00:23:11,340
And that would fold the
coefficients back.
366
00:23:11,340 --> 00:23:13,890
And still, it gives you a valid
code word then, but this
367
00:23:13,890 --> 00:23:16,900
is not one-to-one anymore.
368
00:23:16,900 --> 00:23:19,980
Anyway, the short answer is if
you allow more, then they
369
00:23:19,980 --> 00:23:22,160
become longer than n.
370
00:23:25,410 --> 00:23:29,860
So what's the time?
371
00:23:29,860 --> 00:23:31,050
OK.
372
00:23:31,050 --> 00:23:32,880
So this is a nice encoder.
373
00:23:32,880 --> 00:23:39,730
There even is a nicer encoder,
which I just want to give the
374
00:23:39,730 --> 00:23:41,950
formula for.
375
00:23:41,950 --> 00:23:44,540
The one reason that people still
have a problem with this
376
00:23:44,540 --> 00:23:46,860
is it's not systematic.
377
00:23:46,860 --> 00:23:52,185
People like to see the symbols
in the code words themselves.
378
00:23:52,185 --> 00:23:54,226
They want the systematic part.
379
00:23:54,226 --> 00:23:56,890
How could we achieve that?
380
00:23:56,890 --> 00:24:00,150
Well, we go from the same
description here.
381
00:24:00,150 --> 00:24:06,530
We say, well, let
h of x be given.
382
00:24:09,970 --> 00:24:23,060
Then compute x to the n minus k
times h of x modular g of x.
383
00:24:23,060 --> 00:24:28,910
So we divide this polynomial
by this polynomial g --
384
00:24:28,910 --> 00:24:29,860
it has a name.
385
00:24:29,860 --> 00:24:32,240
It's called the generator
polynomial.
386
00:24:32,240 --> 00:24:34,790
We divide it by g.
387
00:24:34,790 --> 00:24:43,960
And out comes some polynomial
r of x of some low degree,
388
00:24:43,960 --> 00:24:45,210
degree less than g.
389
00:24:47,960 --> 00:24:56,900
And degree r of x less than
n minus k in particular.
390
00:24:56,900 --> 00:24:59,100
So and then we can
form a code word.
391
00:24:59,100 --> 00:25:05,110
I claim F of x, no, F is --
392
00:25:05,110 --> 00:25:12,040
and here we write r, and
here we write h.
393
00:25:12,040 --> 00:25:15,220
The coefficient vector
of h and the
394
00:25:15,220 --> 00:25:17,870
coefficient vector of r.
395
00:25:17,870 --> 00:25:20,870
Why is that a code word?
396
00:25:20,870 --> 00:25:21,850
Why is that a code word?
397
00:25:21,850 --> 00:25:23,190
Maybe minus here.
398
00:25:23,190 --> 00:25:25,270
I'm always thinking
characteristic 2 anyway.
399
00:25:25,270 --> 00:25:28,180
So why is this a code word?
400
00:25:28,180 --> 00:25:29,430
Anybody, it's clear?
401
00:25:32,534 --> 00:25:42,970
What this is in terms of F of
x is r of x plus h of x.
402
00:25:45,545 --> 00:25:48,000
Oh, minus r of x.
403
00:25:48,000 --> 00:25:50,240
That's because we wrote
it like this.
404
00:25:50,240 --> 00:25:59,870
If we now take the F of x
modular g of x, well, this
405
00:25:59,870 --> 00:26:02,400
part has degree low.
406
00:26:02,400 --> 00:26:05,130
It's not affected by this
modular operation.
407
00:26:05,130 --> 00:26:10,820
This would be minus r of x plus
this one, modular g of x,
408
00:26:10,820 --> 00:26:13,940
which is r of x.
409
00:26:13,940 --> 00:26:16,860
So the whole thing is 0.
410
00:26:16,860 --> 00:26:22,000
If this is 0, that means g of
x is a factor of F. Hence,
411
00:26:22,000 --> 00:26:23,930
it's a code word.
412
00:26:23,930 --> 00:26:25,650
So we have a code word here.
413
00:26:25,650 --> 00:26:32,150
And in the code word, pop up
our symbols right away, our
414
00:26:32,150 --> 00:26:33,960
encoded information symbols
right away.
415
00:26:33,960 --> 00:26:37,770
So we get some nice systematic
encoding going.
416
00:26:37,770 --> 00:26:40,500
This division circuit by
g is pretty much the
417
00:26:40,500 --> 00:26:41,790
same size as this.
418
00:26:41,790 --> 00:26:45,060
It's not larger at all.
419
00:26:45,060 --> 00:26:46,790
So there, we get beautiful
algorithms.
420
00:26:46,790 --> 00:26:48,736
This is actually what's
implemented.
421
00:26:48,736 --> 00:26:51,610
If we go to any disc drive
[UNINTELLIGIBLE], that is
422
00:26:51,610 --> 00:26:56,610
usually what is implemented
in there, exactly this.
423
00:26:56,610 --> 00:26:57,990
Algorithms.
424
00:26:57,990 --> 00:27:00,850
Algorithmic treatment of
Reed-Solomon codes.
425
00:27:00,850 --> 00:27:03,590
Do you have any questions
about any of this?
426
00:27:03,590 --> 00:27:04,015
Yeah.
427
00:27:04,015 --> 00:27:05,370
AUDIENCE: I have a question
about do any these
428
00:27:05,370 --> 00:27:09,555
Reed-Solomon codes
map [INAUDIBLE]?
429
00:27:09,555 --> 00:27:11,990
PROFESSOR: They are
very costly map.
430
00:27:11,990 --> 00:27:14,940
Usually, it depends a lot
on the application.
431
00:27:14,940 --> 00:27:17,180
If you think disc drives,
[UNINTELLIGIBLE] as just being
432
00:27:17,180 --> 00:27:21,330
mapped, you take Reed-Solomon
codes over a characteristic 2.
433
00:27:21,330 --> 00:27:22,760
Then each field element is
434
00:27:22,760 --> 00:27:25,840
represented as a binary vector.
435
00:27:25,840 --> 00:27:30,460
And that binary vector is mapped
into on-off keying.
436
00:27:30,460 --> 00:27:32,230
Straight off the bat.
437
00:27:32,230 --> 00:27:34,560
Nothing more fancy.
438
00:27:34,560 --> 00:27:40,090
That is for disc drives.
439
00:27:40,090 --> 00:27:42,710
And as you do this, the
satellite standard, where it's
440
00:27:42,710 --> 00:27:48,510
mapped onto the 256-QAM field
elements [UNINTELLIGIBLE].
441
00:27:48,510 --> 00:27:51,490
So it's many different ways.
442
00:27:51,490 --> 00:27:53,328
Many different ways.
443
00:27:53,328 --> 00:27:55,640
AUDIENCE: But to prove some
performance [UNINTELLIGIBLE]
444
00:27:55,640 --> 00:27:58,980
in the [UNINTELLIGIBLE], we need
to have mappings, right?
445
00:27:58,980 --> 00:28:01,030
PROFESSOR: In order to prove
performance mode, we need to
446
00:28:01,030 --> 00:28:02,110
have mappings.
447
00:28:02,110 --> 00:28:05,700
And the Hamming distance bounds
that we get from here
448
00:28:05,700 --> 00:28:09,060
give you bounds on the minimum
Euclidean distance.
449
00:28:09,060 --> 00:28:12,400
If these are good bounds or
not depends a lot on the
450
00:28:12,400 --> 00:28:14,150
modulation scheme.
451
00:28:14,150 --> 00:28:17,620
And to be perfectly honest,
they usually are not.
452
00:28:17,620 --> 00:28:21,850
They usually are not very
good, the bounds.
453
00:28:21,850 --> 00:28:26,350
But it's a very difficult
problem to design a code or to
454
00:28:26,350 --> 00:28:31,010
find a representation of the
fields that maps nicely onto a
455
00:28:31,010 --> 00:28:31,965
modulation scheme.
456
00:28:31,965 --> 00:28:34,725
Very difficult problem.
457
00:28:34,725 --> 00:28:37,210
AUDIENCE: How do we know
how to think that
458
00:28:37,210 --> 00:28:38,210
this is a good code?
459
00:28:38,210 --> 00:28:42,030
PROFESSOR: The code itself is
excellent in terms of MDS, the
460
00:28:42,030 --> 00:28:43,010
MDS property.
461
00:28:43,010 --> 00:28:45,070
AUDIENCE: But why does
MDS mean good codes?
462
00:28:45,070 --> 00:28:46,696
PROFESSOR: In respect
to modulation?
463
00:28:46,696 --> 00:28:47,580
AUDIENCE: Yes.
464
00:28:47,580 --> 00:28:49,490
PROFESSOR: It doesn't.
465
00:28:49,490 --> 00:28:52,374
It doesn't.
466
00:28:52,374 --> 00:28:55,390
It's a bit like this.
467
00:28:55,390 --> 00:28:59,080
It's really not easy to define
codes in Euclidean space.
468
00:28:59,080 --> 00:29:07,170
So all that we do is we find
ways to do that and guarantee
469
00:29:07,170 --> 00:29:12,120
some performance, some
sort of performance.
470
00:29:12,120 --> 00:29:15,400
It's not easy to spread out --
471
00:29:15,400 --> 00:29:15,910
I don't know --
472
00:29:15,910 --> 00:29:24,080
2 to the 1,000 points
in 1,500 dimensions.
473
00:29:24,080 --> 00:29:25,380
These would be typical
numbers really.
474
00:29:29,090 --> 00:29:31,240
It's not easy.
475
00:29:31,240 --> 00:29:35,350
And since that problem is
practically daunting, it's a
476
00:29:35,350 --> 00:29:39,530
daunting task, you have to
develop all sort of crutches
477
00:29:39,530 --> 00:29:40,210
to do that.
478
00:29:40,210 --> 00:29:42,290
And this is really one.
479
00:29:42,290 --> 00:29:46,620
So how to code MDS
codes playing a
480
00:29:46,620 --> 00:29:48,120
part in this mapping.
481
00:29:48,120 --> 00:29:52,230
If you want to be more fancy
about that, then you put a
482
00:29:52,230 --> 00:29:55,440
convolutional code or some other
code also in there and
483
00:29:55,440 --> 00:29:56,690
do a combine scheme.
484
00:29:59,670 --> 00:30:02,910
I think Professor Forney will
talk about that more.
485
00:30:02,910 --> 00:30:05,060
So here, it's just the
coding theoretic
486
00:30:05,060 --> 00:30:07,550
groundwork of these things.
487
00:30:10,610 --> 00:30:11,090
Anything else?
488
00:30:11,090 --> 00:30:11,565
Yeah.
489
00:30:11,565 --> 00:30:12,900
AUDIENCE: [INAUDIBLE]
490
00:30:12,900 --> 00:30:15,390
of the [INAUDIBLE] n minus 1.
491
00:30:15,390 --> 00:30:17,507
Close, very close [INAUDIBLE].
492
00:30:17,507 --> 00:30:18,757
PROFESSOR: Yeah, thanks.
493
00:30:24,050 --> 00:30:28,780
So the algorithmic treatment
of Reed-Solomon codes is
494
00:30:28,780 --> 00:30:29,980
extremely elegant.
495
00:30:29,980 --> 00:30:34,675
And that's the second main
reason they are so much used.
496
00:30:34,675 --> 00:30:37,990
It doesn't cost so much
to implement them.
497
00:30:37,990 --> 00:30:40,210
Well, at least we've seen
that for the encoder.
498
00:30:40,210 --> 00:30:42,130
That's a fairly small circuit.
499
00:30:42,130 --> 00:30:43,380
So what about decoding?
500
00:30:48,950 --> 00:30:51,650
Decoding.
501
00:30:51,650 --> 00:30:53,350
How do we decode these things?
502
00:30:57,990 --> 00:31:00,400
How could we possibly
decode them?
503
00:31:00,400 --> 00:31:02,390
And I give you --
504
00:31:02,390 --> 00:31:04,840
AUDIENCE: Fourier?
505
00:31:04,840 --> 00:31:05,660
PROFESSOR: Right, that's true.
506
00:31:05,660 --> 00:31:06,930
We could do the Fourier
transform.
507
00:31:06,930 --> 00:31:13,026
But it doesn't help us so much
because we receive something.
508
00:31:13,026 --> 00:31:16,540
And we receive a
vector, say, y.
509
00:31:20,962 --> 00:31:23,323
From now on, let's say
x is a code word.
510
00:31:27,760 --> 00:31:28,750
rs, right.
511
00:31:28,750 --> 00:31:32,590
So x, it's usually a code
word from now on.
512
00:31:32,590 --> 00:31:37,190
So this is a code word
plus an error.
513
00:31:37,190 --> 00:31:39,740
So in particular, if we take the
Fourier transform, we take
514
00:31:39,740 --> 00:31:42,110
the Fourier transform of the
code word, which is fine.
515
00:31:42,110 --> 00:31:43,590
But then we get the Fourier
transform of the error.
516
00:31:43,590 --> 00:31:46,780
So that destroys all the fun.
517
00:31:49,370 --> 00:31:50,110
What else could we do?
518
00:31:50,110 --> 00:31:54,250
Here's typical parameters
of a code.
519
00:31:54,250 --> 00:32:01,740
255, 239, 256.
520
00:32:01,740 --> 00:32:04,100
And you immediately see
that, OK, any sort of
521
00:32:04,100 --> 00:32:05,350
group force is out.
522
00:32:08,820 --> 00:32:10,490
How many code words
do we have here?
523
00:32:10,490 --> 00:32:13,622
We have 8 to the
239 code words.
524
00:32:13,622 --> 00:32:16,042
Now you don't want
to search that.
525
00:32:16,042 --> 00:32:18,386
You definitely don't want
to search that.
526
00:32:22,690 --> 00:32:25,536
So how could we possibly
decode these things?
527
00:32:28,790 --> 00:32:32,070
Turns out, to decode them in
some sort of optimal fashion,
528
00:32:32,070 --> 00:32:33,160
maximum likelihood [INAUDIBLE]
529
00:32:33,160 --> 00:32:37,220
actually, it's an
NP-hard problem.
530
00:32:37,220 --> 00:32:41,140
Maybe last year, actually, it
has been shown that it's an
531
00:32:41,140 --> 00:32:44,190
NP-hard problem to decode
Reed-Solomon codes.
532
00:32:44,190 --> 00:32:47,110
It was known that decoding
in general was NP-hard.
533
00:32:47,110 --> 00:32:51,930
But this is now the constraint
to Reed-Solomon
534
00:32:51,930 --> 00:32:55,200
codes is still hard.
535
00:32:55,200 --> 00:32:56,940
So what do we do?
536
00:32:56,940 --> 00:32:59,640
Yes, OK, what do we do?
537
00:32:59,640 --> 00:33:01,800
Let's say x is a code word.
538
00:33:01,800 --> 00:33:05,170
We know that.
539
00:33:05,170 --> 00:33:09,560
And set rate e, let's
just call it t.
540
00:33:16,680 --> 00:33:23,390
So what happens if you
don't have an error?
541
00:33:23,390 --> 00:33:24,640
Just thought experiment.
542
00:33:28,630 --> 00:33:34,520
Thought experiment, if you don't
have an error, then yi
543
00:33:34,520 --> 00:33:46,640
in all the positions is
equal to F of xi for
544
00:33:46,640 --> 00:33:49,500
some F of x of degree.
545
00:33:59,000 --> 00:34:02,520
In particular, since we
know the x's, we know
546
00:34:02,520 --> 00:34:03,770
the positions --
547
00:34:09,440 --> 00:34:14,600
sorry, oh, sorry.
548
00:34:14,600 --> 00:34:17,050
That's not what I
wanted to write.
549
00:34:17,050 --> 00:34:18,864
This is definitely not what
I wanted to write.
550
00:34:21,820 --> 00:34:38,870
Let's keep that as c as a code
word and position i in c is
551
00:34:38,870 --> 00:34:49,679
associated with xi
in the fields.
552
00:34:49,679 --> 00:34:57,340
So meaning ci would
be F of xi.
553
00:34:57,340 --> 00:34:59,310
That's really what I
wanted to write.
554
00:34:59,310 --> 00:35:01,810
It makes more sense.
555
00:35:01,810 --> 00:35:03,710
So thought experiment.
556
00:35:03,710 --> 00:35:04,960
No errors.
557
00:35:07,080 --> 00:35:16,170
Then yi is F of xi for some F.
If they ran no errors, then we
558
00:35:16,170 --> 00:35:21,900
could just solve this linear
system of equations to find
559
00:35:21,900 --> 00:35:26,360
the coefficient of F. And the
coefficient of F, say, were
560
00:35:26,360 --> 00:35:28,286
our information circuits.
561
00:35:28,286 --> 00:35:32,100
Is it clear that this is a
linear system of equations?
562
00:35:32,100 --> 00:35:34,380
Yeah?
563
00:35:34,380 --> 00:35:40,680
You could write it out as
y0, y1, y2 equal to --
564
00:35:56,490 --> 00:36:01,260
and here we have f0,
f1, up to fk-1.
565
00:36:01,260 --> 00:36:03,110
This is the linear system
of equations.
566
00:36:03,110 --> 00:36:04,510
We know the xi's.
567
00:36:04,510 --> 00:36:05,960
This is a linear system of
equation we have to solve.
568
00:36:11,170 --> 00:36:13,560
If there are no errors,
then life is easy.
569
00:36:13,560 --> 00:36:15,360
That seems to be reasonable.
570
00:36:15,360 --> 00:36:17,820
So what happens if we
do have errors?
571
00:36:17,820 --> 00:36:23,810
Somehow, we have to make sure
that the errors that we get do
572
00:36:23,810 --> 00:36:27,590
not cause any problem for us.
573
00:36:27,590 --> 00:36:33,950
And then we do something
very ingenious.
574
00:36:33,950 --> 00:36:37,825
We define something called an
error locator which is a
575
00:36:37,825 --> 00:36:55,470
polynomial x such
that x minus xi.
576
00:36:55,470 --> 00:37:01,400
So it's a polynomial which is
0 in all error positions.
577
00:37:04,700 --> 00:37:07,270
Well, you might say, we do not
know the error positions.
578
00:37:07,270 --> 00:37:09,750
Well, OK, that's true.
579
00:37:09,750 --> 00:37:12,480
Basically, this is, in the end,
what we want to find,
580
00:37:12,480 --> 00:37:13,150
this polynomial.
581
00:37:13,150 --> 00:37:14,835
But nonetheless, this
polynomial exists.
582
00:37:18,080 --> 00:37:25,990
We can cast, actually,
the coding problem --
583
00:37:25,990 --> 00:37:29,170
this is form 1 s.
584
00:37:32,695 --> 00:37:35,032
Yes, what?
585
00:37:35,032 --> 00:37:36,282
AUDIENCE: [INAUDIBLE PHRASE].
586
00:37:42,130 --> 00:37:43,480
PROFESSOR: Yeah, it's an
additive error model.
587
00:37:46,510 --> 00:37:48,330
But you can cast pretty
much anything in the
588
00:37:48,330 --> 00:37:49,140
[UNINTELLIGIBLE].
589
00:37:49,140 --> 00:37:52,440
If a position is altered, you
can always model that as if
590
00:37:52,440 --> 00:37:53,754
something was added to it.
591
00:37:56,480 --> 00:38:09,670
Decoding problem one is find
lambda of x of minimal degree
592
00:38:09,670 --> 00:38:30,800
such that lambda of xi,
is 0 for all xi and
593
00:38:30,800 --> 00:38:35,230
degree f less than k.
594
00:38:35,230 --> 00:38:41,750
So I claim if you solve this
problem, namely, this is a
595
00:38:41,750 --> 00:38:44,570
problem I give you.
596
00:38:44,570 --> 00:38:47,000
I give you vector y.
597
00:38:47,000 --> 00:38:48,335
I give you vector y.
598
00:38:48,335 --> 00:38:48,890
Here it is.
599
00:38:48,890 --> 00:38:50,380
Here is vector y.
600
00:38:50,380 --> 00:38:53,500
And I give you vector x which
corresponds to the field
601
00:38:53,500 --> 00:38:56,310
elements where you evaluated
that in order to
602
00:38:56,310 --> 00:38:57,540
get the code word.
603
00:38:57,540 --> 00:39:02,760
And then I said, given y and x,
find two polynomials lambda
604
00:39:02,760 --> 00:39:09,180
and f such that f has maximum
degree k and lambda has
605
00:39:09,180 --> 00:39:12,730
minimum degree, the smaller
degree possible so
606
00:39:12,730 --> 00:39:15,360
that this is true.
607
00:39:15,360 --> 00:39:19,140
And I claim this solves
the decoding problem.
608
00:39:19,140 --> 00:39:22,340
This would solve the decoding
problem because once we have
609
00:39:22,340 --> 00:39:24,910
found this, then we
can take lambda to
610
00:39:24,910 --> 00:39:27,140
be the error locator.
611
00:39:27,140 --> 00:39:32,480
And we can basically read
off the information
612
00:39:32,480 --> 00:39:35,180
symbols from the f.
613
00:39:35,180 --> 00:39:38,810
So this decoding formulation now
brings it, at least, into
614
00:39:38,810 --> 00:39:42,780
the algebraic ground, brings
the whole decoding problem,
615
00:39:42,780 --> 00:39:45,072
makes it something
algebraically.
616
00:39:45,072 --> 00:39:49,220
But now the question becomes,
is that easy?
617
00:39:49,220 --> 00:39:50,890
Or can we do this?
618
00:39:50,890 --> 00:39:52,140
This problem here.
619
00:39:54,440 --> 00:39:56,670
Do you see any hope for
solving this problem?
620
00:40:02,270 --> 00:40:05,290
I guess the only
answer that --
621
00:40:05,290 --> 00:40:06,660
OK, anybody says no?
622
00:40:06,660 --> 00:40:10,072
Anybody does not see any hope?
623
00:40:10,072 --> 00:40:10,950
All right.
624
00:40:10,950 --> 00:40:11,750
This is great.
625
00:40:11,750 --> 00:40:14,940
You all see hope here.
626
00:40:14,940 --> 00:40:18,380
You all see hope here, which
seems to make you an
627
00:40:18,380 --> 00:40:20,166
opportunistic bunch.
628
00:40:20,166 --> 00:40:21,360
Not opportunistic.
629
00:40:21,360 --> 00:40:22,350
What's the word?
630
00:40:22,350 --> 00:40:22,930
Optimistic.
631
00:40:22,930 --> 00:40:24,180
Optimistic bunch.
632
00:40:26,470 --> 00:40:27,270
Let's put it like this.
633
00:40:27,270 --> 00:40:29,333
What is the problem
in solving this?
634
00:40:31,991 --> 00:40:34,270
It's not linear.
635
00:40:34,270 --> 00:40:35,890
You get the coefficients
of lambda.
636
00:40:35,890 --> 00:40:38,390
Multiply the coefficients
of f.
637
00:40:38,390 --> 00:40:44,900
That whole thing becomes a
nonlinear problem, where we
638
00:40:44,900 --> 00:40:51,490
say in the end, find the
solution to a set of
639
00:40:51,490 --> 00:40:57,400
polynomial equations in a field,
which is a multivariate
640
00:40:57,400 --> 00:41:00,390
polynomial equations, where the
coefficients of lambda and
641
00:41:00,390 --> 00:41:02,680
f are the variables.
642
00:41:02,680 --> 00:41:03,540
You can do that.
643
00:41:03,540 --> 00:41:06,400
You could use techniques like
Grobner basis or so, and you
644
00:41:06,400 --> 00:41:07,720
could do that.
645
00:41:07,720 --> 00:41:09,020
But this is very difficult.
646
00:41:09,020 --> 00:41:11,805
This is computationally
tedious.
647
00:41:15,710 --> 00:41:18,930
So is that clear why this is
nonlinear, and why this is
648
00:41:18,930 --> 00:41:20,780
hard to solve a nonlinear
problem here?
649
00:41:24,740 --> 00:41:27,830
If not, then you have to say
something now, or forever hold
650
00:41:27,830 --> 00:41:29,080
your peace.
651
00:41:36,880 --> 00:41:38,350
So what do we do with
hard problems?
652
00:41:41,820 --> 00:41:44,920
Once you take the optimization
classes, there's almost like a
653
00:41:44,920 --> 00:41:47,320
reflex, there is a relax time.
654
00:41:47,320 --> 00:41:49,870
We find the proper relaxation
of the problem.
655
00:41:49,870 --> 00:41:53,450
Now the proper relaxation of
this problem is the following.
656
00:42:00,690 --> 00:42:03,150
Decoding problem two.
657
00:42:03,150 --> 00:42:17,865
Find lambda of x of minimal
degree such that --
658
00:42:17,865 --> 00:42:21,760
it's almost the same,
almost the same --
659
00:42:21,760 --> 00:42:39,460
lambda fi yi minus h of xi is
0, where the degree of h is
660
00:42:39,460 --> 00:42:48,820
less than k plus
degree lambda.
661
00:42:48,820 --> 00:42:52,370
So all that we did from this
formulation, which would give
662
00:42:52,370 --> 00:42:55,560
us a clean solution to the whole
thing, right now, we
663
00:42:55,560 --> 00:43:00,350
multiply in this lambda which
gives here, it keeps the
664
00:43:00,350 --> 00:43:02,060
lambda times y.
665
00:43:02,060 --> 00:43:05,370
And here, we get a new
polynomial, lambda times f,
666
00:43:05,370 --> 00:43:11,800
which now has degree at most
k plus degree lambda.
667
00:43:11,800 --> 00:43:15,760
And then we say, let's instead
solve this problem.
668
00:43:15,760 --> 00:43:18,130
Let's solve this problem.
669
00:43:18,130 --> 00:43:32,800
In particular, the question now
becomes well, we do not
670
00:43:32,800 --> 00:43:35,000
require this anymore.
671
00:43:35,000 --> 00:43:39,870
In this relaxed formulation,
we do not require this.
672
00:43:39,870 --> 00:43:41,800
And that makes all
the difference.
673
00:43:41,800 --> 00:43:45,836
It makes a world of difference
because this one --
674
00:43:45,836 --> 00:43:49,470
look at it -- it's
a linear problem.
675
00:43:49,470 --> 00:43:50,760
It's a linear program.
676
00:43:50,760 --> 00:43:51,880
Why is it a linear problem?
677
00:43:51,880 --> 00:43:53,375
Do you see it's a
linear problem?
678
00:43:56,020 --> 00:44:00,180
Could you write down the
equation, the matrix equation?
679
00:44:00,180 --> 00:44:01,430
It's pretty straight, right?
680
00:44:04,690 --> 00:44:05,730
It's pretty straight.
681
00:44:05,730 --> 00:44:09,340
You could, for example,
write it like, here, a
682
00:44:09,340 --> 00:44:14,285
diagonal matrix yn.
683
00:44:16,790 --> 00:44:18,280
Here, you would get something.
684
00:44:26,688 --> 00:44:28,590
I think that seems
to be all right.
685
00:44:35,710 --> 00:44:39,070
And here, just the evaluation
of the h.
686
00:44:39,070 --> 00:45:00,330
So up to hk plus
degree lambda.
687
00:45:00,330 --> 00:45:03,070
That's a linear system
of equations.
688
00:45:03,070 --> 00:45:04,330
We can certainly solve this.
689
00:45:04,330 --> 00:45:08,340
Well, we do not know really
what the lambda is, what
690
00:45:08,340 --> 00:45:10,180
degree the lambda has.
691
00:45:10,180 --> 00:45:12,720
But we're just hypothesizing on
all the possible degrees.
692
00:45:15,920 --> 00:45:21,915
Well, we could say, OK, let's
assume the degree lambda is 0.
693
00:45:21,915 --> 00:45:24,740
It's a constant, which would
be the same as saying there
694
00:45:24,740 --> 00:45:27,520
are no errors.
695
00:45:27,520 --> 00:45:29,120
Then we can look at the
system of equations.
696
00:45:29,120 --> 00:45:30,120
Does it have a solution?
697
00:45:30,120 --> 00:45:31,380
Well, yes, no.
698
00:45:31,380 --> 00:45:34,300
If no, then we say, all right,
let's assume it's 1.
699
00:45:34,300 --> 00:45:35,370
Well, does it have a solution?
700
00:45:35,370 --> 00:45:36,250
Yes, no.
701
00:45:36,250 --> 00:45:36,860
And so on.
702
00:45:36,860 --> 00:45:38,110
Then we can move on.
703
00:45:41,480 --> 00:45:43,210
So we can solve this
relaxed problem.
704
00:45:46,610 --> 00:45:48,580
Does that help us?
705
00:45:48,580 --> 00:45:50,500
It's nice to solve a
relaxed problem.
706
00:45:50,500 --> 00:45:52,540
And in the end, we get two
vectors out of it, two
707
00:45:52,540 --> 00:45:57,620
polynomials, lambda and h.
708
00:45:57,620 --> 00:45:58,870
Does it really help us?
709
00:46:02,290 --> 00:46:06,635
Well, yes.
710
00:46:06,635 --> 00:46:08,390
Why?
711
00:46:08,390 --> 00:46:09,240
Because --
712
00:46:09,240 --> 00:46:10,490
let's put it like this.
713
00:46:12,930 --> 00:46:16,960
We could easily check
if this is true.
714
00:46:16,960 --> 00:46:20,860
Once we have our h, we can
easily check if this is true.
715
00:46:20,860 --> 00:46:25,760
And if it is true, then we
have solved this problem.
716
00:46:25,760 --> 00:46:28,430
If it is true, we have solved
this problem, which is the
717
00:46:28,430 --> 00:46:31,350
problem we wanted to solve.
718
00:46:31,350 --> 00:46:32,600
Good.
719
00:46:40,170 --> 00:46:41,870
So is that all we need
to know about this?
720
00:46:50,390 --> 00:46:51,950
We want to give guarantees.
721
00:46:51,950 --> 00:46:55,380
We want to give guarantees that
we correct up to so many
722
00:46:55,380 --> 00:46:56,991
errors, t errors, right?
723
00:46:59,580 --> 00:47:03,390
So we have to guarantee that if
there are not more than t
724
00:47:03,390 --> 00:47:08,600
errors, whatever t will turn
out to be, we can guarantee
725
00:47:08,600 --> 00:47:12,460
that A, we will find
a solution, and
726
00:47:12,460 --> 00:47:15,570
B, this will hold.
727
00:47:15,570 --> 00:47:17,815
So two things to prove.
728
00:47:17,815 --> 00:47:18,880
Is that clear?
729
00:47:18,880 --> 00:47:21,360
That we have to prove
those two things?
730
00:47:21,360 --> 00:47:24,020
So the first one first.
731
00:47:27,430 --> 00:47:34,970
When do we find a solution?
732
00:47:34,970 --> 00:47:36,465
And are we guaranteed
to find it?
733
00:47:41,200 --> 00:47:50,280
Can we guarantee the existence
of a solution?
734
00:47:55,400 --> 00:47:58,050
Well, when can we do that?
735
00:47:58,050 --> 00:48:00,390
Let's look at this.
736
00:48:00,390 --> 00:48:02,240
These are n constraints.
737
00:48:05,390 --> 00:48:09,350
This is a system of linear
equations with n constraints.
738
00:48:09,350 --> 00:48:17,420
If the total number of degrees
of freedom exceeds n, then we
739
00:48:17,420 --> 00:48:19,790
are left with something
non-trivial after we solve the
740
00:48:19,790 --> 00:48:21,060
system of equations.
741
00:48:21,060 --> 00:48:23,880
So what's the total number
of degrees of freedom?
742
00:48:26,760 --> 00:48:28,100
The number of degrees
of freedom --
743
00:48:33,100 --> 00:48:39,920
so we get the lambda as a degree
of freedom, so which is
744
00:48:39,920 --> 00:48:44,030
degree lambda plus 1.
745
00:48:44,030 --> 00:48:46,720
And the other one is plus --
746
00:48:49,510 --> 00:48:51,910
what is this one --
747
00:48:51,910 --> 00:48:58,930
plus k plus degree lambda.
748
00:48:58,930 --> 00:49:04,140
This is the total number of
degrees of freedom here.
749
00:49:04,140 --> 00:49:08,550
And the reason is that this
one should be minus 1.
750
00:49:08,550 --> 00:49:09,800
Sorry.
751
00:49:11,400 --> 00:49:13,320
So this is total number
of degrees of freedom.
752
00:49:18,505 --> 00:49:21,580
If this is greater than n,
then we can guarantee the
753
00:49:21,580 --> 00:49:23,445
existence of a solution,
a nontrivial solution.
754
00:49:23,445 --> 00:49:26,690
Then this thing will
have a solution.
755
00:49:26,690 --> 00:49:28,620
It's a homogeneous system
of equations.
756
00:49:28,620 --> 00:49:30,110
So the 0 is always a solution.
757
00:49:30,110 --> 00:49:33,200
But that's not much
good to us.
758
00:49:33,200 --> 00:49:35,458
So what do we get here?
759
00:49:35,458 --> 00:49:37,930
Degree lambda.
760
00:49:37,930 --> 00:49:44,580
To a degree lambda greater
than n minus k plus minus
761
00:49:44,580 --> 00:49:49,130
1 or n minus k.
762
00:49:52,470 --> 00:49:58,770
So the degree lambda greater
than n minus k over 2 -- does
763
00:49:58,770 --> 00:50:00,100
that remind you of
anything here?
764
00:50:04,770 --> 00:50:14,950
So this one is d
minus 1 over 2.
765
00:50:14,950 --> 00:50:16,700
So very interesting, right?
766
00:50:16,700 --> 00:50:20,460
Once upon a time, you learned
that if you make less than d/2
767
00:50:20,460 --> 00:50:23,760
errors, you can correct that.
768
00:50:23,760 --> 00:50:24,040
Very nice.
769
00:50:24,040 --> 00:50:26,780
It pops up here.
770
00:50:26,780 --> 00:50:29,520
It pops up here out
of the blue.
771
00:50:29,520 --> 00:50:32,260
The reason that it pops up here
is, of course, the same
772
00:50:32,260 --> 00:50:36,730
statement, that as long as we
stay within d/2 errors, we are
773
00:50:36,730 --> 00:50:38,580
guaranteed to be able
to decode this.
774
00:50:41,200 --> 00:50:42,030
So this is one.
775
00:50:42,030 --> 00:50:45,630
So we know this one was
the number of errors.
776
00:50:45,630 --> 00:50:48,540
If t is greater or equal
than this, then --
777
00:50:58,010 --> 00:51:01,220
let's forget about the t.
778
00:51:01,220 --> 00:51:03,810
If you proceed in this algorithm
hypothesizing the
779
00:51:03,810 --> 00:51:09,100
degrees of lambda, once we've
reached this number in the
780
00:51:09,100 --> 00:51:11,150
degree, there will
be a solution.
781
00:51:11,150 --> 00:51:12,650
And we don't have to go
further than that.
782
00:51:16,380 --> 00:51:18,190
So that's the first one.
783
00:51:18,190 --> 00:51:21,880
So the second thing we have
to prove is that --
784
00:51:21,880 --> 00:51:23,130
I shouldn't have done this --
785
00:51:29,190 --> 00:51:30,320
that for some t --
786
00:51:30,320 --> 00:51:30,784
Yeah?
787
00:51:30,784 --> 00:51:33,104
AUDIENCE: [INAUDIBLE]
788
00:51:33,104 --> 00:51:36,360
standard degree of freedom
or less constraints?
789
00:51:36,360 --> 00:51:38,310
PROFESSOR: You want to
guarantee a solution.
790
00:51:38,310 --> 00:51:41,750
If you have more constraints
than degrees of freedom, then,
791
00:51:41,750 --> 00:51:44,670
since it's homogeneous, you
usually would be stuck with a
792
00:51:44,670 --> 00:51:45,490
zero solution.
793
00:51:45,490 --> 00:51:49,520
Everything's 0, which
is no good to us.
794
00:51:49,520 --> 00:51:52,510
It solves this problem, but
it doesn't give us any
795
00:51:52,510 --> 00:51:55,305
information.
796
00:51:55,305 --> 00:51:56,622
Is that all right?
797
00:52:00,066 --> 00:52:02,772
AUDIENCE: Why does it have to be
the condition that degrees
798
00:52:02,772 --> 00:52:06,970
of freedom has to be greater
than the constraints?
799
00:52:06,970 --> 00:52:09,400
PROFESSOR: No, no, the
degrees of freedom --
800
00:52:09,400 --> 00:52:13,460
well, OK, it's true.
801
00:52:13,460 --> 00:52:16,580
We could get lucky.
802
00:52:16,580 --> 00:52:20,030
We could have redundancy in
this system of equations.
803
00:52:20,030 --> 00:52:24,780
And if we get lucky, that's
just for the better.
804
00:52:24,780 --> 00:52:29,260
And actually, you can show that
you do get lucky if very
805
00:52:29,260 --> 00:52:31,250
few errors happen.
806
00:52:31,250 --> 00:52:34,260
Then this would have low rank.
807
00:52:34,260 --> 00:52:35,370
You can show that.
808
00:52:35,370 --> 00:52:39,430
But short of knowing much,
we want to guarantee --
809
00:52:39,430 --> 00:52:42,380
I just want, at this point in
time, to guarantee that there
810
00:52:42,380 --> 00:52:44,370
is a solution.
811
00:52:44,370 --> 00:52:47,590
There is a non-zero solution to
this system of equations,
812
00:52:47,590 --> 00:52:50,710
and the degree of lambda
is not more than d
813
00:52:50,710 --> 00:52:53,460
minus 1 over 2.
814
00:52:53,460 --> 00:52:56,690
There is a solution with a
degree of lambda being upper
815
00:52:56,690 --> 00:52:58,324
bounded by this.
816
00:52:58,324 --> 00:52:59,800
AUDIENCE: So [INAUDIBLE]
817
00:52:59,800 --> 00:53:01,280
less constraints?
818
00:53:01,280 --> 00:53:02,530
PROFESSOR: Yeah, no, no.
819
00:53:06,550 --> 00:53:08,660
Once this is satisfied,
I guarantee
820
00:53:08,660 --> 00:53:10,260
you there is a solution.
821
00:53:10,260 --> 00:53:14,420
That means, the smallest
solution is guaranteed not to
822
00:53:14,420 --> 00:53:15,670
be larger than that.
823
00:53:19,090 --> 00:53:20,150
But there are, of course, many,
824
00:53:20,150 --> 00:53:21,570
many more larger solutions.
825
00:53:21,570 --> 00:53:25,723
There are many solutions of
larger degree here, which we
826
00:53:25,723 --> 00:53:27,550
are not interested in since
we are interested
827
00:53:27,550 --> 00:53:30,370
in the minimal degree.
828
00:53:30,370 --> 00:53:32,750
So this is an upper bound on
the minimal degree lambda.
829
00:53:37,200 --> 00:53:38,300
So now the other one.
830
00:53:38,300 --> 00:53:46,630
So now we want to make the
statement about this one here.
831
00:53:46,630 --> 00:53:52,990
When can we guarantee that our
relaxation didn't matter?
832
00:53:52,990 --> 00:53:56,930
Despite our relaxation, our
solution that we find that in
833
00:53:56,930 --> 00:54:00,110
the solution that we find
lambda divides h.
834
00:54:00,110 --> 00:54:03,430
How can we guarantee this?
835
00:54:03,430 --> 00:54:04,860
So how can we guarantee this?
836
00:54:04,860 --> 00:54:06,110
How can we guarantee this?
837
00:54:10,080 --> 00:54:20,310
Let's look at lambda xi
yi minus h of xi.
838
00:54:20,310 --> 00:54:24,610
And we know this is
0 for all xi.
839
00:54:24,610 --> 00:54:25,860
We know that.
840
00:54:29,210 --> 00:54:38,780
We know that this guy here can
actually be written as ci plus
841
00:54:38,780 --> 00:54:43,630
ei minus h of xi.
842
00:54:47,690 --> 00:54:50,040
This is just expanding
this guy.
843
00:54:50,040 --> 00:55:00,790
We also know that we can write
lambda xi times ci alone minus
844
00:55:00,790 --> 00:55:08,051
f of xi lambda xi.
845
00:55:08,051 --> 00:55:08,520
This is 0.
846
00:55:08,520 --> 00:55:10,932
We know that this is true too.
847
00:55:10,932 --> 00:55:12,780
AUDIENCE: For some f.
848
00:55:12,780 --> 00:55:13,320
PROFESSOR: For some f.
849
00:55:13,320 --> 00:55:17,220
The text is to f, so that
this is true too.
850
00:55:17,220 --> 00:55:22,500
Then let's just subtract
these two guys.
851
00:55:22,500 --> 00:55:25,480
Let's just subtract these
two things here.
852
00:55:25,480 --> 00:55:36,460
And then we know that lambda
xi times ei --
853
00:55:36,460 --> 00:55:38,250
so the first two cancel --
854
00:55:38,250 --> 00:55:51,646
minus h of xi minus So we
know this is true too.
855
00:55:51,646 --> 00:55:53,550
AUDIENCE: [INAUDIBLE].
856
00:55:53,550 --> 00:55:56,210
PROFESSOR: Yeah, sorry.
857
00:55:56,210 --> 00:55:57,460
Just in time.
858
00:56:01,220 --> 00:56:02,480
So what can we learn
from this?
859
00:56:02,480 --> 00:56:05,510
So what is the degree of this?
860
00:56:05,510 --> 00:56:07,780
What is the degree of this?
861
00:56:07,780 --> 00:56:09,570
Well, this guy here --
862
00:56:09,570 --> 00:56:10,820
we'll write it somewhere
else --
863
00:56:37,550 --> 00:56:47,320
well, this guy had degree h was
less than n minus k plus
864
00:56:47,320 --> 00:56:57,310
degree lambda less than
k plus degree lambda.
865
00:56:57,310 --> 00:57:00,760
That's because we set up
that problem that way.
866
00:57:00,760 --> 00:57:10,740
And we know that this
guy degree lambda.
867
00:57:13,780 --> 00:57:15,740
We know that.
868
00:57:15,740 --> 00:57:28,390
So this whole thing, let's call
it S. We know it's 0 for
869
00:57:28,390 --> 00:57:35,360
degree S less than
degree lambda.
870
00:57:39,080 --> 00:57:41,730
So why does that help us?
871
00:57:41,730 --> 00:57:44,740
Well, let's look
at the vector.
872
00:57:44,740 --> 00:57:48,060
Now let's look at all
the positions.
873
00:57:48,060 --> 00:57:53,380
Let's look at the vector where
we had, in the vector, we have
874
00:57:53,380 --> 00:57:56,770
lambda xi ei.
875
00:58:02,620 --> 00:58:05,480
And now the fundamental
question.
876
00:58:05,480 --> 00:58:09,450
What is the rate
of this vector?
877
00:58:09,450 --> 00:58:10,700
At most?
878
00:58:13,400 --> 00:58:15,147
What's the rate of
this guy at most?
879
00:58:18,883 --> 00:58:20,133
It's 12 seconds,
[UNINTELLIGIBLE]?
880
00:58:25,740 --> 00:58:28,860
Well, the rate of
this vector --
881
00:58:37,030 --> 00:58:40,410
it's definitely not more than
the rate of the error.
882
00:58:40,410 --> 00:58:44,260
Because every time the error
is 0, the rate drops out.
883
00:58:44,260 --> 00:58:45,510
That's at most t.
884
00:58:48,890 --> 00:58:52,660
What is the rate
of this vector?
885
00:58:52,660 --> 00:59:01,170
So here we have a vector on
the other side, S of xi, a
886
00:59:01,170 --> 00:59:04,240
vector on the other side.
887
00:59:04,240 --> 00:59:05,490
What's the rate of this guy?
888
00:59:08,790 --> 00:59:13,810
That's just the polynomial of
degree at most k plus degree
889
00:59:13,810 --> 00:59:15,640
lambda minus 1.
890
00:59:15,640 --> 00:59:29,940
So we have that the rate of this
vector is n minus k plus
891
00:59:29,940 --> 00:59:35,617
degree lambda minus 1 plus
1 because of the minus.
892
00:59:35,617 --> 00:59:39,230
AUDIENCE: Greater than
or equal to?
893
00:59:39,230 --> 00:59:41,660
PROFESSOR: It's greater
than or equal, sorry.
894
00:59:41,660 --> 00:59:43,580
Otherwise, I would have been in
trouble in a second here.
895
00:59:46,350 --> 00:59:47,800
Yeah, so what does that mean?
896
00:59:47,800 --> 00:59:51,710
So actually, this one is nice
to rewrite is equal to d n
897
00:59:51,710 --> 00:59:55,865
minus t plus 1 d --
898
00:59:55,865 --> 01:00:00,320
I really should have done it
like this in order not to --
899
01:00:00,320 --> 01:00:05,010
it's d minus degree lambda.
900
01:00:08,230 --> 01:00:09,550
So what can we learn
from that?
901
01:00:12,960 --> 01:00:19,300
So we know this is true
for all the positions.
902
01:00:19,300 --> 01:00:24,060
So if this is true for all
positions, then --
903
01:00:24,060 --> 01:00:30,070
so if d minus degree lambda --
904
01:00:30,070 --> 01:00:34,480
actually, this is t because
the rate was defined.
905
01:00:34,480 --> 01:00:37,250
t was the number of errors.
906
01:00:37,250 --> 01:00:39,830
And the error locator was just
defined to have degree t.
907
01:00:43,650 --> 01:00:45,390
Right?
908
01:00:45,390 --> 01:00:49,480
The error locator was just x
minus xi over all positions
909
01:00:49,480 --> 01:00:50,890
where we had an error, so there
910
01:00:50,890 --> 01:00:51,950
are t of those positions.
911
01:00:51,950 --> 01:00:55,550
The degree of lambda
is equal to t.
912
01:00:55,550 --> 01:00:56,490
So now we take this.
913
01:00:56,490 --> 01:01:07,410
If d minus t is greater than
t, so if the rate of this
914
01:01:07,410 --> 01:01:13,720
vector is greater than the rate
of this vector, then we
915
01:01:13,720 --> 01:01:18,030
have a problem because
that cannot be.
916
01:01:18,030 --> 01:01:19,840
Of course, by this identity,
the rate of these
917
01:01:19,840 --> 01:01:22,520
two vectors is equal.
918
01:01:22,520 --> 01:01:23,770
So what is the way out?
919
01:01:26,660 --> 01:01:27,550
What's the way out?
920
01:01:27,550 --> 01:01:28,800
AUDIENCE: [INAUDIBLE]
921
01:01:33,286 --> 01:01:33,770
PROFESSOR: Yeah.
922
01:01:33,770 --> 01:01:53,090
So if this is true, then S of
xi I claim has to be 0 and
923
01:01:53,090 --> 01:02:01,100
lambda of xi times ei has
to be 0 too for all i.
924
01:02:03,860 --> 01:02:06,460
That's the only way
out of this.
925
01:02:06,460 --> 01:02:08,760
Because, obviously,
this was allowed.
926
01:02:08,760 --> 01:02:11,760
If we really did find what we
wanted to find, namely, an
927
01:02:11,760 --> 01:02:15,530
error locator here, then
this vector --
928
01:02:15,530 --> 01:02:17,410
we said it has to
be less than t.
929
01:02:17,410 --> 01:02:18,570
It can be less.
930
01:02:18,570 --> 01:02:22,460
In particular, it can
be 0 if this is,
931
01:02:22,460 --> 01:02:24,710
indeed, an error locator.
932
01:02:24,710 --> 01:02:28,820
And if our relaxation
didn't matter --
933
01:02:28,820 --> 01:02:34,800
that means the h that we
find factors as that --
934
01:02:34,800 --> 01:02:38,480
if the relaxation didn't matter,
then S would be 0 too.
935
01:02:38,480 --> 01:02:39,830
So that is a fair solution.
936
01:02:39,830 --> 01:02:41,970
That's a possibility.
937
01:02:41,970 --> 01:02:48,450
And if d minus t is greater than
t, then this proves this
938
01:02:48,450 --> 01:02:51,300
is the only solution
that is feasible.
939
01:02:51,300 --> 01:02:54,180
That's the only solution
you have.
940
01:02:54,180 --> 01:03:03,480
So what that means is if t
less than t/2, then the
941
01:03:03,480 --> 01:03:20,040
relaxation doesn't matter and h
of xi is equal to lambda of
942
01:03:20,040 --> 01:03:21,568
xi times f of xi.
943
01:03:32,600 --> 01:03:35,040
So is that clear?
944
01:03:35,040 --> 01:03:44,380
That's two very simple, yet
nice ways to prove things.
945
01:03:44,380 --> 01:03:45,750
Here, we guarantee
the solution.
946
01:03:49,450 --> 01:03:51,610
Here, we guarantee
the solution.
947
01:03:51,610 --> 01:03:55,330
Here, we guarantee that solution
is correct, namely,
948
01:03:55,330 --> 01:03:59,760
if not too many errors happen,
if less than t/2 errors
949
01:03:59,760 --> 01:04:06,370
happens, then relaxing the
original problem here to this
950
01:04:06,370 --> 01:04:08,360
other form, which we
could solve, does
951
01:04:08,360 --> 01:04:11,690
not change the solution.
952
01:04:11,690 --> 01:04:12,940
That's what's proved there.
953
01:04:16,960 --> 01:04:21,270
But about one-third
looks puzzled.
954
01:04:21,270 --> 01:04:23,130
About half looks puzzled,
I would think.
955
01:04:29,490 --> 01:04:30,900
Half looks puzzled.
956
01:04:30,900 --> 01:04:33,870
Is there any way I can
explain that better?
957
01:04:33,870 --> 01:04:35,120
Think.
958
01:04:42,790 --> 01:04:46,980
Let's just go through
the steps quickly.
959
01:04:46,980 --> 01:04:50,640
We had problem number one.
960
01:04:50,640 --> 01:04:56,350
Problem number one, which is a
nonlinear problem, but you see
961
01:04:56,350 --> 01:04:59,170
that if you could solve
this, you could solve
962
01:04:59,170 --> 01:05:01,800
the decoding problem.
963
01:05:01,800 --> 01:05:03,760
So you see that.
964
01:05:03,760 --> 01:05:06,760
Anybody who doesn't see that?
965
01:05:06,760 --> 01:05:07,090
All right.
966
01:05:07,090 --> 01:05:08,340
You're smart guys.
967
01:05:11,130 --> 01:05:13,740
If we can solve problem number
one, we are home free.
968
01:05:13,740 --> 01:05:15,300
We have solved the
decoding problem.
969
01:05:15,300 --> 01:05:16,270
Fine, we cannot solve it.
970
01:05:16,270 --> 01:05:17,640
It's a nonlinear problem.
971
01:05:17,640 --> 01:05:21,110
Well, we can solve it in
exponential time, but that's
972
01:05:21,110 --> 01:05:23,410
little fun.
973
01:05:23,410 --> 01:05:24,320
So we relax it.
974
01:05:24,320 --> 01:05:28,730
We relax it into problem
number two.
975
01:05:28,730 --> 01:05:31,444
All that we do, we multiply
things out.
976
01:05:31,444 --> 01:05:37,510
And we do not require,
once we solve the
977
01:05:37,510 --> 01:05:38,760
problem, this anymore.
978
01:05:46,530 --> 01:05:48,490
Now we have solved
this problem.
979
01:05:48,490 --> 01:05:51,520
We have solved this linear
system of equations.
980
01:05:51,520 --> 01:05:59,640
And after doing so, we have
found lambda and h.
981
01:05:59,640 --> 01:06:02,470
They are lying on the table
and looking at us.
982
01:06:02,470 --> 01:06:03,610
Now what?
983
01:06:03,610 --> 01:06:04,820
Are they any good?
984
01:06:04,820 --> 01:06:08,950
In particular, since a priori we
cannot guarantee that this
985
01:06:08,950 --> 01:06:13,170
relaxation didn't completely
destroy everything.
986
01:06:13,170 --> 01:06:14,410
We have solved the system.
987
01:06:14,410 --> 01:06:17,040
Now those two things are lying
on the table, looking at us,
988
01:06:17,040 --> 01:06:19,650
and asking, what am I?
989
01:06:19,650 --> 01:06:23,380
And in general, if there's an
arbitrary amount of errors
990
01:06:23,380 --> 01:06:27,430
happening near the channel,
actually,
991
01:06:27,430 --> 01:06:29,340
they do not mean much.
992
01:06:29,340 --> 01:06:32,900
They do not mean much.
993
01:06:32,900 --> 01:06:38,286
But now I claim that, well, if
not too many errors happened,
994
01:06:38,286 --> 01:06:43,490
but if the number of errors is
bounded to be this, less than
995
01:06:43,490 --> 01:06:47,610
half the minimum distance, then,
actually, I claim it did
996
01:06:47,610 --> 01:06:49,870
not matter if we solved
the relaxation or
997
01:06:49,870 --> 01:06:52,260
the original problem.
998
01:06:52,260 --> 01:06:55,880
And the argument is
roughly this.
999
01:06:55,880 --> 01:06:58,135
It goes like this.
1000
01:06:58,135 --> 01:06:59,890
Here, we start.
1001
01:06:59,890 --> 01:07:01,460
We have solved this.
1002
01:07:01,460 --> 01:07:06,370
We have two polynomials lambda
and h, so that this is true
1003
01:07:06,370 --> 01:07:07,620
for all xi.
1004
01:07:10,380 --> 01:07:12,440
We know that we can write
it like this.
1005
01:07:12,440 --> 01:07:15,290
That's just by definition
of yi, just
1006
01:07:15,290 --> 01:07:18,980
expanding the yi into this.
1007
01:07:18,980 --> 01:07:22,400
We know that this is true by
the definition of the code.
1008
01:07:22,400 --> 01:07:27,500
The ci is the evaluation of
f, of some polynomial f.
1009
01:07:27,500 --> 01:07:31,770
So we can write this just by
definition of the code.
1010
01:07:31,770 --> 01:07:36,430
So once we have these two guys
here, we can subtract them
1011
01:07:36,430 --> 01:07:37,680
[UNINTELLIGIBLE] here.
1012
01:07:39,930 --> 01:07:44,500
So we know that we have solved
the following problem.
1013
01:07:44,500 --> 01:07:49,000
We have found lambda and h.
1014
01:07:49,000 --> 01:07:57,580
So that there is guaranteed to
exist the polynomial f, so
1015
01:07:57,580 --> 01:08:02,580
that this whole thing, namely,
S of xi, that S is a
1016
01:08:02,580 --> 01:08:04,470
polynomial of degree
at most --
1017
01:08:04,470 --> 01:08:06,130
what did we have --
1018
01:08:06,130 --> 01:08:09,790
k plus degree lambda minus 1.
1019
01:08:12,880 --> 01:08:18,550
So that's a semi-hairy
step here.
1020
01:08:18,550 --> 01:08:24,700
Is that clear that we can
guarantee the existence of a
1021
01:08:24,700 --> 01:08:34,340
polynomial S of degree at most
k plus degree lambda minus 1?
1022
01:08:34,340 --> 01:08:38,320
So that this equation holds.
1023
01:08:43,229 --> 01:08:45,609
Once we have solved this,
we can guarantee the
1024
01:08:45,609 --> 01:08:46,890
existence of this.
1025
01:08:46,890 --> 01:08:48,939
That's what we're saying.
1026
01:08:48,939 --> 01:08:51,029
We can guarantee the
existence of this.
1027
01:08:51,029 --> 01:08:53,819
So now look at this.
1028
01:08:53,819 --> 01:08:58,319
If you write this out for all
i's and put it in a vector,
1029
01:08:58,319 --> 01:09:00,620
what's the rate of
this vector?
1030
01:09:00,620 --> 01:09:05,630
Well, it's at most t because
all the other e's are 0.
1031
01:09:05,630 --> 01:09:08,890
If lambda is an error
locator, it is 0.
1032
01:09:08,890 --> 01:09:10,740
But we do not know that yet.
1033
01:09:10,740 --> 01:09:12,330
All we know, it's at most t.
1034
01:09:15,149 --> 01:09:18,939
This is on this side, so that
vector has a rate at most t.
1035
01:09:18,939 --> 01:09:25,660
On this side, the rate of this
vector is at least this.
1036
01:09:25,660 --> 01:09:28,939
Just by evaluating a polynomial
of this degree,
1037
01:09:28,939 --> 01:09:31,193
this is the maximum number
of 0's we can get.
1038
01:09:34,350 --> 01:09:41,740
So now we have two equalities,
this one and this one.
1039
01:09:41,740 --> 01:09:45,330
But obviously, the two vectors
must be the same.
1040
01:09:45,330 --> 01:09:49,880
So how can these two vectors be
the same and still satisfy
1041
01:09:49,880 --> 01:09:53,250
these two inequalities?
1042
01:09:53,250 --> 01:09:53,950
Good question.
1043
01:09:53,950 --> 01:09:56,320
How can they be the same and
still satisfy this inequality?
1044
01:10:10,720 --> 01:10:15,070
If t is less than d/2, then the
rate of this vector would
1045
01:10:15,070 --> 01:10:18,000
have to be larger than
the rate of this.
1046
01:10:18,000 --> 01:10:19,250
If they are non-zero.
1047
01:10:22,530 --> 01:10:25,030
If they are non-zero, this would
have to be larger than
1048
01:10:25,030 --> 01:10:30,250
this because then d minus t
would be greater than t.
1049
01:10:30,250 --> 01:10:32,340
If this is true, this
implies this.
1050
01:10:36,890 --> 01:10:40,980
If this is true, this implies
this which implies that the
1051
01:10:40,980 --> 01:10:44,270
rate of this vector would be
larger than the rate of this
1052
01:10:44,270 --> 01:10:45,670
vector if they are non-zero.
1053
01:10:48,840 --> 01:10:50,890
But how can that be?
1054
01:10:50,890 --> 01:10:53,210
Answer is cannot.
1055
01:10:53,210 --> 01:10:56,080
Cannot be, hence,
they must be 0.
1056
01:10:56,080 --> 01:11:00,150
Both vectors must be 0
completely, which means this
1057
01:11:00,150 --> 01:11:02,250
is an error locator.
1058
01:11:02,250 --> 01:11:08,180
Because otherwise, this wouldn't
be 0, and this one --
1059
01:11:08,180 --> 01:11:09,430
where did I write it?
1060
01:11:11,910 --> 01:11:13,160
Somewhere I wrote it.
1061
01:11:18,640 --> 01:11:21,292
Where did I write it?
1062
01:11:21,292 --> 01:11:22,750
Oh, here.
1063
01:11:22,750 --> 01:11:27,300
So this S has to be 0 too.
1064
01:11:27,300 --> 01:11:33,640
If this S is 0, then h of xi is
exactly this, means factors
1065
01:11:33,640 --> 01:11:36,870
in the way you want it to.
1066
01:11:36,870 --> 01:11:40,270
So that's all I can say.
1067
01:11:40,270 --> 01:11:43,810
I could say it again, but it's
exactly the same words.
1068
01:11:43,810 --> 01:11:47,324
And there's a limited benefit
to even the repetition code.
1069
01:11:50,290 --> 01:11:51,880
So beautiful, right?
1070
01:11:51,880 --> 01:11:54,750
We have brought down the entire
decoding problem for
1071
01:11:54,750 --> 01:12:01,300
Reed-Solomon codes to solving a
linear system of equations,
1072
01:12:01,300 --> 01:12:06,940
namely, this one here or this
one in short form, which,
1073
01:12:06,940 --> 01:12:11,130
well, it's no problem at all in
the grand scheme of things.
1074
01:12:11,130 --> 01:12:13,250
And that's the other thing that
makes Reed-Solomon codes
1075
01:12:13,250 --> 01:12:14,080
so beautiful.
1076
01:12:14,080 --> 01:12:17,674
They're access encoding, they're
access decoding,
1077
01:12:17,674 --> 01:12:19,370
they're everything
that we want.
1078
01:12:35,380 --> 01:12:38,660
Let me do one more thing about
the decoding just to bring it
1079
01:12:38,660 --> 01:12:42,850
down a little bit, to talk a
little bit about complexity.
1080
01:12:42,850 --> 01:12:50,560
Solving this linear system of
equations has been subject to
1081
01:12:50,560 --> 01:12:56,850
research for 30 years,
40 years.
1082
01:12:56,850 --> 01:13:01,520
So it started out with an
algorithm which essentially
1083
01:13:01,520 --> 01:13:04,976
solved that linear
system directly.
1084
01:13:04,976 --> 01:13:08,030
It was formulated a
bit different, but
1085
01:13:08,030 --> 01:13:08,680
that's what it is.
1086
01:13:08,680 --> 01:13:08,980
It's called the
1087
01:13:08,980 --> 01:13:10,750
Peterson-Gorenstein-Zierler algorithm.
1088
01:13:14,560 --> 01:13:20,850
They realized it was a
polynomial time decoding
1089
01:13:20,850 --> 01:13:23,500
algorithm, a nice decoding
algorithm.
1090
01:13:23,500 --> 01:13:24,060
Then Berlekamp --
1091
01:13:24,060 --> 01:13:25,320
I should write down the name.
1092
01:13:30,190 --> 01:13:31,760
Berlekamp came up with a fast
1093
01:13:31,760 --> 01:13:33,420
algorithm and square algorithm.
1094
01:13:40,030 --> 01:13:44,700
Massey had his own formulation
of that algorithm, which was a
1095
01:13:44,700 --> 01:13:46,095
bit more streamlined I think.
1096
01:13:48,810 --> 01:13:53,020
Then there was a later version,
Berlekamp-Welch.
1097
01:13:58,230 --> 01:14:01,070
The complexity of these
algorithms is all roughly the
1098
01:14:01,070 --> 01:14:03,920
same, is all n squared roughly,
1099
01:14:03,920 --> 01:14:06,430
which solved this here.
1100
01:14:06,430 --> 01:14:08,910
And then there's
roughly nothing
1101
01:14:08,910 --> 01:14:10,280
happening for 30 years.
1102
01:14:13,170 --> 01:14:21,630
And after 30 years, then Madhu
Sudan made the next serious
1103
01:14:21,630 --> 01:14:25,820
dent in the decoding history
of Reed-Solomon codes.
1104
01:14:25,820 --> 01:14:32,885
So he found a way to solve this
problem even beyond half
1105
01:14:32,885 --> 01:14:35,700
the minimum distance.
1106
01:14:35,700 --> 01:14:41,230
And in hindsight, it's a very
nice and very simple trick
1107
01:14:41,230 --> 01:14:42,480
that he used.
1108
01:14:46,160 --> 01:14:54,945
So we started with
the following.
1109
01:14:54,945 --> 01:15:03,490
We started that, well, if we
have no errors, then the pairs
1110
01:15:03,490 --> 01:15:13,110
of points xi, yi lie
on this curve.
1111
01:15:13,110 --> 01:15:16,940
That's another way to formulate
what we said that yi
1112
01:15:16,940 --> 01:15:20,760
minus f of xi has to be 0.
1113
01:15:20,760 --> 01:15:23,480
We said, well, if there are no
errors, all the points that we
1114
01:15:23,480 --> 01:15:26,260
receive lie on this curve.
1115
01:15:26,260 --> 01:15:31,300
Because there are errors, we
have to multiply this with an
1116
01:15:31,300 --> 01:15:39,570
error locator and say this
is 0 for all xi, yi.
1117
01:15:39,570 --> 01:15:41,430
So this was problem
number one.
1118
01:15:41,430 --> 01:15:57,280
The relaxed form was lambda
xy minus h of x 0 xi, yi.
1119
01:15:57,280 --> 01:15:59,270
That's the way we do it.
1120
01:15:59,270 --> 01:16:00,690
So what did Madhu do?
1121
01:16:00,690 --> 01:16:01,330
Very clever.
1122
01:16:01,330 --> 01:16:06,490
He said, all that we have to do
is annihilate the effect of
1123
01:16:06,490 --> 01:16:09,380
the error right in this.
1124
01:16:09,380 --> 01:16:12,070
The whole reason for that lambda
was to annihilate --
1125
01:16:12,070 --> 01:16:16,270
so to take out the error
influence out of this
1126
01:16:16,270 --> 01:16:20,800
interpolation formula, to allow
for a few errors to
1127
01:16:20,800 --> 01:16:23,180
happen, which we can
put in lambda.
1128
01:16:23,180 --> 01:16:27,520
Well, Madhu said, well, what
about we take a polynomial in
1129
01:16:27,520 --> 01:16:28,770
two variables?
1130
01:16:30,570 --> 01:16:36,790
A polynomial in two variables,
then same thing.
1131
01:16:36,790 --> 01:16:43,030
If no errors happen, then all
the points xi, yi will lie on
1132
01:16:43,030 --> 01:16:44,580
that curve.
1133
01:16:44,580 --> 01:16:50,690
If a few errors happen, then
let's find a lambda xy, two
1134
01:16:50,690 --> 01:16:55,790
variables of some minimal
degree, some very small degree
1135
01:16:55,790 --> 01:16:57,715
so that this is still
satisfied.
1136
01:17:02,082 --> 01:17:04,420
And the problem is entirely
the same.
1137
01:17:07,820 --> 01:17:12,420
And this one, you cannot
solve either.
1138
01:17:12,420 --> 01:17:14,160
You cannot solve either.
1139
01:17:14,160 --> 01:17:19,950
But again, you can solve
the relaxation minus --
1140
01:17:27,550 --> 01:17:29,280
again, you can solve
the relaxation.
1141
01:17:29,280 --> 01:17:31,890
This is, again, a linear
system of equations.
1142
01:17:31,890 --> 01:17:33,830
And the coefficients of
lambda and psi now.
1143
01:17:36,960 --> 01:17:40,020
Once you solve this linear
system of equations --
1144
01:17:40,020 --> 01:17:43,565
actually, this one you can more
handily write simply --
1145
01:17:43,565 --> 01:17:46,270
now there is no way to
distinguish the y anymore
1146
01:17:46,270 --> 01:17:50,090
since both sides anyway
depend on y.
1147
01:17:50,090 --> 01:17:56,590
Find a polynomial in two
variables such that this is 0
1148
01:17:56,590 --> 01:17:59,930
for all xi, yi.
1149
01:17:59,930 --> 01:18:02,030
This is his central problem.
1150
01:18:02,030 --> 01:18:03,160
This is his relaxation.
1151
01:18:03,160 --> 01:18:05,350
Find a polynomial in two
variables, which he
1152
01:18:05,350 --> 01:18:06,600
evaluates to 0.
1153
01:18:09,140 --> 01:18:15,440
And then he has, essentially,
the same proofs we have here,
1154
01:18:15,440 --> 01:18:20,360
a bit more technical,
but not much.
1155
01:18:20,360 --> 01:18:22,710
I'm sure you can come up with
this if you sit down at home.
1156
01:18:26,930 --> 01:18:27,610
Let's put it like this.
1157
01:18:27,610 --> 01:18:29,180
There's no heavy machinery
in it.
1158
01:18:29,180 --> 01:18:30,870
There's no heavy math in it.
1159
01:18:30,870 --> 01:18:33,710
There's a lot of being clever
in it, but there's no heavy
1160
01:18:33,710 --> 01:18:34,960
math in it.
1161
01:18:40,690 --> 01:18:52,280
He can now guarantee that q of
xy, if t is less than n minus
1162
01:18:52,280 --> 01:18:55,700
square root of 2k --
1163
01:18:55,700 --> 01:18:57,570
is that right --
1164
01:18:57,570 --> 01:19:06,280
2kn, then you can guarantee
that y minus fx is
1165
01:19:06,280 --> 01:19:09,420
a factor q of xy.
1166
01:19:09,420 --> 01:19:12,736
The same thing we wanted
to guarantee.
1167
01:19:12,736 --> 01:19:19,170
And like I said, the proof is
very clever, but no heavy
1168
01:19:19,170 --> 01:19:19,830
machinery in it.
1169
01:19:19,830 --> 01:19:22,176
It's no heavy algebraic
geometry or any of
1170
01:19:22,176 --> 01:19:23,426
this stuff in that.
1171
01:19:25,940 --> 01:19:29,110
It's high school algebra.
1172
01:19:29,110 --> 01:19:34,200
Well, freshman college
algebra.
1173
01:19:34,200 --> 01:19:35,460
So that's what happens here.
1174
01:19:39,056 --> 01:19:41,310
It took 30 years and a computer
scientist to solve
1175
01:19:41,310 --> 01:19:42,560
that problem.
1176
01:19:50,380 --> 01:19:55,110
That was not all I wanted
to say, but that's
1177
01:19:55,110 --> 01:19:57,425
all I have time for.
1178
01:19:57,425 --> 01:19:59,720
There's one minute left, so
there's no point in starting
1179
01:19:59,720 --> 01:20:01,060
something now.
1180
01:20:01,060 --> 01:20:02,603
Do you have any questions
about any of this?
1181
01:20:08,882 --> 01:20:14,640
I should say that this 2 one can
get rid of, but that takes
1182
01:20:14,640 --> 01:20:15,890
a little bit more machinery.
1183
01:20:18,330 --> 01:20:20,785
The 2 one can get rid of, but
that's a bit more heavy.
1184
01:20:24,544 --> 01:20:25,040
All right.
1185
01:20:25,040 --> 01:20:27,530
So thanks so much.
1186
01:20:27,530 --> 01:20:28,910
That's it.
1187
01:20:28,910 --> 01:20:30,160
That's it.