videos/02-algo2.srt
author Christian Urban <christian.urban@kcl.ac.uk>
Sat, 03 Oct 2020 00:51:47 +0100
changeset 769 b153de5339bc
child 772 b1a8ef39cb35
permissions -rw-r--r--
updated
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
769
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     1
1
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     2
00:00:06,020 --> 00:00:09,945
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     3
They come back after
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     4
this disappointment
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     5
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     6
2
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     7
00:00:09,945 --> 00:00:14,115
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     8
and case of over promising
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
     9
and under achieving.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    10
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    11
3
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    12
00:00:14,115 --> 00:00:17,295
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    13
Let's have a look whether
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    14
we can recover from that.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    15
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    16
4
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    17
00:00:17,295 --> 00:00:20,535
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    18
So here's one problem.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    19
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    20
5
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    21
00:00:20,535 --> 00:00:23,790
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    22
Then we looked at this end
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    23
times vk expression and
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    24
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    25
6
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    26
00:00:23,790 --> 00:00:27,330
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    27
be able to represent
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    28
that directly.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    29
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    30
7
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    31
00:00:27,330 --> 00:00:31,275
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    32
We had two represented as a
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    33
sequence record expression.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    34
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    35
8
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    36
00:00:31,275 --> 00:00:32,850
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    37
So we expanded it.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    38
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    39
9
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    40
00:00:32,850 --> 00:00:36,510
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    41
So times one would be just a,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    42
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    43
10
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    44
00:00:36,510 --> 00:00:40,595
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    45
t, times two would
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    46
be a, and so on.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    47
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    48
11
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    49
00:00:40,595 --> 00:00:43,535
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    50
And so you can see if
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    51
you go already to 13,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    52
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    53
12
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    54
00:00:43,535 --> 00:00:47,960
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    55
N equals 13, the record
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    56
expression becomes quite large.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    57
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    58
13
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    59
00:00:47,960 --> 00:00:52,865
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    60
And now the functions
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    61
nullable and also derivative.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    62
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    63
14
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    64
00:00:52,865 --> 00:00:56,360
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    65
They need to traverse
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    66
this reg expression.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    67
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    68
15
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    69
00:00:56,360 --> 00:00:59,060
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    70
Remember this tree in sometimes
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    71
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    72
16
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    73
00:00:59,060 --> 00:01:01,820
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    74
they have to traverse
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    75
that even several times.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    76
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    77
17
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    78
00:01:01,820 --> 00:01:04,535
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    79
So that will slow
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    80
down the algorithm.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    81
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    82
18
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    83
00:01:04,535 --> 00:01:08,150
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    84
And in particular, because
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    85
our first reg expression was
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    86
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    87
19
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    88
00:01:08,150 --> 00:01:11,840
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    89
actually not just a bot
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    90
a plus one. So b hat.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    91
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    92
20
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    93
00:01:11,840 --> 00:01:14,330
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    94
In the case of 13,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    95
we had a plus one,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    96
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    97
21
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    98
00:01:14,330 --> 00:01:17,330
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
    99
