## Lecture 7

A couple of comments about today’s lecture:

1) Here’s a nice example (from Michel Goemans’ notes) of an instance where the max-matching is of size 8. Can you find such a matching? Can you find some set $U$ such that the Tutte-Berge formula is tight for $U$? By tight, I mean that $\frac{n + U - odd(G\setminus U)}{2} = 8$, or $U = odd(G\setminus U) - 2$.

2) For the algorithm, the goal is: Given $(G, M)$, find an augmenting path if there exists one.

Let me be formal and define: a flower has an even length alternating path starting at an open vertex (the stem) plus an odd length cycle (the blossom) which is alternating except for the two edges incident to the stem. (I wasn’t being explicit about the length of the cycle, which led to Jenny’s clarifying question; thanks, Jenny!) The length of the stem could be zero, in which case the cycle has an open vertex.

So the first theorem will be:

Theorem 1: Supppose the current matching $M$ is not a max-matching. (Then the graph has an $M$-augmenting path, by Berge.) Now there’s an algorithm that runs in $O(m)$ time and finds either (a) an $M$-augmenting path $P$, or (b) a flower.

By toggling the stem, we can assume that it finds (a) an $M$-augmenting path $P$, or (b) a blossom $B$ with an empty stem. If we are in case (a), we’ve found the augmenting path, and we’re done. In case (b), we now shrink the blossom to get the graph $G/B$, along with a matching $M/B$. (This matching $M/B$ is the obvious one: it contains all the edges not in $B$.) Note that $v_B$, the node corresponding to $B$ contracted, is open in $G/B$.

What we’ll do is to recursively find an $M/B$-augmenting path in $G/B$. (Not a max-matching as I stated, sorry!) And then we extend this augmenting path back to find an $M$-augmenting path in $G$. To show this is kosher, we need the second theorem (now corrected):

Theorem 2: There exists an an $M$-augmenting path in $G$ if and only if there exists an $M/B$-augmenting path in $G/B$.

We’ll recap all this, prove both the two theorems in the next lecture, and use it to prove Tutte-Berge.
{"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 0, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 28, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0, "katex": 0, "math-container": 0, "wp-katex-eq": 0, "align": 0, "equation": 0, "x-ck12": 0, "texerror": 0, "url": "https://cmuadvancedalgos.wordpress.com/2015/01/28/lecture-7/", "fetch_time": 1540187590000000000, "content_mime_type": "text/html", "warc_filename": "crawl-data/CC-MAIN-2018-43/segments/1539583514708.24/warc/CC-MAIN-20181022050544-20181022072044-00193.warc.gz", "warc_record_offset": 619700174, "warc_record_length": 17000, "token_count": 599, "char_count": 2090, "score": 4.0625, "int_score": 4, "crawl": "CC-MAIN-2018-43", "snapshot_type": "longest", "language": "en", "language_score": 0.8698289394378662, "file_path": "/sailhome/yjruan/project/latent-lm/data/processed/finemath-4plus/finemath-4plus/train-00020-of-00064.parquet"}