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
        • 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:
  • 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 and
          • 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
        • 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 is on I.S. (independent set)
      • 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
    • 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!
    • 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
      • suppose: a minimal edge cover w/ edges
        • let
        • then degree of : can be high degree, too
          • e.g.
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>