Dave Horner's Website - Yet another perspective on things...
Home Personal Random Thoughts CS486 Analysis of Algorithms - Project 2 (Graph research and min)
106 guests
Rough Hits : 2701592
moon and stars
how did u find my site?





 
morning or night person?


 
There is no honest way to explain it because the only people who really know where it is are the ones who have gone over. But the edge is still Out there. Or maybe it's In.
--Hunter Stockton Thompson
\begin{bmatrix} 1 & 0 & \ldots & 0 \\ 0 & 1 & 0 & \vdots \\ \vdots & 0 & \ddots & 0\\ 0 & \ldots & 0 & 1_{n} \end{bmatrix}

CS486 Analysis of Algorithms - Project 2 (Graph research and min)

Tuesday, 14 February 2006 12:23

Before I start this project I would like to do a little research into what is currently out there in terms of usable libraries and support tools for graphs.  I can see that graphs will be very useful in my professional career, however, I don't at this time have any experience using a library or even a GUI to manage graphs.

Visualization
Graphviz - Graph Visualization Software (Made by AT&T research labs)
JGraph - (commerical) - The Java Open Source Graph Drawing Component

Programming libraries for Java
JGraphT - (LGPL) free Java graph library, works with JGraph for visualization.
JUNG - the Java Universal Network/Graph Framework--is a software library that provides a common and extendible language for the modeling, analysis, and visualization of data that can be represented as a graph or network.

Programming Libraries for C++/C
The Boost Graph Library - C++ library for graphs (All of the authors were last reported to be at Indiana University).
The Parallel Boost Graph Library - Parallel and Distributed Graph Computation C++ libraries modeled after BGL (also developed at Indiana University)
GOBLIN: (LGPL) A C++ Graph Object Library for Network Programming Problems
GTL - (Closed license) The C++ Graph Template library
PIGALE - (GPL) C++ PIGALE includes both a graph algorithm library, a graph editor, and graph drawing library.

Programming libraries for C#
QuickGraph: (zlib/png) A 100% C# graph library with Graphviz Support. (modeled after the boost graph interfaces)

Misc stuff relating to Graphs
GraphML - A XML markup language for graphs.

Documentation and/or tutorials
CodeGuru: Discover the Network Search Capabilities of the Boost ...
A Boost Graph Library Tutorial - sample chapter is excerpted from The Boost Graph Library: User Guide and Reference Manual, by Jeremy Siek


Starting project:
Since the project orginally called for a Java applet, I decided I would write the project using the JGraphT project with JGraph for visualization.  I'm developing the software inside the NetBeans IDE as before, however, this time I had to do some fancy overriding for the custom panel drawing.  [Override panel in NetBeans] and [Drawing on a JPanel]

Documentation Used to Build Project
JGraph HOWTO
JGraph User Guide
JavaDocs for JGraphT
Design and Analysis of Computer Algorithms
JGraph Forums
Data Structures and Algorithms with Object-Oriented Design Patterns in Java
Using timers in Swing Applications
Asked question about doing things with edges.

Update Feb 21st:  Now that I'm head deep in JGraph development, I really wish I would have used the boost libraries.  The JGraph libraries are not documented very well and there is little example code to do anything.  I spent A LOT of time just doing simple visualization stuff that I could have implemented myself using the canvas.  I'm a bit disappointed in the whole thing.  However, I would like to finish this project.  I'm almost there... (course you never know how bad it is going to be when interfacing to someone else's code).  I hope that you are understanding in this delay, my family and I have been sick and I really was TRYing to do above and beyond the call of duty.....I won't be in class today as I am very sick.  I've posted what I've got on the website now.



< Prev  Next >
Last Updated on Monday, 27 February 2006 16:38