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.
Source: parcadei/Continuous-Claude-v3 → .claude/skills/math/graph-number-theory/graph-algorithms/SKILL.md
1---2name: graph-algorithms3description: Problem-solving strategies for graph algorithms in graph number theory4---5
6
7# Graph Algorithms
8
9## When to Use
10
11Use this skill when working on graph-algorithms problems in graph number theory.
12
13## Decision Tree
14
15
161. **Traversal selection**
17 - BFS: shortest paths (unweighted), level structure
18 - DFS: cycle detection, topological sort, SCC
19
202. **Shortest path algorithms**
21 | Algorithm | Use Case | Complexity |
22 |-----------|----------|------------|
23 | Dijkstra | Non-negative weights | O((V+E) log V) |
24 | Bellman-Ford | Negative weights | O(VE) |
25 | Floyd-Warshall | All pairs | O(V^3) |
26
273. **Minimum Spanning Tree**
28 - Prim's: dense graphs, greedy from vertex
29 - Kruskal's: sparse graphs, union-find
30 - `z3_solve.py prove "cut_property"`
31
324. **Network Flow**
33 - Max-flow = min-cut (Ford-Fulkerson)
34 - Matching via flow network
35 - `sympy_compute.py linsolve "flow_conservation"`
36
375. **Graph properties**
38 - Spectral: eigenvalues of adjacency matrix
39 - Connectivity: via DFS/BFS
40 - Coloring: greedy or SAT reduction
41
42
43## Tool Commands
44
45### Sympy_Adjacency
46```bash
47uv run python -m runtime.harness scripts/sympy_compute.py eigenvalues "adjacency_matrix"
48```
49
50### Z3_Dijkstra
51```bash
52uv run python -m runtime.harness scripts/z3_solve.py prove "d[v] >= d[u] + w(u,v) for all edges"
53```
54
55### Z3_Mst_Cut
56```bash
57uv run python -m runtime.harness scripts/z3_solve.py prove "min_edge_crossing_cut_in_mst"
58```
59
60### Sympy_Flow
61```bash
62uv run python -m runtime.harness scripts/sympy_compute.py linsolve "flow_conservation_equations"
63```
64
65## Key Techniques
66
67*From indexed textbooks:*
68
69- [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.
70- [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.
71- [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.
72- [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.
73- [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.
74
75## Cognitive Tools Reference
76
77See `.claude/skills/math-mode/SKILL.md` for full tool documentation.
78
79---
80
81**Source:** [`parcadei/Continuous-Claude-v3`](https://github.com/parcadei/Continuous-Claude-v3) → `.claude/skills/math/graph-number-theory/graph-algorithms/SKILL.md`