GOBLIN

A Graph library

Project overview

Goblin is a full-featured tool chain for handling graphs. The project provides code from the following areas:

Optimization: Nearly all algorithms described in textbooks on graph optimization are implemented.

Layout: The most common models (orthogonal, layered, force directed) are supported.

Composition: Especially for planar graphs, a lot of rules are implemented to derive one graph from another.

File import and export: Graphs can be read from Dimacs, Tsplib and Steinlib formats. Layouts can be exported to nearly arbitrary bitmap and vectorial formats by implicit use of the fig2dev and the netpbm packages.

Manipulation: Graph incidence structures can be edited and attributes can be assigned to nodes and edges in the graphical front end.

While all algorithms are implemented in a C++ class library (libgoblin.a), the editor code and partially the file I/O code are written in the Tcl/Tk scripting language and use a Tcl wrapper of the C++ library.

Users can choose from the following interfaces:

A C++ programming interface (API) described here

A Tcl/Tk programming interface which is less efficient, but sometimes more convenient

A graphical user interface (GUI) to manipulate graphs, but also to run problem solvers and to visualize the (intermediate) results

Solver executables for several optmization problems

License: GNU LGPL.

Tags: discrete mathematics, graph theory, library.

Interfaces: library, X.

Source languages: C++, Tcl.

Supported languages: C++, Tcl.

Staff

Maintainer: Christian Fremuth-Paeger.

Links

Homepage: http://goblin2.sourceforge.net/.

Documentation: http://goblin2.sourceforge.net/refman/pageManualContents.html, http://goblin2.sourceforge.net/refman/pageTutorials.html.