How to draw graphs?
Fruchterman-Reingold algorithm (force-directed graph drawing):
- Initialize vertex positions randomly
- Basic Idea:
- Place vertices that are neighbors (directly connected) close together (attractive force)
- Place vertices that are not directly connected far away from each other (repulsive force)
➡ Problem: slow drawing speed with increasing complexity of graph (lots of nodes/edges)
How to draw graphs fast?
Meyerhenke, Nöllenburg and Schulz fast multilevel graph drawing
algorithm KaDraw:
- Can be parallelized → fast!
- Draws graph in (x, y) coordinates that can be saved in file
- Yields very good results
➡ Idea: draw coordinates by KaDraw in parallel and use in graph
visualization program
How to store graphs?
Sanders and Schulz Karlsruhe High Quality Partitioning KaHIP:
- Family of graph partitioning programs
- Contains graph structure classes and convenient algorithms
➡ Idea: use (modified) KaHIP as internal graph structure