Okay. So to this point we've proven the correctness of Prim's minimum spanning
sheet algorithm under an assumption, under an assumption that the cut property
is true. So, the purpose of this video was to
supply the missing proof to convince you of this cut property.
Let me remind you where we stand. So through all the minimum spanning tree
videos, we're assuming distinct edge costs.
All of this can be extended to edge costs with ties.
In particular, there's a version of the cut property when the edges have ties,
but we're just going to focus on the main ideas which were exposed already with
distinct edge costs. So what does the cut property say?
Well, it's meant to be a guarantee that an edge is safe to include on, in your
tree so far. So it justifies an iteration of a greedy
algorithm like Prim's algorithm. Specifically, consider an edge of a
graph, and suppose you can find some cut A, B.
So that, amongst all the edges that are crossing this cut, E is the cheapest.
So E, the edge E has to not just cross this cut,
but it has to be cheaper than any edge that crosses this cut.
If you can find just one cut of this form, so that E is the cheapest crossing
edge, then it's definitely not a mistake to
include E in your tree. You definitely want it.
It is in the MST. So this is a non-trivial claim and, let's
turn to the proof. At a high level, the plan will be not
that different than the correctness of our greedy scheduling algorithm for
minimizing the weighted sum of the completion times.
That is, we're going to use an exchange argument embedded in a proof by
contradiction. [COUGH] The type of contradiction will be
of the same form. We'll start with an optimal solution.
Suppose it doesn't have the property that we want it to have,
and then we do an exchange to make it even better, contradicting the assumption
that this solution is optimal. So specifically, if we argue by
contradiction we assume, that the cup property is false.
So let's just make sure we understand what that means.
If the cup property is false, then there's a graph and there's an edge,
which actually is the cheapest crossing some cut, and yet, that edge does not
belong to the minimum cost spanning tree T star.
The plan then is to exchange this missing edge E with some edge that isn't a tree T
star, which is more expensive, thereby getting a better spanning tree providing
the contradiction. So, this idea currently is a little bit
hand-wavy. To really execute it, we have to specify
which edge we're going to exchange the edge E with.
That's a subtle point and we'll develop it over the next couple of slides.
So let's begin with a sort of first cut attempt at an exchange argument.
So what's the world look like? Well, we have some cut of a graph.
So at one blob, the vertices is A and then the rest of the vertices are in this
blob B. this is the cut for which edge E is the
cheapest. And by our assumption in this proof by
contradiction, this cheapest edge E does not belong to the minimum spanning tree T
star. That said,
I claim while T star may not have this edge E to cross in this cut, it better
possess some other edge crossing this cut A, D.
So why is that true? Well, suppose the opposite, suppose in
fact T star did not have any edge crossing this cut A,
B, well then, T star wouldn't be connected. It wouldn't span all the
vertices, right?
Remember our proof of empty cut lemma, so if you had this empty cut and there's no
way to have a path from one side to the other side.
Okay? But that's spanning trees have to have
paths between each pair of vertices. So T star as a spanning tree have to
contain something from this cut, by assumption it doesn't contain edge E. So
it contains some other edge, let's call it F, that crosses this cut.
Now of course, since E is the cheapest edge crossing this cut and F is some
other edge crossing this cut, F is strictly more expensive than E.
And at this point, we seem beautifully set up to execute the desired exchange
arguement. We have the edge that the optimal solutions missing. We have a
canvid replacement edge F, which is more expensive.
So if we swap E and F, hopefully we get a new spanning tree that has strictly
smaller cost providing the desired contradiction.
But, things are more settled than they were with these scheduling applications.
The reason being is that schedules are simply sequences of jobs.
So whenever you do an exchange of two jobs, it's clear you get another
schedule. But spanning trees and graphs are subtle
objects and there's a question, if we take a spanning tree and we add one new
edge and delete an edge, do we get another spanning tree of the
graph or not? So the following quiz is going to ask you
to think about that question carefully. Okay. So what we wish that the answer to
this quiz was, was either answer A or answer C.
So A would be the cleanest solution. If it were always true that when you take
a spanning tree, you take an edge outside of the spanning tree and then you swap
those two edges, you get a new spanning tree,
then in fact, our proof of the cut property would be done, right?
We would just go on that previous slide. We would rip out the edge F from the
spanning tree. We'd plug in the edge E,
because E costs less than F, we'd get a spanning tree which was
cheaper. And we'd be done,
that would be our contradiction. Now if A wasn't true, we'd still be okay
if C was true. If maybe not every swap yields a new
spanning tree, but at least if you're swapping in the
edge that's the cheapest crossing some cut,
you get a spanning tree. Then we'd also be golden, because in
fact, we're only are trying to execute the swap,
the exchange, using an edge, which is the cheapest crossing some cut.
If you go back to the previous slide, you'll see that was the only case we
needed this fact to be true. Unfortunately, the correct answer to this
quiz is D. You need not get a new spanning tree when
you execute an exchange, even if you're plugging an edge which is the cheapest
edge crossing some cut. So to understand this better, let me the
picture that we had on the previous slide.
We had our cut A, B, we had our cheapest edge E which by assumption does not
belong to the spanning three T star, but we observed that T star has to contain at
least one other edge crossing this cut because it's connected and we called that
F. And we're wondering if swapping E and F
yields a new spanning tree or not. So, to reason about this, let me just
draw you what the rest of the spanning tree might look like.
So in this picture, this spanning tree T star is given by the pink edges.
And it's just to this path of five edges on the six vertices.
So, what happens if we exchange E and F? Well unfortunately, something bad
happens. So we certainly get a new subgraph of
five edges, after all, we just subtracted one and
added one. But this new spanning, this new subgraph
fails to be a spanning tree. It fails on both counts.
First of all, it obviously has a cycle and it's a four cycle and secondly, it's
not connected. The upper right vertex is just totally
disconnected from the rest of the rest of the vertices.
So that's no good. That's an exchange which just does not
produce a feasible solution and it is therefore not useful in our proof by
contradiction. Now, if you just want to salvage some
hope from this seemingly promising proof plan, we could take solace from the fact
that there is not just one pink edge crossing the cut A, B.
F isn't the only one, there's actually this other one on the bottom.
so let me call that E prime. Now, E being the cheapest edge crossing
this cut overall. Not only is E cheaper than F, it's
cheaper than E prime also. So in some sense with our motivation, we
could care less which edge we exchange E from crossing this cut, because it's
cheaper than all of them. And we see that at least in this example,
swapping with E prime yields a good solution, yields a feasible spanning
tree. So what have we learned?
What we've learned is that if we want to execute this exchange argument, we cannot
blithely exchange with any edge of T star that crosses this cut.
So the best case scenario, so what we're hoping is true that we can always find
some suitable edge, like E prime on the previous slide.
So that when we execute this swap, we do in fact, get a spanning tree.
And I'm happy to report that we can indeed always do this.
So what I need to explain is the procedure by which we exhibit edge, this
edge E Prime, which doesn't get us into trouble after we swap, which still gives
us a spanning tree after the swap. So let me explain the procedure by which
we identify this magical edge E prime that we can swap with and still be a
spanning tree. So here's the way to think about it, so
we've got this spanning tree T star, we've got this edge which is not yet in T
star. Now, if we just plug E into T star, we're
going to get a cycle. Why?
Well, a spanning tree, remember, it has a path between each pair of vertices. So if
this new edge, maybe its endpoints are U and V. T star already has a path between
U and V, so when you plug in this new direct edge between U and V, it closes
the loop, it gives you a cycle. So let's go ahead and call that cycle
capital C. Let me also redraw the picture from the
example on the previous slide so you can see what that cycle was in that special
case. Now, here's the pattern to notice about
this cycle capital C, at least in this example, which is that the lousy edge,
the edge F, for which when we swapped, we didn't get a spanning tree, that's off of
this capital C. Whereas, the good edge, the edge where we could do a swap and get
a spanning tree, E prime that's on this same cycle capital C.
And that turns out to be true in general. So, when you add the edge to the spanning
tree and you get a new cycle, that cycle is what furnishes the candidates for
swaps that will give you a new spanning tree.
So the one lingering concern then, we have this cycle.
We would, all edges of the cycle are going to be good candidates for the
swapping. Wee just need to make sure that there is some edge that actually crosses
this cut A, B like the edge E prime does in the picture.
But here, we're going to rely on a fact from a previous video, the double
crossing lemma. Remember the double crossing lemma says,
that if you have a cycle that crosses a cut at least once, then it has to cross
it twice. All right.
So if it'd cross once, then it has to loop back around, then in looping back
around, it's going to cross it a second time.
So, in this cycle capital C, we know it crosses the cut A, B once,
that's because it includes the original cheapest edge across the cut E.
So, it's got to cross it a second time. There's got to be an E prime in the cycle
crossing the cut and that's going to allow us to do the swap and get a new,
cheaper spanning tree completing the contradiction.
So, just to spell things out in a little more detail.
So what we do is we first say we use the double crossing lemma.
So, we have this reported minimum spanning tree T star.
We have this cheap edge E knot in it. We plug E into the spanning tree, we get
cycle, we call the cycle capital C. The cycle crosses the cut A, B once,
through the edge E. It crosses it a second time by the double
crossing lemma. We're going to call that edge E prime.
Since E prime crosses the same cut as E, we know that E prime is strictly more
expensive than E. Remember we use the cheapest one crossing
this cut, A, B.
So now what we do is we execute the swap with this new edge E prime.
So E prime in T star. The cheapest edge, E, is not in T star so
we can swap them. We can take,
we can rip E prime out, we can stick E in.
Now something I want you to think through carefully at home, convince yourself this
is true, is that because we plucked E prime from the cycle, this new tree which
I'm going to call capital T, this is a spanning tree necessarily.
You know, intuitively, the reason being, you plug in E and you get this one cycle
involving E, and then when you rip out E prime, you destroy the cycle.
And because it's on a cycle, you don't destroy connectivity between any pair of
veriticies, there is still one path between each pair.
But make sure you believe that, convince yourself at home.
And once you're so convinced, you will also realize that we've finished a proof.
We've executed our proof by contradiction.
since E was the cheapest edge crossing the cut, and E prime is another edge
crossing the cut, E is got to be cheaper.
Since T differs from T star only in the swap of these two edges,
it's aggregated cost has gone down and that contradicts the purported optimality
of T star comp completing the proof of the cut property.