Graph::Enhanced - Extensive graph library compatible with Graph module.

Version 1.31 / Jul 2, 2016

What is Graph::Enhanced?

Graph::Enhanced is an extensive graph library, which was initially developped as extensions to Graph module developed by Jarkko Hietaniemi. But Graph::Enhanced has been completely rewritten, and it is now independent of Graph module. Graph::Enhanced implements its own data structures and functions for manipulating directed/undirected graphs.

Graph::Enhanced provides the following methods.

new directed undirected multiedged set_graph_attribute get_graph_attribute average_degree expect_undirected expect_directed expect_multiedged vertices has_vertex add_vertex add_vertices predecessors successors neighbors set_vertex_attribute get_vertex_attribute set_vertex_attributes get_vertex_attributes set_vertex_weight get_vertex_weight delete_vertex random_vertex edges unique_edges has_edge get_multiedge_ids get_edge_count add_edge delete_edge delete_all_edges edges_from edges_to edges_at out_degree in_degree degree random_edge set_edge_attribute_by_id get_edge_attribute_by_id set_edge_attributes_by_id get_edge_attributes_by_id set_edge_weight_by_id get_edge_weight_by_id get_edge_weight dijkstra dijkstra_all_pairs floyd_warshall is_reachable is_connected explore copy_graph directed_copy complete_graph create_graph create_random_graph create_random_sparse_graph create_barabasi_graph create_barabasi_random_graph create_ring_graph create_tree_graph create_btree_graph create_treeba_graph create_generalized_barabasi_graph create_latent_graph create_lattice_graph create_voronoi_graph import_graph import_dot import_dot_quick import_dimacs import_inet import_brite import_gw import_nsnode import_nsagent import_metis import_edge export_graph export_dot export_dimacs export_inet export_brite export_gw export_nsnode export_nsagent export_nsagent_edge export_nsagent_udp export_metis export_pdnsnode export_pdnsagent export_gdl

Graph::Enhanced also includes several handy tools for manipulating graphs. Noticeable features of Graph::Enhanced are: (1) creation of different types of graphs, including tree, random and scale-free networks, and (2) import and export of graph data in multiple formats, such as dot, dimacs, inet, brite, gw, ns2, pdns, and metis.

Also, Graph::Enhanced includes the following programs:

graphconv - Generic graph format converter
graphgen - Generate a graph and dump in standard output
graphstat - Calcurate graph statistics
ns2dot - Parse ns2 simulation script, and visualize network topology and flows


The latest version of Graph::Enhanced can be found at the following location.


Copyright (C) 2004-2016 Hiroyuki Ohsaki (ohsaki[atmark]

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


Graph::Enhanced uses standard Perl's MakeMaker module. Thus, just type the following commands.

  perl Makefile.PL
  make install


Graph::Enhanced has been still under development process. You will encounter various bugs and troubles. If you find any bugs, first check if a newer version exists. If not, please mail bug report or fixing patch to me. I appreciate your comments and/or suggestions.


graphconv(1), graphgen(1), graphmergelink(1), graphstat(1), ns2dot(1)


Hiroyuki Ohsaki (ohsaki[atmark]