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 : 2817418
moon and stars
how did u find my site?

we're made of

"Mediocrity knows nothing higher than itself; but talent instantly recognizes genius.”
- Sir Arthur Conan Doyle
0, 1, 1, 2, 3, 5, 8, 13, 21, 34,...
xn = xn-1 + xn-2

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.

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 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