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





 
nature of God





 
"How did I come to know what I know about the world and myself? What ought I to know? What would I like to know that I don't know? If I want to know about this or that, where can I get the clearest, best and latest information? And where did these other people about me get their ideas about things, which are sometimes so different from mine?" - H.G. Wells
\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