Skip to content
@CHSZLab

CHSZLab

CHSZLab

We develop high-performance algorithms and open-source software for combinatorial optimization problems on graphs and hypergraphs at the Algorithm Engineering Group, Heidelberg University. Combinatorial optimization on (hyper)graphs addresses the challenge of finding the best solution among a vast, discrete set of possibilities defined by the structure of a network. These problems arise throughout science and engineering, from distributing workloads across processors and detecting communities in social networks to designing circuits and solving large sparse linear systems.

Problems We Cover

(Hyper)Graph Partitioning. Dividing a graph into k roughly equal-sized blocks while minimizing the edges between them. Our solvers range from multi-level methods with strong balance guarantees to streaming algorithms that partition graphs too large to fit in memory. We also cover node separators, nested dissection orderings, and process mapping (assigning communication tasks to hierarchical processor topologies).

Graph Clustering. Detecting communities and dense substructures without a prescribed number of clusters. This includes modularity-maximizing evolutionary methods, correlation clustering on signed graphs, local triangle-motif-based clustering, and streaming approaches that cluster graphs in a single pass.

Minimum & Maximum Cuts. Computing minimum cuts (both exact and heuristic) on graphs and hypergraphs, including parallel cactus-based algorithms that enumerate all minimum cuts. On the maximization side, FPT kernelization combined with heuristic and exact solvers for the NP-hard maximum cut problem.

Independent Sets, Matching & Packing. Finding maximum (weight) independent sets on graphs and hypergraphs using reduction-based branch-and-bound, evolutionary algorithms, concurrent local search, and GNN-guided kernelization. We also cover hypergraph b-matching (offline and streaming) and maximum 2-packing sets.

Edge Orientation. Orienting the edges of an undirected graph to minimize the maximum out-degree. Our algorithms include greedy 2-approximations, DFS-based local search, and eager path search methods.

Dynamic Graph Algorithms. Maintaining solutions under incremental edge insertions and deletions. We provide fully dynamic algorithms for edge orientation, approximate edge orientation, maximum matching, and weighted maximum independent set, all designed for low amortized update cost.

CHSZLabLib

CHSZLabLib wraps our state-of-the-art C++ solvers into a single, easy-to-use Python package.

python -m venv .venv && source .venv/bin/activate
pip install chszlablib
from chszlablib import Graph, Decomposition

g = Graph.from_metis("network.graph")
result = Decomposition.partition(g, num_parts=8, mode="strong")
print(f"Edge cut: {result.edgecut}")

Covers graph partitioning, minimum/maximum cuts, community detection, independent sets, edge orientation, streaming algorithms, hypergraph problems, and fully dynamic graph algorithms.

Integrated Libraries

Domain Libraries
Partitioning & Cuts KaHIP, HeiStream, VieCut, fpt-max-cut
Clustering VieClus, SCC, CluStRE, HeidelbergMotifClustering
Hypergraphs FREIGHT, HeiCut, HyperMIS, HeiHGM, HeiHGM-Streaming
Independent Sets KaMIS, CHILS, LearnAndReduce, red2pack
Process Mapping SharedMap
Edge Orientation HeiOrient
Dynamic Algorithms DynDeltaOrientation, DynDeltaApprox, DynMatch, DynWMIS

For full algorithmic control and peak performance, use the original C++ repositories directly.

Popular repositories Loading

  1. CHSZLabLib CHSZLabLib Public

    Python Frontend to Algorithms of the Algorithm Engineering Group Heidelberg

    Python 5

  2. .github .github Public

    Organization profile

Repositories

Showing 2 of 2 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…