Graph Theory MATH322

Chapter 1 - Definitions and Special Graphs

Graph Definitions (1.1)

Basic Definitions

A graph \(G\) is a tuple \((V(G), E(G))\) consisting of a nonempty and finite set of vertices \(V(G)\) and a finite (multi)set of edges \(E(G)=(v\in V(G), w\in V(G))\subseteq V(G)\times (V(G)\) that connect the vertices.

A graph of order \(n\) is a graph with \(n\) vertices; a graph of size \(m\) has \(m\) edges.

ADV The set of all graphs is denoted \(\mathcal{G}\); the set \(\mathcal{G}_n\subset \mathcal{G}\) is the set of all graphs with \(n\) vertices.

A simple graph is a graph that doesn't contain loops or multiple edges, i.e. the edge-set is not a multiset. A multigraph may contain such things.

Two vertices are adjacent if they are connected by an edge; the edge is incident to both vertices. Likewise, two edges are adjacent if they are incident to the same vertex

Degree

The degree \(\deg({v})\) of vertex \(v\) is the number of edges incident to \(v\).

The degree sequence of a graph \(G\) is the non-decreasing sequence formed of the degrees of the vertices \(V(G)\) of \(G\).

Isomorphism

Two graphs \(G\) and \(H\) are isomorphic (denoted \(G \simeq H\)) if they have the same positions of the edges and vertices.

Isomorphic graphs have the same degree sequence, and for any pair of "equivalent" nodes between isomorphic graphs, the multiset of degrees of adjacent nodes are the same.

A graph with labelled vertices is a labelled graph. Labelling two otherwise isomorphic graphs may break the isomorphism, as some vertices are no longer interchangeable.

Connectivity

A graph is connected if every vertex can be reached from every other vertex; otherwise, the graph is disconnected.

We can contract edge \(e\in E(G)\) of graph \(G\) by removing the edge and joining the two vertices it connects, i.e. for edge \(vw\), \((E(v), E(w))\to E(v)\cup E(w)\)

Subgraphs

A subgraph \(G_0\) of graph \(G\) is a "subset" of \(G\), specifically \(V(G_0)\subseteq V(G)\) and \(E(G_0)\subseteq E(G)\)

Since subgraphs can be found by removing edges and/or vertices from the "supergraph", they can be expressed as set differences between the supergraph and a set of vertices \(G\setminus \set{v}\), set of edges \(G\setminus \set{e}\), or another subgraph \(G\setminus S\).

A clique \(C\) is subgraph of graph \(G\) that is a complete graph, i.e. \(C\simeq K_m\) for some \(m\leq \# V(G)\). The size of the largest clique in \(G\) is denoted \(\omega(G)\).

Aside: the problem of determining if a graph \(G\) has a subgraph isomorphic to another graph \(H\) is known as the subgraph isomorphism problem, and is NP-complete.

ADV Lemma 5.19: Subgraph Isomorphism Properties

Lemma
If \(f:G\to H\) is an isomorphism between graphs \(G\) and \(H\), then:

Matrix Representations

The adjacency matrix \(A_G\) of a graph \(G\) with \(n=\#V(G)\) vertices is the \(n\times n\) matrix whose \(ij\)th entry is the number of edges joining vertices \(v_i\) and \(v_j\).

The incidence matrix \(I_G\) of a graph \(G\) with \(n\) vertices and \(m\) edges is the \(n\times m\) matrix whose \(ij\)th entry is \(1\) if \(v_i\) is incident with edge \(e_j\) and \(0\) otherwise.

Aside: there are meanings attributed to "doing linear algebra" on these matrices; this is explored in [[Chapter 8 - Spectral and Matroid Graph Theory|Chapter 8: Spectral Graph Theory]]

Complement

The complement \(\overline{G}\) of graph \(G\) has the same vertices as \(G\), but every edge in \(G\) is not in \(\overline{G}\), and every edge not in \(G\) is in \(\overline{G}\).

A graph \(G\) is self-complimentary if it is isomorphic to its own complement, i.e. \(G\simeq \overline{G}\).

Cartesian Product ADV

The cartesian product \(G\square H\) of graphs \(G\) and \(H\) is defined by

E.g. \(P_5 \square P_8\) forms a \(5\times 8\) grid.

ADV Multigraphs

An undirected multigraph \(G=(V(G), E(G), B(G))\) contains sets of vertices and edges as well as a incidence function \(B : (v, e)\to\set{0, 1, 2}\) that describes how many ends of the edge \(e\) are incident to node \(v\).

The simplification of a multigraph \(\text{si}(G)\) can be obtained by (essentially) removing loops and any "duplicate" edges.

Special Graphs (1.2)

Name Symbol Characterization Edge count
Null graph \(N_n\) A graph without edges (possibly with nodes), i.e. \(V(G)=\varnothing\) \(0\)
Complete graph \(K_n\) The simple graph where any two vertices are adjacent \(\displaystyle {n\choose 2}=\frac{n(n-1)}{2}\)
Cycle graph \(C_n\) A connected graph with \(n\) vertices where each vertex has degree \(2\); the graph consists of a single cycle \(n\)
Path graph \(P_n\) Obtained by deleting an edge from \(C_n\) \(n-1\)
Wheel graph \(W_n\) Obtained by adding vertex to \(C_{n-1}\) that is connected to every other vertex \(2(n-1)\)
\(r\)-regular graph A graph where every vertex has degree \(r\) \(\dfrac{nr}{2}\)
Cubic graph A \(3\)-regular graph, e.g. \(W_4\) and \(K_4\) \(\dfrac{3n}{2}\)
Platonic Graph A graph that is a projection of the 5 platonic solids not unique
Bipartite Graph A graph that can be coloured such that adjacent vertices have different colors not unique
Complete Bipartite Graph \(K_{r,s}\) A simple bipartite graph with \(r\) white vertices and \(s\) black vertices, where every pair of black and white vertices is connected \(rs\)
ADV Complete \(m\)-partite graph \(K_{r_1, \dots, r_m}\) A graph with \(m\) sets of nodes with sizes \(r_1, \dots, r_m\) (so \(\displaystyle\sum\limits_{i=1}^{m}r_i=n\)) where two nodes are adjacent iff they lie in different sets \(\dfrac{1}{2}\displaystyle\sum\limits_{i=1}^{m}\sum\limits_{j=1, j\ne i}^{m} r_i r_j\)
\(k\)-cube/hypercube \(Q_k\) The graph of a (possibly higher) dimensional cube; each vertex corresponds to an entry in \(\set{0, 1}^n\), and adjacent vertices are those where one digit is different. Alternate expression: \((K_2)^k\) \(k2^{k-1}\), for dimension \(k=\log_2{n}\).
ADV Circulant \(C_n(S\subseteq [n])\) (Informal) For a subset \(S\subseteq\set{1\dots n}\), the circulant is the graph where nodes correspond to the equivalence classes of \(\mathbb{Z}_n\) and the edges are the cycles formed by skipping \(s\in S\) vertices each time. E.g. \(C_{12}(\set{7})\) is isomorphic to the circle of fifths. \(n \times \#S\)
ADV \(r\times s\) square grid graph Defined by \(P_r\square P_s\) \(2rs\)
ADV Hamming Graph \(H(r, d)\) Defined by \((K_r)^{d}=K_r\square\dots\square K_r\). Edges describe adjacent (\(d=1\)) codewords in a Hamming code. Math 422 forwshadowing! \(\dfrac{d(r-1)r^d}{2}\)

ADV Bipartite Graphs

A bipartition of graph \(G\) is an ordered pair of subsets \((A, B)\) where

A graph with a bipartition is a bipartite graph.

ADV Properties of Bipartite Graphs

Proposition

  1. Isomorphic graphs are either both or neither bipartite
  2. Every subgraph of a bipartite graph is bipartite
  3. A cycle graph \(C_n\) is bipartite if and only if \(n\) is even

Theorem 2.1.1: Characterization of Bipartite Graphs

Theorem
A graph \(G\) is bipartite if and only if \(G\) doesn't contain any cycles of odd degree, i.e. all the cycles of \(G\) are of even degree.

Preliminary Results (1.3)

Graphic Sequences

A graphic sequence is any non-decreasing integer sequence that is the degree sequence of a graph.

Havel/Hakimi Algorithm

Algorithm
We determine whether a non-decreasing sequence \(D=(d_1, d_2, \dots, d_n)\) is graphic:

For any \(D'\), \(D\) is graphic if and only if \(D'\) is also graphic. So, once we recognize a clearly graphic (e.g. \(N_n\)) or non-graphic sequence, we may stop.

Edges and Vertices

Lemma 1.3.1

Lemma
Any simple graph \(G\) of order \(n\geq 2\) must have \(2\) vertices of the same degree

Handshaking Lemma

Lemma
For any graph \(G\), the sum of all degrees in a graph is even, i.e. \(2 \mid \displaystyle\sum\limits_{v\in V(G)}\deg{(v)}\)

Types of Problems in Graph Theory (appendix)

Aside: Applications (1.4)

In class, we discussed various applications in the forms of situations that can be interpreted and treated like graphs:

Chapter 2 - Paths, Cycles, and Connectedness

Walks, Paths, Cycles (2.1)

A walk \(W=\set{v_0v_1, v_1v_2, \dots, v_{\ell(W)-1}v_{\ell(W)}}\) with length \(\ell(W)\) in a graph \(G\) is a sequence of edges of \(G\), starting at the initial vertex and ending at the final vertex.

A trail is a walk where no edge is repeated.

A path is a trail (and thus also a walk) where no vertices are repeated, with the possible exception of the initial and final vertices being the same.

A walk, trail, or path is closed if the initial and final vertices are the same.

A cycle is a closed path.

Theorem 2.1.1: Bipartite \(\iff\) even cycles

Theorem
A graph \(G\) is bipartite if and only if each cycle in \(G\) has an even length.

Lemma 2.3.1

Lemma
If every vertex of graph \(G\) has a degree of at least \(2\), i.e. \(\forall v\in V(G), \deg{v}\geq 2\), then \(G\) contains a cycle.

Connectedness (2.2)

A graph \(G\) is connected if there is a path between any two vertices in \(G\).

ADV Proposition 6.14: Equivalent Connectedness Definitions

Proposition
The following are equivalent for graph \(G\)

  1. \(G\) is connected
  2. \(G\) is nonempty, such that for all vertices \(v\in V(G)\) and \(w\in V(G)\), a \((v, w)\)-path exists in \(G\)
  3. There exists a vertex \(v\in V(G)\) such that for all \(w\in V(G)\), a \((v, w)\)-path exists

Vertex \(v\) is reachable from vertex \(w\) in graph \(G\) if a walk exists between \(v\) and \(w\).

The distance \(d(v, w)\) between vertices \(v\) and \(w\) in graph \(G\) is the length of the shortest path between them.

The boundary \(\partial S\) of a subset \(S\subseteq V(G)\) is the set of edges of \(G\) with exactly one end in \(S\), i.e. \(\partial S =\set{e\in E(G) : |e\cap S|=1}\)

Bounds on Edge Count

Theorem 2.2.1

Theorem
If \(G\) is a simple graph with \(n\) vertices, \(k\) components, and \(m\) edges, then \(n-k\leq m \leq \dfrac{(n-k)(n-k+1)}{2}\).

Corollary 2.2.2

Corollary
Any simple graph with \(n\) vertices and more than \(\dfrac{(n-1)(n-2)}{2}\) edges must be connected.

Disconnection and Cuts

Edges

A disconnecting set of connected graph \(G\) is a set of edges \(S_E \subseteq E(G)\) whose removal disconnects \(G\).

A cutset is a disconnecting set that does not have a proper subset that is also a disconnecting set, i.e. it is the smallest disconnecting set.

A bridge \(e\) is a single edge in graph \(G\) whose removal increases the number of components \(G\) has, i.e. \(c(G\setminus\set{e})>c(G)\).

For connected \(G\), we define the edge-connectivity \(\lambda(G)\) as the size of the smallest cutset of \(G\).

Vertices

A separating set of connected graph \(G\) is a set of vertices \(S_V \subseteq V(G)\) whose removal disconnects \(G\).

The vertex-connectivity or connectivity \(\kappa(G)\) of a graph is the minimum number of vertices that must be removed to disconnect the graph

Eulerian Graphs (2.3)

A connected graph \(G\) is Eulerian if it has an Eulerian trail, which is a closed trail containing every edge \(e\in E(G)\). Recall that a trail doesn't have repeated edges.

A connected graph \(G\) is semi-Eulerian if it has a non-closed trail visiting every vertex without repeating.

Theorem 2.3.2: Characterization of Eulerian Graphs

Theorem
A connected graph \(G\) is Eulerian if and only if the degree of every vertex is even.

By corollary, \(K_{2n-1}\) and \(K_{2n, 2m}\) is Eulerian for all \(m, n\in \mathbb{N}\)

Corollary 2.3.3: Characterization of semi-Eulerian Graphs

Corollary
A connected graph \(G\) is semi-Eulerian if and only if it has exactly \(2\) vertices of odd degree. These will be the the initial and final vertices of the trail.

Fleury's Algorithm

Algorithm
For Eulerian or semi-Eulerian graph \(G\), the Eulerian trail can be found/generated by

  1. Picking a starting node (for semi-Eulerian graphs, one of the nodes of odd degree)
  2. Picking a random edge to travel down; only pick a bridge if it is the only choice available
  3. Erase each edge as it is traversed

Hamiltonian Graphs (2.4)

A connected graph \(G\) is Hamiltonian if it has a Hamiltonian cycle, which is a cycle that includes every vertex \(v\in V(G)\) exactly once.

A connected graph \(G\) is semi-Hamiltonian if it has a (non-closed) path that passes through each vertex \(v\in V(G)\) exactly once.

Theorem 2.4.1: Ore's Theorem

Theorem
If \(G\) is a simple graph with \(n\geq3\) vertices where \(\deg{v}+\deg{w}\geq n\) is true for each pair \(v, w\) of non-adjacent vertices in \(G\), then \(G\) is Hamiltonian.

Corollary To Ore's Theorem

Corollary
A complete bipartite graph is Hamiltonian if and only if it is of the form \(K_{n, n}\)

Bipartite graphs with an odd number of vertices cannot be Hamiltonian because such a Hamiltonian cycle would need to be odd (Assignment 2).

Aside: A Hamiltonian cycle in a planar graph \(G\) corresponds to a partition of the vertices of the dual graph \(\star{G}\) into two subsets (namely, the interior and exterior of the cycle) whose induced subgraphs are both trees (wikipedia)

Optimization Problems and Algorithms (2.5)

Shortest path problem: In a (positive) edge-weighted graph \(G\), what is the least expensive (weighted) path between two given nodes?

Dijkstra's Algorithm

Algorithm
To find the path of least weight between node \(v\) all other nodes in weighted graph \(G\)

  1. Assign cost \(c(v)=0\), since travelling "between" the same node costs nothing
  2. Define temporary costs of the nodes adjacent to \(v\) as the weights of the edge connecting them to \(v\)
  3. The smallest temporary cost becomes permanent, and the process repeats on the adjacent node of smallest cost that hasn't yet been visited (in the future, the other temporary values may be decreased)
  4. Repeat this process until all nodes have permanent values. At this point, we find a spanning tree that shows the shortest paths from \(v\) to every other vertex

Chinese Postman Problem: In a (positive) edge-weighted graph \(G\), what is the least expensive trail that passes through all of the nodes that starts and ends at the same vertex

Travelling Salesman Problem: In a (positive) edge-weighted complete graph \(G\), what is the least expensive Hamiltonian cycle?

Counting Walks (2.6)

Theorem 2.6.1: Matrix power \(\iff\) walk counting

Theorem
If \(A_G\) is an adjacency matrix for graph \(G\), then the \(ij\)th entry of \(A^k\) denotes the number of distinct walks from vertex \(i\) to vertex \(j\) in \(G\).

We can use the principle in the inductive step to count paths for small \(k\) without having to perform matrix multiplication.

Corollary 2.6.2

Corollary
In a loopless graph \(G\) with adjacency matrix \(A_G\), the number of triangles is given by \(\dfrac{\text{Trace}(A_G^3)}{6}\).

Chapter 3 - Trees

Definitions

A tree \(T\) is a connected graph with no cycles. A forest is a (not necessarily connected) graph with no cycles. A leaf is a vertex of degree \(1\).

Theorem 3.1.1

Theorem
The following is uniquely true for a tree \(T\) with \(n\) vertices:

  1. Any two vertices \(v, w \in V(T)\) are connected by a unique path
  2. Every edge \(e\in E(T)\) is a bridge, i.e. \(T\) is minimally connected
  3. \(T\) contains \(n-1\) edges, i.e. \(\# E(T)=n-1\)
  4. ADV \(T\) must have at least \(2\) leaves if \(n\geq 2\)

Spanning Trees

We generate a spanning tree of a connected graph \(G\) by continually removing edges from cycles until no cycles remain in the graph.

Theorem 3.1.2

Theorem
If \(T\) is a spanning tree of connected graph \(G\), then

  1. Each cutset of \(G\) has an edge in common with \(T\)
  2. Each cycle of \(G\) has an edge in common with the complement of \(T\)

Counting Trees

Labelled Trees

Theorem: Cayley's Formula

Theorem
There are \(n^{n-2}\) non-isomorphic labelled trees \(T_n\) with \(n\) vertices.
Prüfer Sequences

A Prüfer sequence or Prüfer code is a unique \(n\)-ary sequence (i.e. where \(a_i\in \set{1, \dots, n}\)) associated with a labelled tree with \(n\) vertices.

Tree → Prüfer sequence: Find leaf \(s_1\in V(T)\) with the smallest label. The first term of the Prüfer sequence \(A\) will be the neighbour of \(s_1\). Delete \(s_1\) from \(T\) (i.e. iterate \(T=T\setminus \set{s_1}\)). Repeat this process until no vertices remain.

Prüfer sequence → tree: for \(n\)-ary sequence \(A=(a_1, a_2, \dots, a_{n-2})\), we construct the corresponding tree by finding the smallest \(a_0 \in \set{1, \dots, n}\) that is not in \(A\). We join vertex with label \(a_0\) to the first vertex in \(A\) (initially \(a_1\)). Next, we update \(A\) by removing the first element and appending \(a_0\) to the back end. This repeats until we have completely replaced \(a\); the last edge the two nodes missing from the last state of \(A\).

Spanning Trees

We define \(\tau(G)\) as the number of spanning trees of connected, labelled graph \(G\).

Matrix Tree Theorem/Kirchoff's Theorem

Theorem
Let \(A_G\) be the \(n\times n\) adjacency matrix of loopless graph \(G\) of order \(n\). Let \(D_G\) be the diagonal graph whose \((i, i)\)th entry is \(\deg{v_i}\), for \(v_i\in V(G)\). Then \(\tau(G)\) is equal to any cofactor of the Laplacian matrix \(D-A\).

ADV Alternatively, we can define \(\tau(G)=\dfrac{1}{n}\lambda_1 \lambda_2 \dots \lambda_{n-1}\), where \(\lambda_1 \dots \lambda_{n-1}\) are the eigenvalues of the Laplacian matrix

If all spanning trees in graph \(G\) pass through vertex \(v\in V(G)\) (i.e. \(v\) is a cut-vertex), then for the components \(C_1, C_2\) of \(G\) induced by \(v\), we have \(\tau(G)=\tau(C_1\cup\set{v})\times \tau(C_2\cup\set{v})\). This is because each component has a spanning tree that includes \(v\).

Bipartite Graphs

As pre-corollaries, we have \(\tau(K_{2, n})=n2^{n-1}\) and \(\tau(K_{3, n})=n^{2} 3^{n-1}\).

Theorem 3.1.5: Spanning Tree Counts of Bipartite Graphs

Theorem
\(\tau(K_{m, n})=m^{n-1} n^{m-1}\)

ADV Non-labelled Trees

Enumerating non-labelled trees is a much less trivial problem, requiring knowledge of combinatorics not assumed or covered in this course.

A useful way to manually generate all the non-isomorphic trees on \(n\) vertices is to list all trees \(T\) by \(\Delta(T)\), where \(\Delta(T)=k\) for each \(2 \geq k \geq n-1\). \(k=2\) corresponds to the graph \(P_n\) and \(k=n-1\) corresponds to the tree of depth \(2\) (i.e. \(W_{n}\setminus E(C_{n-1})\)).

ADV Relating Edge, Vertex, and Component Counts

Define the attributes of \(G\) as \(\#V(G)=n\), \(\#E(G)=m\), and \(c(G)=c\).

[!Theorem 7.5] ADV Theorem 7.5 For all graphs \(G\) we have \(m\geq n-c\), where \(m=n-c\) if and only if \(G\) is a forest.

ADV Corollary 7.6

Corollary
For all graphs \(G\), we have \(m\geq n-1\), where \(m-n-1\) if and only if \(G\) is a tree

ADV Theorem 7.8: Two-out-of-three Theorem

Theorem
Any two of the following conditions implies the other

Minimum Connector Problem and Kruskal's Algorithm

Minimum Connector Problem: given a edge-weighted, (not necessarily connected) graph \(G\), what is the least expensive spanning tree? This problem can be solved with Kruskal's Algorithm (\(\Theta(E\log{E})\)).

Kruskal's MST Algorithm

Algorithm
Begin with the edge \(e_1\) of the smallest weight. Define the rest of \(e_2, \dots, e_{n-1}\) as the next smallest edge that does not form a cycle.

Interesting Conjectures

Graceful Tree Conjecture

Conjecture
If \(T\) is a tree with \(m\geq 1\) edges, then the vertices of \(T\) can be assigned a graceful labelling, i.e. labelled \(0, 1, 2, \dots m\) such that the edge-differences (difference between adjacent vertices) are \(1, 2, \dots m\).

Ringel's Conjecture/Theorem (Proved 2020)

Conjecture
Every complete graph \(K_{2n+1}\) can be perfectly tiled by any tree with \(n+1\) vertices

ADV Search Trees

A search tree augments a spanning tree with extra information that improves navigation within the graph: a root vertex \(\star{v}\), a parent function \(\text{pr} : V(T)\to V(T)\cup\set{\text{null}}\), and a level function \(\ell : V(T)\to \mathbb{N}\).

A search tree can be generated by starting with a random root node and randomly picking edges in the boundary that connect to that node, assigning the root as a parent, and repeating the process recursively:

Create-Search-Tree (Graph G, Vertex v* \in V(G)) -> pr (function), l (function):
    let W = {v*}
    let F = {}
    let pr(v) = null
    let l(v) = 0
    let Boundary = d(W)
    
    while(Boundary is nonempty)
        pick Edge e=xy with x in W and y not in W
        W = W \union {y}
        F = F \union {e}
        pr(y) = x
        l(y) = 1+l(x)
        Boundary = d(W)
    
    return functions pr, l 

ADV Theorem 7.15: Search Trees

Theorem
For inputs and outputs \(G\), \(\star{v}\in V(G)\), \(\text{pr} : V(G)\to V(G)\cup\set{\text{null}}\), and \(\ell : V(G)\to \mathbb{N}\) of the algorithm above:

Chapter 4 - Planarity

Definitions (4.1)

A planar graph is a graph that has a plane drawing/planar embedding, i.e. that can be drawn on a plane without any edges crossing.

ADV Formal Definition of Planar Embedding

Formalism
A planar embedding of \(G\) is a pair of sets \((\mathcal{P}, \Gamma)\) such that

  1. \(\mathcal{P} = \set{p_v : v\in V(G)}\) is a set of points in \(\mathbb{R}^2\) indexed by \(V(G)\)
  2. \(\Gamma=\set{\gamma_e :e\in E(G)}\) is a set of distinct simple curves in \(\mathbb{R}^2\) indexed by \(E(G)\)
    • Note: we define a curve as an injective continuous function \(\gamma: [0, 1] \to \mathbb{R}^2\); broadly, a curve interpolates between two endpoints
  3. For any edge \(e\in E(G)\), \(\gamma_e(0)\) and \(\gamma_e(1)\) correspond to the points \(p_v\) that are connected by \(e\), i.e. where \(B(G)(v, e) > 0\)
    • \(\gamma_e(0)=\gamma_e(1)\) if and only if \(e\) is a loop at \(v\)
  4. For any vertex \(v\) and edge \(e\), if \(p_v\in\gamma_e\), then \(B(v, e)>0\) and \(p_v\) is either equal to \(\gamma_e(0)\) or \(\gamma_e(1)\) (any vertex that lies on an edge is a adjacent to it, and lies at an endpoint)
  5. For edges nonequal \(e, h\in E(G)\), if \(0 < s, t < 1\) and \(\gamma_e(s)=\gamma_h(t)\), then \(s, t\in\set{0, 1}\) (distinct edges may only intersect at their endpoints).

ADV Jordan Curve Theorem (Topology)

Theorem
For simple closed curve \(\gamma\) in \(\mathbb{R}^2\), \(\mathbb{R}^{2}\setminus\gamma\) has exactly two connected components that correspond to the interior and exterior of \(\gamma\). We say the curve separates these components.

The crossing number \(\text{cr}(G)\) of graph \(G\) is the minimum number of crossings required to draw \(G\) in the plane.

Characterizing Planar Graphs

ADV Lemmae 8.4, 8.5

Lemma

Theorem 4.1.1

Theorem
The graphs \(K_5\) and \(K_{3, 3}\) are non-planar

Two graphs are homeomorphic if one can be constructed from the other by "splitting" existing edges by inserting new vertices.

Theorem 4.1.2: Kuratowski's Theorem

Theorem
A graph is planar if and only if it does not contain a subgraph homeomorphic to \(K_5\) or \(K_{3, 3}\).

A good strategy for figuring out if small-ish graph are planar (i.e. have a subgraph homeomorphic to \(K_5\) or \(K_{3, 3}\)) is to draw vertices (and appropriate edges) one-by-one, taking care not to cross edges. Either a new vertex can be drawn without creating a crossing, or some subgraph homeomorphic to \(K_5\) or \(K_{3, 3}\) exists and can be identified by inspection.

Euler's Formula (4.2)

A planar graph \(G\) divides the plane into faces, including the unbounded infinite face "around" the graph.

Theorem 4.2.1: Euler's Formula

Theorem
For simple connected planar graph \(G\) with \(n\) vertices, \(m\) edges, and \(f\) faces (in a plane drawing), we have \(n-m+f=2\).

Corollary 4.2.2

Corollary
For simple connected planar graph \(G\) with \(n\geq 3\) vertices and \(m\) edges, we have

ADV Generalization of Corollary 4.2.2 to Arbitrary Girth

Corollary
For simple connected planar graph \(G\) with \(n\geq 3\) vertices, \(m\) edges, and girth \(g\), we have \(m\leq \displaystyle\left(\frac{1}{1-\frac{2}{g}}\right)n-\frac{2}{1-\frac{2}{g}}\)

Theorem 4.2.3

Theorem
Every simple planar graph \(G\) has a vertex of degree at most \(5\)

ADV Component Generalization of Euler's Formula

Theorem
For simple planar graph \(G\) with \(n\) vertices, \(m\) edges, \(f\) faces (in a plane drawing), and \(c\) components, we have \(n-m+f=c+1\).

ADV Faceshaking Lemma

The footprint \(\text{fp}(H)\subseteq \mathbb{R}^2\) of subgraph \(H\) of \(G\) with planar embedding \((\mathcal{P}, \Gamma)\) is the union of the points and curves representing the vertices and edges in \(H\) when "rendered" in \(\mathbb{R}^2\).

The boundary \(\partial F\) of face \(F\) is the set of edges and vertices whose curves and points (respectively) are contained in \(F\subseteq \mathbb{R}^2\).

The degree of face \(F\) is the sum of the number of edges and bridges adjacent to \(F\)

ADV Faceshaking Lemma

Theorem
For graph \(G\) with planar embedding \((\mathcal{P}, T)\) and set of faces \(\mathcal{F}\), we have \(\displaystyle\sum\limits_{F\in \mathcal{F}}\deg{F}=2 \times \# E(G)\)

Graphs on Non-planar Surfaces (4.3)

The genus \(g(G)\) of graph \(G\) is the smallest genus such that \(G\) can be drawn on a surface of that genus without crossings.

Theorem 4.3.1: Relating Crossing Number and Genus

Theorem
For any graph \(G\), we have \(g(G)\leq\text{cr}(G)\)

Theorem 4.3.2: Genus Generalization of Euler's Formula (Topological Invariant)

Theorem
For connected graph \(G\) of genus \(g\) with \(n\) vertices, \(m\) edges, and \(f\) faces, we have \(n-m+f=2-2g\)

Theorem 4.3.3: Constraint on Genera of Simple Graphs

Theorem
For simple graph \(G\) with \(n\) vertices and \(m\) edges, we have \(g(G)\geq\left\lceil\dfrac{m-3n}{6}+1\right\rceil\)

Theorem 4.3.4: Ringel/Young Theorem

Theorem
\(g(K_n)= \left\lceil\dfrac{(n-3)(n-4)}{12}\right\rceil\)

ADV Proposition 8.16

Proposition

If \(G\) is a connected simple planar graph with at least \(3\) vertices and \(n_d\) represents the number of vertices in \(G\) with degree \(d\) for each \(d\in \mathbb{N}\), then \[5n_1+4n_2+3n_3+2n_4+n_5\geq 12 + n_7 + 2n_8 + 3n_9 + \dots\]

where the equality holds if and only if each face has degree \(3\), i.e. is a triangle.

ADV Stereographic Projection

Stereographic projection is the process of extending the line segment that intersects the center of a sphere and a point on the surface until it intersects with a plane (\(\mathbb{R}^2\)) below the sphere. A graph that is planar on a sphere can be stenographically projected onto a flat plain while retaining its planarity, and vice-versa.

Thus, the plane is topologically homeomorphic to the sphere; a graph has a planar embedding if and only it can be drawn on a sphere without crossings.

Duality (4.4)

The dual graph \(\star{G}\) of planar graph \(G\) is the graph obtained by drawing a vertex in each face of \(G\) and connecting the vertices of adjacent faces with edges.

If \(G\) is a connected planar graph, then \(\star{G}\) will also be a connected planar graph.

Lemma 4.4.1: Relation of Characteristics between a graph and its dual

Lemma
The dual \(\star{G}\) of connected planar graph \(G\) with \(n\) vertices, \(m\) edges, and \(f\) faces will have \(f\) vertices, \(m\) edges, and \(n\) faces

Theorem 4.4.2

Theorem
For any connected planar graph \(G\), \(\star{\star{G}}\simeq G\), i.e. \(G\) is always isomorphic to its own "double dual"

Dual Concepts

Properties are dual if property \(\mathsf{A}\) of \(G\) corresponds to property \(\mathsf{B}\) of \(\star{G}\). Thus, theorems about \(\mathsf{A}\) in \(G\) correspond to theorems about \(\mathsf{B}\) in \(\star G\).

Theorem 4.4.3

Theorem
For any connected planar graph \(G\) with dual \(\star{G}\), a set \(S\subseteq E(G)\) of edges in \(G\) forms a cycle if and only if the corresponding set \(\star{S}\subseteq V(\star{G})\) in \(\star{G}\) form a cutset

Corollary 4.4.4

Corollary
A set of edges in \(G\) form a cutset if and only if the corresponding edges in \(\star{G}\) form a cycle

ADV Appendix: Extra Concepts

Platonic Solids

A platonic solid is any polyhedron represented by a connected \(d\)-regular plane embedding that is face-\(k\)-regular. There are exactly \(5\) such graphs (where embedding is unique up to isomorphism), i.e. possible values of \((d, k)\):

Deriving Global Statements about Types Planar Graphs

Often, if we know properties about a graph \(G\), we can describe \(V(G)\), \(E(G)\), and \(F(G)\) (if \(G\) is planar) as series/sums, usually utilizing the handshaking and faceshaking lemmas. We can then substitute these into Euler's formula to relate them in a sequence.

We can then use this formula to find properties about the type of graph we've described.

Chapter 5 - Coloring

Coloring Vertices (5.1)

Loopless graph \(G\) is \(k\)-colorable if we can color the vertices of \(G\) with \(k\)-different colors such that no adjacent vertices are the same color.

The chromatic number \(\chi (G)\) of \(G\) is the integer \(k\in \mathbb{N}\) such that \(G\) is \(k\)-colorable but not \(k+1\)-colorable.

Theorem 5.1.1: Relation between Chromatic Number and Clique size

Theorem
For any graph \(G\), we have \(\chi(G)\geq \omega(G)\)

Theorem 5.1.2: Relation between \(\chi(G)\) and \(\Delta(G)\)

Theorem
For any simple graph \(G\), we have \(\chi(G)\leq \Delta(G)+1\)

Greedy Coloring Algorithm

Algorithm
We look at the vertices of \(G\) in order, and assign the first color that isn't adjacent to the current vertex. If no such color exists, we add a new one.

Theorem 5.1.3: Brook's Theorem

Theorem
If \(G\) is a simple graph with \(\Delta(G)\geq 3\) that isn't complete or an odd cycle, then \(\chi(G)\leq \Delta(G)\)

Aside: An open problem in graph theory is the chromatic number of the unit distance graph of \(\mathbb{R}^2\), i.e. the graph where the vertices are the points of \(\mathbb{R}^2\) and vertices are adjacent iff they have a Euclidean distance of \(1\). Currently, we know this number is between \(5\) and \(7\) (inclusive).

Coloring Vertices of Planar Graphs

Note: these theorems are equivalent to finding the minimum number of colors needed to color the faces of a cubic planar graph without bridges. If graph can be face-colored with \(k\) colors, it is \(k\)-colorable(f).

Theorem 5.1.4: 6-color Theorem

Theorem
Every simple planar graph is \(6\)-colorable

Theorem 5.1.5: 5-color Theorem (Heawood, 1890)

Theorem
Every simple planar graph is \(5\)-colorable

Theorem 5.1.6: 4-color Theorem (Appel and Haken, 1976)

Theorem
Every simple planar graph is \(4\)-colorable

Theorem 5.1.7

Theorem
Every cubic planar graph with no bridges is \(4\)-colorable(f).

Theorem 5.1.8

Theorem
A graph is \(2\)-colorable(f) (bipartite) if and only if it is Eulerian

Remark: since planar graphs always have a well-defined dual, coloring theorems also apply to the dual structures as well, e.g. \(4\)-colorability is equivalent to \(4\)-colorability(f).

Remark: many planar coloring proofs involve induction or strong induction on the number of vertices, where some graph \(G\setminus\set{v}\) is used to apply the induction hypothesis.

ADV Chromatic Number and Girth

Generally, a large chromatic number implies a high level of interconnection between vertices, while large girth suggests the opposite. However, graphs with arbitrarily large (though not strictly arbitrary) girth and chromatic number can be found.

ADV Theorem 9.11: Erdős, 1959

Theorem
For all \(k\geq 2\) and \(g\geq 3\), a graph with chromatic number with at least \(g\) and chromatic number at least \(k\) can be found.

We define the Mycielski construction of graph \(G\) as follows: let \(V'=\set{v' : v\in V(G)}\) be a set of "new" vertices disjoint from \(V(G)\), and \(z\) be another vertex not in \(V(G) \cup V'\). Let Mycielski construction \(\mathcal{M}(G)\) of \(G\) be the graph with vertices \(V(\mathcal{M}(G))=V(G)\cup V' \cup \set{z}\) and edges \(E(\mathcal{M}(G))=E(G)\cup\set{zv' : v\in V(G)}\cup\set{v'w : v\in V \text{ and } vw \in E(G)}\).

ADV Lemma 9.13

Lemma
If graph \(G\) has girth \(g_G \geq 4\), then the Mycielski construction \(\mathcal{M}(G)\) of \(G\) also has girth \(g_{\mathcal{M}(G)}\geq 4\).

ADV Lemma 9.14

Lemma
For any graph \(G\), we have \(\chi(\mathcal{M}(G))=1+\chi(G)\), i.e. applying the Mycielski construction increases the chromatic number of \(G\) by \(1\).

Perfect Graphs (5.2)

A perfect graph is a simple graph where every induced subgraph \(H\subseteq V(G)\) of \(G\) satisfies \(\chi(H)=\omega(H)\), i.e. for every subgraph, the chromatic number is the size of the largest clique in the subgraph.

Theorem 5.2.1: Perfect Graph Theorem (1972)

Theorem
A graph \(G\) is perfect if and only if its complement \(\overline{G}\) is perfect

An odd hole in graph \(G\) is an induced cycle of odd length with no chords. The complement of an odd hole is an odd antihole (i.e. if the odd hole is \(C_{2n+1}\), then an odd antihole is \(C_{n2+1}\setminus K_{2n+1}\))

Theorem 5.2.2: Strong Perfect Graph Theorem (2002)

Theorem
A graph is perfect if and only if it has no odd holes or odd antiholes

Note: in perfect graphs, the graph coloring and maximal clique problems are of class \(P\).

Edge Coloring (5.3)

A graph \(G\) is \(k\)-colorable(e) if its edges can be colored with \(k\) colors such that no adjacent edges are given the same color. \(G\) has chromatic index \(k\), denoted \(\chi'(G)=k\) iff it is \(k\)-colorable(e) but not \(k=1\)-colorable(e).

Theorem 5.3.1: Vizing's Theorem (1964)

Theorem
If \(G\) is a simple graph, then \(\Delta(G)\leq\chi'(G)\leq \Delta(G)+1\), i.e. \(\chi'(G)=\Delta(G)\) or \(\chi'(G)=\Delta(G)+1\)

Vizing's Theorem implies loopless cubic graphs either have \(\chi'(G)=3\) or \(\chi'(G)=4\). A snark is a simple bridgeless cubic graph with chromatic number \(\chi'(G)=4\), e.g. Petersen's graph.

Theorem 5.3.2

Theorem
If \(n\) is even, \(\chi'(K_n)=n\) If \(n\) is odd, \(\chi'(K_n)=n-1\)

Snarky Theorems

Theorem 5.3.3

Theorem
Snarks cannot have Hamiltonian cycles. Thus, if a cubic graph is Hamiltonian, it is not a snark

Theorem 5.3.4

Theorem
No planar snarks exist, i.e. every simple, bridgeless, planar cubic graph has a chromatic index of \(3\).

Tait's Conjecture (false)

warning
All loopless, bridgeless, planar cubic graphs are Hamiltonian

Theorem 5.3.5 (Konig, 1916)

Theorem
If \(G\) is a bipartite graph, then \(\chi'(G)=\Delta(G)\)

By corollary, \(\chi'(K_{r, s})=\max\set{r, s}\).

Chromatic Polynomials (5.4)

For a simple labelled graph \(G\in\mathcal{G}_n\), we define the chromatic function/chromatic polynomial \(P_G(k)\) of \(G\) as, for each \(k\in \mathbb{N}\), the number of ways to \(k\)-color the vertices of \(G\) such that no two adjacent vertices are the same.

Theorem 5.4.1: Chromatic Polynomial Decomposition Theorem

Theorem
For a simple graph \(G\) and graphs \(G-\set{e}\) and \(G/ \set{e}\) obtained by deleting and contracting edge \(e\in E(G)\) from \(G\) respectively, we have \(P_G(k)=P_{G-\set{e}}(k)-P_{G/\set{e}}(k)\)

Aside: how are chromatic polynomials connected with generating series? Are they an example of generating series?

Finding Chromatic Polynomials

Generally, we find chromatic polynomials by determining how many colors can be used to color each vertex in a graph successively. For example, the first vertex we pick can be colored \(k\) ways; one adjacent to that can be colored \(k-1\) ways, and one adjacent to both can be colored \(k-2\) ways. Each time, we figure out how many ways the successive vertex can be colored. We can then find all the ways to color the vertices by multiplying these terms together (product rule).

We can also divide colorings into disjoint cases, then add the different resulting polynomials together (sum rule). Usually, these cases are whether two (non-adjacent) vertices are the same or different colors.

Finally, we can use the decomposition theorem to express the chromatic polynomials of complex graphs as the differences between chromatic polynomials of simpler graphs.

Overall, finding chromatic polynomials is a combinatorial counting exercise, but we count down from an arbitrary \(k\) instead of up from \(1\). [The factored forms of] chromatic polynomials themselves are a way to capture the counting behaviour of enumerating graph colourings.

Example

Chromatic Polynomials of Common Graphs

NAME/type Symbol Chromatic Polynomial Explanation
Null Graph \(N_n\) \(k^n\) We can pick any of the \(k\) colors for each vertex.
Path Graph \(P_n\) \(k(k-1)^{n-1}\) We have \(k\) choices for the first color, then each subsequent one is adjacent to one colored vertex → \(k-1\) choices
Complete graph \(K_n\) \(\displaystyle\prod_{i=0}^{n-1}(k-i)=\dfrac{k!}{(k-n)!}\) Since every vertex is adjacent to every other, we have \(k\) choices for the first, \(k-1\) for the second, \(k-2\) for the third, etc.
Cycle Graph \(C_n\) (for \(n\geq 3\)) \((k-1)^n+(-1)^n(k-1)\) We use induction and the decomposition theorem, which decomposes a cycle into a different cycle (contraction, inductive case) and a path graph (deletion, base case)
Tree \(k(k-1)^{n-1}\) We pick an arbitrary (of \(k\)) color for the root, then each next vertex is adjacent to one other colored one, and thus has \(k-1\) choices for coloring

Chapter 6 - Digraphs

Definitions and Elementary Theorems (6.1)

Digraphs

A directed graph or digraph \(G\) is a tuple \((V(G), A(G))\) where \(V(G)\) is a set of vertices and \(A(G)\) is a set of directed arcs that connect the vertices. An arc connecting vertices \(v, w\in V(G)\) is denoted \(vw\) (not equivalent to \(wv\))

The out-degree \(\text{outdeg}(v)\) of vertex \(v\) in digraph \(G\) is the number of arcs leaving \(v\); the in-degree \(\text{indeg}(v)\) of \(v\) is the number of arcs that end in \(v\).

Handshaking Dilemma

Theorem
In a directed graph \(G\), we have \(\displaystyle\sum\limits_{v\in V(G)}\text{outdeg}(v)=\sum\limits_{v\in V(G)}\text{indeg}(v)\)

A simple digraph is a loopless digraph with unique arcs (again, \(wv\ne vw\))

The underlying graph of digraph \(G\) is the "regular" graph obtained by replacing each arc with an edge

Connectivity

A digraph \(G\) is strongly connected if a (directional) path exists between any two vertices in \(G\).

A vertex \(v\in V(G)\) in digraph \(G\) is a source if \(\text{indeg}(v)=0\), i.e. all adjacent arcs point away from \(v\); \(v\) is a sink if \(\text{outdeg}(v)=0\), i.e. all adjacent arcs point towards \(v\).

Eulerian and Hamiltonian Digraphs (6.2)

Eulerian and Semi-Eulerian Digraphs

Lemma 6.2.1

Lemma
If every vertex in digraph \(G\) has at least one incoming arc and one outgoing arc, then \(G\) has a cycle

Theorem 6.2.2

Theorem
A connected digraph is Eulerian if and only if every vertex \(v\) has the same in- and out- degree, i.e. \(\text{indeg}(v)=\text{outdeg}(v)\) for all vertices \(v\in V(G)\).

Corollary 6.2.3

Corollary
A digraph \(G\) is semi-Eulerian if an only if \(\text{indeg}(v)=\text{outdeg}(v)\) is true for all but \(2\) vertices of \(G\). These two vertices \(u, w\) will have in- and out- degrees that differ oppositely by \(1\), i.e. \(\text{indeg}(u)=\text{outdeg}(u)+1 \iff \text{indeg}(w)=\text{outdeg}(w)-1\) (or swap \(u\leftrightarrow w\)). The semi-Eulerian trail will have \(u, w\) as endpoints.

Hamiltonian Paths and Tournaments

A tournament is a digraph where each pair of vertices is joined by exactly one arc. i.e. its underlying graph is a complete graph \(K_n\).

Theorem 6.2.4

Theorem

  1. Every tournament is either Hamiltonian or semi-Hamiltonian
  2. Every strongly connected tournament is Hamiltonian

A tournament is transitive if arcs \(uv\) and \(vw\) imply arc \(uw\).

Lemma 6.2.5

Lemma
A tournament is transitive if and only if it has no cycles

Theorem 6.2.6

Theorem
A tournament has a unique semi-Hamiltonian path if and only if the tournament is transitive

So, there are two types of tournaments: strongly connected ones with Hamiltonian paths, or transitive ones with semi-Hamiltonian paths and no cycles.

Critical Paths (6.3)

In task scheduling problems, some subtasks can be completed whenever while others must be completed in a particular order, i.e. after a specific subtask. Such problems can be expressed as arc-weighted digraphs, where arcs (weighted by time) represent subtasks and two arcs are adjacent if one must be complete before the other begins. Our goal is to minimize the time needed to complete all the subtasks; this is represented by the longest path from source to sink (critical path).

For critical path-finding algorithms, take an algorithms course!

Networks (6.4)

A network is a weighted digraph with one source and one sink. Each arc \(a\) is weighted by its capacity \(\psi(a)\) which defines the maximum unit (e.g. electric current, water, etc) that can travel through it at a given moment in time.

Definitions: Flows and Cuts

A flow \(\phi\) in network \(G\) is a function \(\phi : A(G)\to \mathbb{R}^{0+}\) that assigns each arc \(a\in A(G)\) a non-negative real value \(\phi (a)\) where:

So, informally, a flow describes a way that the unit can "flow" (ahaaaaaa) through the network without pooling or exceeding the capacity of any particular pathway.

The zero-flow \(\phi : A(G)\mapsto 0\) maps each arc to \(0\).

A saturated arc is an arc \(a\) such that \(\phi(a)=\psi(a)\)

The value of a flow is the sum of the flows out of the source and/or the sum of the flows into the sink. Clearly these must be equal by the handshaking dilemma; this also makes sense in our informal interpretation.

The maximum flow is a flow \(\phi\) that has the largest possible flow value for the network; we often want to find this \(\phi\) to optimize the network.

A cut \(C\subseteq A(G)\) in digraph \(G\) is a set of arcs whose removal disconnects the source from the sink. The cut's capacity is the sum of the capacities of the cut, i.e. \(\displaystyle\sum\limits_{a\in C}a\)

Max-Flow Min-Cut Theorem

Theorem 6.4.1: Max-Flow Min-Cut Theorem

Theorem
In any network \(G\), the value of the minimum cut is equal to that of the maximum flow

A flow-augmenting path in network \(G\) is a path where arcs can be travelled in either direction if

  1. Each forward-travelled arc in the path is unsaturated
  2. Each backward-travelled arc in the path has nonzero flow

So, if a path has a saturated arc when traveling forward or a zero-flow arc when travelling backward, then the path cannot be flow-augmented (and thus nor can the network?)

Flow-augmenting paths can be used to find maximum flows because they can be iteratively improved. Note that the "path" itself isn't always being changed, but the amount traveling through each arc in the path is tweaked.

Increasing the flow of a digraph

Algorithm

  1. We calculate the slack \(s(a)=\psi(a)-\phi(a)\) of each forward-travelled arc
  2. We record \(\phi(b)\) for each backward-oriented arc \(b\)
  3. From these values, we calculate \(\lambda=\min\limits_{a,b}\set{s(a), \phi(b)}\)
  4. We decrease the flow in each backward arc by \(\lambda\) and increase the flow in each forward arc by \(\lambda\). Overall, this increases the flow value by \(\lambda\)

The minimum cut is derived from the maximum flow in network \(G\) by bipartitioning it into \(V, W\subseteq V(G)\), where \(V\) contains the source and any vertices that can be reached from it by flow-augmenting paths and \(W\) contains all other vertices. The arcs joining vertices in \(V\) to those in \(W\) (i.e. \(\partial V=\partial W\)) form the minimum cut.

The maximum flow \(\phi\) of network \(G\) can be thought of as a union/sum of a subset of the source to sink paths in \(G\) such that the capacity of each arc isn't surpassed. This subset may not be (and usually isn't) unique.

Finding Max Flows/Min Cuts

Generally, I find the best way to find maximum flow in a network is to do a depth-first search of all the source → sink paths in the network. Each time, I find the smallest slack left in a single arc in the path, and increase the flow through each of the arcs by that slack. Eventually, there will clearly be no way to leave the sink/get to the source; the max flow is thus found.

Minimum cut can be found with a recursive "choke point" algorithm. The arcs connecting directly to the sink form the initial cut (note that this is indeed a cutset). Then, consider the total weight of the arcs leading into the first arc. If they have less capacity than the arc itself, they replace that arc in the cutset.

ADV Appendix: Markov Chains

A Markov chain or chain is a network where every vertex has the same capacity (usually \(1\)), i.e. the capacities of the arcs leaving the node add up to \(1\).

The network encodes a system; the vertices encode states of the system and the arcs joining states represent the transition probabilities, i.e. the chance of moving from one given state to another at a particular timestep.

A state \(E_i\) in a chain \(M\) is periodic with period \(t\) if it is only possible to return to \(E_i\) after a period of time that is a multiple of \(t\). Otherwise, \(M\) is aperiodic.

The transition matrix of a chain is the adjacency matrix of its digraph.

Chapter 7 - Matchings

Introduction to Matchings (7.1)

Matchings

A matching \(M\) in \(G\) is a subset \(M\subseteq E(G)\) of the edges of \(G\) where each vertex in the spanning subgraph \((V(G), M)\) of \(G\) has a degree of at most \(1\).

The neighbourhood of \(S\subseteq V(G)\) on graph \(G\) is the set of edges in \(E(G)\) that have at least one endpoint in \(S\), i.e. \(N(S)=\set{v\in V(G) : vw\in E \text{ for some } w\in S}\). So, \(\text{neighbourhood}(S)=\partial S\cup \set{e\in E(G) : e \in \mathcal{P}(S)}\)

Hall's Marriage Theorem

Hall's Marriage Problem: Given bipartite graph \(G\) with bipartitions \(V\) and \(W\), does there exist a one-to-one correspondence (i.e. edges) between the vertices of \(V\) and some subset \(W_0\) of \(W\)?

Theorem 7.1.1: Hall's Marriage Theorem

Theorem
A solution exists to Hall's Marriage Problem if and only if each subset \(W_0\subseteq W\) of size \(k\) (i.e. \(\# W_0=k\)) matches to at least \(k\) vertices in \(V\), i.e. every vertex in \(W_0\) is adjacent to at least \(k\) vertices in \(V\).

Contrapositive statement: if there exists a union of subsets \(W_0\subseteq W\) of size \(k\) that has less than \(k\) elements, then a full matching cannot exist.

Often, this is introduced as \(W\) being a set of girls and \(V\) being a set of boys, where vertices are adjacent across the bipartition of the girl and boy in question like each other. Then, the question becomes whether every girl can marry a boy she likes.

An alternate graph-theoretical statement of Hall's Marriage Theorem is as follows: Let \(G\) be bipartite with bipartition \((A, B)\). Then \(G\) has an \(A\)-saturating matching if and only if for all subsets \(S\subseteq A\), \(\# N(S)\geq \# S\), where \(N(S)\) is the neighbourhood of \(S\).

ADV Corollary to Hall's Theorem

Corollary
If \(G\) is a \(k\)-regular bipartite graph, then \(E(G)\) can be partitioned into \(k\) pairwise-disjoint perfect matchings.
Combinatorial (Set) Formulation

Suppose we have a set of girls \(G=\set{g_1, g_2, \dots, g_m}\) and boys \(B=\set{b_1, b_2, \dots, b_n}\). Each girl knows a subset of the boys, i.e. \(g_1\) knows \(B_1\subseteq B\), \(g_2\) knows \(B_2\subseteq B\), etc. Is it possible to "match" each girl with a different boy, where the girl knows the boy in each "matching"?

For a finite, non-empty set \(B\) and family \(F=\set{B_1, B_2, \dots, B_n}\) where \(\varnothing\ne B_1, B_2, \dots, B_n \subseteq B\), a transversal of \(F\) is a set of \(n\) distinct elements of \(B\) such that exactly one element is chosen for each element \(B_n\in F\).

Corollary 7.1.2

Corollary
For sets \(B\) and \(F\) as described above, \(F\) has a traversal if and only if the union of any \(k\) subsets contains at least \(k\) elements, i.e. iff \(\# \displaystyle\bigcup_{S\in K\subseteq F}S\geq k\) where \(\#K=k\)

ADV Covers and König's Theorem

Covers

A cover \(C\) of graph \(G\) is a subset \(C\subseteq V(G)\) such that every edge in \(E(G)\) as at least one edge in \(C\), i.e. for all \(e\in E(G)\), \(e\cap C\ne \varnothing\) (were \(e=\set{a, b}\subseteq V(G)\times V(G)\)).

König's Theorem

ADV König's Theorem

Theorem
Let \(G\) be a bipartite graph with bipartition \((A, B)\). Let \(M\subseteq E(G)\) be a maximum matching and \(C\subseteq V(G)\) be a minimum cover. Then \(\#M =\#C\).

Latin Squares

A Latin Rectangle \(M\) is an \(n\times m\) matrix with integer entries \([m_{ij}]=M\in M_{n\times m}(\mathbb{Z})\) satisfying:

  1. \(1\geq m_{ij}\geq n\) for all entries \(m_{ij}\)
  2. No two entries in the same row or column are equal

If \(m=n\), \(M\) is also a Latin square

Theorem 7.1.3

Theorem
If \(M\) is an \(m\times n\) Latin rectangle with \(m<n\), then \(M\) can be extended into a Latin square by adding \(n-m\) rows.

The proof above illustrates how adding additional rows to latin rectangles can be characterized as finding a perfect matching in a bipartite graph.

Maximum Matchings (7.2)

A partial matching \(M\) of bipartite graph \(G\) with bipartitions \(V, W\) is a complete matching between some subset of vertices \(V_0\subseteq V\) and \(W\). \(M\) is a maximum matching if there is no way to construct a matching in \(G\) with more edges.

If a bipartite graph \(G\) satisfies the constraints of Hall's Marriage problem, its maximum matching will have \(\# V\) edges, i.e. will include every vertex in \(V\).

\(M\)-augmenting Paths

An \(M\)-alternating path is constructed in matching \(M\) by finding a path \(v_0\to v_1\to v_2 \to \dots \to v_m\) in \(G\) where edges \(v_0 v_1\), \(v_2 v_3\) (i.e. edges of the form \(v_{2n} v_{2n+1}\)) are not in \(M\) and edges \(v_1 v_2\), \(v_3 v_4\) (i.e. edges of the form \(v_{2n-1} v_{2n}\)) are in \(M\).

An \(M\)-augmenting path is an \(M\)-alternating path that joins two vertices that have not yet been matched in \(M\). If an \(M\)-augmenting path \(P\) exists, we can improve the size of the matching by replacing \(M\to P\setminus M\), which must be bigger than \(P\) (i.e. include the edges between those in \(M\)).

Theorem 7.2.1

Theorem
A matching \(M\) on bipartite graph \(G\) is a maximal matching if and only if no \(M\)-augmenting paths exist.

Finding \(M\)-augmenting Paths

Finding Augmenting Paths

Algorithm
In bipartite graph \(G\) with matching \(M\), we find \(M\)-augmenting paths with the following process:

  1. Start at a vertex \(v\in V\) that hasn't been matched yet
  2. Construct the tree of all \(M\)-alternating paths from \(v\) by first considering all the nodes \(v\) is adjacent to, then their matchings, etc.
  3. If we reach a vertex \(w\in W\) that hasn't been matched yet, we find an \(M\)-augmenting path; if we can't find any such vertices, \(M\) is a maximal matching.

Matching Algorithms

Various matching algorithms can be found on the Brilliant.org wiki.

Menger's Theorem (7.3)

A set of paths \(P=\set{P_1, P_2\, \dots, P_n}\) in graph \(G\) is edge-disjoint if no paths in \(P\) share any edges, i.e. \(\displaystyle \bigcap\limits_{i=0}^{n}E(P_n)=\varnothing\). \(P\) is vertex-disjoint if no paths in \(P\) share any vertices, i.e. \(\displaystyle \bigcap\limits_{i=0}^{n}V(P_n)=\varnothing\).

We define a \(vw\)-disconnecting set and a \(vw\)-separating set as any set of edges and vertices (respectively) that disconnect vertices \(v\) and \(w\) in some graph \(G\).

Theorem 7.3.1: Menger's Theorem

Theorem
For connected graph \(G\) with vertices \(v, w\)

  1. The maximum number of edge-disjoint paths connecting \(v\) and \(w\) in \(G\) is equal to the minimum number of edges in a \(vw\)-disconnecting set
  2. The maximum number of vertex-disjoint paths connecting \(v\) and \(w\) in \(G\) is equal to the minimum number of vertices in a \(vw\)-separating set

Explanation of Menger's Theorem:

Theorem 7.3.2

Theorem
Menger's Theorem implies Hall's Theorem

ADV Matching Polynomials

Definition

Let \(\mu(G, k)\) denote the number of matchings of size \(k\) in graph \(G\). We define \(\mu (G, 0)=1\).

Matching Polynomial Definition

Definition
We define the matching polynomial \(m(G, x)=\displaystyle\sum\limits_{k=0}^{n/2}(-1)^{k}\mu (G, k) x^{n-2k}\)

Proposition

Proposition
For graph \(G\), we have \(\boxed{\mu(G, k)=\mu(G\setminus\set{u, v}, k-1)+\mu(G\setminus\set{(uv)}, k)}\), where \(G\setminus\set{(uv)}\) means edge \(uv\) is removed from \(G\)

By corollary, we have \(m(G, x)=m(G\setminus\set{(uv)}, x)-m(G\setminus\set{u, v}, x)\) for the matching polynomial.

Chapter 8 - Spectral and Matroid Graph Theory

[[Spectral Graph Theory.pdf]]

get spectral graph theory II notes

If we represent a graph as a matrix, what can we find from doing linear algebra on the matrix?

The Laplacian Matrix (8.1)

We have seen the adjacency and incidence matrices in Chapter 1.

The Laplacian matrix of graph \(G\in\mathcal{G}_n\) is the \(n\times n\) matrix \(L_G=D_G-A_G\), where \(A_G\) is the adjacency matrix of \(G\) and \(D\) is a diagonal matrix where the \((m, m)\) entry is the degree of vertex \(m\) of \(G\).

The Laplacian can alternately be defined parametrically based on the entry \((i, j)\):

For vector \(\vec{v}\) and Laplacian matrix \(L\), we can derive the quadratic form \(\vec{v}^{\top}L \vec{v}\) as \(\boxed{\vec{v}^{\top}L \vec{v} =\displaystyle \sum\limits_{ij\in E, i<j}(v[i]-v[j])^2}\). We can interpret this product as follows

Eigenstuff of the Laplacian (8.2)

The eigenvalues of the Laplacian contain information about the structure of the graph. Since \(\vec{v}^{\top}L \vec{v}\) is a sum of squares, it is non-negative. Thus, the eigenvalues of \(L\) must also be non-negative (I don't know enough linear algebra (specifically, quadratic forms) to know why though).

The Zero Eigenvalue

Statement 8.2.1

Statement
The Laplacian must always have at least one eigenvalue \(\lambda=0\).

On an intuition level, because the relative magnitude of an eigenvalue determines whether its eigenvectors maps close vertices "close" together (small eigenvalues) or far away (large eigenvalues), a \(0\) eigenvalue would map everything as close together as possible. Although every vertex can be placed on top of each other, there is still "distance" between different components of the graph because they aren't mutually reachable. Thus, it makes intuitive sense that the number of times a \(0\) eigenvalue appears is the number of components in the graph.

Lowest and Highest Eigenvalues/vectors

Eigenvectors with eigenvalue \(0\) are constant on each connected component.

The smallest nonzero eigenvector \(\min\limits_{\| v \|=1}\vec{v}^{\top}L \vec{v}, \ne 0\) is the vector that minimizes the squared distance between neighbours (up to normalization, i.e. such an eigenvector must be normalized).

The largest eigenvector \(\max\limits_{\| v \|=1}\vec{v}^{\top}L \vec{v}\) maximizes the distance between neighbours values of \(\vec{v}\).

Applications of Spectral Graph Theory (8.3)

Spectral Embeddings

Often, we try to draw graphs in a way that their structure is most apparent (e.g. bipartite graphs as bipartitions). Formally, we wish to find an embedding of this graph into \(\mathbb{R}^d\) for some small \(d\) (often \(d=2\) or \(d=3\)).

It makes sense to embed a graph onto its eigenvectors, since these already minimize the distances between these points. Embedding on a plane (\(\mathbb{R}^2\)), we pick one eigenvector per dimension (\(x\) or \(y\)), and determine the positions of the vertices in that dimension from the eigenvector (i.e, like the number line embedding).

Spectral Clustering/Partitioning

In various applications, we want to partition a graph into several more insular components (i.e. to find a certain number of partitions that minimizes crossing between partitions).

Generally, the eigenvectors corresponding to the smallest eigenvalues create "good" partitions because they try to keep vertices with similar values close together. So, looking at "clusters" suggested by such eigenvectors is generally useful.

add examples here!

Graph Coloring Heuristic

Spectral-embedding a graph on the eigenvectors corresponding to the highest eigenvalues generally takes distant pairs of vertices and moves them closer together. Thus, a generally good way to start \(k\)-coloring a graph is to spatially partition "clusters" of \(k\) "close" vertices on the embedding into \(k\)-regions, then coloring each vertex in the region the same color.

The Characteristic Polynomial

The characteristic polynomial \(p(G, x)\) of graph \(G\) with adjacency matrix \(A_G\) is defined as \(p(G, x)=\det{(xI-A_G)}\)

Since this also the characteristic polynomial of a matrix (in the linear algebra sense), its properties are inherited from the "regular" characteristic polynomial:

  1. \(\det{(xI-A)=\displaystyle\prod_{\lambda\in \Lambda}(x-\lambda)}\)
  2. For all \(\lambda\in \Lambda_{A_G}\), we have \(|\lambda |\leq \Delta(G)\)
  3. \(\sqrt{\Delta(G)}\leq \max\set{\Lambda_{A_G}}\leq \Delta(G)\)
  4. If \(G\) is a tree, then \(\max\set{\Lambda_{A_G}}\leq 2\sqrt{\Delta(G)-1}\)

The solutions of the characteristic polynomial are always real because the adjacency matrix of a graph is always symmetric by definition.

The formula \(\text{Trace}(A^k)=\displaystyle\sum\limits_{i=1}^{n}{\lambda_i^n}\) is particularly useful because it connects the combinatorial properties of \(A_G\) to the continuous nature of the characteristic polynomial.

If \(a_1\dots\) are the coefficients of \(p(G, x)\), i.e. \(\det{(xI-A_G)}=\displaystyle\sum\limits_{k=0}^{n}a_k x^k\), then by the first property we fund that \(a_k=\displaystyle\sum\limits_{S:|S|=n-k}(-1)^{n-k} \prod_{i\in S} \lambda_i\).

Chapter 9 - Ramsey Theory

Ramsey Theory generalizes the results of questions like "among \(6\) people, there is always a choice of \(3\) people such that they are all friends, or don't know each other".

A \(k\)-coloring(e) of \(K_n\) (not to be confused with a proper \(k\)-coloring) is a function \(c:E(K_n)\to \set{1, \dots, k}\). Note that adjacent edges may have the same color, unlike in a proper coloring.

Ramsey Number

Definition
The Ramsey number \(R(k)\in \mathbb{N}\) is the smallest integer such that any \(2\)-coloring(e) of \(E(K_n)\) has a subset \(X\subseteq V(K_n)\) where \(\#X=k\) and every edge in the subgraph of \(K_n\) induced by \(X\) (i.e. \(K_n[X]\)) have the same color (i.e. are monochromatic).

Theorem 9.1

Theorem
For any \(k\in \mathbb{N}\), \(R(k)<4^k\). This implies that Ramsey numbers are always finite.

The sequence \(\set{R_k}\) of Ramsey numbers grows in size and complexity very quickly. We know the first terms (starting at \(0\)) are \(\set{0, 1, 2, 6, 18, \dots}\). Next, we know \(42 < R(5) \leq 49\) and \(101 < R(6) \leq 165\).

Proposition 6.2: Quadratic Lower Bound on Ramsey Numbers

Proposition
For all \(k\in \mathbb{N}\), \(R(k)>(k-1)^2\).

General Ramsey Number

Definition
The general Ramsey number \(R(k, \ell)\in \mathbb{N}\) is the smallest integer such that any \(\set{\text{red}, \text{blue}}\) \(2\)-coloring(e) of \(E(K_n)\) has a \(\text{red}\) subgraph \(K_k\) or \(\text{blue}\) subgraph \(K_\ell\).

Lemma 113

Lemma
We have \(R(k, \ell)\leq R(k-1, \ell)+R(k, \ell-1)\)

Lemma 114

Lemma
We have \(R(k, \ell)=\displaystyle{{k+\ell-2} \choose {k-1}}\)

We define the following terms for convenience:

Appendix - Interesting Graphs

https://en.wikipedia.org/wiki/List_of_graphs

Generalized Petersen Graph

LIST

Appendix - Prerequisite Knowledge

Enumeration (0.4)

In the context of this course, combinatorics (more specifically, enumeration) is concerned with the counting of objects of a given property.

Multiplication Principle

Principle
If events \(E_1, \dots E_n\) can occur \(N_1, \dots, N_n\) different ways respectively, then the events \(E_1, \dots E_n\) can occur simultaneously in \(N_1\times N_2\times \dots\times N_n\) different ways

Addition Principle

Principle
If events \(E_1, \dots E_n\) can occur \(N_1, \dots, N_n\) different ways respectively and only one event can happen, then the events \(E_1, \dots E_n\) can occur in \(N_1 + N_2 + \dots + N_n\) different ways

Factorial

Definition
There are \(n!=x\times (n-1)\times\dots\times 1\) ways to order \(n\) distinct objects

Combinations

Definition
There are \(\displaystyle{n\choose k}=\dfrac{k!}{k!(n-k)!}\) ways to select a subset of \(k\) objects from a set of \(n\) objects

Pigeonhole principle

Principle
If \(m > n\) objects are placed into \(n\) categories, at least one category must contain more than \(1\) objects