| name | graph-algorithms |
| description | Problem-solving strategies for graph algorithms in graph number theory |
| allowed-tools | Bash, Read |
Graph Algorithms
When to Use
Use this skill when working on graph-algorithms problems in graph number theory.
Decision Tree
Traversal selection
- BFS: shortest paths (unweighted), level structure
- DFS: cycle detection, topological sort, SCC
Shortest path algorithms
Algorithm Use Case Complexity Dijkstra Non-negative weights O((V+E) log V) Bellman-Ford Negative weights O(VE) Floyd-Warshall All pairs O(V^3) Minimum Spanning Tree
- Prim's: dense graphs, greedy from vertex
- Kruskal's: sparse graphs, union-find
z3_solve.py prove "cut_property"
Network Flow
- Max-flow = min-cut (Ford-Fulkerson)
- Matching via flow network
sympy_compute.py linsolve "flow_conservation"
Graph properties
- Spectral: eigenvalues of adjacency matrix
- Connectivity: via DFS/BFS
- Coloring: greedy or SAT reduction
Tool Commands
Sympy_Adjacency
uv run python -m runtime.harness scripts/sympy_compute.py eigenvalues "adjacency_matrix"
Z3_Dijkstra
uv run python -m runtime.harness scripts/z3_solve.py prove "d[v] >= d[u] + w(u,v) for all edges"
Z3_Mst_Cut
uv run python -m runtime.harness scripts/z3_solve.py prove "min_edge_crossing_cut_in_mst"
Sympy_Flow
uv run python -m runtime.harness scripts/sympy_compute.py linsolve "flow_conservation_equations"
Key Techniques
From indexed textbooks:
- [Graph Theory (Graduate Texts in Mathematics (173))] Given two numerical graph invariants i1 and i2, write i1 i2 if we can force i2 to be arbitrarily high on some subgraph of G by assuming that i1(G) is large enough. Formally: write i1 i2 if there exists a function f : N → N such that, given any k ∈ N, every graph G with i1(G) f (k) has a subgraph H with i2(H) k. If i1 i2 as well as i1 i2, write i1 ∼ i2.
- [Graph Theory (Graduate Texts in Mathematics (173))] Find the smallest integer b = b(k) such that every graph of order n with more than kn + b edges has a (k + 1)-edge- connected subgraph, for every k ∈ N. Show that every tree T has at least Δ(T ) leaves. Show that a tree without a vertex of degree 2 has more leaves than other vertices.
- [Graph Theory (Graduate Texts in Mathematics (173))] For every n > 1, nd a bipartite graph on 2n vertices, ordered in such a way that the greedy algorithm uses n rather than 2 colours. Exercises Consider the following approach to vertex colouring. First, nd a max- imal independent set of vertices and colour these with colour 1; then nd a maximal independent set of vertices in the remaining graph and colour those 2, and so on.
- [Graph Theory (Graduate Texts in Mathematics (173))] Show that, for every r ∈ N, every innite graph of upper density s subgraph for every s ∈ N. Deduce that the upper density of innite graphs can only take r−1 has a K r the countably many values of 0, 1, 1 2 , 2 3 , 3 4 Extremal Graph Theory Given a tree T , nd an upper bound for ex(n, T ) that is linear in n and independent of the structure of T , i. Prove the Erd˝os-S´os conjecture for the case when the tree considered is a star.
- [Graph Theory (Graduate Texts in Mathematics (173))] Colouring Slightly more generally, a class G of graphs is called χ-bounded if there exists a function f : N → N such that χ(G) f (r) for every graph G ⊇ Kr in G. In such graphs, then, we can force a Kr subgraph by making χ larger than f (r). Show that the four colour theorem does indeed solve the map colouring problem stated in the rst sentence of the chapter.
Cognitive Tools Reference
See .claude/skills/math-mode/SKILL.md for full tool documentation.