Graph Visualization

About

It can be difficult to find aesthetically pleasing layouts for graphs. The question then arises – given an arbitrary graph, how can one produce a good drawing for that graph? This is called the graph drawing problem and has been studied extensively. Interestingly, while there are many good algorithms for drawing graphs, no one algorithm shines as “the” graph drawing algorithm. Every algorithm has its strengths and weaknesses, and many algorithms that work marvelously on certain graphs will produce poor layouts for other graphs. This project consists of implementing a particular type of algorithm called a force-directed layout algorithm and benchmarking it against a variety of graphs.

Technologies & Concepts

  • C++
  • Force-directed Layout Algorithm
  • Program decomposition
  • C++ Standard Template Library (STL):
    • I/O streams
    • std::vector