Subtitles section Play video
-
I want to tell you about a generalization of a problem
-
that was first popularized by Al Cohen of York, who was an anglo-saxon
-
really smart dude. The problem is: you have a farmer who comes to your river and with him he has a wolf,
-
a bundle of cabbages and a goat; and there's a boat,
-
that's there and it carry-- it can carry him, and
-
one of his charges. Obviously the farmer has to be there because he has to be rowing,
-
and he wants to bring everything to the other shore safely. So that means that he cannot leave
-
the cabbage with the goat, because the goat would be eating the cabbage,
-
and he cannot leave the wolf with the goat because then the
-
wolf would eat the goat. So how can he do it?
-
And so of course we're assuming that the wolf cannot swim
-
which is a question I get all the time, when I'm speaking
-
to kids. So the wolf cannot swim neither can a goat or the cabbage.
-
So the only thing you can do at first is to
-
bring the goat.
-
Okay, so then, okay, the farmer goes back,
-
and he--
-
takes, let's say, the wolf; but now he cannot leave the wolf with the cat--
-
with the goat. Otherwise the wolf would eat the goat back. So what if he brown the cabbage instead?
-
Well, same thing if he brings the cabbage now,
-
the goat would eat the cabbage. So the only way it can be done
-
is you have to have this clever moment of saying "Oh, I can bring back the goat". So, okay,
-
he brown the cabbage over
-
and now he brings back the goat, and now takes the wolf, brings it to the other side as well,
-
and now he goes back just to get his goat. So...
-
Then you can generalize, you can say "Well, Let's say that this farmer had more things
-
that he wanted to carry across the river".
-
So let's say that I added a rabbit, so
-
What can I do first?
-
Brady Haran: What does a rabbit day with what?
-
Oh.
-
Brady Haran: Who is in danger from who here?
-
Yeah good question right, so the wolf would eat the rabbit,
-
and...
-
Ah well the rabbit would eat the cabbage.
-
We assume that the rabbit and a goat together are fine.
-
There won't be too much violence there. The boat can hold the farmer and
-
one of these guys. That's it, the farmer still has to be there.
-
We're still assuming also that the revit cannot swim. So what can I bring first?
-
Can I bring the wolf? Well, no obviously the rabbit and the goat would eat the cabbage.
-
Can I bring the rabbit?
-
Well, no again the goat would eat the cabbage, if the wolf doesn't catch the gold first.
-
Okay, can I bring the goat? Well,
-
no, the rabbit will eat the cabbage again,
-
if the wolf doesn't catch the rabbit first.
-
And can I bring the cabbage? No, because the wolf would eat the rabbit and the goat.
-
Brady Haran: Carnage.
-
Carnage, yes. Blood everywhere no matter what we do
-
or shreds of cabbage, one or the other. So the question becomes: Okay,
-
How big of a boat do I need? So if I'm given
-
different things, and I know there's certain conflicts how big does my boat have to be? So here if I have space for
-
my farmer plus two other things, I'll be fine. I could just say fine, I'll bring the wolf and cabbage first
-
I'll leave them on the other side, come back, and get my rabbit and goat
-
and I will be done.
-
Super easy!
-
So the question is how big does it have to be? Well, now we kind of want to start doing math, right?
-
So how do we bring math in there? So we want to think about the conflicts as making a graph. So I have my--
-
wolf, and I have my goat; and so I cannot leave my wolf with my goat
-
so I'll put an edge, the line, between these two points which are really
-
normally called "vertices".
-
Brady Haran: So edge represents bad news.
-
Yeah conflict, that these two things cannot be left alone unsupervised.
-
The wolf can also not be left
-
with the rabbit. The goat cannot be left with the cabbage and the rabbit cannot be left
-
with the cabbage either.
-
But the wolf can be left with a cabbage so I don't draw an edge there,
-
and I don't draw an edge between my goat and my rabbit because it can be left together.
-
Okay, the point that we see is that let's say that I first took my rabbit, well,
-
there's still some lines remaining, right? I am left with a
-
graph with the wolf, goat and cabbage and there's still some lines that are remaining.
-
And that's tree firing remove any of the corners.
-
So what I want to do is
-
take a set of my things, that will remove all of the lines, and that's actually a really important math concept.
-
It's called a "vertex cover".
-
So, maybe let's write down, what is the vertex cover. "A vertex cover and
-
a graph G is a set of vertices such that any edge is
-
adjacent to at least
-
one
-
of these services". Okay,
-
so what does that mean? That means that
-
if I want to take a set of points, where
-
every line is touching at least one of these points, my goal is that by taking the vertex cover,
-
I'm removing all the lines so maybe we can just draw a simple example.
-
So, let's say that I have this graph.
-
So, this is a graph so a graph is really just a set of points and set of lines called vertices and edges,
-
and so I might ask myself "What is a vertex cover?" So I could start building one. So I could say "Okay
-
I'll take this vertex within my
-
vertex cover".
-
But that's not enough, right? So these five edges now are covered by this vertex right they're touching...
-
this vertex, but the other ones aren't yet.
-
Now so I could ask "I could add this vertex to my vertex cover, and so I'm getting closer".
-
But I still have this line that is not covered yet.
-
So I could add this one now. And so these three vertices from a vertex cover
-
every single line is adjacent to one of these vertices.
-
Brady Haran: It's almost like how many hands did you need to cover the right number of spots?
-
Yeah exactly, exactly.
-
So here in a vertex cover...
-
What was it? Well, yeah one is not sufficient, right?
-
A single vertex is not a vertex cover. If I cover the rabbit and the goat,
-
then they're covering all of the
-
edges. There's no edges remaining so this forms a vertex cover.
-
So that's why I need to have at least
-
two seats, because the minimum size of a vertex cover in there is 2. So there's no way that I can do it if I
-
don't have at least two extra places besides the place for the-- farmer. So in general
-
I know that my boat has to have at least the minimum size of a vertex cover.
-
Right? Otherwise
-
I won't be able to make my first trip, because there will be some lines remaining in my graph,
-
And lines represent conflict.
-
Brady Haran: I imagine you could do overkill though,
-
there must be as these things get more complicated. There must be--
-
vertex covers that cover too many vertices.
-
Oh yeah, that's a really good point, right? So in this graph for example--
-
So if I add this vertex, this is still a vertex cover,
-
right? So, I really want the minimum one. So I want to say that the
-
"number of
-
extra places
-
needed in my boat is at least the
-
size of the minimum vertex cover". So in this graph here that was three.
-
I needed to have at least three--
-
Brady Haran: Because that final the smallest possible.
-
Yeah, you don't want to overkill as you said. So that's nice, but now you might ask yourself: Will that always be enough?
-
Right? Like-- Sure you can do the first trip across the river,
-
but will you be able to do all of them? And so now you could check with some examples.
-
So, I mean, we could try with a big example and see if it works out,
-
and then...
-
Try with some other examples. Does that sound good? Okay,
-
so maybe we need another piece of paper. Okay
-
so now we have way more things. And so now we need to think for a second, what is actually going to eat what.
-
And we might disagree on some of these. I am NOT a farm girl
-
So I would go with what I think. The wolf would eat the goose.
-
Potentially, the mouse if it's really hungry. Told eat grass.
-
It... won't eat the cat either, I don't think so. Carrot or cabbage
-
It's not a vegetarian. It's a carnivore so set a goat and the rabbit; and the goose will eat
-
Ahhh... the grass, I see geese eating grass all the time. I don't think it's gonna eat carrot or
-
cabbage because it doesn't really have-- does it have teeth?
-
Does I don't think... I mean certainly if it's not cut up,
-
you know, like it will have trouble it doesn't have hands to--
-
Brady Haran: Maybe this does not the taste of cabbage.
-
Fine. I think the mouse will eat carrot,
-
and...
-
the cabbage and...
-
the cat will eat the mouse, certainly.
-
The grass will probably be eaten by the goat. I know that you can use them as long Moore's. The rabbit might eat some grass?
-
Cat I think it will just eat the mouse and nothing else will eat it
-
Brady Haran: The rabbits gonna eat the carrot
-
Yes, so the cabbage yeah, that's true.
-
So the rabbit will eat the carrot and the goat will probably eat the carrot too,
-
and the rabbit will also eat the cabbage, and so will the goat,
-
and then the goat and a rabbit are fine. I think that's that looks reasonable to me.
-
Brady Haran: Okay that will be air I guess...
-
Do you agree? Okay, so let's say that I have a river
-
How big it boat we need, and will the minimum vertex cover be enough? The first point
-
I really want to make is that finding the minimum vertex cover is not easy.
-
Right. So, here we only have nine things. right? It's not that much, and to figure out
-
what it is, well since this graph has some meaning,
-
I'm going to use the meaning to help me. So I basically have like my carnivores, my herbivores,
-
and then I have the poor vegetables and herbs. And so these three categories
-
kind of help me determine that oh, maybe
-
the
-
goat rabbit
-
goose and mouse. So my herbivores might form a vertex cover, and I think if I look at it,
-
carefully, like if I were to really look at every single
-
line, so actually yes, the mouse the goose the rabbit and a goat do form a vertex cover
-
It's unclear if that is actually the smallest, I claim it is.
-
It's not an actually such an easy thing to check, so let's just assume that I'm right. So what I'll do is
-
I'll say: Okay for my first trip, I will take my minimum vertex cover.
-
Right? So if I remove my goat, rabbit, boots and mouse;
-
and bring them to the other side. I am left. I removed all of the lines, here,
-
and so, okay, that's fine.
-
So then my farmer will come back.
-
We can only take four things, it will leave a thing behind. Let say it leaves the cat behind
-
And so he brings these guys.
-
But certainly the wolf will attack these guys, and these guys will eat all of the vegetables and grass.
-
So I'll bring them back
-
So it's the same trick as we've seen before. I'll carry my cat over so that it doesn't eat my mouse just itself, right?
-
It's just four places, but you can just bring one thing. That's completely fine.
-
And then I will finally go back, so there's no conflict here. All right this was the
-
original things that I had left at first so no problem there, and then I'll bring my four leftover...
-
herbivores and leave them there.
-
And I'm done!
-
So I succeeded in this case, right? But that's not a proof, right? Maybe...
-
Maybe I wouldn't need more, and certainly We've just seen okay finding your minimum vertex Cover is not necessarily so easy
-
So maybe let's do one other example.
-
So let's say that I had just--
-
my wolf
-
and--
-
my--
-
four herbivores that would get eaten by my wolf.
-
If he has a chance. So my wolf would eat all of these,
-
and none of these would attack each other, right? So I have my river
-
So, I know that I need to have at least... The number of extra places should be at least the size of
-
my minimum vertex cover, which here is easy to calculate. What is it Brady? Do you know?
-
Brady Haran: It's one.
-
It's one...
-
Brady Haran: You should ... the wolf
-
I'm very impressed. Okay, so my wolf is my minimum vertex cover, so I need to bring my well first, right?
-
That's the only thing I can do if I bring anything else. I'll be left with some conflict. So I bring my wolf over.
-
I Come back as I can only take one thing
-
So let's say that I take the mouse.
-
But they all really look the same, like the graph all looks the same for all of them,
-
and these are cold different things, but it could have been called--
-
you know goat one, goat two, goat three and goat four. Really, so I bring my mouse over
-
So now I have no choice, but to bring the wolf back, right? Otherwise my wolf would eat my mouse
-
So... I bring the wolf back...
-
and then, well, I'm kind of stuck, right? So either I bring one of these guys.
-
But then my wolf would eat the two remaining guys.
-
Or I bring the wolf again, and I keep going like this, and I'm stuck.
-
Okay--
-
Brady Haran: Minimum vertix cover doesn't work.
-
It doesn't work. It doesn't work.
-
So how much do you need how much bigger does it have to be?
-
And the amazing thing is, you just need one more! at
-
Whatever the graph of conflicts is
-
You will only need at most one more than your minimum vertex cover. And so the way to do it, is very simple
-
You have these
-
conflictual things that, you know, like, like your wolf here.
-
So you just put all these conflictual indivi-- individuals in the boat with you at all times.
-
So you can watch them, and then one by one you carry everything else. So here
-
Okay, my minimum...
-
Brady Haran: So the wolf does every trip?
-
Yeah the wolf is with you the whole time. It does every trip back and forth.
-
So, now let's say that I have the minimum
-
vertex cover plus 1 seat extra, so I have 2 seats plus a farmer's seat. So I'll take my
-
wolf in my mouse first,
-
I'll leave the mouse there, bring back my wolf, take, now my goose with my wall leave my goose.
-
Come back with my wolf. Take my goat in my wolf.
-
But my go there, come back with my wolf,
-
and then carry finally the last 8. And this will work no matter how big your vertex cover is, right?
-
So, no matter how big it is you just keep it with you in your boat, and then one by one you carry everything else.
-
That's pretty amazing, so you know that you need at least a minimum vertex cover,
-
and you need at most the minimum vertex cover plus one to be able to do it.
-
And the amazing thing is that distinguishing between both,
-
knowing one you need one and not the other, is actually really hard. It's NP-hard. So this is a recent result by
-
three Mathematicians:
-
Csobra , Woegunger and Hurkens.