a plus one a plus born 13 times.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   100
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   101
22
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   102
00:01:17,330 --> 00:01:20,150
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   103
And this reg
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   104
expression just grows,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   105
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   106
23
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   107
00:01:20,150 --> 00:01:25,475
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   108
stay in number n. Just to
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   109
show you this also encode,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   110
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   111
24
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   112
00:01:25,475 --> 00:01:28,115
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   113
I'm Stern, This File rewarm
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   114
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   115
25
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   116
00:01:28,115 --> 00:01:30,920
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   117
and D and I have a size function.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   118
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   119
26
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   120
00:01:30,920 --> 00:01:33,140
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   121
The size function takes
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   122
a regular expression as
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   123
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   124
27
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   125
00:01:33,140 --> 00:01:36,215
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   126
argument and produces in teacher.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   127
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   128
28
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   129
00:01:36,215 --> 00:01:39,980
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   130
And essentially it takes
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   131
this rec expression scene as
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   132
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   133
29
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   134
00:01:39,980 --> 00:01:44,045
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   135
a tree and count how many
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   136
nodes are in this tree.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   137
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   138
30
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   139
00:01:44,045 --> 00:01:49,490
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   140
And so if I take this even
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   141
one reg expression, this one,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   142
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   143
31
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   144
00:01:49,490 --> 00:01:52,160
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   145
and increase now this n. So you
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   146
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   147
32
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   148
00:01:52,160 --> 00:01:54,680
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   149
can already see
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   150
for any cross one,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   151
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   152
33
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   153
00:01:54,680 --> 00:01:56,540
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   154
the size of this
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   155
record expression is
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   156
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   157
34
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   158
00:01:56,540 --> 00:01:59,615
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   159
five and you see it
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   160
slowly increases.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   161
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   162
35
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   163
00:01:59,615 --> 00:02:02,150
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   164
And this 20 n equals 20.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   165
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   166
36
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   167
00:02:02,150 --> 00:02:07,100
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   168
The size of this record
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   169
expression is SMOW already a 119.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   170
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   171
37
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   172
00:02:07,100 --> 00:02:10,145
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   173
So now the interesting
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   174
line as this one.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   175
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   176
38
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   177
00:02:10,145 --> 00:02:13,295
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   178
Remember it when we
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   179
built the derivative,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   180
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   181
39
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   182
00:02:13,295 --> 00:02:17,150
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   183
very often parts of a reg
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   184
expression gets copied.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   185
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   186
40
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   187
00:02:17,150 --> 00:02:19,280
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   188
So if you have like EVA,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   189
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   190
41
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   191
00:02:19,280 --> 00:02:22,325
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   192
one of 2019 nodes,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   193
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   194
42
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   195
00:02:22,325 --> 00:02:25,475
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   196
now this will be often copied.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   197
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   198
43
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   199
00:02:25,475 --> 00:02:31,475
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   200
And we want to see what's the
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   201
resulting tree look like,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   202
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   203
44
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   204
00:02:31,475 --> 00:02:32,780
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   205
how many nodes it has.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   206
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   207
45
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   208
00:02:32,780 --> 00:02:34,985
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   209
So I take here either one of 20
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   210
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   211
46
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   212
00:02:34,985 --> 00:02:38,405
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   213
and the derivative
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   214
according to 20 a's.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   215
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   216
47
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   217
00:02:38,405 --> 00:02:41,820
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   218
And just have a look
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   219
what the size is.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   220
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   221
48
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   222
00:02:43,210 --> 00:02:45,680
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   223
Okay, that takes away.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   224
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   225
49
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   226
00:02:45,680 --> 00:02:48,410
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   227
You see now this rec expression,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   228
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   229
50
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   230
00:02:48,410 --> 00:02:52,280
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   231
the derivative has already
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   232
8 million plus nodes.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   233
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   234
51
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   235
00:02:52,280 --> 00:02:55,400
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   236
And now nullable and
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   237
derivative have to
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   238
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   239
52
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   240
00:02:55,400 --> 00:02:58,430
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   241
traverse these trees with
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   242
a million plus nodes.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   243
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   244
53
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   245
00:02:58,430 --> 00:03:01,400
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   246
So it's no wonder
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   247
that this is slow.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   248
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   249
54
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   250
00:03:01,400 --> 00:03:03,860
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   251
The first thing we
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   252
can try to mitigate
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   253
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   254
55
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   255
00:03:03,860 --> 00:03:06,350
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   256
this explosion problem is to
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   257
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   258
56
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   259
00:03:06,350 --> 00:03:09,050
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   260
have an explicit and
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   261
times reg expression.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   262
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   263
57
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   264
00:03:09,050 --> 00:03:11,600
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   265
So instead of expanding
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   266
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   267
58
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   268
00:03:11,600 --> 00:03:13,415
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   269
it to the sequence
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   270
reg expression,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   271
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   272
59
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   273
00:03:13,415 --> 00:03:17,510
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   274
let's just have a single
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   275
wreck expression and times,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   276
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   277
60
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   278
00:03:17,510 --> 00:03:20,540
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   279
which takes an expression and
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   280
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   281
61
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   282
00:03:20,540 --> 00:03:24,470
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   283
a number and keeps that
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   284
regular expression Small.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   285
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   286
62
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   287
00:03:24,470 --> 00:03:27,095
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   288
I'm here in the fire V2,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   289
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   290
63
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   291
00:03:27,095 --> 00:03:29,090
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   292
which is also on Keats.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   293
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   294
64
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   295
00:03:29,090 --> 00:03:32,570
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   296
And the only change I made
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   297
is I added explicitly
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   298
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   299
65
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   300
00:03:32,570 --> 00:03:33,860
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   301
a wrecker expression for
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   302
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   303
66
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   304
00:03:33,860 --> 00:03:36,770
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   305
N times the optional
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   306
reg expression.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   307
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   308
67
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   309
00:03:36,770 --> 00:03:39,920
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   310
Very leaf out at the
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   311
moment because this a
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   312
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   313
68
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   314
00:03:39,920 --> 00:03:41,975
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   315
optional is represented as
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   316
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   317
69
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   318
00:03:41,975 --> 00:03:44,645
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   319
a plus one and doesn't
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   320
explain too much.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   321
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   322
70
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   323
00:03:44,645 --> 00:03:47,375
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   324
The really the culprit
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   325
is this n times.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   326
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   327
71
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   328
00:03:47,375 --> 00:03:51,095
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   329
And instead of expanding
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   330
it n times, which has,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   331
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   332
72
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   333
00:03:51,095 --> 00:03:54,275
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   334
take here a wreck expression
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   335
and a natural number,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   336
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   337
73
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   338
00:03:54,275 --> 00:03:56,960
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   339
which says how many times
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   340
it should be repeated.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   341
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   342
74
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   343
00:03:56,960 --> 00:03:59,165
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   344
And in this week we
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   345
can keep it small.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   346
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   347
75
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   348
00:03:59,165 --> 00:04:01,370
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   349
But by adding that
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   350
reg expression,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   351
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   352
76
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   353
00:04:01,370 --> 00:04:05,150
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   354
we now have to think about
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   355
cases for nullable and
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   356
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   357
77
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   358
00:04:05,150 --> 00:04:07,340
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   359
derivative so that we have
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   360
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   361
78
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   362
00:04:07,340 --> 00:04:10,205
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   363
to now calculate next
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   364
what they look like.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   365
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   366
79
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   367
00:04:10,205 --> 00:04:14,060
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   368
We can actually
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   369
calculate what the rule
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   370
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   371
80
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   372
00:04:14,060 --> 00:04:17,525
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   373
for nullable should be from
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   374
how we defined it earlier.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   375
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   376
81
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   377
00:04:17,525 --> 00:04:19,580
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   378
Remember, if you have
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   379
a regular expression,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   380
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   381
82
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   382
00:04:19,580 --> 00:04:21,980
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   383
R and B take in
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   384
times of this are,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   385
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   386
83
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   387
00:04:21,980 --> 00:04:25,220
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   388
then indicates if n equals 0,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   389
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   390
84
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   391
00:04:25,220 --> 00:04:28,130
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   392
we find that as the
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   393
one reg expression.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   394
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   395
85
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   396
00:04:28,130 --> 00:04:30,380
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   397
If n equals one,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   398
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   399
86
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   400
00:04:30,380 --> 00:04:32,495
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   401
it will be just a
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   402
single copy of on.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   403
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   404
87
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   405
00:04:32,495 --> 00:04:33,725
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   406
If n equals two,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   407
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   408
88
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   409
00:04:33,725 --> 00:04:35,270
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   410
it will be two copies.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   411
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   412
89
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   413
00:04:35,270 --> 00:04:39,260
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   414
Sequence if three, we have
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   415
three copies and so on.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   416
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   417
90
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   418
00:04:39,260 --> 00:04:41,390
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   419
Now we have to
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   420
somehow characterize
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   421
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   422
91
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   423
00:04:41,390 --> 00:04:44,285
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   424
when these cases all nullable.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   425
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   426
92
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   427
00:04:44,285 --> 00:04:47,810
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   428
Well, if n equals 0,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   429
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   430
93
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   431
00:04:47,810 --> 00:04:49,850
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   432
then this will be defined as one,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   433
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   434
94
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   435
00:04:49,850 --> 00:04:52,100
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   436
so one can match
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   437
the empty string.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   438
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   439
95
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   440
00:04:52,100 --> 00:04:54,785
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   441
So that should be
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   442
definitely true.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   443
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   444
96
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   445
00:04:54,785 --> 00:04:57,725
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   446
Okay, if any cross one,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   447
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   448
97
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   449
00:04:57,725 --> 00:05:00,470
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   450
when can this reg expression
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   451
match the empty string?
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   452
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   453
98
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   454
00:05:00,470 --> 00:05:02,000
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   455
So vent should be nullable.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   456
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   457
99
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   458
00:05:02,000 --> 00:05:07,535
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   459
Well, if nullable of our holes,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   460
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   461
100
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   462
00:05:07,535 --> 00:05:09,860
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   463
okay, so if I can match
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   464
the empty string,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   465
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   466
101
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   467
00:05:09,860 --> 00:05:12,110
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   468
then we can match
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   469
the empty string.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   470
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   471
102
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   472
00:05:12,110 --> 00:05:14,870
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   473
When can this regular expression
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   474
match the empty string?
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   475
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   476
103
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   477
00:05:14,870 --> 00:05:16,265
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   478
So these are now two copies of
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   479
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   480
104
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   481
00:05:16,265 --> 00:05:20,690
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   482
our well-posed copies need
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   483
to match the empty string.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   484
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   485
105
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   486
00:05:20,690 --> 00:05:22,820
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   487
So again, we have to ask
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   488
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   489
106
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   490
00:05:22,820 --> 00:05:25,774
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   491
both of them need to be nullable.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   492
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   493
107
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   494
00:05:25,774 --> 00:05:28,520
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   495
Ok? Similarly, in the third case,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   496
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   497
108
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   498
00:05:28,520 --> 00:05:30,710
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   499
all three copies need to be
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   500
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   501
109
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   502
00:05:30,710 --> 00:05:33,230
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   503
able to match the empty
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   504
string. Men, is that the case?
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   505
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   506
110
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   507
00:05:33,230 --> 00:05:38,360
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   508
Well, if nullable of
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   509
our holes and so on.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   510
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   511
111
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   512
00:05:38,360 --> 00:05:48,754
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   513
So we can actually define that
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   514
if n equals 0, then true.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   515
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   516
112
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   517
00:05:48,754 --> 00:05:56,045
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   518
Else we have to ask with
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   519
nullable of our holes.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   520
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   521
113
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   522
00:05:56,045 --> 00:05:58,550
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   523
So that will be the clause we
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   524
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   525
114
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   526
00:05:58,550 --> 00:06:01,625
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   527
have to implement for
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   528
n times and nullable.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   529
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   530
115
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   531
00:06:01,625 --> 00:06:04,280
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   532
Deriving the definition for
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   533
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   534
116
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   535
00:06:04,280 --> 00:06:06,920
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   536
the derivative of the n terms
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   537
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   538
117
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   539
00:06:06,920 --> 00:06:10,175
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   540
reg expression.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   541
It's not that easy.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   542
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   543
118
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   544
00:06:10,175 --> 00:06:12,755
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   545
So we have to look again
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   546
how it was defined
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   547
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   548
119
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   549
00:06:12,755 --> 00:06:16,010
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   550
earlier and we somehow
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   551
have to spot a pattern.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   552
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   553
120
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   554
00:06:16,010 --> 00:06:18,380
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   555
The voice, our
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   556
algorithm will be again
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   557
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   558
121
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   559
00:06:18,380 --> 00:06:20,975
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   560
quite slow if you don't
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   561
spot that pattern.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   562
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   563
122
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   564
00:06:20,975 --> 00:06:22,550
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   565
So let's have a look.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   566
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   567
123
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   568
00:06:22,550 --> 00:06:26,240
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   569
So in the case that
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   570
n is equal to 0,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   571
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   572
124
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   573
00:06:26,240 --> 00:06:29,885
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   574
then r n times most
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   575
defined as just one.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   576
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   577
125
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   578
00:06:29,885 --> 00:06:32,030
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   579
What would be the
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   580
derivative of one?
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   581
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   582
126
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   583
00:06:32,030 --> 00:06:36,140
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   584
So the derivative of c of one.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   585
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   586
127
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   587
00:06:36,140 --> 00:06:38,990
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   588
Peaches defined as 0.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   589
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   590
128
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   591
00:06:38,990 --> 00:06:41,465
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   592
Okay, fair enough.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   593
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   594
129
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   595
00:06:41,465 --> 00:06:44,960
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   596
If he have any cross one,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   597
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   598
130
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   599
00:06:44,960 --> 00:06:48,125
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   600
then we just have one copy
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   601
of this regular expression.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   602
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   603
131
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   604
00:06:48,125 --> 00:06:50,120
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   605
So there's not much as we can do.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   606
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   607
132
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   608
00:06:50,120 --> 00:06:53,735
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   609
We would have to calculate
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   610
the derivative of air are.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   611
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   612
133
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   613
00:06:53,735 --> 00:06:57,395
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   614
Now in the n equals two case.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   615
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   616
134
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   617
00:06:57,395 --> 00:07:00,245
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   618
That would mean we
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   619
have two copies of
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   620
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   621
135
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   622
00:07:00,245 --> 00:07:03,425
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   623
R. And they would be a sequence.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   624
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   625
136
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   626
00:07:03,425 --> 00:07:07,775
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   627
How would be the derivative C of
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   628
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   629
137
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   630
00:07:07,775 --> 00:07:10,340
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   631
R four by R be
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   632
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   633
138
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   634
00:07:10,340 --> 00:07:13,265
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   635
defined where we would
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   636
look up the definition.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   637
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   638
139
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   639
00:07:13,265 --> 00:07:15,470
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   640
And it would say that's
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   641
the complicated case
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   642
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   643
140
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   644
00:07:15,470 --> 00:07:16,760
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   645
d sequence or
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   646
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   647
141
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   648
00:07:16,760 --> 00:07:21,875
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   649
if null a bowl of R,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   650
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   651
142
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   652
00:07:21,875 --> 00:07:25,250
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   653
Then the most complicated case.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   654
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   655
143
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   656
00:07:25,250 --> 00:07:28,225
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   657
Else, That's the easy
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   658
case that would be
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   659
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   660
144
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   661
00:07:28,225 --> 00:07:32,660
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   662
derivative of c of R four
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   663
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   664
145
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   665
00:07:32,660 --> 00:07:35,540
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   666
by R. And then I
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   667
just have to copy
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   668
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   669
146
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   670
00:07:35,540 --> 00:07:40,775
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   671
that derivative of C
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   672
of four by r here.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   673
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   674
147
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   675
00:07:40,775 --> 00:07:43,130
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   676
But in this case I have also
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   677
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   678
148
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   679
00:07:43,130 --> 00:07:51,145
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   680
the alternative derivative
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   681
of c of r. And from that,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   682
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   683
149
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   684
00:07:51,145 --> 00:07:55,030
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   685
it looks like we can
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   686
do much better than
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   687
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   688
150
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   689
00:07:55,030 --> 00:07:58,390
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   690
that unless we do
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   691
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   692
151
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   693
00:07:58,390 --> 00:08:02,560
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   694
a little bit of magic and the
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   695
magic to do with this case.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   696
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   697
152
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   698
00:08:02,560 --> 00:08:07,420
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   699
So let me look at this
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   700
case a bit more closely.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   701
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   702
153
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   703
00:08:07,420 --> 00:08:09,819
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   704
Let me go back to slides
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   705
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   706
154
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   707
00:08:09,819 --> 00:08:12,940
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   708
because actually the calculation
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   709
might be a bit hairy.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   710
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   711
155
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   712
00:08:12,940 --> 00:08:16,945
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   713
So remember we are in this
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   714
case where n equals two.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   715
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   716
156
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   717
00:08:16,945 --> 00:08:18,550
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   718
And this was defined as
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   719
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   720
157
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   721
00:08:18,550 --> 00:08:20,680
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   722
this sequence work
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   723
expression R followed
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   724
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   725
158
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   726
00:08:20,680 --> 00:08:23,080
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   727
by r. And the question was,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   728
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   729
159
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   730
00:08:23,080 --> 00:08:26,365
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   731
can we somehow make sense
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   732
out of this derivative
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   733
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   734
160
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   735
00:08:26,365 --> 00:08:30,370
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   736
where we have to build the
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   737
derivative of a sequence.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   738
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   739
161
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   740
00:08:30,370 --> 00:08:33,020
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   741
So features the definition.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   742
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   743
162
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   744
00:08:33,020 --> 00:08:36,050
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   745
We would ask if
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   746
the r is nullable,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   747
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   748
163
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   749
00:08:36,050 --> 00:08:39,095
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   750
In this case, we return
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   751
this alternative.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   752
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   753
164
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   754
00:08:39,095 --> 00:08:40,640
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   755
And if it's not nullable,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   756
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   757
165
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   758
00:08:40,640 --> 00:08:44,135
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   759
It is just this
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   760
record expression.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   761
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   762
166
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   763
00:08:44,135 --> 00:08:49,550
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   764
Now my claim is that
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   765
this whole if condition
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   766
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   767
167
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   768
00:08:49,550 --> 00:08:55,895
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   769
can be replaced by just this
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   770
simple derivative here.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   771
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   772
168
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   773
00:08:55,895 --> 00:08:58,775
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   774
And if that claim is correct,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   775
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   776
169
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   777
00:08:58,775 --> 00:09:01,520
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   778
there would be very nice
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   779
because in contrast to
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   780
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   781
170
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   782
00:09:01,520 --> 00:09:04,130
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   783
this if condition where
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   784
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   785
171
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   786
00:09:04,130 --> 00:09:06,280
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   787
we have to calculate
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   788
like nullable,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   789
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   790
172
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   791
00:09:06,280 --> 00:09:08,330
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   792
decide in which branch we are.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   793
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   794
173
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   795
00:09:08,330 --> 00:09:10,580
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   796
We don't have to
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   797
calculate your now,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   798
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   799
174
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   800
00:09:10,580 --> 00:09:13,880
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   801
but we can just replace
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   802
it by this expression.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   803
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   804
175
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   805
00:09:13,880 --> 00:09:16,670
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   806
So if we can
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   807
substantiate that claim,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   808
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   809
176
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   810
00:09:16,670 --> 00:09:19,860
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   811
that will be definitely
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   812
good file algorithm.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   813
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   814
177
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   815
00:09:20,140 --> 00:09:22,775
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   816
And to substantiate that,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   817
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   818
178
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   819
00:09:22,775 --> 00:09:26,795
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   820
I will focus on this
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   821
record expression here.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   822
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   823
179
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   824
00:09:26,795 --> 00:09:31,100
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   825
And notice that this record
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   826
expression the only be
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   827
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   828
180
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   829
00:09:31,100 --> 00:09:35,780
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   830
called or only be generated
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   831
if r is nullable.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   832
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   833
181
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   834
00:09:35,780 --> 00:09:38,075
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   835
So in any other case,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   836
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   837
182
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   838
00:09:38,075 --> 00:09:40,060
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   839
I will actually not go into it
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   840
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   841
183
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   842
00:09:40,060 --> 00:09:43,850
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   843
that if branch and would
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   844
be in the other one.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   845
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   846
184
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   847
00:09:43,850 --> 00:09:45,260
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   848
So if we are in this if branch,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   849
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   850
185
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   851
00:09:45,260 --> 00:09:47,705
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   852
we definitely know
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   853
that R is nullable.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   854
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   855
186
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   856
00:09:47,705 --> 00:09:52,955
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   857
Okay? Okay, so here's
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   858
our regular expression.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   859
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   860
187
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   861
00:09:52,955 --> 00:09:55,940
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   862
And we know it's nullable.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   863
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   864
188
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   865
00:09:55,940 --> 00:09:57,920
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   866
So we have to somehow find
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   867
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   868
189
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   869
00:09:57,920 --> 00:10:00,380
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   870
an equivalent expression that
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   871
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   872
190
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   873
00:10:00,380 --> 00:10:04,100
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   874
is smaller or simpler
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   875
than that one.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   876
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   877
191
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   878
00:10:04,100 --> 00:10:05,945
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   879
Let's see what we can do.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   880
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   881
192
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   882
00:10:05,945 --> 00:10:10,160
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   883
So the first thing
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   884
actually is we multiplying
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   885
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   886
193
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   887
00:10:10,160 --> 00:10:16,595
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   888
this right hand side of the
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   889
alternative is times one.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   890
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   891
194
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   892
00:10:16,595 --> 00:10:19,700
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   893
We can do that
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   894
because this does not
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   895
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   896
195
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   897
00:10:19,700 --> 00:10:23,090
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   898
change which strings this
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   899
work expression can match.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   900
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   901
196
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   902
00:10:23,090 --> 00:10:25,685
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   903
Remember we even had it
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   904
as a simplification row,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   905
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   906
197
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   907
00:10:25,685 --> 00:10:27,425
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   908
just in this case B,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   909
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   910
198
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   911
00:10:27,425 --> 00:10:29,705
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   912
don't apply it as a
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   913
simplification will
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   914
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   915
199
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   916
00:10:29,705 --> 00:10:31,310
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   917
actually make this
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   918
work expression
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   919
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   920
200
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   921
00:10:31,310 --> 00:10:32,720
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   922
a bit more complicated.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   923
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   924
201
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   925
00:10:32,720 --> 00:10:34,910
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   926
But times one doesn't make
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   927
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   928
202
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   929
00:10:34,910 --> 00:10:37,820
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   930
a difference because it
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   931
means the end of the string,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   932
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   933
203
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   934
00:10:37,820 --> 00:10:40,070
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   935
we still want to match
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   936
the empty string.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   937
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   938
204
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   939
00:10:40,070 --> 00:10:42,155
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   940
Okay, so that is possible.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   941
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   942
205
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   943
00:10:42,155 --> 00:10:45,740
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   944
I can do that. Once
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   945
we have done that,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   946
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   947
206
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   948
00:10:45,740 --> 00:10:48,410
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   949
you will notice that this
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   950
factor derivative of
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   951
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   952
207
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   953
00:10:48,410 --> 00:10:51,860
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   954
stuff are exactly the
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   955
same as that one.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   956
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   957
208
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   958
00:10:51,860 --> 00:10:54,650
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   959
And in between is a plus.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   960
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   961
209
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   962
00:10:54,650 --> 00:10:57,440
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   963
So you probably remember the law
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   964
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   965
210
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   966
00:10:57,440 --> 00:11:00,170
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   967
from school math
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   968
that I can pull out
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   969
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   970
211
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   971
00:11:00,170 --> 00:11:02,735
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   972
this factor derivative of c of r.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   973
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   974
212
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   975
00:11:02,735 --> 00:11:06,320
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   976
And I'm inside the parentheses
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   977
is left with that.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   978
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   979
213
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   980
00:11:06,320 --> 00:11:09,245
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   981
So now I have r plus one.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   982
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   983
214
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   984
00:11:09,245 --> 00:11:13,055
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   985
Usually we cannot
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   986
simplify r plus one.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   987
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   988
215
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   989
00:11:13,055 --> 00:11:15,530
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   990
If it had been R
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   991
plus 0, then yes,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   992
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   993
216
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   994
00:11:15,530 --> 00:11:18,665
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   995
we could have got rid of the CRO.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   996
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   997
217
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   998
00:11:18,665 --> 00:11:21,590
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
   999
