Problem-solving recipes
A step-by-step procedure for every problem type this course teaches — what to do first, what to do next, and how to tell which case you're in.
What are you being asked to do?
Start with what you're actually being asked to produce.
Readiness review — check a degree list, or test bipartiteness by two-coloring, before either gets reused formally later in the course.
A basic structural fact about a graph — a degree sequence, whether one graph is a subgraph of another, whether two graphs are isomorphic, or whether a closed sequence of vertices is a walk, circuit, or cycle — the matching foundations recipe.
A distance fact — the distance between two vertices, a vertex's eccentricity, the graph's diameter and radius, or its center — in that dependency order, each building on the one before it.
A rooted tree — find a node's height.
A Hamiltonian path or cycle — search for one directly.
Whether a graph is bipartite, as a formal course topic (not readiness review) — the 2-colorability recipe.
A weighted graph — compute a specific path's total weight, or audit a Dijkstra run when negative weights are suspected of corrupting it.
A planar graph — solve Euler's formula for a missing vertex, edge, or face count.
A digraph, need its strongly connected components — the SCC recipe.
A flow network — build the residual graph and find an augmenting path, then compute a cut's capacity to prove a flow is already maximum (the second recipe extends the first).
A matching — prove one is maximum with a vertex cover, check Hall's condition and find the deficiency, or model a transportation problem as a flow network — three different questions about matchings, each with its own recipe.
A k-regular graph — test whether one can even exist before trying to build it.
Readiness
Foundations of graphs
Walks, distance, and connectivity
Compute a vertex's eccentricity
Use when: you're given a connected graph and one specific vertex v, and asked for ecc(v)
Goal: the single largest distance from v to any other vertex in the graph
Eccentricity
Needs a vertex's distances to every other vertex, from the recipe above.
Find a graph's diameter and radius
Use when: you're given a connected graph (or one component of a disconnected graph) and asked for its single worst-case and best-case distances
Goal: two numbers, diam(G) and rad(G), read off the full list of every vertex's eccentricity
Diameter and radius
Needs every vertex's eccentricity, from the recipe above.
Find the center of a graph
Use when: you have a connected graph and need every vertex whose eccentricity is the smallest possible, not just the radius number itself
Goal: the exact set center(G): one vertex, several tied together, or the entire graph
The center of a graph
Needs every vertex's eccentricity too, compared against the radius.
Graph coloring
Test a graph for bipartiteness
Use when: you're given a graph and asked whether it can be properly colored with only two colors
Goal: a genuine two-coloring if one exists, or a specific odd cycle proving that none can
Bipartite graphs and 2-colorability, revisited
The same technique as the readiness recipe above, taught formally as a course topic with the König's-theorem tie-in.
Shortest paths
Network flow and matching
Compute an s-t cut's capacity
Use when: you're given a partition of the vertices into S and T (with s in S and t in T) and need its capacity, or need to check whether a flow is already maximum
Goal: the cut's exact capacity, plus enough evidence to say whether a given flow is provably maximum
The max-flow min-cut theorem
Extends the recipe above with the cut-capacity argument that proves a flow is maximum once no augmenting path remains.