01 / THE IDEA

GNNs for combinatorial optimisation in practice.

Combinatorial-optimisation tasks (for example Max-Cut, TSP or vertex cover) map structured instances to discrete solutions or solution quality scores. GNNs can be used to learn heuristics or to predict solution quality from graph structure; common failure modes include overfitting to small graphs, leakage across connected components and mismatch between training objectives and real-world constraints.

Real-world use case · Proposed extension

A proposed application: use a trained GNN to prioritise candidate nodes or edges when running a heuristic solver, so a human operator can inspect high-ranked candidates before committing to expensive optimisation. Any such system should keep a human verifier in the loop and not be used to make unattended operational decisions.

02 / THE BUILD

How to build a gnns for combinatorial optimisation project
step by step.

01

Define the task and metric

Choose a concrete combinatorial problem (Max-Cut, TSP, vertex cover) and decide measurable metrics such as approximation ratio, solution gap or node/edge ranking precision.

02

Prepare graph instances

Collect or generate benchmark instances at relevant sizes; split by instance so connected components or similar graphs do not leak across train and test.

03

Build a GNN baseline

Implement a message-passing GNN to predict solution quality or labels on nodes/edges and train it on the chosen objective; log per-instance metrics.

04

Evaluate and inspect failures

Measure approximation performance and inspect examples where the GNN suggests poor candidate solutions or violates constraints.

03 / SOURCE SNAPSHOT

What the gnns for combinatorial optimisation starter actually does.

The supplied starter builds NetworkX's karate_club_graph, computes per-node degree, clustering coefficient and PageRank, combines their ranked percentiles into a single 'risk_or_class_score' and prints the top-scoring nodes. It does not define or train any graph neural network, nor does it set up a combinatorial optimisation objective or solver.

SOURCE EXCERPTPython
graph = nx.karate_club_graph()
features = pd.DataFrame(
    {
        "node": list(graph.nodes()),
        "degree": [graph.degree(node) for node in graph.nodes()],
        "clustering": [nx.clustering(graph, node) for node in graph.nodes()],
Important limitation

The starter uses graph statistics on the small Karate Club graph and combines ranked features into a heuristic score. It contains no GNN architecture, no training loop, no labelled optimisation instances, and therefore cannot demonstrate learned combinatorial-optimisation performance.

04 / BEYOND THE CLASSROOM

Where a gnns for combinatorial optimisation project could go next.

PROPOSED BUSINESS CONCEPT

GNN-guided heuristic pilot

A proposed extension: replace the heuristic scoring with a trained message-passing GNN that predicts node- or edge-level labels (for example inclusion in a solution) on benchmark instances such as generated Max-Cut or TSP graphs, and use those predictions to guide a solver.

WHO IT COULD SERVEResearchers and students
FIRST MVPTrain a simple message-passing GNN on generated instances for one combinatorial task, report approximation ratio on held-out instances, and expose a small API that ranks candidate nodes/edges for a human checker.
KEY RISKA learned heuristic can generalise poorly across graph sizes and topologies and may propose invalid solutions; keep a human verifier in the loop and validate on held-out instance distributions before deployment.

This is a potential application pathway, not a delivered product. The supplied starter does not implement this service or validate it with real users.

05 / WHAT YOU TAKE AWAY

What a gnns for combinatorial optimisation project puts on your resume.

  • Define a measurable combinatorial-optimisation task and choose appropriate metrics such as approximation ratio or solution gap.
  • Prepare train/test splits of graph instances that avoid leakage across related components or near-duplicate graphs.
  • Implement a message-passing GNN baseline and train it to predict solution labels or quality on benchmark instances.
  • Inspect failure modes where the GNN-guided heuristic degrades solver performance or proposes invalid solutions.
Want to build this with mentors and a lab?

Networkers Home runs this topic inside its AI Engineer Course, with placement support and hands-on labs.

AI Engineer Course
06 / QUESTIONS STUDENTS ASK

GNNs for Combinatorial Optimisation project FAQs.

Is this suitable as a final year project?
Yes — it’s appropriate for a final year project if you frame it as applying or extending GNN methods to combinatorial tasks, comparing heuristics and learned models on benchmarks.
What skills and tools will I need to complete this idea?
You should know Python, graph libraries (NetworkX), basic ML (PyTorch/TF), data handling with pandas, and combinatorial optimisation concepts like TSP, Max-Cut or vertex cover.
How should I evaluate progress and how long will it take?
Start by reproducing baseline heuristics, then implement a GNN and compare metrics (solution quality, runtime, generalisation). Expect 3–6 months for a thorough study, depending on scope.