Plus one often
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1000
makes a difference,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1001
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1002
218
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1003
00:11:21,590 --> 00:11:22,970
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1004
but not in our case.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1005
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1006
219
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1007
00:11:22,970 --> 00:11:25,940
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1008
Remember, we know that
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1009
this R is nullable,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1010
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1011
220
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1012
00:11:25,940 --> 00:11:29,840
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1013
so on its own can already
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1014
match the empty string.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1015
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1016
221
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1017
00:11:29,840 --> 00:11:33,305
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1018
So we don't really need this
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1019
alternative plus one there,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1020
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1021
222
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1022
00:11:33,305 --> 00:11:35,300
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1023
so we can just get rid of that.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1024
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1025
223
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1026
00:11:35,300 --> 00:11:37,070
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1027
Okay, and so now we have
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1028
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1029
224
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1030
00:11:37,070 --> 00:11:40,535
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1031
a much simpler wound
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1032
reg expression.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1033
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1034
225
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1035
00:11:40,535 --> 00:11:44,285
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1036
And this actually helps a
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1037
lot for our if condition.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1038
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1039
226
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1040
00:11:44,285 --> 00:11:46,925
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1041
Look, this was the
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1042
original if condition
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1043
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1044
227
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1045
00:11:46,925 --> 00:11:50,270
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1046
and this is direct expression
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1047
h. We just simplified.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1048
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1049
228
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1050
00:11:50,270 --> 00:11:53,105
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1051
If we replace it with this one,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1052
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1053
229
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1054
00:11:53,105 --> 00:11:56,090
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1055
then we just end up with this.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1056
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1057
230
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1058
00:11:56,090 --> 00:11:59,510
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1059
And now you will see that
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1060
the if condition is actually
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1061
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1062
231
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1063
00:11:59,510 --> 00:12:02,750
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1064
pointless because you
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1065
check if it's null above,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1066
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1067
232
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1068
00:12:02,750 --> 00:12:05,060
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1069
we return this reg
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1070
expression or it's
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1071
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1072
233
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1073
00:12:05,060 --> 00:12:08,210
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1074
not nullable and we
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1075
return exactly the same.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1076
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1077
234
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1078
00:12:08,210 --> 00:12:10,025
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1079
That doesn't make any difference.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1080
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1081
235
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1082
00:12:10,025 --> 00:12:11,750
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1083
So we can just get rid of
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1084
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1085
236
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1086
00:12:11,750 --> 00:12:14,645
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1087
that one and can
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1088
replace it by that.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1089
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1090
237
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1091
00:12:14,645 --> 00:12:16,865
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1092
And you see, this is now
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1093
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1094
238
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1095
00:12:16,865 --> 00:12:20,720
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1096
a much simpler case than
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1097
what we had before.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1098
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1099
239
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1100
00:12:20,720 --> 00:12:24,170
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1101
So let's take stock
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1102
what we have so far.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1103
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1104
240
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1105
00:12:24,170 --> 00:12:26,915
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1106
So we know India CEO case,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1107
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1108
241
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1109
00:12:26,915 --> 00:12:30,920
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1110
the derivative needs
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1111
to be defined as 0.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1112
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1113
242
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1114
00:12:30,920 --> 00:12:33,095
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1115
So because we define this
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1116
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1117
243
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1118
00:12:33,095 --> 00:12:36,785
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1119
and times as one,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1120
the derivative is 0.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1121
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1122
244
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1123
00:12:36,785 --> 00:12:39,889
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1124
For chest r, this will
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1125
be the derivative.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1126
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1127
245
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1128
00:12:39,889 --> 00:12:42,170
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1129
And we can't do any
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1130
better than that
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1131
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1132
246
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1133
00:12:42,170 --> 00:12:45,620
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1134
for our followed by
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1135
RB just found out.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1136
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1137
247
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1138
00:12:45,620 --> 00:12:47,270
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1139
Actually it is quite simple.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1140
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1141
248
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1142
00:12:47,270 --> 00:12:51,410
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1143
Reg expression is equivalent
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1144
to the derivative.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1145
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1146
249
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1147
00:12:51,410 --> 00:12:53,870
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1148
Now, we have to continue with
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1149
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1150
250
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1151
00:12:53,870 --> 00:12:56,090
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1152
that case where n is
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1153
equal to three and we
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1154
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1155
251
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1156
00:12:56,090 --> 00:12:58,099
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1157
now have three copies
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1158
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1159
252
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1160
00:12:58,099 --> 00:13:02,390
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1161
of this or what should
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1162
be the derivative?
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1163
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1164
253
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1165
00:13:02,390 --> 00:13:05,330
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1166
Well, if you look very carefully
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1167
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1168
254
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1169
00:13:05,330 --> 00:13:08,465
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1170
at this emerging pattern,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1171
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1172
255
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1173
00:13:08,465 --> 00:13:12,410
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1174
I have to say then
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1175
what would be nice if,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1176
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1177
256
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1178
00:13:12,410 --> 00:13:16,400
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1179
if he could show that in
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1180
the n equals three case,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1181
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1182
257
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1183
00:13:16,400 --> 00:13:18,275
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1184
we end up with this.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1185
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1186
258
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1187
00:13:18,275 --> 00:13:21,290
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1188
Because then what we have is.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1189
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1190
259
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1191
00:13:21,290 --> 00:13:25,370
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1192
We can define our
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1193
nullable for n times
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1194
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1195
260
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1196
00:13:25,370 --> 00:13:31,025
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1197
s. If any cross 0 then
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1198
true as nullable.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1199
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1200
261
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1201
00:13:31,025 --> 00:13:33,875
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1202
And for the derivative,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1203
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1204
262
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1205
00:13:33,875 --> 00:13:37,190
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1206
we can save if n is equal to 0,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1207
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1208
263
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1209
00:13:37,190 --> 00:13:40,235
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1210
then we return the
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1211
Sierra reg expression.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1212
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1213
264
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1214
00:13:40,235 --> 00:13:43,295
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1215
Otherwise, as you can see
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1216
from this pattern here,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1217
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1218
265
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1219
00:13:43,295 --> 00:13:50,735
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1220
it would be derivative of
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1221
c r four by r n minus one.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1222
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1223
266
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1224
00:13:50,735 --> 00:13:54,770
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1225
Okay? And the only
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1226
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1227
267
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1228
00:13:54,770 --> 00:13:56,330
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1229
thing we have to make choice that
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1230
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1231
268
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1232
00:13:56,330 --> 00:13:58,175
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1233
this pattern actually holds.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1234
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1235
269
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1236
00:13:58,175 --> 00:14:00,470
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1237
So that's, I will
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1238
show you next in
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1239
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1240
270
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1241
00:14:00,470 --> 00:14:03,735
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1242
the case for n equals three.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1243
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1244
271
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1245
00:14:03,735 --> 00:14:07,810
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1246
If we have a wreck expression R
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1247
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1248
272
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1249
00:14:07,810 --> 00:14:09,820
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1250
and it's followed
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1251
by r and another r,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1252
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1253
273
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1254
00:14:09,820 --> 00:14:11,275
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1255
three copies of it.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1256
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1257
274
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1258
00:14:11,275 --> 00:14:14,245
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1259
We can just unfold
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1260
again the definition.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1261
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1262
275
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1263
00:14:14,245 --> 00:14:16,930
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1264
So we would ask if I is nullable,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1265
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1266
276
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1267
00:14:16,930 --> 00:14:19,765
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1268
then we have this if branch.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1269
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1270
277
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1271
00:14:19,765 --> 00:14:23,905
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1272
And if i is not nullable
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1273
or we have this as branch.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1274
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1275
278
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1276
00:14:23,905 --> 00:14:27,010
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1277
Okay? What can we do here?
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1278
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1279
279
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1280
00:14:27,010 --> 00:14:30,310
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1281
Well, we notice that
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1282
this one is just now
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1283
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1284
280
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1285
00:14:30,310 --> 00:14:34,510
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1286
the derivative of two
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1287
Rs, one after another.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1288
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1289
281
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1290
00:14:34,510 --> 00:14:37,330
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1291
But this we just
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1292
calculated a moment ago,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1293
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1294
282
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1295
00:14:37,330 --> 00:14:40,120
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1296
so we can just
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1297
replace it by this.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1298
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1299
283
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1300
00:14:40,120 --> 00:14:43,255
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1301
Ok. That's what we
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1302
calculated earlier.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1303
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1304
284
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1305
00:14:43,255 --> 00:14:46,665
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1306
But now you will see
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1307
again this factor,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1308
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1309
285
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1310
00:14:46,665 --> 00:14:48,695
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1311
and this factor is the same.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1312
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1313
286
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1314
00:14:48,695 --> 00:14:52,700
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1315
So I can pull that
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1316
out to be like that.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1317
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1318
287
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1319
00:14:52,700 --> 00:14:57,380
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1320
And I have now followed
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1321
by R plus R. Oh,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1322
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1323
288
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1324
00:14:57,380 --> 00:14:59,030
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1325
hey, man, now you probably
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1326
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1327
289
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1328
00:14:59,030 --> 00:15:00,680
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1329
remember how we did it earlier.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1330
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1331
290
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1332
00:15:00,680 --> 00:15:03,080
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1333
We can now pull out one copy of
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1334
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1335
291
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1336
00:15:03,080 --> 00:15:06,020
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1337
this are to just get
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1338
something like this.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1339
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1340
292
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1341
00:15:06,020 --> 00:15:08,765
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1342
We have to add one essentially,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1343
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1344
293
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1345
00:15:08,765 --> 00:15:11,615
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1346
but we now get r plus one.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1347
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1348
294
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1349
00:15:11,615 --> 00:15:15,065
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1350
And this r here is
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1351
now just pulled out.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1352
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1353
295
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1354
00:15:15,065 --> 00:15:18,995
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1355
Well, here again kicks
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1356
in this reasoning.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1357
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1358
296
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1359
00:15:18,995 --> 00:15:22,700
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1360
We go in this if branch
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1361
only if r is nullable,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1362
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1363
297
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1364
00:15:22,700 --> 00:15:26,150
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1365
so on its own can already
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1366
match the empty string.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1367
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1368
298
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1369
00:15:26,150 --> 00:15:28,895
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1370
So I don't need
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1371
really this plus one.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1372
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1373
299
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1374
00:15:28,895 --> 00:15:30,695
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1375
I can just get rid of it.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1376
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1377
300
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1378
00:15:30,695 --> 00:15:33,140
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1379
And so I now just have
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1380
to rearrange the parent,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1381
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1382
301
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1383
00:15:33,140 --> 00:15:35,450
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1384
the thesis which we
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1385
said we can also do.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1386
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1387
302
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1388
00:15:35,450 --> 00:15:37,595
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1389
So we have something like that.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1390
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1391
303
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1392
00:15:37,595 --> 00:15:39,740
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1393
And here again, the
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1394
same reasoning,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1395
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1396
304
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1397
00:15:39,740 --> 00:15:41,975
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1398
we have a if condition
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1399
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1400
305
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1401
00:15:41,975 --> 00:15:43,310
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1402
where it doesn't
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1403
really matter what
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1404
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1405
306
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1406
00:15:43,310 --> 00:15:44,405
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1407
we're going to return,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1408
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1409
307
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1410
00:15:44,405 --> 00:15:46,205
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1411
it's in both branches the same.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1412
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1413
308
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1414
00:15:46,205 --> 00:15:48,470
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1415
So we can just
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1416
replace it by that.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1417
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1418
309
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1419
00:15:48,470 --> 00:15:51,920
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1420
And yes, now we can be
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1421
pretty sure they'll
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1422
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1423
310
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1424
00:15:51,920 --> 00:15:55,310
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1425
work for all the n times
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1426
regular expressions.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1427
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1428
311
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1429
00:15:55,310 --> 00:15:57,860
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1430
And leave that to
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1431
the calculation for
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1432
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1433
312
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1434
00:15:57,860 --> 00:16:02,570
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1435
maybe R to the four to you.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1436
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1437
313
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1438
00:16:02,570 --> 00:16:04,490
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1439
And the reason why I do it
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1440
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1441
314
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1442
00:16:04,490 --> 00:16:06,605
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1443
in such a detail,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1444
this calculation,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1445
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1446
315
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1447
00:16:06,605 --> 00:16:08,960
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1448
this is really meant
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1449
to help you with
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1450
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1451
316
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1452
00:16:08,960 --> 00:16:13,200
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1453
the coursework which is
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1454
coming up this week.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1455
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1456
317
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1457
00:16:13,210 --> 00:16:16,250
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1458
I'm now back in our
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1459
implementation.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1460
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1461
318
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1462
00:16:16,250 --> 00:16:20,660
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1463
In this Reto, said We have
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1464
this explicit constructor now
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1465
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1466
319
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1467
00:16:20,660 --> 00:16:25,535
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1468
for n times b can now fill
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1469
in the cases for nullable.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1470
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1471
320
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1472
00:16:25,535 --> 00:16:27,635
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1473
So if we have R in times,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1474
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1475
321
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1476
00:16:27,635 --> 00:16:30,995
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1477
if this n is equal to
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1478
0, we return true.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1479
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1480
322
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1481
00:16:30,995 --> 00:16:34,190
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1482
Otherwise we have to test
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1483
whether eyes nullable.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1484
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1485
323
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1486
00:16:34,190 --> 00:16:37,565
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1487
And in the derivative case, oi,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1488
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1489
324
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1490
00:16:37,565 --> 00:16:40,339
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1491
if this n is equal to 0,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1492
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1493
325
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1494
00:16:40,339 --> 00:16:43,564
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1495
the return this 0
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1496
wreck expression.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1497
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1498
326
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1499
00:16:43,564 --> 00:16:46,700
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1500
Otherwise we return the
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1501
sequence of the derivative
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1502
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1503
327
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1504
00:16:46,700 --> 00:16:50,270
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1505
of psi of r four by n times of r,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1506
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1507
328
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1508
00:16:50,270 --> 00:16:54,545
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1509
but n minus one times and
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1510
everything else stays the same.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1511
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1512
329
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1513
00:16:54,545 --> 00:16:56,510
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1514
Here's the function for strings,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1515
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1516
330
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1517
00:16:56,510 --> 00:16:58,430
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1518
derivative function for strings.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1519
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1520
331
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1521
00:16:58,430 --> 00:17:01,595
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1522
In the main mantra
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1523
function as all the same.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1524
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1525
332
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1526
00:17:01,595 --> 00:17:04,820
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1527
We still require this
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1528
definition because
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1529
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1530
333
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1531
00:17:04,820 --> 00:17:06,050
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1532
we haven't done anything about
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1533
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1534
334
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1535
00:17:06,050 --> 00:17:08,090
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1536
the optional record
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1537
expression yet.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1538
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1539
335
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1540
00:17:08,090 --> 00:17:10,670
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1541
And we have now at this
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1542
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1543
336
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1544
00:17:10,670 --> 00:17:13,250
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1545
either warm and evil
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1546
2-break expression.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1547
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1548
337
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1549
00:17:13,250 --> 00:17:15,290
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1550
And let's test it. And let's be
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1551
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1552
338
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1553
00:17:15,290 --> 00:17:17,000
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1554
a bit more ambitious.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1555
Be testing it.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1556
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1557
339
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1558
00:17:17,000 --> 00:17:20,315
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1559
The strings between 01000
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1560
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1561
340
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1562
00:17:20,315 --> 00:17:22,580
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1563
and let's see what the time say.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1564
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1565
341
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1566
00:17:22,580 --> 00:17:26,210
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1567
I'm testing this again
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1568
inside the ammonite rebel.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1569
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1570
342
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1571
00:17:26,210 --> 00:17:30,180
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1572
And you'll see it should
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1573
be now much quicker.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1574
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1575
343
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1576
00:17:30,610 --> 00:17:34,640
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1577
Okay, it might slow
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1578
down also around 600.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1579
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1580
344
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1581
00:17:34,640 --> 00:17:40,490
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1582
700 needs two seconds,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1583
three seconds, 4800.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1584
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1585
345
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1586
00:17:40,490 --> 00:17:43,940
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1587
Let's see about it
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1588
needs 4 thousand.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1589
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1590
346
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1591
00:17:43,940 --> 00:17:47,435
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1592
But you have to remember
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1593
Ruby and Python.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1594
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1595
347
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1596
00:17:47,435 --> 00:17:51,530
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1597
They needed half a
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1598
minute to just 43 TAs.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1599
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1600
348
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1601
00:17:51,530 --> 00:17:54,485
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1602
We need a little bit
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1603
more than six seconds,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1604
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1605
349
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1606
00:17:54,485 --> 00:17:57,110
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1607
but we are processing a string of
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1608
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1609
350
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1610
00:17:57,110 --> 00:18:00,575
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1611
1000 days so that success.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1612
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1613
351
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1614
00:18:00,575 --> 00:18:04,775
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1615
So this speed is also explained
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1616
if you look at the sizes.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1617
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1618
352
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1619
00:18:04,775 --> 00:18:08,975
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1620
Since we now have this explicit
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1621
and times constructor,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1622
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1623
353
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1624
00:18:08,975 --> 00:18:11,930
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1625
it doesn't really matter
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1626
how big this n is.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1627
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1628
354
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1629
00:18:11,930 --> 00:18:14,540
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1630
This evil one reg
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1631
expression will always be
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1632
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1633
355
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1634
00:18:14,540 --> 00:18:17,195
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1635
of this size seven,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1636
the beginning.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1637
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1638
356
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1639
00:18:17,195 --> 00:18:20,315
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1640
And you can also see if you
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1641
now build the derivatives,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1642
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1643
357
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1644
00:18:20,315 --> 00:18:22,550
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1645
they still grow in size,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1646
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1647
358
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1648
00:18:22,550 --> 00:18:24,740
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1649
but much more moderately.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1650
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1651
359
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1652
00:18:24,740 --> 00:18:28,100
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1653
And let's try out this
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1654
example, this 20 a.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1655
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1656
360
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1657
00:18:28,100 --> 00:18:31,685
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1658
So we build the derivative
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1659
according to 20 character A's.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1660
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1661
361
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1662
00:18:31,685 --> 00:18:33,890
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1663
In the earlier example,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1664
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1665
362
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1666
00:18:33,890 --> 00:18:35,780
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1667
we ended up this a
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1668
wreck expression which
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1669
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1670
363
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1671
00:18:35,780 --> 00:18:37,895
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1672
had like 8 million plus nodes.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1673
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1674
364
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1675
00:18:37,895 --> 00:18:39,830
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1676
And if we do this now,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1677
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1678
365
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1679
00:18:39,830 --> 00:18:43,205
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1680
then we just have a wreck
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1681
expression with 211 nodes.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1682
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1683
366
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1684
00:18:43,205 --> 00:18:44,750
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1685
And that is much smaller and
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1686
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1687
367
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1688
00:18:44,750 --> 00:18:47,165
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1689
all the calculations
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1690
would be much quicker.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1691
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1692
368
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1693
00:18:47,165 --> 00:18:49,550
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1694
So yeah, there's
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1695
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1696
369
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1697
00:18:49,550 --> 00:18:52,205
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1698
this push off CKY algorithm
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1699
and this improvement.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1700
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1701
370
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1702
00:18:52,205 --> 00:18:54,890
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1703
We're now running
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1704
circles around Ruby and
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1705
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1706
371
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1707
00:18:54,890 --> 00:18:58,445
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1708
Python because they're just
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1709
stuck here at the beginning.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1710
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1711
372
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1712
00:18:58,445 --> 00:19:00,230
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1713
Because they need already
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1714
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1715
373
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1716
00:19:00,230 --> 00:19:02,975
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1717
like half a minute
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1718
for just 30 a's.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1719
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1720
374
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1721
00:19:02,975 --> 00:19:05,930
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1722
We now can do something
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1723
like thousand a's.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1724
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1725
375
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1726
00:19:05,930 --> 00:19:07,580
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1727
And in reasonable time.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1728
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1729
376
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1730
00:19:07,580 --> 00:19:09,740
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1731
I think this must be
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1732
timing I obtained with
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1733
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1734
377
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1735
00:19:09,740 --> 00:19:12,635
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1736
my older laptop some time ago.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1737
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1738
378
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1739
00:19:12,635 --> 00:19:14,210
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1740
Because remember we
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1741
had something like
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1742
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1743
379
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1744
00:19:14,210 --> 00:19:16,670
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1745
six seconds here, it says 15.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1746
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1747
380
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1748
00:19:16,670 --> 00:19:18,080
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1749
So you always have to take
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1750
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1751
381
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1752
00:19:18,080 --> 00:19:20,885
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1753
these times with
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1754
the pinch of salt.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1755
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1756
382
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1757
00:19:20,885 --> 00:19:22,670
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1758
It's essentially only the trend,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1759
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1760
383
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1761
00:19:22,670 --> 00:19:25,100
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1762
but it's clear we are
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1763
much, much better.
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1764
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1765
384
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1766
00:19:25,100 --> 00:19:27,065
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1767
So we have worked a lot,
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1768
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1769
385
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1770
00:19:27,065 --> 00:19:30,720
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1771
but we also got something
b153de5339bc updated
Christian Urban <christian.urban@kcl.ac.uk>
parents:
diff changeset
  1772
for it in return.