COMP 2711H: Lecture 18
Date: 2024-10-14 09:02:26
Reviewed:
Topic / Chapter:
summary
❓Questions
Notes
Matchings (cont.)
-
Matching
- matching: set that no two edges share an endpoint
- suppose: graph is bipartite
- w/ parts
-
Bipartite and Matching
- what is condition for having a matching covering all ?
- consider
- if are bipartite:
-
- as they must be at least one edge from to
- theorem (Hall): in an
- there is a matching saturating iff.
- proof
- matching -> for all: trivial
- forall -> matching
- check: maximum matching
- let : be maximum matching
- suppose: does not cover all of
- then: it implies there is an edge connecting to another
- s.t. is not included in
- and being neighbor of
- take all alternating path from
- : has no matching
- thus it starts with non-matching edge
- then we must have a matching edge from to
- then a non-matching edge from to
- matches with completely
- : has no matching
- but, for there to be a perfect matching:
- as a pair for : must exist
- : can't be neighbor of
- that way we can extend the matching
- : can't be neighbor of either
- such does not exist
- and thus, that is not
- corollary: let be a -regular bipartite graph
- , has a perfect matching
- no. of edge:
- suppose
- what is no. of edges between and ?
- yet, not all edges of goes to
- thus:
- what is condition for having a matching covering all ?
-
Vertex cover
- vertex cover: set of vertices s.t. every has at least one endpoint in
- 👨🏫 easy to find a large vertex cover
- just like how easy is to find a small matching
- let be matching, a vertex cover
- if there is a vertex
- theorem: in every graph ,
- let there be a cycle
- is there a case:
- for an odd cycle:
- theorem (König): in every bipartite graph ,
- proof:
- : shown
- now prove:
- let be a minimum vertex cover
- however, there can be no edge between
- that way we have a larger matching
- implying that is not a minimum VC
- yet, there can be an edge between
- some edge will be lost when we separate
- some edge will be lost when we separate
- suppose
- how many neighbors does have in ?
-
- if , there is an unnecessary vertex in
- union of matching with : matching over overall
-
Independence
- a set s.t. no edge has both endpoints in
- theorem: is a VS iff
- as will be a VS
- theorem: in any graph w/ vertices:
-
- as they are complementary
-
-
Edge cover
- edge cover: subset of s.t. every vertex is incident to at least one edge in
- now all graph has an edge cover
- e.g. when there is an isolated vertex
- 👨🏫 a (stupid) corner case
- e.g. when there is an isolated vertex
- it is easy to find a large (e.g. )
- what is the minimum edge cover?
- discovery so far:
- for any graph
- in bipartite
- without isolated vertices (Gallai)
- 👨🏫 kind of funny: sum on size of two "edge" sets = size of all vertex
- for bipartite w/ no isolated vertices
- 👨🏫 simple math!
- for any graph
- Gallai theorem
- part 1: w/ matching of size , there exists an edge cover of size (at most)
- every edge in matching: covers 2 vertices
- and edges outside : might be connected as well
- part 2: if we have an edge cover of size
- then we have a matching of size (at least)
- edge cover: minimal if there is no stupid = unnecessary edge
- stupid edge: for , only covers its two endpoint
- that are already covered without
- stupid edge: for , only covers its two endpoint
- suppose: a minimal edge cover w/ edges
- let
- then degree of : can be high degree, too
- e.g.
- part 1: w/ matching of size , there exists an edge cover of size (at most)
graph TD 0(( )) 1(( )) 2(( )) 3(( )) 4(( )) 5(( )) 0---1 0---2 0---3 0---4 0---5
- all connected components: **star**
- i.e. tree with central point
- <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.08125em;">H</span></span></span></span>: a collection of starts
- how many starts o we have?
- w/ <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span></span></span></span> edges and <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">n</span></span></span></span> vertices
- have <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6667em;vertical-align:-0.0833em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span></span></span></span> connected components
- as <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6833em;"></span><span class="mord mathnormal" style="margin-right:0.08125em;">H</span></span></span></span> is a forest
- no. of components <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.7778em;vertical-align:-0.0833em;"></span><span class="mord">+</span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">n</span></span></span></span>
- finally, picking an edge from each CC: gives matching of size <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6667em;vertical-align:-0.0833em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span></span></span></span>